Skip to content

Bot Architecture

Dominique Devereaux edited this page Aug 24, 2026 · 2 revisions

Violet's Revenge runs two bot systems in the Discord server.

Violet_88 (ibloud/violets-revenge repo)

violet_bot.py — autonomous message listener; Violet reacts to card mentions in her channels without needing commands violetAI.js — chess-only AI; handles chess move logic for Violet violetCardsAI.js — dedicated card game AI; separated from violetAI.js after a bug where the chess engine was incorrectly called from the card exhibition loop (TypeError reading board[r][c] since the card game has no board property)

Pennywise / Sewers and Shadows Bot (ibloud/sewers-and-shadows-bot)

Separate repo from Violet's bot. Has a bot folder containing: float-chess-engine.js test-float-chess.js config folder src folder

More built out than Violet's side. Pennywise was designed to play both chess and cards with Violet.

Known Issues and Fixes

Narration failures (Narration hiccupped this turn) were caused by a malformed ANTHROPIC_API_KEY value in Railway — Headers.append TypeError. Fixed by re-entering the key cleanly with no quotes or whitespace.

The hybrid trigger approach for exhibition matches: timer-based as the default cadence, plus a join-triggered check that starts a game if none is active or the last one finished more than a cooldown window ago.

AiGuild bot was removed from the server entirely — not providing useful functionality.

Related Pages

Discord-Server-Structure — channel map and role routing Contributing — how to work on the bots

Clone this wiki locally