How It Works
The score tracking system listens to Slippi’sgameEnd$ event and determines the winner based on placement data:
LRAS Detection: Games ended with L+R+A+Start are automatically ignored and won’t affect scores. This prevents accidental score changes from game resets.
Game Results History
Boofstream tracks detailed information about each game in a set:Stage Played
Records which stage each game was played on
Stocks Remaining
Tracks how many stocks the winner had left
Characters Used
Saves which characters both players used
Game Duration
Records how long each game lasted in seconds
Game Result Data Structure
Each completed game adds a result to the history:Set Completion
Scores automatically update after each game, allowing you to:- Track progress through Best of 3/5/7 sets
- See at a glance who’s ahead in the current set
- View complete set data including game-by-game breakdowns
- Access detailed game history for analysis
The scoring system requires port assignments to be set before games start. Make sure to assign which player is on which port in the UI before beginning your set.
User Workflow
- Connect to Slippi: Establish connection to your Slippi relay
- Assign Ports: Set which player is Port 1 and which is Port 2
- Start Set: Mark the set as started in the UI
- Play Games: Scores automatically increment as games complete
- Monitor Progress: Watch scores update in real-time on stream overlays
Scores persist between games and are saved to disk, so you won’t lose progress if boofstream needs to restart.
Output Files
Score data is written to multiple output formats for OBS integration:out/p1/score.txt- Player 1’s current scoreout/p2/score.txt- Player 2’s current scoreout/program_state.json- Complete state including scoresout/state.json- Full application state with game history