Troubleshooting
Common issues and solutions for Tommy's Radio.
Connection Issues
Symptom: "Failed to connect to radio server" or health check errors:
[Radio-Server] ERROR Health check failed after 4 attempt(s)
[Radio-Server] WARN HTTP endpoint test failed - connect ECONNREFUSEDPort Testing
- Start the radio resource
- Go to portchecker.co
- Enter your server IP and port
- Open = configured correctly | Closed = port is blocked
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 port 30120 (FiveM) or 40120 (txAdmin)
- Set both
serverPortandserverAddressinconfig.lua - Restart the entire server from the panel
- Test with portchecker.co
- If still closed, open a support ticket
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 |
Health Checks Failing Despite Working Panel
Cause: NAT hairpinning — the server tries to connect to its own public IP during startup, which many routers and hosting networks block.
Safe to ignore if ALL of these are true:
- Dispatch panel loads in your browser
- portchecker.co shows the port as Open
- Players can connect in-game
- Errors are timeout-related only (not
ECONNREFUSED)
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.
Microphone Issues
- Open radio > ST > navigate to microphone setting > select a different device
- Check FiveM permissions — ensure you clicked "Allow" for microphone access
Permission Reset
If you denied microphone permission, clear FiveM cache to get the prompt again.
Dispatch Panel
NAC Code Doesn't Work in Desktop App
The desktop app defaults to the demo server. Change the endpoint:
- Open app, login with
141(demo default) - Click the settings cog at top-right
- Change Endpoint URL to
http://YOUR_IP:YOUR_PORT/ - Save — app refreshes
- Login with your
dispatchNacId
"Where Do I Get the NAC Code?"
You create it in config.lua:
Config = { dispatchNacId = "DISPATCH2024" }Can't Talk on Dispatch Panel
Browsers block microphone access on HTTP. Use the desktop app or set up HTTPS.
Audio Problems
General
| Symptom | Solution |
|---|---|
| No voice at all | Check NAC ID has channel access in allowedNacs |
| No background effects | Enable playTransmissionEffects in admin panel |
| Volume too low | Adjust voiceVolume / sfxVolume in admin panel |
| Unwanted bonk tones | Disable bonking.playBonkTone in admin panel |
| Players talking over each other | Enable bonking.blockTransmission in admin panel |
| No radio character at all | Check radioFx.fxEnabled or radioFx.p25Enabled in admin panel |
P25 / IMBE Vocoder
| Symptom | Solution |
|---|---|
| Robotic/warped at start of transmission | Normal — WASM vocoder warming up, self-resolves after first PTT |
| Metallic buzz / warbling | Reduce mic gain in Windows sound settings (input clipping) |
| Voice sounds muffled with P25 | Disable radioFx.fxEnabled if both P25 and analog FX are active |
| First syllable cut off | Normal codec behaviour (< 10ms). Adjust pttReleaseDelay if severe |
| Dispatch hears clean Opus instead of P25 | Confirm p25Enabled = true and refresh dispatch panel |
| WASM failed to load (dispatch console) | Check resource is running and /radio/imbe_vocoder.wasm is accessible |
Analog FX Chain
| Symptom | Solution |
|---|---|
| Too muffled / telephone-like | Raise lowpassFrequency (try 4000-5000) or lower compression |
| Too tinny / harsh | Lower highpassFrequency (try 150-200) or reduce midBoost |
| Volume pumping | Lower compression (try 30-40) |
| Distorted / crackling | Lower inputGain (try 0.8-1.0) or lower distortion |
Emergency Features
| Issue | Fix |
|---|---|
| Can't activate Signal 100 | NAC ID must match dispatchNacId |
| Panic not visible | Check gps.visibleToNacs in channel config |
| No emergency sounds | Enable playTransmissionEffects in admin panel |
GPS & Tracking
If GPS blips aren't showing:
- Check NAC permissions:
gps.visibleToNacsin channel config - Enable GPS in radio settings (ST menu)
- Verify the channel has GPS configured
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 |
| Can't see zone | Add NAC ID to the zone's nacIds array |
| Wrong permissions | Review getUserNacId function logic |
Syntax Error: <\1>
Two common causes:
- Corrupted file transfer — Some FTP clients (FileZilla in ASCII mode) or Remote Desktop drag-and-drop can corrupt files. Use WinSCP or set binary transfer mode. Always transfer the
.zipand unzip on the server. - Outdated server artifact — must be build 4752 or higher
Check Server Version
Type version in your server console.
Update Server
Windows: Download latest recommended artifact from the FiveM build server
Linux:
- Download latest artifact from the Linux build server
- Stop server, delete
cacheandalpinefolders - Extract:
tar -xf fx.tar.xz - Start and verify with
version
Missing .fxap File
For Asset Escrow scripts, the .fxap file is hidden (dot-prefixed). Enable "show hidden files" in your FTP client. Ensure .fxap is not excluded by .gitignore in CI/CD pipelines.
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 output. Use only for active troubleshooting.
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.)
