Why it exists
A cheat menu does not attack Argus. It attacks your shop script, your bank, your inventory — by calling their server events with arguments they never expected. An anti-cheat that sits beside those scripts can only see the call go past. Integration puts Argus inside them: a shim loaded before the resource's own code, so every net event the resource registers is wrapped and every call is checked against the policy Argus learned for it.
The client half answers a different problem. A Lua executor does not run in Argus's Lua state; it picks one of your other resources and runs its code in there. The client shim loads into each resource, captures the identity of the functions an executor has to hook before the resource's own code runs, and fingerprints which server events that resource fires. It reports and never blocks — a client-side guard with the power to cancel would eventually be wrong inside somebody's inventory script, and enforcement belongs on the server.
What actually changes
Two lines are added to a resource's fxmanifest.lua, above its own script blocks, under a marker comment:
-- ARGUS INTEGRATION v1.11.0 - added automatically, remove with: argus uninstall
server_script '@argus/integrate/server.lua'
-- ARGUS INTEGRATION v1.11.0 - added automatically, remove with: argus uninstall
client_script '@argus/integrate/client.lua'
client_scripts { 'client/*.lua' }
server_scripts { 'server/*.lua' }Nothing else in the resource is touched. A resource with only client scripts gets only the client line; one with only server scripts gets only the server line. Re-running the install on a resource that already carries the lines changes nothing, and a resource integrated by an older version gains the client line in place without a second server line.
Running it
argus install must be run from the server console, not chat, because it rewrites files. FiveM sandboxes each resource to its own folder, so the first run writes a grant file and asks you to reference it:
exec @argus/data/permissions.cfgRestart, run it again, and it reports what happened:
argus install
→ 84 found · 61 integrated now · 0 already done · 3 escrowed with server code · 20 nothing to protect
restart those resources, or the server, for the integration to take effect.| Category | Meaning |
|---|---|
| integrated | Carries the lines. Every net event is checked inside the resource. |
| can be integrated | Eligible and not done yet — run argus install. |
| nothing to protect | No server code: maps, MLOs, clothing, vehicle packs. Nothing to wrap, nothing wrong. |
| escrowed with server code | Escrow protects the bundle, not the manifest, so these are integrated too unless you turn that off; the server-side checks still apply either way. |
| reserved | Argus itself and the cfx built-ins. Never touched — rewriting a built-in breaks it on the next artefact update. |
| excluded | Resources you told it to leave alone with argus exclude. |
Checking it worked
argus verify compares what should be integrated with what is, and whether each shim has called in since the last start:
argus verify
→ 84 discovered · 61 integrated · 0 eligible and not integrated · 0 changed since install
58 of 61 integrated resources are protecting net events
3 loaded the shim but register no net events (config-only, MLOs, UI kits) — nothing to protect, nothing wrongA resource listed as started but the shim never called in loaded before Argus did; restart it, or move ensure argus earlier. argus repair puts the line back anywhere it has been lost — after a script update that shipped a fresh manifest, for instance.
What it learns
Each integrated event gets a policy: discovered when found in source, profiled once enough live calls have shown its normal shape, constrained once that profile is enforced — rate, argument count, argument sanity. Handlers that move money, items or permissions are high risk and capped hard regardless of what the profile learned. New policies start in shadow so you see a week of what they would have done before they can act. argus events lists them; the Integration tab in the panel is where you promote them.
Escrowed resources
Escrow signs the source bundle; the manifest is read in plaintext by the server to know what to load and is not part of what escrow protects. Adding a line to it has been routine for years and does not break the resource. If a specific vendor's script ever objects, exclude it with argus exclude <resource> or turn off Integrate escrowed resourcesin the panel; Argus also reverts automatically if an integrated resource stops loading.