Troubleshooting
Common issues and solutions for Tommy's Radio system.
Microphone Issues
Problem: Microphone not working in-game
- Open radio → ST → navigate with arrow keys → select a different microphone device
- Check FiveM permissions — ensure you clicked "Allow" for microphone access
Permission Reset
If you denied microphone permission, clear FiveM cache to get the permission prompt again.
Connection Issues
Problem: "Failed to connect to radio server"
Console errors indicating a blocked port:
[Radio-Server] ERROR Health check failed after 4 attempt(s)
[Radio-Server] WARN HTTP endpoint test failed - connect ECONNREFUSEDPort Testing
- Start the radio resource on your server
- Go to portchecker.co
- Enter your server IP and port (e.g.,
192.0.2.100:7777) - ✅ Open = configured correctly | ❌ Closed = port is blocked (see below)
Web Panel Hosting
Common with Pterodactyl-Based Hosts
Many providers (Gravel Host, RocketNode, VibeGames, etc.) require a support ticket to actually open the port, even after adding it in the panel.
- Verify the port is added in your panel's Network/Ports/Allocations section
- Confirm you are NOT using the FiveM (30120) or txAdmin (40120) ports
- Set port in
config.lua:serverPort = 50978andserverAddress = "http://192.0.2.100:50978/" - Restart the entire server from the panel
- Test with portchecker.co
- If still closed, open a support ticket: "Need port [YOUR_PORT] opened for voice server. Port added in panel but shows closed on port checker."
| Provider | Common Issue | Solution |
|---|---|---|
| Gravel Host | Port added but not open | Requires ticket |
| RocketNode | Only 2 ports visible | Request 3rd port via ticket |
| VibeGames | Panel changes don't apply | Contact support |
| ZAP Hosting | Allocation not active | Restart server or contact support |
VPS / Dedicated Server
Ubuntu/Debian:
sudo ufw allow 7777
sudo ufw reloadCentOS/RHEL:
sudo firewall-cmd --permanent --add-port=7777/tcp
sudo firewall-cmd --reloadWindows Server:
netsh advfirewall firewall add rule name="Radio Voice Server" dir=in action=allow protocol=TCP localport=7777Checklist
-
fx_version 'bodacious'in fxmanifest.lua - Port not in use (not 30120 or 40120)
-
serverPortandserverAddressuse the same port - Resource starts without errors
- Tested with portchecker.co while resource is running
Error Reference
| Error | Cause |
|---|---|
| ECONNREFUSED | Port blocked, wrong IP/port, or firewall issue |
| Invalid URL | Wrong serverAddress format — try serverAddress = "" |
| xhr poll error | Port not accessible from the internet |
Still Not Working?
Contact your hosting provider with: server IP, port number, screenshot of the port in your panel, and portchecker.co result.
Health Checks Failing Despite Working Panel
Problem: Dispatch panel loads fine, portchecker.co shows Open, but console reports health check failures:
[Radio-Server] ERROR Port 3022 not reachable from public internet.
[Radio-Server] ERROR Technical Details: HTTP: HTTP connection timeout | Socket.IO: Socket connection failed: timeoutCause: NAT hairpinning — the server tries to connect to its own public IP during startup, which many routers and hosting networks silently block.
This can be safely ignored if ALL of the following are true:
- ✅ Dispatch panel URL loads in your browser
- ✅ portchecker.co shows the port as Open
- ✅ Players can connect to the radio in-game
- ✅ Errors are timeout-related only (not
ECONNREFUSEDor similar)
When NOT to Ignore
If errors mention ECONNREFUSED, EACCES, or EADDRINUSE, or if players cannot connect in-game, the failure is real — investigate using the sections above.
Success Indicators
When everything is configured correctly:
[Radio-Server] ℹ Started Radio Server - Running Checks...
[Radio-Server] ℹ HTTP endpoint test passed (attempt 1/4)
[Radio-Server] ℹ Socket.IO connection test passed (attempt 1/4)
╭────────────────────────────────────────────────────╮
│ │
│ ✅ Tommy's Radio - System Ready │
│ │
│ Version: v3.1 │
│ Status: Started - All Systems Operational │
│ Panel: http://192.0.2.100:7777/ │
│ NAC ID: 141 │
│ FX Ver: bodacious │
│ Config: 3 zones, 12 channels │
│ │
╰────────────────────────────────────────────────────╯Dispatch Panel Problems
NAC Code Doesn't Work in Desktop App
The desktop app defaults to the demo server.
- Open app, login with
141 - Click settings cog (⚙️) at top-right
- Change Endpoint URL to
http://YOUR_IP:YOUR_PORT/ - Save — app refreshes
- Login with your
dispatchNacIdfromconfig.lua
"Where Do I Get the NAC Code?"
You create it in config.lua — it's your dispatch panel password:
Config = { dispatchNacId = "DISPATCH2024" }Login at http://yourip:port/ using whatever you set.
Can't Talk on Dispatch Panel
Browsers block microphone access on HTTP. Use the desktop app (recommended) or set up HTTPS.
Emergency Features
| Issue | Fix |
|---|---|
| Can't activate Signal 100 | NAC ID must match dispatchNacId in config |
| Panic not visible | Check visibleToNacs in channel GPS config |
| No emergency sounds | Set playTransmissionEffects = true |
GPS & Tracking
If GPS blips aren't showing:
- Check NAC permissions in channel config (
gps.visibleToNacs) - Enable GPS in radio settings (ST menu)
- Verify the channel has GPS configured:
gps = { color = 54, visibleToNacs = { "141" } }
Audio Problems
| Symptom | Solution |
|---|---|
| No voice at all | Check NAC ID has channel access in allowedNacs |
| No background effects | Set playTransmissionEffects = true |
| Volume too low | Adjust voiceVolume and sfxVolume in config.lua |
| Static/interference | Check bonkingEnabled setting |
Configuration Issues
| Issue | Fix |
|---|---|
| Can't connect to channel | Check allowedNacs includes the player's NAC ID |
| Can't scan channel | Check scanAllowedNacs includes the player's NAC ID |
| Wrong permissions | Review getUserNacId function logic |
| Can't see zone | Add NAC ID to the zone's nacIds array |
Debug Logging
Set Config.logLevel in config.lua:
| Level | Output |
|---|---|
| 0 | Errors only |
| 1 | Warnings |
| 2 | Minimal |
| 3 | Normal (default) |
| 4 | Detailed |
| 5 | Verbose |
Levels 4–5 produce extensive console output. Use only for active troubleshooting.
Error: syntax error near <\1>
This error has two common causes:
- Files were corrupted during transfer — Some FTP clients (e.g. FileZilla in ASCII mode) or methods like dragging and dropping files via Remote Desktop can corrupt script files. Use WinSCP or ensure your FTP client is set to binary transfer mode. Always transfer the
.zipto the server and unzip it there — never move files one-by-one. - Your server artifact is outdated — your server must be build 4752 or higher.
Set Binary Transfer Mode
If your FTP client is transferring in ASCII mode, it can silently corrupt script files. Re-upload the entire resource using binary transfer mode:

How Can I Check My Server Version?
Type version into your server console and press Enter. The current build number will be printed.
How to Update Your Server
Windows
Watch this guide: https://www.youtube.com/watch?v=aXCgN07a-yY
Download the latest recommended Windows artifact from: https://runtime.fivem.net/artifacts/fivem/build_server_windows/master/
Remove your old server folder and replace it with the newly downloaded version.
Linux
- Download the latest recommended artifact from https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/
- Turn off your server
- Delete the
cacheandalpinefolders - Unzip with:
tar -xf fx.tar.xz - Start the server and run
versionto confirm the new build
Asset Escrow: Missing .fxap File
If you are using an Asset Escrow (AE) encrypted script and only some servers are affected (not reproducible on a clean install), the cause is likely a missing .fxap file.
Hidden Files
The .fxap file is a hidden file (dot-prefixed). Many FTP clients do not show hidden files by default — enable "show hidden files" in your client's settings before copying resources. If you use a CI/CD pipeline (e.g. git-based deployments), ensure .fxap is not excluded by .gitignore or similar rules.
Support
Before asking for help:
- Check server console for errors
- Test on the demo server
- Verify port is open with portchecker.co
Forum: FiveM Community Post
When reporting issues, include:
- Console error messages
- Relevant
config.luasections - Server framework (QBCore, ESX, etc.)