Xonotic server.cfg Settings Explained (Gametypes, Voting, Mutators)
The Xonotic server.cfg explained: sv_public, hostname, rcon, gametype values, g_maplist, limits, bots, voting, tick rate and which mutators keep it pure.
Updated Oct 7, 2026 · 6 min read
On this page
A Xonotic server is configured in server.cfg, a list of console variables (cvars) that the server reads from your data folder (~/.xonotic/data/ on Linux) when it starts. The settings that matter most are sv_public (listed or not), hostname, rcon_password, maxplayers, gametype, g_maplist, the _override limits, bot settings with minplayers and skill, map voting with g_maplist_votable, and mutators like g_instagib. Lines that start with // are comments, so a setting only applies once you remove the // in front of it.
The official example file ships in the server folder of every Xonotic download and is well commented. This guide goes through it section by section, with the values most servers actually use.

How the file works
- Two slashes start a comment that runs to the end of the line.
- Values with spaces go in double quotes. Single words or numbers do not need them.
- A semicolon separates commands on one line.
- To look up any cvar, type
searchfollowed by part of its name in the game console, or use the official cvar browser linked from the file.
Edit, save, then restart the server or change map. Some settings, like gametype, apply on the next map load.
Make it yours
| Cvar | Example | What it does |
|---|---|---|
sv_public |
1 |
1 lists the server on the public list. 0 or -1 keeps it off |
hostname |
"Night Duels" |
Name in the server list. $g_xonoticversion inserts the version |
sv_motd |
"Discord: ..." |
Shown on connect. A good place for contact info |
sv_termsofservice_url |
URL | Your rules or privacy page, shown in the join dialog |
rcon_password |
"long-random" |
Remote console password. Empty disables RCON |
Set rcon_password before you need it. Without it you cannot manage the server from inside the game.
Slots, port and logging
| Cvar | Default | Notes |
|---|---|---|
maxplayers |
8 in the example | Slots, spectators included |
port |
26000 | The docs recommend a free port above 1024, since some providers filter gaming ports |
net_address |
0.0.0.0 | Only change it if the server binds to the wrong network interface |
log_file |
"server.log" |
Copies console output to a file |
g_start_delay |
15 | Seconds of delay so players can join before the match starts |
Game mode and map list
gametype sets the mode. The values in the official file:
| Value | Mode | Value | Mode |
|---|---|---|---|
dm |
Deathmatch | kh |
Key Hunt |
tdm |
Team Deathmatch | as |
Assault |
ctf |
Capture the Flag | dom |
Domination |
ca |
Clan Arena | lms |
Last Man Standing |
ft |
Freeze Tag | ka |
Keepaway |
inv |
Invasion | ons |
Onslaught |
rc |
Race | cts |
Complete the Stage |
nb |
Nexball |
g_maplist lists the maps to play, separated by spaces inside one pair of quotes. Maps that do not support the current mode are skipped, so one long list can serve several modes. Set it to "" to use every installed map.
g_maplist_shuffle 1picks maps at random.0goes in order.g_maplist_mostrecent_count 3stops a map repeating until three others have played.
Match limits
The example file explains a trap: fraglimit and timelimit cannot be set globally in the config, only during a match. For server wide limits use the override cvars:
| Cvar | Meaning |
|---|---|
timelimit_override |
Minutes per match for all maps and modes |
fraglimit_override |
Frag or point limit |
capturelimit_override |
Captures for CTF |
g_domination_point_limit |
Points for Domination |
g_lms_lives_override |
Lives in Last Man Standing |
-1 means use the map's default, and 0 means unlimited.
Bots
| Cvar | What it does |
|---|---|
minplayers |
Adds bots while fewer real players are playing |
minplayers_per_team |
Same, per team, for team modes |
skill |
Bot skill level |
bot_prefix |
Text in front of bot names, such as [BOT] |
g_maplist_check_waypoints |
Skips maps without bot waypoints when bots are needed |
minplayers 4 makes a quiet evening playable: two humans get two bots, and the bots leave as people join.
Voting
| Cvar | What it does |
|---|---|
g_maplist_votable |
Maps offered in the end of match vote. 0 disables the vote screen |
sv_vote_gametype |
1 adds a game mode vote after every match. On in the example file |
sv_vote_gametype_options |
Which modes appear in that vote |
sv_vote_commands |
Commands players can vote on, like nextmap, kick or shuffleteams |
sv_vote_master_password |
Lets trusted players log in as vote master |
rcon_restricted_password |
A second, weaker RCON login for moderators |
rcon_restricted_commands |
What that weaker login may run |
The restricted RCON pair is the tidy way to give a moderator kick and map rights without handing over the full password.
Mutators and purity
Xonotic marks servers as pure or impure in the server list. Pure servers play by standard balance, and many players filter for them. The example file sorts mutators accordingly:
Allowed on a pure server: g_instagib 1, g_weapon_stay (1, 2 or 3), g_powerups. Overkill is enabled by putting exec ruleset-overkill.cfg at the top of the file, not by setting g_overkill directly.
Make the server impure: g_cloaked, g_grappling_hook (except with instagib), g_jetpack (except with instagib), g_midair, g_vampire, sv_gravity changes and the NIX arena mutator.
Impure is fine for a fun server. Just name it clearly so players know what they are joining.
Performance and privacy
sys_ticrate 0.0333333is the default tick.0.0166667doubles server frames for smoother play at higher CPU cost.g_antilag 2controls lag compensation.sv_status_privacy 1hides player IPs from status replies.sv_weaponstats_filesends anonymous weapon balance statistics to the developers. The file lists exactly what is sent.

Editing it on a hosted server
On a GamezServers Xonotic server, server.cfg is in .xonotic/data/ in the file manager. Edit and restart, or test a change live first by typing the cvar into the panel console. Max Players is a panel setting passed on start. For the first time setup, see our Xonotic server setup guide, and for map packs our guide to adding custom maps to a Xonotic server.
FAQ
Why does my fraglimit in server.cfg not work?
fraglimit and timelimit cannot be set globally in the config. Use fraglimit_override and timelimit_override instead.
What does sv_public -1 do?
It keeps the server off the public list. Players can still join by address.
Does instagib make my server impure?
No. g_instagib 1 is allowed on a pure server, as are the hook and jetpack when combined with instagib.
How do I let a moderator kick without full RCON?
Set rcon_restricted_password and list the allowed commands in rcon_restricted_commands.
Skip the setup. Your own Xonotic server.
Then $2.99/mo. Just trying it? $0.75 for 3 days