PookyEvent is a Discord event management system designed for ESO PvP runs with pre-defined group setups. It replaces chaotic manual signup lists with clean interactive embeds.
Features- 🎮 Interactive Signup Embeds — Role-based buttons on rich Discord embeds. Click to sign up, click again to cancel.
- ⭐ Multi-Role Signups — Users can pick a preferred role (⭐) and alternative roles (✔️). The system prioritizes preferred roles when finalizing.
- 🛡️ Custom Role System — Up to 12 custom roles with auto-emoji prefixes (👑 Lead, ⚡ Speed, ⚔️ Damage, 💣 Bomber, 💉 Heal, 🧪 Support, 🛡️ Tank, etc.)
- 🚫 Special Signup States — Absent, Bench, Maybe, Whatever, Late, Early — each with unique behavior and visual indicators.
- 🔄 Auto-Benching — Excess signups are automatically moved to the Bench when the event is full.
- 🔒 Event Finalization — “Close Event” assigns waiting players, locks signups, and assigns final roles.
- 📅 Event Repeating — Duplicate previous events with one command; perfect for weekly runs.
- 🌐 Web Admin Dashboard — Full-featured admin UI (Streamlit + NiceGUI) for managing events, users, guilds, and roles without Discord.
- 🔐 Secure API — HMAC-authenticated REST API for inter-component communication.
- 📊 Status Tracking — Real-time overview of open slots, missing roles, mandatory role requirements, and event readiness.
| Command | Description |
|---|---|
/pookyme |
Register or update your user profile |
/pookyguild |
Register or repair the Discord server in the database |
/pookychannel |
Add the current channel for event posting |
/pookychannelcheck |
Dry-run: check if the channel is ready for events |
/unpookychannel |
Remove the channel from the event list |
/pookyeventrepeat |
Duplicate the last event with a new date |
/pookyinfo |
Display info about a user |
/pookyweb |
Link to the web dashboard |
/pookywiki |
Link to the documentation |
- Discord Bot — slash commands + interactive button embeds
- FastAPI REST API — Backend services for all CRUD operations
- Streamlit UI + NiceGUI UI — Two admin dashboard options
- SQLite Database — Shared across all components
- Docker — Easy deployment with docker-compose
- Weekly PvP trial/raid signups with fixed role compositions
- Community events requiring role-based attendance tracking
- Guilds that need a structured, searchable event history

