So, I own a hood/RP game (hoodlum, gangster RP game) and I seen some exploiters that can able to bypass client related scripts.
I seen some scripts that automatically ban people as soon as they inject their scripts (like FutureTops or that can detect stuff pretty fast). How can I do that?
I have tried using Adonis Admin but it isn’t reliable since many exploiters can bypass it for my game.
This would be very useful if someone manages to find a solution. I personally think it has something to do with detecting if a Script was added to the game, but I’m not sure.
I mean this isn’t the most amazing Solution, but It would work…
local ScriptNamesAllowed = {}
for i, Objects in game:GetDescendants() do
if Objects:IsA("BaseScript") then
table.insert(ScriptNamesAllowed, Objects.Name)
end
Objects.ChildedAdded:Connect(function(ChildAdded)
for i, ChildrenObjects in game:GetDescendants() do
if ChildrenObjects:IsA("BaseScript") and table.find(ScriptNamesAllowed, ChildrenObjects.Name) == nil then
ChildAdded:Destroy()
end
end
end)
end
This is a very basic example, and easily bypassable. You should give all your scripts a unique name, for this to work, but again it’s very easily bypassable if the exploiter just name’s their script the same as one of your scripts. Also this is meant To be server script, and therefore no player is attached to this system, this system would only delete it if it sees a script with a different name then the ones allowed. If you wanted to attach a player punishment you will need to figure out who is adding scripts which might be hard.
This is a basic example, but it’s something. Often Anti-cheats have to be customizable to the certain game, and plus I don’t want to leak my anti-cheat, as it can create weakness points in mine.
TL;DR if you want a good anti-cheat often you need to make it, or pay someone to make it for you. People don’t really give out good Anti-cheat scripts to make them stronger in the sense that it isn’t a public resource that people can test and develop bypasses
But you can prevent unwanted changes to your game or its elements by constantly monitoring the player, and doing sanity checks on all Remote Events when they are fired/invoked.
For starters, yes it’s not great. Anti-Exploit scripts are often personalized to the game so making something that works for very different Roblox games is hard. As stated this isn’t the greatest.
For your statement, yes they use local scripts and you could make a client version of this script. The reason I did it on the server is because the Server needs the most protection then the individual clients. While exploiters have to use local script initially, if they ever make these hacks visible on other clients, they have to reach the server. If you were to make a client version, while it is helpful, the exploiter could just delete it, Source It, or disable it. Because of how different games work and with some creators not caring if someone hacks their own client and not the server, I just kept it server side. I just provided an example of how you could do it, guessing that other developers would expand and change this system to their own game, if they ever used it, which even I don’t recommend using it