Stream Stat Tracker provides a console application for tracking various data during game playthroughs. The core functionality revolves around tracking deaths and boss encounters although some additional data such as session counts, and VOD links are supported.
When running SST for the first time it will automatically generate several files that are used as part of its tracking process inside a new folder called Stats.
- Playthroughs Folder
- _Playthroughs.txt
- Deaths Folder
- Boss.txt
- Game.txt
- Total.txt
- Settings.json
These are the files/folders that are used by the program to manage the stats.
The Playthroughs folder is where the json files for each Playthrough are saved. When a new Playthrough is created a playthrough file will be automatically generated using the Lookup of the playthrough as the file name. This Lookup will be added to _Playthroughs.txt which acts as a list of all playthroughs. Each playthrough contains the following properties
- Lookup: The lookup name for the playthrough used to identify it (this needs to be unique)
- Game: The name of the game itself
- Deaths: How many deaths have happened in this playthrough
- Sessions: How many sessions have been spent on this game
- Status: Is this playthrough currently in-progress, current, complete etc.
- VOD: Link to the Youtube playlist of the VODs
- Playtime: How long the playthrough took
- Bosses: List of boss entries for this playthrough with each boss having the following formats:
- Lookup: The lookup name for the boss used to identify it (this needs to be unique)
- Name: The name of the boss
- Deaths: How many deaths have happened to this boss
- Status: Is this Boss "Defeated", "Undefeated" or "Current"
It is worth noting that currently VOD and Playtime are not automatically supported with the app but will be in the future. If you want to add this data you need to just manually edit the json file.
Within the Deaths folder there are 3 text files: Boss.txt, Game.txt, and Total.txt. These text files can be read from by a program like OBS in order to display the death count.
Boss.txt tracks the deaths of the current boss. If there isn't a current boss then this will just be 0.
Game.txt tracks the deaths of the current game/playthrough. If there isn't a current game then this will just be 0.
Total.txt tracks the total deaths across all playthroughs. This is automatically summed anytime the deaths change.
Settings.json contains the various settings that will be added for customising how the app behaves. The specific contents will be updated as development continues and as of the most recent version contains the following:
- AutoGenerateLookup (default: false) - will generate the lookup of playthroughs/bosses based on the name of the playthrough/boss e.g. "Resident Evil 4 Remake" would become "residentevil4remake"
- UseTimeStamps (default: false) - Assign time stamps to the majority of messages in the console (some such as listing data/commands will not be timestamped)
Stream Stat Tracker uses text commands entered into the console in order to update its stats. You can consider the app has having several "layers" of commands where one command will take you to the next set of commands. The layers can be broken down as follows:
- Top: The first layer used to work out what general command you want
- Game: Sublayer that handles anything related to the game/playthrough
- Boss: Sublayer that handles anything related to the bosses of the current game/playthrough
- Death: Sublayer that handles anything related to the death counting
- Settings: Sublayer that handles modifying the settings file
Each of these layers can accept a variety of different commands. Using the command help in the Top layer will print out the full list of commands as well as which layers they belong to.
The Top layer is the first layer in the application. After performing an operation the app will return to this layer. The full list of commands (some support multiple entries) are:
- [game, playthrough]: Perform actions on the playthrough data (using Game Layer)
- [boss, bosses]: Perform actions on the boss data for the current playthrough (using Boss Layer)
- [death, deaths]: Perform actions on the death counts (using Death Layer)
- [settings]: Modify the settings file
- [++]: Increment the death count shortcut
- [--]: Decrement the death count shortcut
- [++br]: Increment the death count shortcut without counting the boss shortcut
- [--br]: Decrement the death count shortcut without counting the boss shortcut
- [help, commands]: List help
The Game layer or Playthrough (these words are kind of interchangable but the code uses Playthrough) updates the main data for the playthrough. The full list of commands are:
- [new]: Create a new playthrough
- [list]: List all the playthroughs
- [current]: Set the current playthrough
- [complete]: Complete the current playthrough
- [sessions, session]: Update the session count for current playthrough
- [delete]: Delete a specified playthrough
- [esc]: Return back to main
The Boss layer updates data for the bosses of the current playthrough. If there is no current playthrough then these commands will not run. The full list of commands are:
- [new]: Create a new boss (sets to current)
- [list]: List all the bosses for this playthrough
- [current]: Set the current boss
- [unset]: Unset the current boss
- [defeat]: Mark current boss as defeated
- [delete]: Delete a specified boss
- [next]: Set the next undefeated boss as current
- [prev]: Set the previous undefeated boss as current
- [esc]: Return back to main
The Death layer updates the death counts for the current playthrough and boss. If there is no current playthrough then these commands will not run.
- [add, ++]: Increment the death count
- [subtract, --]: Decrement the death count
- [bradd, ++br]: Increment the death count without counting the boss
- [brsubtract, --br]: Decrement the death count without counting the boss
- [esc]: Return back to main
The Settings layer handles anything related to the Settings.json file.
- [edit, change]: Modify a setting in the settings file
- [list] Prints out all the
- [esc]: Return back to main