Installation

Install Raven Anticheat on your FiveM server in about two minutes.

Download the build tied to your server, drop it in, add three lines to server.cfg and start it. This page also covers what Raven changes in your other resources on the first start, and how to check the install took.

Before you start

RequirementWhy
A licence on an active serverThe Download page is disabled until your account has a server, and an expired or suspended licence cannot be selected.
Edit access to server.cfgThree lines go in it, and two of them are permissions FiveM only grants from the config file.
Outbound HTTPS on port 443Raven reaches www.ravenac.net for licence and config, and wss://ws.ravenac.net for the live link. Nothing inbound is needed.
Artifacts that support fx_version 'cerulean', lua54 and node_version '22'Raven declares all three in its own manifest, and its server half is part Lua and part Node.

Install

Download the build for this server

The build you download already carries that server's licence, so there is no key to paste in afterwards. Sign in at ravenac.net, open Download in the left sidebar, pick the server you are installing on and press the download button.

Download a separate build for each server you own. The package carries one server's key in licence.key, so copying one server's files onto another fails verification.

Extract it into your resources folder

The zip holds a single rac folder. Put that folder in your resources directory.

You can rename it to anything you like, which makes it harder for a cheater to spot which resource is the anticheat. Whatever you name it is the name Raven uses in both permission lines below, so rename it before you edit server.cfg.

Add the three lines to server.cfg

Put them above everything else your config starts.

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

Replace rac with your resource name if you renamed it.

Start the server

If the server is already running, restart it rather than starting the resource on its own, so every other resource reloads with Raven's script in it.

The server.cfg lines

LineRequiredWhat it gives Raven
ensure racYesStarts the resource. Put it first so every resource that starts after it is already protected.
add_ace resource.rac command allowYesLets Raven run console commands. It checks for command.vstr specifically, and uses it to stop itself when the licence expires and to restart itself after a self-update.
add_unsafe_child_process_permission "rac"YesLets Raven read and write resource manifests, which is how it installs itself into your other resources.
set rac_allow_console_clear trueOptionalAllows rac clear to be run from the server console. Without it that command only works in game or from the dashboard, unless you set Commands.AllowConsoleClear in the config instead.

Without the ace line Raven still protects your server, but when the licence expires it cannot stop itself. It prints the stop command and stands down instead, staying loaded and taking no action against anyone until you stop it by hand. Without the child process line it cannot read or write a single manifest, so it protects nothing in your other resources and prints both lines to the console telling you to add them.

What happens on the first start

Raven installs itself into your other resources rather than asking you to edit each one. It walks every resource on the server and adds two lines to the top of that resource's fxmanifest.lua or __resource.lua:

lua
server_script '@rac/src/shared/shared.lua' -- Modified by Raven Anticheat
client_script '@rac/src/shared/shared.lua' -- Modified by Raven Anticheat

Two more lines go in only when the manifest is missing them:

Line addedAdded when
lua54 'yes'The manifest does not already mention lua54. Raven needs Lua 5.4 in the resources it protects.
fx_version 'cerulean'The file is an fxmanifest.lua and has no fx_version at all.

A resource whose manifest declares no client_script, shared_script or server_script is skipped, which is why map and asset packs never gain the lines. Auto installation runs again on every resource list refresh, so a resource you add later is picked up without restarting Raven. From resource 1.9.3 it is controlled by ResourcesInstallation.Enable and ResourcesInstallation.Automatic, which both ship on. On 1.9.2 and older it is AutoInstallation.Enable.

If you see Please add to fxmanifest.lua or __resource.lua "lua54 'yes'" in the console, that is a resource Raven could not add the line to. Add it by hand to that resource's manifest and restart it.

Check the install took

These run from the server console once Raven has verified its licence.

CommandWhat it tells you
rac statusThe running version, whether the cloud considers it outdated, and how many resources carry the injected lines. The total it prints already excludes Raven itself and any resource with no scripts.
rac dashboardWhether the WebSocket link is up and how many seconds ago it last saw activity.
rac resource <name>Whether one particular resource has the lines in its manifest.
rac install <name>Installs into one resource, or all of them when you leave the name off. From 1.9.3 it skips every whitelisted resource and refuses to install into one by name.
rac uninstall <name>Takes the two script lines back out of one resource, or all of them.
The full command set, including the in-game ones, is on the Commands page.

Where your settings live

If the dashboard shows offline

Check the link first

Run rac dashboard. It says outright whether the WebSocket is connected and, if it is not, keeps watching for thirty seconds and reports when it comes back. There are no ports to forward and no proxy host to set: the resource dials out, so the only thing that can block it is outbound HTTPS being filtered.

Then check the licence

Raven reads licence.key from its own folder at start and refuses to run without a valid one. The licence is also locked to the IP the server logged in from, so a build moved to a new host stops verifying until the lock is reset. See IP reset requests for that, and Troubleshooting for everything else.