📊 Torn Activity Tracker
Strike when they're asleep
Tired of starting a chain only to watch the enemy faction wake up and counter? Or wondering whether 8 PM is just their dead hour or every faction's dead hour? Same. Built a script that tracks when every member of any faction is actually online, hour by hour, going back 30 days — so you actually know when to push, when to turtle, and when their best hitters are asleep.
🎯 What it tracks
- When every faction member is online — hour by hour, up to 30 days back
- Auto-detects your ranked war opponent and starts tracking them immediately
- Side-by-side comparison heatmap: your faction vs theirs
- Per-member breakdown — who's the always-on sweat, who only shows up on weekends
- Optional FFScouter battle stats overlay so you know who hits hard and when
- Watchlist for factions you want to scout before declaring
⚔️ Who is this for?
Faction war leaders timing the push, chain organizers picking the best window, spies scouting potential matchmaking opponents, and anyone who's tired of guessing what time the enemy faction wakes up.
Stop pushing into a wall. Strike when they're asleep.
🌡️ Hour Grid
Color-coded heatmap: dates as rows, 24 hours as columns, % of members online each hour. Faction selector covers your own faction, your watchlist, and the auto-detected war opponent. Pick a 3 / 7 / 14 / 30 day window. Optional Include idle toggle counts idle members alongside online.
🆚 Compare
- Side-by-side faction member tables with synchronized scrolling
- Sort by hours online, % online, or estimated battle stats (FFScouter)
- Click a member on each side to open their personal activity heatmap
- War opponent auto-appears in the dropdown the moment a war is detected
📈 Weekday Avg
Average % of members online by hour-of-day across the selected window. Spot recurring patterns at a glance — their reliable dead hours, their peak chain hours, and how those shift across factions.
🤖 Smart polling
- A central backend polls Torn on your behalf at a polite 20 calls/min (Torn allows 100)
- When multiple users watch the same faction, only one key polls — no wasted budget
- Spare API budget grows a shared activity dataset so fresh installs see useful data on day one
- Ranked war opponents get promoted to hot priority the moment a war is detected
⚡ Setup — 30 seconds
- Install the script (link below)
- Click the 📊 button in your footer bar
- Paste your Public API key — that's all this script needs
- Come back in ~30 minutes — the first activity snapshot drops on the next polling cycle
🔒 Privacy
Your API key is stored encrypted at rest (AES-256-GCM) on the backend and used only to fetch faction member data on your behalf, capped at 20 calls/minute. Never shared, never logged, never exported. Hit Remove account in Settings and your key, your watchlist, and everything tied to you is purged immediately.
💰 Heads-up on future pricing
Right now this is free. The backend runs on always-free tier — plenty for a small beta crowd, but the free box runs out of headroom around 100 active users. Once we hit that mark, keeping the server responsive means paying for a bigger instance, and the honest way to cover that is a small xanax-per-month-per-faction subscription — 5 xanax from anyone in the faction and the whole faction keeps access.
A few things so nobody gets blindsided:
- It stays free until we actually approach the cap — plenty of warning before anything flips.
- Pricing is per faction, not per user — 5 xanax covers every member.
- If the userbase never outgrows the free tier, it stays free forever.
Not trying to turn this into a business — just trying to keep the lights on without pulling the script offline once the free tier isn't enough.
Works with Tampermonkey, Violentmonkey, or compatible userscript managers.
Feedback and suggestions welcome — reply here or message me in-game.