Configuration

config.lua

The local bootstrap file. It only holds what has to exist before the server can talk to the panel; everything else is configured in the panel and synced live. Restart the resource after changing anything here.

Connection

Config.LicenseKeystringdefault ''

Your licence key exactly as it appears in the panel. Leave it empty and set the convar in server.cfg instead if you prefer to keep keys out of the resource folder:

cfg
set argus_license "ARG-PL-XXXXX-XXXXX-XXXXX-XXXX"
Config.Endpointurldefault 'https://api.arguss.ac/v1'

The API endpoint. Only change it if support asks you to, or you run the self-hosted enterprise build against your own deployment.

Config.Localestringdefault 'en'

Language for player-facing text: kick reasons, ban screens, chat replies. Must match a file in locales/. Ships with en, fr, de, es, pt, nl, pl. The panel language is set separately, per user.

When the API is unreachable

Config.OfflineMode'protect' | 'log' | 'off'default 'protect'

What to do once the API has been unreachable for longer than the grace period.

protect keeps enforcing with the last known configuration and ban list (recommended). log keeps detecting but stops banning and kicking until the API returns. off disables all protection until it returns.

Config.OfflineGraceMinutesnumberdefault 5

How long the API may stay unreachable before OfflineMode kicks in.

Config.OfflineCachebooleandefault true

Cache the configuration and active ban list to disk, so a server restart during an API outage still comes up protected. Written inside the resource's own folder.

Console output

Config.ConsoleLoggingbooleandefault true

Print a line to the server console for every detection, in addition to the panel. Useful while setting up; noisy on a busy server.

Config.Debugbooleandefault false

Verbose internal diagnostics. Only turn this on when support asks.

Config.StartupBanner'full' | 'compact' | 'off'default 'full'

What Argus prints once the server has finished loading every resource: the wordmark with version, mode and API state; a single line; or nothing. Printed last on purpose, because a banner shown at boot is long gone by the time anyone reads the console.

Timing

Config.FlushIntervalseconds, 1–15default 2

How often telemetry is flushed to the API. Lower means a more responsive live panel and slightly more outbound HTTP.

Config.CommandIntervalseconds, 1–15default 3

How often the server polls for commands issued from the panel or Discord — bans, kicks, screenshots. Lower means panel actions land faster.

Config.SpawnGraceMsmillisecondsdefault 15000

How long after spawning before Argus starts reading a player's state.

While a session is starting, the engine and every framework legitimately make the ped invincible and invisible, hold it at the origin, and teleport it once the world streams in. A check that runs during that window is detecting loading, not cheating — the single biggest source of false positives in a FiveM anti-cheat. Argus also waits out screen fades, cutscenes and player switches regardless, so this is a floor. Raise it if your spawn flow is unusually long; there is no benefit to lowering it.

Safety

Config.RefuseWithOtherAntiCheatbooleandefault true

Refuse to start if another anti-cheat is detected on the server. Two at once produce false positives in both. Set to false only while migrating and deliberately running them side by side for a day.

Config.ReportUnauthorisedStopbooleandefault true

Report Argus being stopped without an authorised command. A normal restart is not reported: Argus recognises txAdmin's shutdown announcement and treats several resources stopping at once as a server going down. What is left is Argus alone being stopped while the server keeps running — what a compromised admin account or a malicious script does before cheating.

Config.IgnoredResourcesstring[]default {}

Read this before adding anything. Adding a script here does not reduce false bans — it does the opposite. Argus uses its knowledge of your scripts to tell a legitimate action from a cheat; a script listed here becomes invisible, so every action it performs looks like it came from nowhere.

Only add a resource here if it fails to start with Argus installed. Script errors are never caused by Argus; if you are seeing errors, open a ticket rather than adding entries.

Config.ExtraStaffPrincipalsstring[]default {}

Extra ACE principals treated as staff, on top of the permissions below. Most servers leave this empty and use the ACE permissions directly.

Permissions

Config.Permissionstabledefault { bypass = 'argus.bypass', commands = 'argus.commands', admin = 'argus.admin' }

The ACE permission names Argus checks. Rename them only if they collide with something you already use. What each one grants is on the Permissions page.

Config.PanelStaffbooleandefault true

Let staff seats assigned in the panel hold the permissions above in-game. ACE is always checked first, so nothing here can take a permission away. false ignores the panel roster entirely.

An overlay staff open in game to see who is connected, what Argus has flagged, and act without leaving the server: spectate, screenshot, freeze, warn, message, kick, ban with a duration, review a detection as a false positive, and — for admins — bring, go to, teleport, lift bans and clear entities. Nothing the menu shows or does is decided by the player's game client; every action is re-checked server-side and logged to the panel.

Config.Menu.Enabledbooleandefault true

Turn the whole menu off. The chat commands keep working either way.

Config.Menu.Keystringdefault 'F6'

Default key. Players can rebind it under Settings → Key Bindings → FiveM. Leave as '' to ship no default and let each staff member choose.

Config.Menu.Commandstringdefault 'argusmenu'

Chat command that opens the same menu, for anyone who has rebound the key away.

The connection card

What a player sees while Argus screens them, and what a banned player sees instead of a plain kick message: the ban ID, reason, date, who issued it and when it expires, with buttons to appeal or open your Discord. A player who can read their own ban ID does not open a ticket asking for it.

Config.ConnectCard.Enabledbooleandefault true

false falls back to the plain one-line deferral text.

Config.ConnectCard.Titlestring | nildefault nil

The card heading. nil uses your server name from the panel, falling back to sv_projectName.

Config.ConnectCard.Subtitlestringdefault 'Protected by ARGUS'

The line under the heading.

Config.ConnectCard.LogoUrlurl | nildefault nil

Square image, https only, ideally 128×128 or larger.

Config.ConnectCard.SupportUrlurl | nildefault nil

Your Discord invite. Shown as a button on the refusal card.

Config.ConnectCard.AppealUrlurl | nildefault nil

Where a banned player appeals. The panel's appeal URL wins if you set one there.

Config.ConnectCard.StepDelayMsmillisecondsdefault 900

Pause after each completed screening step. Screening is usually fast enough that every step would finish in one frame and the player would see nothing; this is what makes the four steps read as four steps. 0 updates as fast as the checks finish.

Config.ConnectCard.MinDisplayMsmillisecondsdefault 12000

The card stays up for at least this long in total. Be honest with yourself about this number — it is added to every join, every time. 12000 gives a player time to notice the server is protected; much beyond 20000 and you are taxing your own players for branding. A refused player never waits this out.

Config.ConnectCard.RejectDwellMsmillisecondsdefault 2500

How long a refused player is left looking at the reason before the connection closes. Below about 1500 the card is torn down before it renders.