KnowledgeXonotic

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.

A Xonotic player firing in an arena

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 search followed 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 1 picks maps at random. 0 goes in order.
  • g_maplist_mostrecent_count 3 stops 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.0333333 is the default tick. 0.0166667 doubles server frames for smoother play at higher CPU cost.
  • g_antilag 2 controls lag compensation.
  • sv_status_privacy 1 hides player IPs from status replies.
  • sv_weaponstats_file sends anonymous weapon balance statistics to the developers. The file lists exactly what is sent.

Xonotic match in an industrial arena

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.

$1.49USD first month

Then $2.99/mo. Just trying it? $0.75 for 3 days

Keep reading