Queensberry & Capital
-
Here are the E2E test results. The game appears to be almost in tip-top shape and ready for prime time...
E2E Test Report — Queensberry & Capital
Date: 2026-02-26
Tool: Playwright (Chromium, headless)
Method: Dual browser contexts (Host + Guest) simulating real multiplayer sessions
Summary
Metric Value Journeys Tested 9 / 9 Screenshots Captured 91 E2E Issues Found 3 (0H / 2M / 1L) Code Analysis Issues 13 (5H / 5M / 3L)
Test Results by Journey
Journey Steps Passed Failed Status Lobby Creation & Join 15 14 1* PASS Scouting Draft 15 15 0 PASS Management (no fights) 17 17 0 PASS Wagering 6 6 0 PASS Main Event (with fight) 12 12 0 PASS Newspaper / Gazette 4 4 0 PASS Off-Season 4 4 0 PASS Final Standings 2 2 0 PASS Responsive (3 viewports) 18 18 0 PASS *Lobby "verify confirm dialog" failure was a test selector issue, not an app bug — screenshot confirms dialog rendered correctly with both player names.
Journey Details
1. Lobby Creation & Join
- Host creates lobby, PIN generated (6 uppercase alphanumeric chars)
- Guest joins with PIN, both see each other in waiting room
- Host clicks "Start Game" → confirm dialog shows player count
- Host clicks "Confirm & Start" → both transition to Scouting phase
- Key screenshots:
lobby/host-05-verify-guest-in-lobby.png,lobby/host-06-click-start-game.png
2. Scouting Draft
- Both players see "The Prospect Market" with shuffle animation
- Fighter cards display with portraits, stats, tier, cost, and "Sign for $X" buttons
- Stable breakdown sidebar shows weight class counts
- After drafting, players see "AWAITING ROTATION" waiting state
- Both players leave market and transition to Management
- Key screenshots:
scouting/host-02-fighter-cards-displayed.png,scouting/host-06-waiting-after-pick.png
3. Management (No Fights Path)
- "The Front Office" renders with stable list, management actions, and matchmaking panel
- Host sees "YOU MUST SELECT A VENUE" banner
- Guest sees "WAITING FOR VENUE SELECTION" banner
- Venue selected ("The Barge"), confirmed
- Both click "Proceed (No Fights)" → transitions to Newspaper
- Key screenshots:
management/host-03-select-venue.png,management/guest-02-management-after-venue.png
4. Management (With Fights Path)
- Fighter selected from stable, opponent found in rival list
- "Fight" button (navy blue) clicked → "Confirm Bout" dialog appears
- Bout scheduled, "START THE SHOW" button appears
- Both players proceed → transitions to Wagering
- Key screenshots:
management/host-03-confirm-bout.png
5. Wagering
- "THE BETTING RING" displays with fight card
- Bout shows fighter portraits, names, odds (e.g., x2.36 blue, x2.36 red, x13.02 draw)
- "BET BLUE" / "BET RED" / "DRAW" buttons per bout
- Wager placed: "$25 on Henry Sharkey at x2.36 — payout: $59"
- Cash tracker shows "CASH: $425 | 1 bet placed - $25 total"
- "DONE WAGERING / SKIP TO BOUT" button advances both players
- Key screenshots:
wagering/host-05-wagering-check.png
6. Main Event
- Fight screen shows blue/red corners with fighter names and portraits
- "Round 1 of 10" counter, deck with 30 cards remaining
- Host sees "SOUND THE BELL!" button to advance
- Guest sees "SPECTATING BOUT..." (cannot control fight)
- Combat log shows: "NON-TITLE BOUT. Battling Weaver vs Henry Sharkey. Scheduled for 10 rounds"
- Key screenshots:
main-event/host-07-fight-phase.png,main-event/guest-03-final-state.png
7. Newspaper / Gazette
- "THE PUGILIST GAZETTE" renders with period-appropriate typography
- Header: "Est. 1890 | Vol. 1 | Event 1 of 3 | Price: 2 Cents"
- No-fights headline: "A QUIET YEAR IN THE FIGHT GAME"
- Sections: "Stable Report", "Financial Ledger", "Division Rankings"
- Both Host and Guest see identical content
- Key screenshots:
newspaper/host-05-summary-loaded.png
8. Off-Season
- Phase reached after Newspaper
- "Finish Off-Season" button available
- Both players can proceed
- Key screenshots:
off-season/host-07-current-phase-check.png
9. Responsive Testing
Tested at three viewports: Mobile (375x812), Tablet (768x1024), Desktop (1440x900)
Viewport Home Lobby Scouting Management Status Mobile (375px) OK OK OK (1 card) Layout issues WARN Tablet (768px) OK OK OK (2 cards stacked) OK PASS Desktop (1440px) OK OK OK (3 cards side-by-side) OK PASS - Key screenshots:
responsive/mobile-*.png,responsive/tablet-*.png,responsive/desktop-*.png
Issues Found (E2E Testing)
# Severity Journey Description File Screenshot 1 medium responsive Mobile (375px) header bar text overlaps — "YEAR 1 OF 10" and player name overlap logo area components/HeaderBar.tsxresponsive/mobile-05-scouting-phase.png2 medium responsive Mobile (375px) management layout: "MANAGEMENT" and "MATCHMAKING" column headers crush together, text truncated to unreadable components/PhaseManagement.tsxresponsive/mobile-06-management-phase.png3 low responsive Mobile (375px) scouting: "Funds:" label truncated, dollar amount partially hidden components/PhaseScouting.tsxresponsive/mobile-05-scouting-phase.png
Bug Hunt Findings (Code Analysis)
HIGH Severity
# Description File:Line Impact 1 FightConfig Venue serialization — no validation on guest rejoin; if venueobject is malformed after deserialization, accessingvenue.revenueMultipliercrasheshooks/useGameSync.ts:19-21Guest rejoin crash 2 Race condition in freelance market generation — freelanceMarket.length === 0check is insufficient in multiplayer; guests may get different freelance market if state updates arrive mid-generationapplication/ManagementProvider.tsx:98-111Desync between host/guest 3 Poll filter for FINISH_WAGERING — gte('created_at', wageringStartTimeRef)may pick up stale actions from previous events ifwageringStartTimeRefis set too lateapplication/ArenaProvider.tsx:273-310Premature phase transition 4 Stale closure in isFighterCommitted— refs updated via useEffect have timing gap; two players could accept overlapping purse offers for same fighter within ~50ms windowapplication/ManagementProvider.tsx:74-82, 120-122Duplicate fights with same fighter 5 Missing input validation on purse offer — splitPercenthas no range check (0-100); malicious or buggy client could send invalid valuesapplication/ManagementProvider.tsx:196-211Corrupted game state MEDIUM Severity
# Description File:Line Impact 6 No user-facing error feedback on lobby creation/join failures — Supabase errors logged to console but UI shows no error state; user sees infinite loading context/LobbyContext.tsx:119-122, 141-144UX: silent hang 7 Missing null check in PhaseScouting — when playeris null butmarkethas items, accessingmarket[0].idcould errorcomponents/PhaseScouting.tsx:59-60Potential crash 8 Missing scoutingDoneIdsin dependency array — useEffect at line 78 usesscoutingDoneIdsin logic but doesn't depend on it; "all done" condition may not triggerapplication/ScoutingProvider.tsx:78, 93Stuck scouting phase 9 Venue confirmation override — if no venue is confirmed by management end, code auto-confirms first fight's venue, silently overriding user's selected venue application/ArenaProvider.tsx:194-199Wrong venue for fights 10 Missing belt holder validation in title fight claims — when belt is vacant, claim is queued as "pending" instead of auto-approved application/ManagementProvider.tsx:166-179Confusing UI LOW Severity
# Description File:Line Impact 11 Floating-point wager amounts not validated — amount > player.cashcheck allows non-integer bets; cumulative rounding errors possiblecomponents/PhaseWagering.tsx:62Minor accounting errors 12 No retry logic for failed wager placement — if emitAction('PLACE_WAGER')fails silently (network error), guest thinks bet was placed but host never receives itapplication/WageringProvider.tsx:99-109Lost wagers 13 Missing accessibility attributes on fight cards — no aria-label,role, or keyboard navigation for screen readerscomponents/PhaseFight.tsxAccessibility non-compliance
Screenshots
All saved to:
e2e-screenshots/e2e-screenshots/ ├── lobby/ (15 screenshots) ├── scouting/ (15 screenshots) ├── management/ (12 screenshots) ├── wagering/ (8 screenshots) ├── main-event/ (8 screenshots) ├── newspaper/ (4 screenshots) ├── off-season/ (4 screenshots) ├── standings/ (4 screenshots) └── responsive/ (18 screenshots — 6 per viewport)
Supabase Validation
Supabase tables (
lobbies,game_states,game_actions,players) returned empty results when queried post-test. This is expected behavior — Row Level Security (RLS) policies restrict reads to authenticated users matching the session context. During testing, each browser context had its own anonymous auth session, confirming proper RLS isolation.
Tested Multiplayer Flows
Flow Host Action Guest Action Sync Verified Lobby join Creates lobby + PIN Joins with PIN Both see each other in waiting room Game start Clicks "Confirm & Start" Auto-starts when status=ACTIVE Both enter Scouting simultaneously Scouting draft Drafts fighter Drafts fighter (own pack) Pack rotation syncs between players Venue selection Selects + confirms venue Sees venue confirmed Guest unblocked for management Fight scheduling Schedules bout vs rival N/A (rival stable) Fight card synced to both players Management proceed Clicks "Start the Show" Clicks "Proceed" Both advance to Wagering Wagering Places bet, clicks Done Clicks Done Both advance to Main Event Fight spectating Controls fight (Sound the Bell) Spectates (read-only) Both see same fight state Newspaper Views gazette Views gazette Identical content confirmed Off-season Finishes Finishes Both advance to next year
Report generated by Claude Code E2E Testing Skill
91 screenshots captured across 9 test journeys -
After addressing issues highlighted in the E2E test...
Here's a summary of all changes made:
HIGH SEVERITY- #2 (ManagementProvider.tsx): Added freelanceGeneratedRef guard to prevent double-generation of freelance market. The ref resets when phase leaves MANAGEMENT. - #3 (ArenaProvider.tsx): wageringStartTimeRef now resets to null when phase leaves WAGERING, preventing stale timestamps from carrying over.
- #4 (ManagementProvider.tsx): Changed useEffect to useLayoutEffect for purseOffersRef, venueSelectorIndexRef, and scheduledFightsRef syncing — tighter synchronous updates minimize the
stale-closure gap in isFighterCommitted. - #5 (ManagementProvider.tsx): Added input validation for splitPercent (must be 0-100 number) and fighter IDs (must be present) before processing SEND_PURSE_OFFER actions.
MEDIUM SEVERITY
- #9 (ArenaProvider.tsx): Added console.warn to the venue fallback auto-selection path for debugging visibility.
- #10 (ManagementProvider.tsx): Added validation that the claiming player actually has fighters in the requested weight class before allowing a title claim.
LOW SEVERITY
- #11 (PhaseWagering.tsx): Wager amounts are now floored to integers via Math.floor() before validation and placement.
- #13 (PhaseFight.tsx): Added aria-live="polite" to the combat log, role="status" to the round counter, and aria-label to the fight action button.
RESPONSIVE UI
- #14 (HeaderBar.tsx): Header bar now uses flex-wrap with smaller gap/text on mobile (gap-2 md:gap-6, text-[10px] md:text-sm). Volume slider hidden on mobile.
- #15 (PhaseManagement.tsx): Grid switches from grid-cols-12 to grid-cols-1 on mobile with md: prefixed column spans. Overflow switches to overflow-y-auto on mobile.
- #16 (PhaseScouting.tsx): Info bar now wraps on mobile with smaller text (text-sm md:text-lg). Labels hidden on very small screens via hidden sm:inline.
Skipped (per plan): #1, #6, #7, #8 (already handled/no change needed), #12 (requires deeper emitAction refactor).
-
Update for March 4th 2026
- Added bets on draws
- Added details and fighter types to trade screen fighter lists so you know what you're trading away/to get
- Added more fighter images. There are currently more than 150 unique images with more to come
- Did several end to end tests, identified issues and addressed them
- Refactored the code base again. These have been frequent so they've gone rather smoothly without introducing any bugs or orphaning variables or other issues. E2E tests run after refactoring just to be sure.
- Training costs for speed, power and stamina now tell you the odds of success, which is tied to age. So if you click to spend money and the training fails, the game tells you so.
- There is now no negative cash. Even if you lose all money, the floor is zero dollars. However, if after the last event of a year you are unable to pay stable upkeep(see rule book for costs), you lose 1 Legacy Point.
- Bell sound effect added to the start of a fight in the fight screen
-
Queensberry & Capital
Mini Strategies & Tips
Building Your Stable
Before signing fighters in the prospect market, have a plan. Ask yourself: Do you want to concentrate resources on one or two elite fighters? Do you want representation across multiple weight classes? The answer shapes every decision you make as a promoter.
Consider the value of stablemates — fighters who exist primarily to fill out your bouts, letting you keep most of the gate revenue and all of the Legacy Points earned. Not every fighter needs to be a contender.
In the off-season, explore trades with other promoters. If you're missing fighters in certain weight classes, a well-timed deal can round out your stable without dipping into the prospect market. A promoter willing to let go of redundant talent may be just the partner you need. A well-rounded stable puts you in position to challenge for championship belts across more divisions.
Scouting & Matchmaking
Never underestimate the power of scouting. Knowing the skills and chin of both your own fighters and those in rival stables gives you a decisive edge when arranging bouts. Smart matchmaking means putting your fighters in the best position to win — and winning earns Legacy Points.
That said, a strategically lopsided bout isn't always a waste. You can make money betting against your own overmatched fighter — just remember that losses don't earn LP, and too many can set your stable back.
Training & Development
Investing in training is never a guarantee of improvement, but it's one of the best bets in the business. The younger the fighter, the better the odds that hard work in the gym pays off. Prioritize development early, and the dividends will come.
Managing Your Finances
Everyone's cash on hand is kept secret — including yours. Be aware that rival promoters may be quietly stockpiling cash and converting it into Legacy Points that don't appear in the standings. Don't be caught off guard.
Bribes & the Police
You are never required to disclose whether you've paid off the police. Use this to your advantage — but don't burn that trust early. A well-timed police raid can deal serious damage to an opponent's operation right when it hurts them most. Patience here can be a powerful weapon.
Choosing Your Venue
If you select the Saloon or Theater as your venue, make sure the fighters in the main event and co-main event have a high Draw rating. The bigger the names, the bigger the gate. Booking low-draw fighters into premium venues is money left on the table.
Protecting Your Fighters
Keep a close eye on accumulated damage. Any fighter who enters the new year carrying 9 or more Damage is forced into retirement. Losing a popular fighter — one with a Draw of 7 or higher — doesn't just hurt your roster, it costs you Legacy Points. Manage wear and tear carefully, especially for your top draws.
The Underdog Gambit
Underdogs always have a puncher's chance.
If an opposing promoter holds a championship belt and is closing in on 50 LP, consider sending your best fighter as a challenger and betting big on him as the underdog. The odds won't be in your favor, but the math can be compelling: a win earns up to 8 Legacy Points for claiming the belt, and your wager pays out at long-odds — potentially equaling even more LP. Meanwhile, your opponent drops 5 LP when the championship changes hands.
It's an all-or-nothing play. But when your back is against the wall, sometimes a long shot is exactly what you need.
Good luck at the fights.
-
(This was written by Gemini 3 Flash. I checked it for accuracy) This is CURRENTLY how the fight decks are built and how the fighter's attributes interact with the cards to determine outcomes, whether by round or throughout the fight...
How Skills Work in Queensberry Capital
In Queensberry Capital, a fighter's skills aren't just numbers on a profile; they are the mathematical blueprints that build the Bout Deck. Understanding how Speed, Power, and Stamina interact is critical for building a championship roster and predicting the flow of a fight.
️ The Foundation: The Bout DeckEvery fight is driven by a deck of cards (30 for non-title bouts, 36 for Championship fights).
- Action Cards: The owner wins the round (scored 10-9).
- Spectacle Cards: Triggers a "Big Moment" — a 3d6 dice roll that can result in a KO, Knockdown, or an Escape.
- Foul Cards: The referee checks for rule-breaking (warnings or point deductions).
Speed & Power: Dominating the DeckWhile Speed and Power serve different tactical purposes, they both contribute to your Deck Share (how many cards in the deck "belong" to you).
The Formula:
Total Skill = Speed + Power
A fighter's share of the deck is determined by their skill relative to their opponent.- Floor: 30% (You will always own at least 30% of the deck, regardless of how outclassed you are).
- Ceiling: 70% (You can never own more than 70%, ensuring the opponent always has a puncher's chance).
Speed: The Decision MakerSpeed's primary role is increasing your volume without necessarily increasing the danger. High speed ensures you own more cards than your opponent, making you the favorite to win on the judges' scorecards if the fight goes the distance.
Power: The Game ChangerPower is a double-threat. Like Speed, it increases your share of the deck, but it also determines the lethality of your cards. High Power converts your "Action" cards into "Spectacle" cards.
Power Stat Spectacle Cards (KO Chances) 1–2 0 3–4 1 5–6 2 7–8 3 9–10 4
🫁 Stamina: The Late Round Trap
Stamina is unique because it doesn't affect the deck at the start of the fight. Instead, it acts as a Fatigue Guard in the second half of the deck (representing the "championship rounds").
The Fatigue Rule:
If a fighter has low stamina, their own Action cards have a chance to "flip" into Opponent Spectacle Cards.The Math:
(10 - Stamina) * 3% chance per cardStamina Chance to Flip per Card 10 0% (Iron Lungs) 5 15% 2 24% (Gasping for air) This means a tired fighter literally creates openings for their opponent, even if that opponent has low Power.
Visualizing with Sample FightsCase 1: The Out-Boxer vs. The Puncher
Red Corner (Speed 9, Power 3) vs. Blue Corner (Speed 3, Power 9)
- The Deck: Both have 12 total skill points, so they split the deck 15-15.
- Red's Advantage: Red has only 1 Spectacle card. They are content to jab and move. They will likely win the majority of the "Action" cards and take a 10-9 lead in most rounds.
- Blue's Advantage: Blue has 4 Spectacle cards. Even though they own the same number of cards as Red, Blue's cards are 4x as likely to end the fight instantly.
- The Outcome: Red is the favorite for a Decision, but Blue is the favorite for a KO.
Case 2: The "Burn-Out" Prospect
Red Corner (Speed 5, Power 5, Stamina 10) vs. Blue Corner (Speed 9, Power 9, Stamina 2)
- Early Fight: Blue is a nightmare. With 18 skill points against Red's 10, Blue hit the 70% ceiling. Blue owns 21 cards to Red's 9. Blue will likely dominate the first 5 rounds and score at least one knockdown.
- Late Fight: Blue hits the floor with 2 Stamina. In the second half of the deck, Blue's 21 cards start flipping. Statistically, ~5 of Blue's winning rounds will turn into KO opportunities for Red.
- The Outcome: If Red can survive the early "storm," Blue will gas out, and Red will have multiple chances to steal a comeback KO against a defenseless opponent.
Summary TableStat Increases Deck Volume Increases KO Threat Protects Late Game Speed
Yes
No
NoPower
Yes
Yes
NoStamina
No
No
YesNote: Chin is your final layer of defense. It doesn't change the deck, but it determines the "Difficulty" of the 3d6 roll when a Spectacle card is flipped. High Chin makes it harder for the opponent to find the KO.
-
How Skills Work in Queensberry Capital
In Queensberry Capital, a fighter's skills aren't just numbers on a profile; they are the mathematical blueprints that build the Bout Deck. Understanding how Speed, Power, and Stamina interact is critical for building a championship roster and predicting the flow of a fight.
️ The Foundation: The Bout DeckEvery fight is driven by a deck of cards (30 for non-title bouts, 36 for Championship fights).
- Action Cards: The owner wins the round (scored 10-9).
- Spectacle Cards: Triggers a "Big Moment" — a 3d6 dice roll that can result in a KO, Knockdown, or an Escape.
- Foul Cards: The referee checks for rule-breaking (warnings or point deductions).
Speed & Power: Dominating the DeckWhile Speed and Power serve different tactical purposes, they both contribute to your Deck Share (how many cards in the deck "belong" to you).
The Formula:
Total Skill = Speed + Power
A fighter's share of the deck is determined by their skill relative to their opponent.- Floor: 30% (You will always own at least 30% of the deck, regardless of how outclassed you are).
- Ceiling: 70% (You can never own more than 70%, ensuring the opponent always has a puncher's chance).
Speed: The Decision MakerSpeed's primary role is increasing your volume without necessarily increasing the danger. High speed ensures you own more cards than your opponent, making you the favorite to win on the judges' scorecards if the fight goes the distance.
Power: The Game ChangerPower is a double-threat. Like Speed, it increases your share of the deck, but it also determines the lethality of your cards. High Power converts your "Action" cards into "Spectacle" cards.
Power Stat Spectacle Cards (KO Chances) 1–2 0 3–4 1 5–6 2 7–8 3 9–10 4
🫁 Stamina: The Fatigue Guard
Stamina determines how long a fighter can maintain their full defensive capability. Once the current round exceeds a fighter's Stamina stat, their Chin degrades by 1 point per extra round.
The Fatigue Rule:
Chin Penalty = max(0, Current Round - Stamina)Effective Chin = max(1, Base Chin - Chin Penalty)
Stamina Full Chin Through Round 8 Chin (Base 
Round 10 Chin (Base 
10 Round 10 8 8 7 Round 7 7 5 5 Round 5 5 3 This means a tired fighter becomes increasingly vulnerable to knockouts in late rounds, even against opponents with lower Power. A fighter with Stamina 10 stays at full effectiveness for a standard 10-round bout, only losing Chin in Rounds 11-12 of a Championship fight.
Visualizing with Sample FightsCase 1: The Out-Boxer vs. The Puncher
Red Corner (Speed 9, Power 3) vs. Blue Corner (Speed 3, Power 9)
- The Deck: Both have 12 total skill points, so they split the deck 15-15.
- Red's Advantage: Red has only 1 Spectacle card. They are content to jab and move. They will likely win the majority of the "Action" cards and take a 10-9 lead in most rounds.
- Blue's Advantage: Blue has 4 Spectacle cards. Even though they own the same number of cards as Red, Blue's cards are 4x as likely to end the fight instantly.
- The Outcome: Red is the favorite for a Decision, but Blue is the favorite for a KO.
Case 2: The "Burn-Out" Prospect
Red Corner (Speed 5, Power 5, Stamina 10) vs. Blue Corner (Speed 9, Power 9, Stamina 2)
- Early Fight: Blue is a nightmare. With 18 skill points against Red's 10, Blue hit the 70% ceiling. Blue owns 21 cards to Red's 9. Blue will likely dominate the first 5 rounds and score at least one knockdown.
- Late Fight: Blue's 2 Stamina catches up. Starting Round 3, Blue's Chin degrades by 1 per round. By Round 8, Blue's effective Chin has dropped by 6 points, making them extremely vulnerable to knockouts — even from Red's modest Power.
- The Outcome: If Red can survive the early "storm," Blue's collapsing Chin means even a weak punch can end the fight in the championship rounds.
Summary TableStat Increases Deck Volume Increases KO Threat Protects Late Game Speed
Yes
No
NoPower
Yes
Yes
NoStamina
No
No
YesNote: Chin is your final layer of defense. It determines the "Difficulty" of the 3d6 roll when a Spectacle card is flipped. High Chin makes it harder for the opponent to find the KO. However, Chin degrades in late rounds once a fighter exceeds their Stamina — making Stamina the key to maintaining that defense.
-
How Skills Work in Queensberry Capital
In Queensberry Capital, a fighter's skills aren't just numbers on a profile; they are the mathematical blueprints that build the Bout Deck. Understanding how Speed, Power, and Stamina interact is critical for building a championship roster and predicting the flow of a fight.
️ The Foundation: The Bout DeckEvery fight is driven by a deck of cards (30 for non-title bouts, 36 for Championship fights).
- Action Cards: The owner wins the round (scored 10-9).
- Spectacle Cards: Triggers a "Big Moment" — a 3d6 dice roll that can result in a KO, Knockdown, or an Escape.
- Foul Cards: The referee checks for rule-breaking (warnings or point deductions).
Speed & Power: Dominating the DeckWhile Speed and Power serve different tactical purposes, they both contribute to your Deck Share (how many cards in the deck "belong" to you).
The Formula:
Total Skill = Speed + Power
A fighter's share of the deck is determined by their skill relative to their opponent.- Floor: 30% (You will always own at least 30% of the deck, regardless of how outclassed you are).
- Ceiling: 70% (You can never own more than 70%, ensuring the opponent always has a puncher's chance).
Speed: The Decision MakerSpeed's primary role is increasing your volume without necessarily increasing the danger. High speed ensures you own more cards than your opponent, making you the favorite to win on the judges' scorecards if the fight goes the distance.
Power: The Game ChangerPower is a double-threat. Like Speed, it increases your share of the deck, but it also determines the lethality of your cards. High Power converts your "Action" cards into "Spectacle" cards.
Power Stat Spectacle Cards (KO Chances) 1–2 0 3–4 1 5–6 2 7–8 3 9–10 4
🫁 Stamina: The Fatigue Guard
Stamina determines how long a fighter can maintain their full defensive capability. Once the current round exceeds a fighter's Stamina stat, their Chin degrades by 1 point per extra round.
The Fatigue Rule:
Chin Penalty = max(0, Current Round - Stamina)Effective Chin = max(1, Base Chin - Chin Penalty)
Stamina Full Chin Through Round 8 Chin (Base 
Round 10 Chin (Base 
10 Round 10 8 8 7 Round 7 7 5 5 Round 5 5 3 This means a tired fighter becomes increasingly vulnerable to knockouts in late rounds, even against opponents with lower Power. A fighter with Stamina 10 stays at full effectiveness for a standard 10-round bout, only losing Chin in Rounds 11-12 of a Championship fight.
Visualizing with Sample FightsCase 1: The Out-Boxer vs. The Puncher
Red Corner (Speed 9, Power 3) vs. Blue Corner (Speed 3, Power 9)
- The Deck: Both have 12 total skill points, so they split the deck 15-15.
- Red's Advantage: Red has only 1 Spectacle card. They are content to jab and move. They will likely win the majority of the "Action" cards and take a 10-9 lead in most rounds.
- Blue's Advantage: Blue has 4 Spectacle cards. Even though they own the same number of cards as Red, Blue's cards are 4x as likely to end the fight instantly.
- The Outcome: Red is the favorite for a Decision, but Blue is the favorite for a KO.
Case 2: The "Burn-Out" Prospect
Red Corner (Speed 5, Power 5, Stamina 10) vs. Blue Corner (Speed 9, Power 9, Stamina 2)
- Early Fight: Blue is a nightmare. With 18 skill points against Red's 10, Blue hit the 70% ceiling. Blue owns 21 cards to Red's 9. Blue will likely dominate the first 5 rounds and score at least one knockdown.
- Late Fight: Blue's 2 Stamina catches up. Starting Round 3, Blue's Chin degrades by 1 per round. By Round 8, Blue's effective Chin has dropped by 6 points, making them extremely vulnerable to knockouts — even from Red's modest Power.
- The Outcome: If Red can survive the early "storm," Blue's collapsing Chin means even a weak punch can end the fight in the championship rounds.
Experience Milestones: Free Skill PointsTraining costs money — but there's nothing like hands-on ring experience. Every 3 fights (win, lose, or draw), a fighter earns a free skill point that the promoter can assign to Speed, Power, or Stamina.
Rules
Rule Detail Trigger Every 3rd fight (3rd, 6th, 9th, etc.) Cost FREE — no cash required Max Cap If Speed, Power, and Stamina are all at 10, no point is awarded Age Gate Fighters over 30 cannot use the point on Speed — only Power or Stamina Non-Transferable The point must be used on the fighter who earned it How You'll Know
- The Pugilist Gazette announces the milestone after each qualifying fight
- A prominent banner appears at the top of the Front Office when a fighter has earned a skill point
- A
badge appears on the fighter's card in your stable until the point is spent - The Experience Reward panel appears above the Training Camp, showing three FREE buttons for Power, Speed, and Stamina
Strategic Implications
- Signing young fighters with a long career ahead means more free skill points over time
- Tomato Cans and Journeymen who survive 3 fights become meaningfully better — a prospect builder's dream
- Old fighters (31+) can still improve Power and Stamina, but Speed is locked — plan accordingly
Summary TableStat Increases Deck Volume Increases KO Threat Protects Late Game Speed
Yes
No
NoPower
Yes
Yes
NoStamina
No
No
YesNote: Chin is your final layer of defense. It determines the "Difficulty" of the 3d6 roll when a Spectacle card is flipped. High Chin makes it harder for the opponent to find the KO. However, Chin degrades in late rounds once a fighter exceeds their Stamina — making Stamina the key to maintaining that defense.
-
Changelog — March 7, 2026
Post-playtest fixes addressing 10 issues identified during manual testing.
Changes
-
PIN: Exclude confusing characters + copy button — Lobby PINs now use
23456789ABCDEFGHJKLMNPQRSTUVWXYZ(no 0/O/1/I). Added "Copy PIN" button to the waiting room. -
Scouting: Show who we're waiting for — "AWAITING ROTATION" replaced with player names, e.g. "Waiting for Josh, Fidel and Cody".
-
Gazette: Pre-fight odds — Odds now appear next to fighter names in the Gazette (e.g.
1.56 James Tunney vs. Wayne O'Leary 2.72). AddedredOdds/blueOddstoFightResultSchema. -
Trade rejection: More visible — Rejection modal is now larger with pulsing border. Bell sound plays when an offer is rejected.
-
Bell sound reliability —
soundManager.warmup()called during wagering interactions (corner selection, placing bets) to unlock browser AudioContext before fight phase. Bell trigger retries once after 300ms if first attempt is blocked by autoplay policy. -
All modes: 3 events per year — Removed player-count scaling (was 4 for 3p, 5 for 4p). All modes now run exactly 3 events per year.
-
Bribe auto-confirms venue — Clicking "Pay Bribe" now automatically confirms the venue, skipping the separate "Confirm Venue Choice" step.
-
Free skill bonus: 3-player fix — Fixed shallow copy bug in fight result processing —
recordandstatsobjects are now deep-copied to prevent mutation of original fighter references across sequential bouts. Added console logging for experience milestone checks. -
9+ DMG fighters fully blocked from competition — Own-stable fighters with 9+ DMG excluded from sparring opponent lists. Incoming challenge offers for 9+ DMG fighters show warning and disable the Accept button. Stable panel shows "Too Damaged" badge on broken fighters.
-
"You are in charge" banner — Multiplayer fight controller sees a dismissible gold banner on the first bout: "You Are In Charge of Running the Bouts!" with instructions to use Sound the Bell or Auto-Play.
Files Modified
context/LobbyContext.tsx— PIN generationcomponents/PhaseSetupMultiplayer.tsx— Copy PIN buttoncomponents/PhaseScouting.tsx— Waiting-for namesdomain/schemas/game.schema.ts— redOdds/blueOdds fieldsapplication/ArenaProvider.tsx— Odds in fight results, deep copy fix, milestone loggingcomponents/PhaseSummary.tsx— Odds display in Gazettecomponents/PhaseManagement.tsx— Rejection sound/styling, bribe auto-confirm, 9+ DMG guardscomponents/PhaseWagering.tsx— Audio warmup during interactionscomponents/PhaseFight.tsx— Bell retry, controller bannerapplication/PhaseProvider.tsx— Fixed events to 3
-
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login