Events
Announcing an event, running it, and ending it.
Module: events (off unless switched on)
Hosting an event
/event start
Discord will ask you for:
| Box | What to put in it | Required? |
|---|---|---|
| event_type | What kind of event, e.g. ssu | Yes |
| game | Which game, e.g. tom_classic | Yes |
| note | Anything extra people should know | No |
| publish | Show it on the public website calendar | No. Off unless you tick it |
The event type and game come from a list your admin set up. Start typing and Discord suggests them. If nothing is suggested, none have been set up yet — that's an admin job, see below.
The bot posts the announcement, pings whichever roles are configured, and puts an End button on it.
Starting one from a panel instead
If your admin has set up a panel, you do not have to type anything. A panel is a message sitting in a channel with a button for each event your server runs often. Press the button and the event starts.
A button is a saved answer to the same boxes /event start asks for, so the
event that comes out is identical: same announcement, same pings, same End
button. The rules are identical too. You still need the hoster role, the
cooldown still applies, and publishing to the website still only happens if the
button was saved with it switched on.
Panels usually carry a Custom button at the end for the event with no preset. It asks you for the type, the game, and an optional note, and starts that instead.
Ending it
Press End on the announcement. That's it.
- The post is replaced with "Event Ended" and an Undo button.
- Undo works for a short window in case you hit End by mistake.
- The post deletes itself after a few minutes.
Putting it on the website
Tick publish: True when you start it.
It's off unless you tick it, on purpose. Events go on a public page that anyone can see, and most internal training runs shouldn't be there.
For publishing to actually work, three things all have to be true:
- The
calendarmodule is on for your server. - Your server is mapped to a group on the website.
- You ticked
publish.
If any of them isn't, the bot tells you so straight after posting, and the event still runs normally in Discord. Publishing failing never stops an event.
Cooldowns
Most servers have a cooldown so events can't be started back to back. If you're inside it, the bot says when it ends and offers you two ways forward:
- Request an override. Posts to the override channel (
events_override_channel); staff click Approve or Deny on it. - Wait.
Approved once, you skip the cooldown for your next /event start only. It
doesn't stay open.
Vote requests
Separate from hosting directly: when a server has events_request_options
configured, the bot can post its own message offering a small set of games as
buttons, and members vote by clicking one. Once one option reaches the vote
threshold, the bot starts that event automatically, as if a host had run
/event start themselves. This is a background behaviour, not a command
anyone runs. The settings that shape it live in
Settings → Event hosting → Vote requests.
Removing someone's override restriction
Bot owner or admin, if someone has been blocked from requesting cooldown overrides:
/eventadmin override unrestrict user: @someone
Admin setup
A server admin does this once.
/config set key: events_channel value: #where-events-get-posted
/config set key: event_hoster_role value: @who-can-host
/config set key: events_ping_roles value: 123456,789012 (optional)
/config set key: events_color value: #ff8800 (optional)
/config set key: events_delete_minutes value: 10 (optional)
/config set key: events_cooldown_minutes value: 60 (optional, default 60)
/config set key: events_override_channel value: #override-requests (optional, needed for overrides)
Then add at least one event type and one game. Both are required before
/event start has anything to offer in its dropdowns:
/eventadmin type add key: ssu display_name: "Server Start Up"
/eventadmin game add key: tom_classic display_name: "TOM Classic" game_url: https://... game_type: tom emoji: 🎮 thumbnail_url: https://... (optional)
game_type is one of tom, scpf, or external.
| Command | What it does |
|---|---|
/eventadmin type add <key> <display_name> | Add or update a type |
/eventadmin type remove <key> | Remove a type |
/eventadmin type list | See every type |
/eventadmin game add <key> <display_name> <game_url> <game_type> <emoji> [thumbnail_url] | Add or replace a game preset |
/eventadmin game remove <key> | Remove a preset |
/eventadmin game thumbnail <key> <thumbnail_url> | Update just the thumbnail |
/eventadmin game list | See every preset |
Building a panel
A panel is the button version of /event start, for the events your server runs
week in week out. Set the panel up once, and hosts stop typing keys.
/eventadmin panel create name: main title: "Quick Events" body: "Press one to start it."
/eventadmin panel buttonadd panel: main label: "Area-108 Riots" event_type: riot game: tom_classic emoji: 🚨 style: red
/eventadmin panel post panel: main channel: #events
name is how you refer to the panel in the other commands and nobody else sees
it. title and body are what people read on the message.
Each button needs an event_type and a game that already exist, so add those
first. The command refuses keys it does not recognise, which means a button that
saves is a button that works.
| Command | What it does |
|---|---|
/eventadmin panel create <name> <title> [body] [allow_custom] | Create or update a panel |
/eventadmin panel buttonadd <panel> <label> <event_type> <game> [emoji] [style] [note] [publish] | Add a preset button |
/eventadmin panel buttonremove <panel> <label> | Remove one, by its label |
/eventadmin panel post <panel> <channel> | Post the panel into a channel |
/eventadmin panel list | Every panel, its buttons, and where it is posted |
/eventadmin panel delete <panel> | Delete the panel and its message |
Things worth knowing:
stylesets the button colour:blurple,grey,green, orred.noteandpublishbehave exactly as they do on/event start. A button saved withpublish: Trueputs its events on the public calendar every time.allow_customdefaults to on and adds a Custom button for events with no preset. Turn it off if you only want the presets used.- Adding or removing a button rewrites the posted message. You do not repost.
- A panel holds 25 buttons, or 24 with the Custom button on.
It's not working
When you are stuck
"Module not fully configured"
The message names the missing setting. Run /config set with that name.
"No event types configured"
Run /eventadmin type add first. Same for games.
"You need the event hoster role to start an event."
You don't have the role set in event_hoster_role. Server admins bypass this.
"Configured events channel not found."
The channel was deleted or renamed. Run /config set events_channel again pointing at the current one.
The End button does nothing
Only the host and staff can end an event. If you're neither, nothing happens.
It said "Not published"
One of the three publishing conditions above isn't met. The event itself is fine. This only affects the website.
"This preset no longer exists."
Someone removed that button but the panel message is stale. An admin can add it
back with /eventadmin panel buttonadd, or reposting the panel clears it.
A panel button did nothing except an error about the hoster role or a cooldown
Panel buttons run the same checks as /event start. The button is fine; the
answer is in the message it gave you, and it applies to the command too.
"Panel `x` is full"
25 buttons is the Discord ceiling, 24 when the Custom button is on. Remove one, or make a second panel.
I added a button and the panel still shows the old ones
The panel only rewrites itself if it has been posted. Run
/eventadmin panel post to put it in a channel.
I ended it by accident
Press Undo. If it's already gone, start a new one.