Pin-Config
StableA Team Fortress 2 config in plain .cfg files — two profiles, every cvar checked against a live client, and a tool that tells you which ones a game update killed.
- Platforms
- Windows, Linux
- Built with
- TF2 cfg, Python
No modules, no VPKs, no launcher. Copy cfg/ into tf/cfg/ and you have the
whole thing — files you can read, diff, and edit in a text editor.
Two profiles, one switch
exec low max frames, for playing
exec ultra max quality, for reference capture
autoexec.cfg holds the always-on settings — net rates, binds, aliases,
viewmodel scripts, sensitivity — and ends by exec’ing one of the two profiles.
ultra.cfg exists because Tf2DemoSalvage needs
screenshots to compare its renderer against, so four of its settings are marked
PARITY: chosen to make a capture comparable rather than to look best.
Sensitivity is switchable in console — sens8, sens10, sens12 — and the
inches-per-360 arithmetic is written out in the config beside the aliases. Another
distance or another mouse is a calculation, not a number someone has to remember.
Verified against the game, not inherited from 2014
Every cvar in cfg/ is checked against a dump of what the client actually has:
python tools/validate-cvars.py
It catches two failures that otherwise look identical to a working setting.
Missing cvars — the game prints Unknown command and moves on; seven from
the 2014 base were dead this way. Cheat-flagged cvars — sv_cheats-gated,
so they cannot be set on a normal server at all.
Refreshing the dump after a TF2 update is three console commands, and then the
git diff on tools/cvarlist.log is the answer to “what did this update
change”.
The trap that cost an evening
TF2 caches a cfg file’s contents. Overwriting one under a running client does
nothing until you exec it again — and the first read after an overwrite can
still serve the old copy.
A crash was traced to mat_reducefillrate 1, the cvar was removed, and the game
crashed again — apparently disproving the fix. It hadn’t: the client was still
running the pre-fix file. Two rounds of diagnosis went into a bug that was already
fixed. Restart the client when testing a config change, or type the cvar directly
into console, which is read immediately and is a cleaner experiment anyway.
Credit
The low.cfg cvar selection descends from Comanglia’s config (v1.4, 2014),
which was good at its job. Everything has been re-verified against a modern
client; none of the original commentary survives, but most of the choices do.
The comments in the configs are TF2’s own help text, verbatim. A ~ marks one
written by hand, because Valve ships no description for that cvar.
The emblem on this page is a Team Fortress 2 style logo by PD Balthazar, released into the public domain via Wikimedia Commons. It is fan-made and not an official Valve asset. This project is not affiliated with Valve.