💎 Cadia turns your Discord server into a persistent RPG world. Create a Warden, explore regions, fight encounters, collect gear, complete quests, defeat bosses, and progress with your community.
🎁 Moderation, logging, welcome messages, tickets, games, and utilities remain available as Community Tools that support the RPG community.
Start with /rpg tutorial, create your character with /rpg create, and enter your first encounter with /rpg adventure.
Cadia is organized as a small npm workspace monorepo:
apps/botwraps the existing Discord bot entry point atsrc/index.js.apps/dashboardcontains the placeholder dashboard service for the future web dashboard.libs/ipccontains the shared jszmq IPC boundary used by the bot and dashboard.src,assets,config,scripts, andtestremain shared bot project folders.
Useful commands:
npm start
npm run start:bot
npm run start:dashboard
npm run dev:dashboard
npm test
npm run check:cycles:monorepo
npm run lint:cycles
npm run graphPM2 runs both services from ecosystem.config.js:
cadiacadia-dashboard
The dashboard uses jszmq over WebSocket IPC.
- Default endpoint:
ws://127.0.0.1:38650/cadia-ipc - Override with
CADIA_IPC_ENDPOINT. - Dashboard status route:
/api/bot/status - Dashboard health route:
/health
Dependency direction is intentionally one-way:
apps/bot->libs/ipcapps/dashboard->libs/ipclibs/ipcimports neither app
Keep this direction to avoid monorepo circular dependencies.