HALLOWEEN31 Save 31% off on your first purchase

Commands

Every Raven Anticheat command, where it runs, which in-game ability each one checks, and what the in-game admin menu does.

Raven is driven by a single command, rac. Run it from the server console for full access, or in game if your identifier is tagged for in-game staff access on your dashboard. Typed in game with no arguments it opens the admin menu. Every subcommand in game checks one ability off the list on that staff row, so access is decided on the dashboard and nowhere else. This page lists every subcommand, which ability it needs, what refuses one and why, and what each page of the menu does.

Where a command runs

There are two places a command can come from, and they do not have the same access. The server console means the txAdmin live console, the raw server window or an RCON session, and it can run everything, including the subcommands that write to resource files, with no ability checked on any of them. In game means a player with an in-game staff row, and it covers help, ban, kick, unban, clear and the menu, each behind its own ability. Everything else answers This command can only be run from the server console.

A third caller is refused outright. Another resource running ExecuteCommand('rac ...') is refused, and Raven prints a refusal naming it. That applies to every subcommand, so no script on your server can ban, clear or reinstall through the command.

CommandWhereWhat it does
racIn gameOpens the admin menu, and closes it again if it is already open. From the console it prints "The admin menu only opens in game. Run "rac help" for the console commands."
rac helpBothPrints the command list. The console gets all twelve lines; in game you get the six that work there.
rac statusConsolePrints "Server version: 1.8.9", marked "(Outdated)" when a newer build exists, then "Installed: 12/40" for twelve protected resources out of forty.
rac dashboardConsoleReports the live link to the dashboard and watches for 30 seconds when it is down.
rac resource [resourceName]ConsoleChecks one resource and says whether Raven is installed in it. The name has to match a loaded resource.
rac ban [playerId] [reason]BothBans an online player by server id. In game the reason is required and the ban is refused without one. From the console it is optional.
rac kick [playerId] [reason]BothKicks an online player by server id. The reason is optional in both places.
rac unban [banId] [reason]BothLifts a ban by its id. The reason is optional.
rac clear [peds|vehicles|objects|all]BothAsks the dashboard to delete world entities. The argument is required. The console path is off until you turn it on.
rac install [resourceName]ConsoleWrites Raven into one resource, or into every resource when the name is left off.
rac uninstall [resourceName]ConsoleRemoves Raven from one resource, or from every resource when the name is left off.
rac updateConsoleDownloads the newest build and writes it into the Raven folder without restarting the anticheat.
rac update --forceConsoleDownloads the build and restarts the anticheat so it takes effect. "rac update force" is accepted too.
Where says which origins accept it. What each one needs in game is the table below, and the console needs none of it.

What each subcommand needs in game

Reaching the rac command at all needs an in-game staff row. Past that, each subcommand reads one ability off that row, and a row with nothing ticked can print the help and nothing else. There is no second route: no ace right, no server.cfg value and no console convar widens what a player in game may do. See Ace permissions for what became of the old rac.* rights.

SubcommandAbility it readsNotes
racplayers:viewThe menu will not open without it, and it is the ability every other one is useless without, so it is held ticked for you as soon as you tick anything else.
rac helpNothing beyond a staff rowPrinting the six in-game lines is not gated on an ability.
rac banplayers:banChecked before the player id is even read, so a refusal costs nothing.
rac kickplayers:kickSame check, same place.
rac unbanbans:removeThe same ability the menu reads for lifting a ban.
rac clearentities:peds, entities:vehicles, entities:objectsOne per type asked for, so rac clear all needs all three. The dashboard checks the player a second time on top of this.
Console-only subcommands are left out because the console is never checked against an ability.

Status and info

rac status and rac resource

Both are console only and both just read. rac status prints the build version and how many of your resources are protected. rac resource esx_ambulancejob checks one resource by its exact name and says whether Raven is installed in it, or that the resource was not found.

rac dashboard

Reports the live WebSocket link between the server and the dashboard. When it reports a disconnection it also starts a one-off watcher that prints Dashboard: reconnected. if the link comes back within 30 seconds, and otherwise tells you to check your license, the server IP and that ws.ravenac.net is reachable.

Line printedWhat it means
Dashboard: connected over WebSocket. Last activity 4 seconds ago.Healthy. The seconds count from the last contact.
Dashboard: connected over WebSocket.Healthy, but no contact has been timed yet this run, so there are no seconds to print.
Dashboard: disconnected (last activity 96 seconds ago). Trying to reconnect...The link dropped after working at least once. Raven keeps retrying on its own.
Dashboard: not connected yet. Trying to reach it...The link has never come up this run.
Dashboard: not initialized yet. The license is still being verified.Verification has not finished, so there is nothing to report yet.

Moderate players

Ban, kick and unban all go through the dashboard, so the server has to be verified and reachable. A ban is recorded first and the player is dropped afterwards, which is why the command answers with a ban id rather than instantly.

A ban typed in game needs a reason written after the player id. Without one it is refused and no ban is recorded, because the reason is what every surface shows afterwards and what the player reads on the way out. A kick in game falls back to Kicked by an admin. and the console may ban without a reason the same way.

On resource 1.8.9 and newer a refusal from the dashboard carries its own reason, so an unban for an id that does not exist reads Ban not found rather than looking like a lost connection. An IP-lock refusal is rewritten so the address is never printed; see IP reset requests. On an older resource most refusals read the generic connection line whatever the dashboard said.

MessageWhat it means
Server is not verified. Cannot execute commands.The license has not been confirmed. Check the key and that the server can reach the dashboard.
You do not have permission to run Raven admin commands.In game with no in-game staff row on that server, so there is nothing to check an ability against. An ace right does not get past this. Repeated for the same player at most once every 5 seconds.
You do not have permission for that.In game with a staff row that does not hold the ability this subcommand needs, which is the table above. The same line covers a clear where one of the requested types is missing.
This command can only be run from the server console.A console-only subcommand typed in game.
Refused. Resource "myscript" tried to run "rac ban" through ExecuteCommand.Another resource called the command. Every subcommand is refused this way, not just clear.
Usage: rac ban [playerId] [reason]The player id was missing or not a number.
A ban needs a reason. Usage: rac ban [playerId] [reason]In game only. A ban typed with no reason after the id is refused and nothing is recorded. A kick does not need one.
Player 12 is not online.Nobody is connected on that server id.
You cannot use this command on yourself.In game only. The console has no id to compare against.
That player is staff at your level or above. Change their row on the dashboard first.In game only, on a kick or a ban. An Admin can act on a Moderator, a Moderator on anybody who is not staff, and neither on their own level. The console can ban or kick anyone.
Ban not found.The dashboard has no ban with that id. Resource 1.8.9 and newer passes the reason straight through.
This server is not on the IP its Raven license is locked to. The owner can request an IP reset from the dashboardThe license is locked elsewhere. The address itself is never printed.
Failed to connect to ban APIThe reply could not be read at all: the dashboard was out of reach, or the FiveM artifact drops refused replies. The same line exists for kick and unban.
In game these arrive as a notification and are printed to the console as well.

Rate limits

Each limit is counted per player, and every console caller shares one bucket. On top of the bursts below, only one rac command per caller may be waiting on the dashboard at a time: a second one reads Raven is still waiting on your last command. Let it answer before running another one. and that hold clears after 30 seconds even if the first never answers.

CommandBurstWindow
rac ban310 seconds
rac kick310 seconds
rac unban310 seconds
rac clear160 seconds
Going over reads: You are running "rac ban" too fast. Try again in N seconds.

Install and update

rac install writes Raven into one resource, or into every resource when you leave the name off. Each resource reports back as installed or failed and you get a final tally. From 1.9.3 it leaves out every resource on the Resources Installation whitelist, and refuses a whitelisted resource you name until you take it off the list. rac uninstall is the reverse, and is what to run before you share or edit a resource so it goes back to its original files.

rac update updates Raven itself: it downloads the newest build and writes it into the Raven resource folder. It does not touch your other resources, and re-applying Raven across those is rac install. Run by hand without --force it leaves the anticheat running on the old files and prints Files updated without restarting. Run "rac update --force" to restart the anticheat and apply them. With --force it refreshes and restarts the resource. An update Raven starts on its own, because the cloud said the build was out of date, restarts without being asked.

Clear the world

rac clear [peds|vehicles|objects|all] deletes world entities of the chosen kind, and all clears peds, vehicles and objects together. The argument is required: with none, the command prints its usage line and clears nothing. Players keep their own characters, though clearing vehicles removes the ones they are driving.

In game it is checked twice over. The game server reads the player's own row first and needs the ability for every type asked for, so rac clear all needs all three. Then the request goes to the dashboard, which matches the player to a dashboard account by their discord: identifier and checks the same three World ticks there. A refusal is reported as it was given, and so is a failure that happened after approval, with the counts that went through before it stopped. Every approved clear is written to the Activity Log with who asked for it and how many entities went.

The admin menu

In game, rac with nothing after it opens the admin menu, and typing it again closes it. That needs players:view. The menu mirrors the dashboard rather than inventing its own layout, and each thing it does is gated on its own ability, so a staff member who can open the menu does not automatically get everything inside it.

PageWhat it holdsAbilities it reads
OverviewProtection and uptime cards, trust spread, the players-online chart, the lowest-trust watch list and the message composer.players:view, and the composer on players:message or players:announce
Players ListEvery connected player with trust, ping, play time and vitals, plus kick, ban, watch and the Staff panel.players:kick, players:ban, players:stream, players:message, moderators:view, moderators:edit, moderators:whitelist
Multi StreamUp to six player screens side by side.players:stream
WorldClear peds, vehicles or objects, and the same message composer.entities:peds, entities:vehicles, entities:objects, and the composer on players:message or players:announce
Bans ListThe active bans, opening one for its evidence, and lifting it.bans:view, bans:remove
All five sit in the sidebar for anyone who can open the menu, because players:view is what opened it, and a control you hold no ability for is drawn greyed out with the reason on hover. The Bans List is the odd one: the summary list arrives with the menu whether or not you hold bans:view, and that ability gates opening one ban to read its evidence and the refresh that follows a ban changing, rather than the list you first see.

Below the five pages the sidebar has a footer of its own, holding two icon-only buttons rather than a sixth page: a cog that opens Menu Settings, and an arrow that narrows the sidebar to its icons and widens it again. Both keep a label for a screen reader even though neither shows one on screen. The header carries a search box that matches a player or ban by name or id, and it is cleared whenever you change page.

Acting on a player

Picking a player on the Players List opens a panel with their vitals and a row of actions. Kick needs players:kick, Ban needs players:ban, Live stream needs players:stream and Message needs players:message. Each one you do not hold is drawn as a disabled button whose hover text says so, rather than being hidden, so the panel reads the same for everybody and nobody wonders whether a button exists.

From resource 1.9.2, Live stream also works on yourself, which is a quick way to see what a stream shows before you rely on it. Your own row in the Multi Stream picker and your own stream tile carry a You tag. When a stream fails to open or is cut off, its tile now says why, for example that the server is not connected to Raven, the link expired, or too many live views were opened at once.

Both Kick and Ban open a small composer rather than firing at once. A kick may be sent with it empty and falls back to the standard reason; a ban cannot, and the Ban button stays disabled with Type why this player is being banned. until something is written. The cap is 160 characters either way. The game server checks the same thing again when the request arrives, so a ban with no reason is refused there too.

Kick and Ban also read the levels. A Moderator may act on anybody who is not staff, an Admin may act on a Moderator as well, and neither may act on their own level or on themselves. The button is disabled with You cannot act on someone at your own level or above., and a request sent past it answers That player is staff at your level or above. Change their row on the dashboard first.

The Staff panel

The same player panel carries a Staff card for anyone holding one of the three moderator abilities. It shows that player's in-game level, whether they are whitelisted, and which of the fourteen abilities they hold, and it offers the four management actions to an Admin.

On the Staff panelAbilityWhat happens today
Reading a level, a whitelist and an ability listmoderators:viewWorks. The panel lists all fourteen abilities and ticks the ones that player holds.
Make moderator, Edit abilitiesmoderators:editOffered to an Admin acting on a Moderator, checked against every rule, and then not saved.
Remove moderatormoderators:editSame: offered, checked, not saved.
Give whitelist, Take whitelistmoderators:whitelistSame: offered, checked, not saved.

The roster the panel reads walks the connected players only, because the game server cannot read your moderator list itself. A staff member who is offline, and a row you tagged by identifier for somebody who has never connected, do not appear there at all. Reads are capped at six in 15 seconds and each write at three in 30 seconds. See Admins and moderators for the rules in full.

Filter and sort

Players List, Multi Stream and Bans List each carry a Filter control and a separate Sort control, to the same model as the dashboard, so a band means the same thing in both halves of the product. Filter takes as many choices at once as you like. Sort takes one key and a direction and narrows nothing.

Choices on different fields narrow each other, and choices on the same field widen it. Role Admin with Ping 150+ is the admins who also have a high ping; Trust 0-19 with Trust 20-39 is either band. A player carries every role that applies, so an admin who is also whitelisted matches both. The age bands on the Bans List overlap the way the dashboard's do, so Last 7 days includes the last 24 hours and Last 30 days includes the last week.

FilterPagesChoices
RolePlayers List, Multi StreamAdmin, Whitelist, Neither
TrustPlayers List, Multi Stream80 - 100, 60 - 79, 40 - 59, 20 - 39, 0 - 19, Not rated
PingPlayers List, Multi StreamUnder 50, 50 - 99, 100 - 149, 150+
Play timePlayers List, Multi StreamUnder 1h, 1 - 10h, 10h+
StreamMulti StreamWatching, Not watching
KindBans ListManual, Detection
Banned byBans ListAdmin, Console, Resource
AgeBans ListLast 24h, Last 7 days, Last 30 days, Older
Banned by carries nothing for a detection ban, so picking any of its three values hides every detection ban.
PageSort keysOpens on
Players ListDefault, Name, ID, Trust, Ping, Play timeDefault, ascending
Multi StreamDefault, Name, ID, Trust, Ping, Play timeDefault, ascending
Bans ListDate, NameDate, descending
Default is the order the menu has always used, admins first and then the lowest trust, so it stays the default rather than being an order you cannot escape.

The bar itself holds the Filter button, which carries a badge with the number of choices held, the Sort button, one removable token per active choice, and the count, which reads 12 of 48. Clear all is inside the Filter panel, at the top beside Filter by, and it is greyed out while nothing is held. A list the filters emptied says how many filters are hiding everything and offers to clear them there, rather than reading as an empty server. Both controls live in the menu for the session only and are per page, so nothing leaks from one page to another and nothing survives a reconnect.

Messaging from the menu

The Overview and the World page carry the same Message panel, so writing to somebody is never a walk across the menu. It is one composer with a Direct message or Announcement choice at the top of it, the same shape as the dashboard's. The cap and the counter follow the mode, text you have already typed survives a switch, and the mode and the half-written draft are one choice across both pages rather than one each. Both kinds carry the name of the admin who sent them. The game server trims by characters rather than bytes, so text in Cyrillic, Chinese or another non-Latin script arrives whole.

ModeAbilityCharactersReachesLimit
Direct messageplayers:message2401 to 20 players you pick4 every 20 seconds
Announcementplayers:announce200every screen on the server1 a minute, and 1 every 20 seconds across all admins
A refusal says how long is left. Anyone who left between your picking them and your pressing send is skipped and the rest still get it.

The switch only offers what you hold, because the two abilities are separate and neither is ever included in a broader grant. Holding both opens the composer on Announcement: that is the mode with no picker in it, which is what lets the composer sit in the Overview's row of cards instead of turning a glance screen into a form, and it is the mode that can send the moment it opens, where a direct message cannot until somebody has been picked. Holding one means the composer opens in that mode with no switch drawn, so a staff member with direct messages alone never meets an announcement default they could not have used. Holding neither means no composer. The server checks the ability again on the way in, so this is about not offering something that would be refused rather than about security.

Players online

The chart on the Overview is built from hourly samples, newest on the right, and the game server keeps at most 24 of them. The first sample is taken the moment Raven starts, so the label counts intervals rather than samples: one sample reads Since startup, two read Last hour, and a full buffer reads Last 23 hours, which is the longest span the panel can print. The span is also held down by how long the server has been up, so a server six hours into its run says Last 6 hours rather than claiming a day it has not been up for. A sample a minute over one hour, which is what it used to be, told an admin nothing the Players List was not already showing.

The peak printed beside the span is the highest of the hourly samples on the line, so it is the highest point you can see and it can miss a rush that came and went between two samples. The Peak online line on the Protection card catches those, because it is checked every minute, so it can be a number no point on the line reaches.

The Acted on card and the Peak online line count from when the anticheat last started, and their label says over what. They read this uptime when that is within two minutes of the whole time the server has been up, and in 25m or similar when Raven was restarted on a server that stayed up, so neither claims the span on the Uptime card beside them. For the first minute after such a restart they read in <1m.

When the menu loses touch

The menu is fed by a push from the game server every two seconds. A push cannot tell you that pushes have stopped, so a timer watches for silence instead, and there are three different things that silence can mean.

What happenedWhat you seeHow much it takes over
The game server stopped pushing for more than 8 secondsConnection lostReplaces the body. The sidebar and header stay where they are.
Your own machine reports it is offlineNo network connectionReplaces the body. Worded apart because the remedy is different.
The dashboard did not answer the ban fetchCloud unreachableShows inside the Bans List only. The players list and the world controls keep working, and it retries on its own.

Recovery is automatic in every case. The next push clears it with no reload and nothing to click, so it is never a state you can get into and not out of. That same push is what carries the abilities, so an ability taken off somebody on the dashboard while their menu is open is gone from it within a couple of seconds rather than at their next connect.

Settings

The cog in the sidebar footer opens Menu Settings. It needs no ability of its own: it changes how the menu draws for you and reaches nothing on the server.

SettingDefaultWhat it does
Menu text size50%A slider from 0 to 100% in steps of 5, with 50% marked as the normal size. It scales the text only: the window, the cards and their padding hold still.
Keep game controls while the menu is openOffLets the game keep receiving input underneath, so you can walk and look around with the menu up. Typing still goes to the menu.
Lock the menu in placeOffStops the window being dragged or resized. It is still kept on screen if the resolution changes.
None of them is saved anywhere. All of them hold for the rest of the session and are back to their defaults the next time the player connects, because a setting stored on a player's machine is one more thing for a cheat to read.

Granting in-game access

There is nothing to put in server.cfg for this. On the dashboard, under Management, open In-Game Moderators, add the player's identifier, tick In-game staff and tick the abilities they need. If they are connected, Moderator Access on their card in the Players List opens the same screen without your having to copy an identifier. A change to a connected server takes effect in that session.

System command permission

Install, uninstall, and update read and write resource files, which needs permission to run system commands. If that permission is missing, Raven stops and prints the two lines to add. Put them in your server.cfg (swap rac for your resource folder name) and restart the server.

server.cfg
add_ace resource.rac command allow
add_unsafe_child_process_permission "rac"

These two are about what the Raven resource itself may do on the host, and have nothing to do with the rac.* player rights. The add_ace line is also what lets Raven stop itself if your license expires while the server is running. Without it Raven tears its detections down, stays loaded and asks you to run stop rac by hand. See Troubleshooting. It also lets Raven restart once an update has written the new files. Without it, resource 1.8.9 and newer prints Restart the anticheat to apply the update: ensure rac instead, and the update takes effect when you run that.