Skip to main content

Install the radio

About 10 minutes, in four parts. Do them in order: each part ends with a check, so you know it worked before you move on.

PartWhereYou get
1. Check HTTPSyour browsermicrophones and FiveM can connect
2. Turn the radio on in the CADCAD admin areachannels, and the radio for dispatch
3. Install the FiveM resourceyour FiveM serverthe radio in game for units
4. Test itCAD + gamedispatch and units hear each other
You don't need to install anything for dispatch

The radio is built into the CAD. Dispatchers and admins use it straight from the CAD in their browser. Only your FiveM server needs the extra resource (part 3), so units can use it in game.

1. Check that your CAD uses HTTPS​

Open your CAD. The address must start with https://, and so must your API address.

  • ✅ https://cad.example.com: good, go to part 2.
  • ❌ http://…: the radio can listen but nobody can talk. Browsers only give the microphone to secure pages, and FiveM only connects to secure radio servers. Set up a domain with HTTPS first: NGINX reverse proxy guide (it includes the WebSocket lines the radio needs).
Where do I find my API address?

It's NEXT_PUBLIC_PROD_ORIGIN in your CAD's .env file, for example https://cad-api.example.com/v1. On a one-line install the file is /opt/snailycad/app/.env. You need this address in part 3.

2. Turn the radio on​

Sign in to the CAD as the owner or an admin.

  1. Go to Admin → CAD Settings → Features, turn on Radio, and save.

  2. Go to Admin → CAD Settings → Radio and click Add channel. Make at least one, for example:

    NameFrequencyAllow FiveM and other radios
    Dispatch 1154.430on
    Fire / EMS155.100on
    Tactical156.200on

    Leave Departments empty to let every unit use the channel. Keep Allow FiveM and other radios on, or players in game won't get the channel.

  3. Go to Admin → CAD Settings → API Token, turn it on, and copy the token. You need it in part 3. Keep it secret: it gives full access to your CAD's API.

Check: a Radio box appears in the bottom-left corner of every CAD page and says Connected. Click Talk next to a channel and hold the blue button (or the ` key) to talk.

Who sees the radio in the CAD?

Only the owner and users with the Dispatch or Manage CAD Settings permission. Units (LEO, EMS-FD) use the radio in FiveM, not in the browser. Don't see the box? Check your permissions in Admin → Manage Users.

3. Install the FiveM resource​

3.1 Copy the resource​

The resource is the folder integrations/fivem/snailycad-radio in the CAD's code. It's ready to use: no build needed.

The folder is already on your CAD server:

/opt/snailycad/app/integrations/fivem/snailycad-radio

Copy it into your FiveM server's resources folder. If FiveM runs on the same machine:

cp -r /opt/snailycad/app/integrations/fivem/snailycad-radio /path/to/fivem/resources/

If FiveM runs on another machine, download it from GitHub (other tab) or copy it over with WinSCP / FileZilla / scp.

You should now have resources/snailycad-radio/fxmanifest.lua on your FiveM server. (Putting it in a sub-folder like resources/[snailycad]/snailycad-radio works too.)

3.2 Start it​

Add this line to your server.cfg, after your framework (ESX / QBCore) and voice script:

ensure snailycad-radio

Then restart the FiveM server (or type refresh and ensure snailycad-radio in the server console).

3.3 Connect it to your CAD​

You need the API address (part 1) and the API token (part 2). Pick one way:

  1. Join your server as a server admin.
  2. A setup window opens by itself (later: type /radiosetup or press F4).
  3. Paste the API address and the API token, press Test, then Save.

Radios connect right away, no restart needed.

Check: type snailyradio_check in the server console. It prints OK and lists your channels. Not OK? See problems below.

3.4 Who gets a radio in game​

Open resources/snailycad-radio/config.lua. By default the jobs police, sheriff, ambulance and fire (ESX, QBCore and Qbox) get a radio while on duty:

Config.Jobs = {
police = { departments = { "LSPD", "BCSO", "SASP" } },
sheriff = { departments = { "BCSO" } },
ambulance = { departments = { "EMS", "LSFD" } },
fire = { departments = { "LSFD" } },
}

Add or rename jobs to match your server. departments are department names from your CAD (Admin → Values → Departments), used for channels limited to departments. Anyone with the ACE permission snailycad.radio also gets a radio:

add_ace group.admin snailycad.radio allow

Restart the resource after changing config.lua: restart snailycad-radio.

4. Test it​

  1. In the CAD (as a dispatcher or admin): in the Radio box, click Talk next to Dispatch 1.
  2. In game (as a police, sheriff, ambulance or fire player): type /radio to open the handheld and pick Dispatch 1 (or type /radiochannel Dispatch 1).
  3. Hold Caps Lock in game and talk: the CAD shows your name and plays your voice.
  4. Hold the talk button (or `) in the CAD: the player hears dispatch.

That's it, the radio is installed. 🎉

In gameKey / command
Talkhold Caps Lock
Open the handheld/radio
Change channel/radiochannel <name or frequency>
Earpiece in / out/earpiece (people nearby can't hear)
Setup (admins)/radiosetup or F4

Players can change the keys in Settings → Key Bindings → FiveM.

If something doesn't work​

ProblemFix
No Radio box in the CADTurn on Features → Radio, and check you are the owner or have the Dispatch / Manage CAD Settings permission.
The Radio box can't talk / microphone errorThe CAD isn't on https:// (part 1), or the browser blocked the microphone: click the lock icon next to the address and allow it.
snailyradio_check says 401Wrong token, or the API token is turned off (CAD Settings → API Token).
snailyradio_check says 400The Radio feature is off (CAD Settings → Features).
snailyradio_check can't connectWrong API address. It must end in /v1, and the FiveM server must be able to reach it.
OK, but no channelsAdd channels, and keep Allow FiveM and other radios on (or give the job's department access).
"You don't have a radio" in gameThe player's job isn't in Config.Jobs (or they're off duty), and they don't have snailycad.radio.
Players connect but can't talk or hearThe API must be https://. Press F8 in game and look for [snailycad-radio] messages.
Players hear two radiosAnother radio script is running (pma-voice radio, sd-phone radio, …). The resource turns off pma-voice's radio; remove other radio scripts.

More: FiveM radio reference (voice scripts, earpieces, exports for developers) · How the radio works · LiveKit for big servers

Was this page helpful?