vampire heals up to 200 (g_startingHealth 200, bonus 0); plain README rewrite

QL caps vampiric healing at max health, which comes from g_startingHealth.
With 100 + 100 bonus you spawn at 200 but can never heal back above 100.
200 + 0 spawns at 200, heals to 200, decays to 100 (measured on a test server).
README rewritten for Linux servers and home PCs; file layout moved to HOW-IT-WORKS.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
esefandClaude Opus 5.5 committed 2026-10-15 21:52:21 +03:00
1 parent acf625d72b
commit 266cc20b76
6 files changed
+104 -78

No files matched your search

+25 -2
View File
@@ -1,6 +1,6 @@
# How it works (and why)
Notes for anyone changing this setup. Each point below was hit while building it.
Notes for anyone changing this setup: what each part does and which alternatives were tried.
## Permanent warmup instead of a match
@@ -31,7 +31,11 @@ minqlx is started with only our plugins (`qlx_plugins "nowarmuptext,welcome,lgbo
## Vampiric, measured
`g_vampiricDamage 1` heals exactly 1:1. Measured with `g_debugVampiricDamage 1` and two bots: an LG hit does 6 damage and the attacker gains 6. When both players hit each other at the same time, neither health changes. Spawning with 200 HP (`g_startingHealthBonus 100`) means health above 100 decays ~1/s, which is where the "I'm losing health" feeling comes from. `lgvamp100` removes it. (The stock `_training` factory uses 0.75.)
`g_vampiricDamage 1` heals 1:1. Measured with `g_debugVampiricDamage 1` and two bots: an LG hit does 6 damage and the attacker gains 6. When both players hit each other at the same time, neither health changes. (The stock `_training` factory uses 0.75.)
Vampire healing stops at the player's max health, and QL sets max health from `g_startingHealth`. So the 200 HP modes use `g_startingHealth 200` with `g_startingHealthBonus 0`: you spawn with 200 and vampire heals up to 200. Health above 100 decays 1 per second down to 100 (measured on a test server). The obvious alternative, `g_startingHealth 100` plus `g_startingHealthBonus 100`, also spawns you at 200, but caps vampire at 100: players noticed they never healed back above 100. That was this repo's setting until 2026-10 and is what the SEA preset uses; x76 heals above 100.
`lgvamp100` uses 100 and 0: vampire up to 100, no decay. There is no separate cvar for a vampire cap (the game module's only vampire cvars are `g_vampiricDamage` and `g_debugVampiricDamage`).
## Antilag
@@ -47,6 +51,25 @@ Two more places the password shows up: `home/baseq3/zmqpass.txt` (QL writes it o
With `sv_master 0`, QL ignores `getstatus`, `getinfo` and Steam A2S queries (`sv_serverType` doesn't change that). So the health check (`tools/qlq.py`) uses the connect handshake: send `getchallenge` and the reply is `print "No Steam auth token."`. That works for listed and unlisted servers. Player info comes from RCON `status`, where bots have the address `bot`; that's how the daily restart can tell whether a human is on.
## Files
```
setup.sh install / re-run / --update
.env.example settings template (.env is yours, not in git)
docker-compose.yml the container; Dockerfile = Debian + 32-bit libs + Python 3.11 + SteamCMD
rcon server console
lgbot training bot setup (runs tools/lgbot_setup.py in the container)
home/baseq3/ server.cfg (shared), scripts/lgvamp.factories (game modes),
scripts/lgbot.bot + botfiles/bots/lgbot_*.c (training bot aim);
local.cfg, secrets.cfg, mappool_lg.txt are generated from .env on each start
home/minqlx-plugins/ nowarmuptext.py (hides warmup text), welcome.py, lgbot.py (training bot movement)
tools/ mkcfg.sh (.env -> cfg), qlrcon.py (RCON client), qlq.py (health check),
lgbot_setup.py, lgbot_rec.py (recording analyzer), tests (python -m unittest in tools/)
scripts/ watchdog.sh, daily-restart.sh, backup.sh, install-cron.sh
```
Not in git (setup creates them): `server/` (game files, ~1.1 GB), `minqlx-build/`, `steamcmd-home/`, `secrets/`, `logs/`, `backups/`.
## Small things
- SteamCMD needs `+@sSteamCmdForcePlatformType linux`, or it fails with "Missing configuration".