
story
Per-player storyline system with triggers, actions, and seamless plugin integrations for narrative-driven Paper servers.
⬇ Download on Modrinth📖 Story — Per-Player Storyline System
Story is a high-performance Paper plugin that assigns each player a unique, personalized storyline and automatically advances it in response to their in-game actions. Built for servers that go beyond simple quest plugins — Story is designed for narrative-driven Minecraft experiences.
🌟 Features
Linear Story Progression
Players must complete their currently assigned story before moving on to the next. Simply define previousStory and nextStory in each story file, and the plugin automatically chains the entire storyline — no complex scripting required.
Trigger System
Almost any player action can be used as a story trigger. Combine multiple triggers within a single story for rich, multi-objective progression.
| Trigger | Description |
|---|---|
BREAK_BLOCK |
Break a specific block |
CRAFT_ITEM |
Craft a specific item |
INTERACT_CHEST |
Interact with a chest |
KILL_MYTHIC_MOB |
Kill a specific MythicMobs entity |
TOWNY_* |
Town creation, nation join, territory expansion, etc. |
COMPLETE_QUEST |
Complete a quest via the Quests plugin |
Both vanilla blocks/items and ItemsAdder custom items (namespace:id) are fully supported.
Action System
When a trigger fires, one or more of the following actions execute:
- Send Message — Deliver a personal message or server-wide broadcast. Supports
&color codes and PlaceholderAPI placeholders. - Run Command — Execute any command as console (great for rewards, titles, teleportation, etc.)
- Advance Story — Increment objective counters; automatically transition the player to the next story when all objectives are met.
Admin Commands
| Command | Description |
|---|---|
/story reload |
Hot-reload all story files without restarting the server |
/story restart |
Safely save all data, then perform a full reload |
/story list |
View all loaded stories with their activation status |
/story next <player> |
Force-advance a player to their next story |
/story set <player> <storyId> |
Teleport a player to any specific story instantly |
🔌 Integrations
All integrations are soft dependencies — Story runs perfectly fine without any of them, and only activates features for plugins that are actually installed.
- ItemsAdder — Custom block & item triggers
- MythicMobs — Custom mob kill triggers
- Towny Advanced — Town & nation event triggers
- Quests — Quest completion triggers
- PlaceholderAPI — Expose story title, progress (%), and remaining objectives anywhere on your server
⚡ Performance
- In-memory processing — All repetitive data operations run in memory, minimizing disk I/O overhead
- Reflection caching — Expensive reflection calls are cached, keeping performance stable even under high player counts
- Safe auto-save — Player progress is automatically saved when the server stops or the plugin is disabled, preventing any data loss
📋 Requirements
| Minecraft | 1.21.4+ |
| Server Software | Paper (or compatible forks) |
| Java | 21+ |
📦 Installation
- Download the latest
.jarfrom the Releases page - Drop it into your server's
plugins/folder - Start the server — a default config will be generated under
plugins/Story/ - Define your stories and run
/story reloadto apply
Source Code: github.com/NOAHSOFTKR/story Built with Kotlin · Paper API · Java 21 · Minecraft 1.21.4
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.21.4, 1.21.5, 1.21.6
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Modrinth — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
- Ships as story-2.2.jar — drop this file into the mods folder
- Download size: 1.8 MB
- Download link checked 24 Aug 2026 — working
These come from our own check of the pack file, not from the source page.