ql-lg-server: Quake Live LG vampiric practice server in Docker

One-command setup (SteamCMD + minqlx build), .env settings with a
listed/unlisted switch, three factories (lgvamp, lgvamp_nolag, lgvamp100),
warmup-text and welcome minqlx plugins, watchdog/backup/daily-restart,
docs for admins and players.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
esefandClaude Opus 5.5 committed 2026-10-08 01:39:43 +03:00
commit bc5bd09c15
25 files changed
+1009

No files matched your search

+137
View File
@@ -0,0 +1,137 @@
[
{
"id": "lgvamp",
"title": "LG Vampiric FFA",
"author": "ql-lg-server",
"description": "LG only, 1:1 vampiric, no knockback, no items, antilag. Permanent warmup like the x76 LG duel servers: pair up and duel, ready-up can't start a match.",
"basegt": "ffa",
"tags": [
"lg",
"aimtraining"
],
"cvars": {
"g_startingWeapons": "33",
"g_infiniteAmmo": "1",
"g_startingHealth": "100",
"g_startingHealthBonus": "100",
"g_startingArmor": "0",
"g_vampiricDamage": "1",
"g_knockback": "0",
"g_weaponrespawn": "0",
"g_spawnItemAmmo": "0",
"g_spawnItemArmor": "0",
"g_spawnItemHealth": "0",
"g_spawnItemHoldable": "0",
"g_spawnItemPowerup": "0",
"g_spawnItemRune": "0",
"g_spawnItemWeapons": "0",
"g_allowKill": "0",
"g_allowVote": "0",
"g_allowVoteMidGame": "0",
"g_allowSpecVote": "0",
"g_voteFlags": "4095",
"pmove_WeaponRaiseTime": "0",
"pmove_WeaponDropTime": "0",
"sv_warmupReadyPercentage": "2",
"g_warmupReadyDelay": "0",
"fraglimit": "50",
"timelimit": "15",
"g_lagHax": "1",
"g_lagHaxMs": "240",
"g_lagHaxMsec": "10",
"g_lagHaxHistory": "12",
"dmflags": "28",
"g_overtime": "0"
}
},
{
"id": "lgvamp_nolag",
"title": "LG Vampiric FFA (no antilag)",
"author": "ql-lg-server",
"description": "LG only, 1:1 vampiric, no knockback, no items, no antilag. Permanent warmup like the x76 LG duel servers: pair up and duel, ready-up can't start a match.",
"basegt": "ffa",
"tags": [
"lg",
"aimtraining"
],
"cvars": {
"g_startingWeapons": "33",
"g_infiniteAmmo": "1",
"g_startingHealth": "100",
"g_startingHealthBonus": "100",
"g_startingArmor": "0",
"g_vampiricDamage": "1",
"g_knockback": "0",
"g_weaponrespawn": "0",
"g_spawnItemAmmo": "0",
"g_spawnItemArmor": "0",
"g_spawnItemHealth": "0",
"g_spawnItemHoldable": "0",
"g_spawnItemPowerup": "0",
"g_spawnItemRune": "0",
"g_spawnItemWeapons": "0",
"g_allowKill": "0",
"g_allowVote": "0",
"g_allowVoteMidGame": "0",
"g_allowSpecVote": "0",
"g_voteFlags": "4095",
"pmove_WeaponRaiseTime": "0",
"pmove_WeaponDropTime": "0",
"sv_warmupReadyPercentage": "2",
"g_warmupReadyDelay": "0",
"fraglimit": "50",
"timelimit": "15",
"g_lagHax": "0",
"g_lagHaxMs": "240",
"g_lagHaxMsec": "10",
"g_lagHaxHistory": "12",
"dmflags": "28",
"g_overtime": "0"
}
},
{
"id": "lgvamp100",
"title": "LG Vampiric FFA (100 HP)",
"author": "ql-lg-server",
"description": "LG only, 1:1 vampiric, no knockback, spawn with 100 HP (no decay), no items, antilag. Permanent warmup like the x76 LG duel servers: pair up and duel, ready-up can't start a match.",
"basegt": "ffa",
"tags": [
"lg",
"aimtraining"
],
"cvars": {
"g_startingWeapons": "33",
"g_infiniteAmmo": "1",
"g_startingHealth": "100",
"g_startingHealthBonus": "0",
"g_startingArmor": "0",
"g_vampiricDamage": "1",
"g_knockback": "0",
"g_weaponrespawn": "0",
"g_spawnItemAmmo": "0",
"g_spawnItemArmor": "0",
"g_spawnItemHealth": "0",
"g_spawnItemHoldable": "0",
"g_spawnItemPowerup": "0",
"g_spawnItemRune": "0",
"g_spawnItemWeapons": "0",
"g_allowKill": "0",
"g_allowVote": "0",
"g_allowVoteMidGame": "0",
"g_allowSpecVote": "0",
"g_voteFlags": "4095",
"pmove_WeaponRaiseTime": "0",
"pmove_WeaponDropTime": "0",
"sv_warmupReadyPercentage": "2",
"g_warmupReadyDelay": "0",
"fraglimit": "50",
"timelimit": "15",
"g_lagHax": "1",
"g_lagHaxMs": "240",
"g_lagHaxMsec": "10",
"g_lagHaxHistory": "12",
"dmflags": "28",
"g_overtime": "0"
}
}
]
+30
View File
@@ -0,0 +1,30 @@
// ql-lg-server. Per-server settings come from .env (local.cfg, generated on start).
// Gameplay lives in scripts/lgvamp.factories. See README.md and docs/HOW-IT-WORKS.md.
set sv_serverType "2" // internet server (also right for VPN players)
set sv_privateClients "0"
set sv_fps "40"
set sv_idleExit "0"
set net_strict "1"
set sv_floodprotect "10"
set g_floodprot_maxcount "10"
set g_floodprot_decay "1000"
set g_accessFile "access.txt" // admins, mods, bans (docs/ADMIN.md)
set sv_mapPoolFile "mappool_lg.txt"
set g_allowVote "0"
// bots: none by default (permanent warmup needs none); rcon "addbot hunter 5", remove with "kick allbots"
set bot_enable "1"
set bot_minplayers "0"
set bot_nochat "1"
// RCON over ZMQ, localhost only (port from .env, password from secrets/)
set zmq_rcon_enable "1"
set zmq_rcon_ip "127.0.0.1"
set zmq_stats_enable "0"
// minqlx: only our plugins (the default minqlx plugin list needs a redis server)
set qlx_plugins "nowarmuptext,welcome"
set qlx_pluginsPath "/ql/home/minqlx-plugins"
exec secrets.cfg
exec local.cfg // hostname, password, listing, max players, then: map <map> <factory>