Exploiters are ruining the game by using unanchored parts!

The problem is simple. They fling the players by collecting the unanchored parts in the game.
Is there any precaution for this?

Script they’re using;

ocal UserInputService = game:GetService("UserInputService")
local Mouse = game:GetService("Players").LocalPlayer:GetMouse()
local Folder = Instance.new("Folder", game:GetService("Workspace"))
local Part = Instance.new("Part", Folder)
local Attachment1 = Instance.new("Attachment", Part)
Part.Anchored = true
Part.CanCollide = false
Part.Transparency = 1
local Updated = Mouse.Hit + Vector3.new(0, 5, 0)
local NetworkAccess = coroutine.create(function()
    settings().Physics.AllowSleep = false
    while game:GetService("RunService").RenderStepped:Wait() do
        for _, Players in next, game:GetService("Players"):GetPlayers() do
            if Players ~= game:GetService("Players").LocalPlayer then
                Players.MaximumSimulationRadius = 0 
                sethiddenproperty(Players, "SimulationRadius", 0) 
            end 
        end
        game:GetService("Players").LocalPlayer.MaximumSimulationRadius = math.pow(math.huge,math.huge)
        setsimulationradius(math.huge) 
    end 
end) 
coroutine.resume(NetworkAccess)
local function ForcePart(v)
    if v:IsA("Part") and v.Anchored == false and v.Parent:FindFirstChild("Humanoid") == nil and v.Parent:FindFirstChild("Head") == nil and v.Name ~= "Handle" then
        Mouse.TargetFilter = v
        for _, x in next, v:GetChildren() do
            if x:IsA("BodyAngularVelocity") or x:IsA("BodyForce") or x:IsA("BodyGyro") or x:IsA("BodyPosition") or x:IsA("BodyThrust") or x:IsA("BodyVelocity") or x:IsA("RocketPropulsion") then
                x:Destroy()
            end
        end
        if v:FindFirstChild("Attachment") then
            v:FindFirstChild("Attachment"):Destroy()
        end
        if v:FindFirstChild("AlignPosition") then
            v:FindFirstChild("AlignPosition"):Destroy()
        end
        if v:FindFirstChild("Torque") then
            v:FindFirstChild("Torque"):Destroy()
        end
        v.CanCollide = false
        local Torque = Instance.new("Torque", v)
        Torque.Torque = Vector3.new(100000, 100000, 100000)
        local AlignPosition = Instance.new("AlignPosition", v)
        local Attachment2 = Instance.new("Attachment", v)
        Torque.Attachment0 = Attachment2
        AlignPosition.MaxForce = 9999999999999999
        AlignPosition.MaxVelocity = math.huge
        AlignPosition.Responsiveness = 200
        AlignPosition.Attachment0 = Attachment2 
        AlignPosition.Attachment1 = Attachment1
    end
end
for _, v in next, game:GetService("Workspace"):GetDescendants() do
    ForcePart(v)
end
game:GetService("Workspace").DescendantAdded:Connect(function(v)
    ForcePart(v)
end)
UserInputService.InputBegan:Connect(function(Key, Chat)
    if Key.KeyCode == Enum.KeyCode.E and not Chat then
       Updated = Mouse.Hit + Vector3.new(0, 5, 0)
    end
end)
spawn(function()
    while game:GetService("RunService").RenderStepped:Wait() do
        Attachment1.WorldCFrame = Updated
    end
end)
1 Like

I don’t think there is anything you can do, but you can add one of those anti exploit prevent it, or something that relocate the unanchored part if it was tampered. I’m not really sure since there isnt really anything you can do about it.

I believe they are abusing the fact that physics simulation on Roblox is distributed. Try moving unanchored part simulation to the client and force every client to simulate their own physics (so that the server can’t see any unanchored parts).

There is no way to do it?
What if I delete the folder created in workspace?
At this line;

local Folder = Instance.new("Folder", game:GetService("Workspace"))

What does your Workspace look like? What do the unanchored parts do?
If the unanchored parts only have use to the local player, it should be simulated on the local player. If you absolutely have to have unanchored parts, make sure they remain in the place they’re supposed to.

Im making a classic roblox game like natural disaster. I have to use unanchored parts
I don’t know anything about this, can you give a source?

Oh, I see. In that case, have you considered forcing all the parts’ physics to be computed on the server?
See Network Ownership.

1 Like

So will this do any harm to the server? Such as fps or lag

If there are a an unreasonably large amount of moving parts (like, thousands) then it will probably reduce the server’s performance. A few hundred shouldn’t be too bad, especially since Roblox won’t simulate physics for an unanchored object that often if it doesn’t move much.

1 Like

Ok. Thank you for your help. I will try this :slightly_smiling_face:

1 Like