Safe Events
Manual Safe Events
With Safe Events you can protect your events from being abused by cheaters.
To use Manual Safe Events you have to enable Safe Events in the config.
A server event sent through the Safe Events System carries its token as argument 33. If your resource sends more than 32 arguments, argument 33 is overwritten by the token.
Replace "anticheat-name" with the folder name of your FiveGuard resource.
#Exports for Safe Events
-- CLIENT-SIDEexports["anticheat-name"]:ExecuteServerEvent(EventName, ...)exports["anticheat-name"]:ExecuteLatentServerEvent(EventName, bps, ...)-- SERVER-SIDEexports["anticheat-name"]:RegisterSafeEvent(EventName, config, cross_scripts)exports["anticheat-name"]:VerifyToken(source)-- RegisterSafeEvent default config :{ log = true, ban = true}ExecuteServerEvent export:
Executes Safe Event
RegisterSafeEvent export:
Registers Event in Safe Events System
VerifyToken export:
Stops the event from being executed if the player got banned by Safe Events System
#Example Of Code
local money = 200exports["anticheat-name"]:ExecuteServerEvent("taxi:pay", money)local allEvents = { ["taxi:pay"] = false}local fiveguard_resource = ""AddEventHandler("fg:ExportsLoaded", function(fiveguard_res, res) if res == "*" or res == GetCurrentResourceName() then fiveguard_resource = fiveguard_res for event,cross_scripts in pairs(allEvents) do local retval, errorText = exports[fiveguard_res]:RegisterSafeEvent(event, { ban = true, log = true }, cross_scripts) if not retval then print("[fiveguard safe-events] "..errorText) end end endend)RegisterNetEvent("taxi:pay")AddEventHandler("taxi:pay", function(money) local source = source if not exports[fiveguard_resource]:VerifyToken(source) then return end print("user", source) print("money", money)end)