How to know on the client if the environment of an exploit required a module script

I think renaming the services in the game explorer is a waste of time, anybody with any understanding of Roblox programming should be using GetService anyway, but they could just open the explorer using Dark Dex which is built into most exploits and view it themselves and see the names.

Simply putting small sanity checks on both client and server code, and securing your remote events, should be more than sufficient to catch out the majority of exploiters.

This only works against the lamest of exploiters. But still, that’s a good majority of them. And anything you find on pastebin is probably years old.

old scripts or bad exploit developers do stuff like game.Players or game.CoreGui
renaming some services as “CoreGui” will make it error and you can detect that

Nope, not how it works at all. I’m not going to thoroughly explain how an anticheat I use for my games works, for obvious reason. But it’s not as easy as that.

No cap but every script I have seen up to now would fall for that (I checked the first 20 for fast walkspeed).

--another example
-- This script can be used in script builder
-- Put you name were it says YOURNAMEHERE

game.Workspace.YOURNAMEHERE.Humanoid.WalkSpeed = 100 -- Change the number to the speed you want

But catching errors is essential isn’t it? Since most people as I said will get errors when they experiment with scripts.

Catching errors isn’t fool-proof. Any good exploit will hide these errors from the console and from the game itself.

this is exactly how your “anti cheat” works:

server:

local data = remote:InvokeClient(player)
if data ~= 'what i want' then
player:Kick('spoofed return')
end

client:

remote.OnClientInvoke = function()
return 'what i want'
end;

^

That’s not true. Only paid exploits and most exploiters use free exploits.

To add onto this. RemoteFunctions from the server are heavily discouraged due to issues other than just exploiters intercepting the callback.

The main one being that the thread will indefinitely yield if the client leaves mid-transit.

Remember, callbacks can only be assigned one value

Yes, that’s why it catches out quite a lot of exploiters as the majority of them use the same widely spread scripts. When your game gets big enough to the point where advanced exploiters come and literally create GUIs to exploit in your specific game- then you have a problem and that method no longer works.

Nope. But I applaud your effort.

There are some games that litteraly diplomatically solve those issues to remove exploiters that make special GUI’s for the game.

not only that, but if you don’t assert your parameters, exploiters can see errors from your server side.

remote.OnServerInvoke = function(player, a, b)
a.Name = b
end;

– exploiter

remote:InvokeServer('asd') -- will return a server-side error in your exploit console

You would be very surprised. Yes, there’s a lot of free exploits out there. But that’s just the chaff. Focus on making a good server-side anticheat before going ahead and making something that will catch them off guard. It’s pointless to have a weak defense and a strong offense.

1 Like

Server Side anti-cheat is very limited to certain things because of laggy players, etc. If you wanted to have the best anti-cheat I suppose you would have a strong server sided anti-cheat to prevent major things like teleports, etc. And the rest would be on the client accedently getting an exploiter. That doesn’t know what he is doing.

There’s a lot of exploiters that don’t know what they’re doing. It’s a very bottom-heavy society, but the bottom eventually gets the scraps from the top. That’s why you focus on making a strong server-side first, to leave as few holes as possible for that one good script to take advantage of.
Also: please mark something else as your solution. People might look at this thread and think the solution is actually a good solution… I recommend one of the many replies talking about the futility of the entire problem.

Also: please mark something else as your solution

are you mad or something?
read what he wanted. thats the answer.
he asked how to get env of exploiters that require modules, I simply answered it and that’s it.

He was the one that answered the topic and he gave extra info to the topic. I asked a question and he answered it correctly. I am not changing the solution.

1 Like

There are many facets to this problem that the current solution just doesn’t cover, along with the fact that it doesn’t even work with most exploits. It’s pointless to attempt to get the environment of the exploiter when not even Roblox itself can detect it. The correct solution to this problem would be to not even attempt this at all. The question itself undoubtedly has a deeper solution than the one you provided.

that’s true but still not the point of the thread, all he needed was to know a way on how to do it, not how to make it safe, it was just a question