Public Calendar
Month/week/list views with event art, countdowns, target servers, rewards, and timezone conversion.
Festival’s operator surface should feel closer to a live event control room than a list of timers.
| Command | Purpose |
|---|---|
/festival | Show active and upcoming events. |
/festival calendar | Open the event calendar. |
/festival info <event> | View event rules, rewards, location, and time remaining. |
/festival join <event> | Join/track an event if it has opt-in participation. |
/festival rewards | View event rewards and claim status. |
/festival recap [event] | View recap stats for a completed event. |
| Command | Purpose | Risk |
|---|---|---|
/festival admin create <template> | Create a draft event from a template. | Low |
/festival admin preview <event> | Show affected nodes, boons, rewards, and announcements. | Low |
/festival admin publish <event> | Publish a scheduled event. | High |
/festival admin start <event> | Start immediately. | High |
/festival admin pause <event> | Pause active effects. | Medium |
/festival admin stop <event> | End event and run closing jobs. | High |
/festival admin cancel <event> | Cancel scheduled event and announce cancellation. | Medium |
/festival admin reload | Reload safe templates and announcement config. | Low |
| Node | Default | Purpose |
|---|---|---|
festival.use | true | View active/upcoming events. |
festival.join | true | Opt into joinable events. |
festival.rewards | true | View event reward state. |
festival.admin.preview | op | Preview event effects. |
festival.admin.schedule | op | Create/publish/cancel events. |
festival.admin.control | op | Start/pause/stop active events. |
festival.admin.reload | op | Reload Festival config. |
Public Calendar
Month/week/list views with event art, countdowns, target servers, rewards, and timezone conversion.
Event Detail Pages
Dedicated pages for rules, reward previews, participation requirements, and live progress.
Staff Scheduler
Drag events, clone templates, validate conflicts, preview announcements, and publish changes.
Recaps
Completed event pages with attendance, milestones, screenshots, top contributors, and reward status.
Festival should support scheduled Discord posts:
| Timing | Message |
|---|---|
| T-24h | Event announcement and RSVP/reminder button |
| T-1h | Reminder with rewards and target server |
| T-15m | Final countdown |
| Start | Event live embed |
| Progress | Optional milestone updates |
| End | Recap and reward claim instructions |
A Festival boon should be generic enough to target many mods:
{ "id": "relic_renown_double", "type": "modifier", "adapter": "relic", "operation": "multiply_renown", "value": 2.0, "scope": { "tools": ["pickaxe", "axe"], "worlds": ["survival"] }}The adapter registers the modifier, returns an activation receipt, and must provide a rollback handler.
festival { scheduler { authority = "ceremony" warmupMinutes = [1440, 60, 15] failMode = "rollback_all" }
web { enabled = true publicBaseUrl = "https://play.example.com/festival" }
discord { enabled = true publicWebhook = "env:FESTIVAL_DISCORD_WEBHOOK" staffWebhook = "env:FESTIVAL_STAFF_WEBHOOK" }}