TIMMYG Studios

Troubleshooting

Common issues and solutions for Tommy's Radio system.

Troubleshooting

Microphone Issues

Problem: Microphone not working in-game

  1. Open radio → ST → navigate with arrow keys → select a different microphone device
  2. 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 ECONNREFUSED

Port Testing

  1. Start the radio resource on your server
  2. Go to portchecker.co
  3. Enter your server IP and port (e.g., 192.0.2.100:7777)
  4. 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.

  1. Verify the port is added in your panel's Network/Ports/Allocations section
  2. Confirm you are NOT using the FiveM (30120) or txAdmin (40120) ports
  3. Set port in config.lua: serverPort = 50978 and serverAddress = "http://192.0.2.100:50978/"
  4. Restart the entire server from the panel
  5. Test with portchecker.co
  6. 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."
ProviderCommon IssueSolution
Gravel HostPort added but not openRequires ticket
RocketNodeOnly 2 ports visibleRequest 3rd port via ticket
VibeGamesPanel changes don't applyContact support
ZAP HostingAllocation not activeRestart server or contact support

VPS / Dedicated Server

Ubuntu/Debian:

sudo ufw allow 7777
sudo ufw reload

CentOS/RHEL:

sudo firewall-cmd --permanent --add-port=7777/tcp
sudo firewall-cmd --reload

Windows Server:

netsh advfirewall firewall add rule name="Radio Voice Server" dir=in action=allow protocol=TCP localport=7777

Checklist

  • fx_version 'bodacious' in fxmanifest.lua
  • Port not in use (not 30120 or 40120)
  • serverPort and serverAddress use the same port
  • Resource starts without errors
  • Tested with portchecker.co while resource is running

Error Reference

ErrorCause
ECONNREFUSEDPort blocked, wrong IP/port, or firewall issue
Invalid URLWrong serverAddress format — try serverAddress = ""
xhr poll errorPort 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: timeout

Cause: 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 ECONNREFUSED or 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.

  1. Open app, login with 141
  2. Click settings cog (⚙️) at top-right
  3. Change Endpoint URL to http://YOUR_IP:YOUR_PORT/
  4. Save — app refreshes
  5. Login with your dispatchNacId from config.lua

"Where Do I Get the NAC Code?"

You create it in config.lua — it's your dispatch panel password:

config.lua
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

IssueFix
Can't activate Signal 100NAC ID must match dispatchNacId in config
Panic not visibleCheck visibleToNacs in channel GPS config
No emergency soundsSet 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

SymptomSolution
No voice at allCheck NAC ID has channel access in allowedNacs
No background effectsSet playTransmissionEffects = true
Volume too lowAdjust voiceVolume and sfxVolume in config.lua
Static/interferenceCheck bonkingEnabled setting

Configuration Issues

IssueFix
Can't connect to channelCheck allowedNacs includes the player's NAC ID
Can't scan channelCheck scanAllowedNacs includes the player's NAC ID
Wrong permissionsReview getUserNacId function logic
Can't see zoneAdd NAC ID to the zone's nacIds array

Debug Logging

Set Config.logLevel in config.lua:

LevelOutput
0Errors only
1Warnings
2Minimal
3Normal (default)
4Detailed
5Verbose

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 .zip to 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:

Binary transfer mode — set Transfer Type to Binary in FileZilla's Transfer menu

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

  1. Download the latest recommended artifact from https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/
  2. Turn off your server
  3. Delete the cache and alpine folders
  4. Unzip with: tar -xf fx.tar.xz
  5. Start the server and run version to 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:

  1. Check server console for errors
  2. Test on the demo server
  3. Verify port is open with portchecker.co

Forum: FiveM Community Post

When reporting issues, include:

  • Console error messages
  • Relevant config.lua sections
  • Server framework (QBCore, ESX, etc.)

On this page