Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

How would i detect non-replicating property changes of something (speed, jump) server-sided?

Asked by 5 years ago

I want to make an anti cheat that detects mostly everything. So far I've been able to detect TP and Body Movers. Problem is, other properties such as "Anchored", "PlatformStand", "WalkSpeed" and "JumpPower" do not replicate to the server. So my question is: How would i detect these changes on the server? You may think about RemoteEvents, but you could easily hook the FireServer and make it return something else (for example always return 16). The default value of WalkSpeed in my game is 156, which would make it harder to detect exploits without kicking legitimate players.

I will never try and detect WalkSpeed and other property changes on the client, as no matter how hard you try, it is still bypassable.

Any help would be greatly appreciated!

0
i have a really easy solution without checking the walkspeed but im not telling you anymore and stop being rude also it's so easy to check if the player is walkspeeding / teleporting i will only give you one clue: X, Y, Z no more clues Oskar2266001 3 — 5y
0
Also you cannot spoof remotes its impossible due to it running multiple scripts each time its being fired so even if they put a while true do loop that fires the remote every .1 seconds it will still kick the exploiter due to it running allot of scripts at a time Oskar2266001 3 — 5y
0
And the only bypass is that they can delete the local script so you can put two local scripts to check for each other if one of the scripts is missing the other script will kick the person because they deleted the bypass script Oskar2266001 3 — 5y

2 answers

Log in to vote
0
Answered by
Alphexus 498 Moderation Voter
5 years ago

Try researching the ".Changed" function. You can find out if a property is changed using it.

0
You do realise that if a client changes for example its walkspeed, it will not replicate to the server, right? Do some research before answering, thanks. asafdafs341 2 — 5y
Ad
Log in to vote
0
Answered by 5 years ago

Put a password in your remotes at the end so if remote was changed kick them example:

Local Script:

local Speed = game.Players.LocalPlayer.Character.Humanoid.WalkSpeed

local JumpPower = game.Players.LocalPlayer.Character.Humanoid.JumpPower

game.ReplicatedStorage.Remotes.CheckPlayerInfoRemote:FireServer(Speed, JumpPower, MyPassword)

Server Script:

game.ReplicatedStorage.Remotes.CheckPlayerInfoRemote.OnServerEvent:Connect(function(Speed, Jump, Password)
    if Password == "MyPassword" then
        Code here
    else
    player:Kick("Kicked for exploiting lmao")
    end
end)

Basically what this does is if the remote event was fired and the Password is wrong it will kick them and they don't know the Password.

Answer this question