Local Teamfight Manager 2 draft, scouting, match-history, and meta helper.
- Browser-based draft simulator with blue/red ban-pick flow.
- Team optimizer for 5-role comps using exact TFM2 champion stats/skill values from
bundle.game_data. - Champion availability exclusions saved in the browser.
- Tactics advisor based on both drafts, team shape, counters, lane roles, and saved match history.
- Scout and meta dashboard fed by local TFM2
save_*.datafiles. - Local watcher that parses Teamfight Manager 2 save data for:
- completed league match results,
- team win/loss history,
- replay picks and bans,
- champion meta and patch signals where available.
From this folder:
python -m http.server 8765 -d .\tfm2_draft_simulatorThen open:
http://127.0.0.1:8765/
The watcher reads TFM2 saves from:
%APPDATA%\TeamSamoyed\TeamfightManager2\data
Run once:
dotnet run --project .\tfm2_local_watcher\tfm2_local_watcher.csproj -- --onceRun continuously:
dotnet run --project .\tfm2_local_watcher\tfm2_local_watcher.csproj -- --interval 6The watcher writes tfm2_draft_simulator/local-scout-data.json, which the browser app reads when you open Scout/Meta or press refresh.
Run the on-demand refresh endpoint for the app's Refresh save data button:
dotnet run --project .\tfm2_local_watcher\tfm2_local_watcher.csproj -- --serve-refresh --port 8766The button rereads the selected save_*.data file once per click.
Champion text and numbers come from:
C:\Users\arian\Downloads\Teamfight-Manager-2-SteamRIP.com\Teamfight Manager 2\bundle.game_data
Regenerate champion-data.js after a game update:
cd .\tfm2_draft_simulator
node .\build_data.mjsGenerated files, save payload dumps, screenshots, node_modules, and .NET build outputs are intentionally ignored.