Use these interactive checklists to systematically troubleshoot issues. Your progress is saved locally in your browser.
If your FiveM server fails to start, work through this checklist in order:
How to verify each item:
License key configured:
# Check server.cfg
grep "sv_licenseKey" /opt/fivem/server.cfg
# Should show: set sv_licenseKey "your-key-here"
# Verify key at: https://keymaster.fivem.net/Ports not in use:
# Find process using port 30120
sudo lsof -i :30120
# If output shows a process, kill it: sudo kill -9 <PID>
# Or use: sudo fuser -k 30120/tcpDatabase running:
# Check service status
sudo systemctl status mariadb
# or
sudo systemctl status mysql
# Test connection
mysql -u root -p -e "SELECT 1;"Resources exist:
# List resources in server.cfg
grep "^ensure\|^start" /opt/fivem/server.cfg | awk '{print $2}' | while read res; do
if [ ! -d "/opt/fivem/resources/$res" ]; then
echo "Missing: $res"
fi
doneServer.cfg syntax:
# Basic syntax check (look for common errors)
# Check for unclosed quotes
grep -n '"' /opt/fivem/server.cfg | awk -F'"' 'NF%2==0 {print "Possible unclosed quote at line", NR}'Disk space:
df -h /opt/fivem
# Ensure at least 5GB free (10GB+ recommended)Memory:
free -h
# Check "available" column, should be >2GBCheck logs:
# View last 50 lines of server log
tail -n 50 /opt/fivem/logs/server.log
# Search for errors
grep -i "error\|failed\|exception" /opt/fivem/logs/server.log | tail -20If players cannot connect to your server, verify these items:
How to verify each item:
Server is running:
# Check process
ps aux | grep FXServer
# Should show FXServer process
# Check systemd service
sudo systemctl status fivem
# Should show "active (running)"Firewall allows port:
# UFW
sudo ufw status | grep 30120
# Should show: 30120/tcp and 30120/udp ALLOW
# firewalld
sudo firewall-cmd --list-ports | grep 30120
# Should include: 30120/tcp 30120/udpPort forwarding:
nc -zv your-public-ip 30120Server not full:
# Check server.cfg
grep "sv_maxclients" /opt/fivem/server.cfg
# Default is usually 32 or 64
# Check current players via txAdmin or in-gameLicense key valid:
Network connectivity:
# From external machine (not your server)
nc -zv your-server-ip 30120
# Should return: Connection to your-server-ip 30120 port [tcp/*] succeeded!
# Test from server itself
nc -zv localhost 30120Check server logs:
# Look for connection attempts
grep -i "connect\|join\|player" /opt/fivem/logs/server.log | tail -20
# Check for authentication errors
grep -i "auth\|license\|key" /opt/fivem/logs/server.log | tail -20If you’re experiencing database connection or query errors:
How to verify each item:
Database service running:
# Check service status
sudo systemctl status mariadb
# or
sudo systemctl status mysql
# Should show "active (running)"
# Start if stopped
sudo systemctl start mariadbCredentials correct:
# Test connection with credentials
mysql -u your_username -p -h localhost
# Enter password when prompted
# Should connect successfullyDatabase exists:
# List all databases
mysql -u root -p -e "SHOW DATABASES;"
# Check for your FiveM database (usually 'fivem' or framework name)
mysql -u root -p -e "SHOW DATABASES LIKE 'fivem';"Tables created:
# List tables in database
mysql -u root -p fivem -e "SHOW TABLES;"
# Should show tables like: users, vehicles, items, etc.
# If empty, import SQL files from framework/resourcesFirewall database port:
# For local connections, port 3306 should be accessible from localhost
# Test connection
mysql -u root -p -h 127.0.0.1 -e "SELECT 1;"
# If using remote database, ensure firewall allows:
sudo ufw allow from your-app-ip to any port 3306Connection string:
# Check resource configs (example for oxmysql)
grep -r "mysql://" /opt/fivem/resources/*/config.*
# Format should be: mysql://username:password@host:port/database
# Example: mysql://fivem:password123@localhost:3306/fivemCheck database logs:
# MySQL error log location varies by distro
# Ubuntu/Debian
sudo tail -f /var/log/mysql/error.log
# CentOS/RHEL
sudo tail -f /var/log/mariadb/mariadb.log
# Look for connection errors, authentication failures, or query errorsIf resources fail to start or function incorrectly:
How to verify each item:
Resource exists:
# List resources
ls -la /opt/fivem/resources/
# Check specific resource
ls -la /opt/fivem/resources/your-resource-name/
# Should show: fxmanifest.lua, client/, server/, etc.fxmanifest.lua valid:
# Basic syntax check (Lua will parse it)
lua -e "dofile('/opt/fivem/resources/your-resource-name/fxmanifest.lua')"
# Should not produce errors
# Check for common issues:
# - Missing quotes around strings
# - Unclosed brackets
# - Invalid fx_versionDependencies installed:
# Check fxmanifest.lua for dependencies
grep -i "dependency\|depend" /opt/fivem/resources/your-resource-name/fxmanifest.lua
# Verify each dependency exists
# Example output: dependency 'oxmysql'
# Then check: ls -d /opt/fivem/resources/oxmysqlDependencies started:
# Check server.cfg order
grep -n "ensure\|start" /opt/fivem/server.cfg
# Dependencies should appear BEFORE the resource that needs them
# Example:
# ensure oxmysql
# ensure your-resource-name # <- This comes after dependenciesScripts syntax:
# For Lua files
lua -l /opt/fivem/resources/your-resource-name/client/client.lua
# Should not produce syntax errors
# For JavaScript files
node --check /opt/fivem/resources/your-resource-name/client/client.js
# Should return no errors
# Check all scripts in resource
find /opt/fivem/resources/your-resource-name -name "*.lua" -exec lua -l {} \;Check resource logs:
# Server log filtered for this resource
grep -i "your-resource-name" /opt/fivem/logs/server.log | tail -20
# Look for:
# - "Started resource your-resource-name"
# - Error messages specific to this resource
# - Missing file errors
# - Export/import errorsIf you’ve completed all relevant checklists and the issue persists:
Gather information:
Check additional resources:
Provide details when asking for help: