A Discord bot for parsing veteran Umamusume screenshots and automatically running simulations with pre-filled data.
https://www.youtube.com/watch?v=dNzNqTIrdrQ
- Veteran Screenshot Parsing: Upload screenshots of veteran Umamusume characters to automatically extract character data (name, stats, skills, aptitudes) using OpenCV and PaddleOCR
- Simulator Integration: Automatically fills extracted data into the simulator and returns a pre-configured simulator URL
- Club Management (Legacy): Video processing and spreadsheet logging for club member tracking (Note: Club info tracking is now better handled by chronogenesis.net)
-
Copy
example.envtoproduction.envand configure:- Discord bot credentials
- PostgreSQL database URL
-
Run with Docker Compose:
docker-compose up --build -d # using --build flag to prevent missing any updates
-
Copy
example.envto.envand configure:- Discord bot credentials
- PostgreSQL database URL
-
Build the Docker image:
docker build -t uma-bot . -
Run the container:
docker run --env-file .env uma-bot
-
Copy
example.envto.envand configure:- Discord bot credentials
- PostgreSQL database URL
-
Create and activate a virtual environment:
python -m venv venv # On Windows: venv\Scripts\activate # On Linux/Mac: source venv/bin/activate
-
Install dependencies:
pip install -r requirements.txt
-
Install Playwright browsers:
playwright install --force --with-deps
-
Run the bot:
python main.py
/ping- Check if the bot is responsive
/setup-channel-veteran-uma- Toggle current channel for processing veteran uma screenshots (requires administrator)
/create-preset <name>- Create a new simulator preset with track, length, ground, weather, and season settings/list-presets- List all custom presets/delete-preset- Delete an existing preset
/create-club <name>- Create a new club (requires administrator)/list-clubs- List all clubs in this server (requires administrator)/delete-club <name>- Delete a club (requires administrator)/setup-channel-club-records- Toggle current channel as video upload destination for a club (requires administrator)
/enable-spreadsheet-logging <spreadsheet_id>- Enable automatic Google Sheets logging for a club (requires administrator)/disable-spreadsheet-logging- Disable spreadsheet logging for a club (requires administrator)
/nuke-db- [DEV] Drop and recreate all database tables (requires administrator, DEV environment only)
- Use
/setup-channel-veteran-umain a channel to enable screenshot processing - Upload one or two screenshots of veteran Umamusume characters to the configured channel
- The bot will:
- Parse the screenshot(s) to extract character name, stats (Speed/Stamina/Power/Guts/Wit), skills, and aptitudes
- Create a thread for the analysis
- Prompt you to select a running style (Front/Pace/Late/End) and simulator preset
- Automatically fill the data into the simulator
- Run the simulation and return a pre-configured simulator URL with a screenshot
The bot supports comparing two characters side-by-side when two screenshots are uploaded.
Upload a video recording of your Uma Musume club member list to a configured channel. The bot will automatically process the video, extract member information (names, fan counts, roles, last login), and update the associated Google Sheet with timestamped data.
Note: For club information tracking, chronogenesis.net provides a more convenient web-based solution.