Signed event transport
Protected events travel in an HMAC-SHA256 envelope bound to the session, a monotonic counter, the calling resource and the exact payload. Forged and replayed triggers are rejected before your handler runs.
Anti-cheat for FiveM
ac-stuck signs every protected event, checks gameplay against data your server owns, and fails closed when the guard goes quiet. Cheats get loud. Your players keep playing.

[ac-stuck] license: verified :: ip 203.0.113.24 :: lifetime
[ac-stuck] secure transport online :: window=128
[ac-stuck] heartbeat health online :: interval=5000ms
[ac-stuck] Ghost secure_bad_token (+30) score=30
[ac-stuck] kick Ghost :: secure_bad_tokenWhat it enforces
A Lua executor lives inside the player's game. ac-stuck doesn't try to win a race in there; it moves the decisions to your server and treats client reports as evidence, not proof.
Protected events travel in an HMAC-SHA256 envelope bound to the session, a monotonic counter, the calling resource and the exact payload. Forged and replayed triggers are rejected before your handler runs.
Every detection and action goes to your Discord with the player's license ID, paced under Discord's rate limit, plus a local reports file for review.
How it works
Your license is created automatically and you receive the ac-stuck buyer role on Discord.
Sign in with Discord, open the dashboard and set the public IP of your FiveM server.
Drop ac-stuck into your resources and add your license key to server.cfg.
The loader checks your key and server IP with the ac-stuck API, then the guard starts. Wrong IP? It tells you exactly which one it saw.
ensure ac-stuck
set ac-stuck_license "ACS-XXXXX-XXXXX-XXXXX-XXXXX"
add_ace group.admin ac-stuck.bypass allow
add_ace group.admin ac-stuck.admin allowStraight talk
Nothing written in Lua can stop kernel-level cheats, and we won't pretend otherwise. ac-stuck closes the cheap attack classes (forged events, replays, event spam, invisible explosions, injected resources) and makes the rest loud enough to act on. Your server stays the source of truth.
FAQ
No. txAdmin is used for permanent bans and for the optional fail-closed watchdog. Without it, ac-stuck still guards, scores and kicks.
Yes. Update the IP in your dashboard, wait about a minute and restart the server. You can change the IP once every 3 hours, so one license can't hop between servers.
A server that has already been verified keeps running for up to 24 hours. A fresh start keeps retrying for 10 minutes before the guard stops.
Yes. It ships in dry-run mode: score-based kicks and bans are only logged. Review the console and your Discord log, tune the thresholds for your server, then switch enforcement on.
Your username, avatar and email to create your account, and permission to add you to the ac-stuck Discord server so your buyer role can be applied.

Sign in with Discord to create your account. Your license appears in the dashboard as soon as your purchase is confirmed.
Login with Discord