Hampalyzer — TFC Statistics
The Hampalyzer is a Half-Life GoldSrc server log parser, specifically targeting the Team Fortress Classic mod.
To parse a game, upload one or two log files.
If you upload two log files at a time, Hampalyzer will try to combine statistics and consider the two log files as part of a two-round match.
Find an issue? File it on GitHub, or message @Hampster on Discord.
Here's a link of features that are upcoming, rougly ordered by priority (ease of implementation vs. utility):
- Merge with master and remove beta branch (requires updating deploy scripts)
-
Administrivia update:
- Update backup scripts (DB + files)
- Add match force-reparse reparse link (visible to admin-only)
- Add match invalidation link (visible to admin-only); disqualify log from counting against stats (also add some UI to note this on match page)
-
Statistics update (full reparse after each):
- Add engineering stats to player page (built guns, gun uptime, dets, etc.)
- Add 'time conced' stat to defense summary per-player (?)
- Fix bug that prevents flag returns due to timeout not showing
- Fix bug for parsing Copper (#59)
- Fix bug for parsing Baconbowl (#48)
- Add chat logs (#4)
- Show flag carrier kills on summary view (#30)
- Update to Bootstrap v5 (currently v4; will enable easier theming)
-
Global statistics (maps played, matches played per-user, best teammates, etc.)
- Start with global statistics, with a 'dashboard' overall view
- Move onto player-specific queries (for top 100 players?)
- Likely use PostgresSQL
MATERIALIZED VIEWto minimize db load, re-run cron job to update nightly
-
Enable programmatic access to match information
- Requires API access key/mechanism
- Requires some sort of "cost" to limit DOS; implement backoff
- Consider 'admin' UI interface for DB monitoring/key managment
-
Support for flag location naming (e.g., "flag dropped top-ramp")
- Requires per-map work to captured named 3D boxes (already done for schtop; took 30 minutes)
- Requires
psqlversion 14 to support 3D queries; should populate flag locations into flag drop events into match summary.
-
Support for demo uploads alongside matches
- Consider using WebHL, which itself is a fork of hlviewer.js. Seems to not support HLTV replay, unfortunately. If it works, then could click on
any event in a match summary to jump to that location in the HLTV and show it in the browser.
- Consider using WebHL, which itself is a fork of hlviewer.js. Seems to not support HLTV replay, unfortunately. If it works, then could click on
Database statistics: currently tracking (loading...)