The Concept
SGUT is an active Discord roleplay community built around a custom 2D character system on Roblox. The server generates a constant stream of collaborative storytelling -- scenes open and close, characters do things, dramatic moments happen, and then everyone moves on and forgets about it a week later.
Billy exists to fix that. He is a custom Discord bot built to silently observe all roleplay activity, log it to a database, and report back weekly -- in character. His persona is BILLY: a surveillance AI who physically works the cash register at a McDonald's in the Afterlife, the in-between space where souls pass through before moving on. He has been watching everyone their entire lives. He is permanently unimpressed about it.
What It Does
Billy runs continuously in the background, tracking every message sent through Tupperbox (the proxy system players use to speak as their characters). It correlates webhook messages back to the players behind them, opens and closes scenes based on activity gaps, and builds up a structured database of everything that happens in the RP.
Every Sunday, Billy posts a full weekly report covering the previous seven days. The report includes an AI-generated story chronicle -- a narrative summary of what actually happened in roleplay that week, grounded entirely in the stored transcripts -- plus a scoreboard, six weekly awards, and a "Quote of the Week" surfaced from flagged high-drama lines. Between reports, Billy rotates sassy status messages generated from live RP context every ten minutes and responds in character when mentioned in the server's designated McDonald's channel.
Awards System
The Bard
Most messages sent that week.
The Dramatist
Most notable/flagged moments across the week.
The Novelist
Highest average message length -- the one writing paragraphs.
The Traveler
Active across the most different scenes or channels.
The Consistent
Posted on the most active days that week.
Quote of the Week
One flagged line surfaced from the week's transcripts -- no context, no explanation.
Technical Details
Billy is written in Python using discord.py for the bot layer and aiomysql for async database access against a MariaDB instance. The AI layer runs locally via Ollama with LLaMA 3.1 8B -- all story summaries, BILLY responses, and status lines are generated on-device, no external API calls. Tupperbox webhook correlation is handled by matching webhook user IDs and display names against a known-proxies table to reconstruct which player was speaking as which character.
Scene detection is automatic: a scene is considered open when messages are flowing and closed after two hours of inactivity in the same channel. The historical scan command lets admins backfill the database from messages sent before the bot was running. Week boundaries are Sunday-to-Saturday throughout the entire codebase. The bot is self-hosted on a personal server alongside the other programs that make up the Hera's Garden infrastructure.