Saltybot
null
Project Overview
Saltybot is an ongoing project, designed to collect statistics from saltybet.com. The statistics include the outcomes and variables of 1v1 CPU matches on the fighting game platform MUGEN. Each character has been uniquely programmed, with designs often pulled from various other games and uploaded to the internet over the past 25 years. With a roster estimated to be upwards of 9000 characters, and 24/7 uptime, saltybet.com provides a fun platform in which the audience can gamble using virtual currency on the outcome of a fight.
Interface Design

Saltybet betting interface showing the main stream and betting panel
Project Origins
I first stumbled upon saltybet during my time at CodeCore Bootcamp in Vancouver, BC in 2017. It was a simple distraction that I would turn my attention to while waiting for bundler to fetch rubygems (particularly nokogiri at the time), or just to take a break from digesting the algorithm lesson of the day. Suffice to say, in spite of the mild enjoyment of making a wager on what was essentially a coin-toss, I didn't have the bandwidth to memorize the sheer volume of combinations of fighter attributes and statistics. The obvious solution was to create Saltybot.
Statistical Analysis

Statistical analysis dashboard showing win rates and prediction accuracy
Data Collection
The initial data collection phase was crucial. I needed to gather enough fight outcomes to start seeing patterns. Each character's performance was tracked across multiple matches, considering factors like opponent type, stage selection, and even time of day. The right-side image shows an early version of the statistics dashboard where we could monitor win rates and prediction accuracy.
System Architecture

System architecture diagram showing data flow between components
Technical Evolution
The system architecture evolved as the project grew. What started as a simple data collection script became a full-fledged prediction engine with multiple components working together. The left-side diagram illustrates how data flows from the source through various processing stages to generate predictions.
