My personal Discord bot. Written in TypeScript and constantly evolving based on whatever cool ideas I have.
- 📿 Amulet Game - Pass the cursed amulet around, track holding times
- 🏆 Leaderboards - See who has held the amulet the longest
- 📊 User Stats - Track amulet holds and time statistics
- 🌐 Web Dashboard - View servers, users, and stats in a web UI
| Command | Description |
|---|---|
/give |
Give the amulet to a user |
/who |
Shows who currently has the amulet |
/leaderboard |
Shows ranking by time held |
/reset |
Force reset the amulet (moderator) |
/ping |
Pong! |
/user |
User info |
# Install dependencies
npm install
# Run bot with hot-reload
mise run dev
# Run web dashboard (requires API server)
mise run dev:api
mise run dev:web
# Lint
mise run lint# Deploy commands to test server (guild in config.json)
mise run deploy-dev-commandsCommands are automatically registered when the bot starts.
- ⚡ Node.js v22 (runtime)
- 🦸 TypeScript
- 💬 Discord.js v14
- 🔊 @discordjs/voice v0.18 (audio playback)
- 💾 LowDB v7 (JSON database)
- 🛡️ Zod (validation)
- ⚡ Node.js v22 (runtime)
- ⚛️ React v19
- 🎨 Bootstrap v5
- 🛠️ Vite v7
- 📡 React Router v7