AI-designed server events, built and run entirely by your server — no client mod, ever.
EventForge turns a single sentence from an operator into a fully built, scheduled, and hosted server event: a boss fight with custom stats and a themed arena, a procedurally generated parkour course, a PvP arena with cover, a real treasure hunt buried in your world's actual terrain with riddle clues, or a themed build challenge — all designed collaboratively with an AI through an in-game conversation, and all running on plain, unmodified Paper/Bukkit. Players never install anything.
Running community events on a survival server usually means an operator manually building an arena, hand-picking a mob and its stats, writing a kit, and remembering to post about it in Discord — every single time. EventForge collapses that into one conversation:
/eventcreate a tier 2 fire-themed boss fight in a volcanic arena, decent kit with diamond gear
The AI asks a couple of clarifying questions if it needs to (survivor difficulty? PvP allowed? what's the reward?), then hands back a fully specified event. You pick a date and time through an in-game calendar, and EventForge takes it from there: building the arena, spawning and tuning the boss, posting to Discord, and delivering rewards straight to the winner's inventory — nothing left sitting on the ground for someone else to snipe.
| Server software | PaperMC (Spigot/CraftBukkit forks with the Paper API are not supported) |
| Minecraft/Paper version | 1.21.11, or any 26.x calendar-versioned release (26.1, 26.2, ...) |
| Java | 21 (for 1.21.11 builds) or 25 (for 26.1+ builds) |
| An OpenRouter API key | Free tier available; used for the AI conversation |
| A Discord webhook URL (optional) | For event announcements — the plugin works fine without it, you just won't get Discord pings |
No client-side installation of any kind is required for players. Everything — arenas, mobs, particles, GUIs, books — is built from vanilla-compatible server-side mechanics.
Run /eventcreate <your idea> and describe what you want in plain English. The AI can ask up
to three follow-up questions if something important is missing (theme, difficulty, what's in
the kit, what the reward should be) — answer normally in chat, or with /eventforge reply. Once
it has enough to work with, it finalizes the event and it's ready to schedule. Multiple events
can be designed and pending at once, each tracked by name.
Every event type actually generates something different, not a reskinned copy of the same room:
generic.scale attribute — genuine giant or tiny bosses, hitbox
included), status effects, and a behavior archetype: brute (melee rusher), sniper
(a naturally ranged vanilla mob, boosted range), or swarmer (periodically calls in allied
reinforcements while it's alive). Themed dyed-leather armor gives it a distinct look with zero
resource packs or client mods. While it's alive, the arena fills with themed ambient
particles — flame and embers for fire, snowflakes and cloud for ice, portal swirls for the
end, dripping water and bubbles for ocean — plus a bigger "burst" animation (a rising flame
column, a snow flurry, a spinning portal ring, a splash) that recurs roughly every 10 seconds.Loot is never left on the ground. Boss kills hand the reward directly to whoever landed the killing blow (vanilla drops are suppressed entirely, not just supplemented). Reward buttons and treasure chests work the same way — straight to inventory, first-come-first-claimed per event.
/eventschedule <name> opens an actual in-game calendar GUI — click through months, pick a day
(past dates are grayed out), then type the time in military format (2030 or 20:30, either
works), then pick a time zone from a searchable, paginated list covering every IANA zone in the
world. No memorizing UTC offsets.
Design and schedule several events at once. Every downstream command — joining, moving the reward button, pointing the teleporter — takes the event's name, so there's no ambiguity about which event you're configuring.
The event teleporter and reward buttons are placed exactly where you want them — stand there and
run the command, or pass explicit coordinates directly (/eventteleporter "Ashen Wyrm" 100 65 -200). Arena locations themselves are randomized and never posted publicly (not even in
Discord), so events stay a bit of a surprise until you point people at them.
Optional, but recommended: post a webhook URL once (via the in-game setup wizard, no rebuild needed) and every scheduled/live event gets an announcement with its type, description, reward, and your server's connect address.
/eventforge setup walks you through pasting your OpenRouter key and Discord webhook straight
through private chat. Saved immediately to config.yml, live, no restart.
eventforge-<version>-paper<mcversion>-all.jar).plugins/ folder./eventforge setup and follow the prompts for your OpenRouter
API key and Discord webhook URL.config.yml's server-ip field, so it shows
up in Discord announcements./eventteleporter <event name> [x y z] once you've got your first event scheduled, to
place a permanent "TP to Event" button wherever you want your event hub to be.| Command | Who can use it | What it does |
|---|---|---|
/eventcreate <idea> |
Operators | Starts (or continues) an AI conversation to design an event. Describe the type, theme, and difficulty; the AI may ask follow-up questions. |
/eventschedule <name> |
Operators | Opens the calendar GUI for a finalized, pending event. Quote the name if it has spaces. |
/eventjoin <name> |
Everyone | Joins or leaves the roster for a specific scheduled event. Quote the name if it has spaces. |
/eventteleporter <name> [x y z] |
Operators | Places (or moves) the wall-mounted teleporter button, pointed at the named event. Coordinates are optional and space-separated (no commas) — omit them to use your current position and facing. |
/eventbutton <name> [x y z] |
Operators | Moves a named event's reward button. Only applies to event types that use an auto-placed button (PvP arena, build challenge, custom) — parkour's button is tied to its course, and treasure hunts use a buried chest instead. |
/eventhuntstart [x y z] |
Operators | Sets where treasure hunt participants get teleported in when a hunt goes live (defaults to world spawn until set). Not tied to a specific event name, since it configures a default for future hunts. |
/eventforge setup |
Operators | Prompts for your OpenRouter API key and Discord webhook URL via private chat. Saves immediately, no restart. |
/eventforge reply <message> |
Anyone with something waiting on a reply | Answers an AI follow-up question, a setup prompt, or the scheduling flow's time prompt — without needing to type in normal chat. |
/eventforge ai |
Anyone | Prints a full breakdown of everything you can specify in an /eventcreate prompt, with an example. |
/eventforge help |
Anyone | Lists every command. Also triggered by running /eventforge with no arguments. |
| Node | Default | Covers |
|---|---|---|
eventforge.admin |
Operators (op) |
/eventcreate, /eventschedule, /eventteleporter, /eventbutton, /eventhuntstart, /eventforge setup |
/eventjoin, /eventforge reply, /eventforge ai, and /eventforge help are open to everyone
by default.
/eventcreate a swarmer-type wither skeleton boss in an end-themed arena, tier 3, reward of a few netherite ingots
The AI may ask something like "What should be in the starting kit for participants?" —
answer in chat: "Full iron gear and a stack of golden apples." It finalizes the event as
"Voidcaller's Wrath"./eventschedule "Voidcaller's Wrath" — pick a date on the calendar, type 2100 for
9 PM, and select America/Chicago from the timezone list. The arena builds immediately, in
the sky, themed to the end (purpur and end stone, portal-particle ambience once it's live)./eventteleporter "Voidcaller's Wrath" 0 80 0 — places the teleporter at world spawn's
general area, or wherever your event hub is./eventjoin "Voidcaller's Wrath" ahead of time.