The part nobody built a tool for
The site had character creation covered six ways. It had a bestiary, a rulebook, and since yesterday an Encounter Builder that turns four players at level 5 into a Threat Rating budget and fills it from 150 stat blocks.
Then the session starts, and all of that stops helping. Round three: the Nite Owl has taken 22 but you are not sure whether that was before or after the 7 the Jedi got through, your Soldier is at 0 and has rolled one success and one failure, somebody is Poisoned and nobody can remember what Poisoned does, and it is your turn to decide whether the stormtrooper shoots the droid or the Wookiee.
So: the Combat Tracker. It is the least glamorous tool on the site, which is exactly why it was worth building.
It records. It does not roll for you
This is the design decision everything else follows from, so it goes first.
The dice are already on the table. Your players roll their own attacks, you roll the enemies', and that is the game — a tool that resolves attacks for you is not a tracker, it is a different hobby. So the Combat Tracker rolls exactly two things, and you can type both by hand instead:
- Initiative, because nobody enjoys that part.
- Death saves, because they are a flat d20 against a fixed table with no decision in them.
It never resolves an attack. It asks you what happened and remembers it.
Initiative has one wrinkle worth calling out, because it is how actual tables work: there is a "Players roll their own" toggle, on by default. With it on, rolling fills every enemy's initiative and leaves the player boxes empty for you to type the numbers your table calls out — rather than filling them with values you then overwrite one at a time. Turn it off and it rolls for everyone.
The arithmetic it does do
You enter two things when something takes damage: how much, and what kind. The tracker already knows the rest.
The published mitigation rule in the combat rules has more corners than people remember, and getting them wrong at the table is quietly common:
| Case | What lands |
|---|---|
| Resistance to that type | half, rounded down |
| Vulnerability to that type | double |
| Resistance and Vulnerability to the same type | they cancel — full damage |
| Immunity | zero, and it overrides both of the above |
| Flat Damage Resistance X | the X comes off first, then the remainder halves |
That last row is the one that gets fumbled. A unit with Damage Resistance 3 and resistance to Energy, hit for 14 Energy, takes 5 — not 4, and not 7. The tracker shows you which rule fired, so when a player asks why 14 became 5 you have an answer rather than a shrug.
And the enemies bring their own affinities. Drop a Death Trooper in and it arrives resistant, because the tracker reads that off the same trait text the bestiary page prints. Beskar, cortosis weave, droid immunities — all of it comes across with the unit. You do not look anything up.
All 16 conditions, with the rules on screen
SWURPG has sixteen conditions: Stunned, Dazed, Grappled, Prone, Bleeding, Burning, Frightened, Poisoned, Unconscious, Surprised, Blinded, Charmed, Confused, Shaken, Freezing and Paralyzed.
Every one of them is in the tracker, and clicking a condition shows what it actually does. No tab-switching to the rules page in the middle of a round.
The list is generated from the rulebook at build time rather than typed into the tool, which matters more than it sounds like it does. It means the tracker cannot drift away from the rules. If a condition's text changes in the rules, the tracker's copy changes with it, because there is only one copy.
Death saves, tracked properly
At 0 hit points a creature falls Unconscious and rolls 1d20 at the start of each of its turns. The rule in full:
- 10 or higher — one success.
- 9 or lower — one failure.
- Natural 20 — back up on 1 hit point, acting normally.
- Natural 1 — counts as two failures.
- Three successes — stable at 0 hit points.
- Three failures — dead.
The tracker gives each downed character a three-and-three track you can click, or it rolls and applies the result including both the natural-20 and natural-1 cases. Taking damage while down, stabilising, coming back up — it handles the transitions so you are not reconstructing somebody's death from memory.
It takes the encounter you already built
The two tools are one workflow. Build the fight in the Encounter Builder, hit Run this encounter, and the roster arrives in the tracker with armor class, hit points and initiative bonuses already in place. Same roster string, no re-entry.
Your players come from their own character sheets. Ask each one to turn on sharing and send you the link; the tracker reads their real armor class and hit points off it, exactly the way the encounter builder does. Sharing a character this way does not put it in the community gallery — it is reachable by link only. If the characters are in your own account, sign in and pick them off a list instead.
Because players and enemies are sorted together into one initiative order, the roster interleaves them by design — so every row carries a coloured stripe and a PC / NPC badge. You can tell at a glance whose turn you are on without reading the name.
Small things that matter at 11pm
- Temp HP is its own field and absorbs before real hit points, as it should.
- The damage amount, the heal and the temp HP all read from the same number box, so you type 7 once and choose what it does.
- A fight in progress stays in your browser. A refresh in the middle of round four costs you nothing.
- Round counter and turn order move both directions, because somebody always gets skipped.
Or start one tool earlier with the Encounter Builder, and the roster will be waiting here when you are done.
