-
Notifications
You must be signed in to change notification settings - Fork 3
Configuration
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.
| 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 |
| 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 |
| 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 |
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 |
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 |
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 |