Anti-Cheat Basics
Understanding anti-cheat systems and false positives.
Concepts
Server-Side Validation
Validate all important actions server-side:
-- Client sends position
RegisterNetEvent('myresource:setPosition')
AddEventHandler('myresource:setPosition', function(x, y, z)
-- Validate position is reasonable
if math.abs(x) > 10000 then return end
-- Set position
end)Rate Limiting
Prevent rapid actions:
local lastAction = {}
RegisterNetEvent('myresource:action')
AddEventHandler('myresource:action', function()
local source = source
local now = GetGameTimer()
if lastAction[source] and now - lastAction[source] < 1000 then
return -- Too fast
end
lastAction[source] = now
-- Process action
end)False Positives
Common causes:
- Network lag
- Script bugs
- Legitimate edge cases
Best Practices
- Log suspicious activity
- Review before banning
- Provide appeals process
- Monitor false positive rate
Last updated on