Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

What are the best anti-exploit techniques?

I'm having trouble with exploiters in my game, so far I've stopped them from removing their humanoid, and I'm attempting on creating a speed checker soon.

I've done some research and I've found some interesting things, and I have some questions for people who have been able to remove exploiters. For example, exploiters can disable and delete local scripts with anti-exploit stuff to detect walkspeed changes, etc. I can detect the localscript being deleted serverside but not it being disabled serverside.

How do I create these anti-exploits in localscripts if exploiters can easily bypass them? For example, my game is a sword fighting game and exploiters use a reach exploit to allow them to hit anyone far away, totally ruining the game. I could make a check for this with a local script, but then again exploiters can bypass the localscript and reach exploits can't be detected by server scripts either (tried already). I'm not sure what to do about them, any help is appreciated!

10 comments

0

Does this place have FilteringEnabled on?

0

Of course

0

testing for remote events and making sure all parts are locked (you can also test speed but most of the time roblox does that for you)

0

You cannot see things client side so you cannot really test for removed things (you can make it send a quick remote events though)

0

In that case, I would probably kick the user if something detects their anti-exploit client being removed or disabled as a "quick and easy" solution.

0

If you want to prevent against reach, simply check the distance between the player1 and player2 (check if the distance isn't too big) with a server script

0

@ScriptGuider I could detect the anti-exploit script being removed serverside, but not disabled, and if I made another localscript to check if it gets disabled exploiters could disable both localscripts. @RecommanderV2 I've been able to detect most client side stuff through localscripts, but exploiters can easily bypass the localscripts

0

Good idea @Kiriot22, thank you I'll try that now

0

I actually know a very easy way to prevent your anti exploit script from getting disabled, but I can't share it or I will get blacklisted from Synapse /shrug

0

They can, the you should kick players when they pass unvalid arguments trough the remote event (server side)

3 answers

I recommend RemoteEvents or RemoteFunctions. But some hackers can still Fire it. That's a problem, but try this:

--client
local event = game.ReplicatedStorage.Event
local stuff = "???????"
event:FireServer(event, stuff)--so it gives the event variable
--server
local event = game.ReplicatedStorage.Event
event.OnServerEvent:connect(function(event, stuff)
	if event and event ~= nil then
		print(stuff)
	else
		--idk kick the player maybe?
	end
end)

Filtering Enabled (Of course its pretty basic) Which using remote events and remote functions etc can help your game be exploit proof. Just remember that exploiters can always just fire those. Since that can happen I like to make it harder to them and even put some that aren't used in the game so if they find "AdminGiver" and fire it, they get banned. Here a example of a script I made.

GunShop.Glock.OnServerEvent:connect(function(plr)
	local Cost = 500
	if plr.IsLTCOwner.value == true then
		if plr.PlayerGui.Shop then
				if plr.stats.Money.Value >= Cost then
				local Weapon = game.ServerStorage.GunShop:FindFirstChild("Glock")
				local Cash = plr.stats.Money
				Cash.Value = Cash.value - Cost
				local Cloned = Weapon:Clone()
				Cloned.Parent = plr.Backpack
			end
		end
	end
end)

Pretty simple right now and theres a wall that if you hit it automatically removes the GUI so they cant go around spawning guns. Either way they pay for it.

If your game affects walk speed then simple make it where if it detects more than a certain walk speed it kicks/bans them.(You need a local script for this since it is client sided) Other than that I have ways that Im not giving away so I can make my game exploit proof.

I know that this post is old but i can help you Take look at this:

Local Script:

local Remote=game.ReplicatedStorage.Remote
local Kills=game.Players.LocalPlayer:WaitForChild("leaderstats").Kills.Value
local SwordCost=game.Lighting.Sword.Cost.Value

EquipButton.MouseButton1Down:Connect(function()
	if Kills>SwordCost or Kills==SwordCost then
		Remote:FireServer()
	end
end)

Server script:

local Remote=game.ReplicatedStorage.Remote
local Sword=game.Lighting.Sword

Remote.OnServerEvent:Connect(function(Player)
	if Player.leaderstats.Kills.Cost<Sword.Cost.Value then
		Player:Kick("Find a new way,")
	else
		local SwClone=Sword:Clone()
		SwClone.Parent=Player.Backpack
	end
end

This discussion is preserved as it was. New answers, comments, and votes are closed.