txAdmin and Resources: How to Run Your FiveM Server
First-time txAdmin setup with the console PIN, a license key from portal.cfx.re, the lines that matter in server.cfg, and how to add resources without restarting the server.
What is txAdmin?
txAdmin is the official web panel for FiveM servers. It gives you a live console, start and stop control for the server and individual resources, a built-in CFG editor, a player database with bans and warnings, scheduled restarts, automatic restart after a crash, and Discord integration.
There is nothing to install. txAdmin has been part of FXServer since 2020 and is already in your server files.
Two ports are involved, and they are often confused:
| Port | Protocol | Used for |
|---|---|---|
30120 |
TCP and UDP | The game server itself - this is where players connect |
40120 |
TCP | The txAdmin panel in your browser |
Step 1 - First startup and your master account
- Start the server in the Potionhost control panel without
+exec server.cfgin the startup parameters. Leaving it out is exactly what starts txAdmin instead of the game server. - Open Console. An address and a PIN are printed there.
- Open the address in your browser - typically
http://your-server-ip:40120. - Enter the PIN and link your Cfx.re account to the server.
- Choose a password for the panel.
The PIN is single-use and short-lived, and it only appears in the console. If you lose it, the server has to be restarted to get a new one.
Step 2 - Set up the server itself
The setup wizard offers two routes:
Recipe deployer - a ready-made recipe that downloads resources and writes server.cfg for you. Templates exist for CFX Default, ESX Legacy and QBCore. Along the way you are asked for database details, server name and license key.
Existing server folder - point txAdmin at a folder you have already built, and at its server.cfg.
Recipes run their steps in order, and one failed step stops the whole deployment. When it fails halfway, the cause is almost always a dead download link or wrong database credentials.
Step 3 - Get your license key
The server will not start without a valid key.
- Log in to portal.cfx.re and create a server registration key.
- Put it in
server.cfg:
sv_licenseKey your_key_here
Keys come from portal.cfx.re today. Older guides point at keymaster.fivem.net, which Cfx.re is phasing out. A key belongs to one server - do not reuse it on two servers running at the same time.
Step 4 - Understand server.cfg
The file lives in your server-data folder, alongside resources. The lines you need to know:
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"
sv_hostname "My server name"
sets sv_projectName "My project"
sets sv_projectDesc "Short description"
sv_maxclients 48
set onesync on
sv_licenseKey your_key_here
#sv_master1 ""
add_ace group.admin command allow
add_ace group.admin command.quit deny
add_principal identifier.fivem:1 group.admin
ensure mapmanager
ensure chat
ensure spawnmanager
ensure sessionmanager
Two things people trip over:
sv_master1must stay commented out with the#in front. Remove the hash and your server disappears from the public list.sets sv_projectNameandsets sv_projectDescmust be filled in, otherwise the server is not listed.
Step 5 - Add a resource
- Put the resource folder in
resources/inside your server-data folder. - Check that the folder contains an
fxmanifest.lua. Without it, it is not a resource. - Add a line to
server.cfg:
ensure name-of-the-resource
Folders in square brackets are categories, not resources. The structure typically looks like this:
resources/
├── [standalone]/
│ ├── my-resource/
│ └── another-one/
└── [esx]/
└── es_extended/
You can start a whole category at once with ensure [standalone].
Order matters. The framework core (
es_extendedorqb-core) and the database layer (oxmysql) have to come before the resources that use them.
start, ensure and restart
| Command | What it does |
|---|---|
start name |
Starts the resource if it is stopped. Does nothing if it is already running |
ensure name |
Restarts the resource if it is running - and starts it if it is not |
stop name |
Stops the resource |
restart name |
Restarts, only if it is already running |
refresh |
Rescans the resources folder and discovers new resources |
Use ensure. It works from any starting point, which is why it is the recommendation in server.cfg.
If you have just added a new resource, you can bring it up without restarting the server. In the live console:
refresh
ensure name-of-the-resource
refresh on its own starts nothing - it just makes the server aware the folder exists.
Still add the ensure line to server.cfg, or it is gone after the next restart.
When does the server need a full restart?
Console commands are enough for resources. Everything else needs the server to go down:
- changes to
endpoint_add_tcp/udp,onesync,sv_maxclients,sv_licenseKeyorsv_enforceGameBuild - updating the FXServer artifact itself
- changes to the load order of framework resources
Admins and player identifiers
txAdmin administrators are managed under Admin Manager and stored in txData/admins.json. Permissions are fine-grained - players.kick, players.ban, console.write, control.server and manage.admins, among others.
A txAdmin admin is not automatically an admin in-game. In-game commands are governed by the ACE permissions in
server.cfg(add_aceandadd_principal). They are two separate systems.
Players are identified in several ways:
| Identifier | Comes from | Always present |
|---|---|---|
license |
Rockstar Online Services | Yes |
steam |
Steam | Only if Steam is running |
discord |
Discord | Only if Discord is linked |
fivem |
Cfx.re account | Yes |
ip |
The connection | Yes, but it changes |
Use license for bans and whitelists. It is always there and does not change.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| The panel is unreachable | Port 40120 is not open |
Check the port in the control panel |
| The server starts but nothing loads | Started with +exec server.cfg under txAdmin |
Remove the parameter |
| The server is not in the list | sv_master1 is not commented out |
Put the # back |
| The server is not in the list | sets sv_projectName or sv_projectDesc is missing |
Fill in both |
| The server only appears after a while | Normal propagation delay | Allow up to eight minutes |
does not have a resource manifest (fxmanifest.lua) |
The manifest is missing, or still named __resource.lua |
Add an fxmanifest.lua |
Could not find resource |
Wrong folder, wrong spelling, or refresh was not run |
Run refresh - names are case-sensitive on Linux |
| The server will not start | sv_licenseKey is still changeme, or the key is in use elsewhere |
Get a new key at portal.cfx.re |
| Config changes do nothing | Convars require a full restart | Restart the server, not just the resource |
| A resource fails on database calls | oxmysql or the framework core starts too late |
Move their ensure lines up |
| The server is capped at 48 slots | This requires a Cfx.re subscription | See Cfx.re for the current tiers |
If your players just need to reach the server, send them How to Join Your FiveM Server.