
seems to have some trouble properly calculating stats
Torn Poker HUD - Player Profiler & Coach
Automatically profiles every player at the table and puts a live badge next to their seat.
No setup, no manual note taking. Sit down and it starts reading the table for you.
Tap or click any badge to open a full player profile with stats, hand history, head-to-head record and tactical hints.
Poker HUD
Live player types
SHP, AGG, MAN, CLR, NIT, CTN, PSV, MIX, RCK, FSH
Prefer real poker terms? One toggle swaps everything to TAG, LAG, Calling Station, Nit and so on.
Confidence rating
Reads get more reliable as more hands are tracked, and the HUD tells you which stage a read is at instead of pretending every number is solid.
Auto-tracked stats
VPIP, PFR, Limp%, 3-Bet%, Fold to 3-Bet, AFq, Fold vs CBet, Post-Fold%, WTSD, W$SD
Avg raise size, Avg call size
Exploit tags
Points at the specific leak:
Folds flop bets often → c-bet freely
Calls down light → bluff less
Limps frequently → isolate
Rarely 3-bets → open wider
Session drift and tilt detection
Flags players suddenly playing looser, tighter or more aggressive, and puts a banner on your own screen when your play starts drifting after a big loss.
Per-stake reads
A player who nits up at 100k and gambles at 1k is two different players. The Tables tab splits their profile by stake instead of averaging it into one meaningless number.
Self-analysis
Your own badge opens an Improve tab with the leaks in your game, based on the same tracking.
Persistent data
Players stay tracked across sessions, tables and stakes.
Mr. Coach
Real-time assistant that reads the table while you play, street by street.
Reads your own hand: made strength, draws, rough equity, pot odds, and how many players that has to hold up against
Interprets every bet against the player who made it, not against a textbook
Calls out bluff spots, weak ranges, and when strength is likely real
Adjusts for multiway pots, stack depth and position
Warns about dangerous boards and tracks aggression changes
Every read carries its own sample floor. A player with thin data gives you fewer rows rather than invented reads, and the coach says so when a read leans on a small sample.
Detail level: Full, Normal or Lean. Turn the dossier off entirely if you want the plain panel back.
Modes: On, Quiet, Off
Two personalities: the straight coach, or Duke, if you would rather be told off than advised.
Range Reader
Floating bubble showing the live chance that someone at the table currently holds a hand that beats yours. Green under 30%, orange to 60%, red above.
It does not just count every hand they could have. It filters:
By what they did preflop. A hand they have only ever shown after 3-betting stops counting against them when they limped in this hand.
By raise size. A min-raise and a 5x raise do not represent the same range, so their prior sizing on each hand class is weighted against what they just did.
With small-sample shrinkage, so three lucky showdowns cannot read as "100% beaten".
Click it for the full breakdown: per-villain likely holdings, every hand class that beats you on this board with combo counts, and a History tab that grades how the reads actually held up once cards were turned over. It keeps grading in spectator mode too, so hands you folded still build the model.
The player panel
Stats full stat bars, tilt banner, net worth and faction
Hints / Improve exploits against them, or leaks in your own game on your own badge
Profile plain English explanation of why they were classified the way they were
Tables their profile broken out per stake
History hand by hand, with cards where they were shown. Notable hands pin themselves so they survive eviction.
Vs Me only the hands you actually played against them. Your cards, your position, your result, who folded to who, and the running chip ledger between you. Filter by how deep the hand went.
Range every starting hand they have been seen with, searchable and sortable by VPIP, wins and preflop raise rate
Plus manual notes with one-click tags, and auto-tagged notable plays appended as they happen.
Collusion detection
Flags soft play and whipsaw patterns between players, and lights up seats that share a faction. It also groups faction families, so factions that split members across differently named branches to dodge a same-faction check still get flagged.
It is a flag for you to look at, not an accusation. Draw your own conclusions.
Also in there
Table log draggable bubble with the full session history for the table you are sitting at
Turn alert optional audio ping when the action is on you
Net worth and faction tags optional, needs your own Torn API key
HUD scaling size the coach, panels and tooltips independently
Built-in glossary every stat, icon and term explained in the settings panel
Your data
Everything is stored locally in your own browser. There is no server of mine anywhere in this.
Export and import your whole stats file as JSON, any time
Optional cloud sync through a private Gist in your own GitHub account, if you want the same reads on desktop and mobile. Opt-in, your token, your gist. Merges both devices rather than one overwriting the other.
Platforms
Desktop, mobile browser, and TornPDA.
TornPDA note: the app can clear its own browser storage, which wipes local stats. Nothing in the script deletes them. If you play on PDA, turn on cloud sync or take an export now and then.
It does not play for you
Since it always comes up: this reads the table and tells you what it sees. You still make every decision and click every button yourself. No automation, no auto-folding, no acting on your behalf, and nothing that touches the game outside of reading what is already on your screen.
Link: Torn Poker HUD - Player Profiler & Coach
If this script improved your poker experience, feel free to send a tip in-game to HopesG.
Never required, always appreciated.
❤️ Project supporters ❤️
Krabs - 555x Xanax - The Magic Conch by Krabs
DuckOfDestiny - 30x Drug packs (!!)
SoftStroker - 4x Donator Packs (!!)
elputojack - 69x Xanax (!!)
Anonymous - 2x Donator Packs (!)
KingOfClowns - Donator Pack
AFCO - 25x Xanax
poopeebutthole - 13x Xanax
Sinon - 12x Xanax
Anonymous - 11x Xanax
Old_Man - Feathery Hotel Coupon
Airwalker2662 - 10x Xanax
Anonymous - 10x Xanax
Starvvv - 10x Xanax
Surazel - 10x Xanax
Euthanatos - 9x Xanax
geraldokiliari - 100x Molotov Cocktail
Blinko - 5x Xanax
Rovokan - 5x Xanax
Cryptonn - 3x Xanax
Darrow_of_Lykos - 3x Xanax
Stylite - 3x Xanax
Kylebowl817 - 2x Xanax
MrTouchtheybutt - 2x Xanax
FRISK00 - 2x Xanax
pirx - 2x Xanax
Hyperreal - 1x Xanax
Klam44 - 1x Xanax
PolishPride - 1x Xanax
firetron - Lottery Voucher
issamemario - Bottle of Sake
Stellar98 - Can of Munster
If I missed anyone, let me know, or if you prefer not to be listed.
My other poker scripts:
Poker Bet Sizing
Poker Bet Slider
Colorful Poker
Safe Fold
Card Highlight
Finally the script are released. Gotta download and see how it works.

seems to have some trouble properly calculating stats
seems to have some trouble properly calculating stats
Yeah that’s a legit bug, nice spot.
WTSD went over 100% because some showdown hands weren’t being counted as “saw flop.”
Happens in weird edge cases like joining mid-hand.
Fixed now 👍
Reset stats once after updating if you’ve got weird old reads from previous versions.
I dont believe VPIP is working either which might effect raises preflop as well?
I dont believe VPIP is working either which might effect raises preflop as well?
Lots of change in this update. The way the script figures out which table you're on got completely rebuilt. Stats should feel more accurate. Small samples won't throw out wild numbers anymore, and if someone plays differently at different stakes, their read will actually reflect that instead of blending everything together. Still needs real-world testing so let me know if anything feels off!
Changelog 1.3 and 1.8 moved down to this post to avoid overfilling the OP.
1.3 update:
Table-aware stats
The HUD now detects which table you’re sitting at and tracks players separately per table.
So if someone plays loose at low stakes but tight at higher stakes, you’ll actually see that, instead of everything being mixed into one misleading average.
Live alerts
You’ll now see a small ! on a player’s badge when something shifts in their recent play:
Playing much looser than usual (possible tilt)
Playing much tighter than usual (adjustment)
Suddenly more aggressive (betting/raising a lot more)
Losing multiple pots in a row
Tables tab
New tab in the player panel.
Shows every table you’ve seen that player at, how many hands you’ve tracked, and their read on each table.
Good for spotting players who behave completely differently depending on stakes.
Per-table stats, hints & profile
Everything in the panel now reflects how they play at your current table:
Stats
Hints
Profile
History update
Each hand in History now shows which table it was played at.
Reset options
You now have:
Reset single player
Reset all data
I highly recommend doing a full reset with this update, since old data mixed all tables together.
Update 1.8:
Better table reads
The HUD now correctly recognizes which table you're on
Players who play differently at different stakes will now show up accurately
No more mixed or misleading reads when switching tables
More accurate stats
Stats now display properly, especially in small samples
You’ll no longer see odd numbers like 75% after a single hand
Hovering stats shows the exact numbers behind them
New player types
Added Fish - plays lots of hands, rarely aggressive
Added Rock - extremely tight player
Overall player reads are now more precise
Cleaner history
Hand history now matches the correct table
No more carryover from previous tables
Mobile improvements
Badges should now update more reliably on mobile
Reduced cases where a reload was needed after switching tables
Update 1.9:
Positional tracking
The HUD now tracks where each player sits relative to the dealer button
It learns how they play from each position over time
Reads are now more accurate based on position instead of mixing all hands together
Positions tracked:
EP (Early Position) - First to act preflop. Weakest spot at the table
MP (Middle Position) - Middle of the table. Decent but not ideal
LP (Late Position) - Cutoff and Button. Strongest spots with the most information
SB (Small Blind) - Posts half the blind and acts first postflop
BB (Big Blind) - Already invested and can defend wider
New positional warnings:
Plays too many hands early
Doesn’t steal from late position
Over-defends BB
Warnings only appear after enough hands are collected per position
Sizing tells
The HUD now tracks how players size their raises and calls relative to their stack
Helps reveal patterns in how players commit chips
What’s tracked:
Raise sizing - Average size of raises relative to stack
Call commitment - How much of their stack they are willing to call
New tags:
Probe bettor - Uses small raises to test the waters
High-commit raiser - Uses large sizing consistently
Commits big on calls - Calls large amounts and rarely folds
Tags only appear when players are not short stacked
Bump.
Update. 2.0
Seems to be some sort of bug in the hand history. i'm not playing on duel at dawn and not sure how the board can have 10 cards lol
Thanks for the bug report. The next update has a big update regarding history and hand context. :)
Update 2.2:
New features
New position icon showing when it’s your turn post-flop
Sitting-out players are now excluded from active player lists and position calculations
Draggable panel - move the HUD anywhere by dragging the header
Position-aware exploit tags:
Position-aware - LP PFR is 2x+ higher than EP, likely steal-heavy
Ignores position - EP and LP PFR similar, raises represent stronger hands
Live panel refresh - open panel now updates automatically on stack changes and all-ins
Bug fixes
Cutoff position fixed - CO no longer incorrectly treated as LP on short-handed tables
Position indicator now updates instantly when a player folds preflop
UI changes
Removed background overlay behind the panel
Panel no longer closes on outside click - use the close button
Future
Hand context tracking is still in progress, but early results look promising.
Is vpip still being worked on? Always stays at 0 no matter what
Is vpip still being worked on? Always stays at 0 no matter what
Haven't noticed any issues myself nor heard much feedback from others users about any issues regarding vpip.
Just did a quick test joining a random table. 
It was accurate. Entered twice and folded once without entering.
Can you tell me which device you use? Phone or pc. And what extensions are you using to install the script?
And thirdly, try to do a clean installation. Reset data and after uninstall the script and try to re-install.
Just wiped data with reinstall and its still occuring, weird. I'm on pc, chrome and using greasyfork.

Just wiped data with reinstall and its still occuring, weird. I'm on pc, chrome and using greasyfork.
That is odd. When I get home I will try it on chrome and greasy to see if I can replicate the issue from my side. (I normally use Firefox and tried greasy and violentmonkey. )
Can you give it a try on another browser? Just to see if it is indeed a browser issue? Sorry for the inconveniences
Big update - Card Context
Before, the HUD only understood how people played, not what they actually had.
It tracked things like VPIP, PFR, AFq, WTSD and gave players labels like MAN, AGG, Fish, etc.
That works, but it’s surface-level.
You could see someone plays a lot of hands or raises often, but not if they’re bluffing, value betting, or just clicking buttons.
Now with card context, the HUD looks at real showdown hands and judges decisions based on what players actually had.
You can see if aggression is real strength or just air
Bluffs are tracked when they get caught
Loose calls show up when players reveal weak hands
Draw chasing, thin value and protection plays are recognized
Before, two players could look identical.
Now you can tell:
One is aggressive with strong hands
The other is aggressive with bluffs
Same stats, completely different players.
Update 2.4
Fold verdicts (now based on real hands)
Folds are no longer guesses. The HUD now checks what opponents actually showed.
Fold top pair → opponent shows stronger → Good fold (green)
Fold top pair → opponent shows weaker → Possible mistake (red)
No showdown → falls back to old logic
All-in detection
Tooltips now show “All-in” instead of $0
All-in shoves are no longer counted as aggression
Short stacks won’t be labeled aggressive just for shoving.
Player types (Torn adjusted)
Player type thresholds are now tuned for Torn.
Loose play is more common here, so players won’t be over-labeled as Maniac or LAG.
Visual changes
Stack loss indicator is larger and easier to read
UI fixes
Panel scrolling no longer overlaps stats
New
Added support + glossary section
New users now automatically see the glossary
Update 2.3
Better hand history
Hands without showdown are now labeled:
Preflop steal
C-bet win
Barrel win
Delayed bet
Overbet pressure
Probe win
Passive win
If your cards are visible:
Value bets that didn’t get called
Successful bluffs
Semi-bluffs
Thin value wins
Fold tracking
Strong hand folded → flagged
Correct fold under pressure → marked as good
Marginal hands and draws are categorized
Folding into heavy action (raises, all-ins) is now correctly recognized.
Improve tab
Fold discipline - shows bad folding patterns
Uncontested wins - shows how you win without showdown
Other
Preflop bet sizes now shown in history
.
On v 2.6, pc, chrome - I reset all player data and did a ctrl-shift-f5 hard refresh but still get 0% for the top lines on all players:
Also - If it matters my metric is set to BB instead of cash
UPDATE - That appears to be the issue. After switching to cash instead of BB the numbers populate. Can you update to allow BB bet structure?
Thanks for the kind words :)
Currently, working on the BB aspect, should be ready in the next update.
The history with card context is still fresh so all these feedbacks are good! Will look into that.