Track Events — /dashboard
The /dashboard command creates a persistent event board that lives inside a
dedicated Discord channel. Guild members can add upcoming events directly by clicking buttons on the embed
— no extra commands needed. Leadership can adjust or delete events at any time, and the board
automatically cleans itself up as events expire.
Table of Contents
- How It Works
- Recommended Channel Setup
- Creating the Dashboard
- Embed Preview
- Adding Events
- Event Naming Tips & Emojis
- Adjusting Event Timers
- Auto-Archive (Expiry)
- Troubleshooting
How It Works
Once a dashboard is posted in a channel, it behaves like a live event board:
- Any guild member with access to the channel can click Add Event At or Add Event In to schedule a new event via a modal popup.
- All events are stored in the database and rendered as Discord timestamps so everyone sees the time in their own timezone automatically.
- When an event’s timer expires, the bot archives it and sends a notification to the configured log channel.
- Multiple dashboards can exist across different channels simultaneously.
/dashboard Discord command creates an interactive message inside a Discord channel
for real-time event tracking.
Recommended Channel Setup
For the best experience, dedicate a single channel exclusively to the event dashboard:
| Setting | Recommended Value | Reason |
|---|---|---|
| Channel name | #events or #event-board |
Makes it easy for members to find. |
| Send Messages (members) | Disabled | Keeps the channel clean — only the bot’s embed is visible. |
| Use Application Commands (members) | Disabled | Prevents clutter from slash commands in that channel. |
| View Channel (members) | Enabled | Members need to see and interact with the embed buttons. |
| Bot permissions | Send Messages, Embed Links, Read Message History | Required for the bot to post and edit the dashboard embed. |
Creating the Dashboard
Run the command in the channel where you want the dashboard to live:
The bot immediately posts the initial embed with two action buttons. From this point on, do not delete the message — all events are linked to that specific message ID. If the message is deleted, the events in the database will no longer have a host embed to update.
/dashboard again. Previously stored events will
be orphaned and will not appear in the new embed.
Embed Preview
Below is a reproduction of how the dashboard looks inside Discord, both when empty and when it has active events.
Empty Dashboard
Dashboard with Active Events
Crystal League at Bridgewatch Outskirts by @Kaelirix
Ends: in 2 hours (Apr 3, 2026 18:00 UTC)
Open World Zerg at Deadwater Fen by @Sorvak
Ends: in 4 hours (Apr 3, 2026 20:30 UTC)
HCE Run at Faction Raid by @Myrrath
Ends: in 6 hours (Apr 3, 2026 22:15 UTC)
Event Line Format
Each event in the embed follows this structure:
EventName at MapName by @DiscordUser Ends: <relative timestamp> (<absolute date/time>)
Both timestamps are Discord dynamic timestamps, meaning Discord renders them in every member’s local timezone automatically. The relative part ("in 2 hours") updates live as time passes.
Adding Events
There are two ways to add an event, both triggered by clicking a button on the embed:
Add Event At — specific UTC time
Use this when the event has a fixed start time on the calendar. A modal popup appears with three fields:
| Field | Description | Example |
|---|---|---|
| Event Name | Short name identifying the event. | Crystal League |
| Map Name | Location or map where the event takes place. | Bridgewatch Outskirts |
| Time (UTC, HH:MM) | The event time in 24-hour UTC format. If the time has already passed today, it is automatically scheduled for the same time tomorrow. | 18:30 |
Add Event In — relative time
Use this when the event starts "in X hours / Y minutes" from now. A modal popup appears with four fields:
| Field | Description | Example |
|---|---|---|
| Event Name | Short name identifying the event. | Open World Zerg |
| Map Name | Location or map where the event takes place. | Deadwater Fen |
| In Hours | Hours from now. Can be 0 if using only minutes. | 2 |
| In Minutes | Additional minutes on top of hours. Hours and minutes cannot both be 0. | 30 |
Event Naming Tips & Emojis
Discord renders Unicode emojis natively inside embed text, so you can prefix your event names with emojis to make the board visually scannable at a glance. Below are suggestions based on common Albion content types.
🟢🔵🟣🟡 Hideout ORBs — Energy Orbs
ORBs are placed in hideouts to increase hideout energy. Use colored circles to signal the orb tier or priority level instantly:
| Emoji | Suggested meaning | Example event name |
|---|---|---|
| 🟢 | Low tier / common orb | 🟢 Energy Orb T4 Hideout |
| 🔵 | Mid tier / rare orb | 🔵 Energy Orb T6 Hideout |
| 🟣 | High tier / epic orb | 🟣 Energy Orb T7 Hideout |
| 🟡 | Top tier / legendary orb | 🟡 Energy Orb T8 Hideout |
🌀 Vortex Objectives
Vortexes are world objectives requiring guild coordination. The swirl emoji communicates urgency and movement naturally:
| Emoji | Suggested use | Example event name |
|---|---|---|
| 🌀 | Vortex objective | 🌀 Vortex — Deadwater Fen |
| ⚡ | High-priority / fast spawn vortex | ⚡ Vortex URGENT — Brecilien |
🌱🫱🦴⛏️ Resource Nodes
When your guild camps or contests resource nodes, emojis help members quickly identify the resource type without reading the full name:
| Emoji | Resource | Example event name |
|---|---|---|
| 🌲 | Wood node | 🌲 T8 Wood Node — Caerleon Zone |
| 🫱 | Fiber node | 🫱 T7 Fiber Node — Swamp Crossing |
| 🦴 | Hide node | 🦴 T8 Hide Node — Mercia Outpost |
| ⛏️ | Ore node | ⛏️ T8 Ore Node — Anglia Quarry |
What it looks like in the embed
Mixing all of these together, a well-organized dashboard could look like this:
🟡 Energy Orb T8 Hideout at Black Zone HO by @Kaelirix
Ends: in 45 minutes (Apr 3, 2026 15:15 UTC)
🌀 Vortex — Deadwater Fen at Deadwater Fen by @Sorvak
Ends: in 2 hours (Apr 3, 2026 16:30 UTC)
⛏️ T8 Ore Node — Anglia at Anglia Quarry by @Myrrath
Ends: in 3 hours (Apr 3, 2026 17:30 UTC)
🌲 T7 Wood Node at Caerleon Zone by @Thalvrek
Ends: in 4 hours (Apr 3, 2026 18:00 UTC)
Adjusting Event Timers
When at least one active event exists, a green Adjust Event Timers button appears on the embed. This lets any member extend or shorten existing event timers in bulk:
- Click Adjust Event Timers — a private dropdown menu appears (only visible to you).
- Select up to 10 events from the list to adjust.
- A modal asks for the number of minutes to add.
- Positive value → extends the timer (e.g.,
30adds 30 minutes). - Negative value → shortens the timer (e.g.,
-15removes 15 minutes).
- Positive value → extends the timer (e.g.,
- All selected events are updated simultaneously and the embed refreshes.
Auto-Archive (Expiry)
The bot checks for expired events every time the dashboard embed is updated. An event is considered expired when the current time passes its stored Unix timestamp.
| What happens | Details |
|---|---|
| Event is archived | The isArchived field is set to true in the database. The event is no longer shown in the embed. |
| Log notification | If your server has a Log Channel configured, the bot sends a message listing all events that just expired. |
| Embed update | The dashboard embed is edited immediately to remove the expired events from the visible list. |
| Data retention | Archived events remain in the database with isArchived: true. They are never hard-deleted automatically. |
Troubleshooting
| Problem | Likely Cause | Fix |
|---|---|---|
| Embed doesn’t update after adding event | Bot lacks Manage Messages or Send Messages in the channel. | Review bot’s channel permissions and ensure it can edit its own messages. |
| Wrong time shown for event | Time was entered in local time instead of UTC. | Always enter time in UTC when using “Add Event At”. Discord converts it to each user’s local timezone automatically. |
| Event disappeared before expected | The timestamp expired and was auto-archived. | Check the log channel for an expiry notification. Re-add the event if needed. |
| No “Adjust Event Timers” button | No active events are currently tracked on that dashboard. | Add at least one event first — the button appears dynamically once events exist. |
| Dropdown says “no events found” | All events were archived between when the embed was last updated and when you clicked the button. | Refresh the view by adding a new event, which will trigger an embed update. |
| Events from deleted dashboard still in DB | Message was deleted but DB records remain. | Run /dashboard again in the channel to create a new live embed. Old archived records cause no visible issues. |