Skip to content

Configuration

Thomas Jones edited this page Aug 17, 2026 · 5 revisions

minqlxtended is configured with cvars, like qzeroded itself, so server.cfg or +set on the command line both work. Everything has a default except qlx_owner.

For plugin cvars see the plugins repository.

Core

Cvar Default Meaning
qlx_owner none The server owner's SteamID64. Without it minqlxtended refuses admin commands unless permissions are pre-set in the database. The owner sits outside the permission system and can run anything, raw Python included
qlx_plugins plugin_manager, essentials, motd, permission, ban, silence, clan, names, log, workshop Comma-separated list loaded at launch
qlx_pluginsPath minqlxtended-plugins Path to the plugins directory, relative or absolute
qlx_database Redis Database driver. Don't change it without reason
qlx_commandPrefix ! Prefix for chat commands
qlx_pythonSwitchInterval 0.0005 Seconds a Python thread may hold the GIL before being asked to yield. A background thread holding it stalls the frame for up to this long. 0 leaves CPython's own 0.005; anything below 0.00005 is treated as 0.00005
qlx_mapinfoScan 1 Warm the installed-map cache on a background thread at startup. 0 delays the scan until something asks
qlx_workshopPath none Steam Workshop content directory, each item a numeric subdirectory of pk3s. Empty derives it from fs_basepath as ../../workshop/content/282440, where steamcmd usually puts it

Database

Cvar Default Meaning
qlx_redisAddress 127.0.0.1 Address, or a path if qlx_redisUnixSocket is 1
qlx_redisDatabase 0 Database number
qlx_redisProtocol 3 RESP protocol, 2 or 3
qlx_redisUnixSocket 0 Treat qlx_redisAddress as a UNIX socket path
qlx_redisPassword none Password, if any
qlx_redisTimeout 0.5 Seconds a read or connect may take. A Redis host that stops answering hangs the server for this long, so don't raise it much. 0 waits forever
qlx_permissionCacheTime 30 Seconds a player's permission level is remembered. !setperm and any write through the database object evict immediately, so this only affects how fast an edit made outside the server is noticed. 0 disables the cache

Logging

Cvar Default Meaning
qlx_logs 5 Log files kept. 0 disables retention
qlx_logsSize 5000000 Bytes before a log is rotated. 0 removes the limit
qlx_logLevel DEBUG Minimum level reaching minqlxtended.log; a name (DEBUG to CRITICAL) or a number. The console stays at INFO regardless. Raise to INFO on a busy server, since DEBUG writes a record for every line the engine prints

Server-side demos

A demo can be recorded per connected client. Segments are written under fs_homepath as .dm_91, carrying a .part name until finalised. Drive it per client from a plugin with start_demo(), stop_demo() and demo_status(), and hook demo_finished.

Cvar Default Meaning
sv_demoRecord 0 Record every connected client. start_demo()/stop_demo() override per client
sv_demoDir demos Subdirectory under fs_homepath
sv_demoNameFormat %date_slot%slot_%name %date is YYYYMMDD-HHMMSS, %slot the two-digit client slot, %name the player's name with colour codes and punctuation stripped
sv_demoCleanupParts 1 Delete leftover .part files at startup. Anything still .part is left over from a crash

Reliable command guard

Every client has a 64-slot ring of pending reliable commands. Overrun drops clients with CL_GetServerCommand: a reliable command was cycled out. The guard spreads bursts over several frames and merges consecutive broadcast prints. It only touches cosmetic output: prints, centre-prints, chat and sounds.

qlx_reliable shows how far behind each client is; qlx_reliable reset zeroes the counters.

Cvar Default Meaning
qlx_reliableGuard 1 Guard active
qlx_reliableWatermark 32 Backlog depth, of the 64 slots, before pacing starts. Clamped 8 to 56
qlx_reliableBurst 8 Commands allowed out per frame before pacing starts, and how many are released per frame once it has. Clamped 1 to 32

Team scoreboard trim

The game throws a team scoreboard away entirely once it passes 1023 bytes, dropping everyone to an eight-column stub. The trim keeps the top of each team intact and degrades the rest: the highest ranked keep every column, the next group keep their row with stats blanked, the remainder are left out. Spectators are never trimmed.

Applies to Team Deathmatch, Clan Arena, the CTFs, Freeze Tag, Domination and Attack & Defend. Red Rover is excluded, since it puts something else in the team column.

qlx_scoreboard shows what's being held back; qlx_scoreboard reset zeroes the counters.

Cvar Default Meaning
qlx_scoreboardTrim 1 Trim active. 0 restores original behaviour
qlx_scoreboardFullPerTeam 8 Players per team keeping full stats. Clamped 0 to 64
qlx_scoreboardLightPerTeam 12 Players per team appearing at all. Those past qlx_scoreboardFullPerTeam keep score, ping and alive state and show zeroes for the rest. Clamped 0 to 64, and raised to qlx_scoreboardFullPerTeam if set lower

Clone this wiki locally