Operate your server with txAdmin
txAdmin is the cockpit for your server. It ships bundled inside FXServer, so there is nothing extra to install. Five panels do 95% of the work: Live Console, Players, Resources, CFG Editor, Settings, and the in-game txAdmin menu (opened with /tx or a key you bind). Recipes are not a persistent panel; you meet them once during first-time setup in the Server Deployer. We'll click through the panels, then join the server yourself and learn the reload commands and console-reading habits every developer memorizes. By the end you are ready for Lua.
Build it
Open the dashboard and read the heartbeat
Open your browser to the dashboard:
http://localhost:40120Confirm the top-left badge is green and says Server Online. In the left sidebar, click Live Console. You'll see a black terminal scrolling text. Every line FXServer prints, you read here. At the bottom is an input box. Type this and press Enter:
statusstatus is a command built into FXServer itself. It prints the list of connected players: server ID, primary identifier, name, endpoint, and ping. An identifier is a unique tag tied to one player, like their Steam account or their FiveM account. With no players connected the list is empty. That empty reply is still your server answering you live.
Color codes matter. White is info, yellow is a warning, red is an error. If you see red, copy the line and search it. Most red lines are typos in server.cfg or a bad fxmanifest.lua. The fxmanifest.lua is the small text file at the root of every resource that tells the server what files to load.
The Live Console is how you talk to a running server without restarting it.
Find a player in the Players panel
In the left sidebar, click Players, then the Online tab. It lists everyone connected right now. That includes you, once you join later in this lesson. Click any name to open the Player Modal. This is where day-to-day moderation lives:
Info -> identifiers: fivem:, steam:, discord:, license:
History -> past warnings, kicks, bans
IDs -> hardware IDs, for ban-evasion checks
Actions -> Warn / Kick / Ban / DM, each with a reason fieldThe Info tab is the one you'll use most. When you connect to your own server later, click your own name and copy the fivem: value. That value is what you paste into the admin line in server.cfg:
add_principal identifier.fivem:1234567 group.adminThat line is an ACE rule. ACE is FiveM's permission system. A principal is who the rule applies to (here, a player by identifier). The rule grants that principal the group.admin role, which unlocks admin commands. Put it near the end of server.cfg, or in a permissions.cfg you exec (the annotated server.cfg lesson shows this). This is how you make yourself an admin in the game.
Restart resources: the Resources tab and ensure / restart / refresh
In the left sidebar, click Resources. A resource is one folder of script, like a single mod. Each row is one resource. A green dot means running, grey means stopped, red means crashed. Hover a row to reveal Start, Stop, and Restart. The Refresh List button at the top re-scans the resources/ folder for new files you dropped in.
The core developer loop is simple. Edit a script. Save it. Click Restart on that one resource. Alt-tab back into the game. No full server restart needed. You can also do the same three jobs from the Live Console or the FXServer server console. They are server commands; they do not run from a normal player's F8 client console.
ensure my-resourceensure starts the resource if it is stopped, and restarts it if it is already running. This is the line you put in server.cfg for every resource you want running at boot. It is the safe re-bounce.
restart my-resourcerestart stops then starts a running resource in one step. It never leaves the resource off in between. Use it after you edit a Lua or JS file. Do not type stop then start as two separate commands, because that leaves a window where the resource is dead.
refreshrefresh re-scans the resources/ folder for new sub-folders. It does not start anything on its own. After you drop in a brand-new resource folder, run refresh first, then ensure my-resource.
The one distinction that trips up beginners: ensure is what you write in server.cfg to bring a resource up at boot. restart is what you type at runtime to reload it after an edit. Same family, different moment. When in doubt at runtime, ensure my-resource also works, because it restarts a resource that is already running.
Try it on a resource that already ships with your server. chat ships with recipe deployments; if you do not have it, pick any running resource from the Resources list and use its name instead:
restart chatRestarting one resource is fast. Restarting the whole server kicks everyone off, so avoid it unless you must.
Understand recipes (and when to use one)
Recipes are not a standing panel in the sidebar. You meet them once, during first-time setup, inside the Server Deployer (the wizard you ran in Step 03). A recipe is a setup file. It tells txAdmin to download a list of resources, drop them in resources/, and add the matching ensure lines to server.cfg. An ensure line is the command that loads a resource when the server boots. One recipe click builds a working server preset.
The Deployer's built-in recipe list is CFX Default, QBCore Framework, and ESX Legacy. Qbox is a maintained recipe too, but it is not in the built-in list; you deploy it via its remote recipe URL as an advanced step. Qbox is an ox-based QBCore fork you can move to later. Choose based on the framework docs and the requirements of the scripts you plan to install.
Recipes are one-time scaffolds. Use one to create a new server, never to update an existing one. Running a second recipe on a working server overwrites your server.cfg and you lose your customizations.
Edit server.cfg from the browser with the CFG Editor
In the left sidebar, click CFG Editor (it is its own page, not a tab inside Settings). Your full server.cfg opens in a Monaco editor. That is the same editor engine VS Code uses. Scroll to your admin line and confirm your resources are ensured:
ensure chat
ensure my_first_resourceEdit, then click Save. If a change needs a full restart, txAdmin tells you, and you click the Server Restart button at the top-right. This editor is the cleanest way to edit a server that runs on a remote box. No SSH, no FileZilla, just a password-protected web tab. SSH is a secure remote-login tool; FileZilla is a file-transfer app. You skip both with the CFG Editor.
Set Privacy to Hidden, then open the in-game txAdmin menu
Still in Settings, open the Game Mode & Privacy area. While you're learning, set Server Privacy to Hidden. A hidden server is not listed in the FiveM server browser. Players reach it only through Direct Connect. Flip to Public when you're ready to advertise. The Game Mode label (Roleplay, Drift, Sandbox) is the tag shown next to your server in the browser. Click Save.
Now the in-game menu. Once you connect later in this lesson, you can open the txAdmin menu three ways.
First way: type /tx or /txadmin in the chat box.
Second way: press F8 to open the in-game client console (a black bar that drops down from the top of the screen), then type tx and press Enter. In the F8 console you type commands with no leading slash, so tx here is the same registered command as /tx typed in chat.
Third way: bind a key. In the FiveM client open Settings > Key Bindings > FiveM and set (txAdmin) Menu: Open Main Page to any key you like. The menu has no default key, so it stays command-only until you bind one.
The menu gives you teleport, a vehicle spawner, weather and time, and player actions. It is enabled by default.
One catch on access. The menu is gated by txAdmin's own account system, not by the ACE group.admin rule from Step 2. Only a txAdmin admin account with its Discord or Cfx.re identifier linked can open it. You link that in the Admin Manager (its own sidebar page). If neither identifier is attached to your account, the menu will not open. The add_principal ACE line controls console and chat-command permissions. The in-game menu is a separate gate. Both can apply to you at once.
Connect to your own server
Your server is already running through txAdmin. Now join it from the game client.
- Open the FiveM client.
- Top tab, click Play.
- Right side, click Direct Connect.
- Type the address below in the bar, then click Connect.
localhostThe first connect downloads any resources your server added, so the loading screen takes a moment. localhost means "this same computer". You run the server and the client on one PC, so the client looks for the server right here. Real players join later with your public IP or a Cfx.re join code.
Your Cfx.re license key in server.cfg is a secret. Never paste it in chat, never screenshot it, never commit it to Git. Exposing your public IP or opening the game port (default 30120) lets strangers try to connect, so only do that behind a firewall once you understand it.
Read the server console one line at a time
Open txAdmin, then Live Console. The sample lines below are illustrative. Your real lines will name your own resources and players. Read them top to bottom:
[ info] Console: Resource scoreboard started.
[ info] Player [Kishi] connected from 127.0.0.1.
[ warn] CFX: dependency 'es_extended' not found, scoreboard may misbehave
[ error] SCRIPT ERROR: @scoreboard/cl_score.lua:42: attempt to index a nil value (global 'PlayerData')
stack traceback:
@scoreboard/cl_score.lua:42: in function <@scoreboard/cl_score.lua:40>How to read them:
info(white) is FYI. A resource started, a player joined, nothing is wrong.warn(yellow) means "you should know". The server still runs, but something is off, like a missing dependency or a deprecated API.error(red) means something broke. It almost always names the file and the line number. Open that file, read that line, fix it.stack tracebackis the call chain. The top line is where it actually broke. The lines under it are who called it.
Triage rule: red before yellow before white. One error often cascades into many warnings, so fix the topmost red line first and the warnings frequently disappear with it.
Loop-closing cross-check: now that you have joined, confirm you show up in two places at once. Open the txAdmin Players panel and find your name there, then run status in the Live Console and find the same name in its output. Two views, one you.
Find the logs on disk
The Live Console only keeps the most recent output. Older history is written to disk by txAdmin under txData/<profile>/. The <profile> part is the name of your txAdmin data profile, which is default unless the server owner set a custom one. The log folders are:
txData/<profile>/logs/fxserver/ full FXServer console rolling log
txData/<profile>/logs/admin/ admin actions: kick, ban, restarts
txData/<profile>/logs/server/ server-side script and event logsIf you started txAdmin with a different profile or moved your data folder, the path shifts. The reliable move is to search for it. On Windows, run this in PowerShell from your server folder:
Get-ChildItem -Recurse -Directory -Filter logs -Path .\txDataIf you would rather not use a terminal, open txData in File Explorer and drill into your profile folder, then logs.
On macOS or Linux:
find . -type d -path "*txData*/logs*"Run the edit, restart, observe loop
Every script change from now on follows the same three beats. Practice it once on a resource you own: qu_dep_provider from Step 04.
- Edit any
.luafile insidequ_dep_providerin VS Code and save withCtrl+S. Do not edit the bundledchatresource for this exercise; it belongs to the server base and you should leave it alone. - Restart the resource. Two ways:
restart qu_dep_providerOr in txAdmin, open the Resources tab and click Restart on the row.
- Observe. Watch the Live Console for the lifecycle lines, then trigger the feature you changed to confirm it works. If you only want to practise the command safely, restart
qu_dep_providerwithout editing it.
Recover from a bad edit: if a red error line appears after you restart, your last edit broke something. Undo it in VS Code with Ctrl+Z, save again with Ctrl+S, and run restart my-resource once more. The error should clear.
Keep VS Code on the left half of your screen and the Live Console on the right half. You edit on the left, save, and watch the right side react with no alt-tab.
If something went wrong
| Symptom | Fix |
|---|---|
Browser shows ERR_CONNECTION_REFUSED at localhost:40120 | FXServer is not running. Re-launch it (FXServer.exe), watch its console for crash lines, then reload the page. |
Can't log into txAdmin (forgot the username or password) | Delete txData/admins.json (it lives at the root of txData, not inside a profile folder) and restart FXServer. txAdmin then asks you to create a new admin account. |
The Live Console input box is greyed out | Your txAdmin account lacks command rights. Log in as the master admin you created in Step 03, or promote your account in the Admin Manager page. |
status replies with a red License key error | Add a free license key from portal.cfx.re to server.cfg as sv_licenseKey "cfxk_...", then restart. The key is required even for a local test server. |
'Server Offline' even though FXServer.exe is running | The server crashed but the process did not exit. Read the Live Console for red error lines, fix the error, then restart. |
Players panel is empty but I'm in the server | Refresh the page. The panel polls every few seconds and the first load can miss your join. |
Resources tab shows nothing | No resources are present. Confirm your resources folder exists and has subfolders, and that server.cfg has ensure lines. |
CFG Editor changes don't save | You did not click Save, or the server rejected the change. Click the Save button. If it fails, the Live Console says why. |
Live Console is blank | The buffer was cleared or the server just started. Wait for new messages or restart the server. Old messages live in txData/<profile>/logs/. |
Typing /tx does nothing in-game | Two common causes. (1) The menu is disabled: it is on by default, and changing that setting needs a server restart. (2) Your account is not linked: you need a txAdmin admin account with your Discord or Cfx.re identifier attached in the Admin Manager page. If you see a red authentication message and you ARE registered, type /txAdmin-reauth in chat to retry. |
connect localhost does nothing and stays on the F8 screen | The server is not running, or the client cannot reach it. Check txAdmin shows a green Server Online badge. If it does not, start FXServer.exe and wait for the badge. |
Connection failed: timed out | Either a firewall is blocking it, or the server is on a different port. Allow FXServer.exe and FiveM.exe through Windows Firewall and confirm port 30120 is open. If it still times out, check the Live Console for the UDP listener port and connect with localhost:PORT instead of plain localhost. |
F8 does not open the console | Your keyboard layout may map F8 elsewhere, or another app grabbed it. In FiveM go to Settings -> Key Bindings, search "console", and re-bind it. Close other programs that use F8, like OBS or the Discord overlay. |
could not find resource | Folder name typo, or you skipped refresh after dropping in a new folder. Confirm resources/my-resource/fxmanifest.lua exists, then run refresh first and ensure my-resource. Resource-name case matters on a Linux host and Windows is forgiving, so treat names as case-sensitive everywhere; a later move to a Linux VPS then will not break. |
I edited the file but the server still runs old code | Saving does not reload anything. Confirm the file actually saved (no dot on the VS Code tab), confirm you restarted the right resource name, then run restart my-resource so FXServer drops the cached version and reconnect. |
FXServer window vanished or the server crashed | Open the newest log under txData/<profile>/logs/fxserver; the bottom of the file shows the crash. Comment out suspect ensure lines in server.cfg, restart, and isolate the bad resource. |
What you can do now
- Open txAdmin at http://localhost:40120 and confirm the green Server Online badge.
- Send live commands from the Live Console; status is your is-it-alive check.
- Find any player's fivem: identifier in the Players panel and paste it into add_principal.
- Pick ensure for server.cfg, restart for a hot reload after editing (from the Live Console or the Resources tab), and refresh for a brand-new folder.
- Edit server.cfg in the CFG Editor and set Privacy to Hidden while you develop.
- Open the in-game txAdmin menu three ways: /tx in chat, tx in the F8 console, or a bound key.
- Direct-connect to your own server with localhost from the FiveM client.
- Label every console line as info, warn, or error and fix the topmost red line first.
- Find persistent logs under txData/<profile>/logs, and search for them if the path moved.
- Run the edit -> restart -> observe loop that every later lesson assumes.