Part Spawning Exploit

If they do it for long enough it can cause some players on lower-end computers/mobile to have issues if they share a spawn point with the exploiter.

Found this at the RBXDev HQ today.

Do you know how long it takes to do this? For example, is this any worse than just dropping a hat and then respawning?

1 Like

The effect is exponential though from what I was told, so if they start with 10, they then make 20 and then 40 and so on.

Happens extremely quickly.

I saw this yesterday while someone was testing a 100 player server. There must have been 1000s of these bricks everywhere. Causes a lot of lag.

I saw this happen on a game that I had developer console access to. The parts were somehow inside of Terrain on a FilteringEnabled game. I’m pretty sure I managed to fix it by removing anything that gets added as a child to Terrain.

workspace.Terrain.ChildAdded:connect(function(obj)
	wait()
	if obj then
		obj:Destroy()
	end
end)

Hope this works as a temporary solution.

3 Likes

This exploit is based on the old “drop hat” behavior. Look carefully at this post: Removing Accessory Dropping Key Shortcut

Notice that the hat is reparented in the local script.

It is also based on players respawning rapidly.

2 Likes

Yeah I had a feeling it was hat dropping. Parts that get spawned would only appear on the client, so there had to be something else going on.

This is what I was getting. I ran a really crude script that just printed whatever part I touched while I was in my game (It’s a terrain based game so I could omit printing if I was on my terrain) and I found that these parts were children of the terrain.

Any updates on this? Still getting reports of it in my game.

2 Likes

A partial patch for this specific issue will be released next week. Anyone relying on locally parenting hats should update this to be done on the server. The patch is partial as we do need to support “hat dropping” for the moment.

2 Likes

What’s ‘partial’ about it? It sounds like you’ve fixed the issue by making hats respect filtering?

1 Like

Because he couldn’t outright remove the feature, it’s more complicated than just making something replicate or not replicate.

I got that, that’s why I was asking what was partial about it. What’s still left of the feature?

Can you clarify the reason for supporting “hat dropping”? This feature was removed from roblox long ago.

7 Likes

This STILL occurs, and is especially prominent in games with custom avatar editors which allow players to equip their characters with accessories.

Players can respawn their characters or repeatedly equip their character and discard their hats, leaving litter all over the map. It is unacceptable for developers to have to create a server-sided script specifically to clean up garbage from the client.

This is a clear vulnerability to ALL games. It’s been 2 years. Why has this not been patched?

Hat dropping has been removed…? They can delete the welds to the accessories and that will replicate to the server because deleting character joints always replicates, but these accessories are still parented to their character. When the character is de-spawned, the accessories will be removed.

Did you implement hat dropping manually in your game? If so, this would be a problem with your script.

1 Like

This does indeed still work, accessories that are parented to workspace from the client replicate and remain there.
Tested on a blank baseplate in an online game.

Edit: Code used for those interested (LocalScript in StarterGui):

local function dropHats()
	local localPlayer = game:GetService("Players").LocalPlayer    
	if localPlayer and localPlayer.Character then
		for _, obj in pairs(localPlayer.Character:GetChildren()) do
			if obj:IsA("Accoutrement") then
				obj.Parent = game.Workspace
			end
		end
	end
end

game:GetService("UserInputService").InputBegan:connect(function(inputObject, gameProcessedEvent)
	if not gameProcessedEvent then
		if inputObject.KeyCode == Enum.KeyCode.Equals then
			dropHats()
		end
	end
end)

No, the hotkey for dropping hats was removed. As you can see in the previous posts in the thread, and as xonae demonstrated, the functionality still remains.