SideQuest runs a council of specialized AI agents that collectively act as a Narrator. Each agent handles a different aspect of the game:
- Narrator Agent — Describes the world, drives story progression, and plants narrative hooks that pull you into the next scene
- Combat Agent — Manages fights with tactical awareness — initiative, positioning, weapon mechanics, and dramatic pacing
- NPC Agent — Voices every character you meet, each with their own personality, goals, and agenda
- World State Agent — Keeps the world consistent — tracks locations, time, weather, faction relationships, and consequences
- Intent Router — Automatically figures out whether you're exploring, fighting, or talking, and sends your action to the right agent
- Music Director — Selects background music that matches the current mood — tense tracks for danger, warm tavern music for rest
You don't need to think about any of this. Just type what your character does. The system handles the routing.
One game engine, infinite worlds. Genre packs are swappable configuration directories that completely change the game's setting, tone, rules, and feel:
- Lore — World name, history, geography, factions, cosmology
- Rules — Allowed classes and races, magic level, stat generation, banned spells
- Character Creation — Narrative scenes that shape your character through story choices
- NPC Archetypes — Templates for the kinds of characters you'll meet
- Items and Inventory — Weapons, armor, tools, currency, and starting equipment
- Progression — How your character grows (affinities, milestones, leveling)
- Art Style — Visual direction for generated scene art
- Music and Sound — Mood tracks, sound effects, and mixer settings
- Voice — TTS voice presets for the narrator and each NPC archetype
- UI Theme — Color scheme that matches the genre's aesthetic
Switch genres with --genre and the entire game transforms. See genre-packs.md to create your own.
Character creation is a narrative experience, not a spreadsheet. The genre pack defines scenes — short story moments where your choices reveal who your character is:
- Pick from offered choices or type your own freeform answers
- Each choice carries mechanical effects (race hints, class hints, personality traits)
- Narrative hooks are extracted from your answers — things like origin stories, personal wounds, goals, debts, and secrets that the narrator can weave into the story later
- Stats are generated based on genre rules (point buy, dice rolls, or standard array)
NPCs aren't quest dispensers. They have their own goals, plans, and relationships:
- Faction members act according to their faction's agenda
- NPCs can refuse, lie, leave, attack, or die without asking your permission
- The world advances between scenes — if you rest for three days, things happen without you
- Villain plans progress on their own timeline
- Relationships evolve based on your actions
No XP grind. Characters grow through what they actually do:
- Affinities advance through natural play — each genre pack defines its own set (e.g., Iron, Shadow, Lore, Wild, Faith, Silver Tongue in Low Fantasy)
- Perform enough combat actions and your combat affinity grows from Unawakened through Novice, Adept, and Master
- Milestones — narrative achievements (survival, discovery, sacrifice, triumph) accumulate toward level-ups
- Items can evolve and gain names through use — a sword used in enough battles earns a title
A full Textual-based terminal interface with dedicated panels:
| Panel | Description |
|---|---|
| Narrative | Scrolling story output with Rich markup and formatting |
| Party Status | Live HP bars, stats, and character condition |
| Quest Log | Reactive quest tracking with objectives |
| Combat Mode | Action bar with available moves and initiative/turn order |
| Image Panel | AI-generated scene art displayed inline |
| Character Sheet | Detailed character overlay (via /party command) |
| Audio Status | Now-playing indicator for background music |
| Session Picker | Save/load game sessions (via /save or /load) |
| Command Input | Text input with command history (up/down arrows) |
The layout adapts to terminal size, collapsing panels gracefully on smaller screens.
Scene art generated on the fly, styled to match the genre:
- SDXL and Flux backends — auto-detected based on available hardware
- Six render tiers with different quality/latency tradeoffs: tactical sketches, scene illustrations, portraits, landscapes, text overlays, and maps
- Genre packs define art direction (watercolor for low fantasy, neon for cyberpunk, etc.)
- Per-location visual overrides for consistent environmental art
- Image cache prevents regenerating identical scenes
Three-channel audio mixer with intelligent music selection:
- Music — Genre-appropriate background tracks selected by the Music Director agent based on scene mood (exploration, combat, tension, tavern, mystery, sorrow, rest)
- Sound Effects — Triggered by game events (sword clashes, door creaks, footsteps, coin drops) with random variation from multiple sound files
- Ambience — Environmental atmosphere loops
- Crossfade between tracks for smooth transitions
- Automatic ducking — music volume drops when voice or important SFX play
- Track rotation to avoid repetition
Every character has a unique voice:
- Piper TTS — Fast local synthesis for responsive narration
- XTTS — Higher-quality voice cloning for important moments
- Per-character voice presets with pitch, rate, and effects (reverb, compression, EQ)
- Environment-aware effects — cavern reverb, outdoor openness, tavern warmth, whisper mode
- Creature voice presets (dragons get deep rumbles, goblins get chittering squeaks)
- Narration voice distinct from dialogue voices
Run SideQuest as a Discord bot for group play:
- Players interact through Discord text channels
- Per-player perception filtering — characters can have private knowledge
- Voice channel integration for TTS output
- Character creation through Discord UI
- Session recovery for dropped connections
Full game persistence:
- Save and resume sessions at any point via
/saveand/load - Character builder state saves mid-creation
- Game state includes characters, location, quests, combat state, inventory, and more
In-game commands for quick access:
| Command | Description |
|---|---|
/party |
View your character sheet |
/save |
Open the save/load screen |
/load |
Open the save/load screen |
/image |
View the current scene image |