I’m facing a pretty major issue. The issue is, that I have a remote handler that handles the playing of the sound effects when queried by the server. When received, it should play the sound effects on the client. Which is what it does. However, my game is suffering heavily due to lag spikes, and fps jittering due to the remotehandler that handles client sound playing. I feel I’ve done everything possible to optimize this to the best of my ability. (caching, and what not)
function RemoteModule.PlaySound(requestedSound, parent, properties)
if not requestedSound then return end
properties = properties or {}
local cachedSound = parent:FindFirstChild("S_"..requestedSound.SoundId)
if not cachedSound then
local soundClone = requestedSound:Clone()
for property, value in pairs(properties) do
soundClone[property] = value
end
soundClone.Name = "S_"..requestedSound.SoundId
soundClone.Parent = parent
soundClone.SoundGroup = game.SoundService.GlobalSounds
soundClone:Play()
print("played new sound")
else
for property, value in pairs(properties) do
cachedSound[property] = value
end
cachedSound:Play()
print("played cached sound")
end
end
These are some examples.
Example 1: Client sound playing enabled Watch 2026-08-14 23-38-59 | Streamable
Example 2: Client sound playing disabled (much more smoother) Watch 2026-08-14 23-39-52 | Streamable
(of course, there is the possbility that the problem comes from how im firing the remote from other scripts)
EDIT: I think the issue may have resolved itself? Ran a playtest with about 25-50 zombies and all went well. Just keeping this open for a little while longer though if there is an issue about how im optimizing soundplaying.

