Mineuniverse
Mods
LegendQuest StoryTeller

LegendQuest StoryTeller

MOD
Run a live story for a server of LegendQuest characters. One player is the Storyteller - the Dungeon Master - and gets the tools to stage a session.
by sablednah
Download Claim this project
146 downloads
0 likes
Updated Oct 14, 2026
0 hypes
Adventure and RPG Server Utility Utility & QoL
Advertisement Remove ads with Premium →

LegendQuest StoryTeller

LegendQuest StoryTeller

Run a live story for a server of LegendQuest characters. One player is the Storyteller — the Dungeon Master — and gets the tools to stage a session: drift unseen through a scene, look in on any player, spawn and dress a cast, take over a creature and speak as it, place a building, narrate, and hand out the spoils.

An expansion for LegendQuest ReForged, not a standalone mod. An NPC here is a LegendQuest character sheet; a reward is LegendQuest XP; a party is a LegendQuest party.

Built for Minecraft 1.21.11, 26.1.2 and 26.2. Each download names the version it is for, and refuses to load on the wrong one rather than misbehaving quietly.


Only the server needs it. Your players install nothing.

LegendQuest StoryTeller
Server required required
The Storyteller optional optional
Everybody else nothing nothing

That is a hard constraint on the design, not a nice-to-have. Every effect the table perceives arrives through something a vanilla client already understands — real entities, chat, titles, the action bar, sounds. Your players see the whole scene from an unmodded client. Nobody has to install a modpack to be in your story.

It also means the Storyteller can run a session from a vanilla client. Even the buttons work — see below.


Be a creature and speak as it

/st possess takes over the creature in your sights, and /st say <words> gives it your voice to anyone close enough to hear. Say /st possess again and it is itself, exactly as it was — nothing is destroyed, nothing is rebuilt, a released goblin is still a goblin.

With the StoryTeller mod on your client, you are it. Your own controls, your own mouse, your own jump: the creature goes where you go, invisible from inside and standing where your body would be when you look at yourself from behind. The room sees only the creature. It works on a cast NPC just as well as a wild animal, human bodies included.

On a vanilla client that would fill the screen with the inside of a cow, so /st possess leads the creature instead — it walks where you walk, bound by its own legs. You are not asked which client you are on; the mod works it out and tells you which one you got.

/st possess eyes does the opposite trade: the camera binds to the creature and you see what it sees while it carries on living its own life. On a vanilla client you cannot have eyes and control at once — that is Minecraft's limit rather than a shortcut, and the mod says so plainly instead of pretending.

You are hidden automatically while you wear a body (with Standards installed), and given back to the world when you let go — unless you had hidden yourself first, in which case you stay hidden and are told why.

Lock on, then look wherever you like

/st move sends what you have locked to where you are looking, and /st swing makes it take a swing — a blacksmith striking an anvil, a guard warning somebody off. Both need a lock rather than your crosshair, deliberately: when you are pointing at the place you want it to walk to, the crosshair is on the destination, not on the creature.

A creature sent somewhere keeps doing what it was doing, at the new spot — a guard walked across a courtyard guards there from then on, instead of strolling home a few seconds later. And each order says what will actually happen: whether it will guard or patrol where it lands, whether it is still following somebody and will head back, that a slime cannot be walked anywhere at all, and that a creature somebody is wearing goes where its driver goes. An order it cannot carry out is refused out loud rather than accepted and quietly dropped.

/st lock makes the creature in your sights the target until you say it again. Possess, speak, dress, direct and save all mean that one afterwards, wherever you happen to be looking.

Pointing at a thing is the right default — no names, no ids, no selectors — but it wants your head still, and walking a possessed cow across a room means looking where it should go, which is not at it. A locked shopkeeper can even hold a whole conversation through /st say without being possessed at all, so it keeps its own behaviour while you speak for it.

It never fails quietly: if the creature dies, unloads or leaves the world, the lock ends and says so, rather than silently pointing your next command at whatever happened to be under the crosshair.

Cast a scene

  • /st cast spawn <entity> [name] — any mob, named or not.
  • /st cast citizen [race] [class] — a named villager with a LegendQuest race and class rolled by weighted frequency, or pinned to the ones you want.
  • /st cast behave guard | patrol | follow <player> | flee | none — a movement habit added alongside a creature's own instincts, so a guard still fights back and still flinches from fire.
  • /st cast save | use | list — keep a cast member as a preset, stored with the world.
  • /st cast equip <slot> <item> · /st cast worn — dress an NPC, with the item written exactly as /give takes it, so a named sword or a tipped arrow works. (Needs Cast, below.)

Dress the set — and see it before you place it

  • /st struct ghost <structure> shows a building where it would stand, centred on where you are looking, before anything is built. With the StoryTeller mod on your client it is drawn in the world as a translucent ghost: scroll turns it, Shift+scroll or Page Up/Down raise and lower it, the arrow keys shift it to sit right on uneven ground, left-click locks it in place so you can walk round it, right-click builds it and Esc puts it away. On a vanilla client you get its outline in particles only you can see, with its front edge in gold, steered by a row of chat buttons.
  • /st struct place <structure> [at <x y z>] [rotate cw90|180|ccw90] — any structure any loaded datapack declares: over 1,200 of them in vanilla alone, village houses, temples, ruins and fortress pieces. It is exactly what the ghost sends, so the two never disagree about where a building lands.
  • Placing is tidy. A structure's recorded air is left out, so a house set into a hillside does not carve a box out of it; the jigsaw connectors a village piece carries become what world generation would have made them; and nothing breaks and scatters drops as it lands. Add withair or withjigsaw to keep either.
  • /st struct whole ghost <structure> · /st struct whole place <structure> — a whole generated structure, the way world generation assembles it: a village with its streets and farms, a bastion, an outpost, an ancient city, a monument, a fortress, a stronghold, a mansion. The ghost shows the assembly before anything is built, and what you see is what lands — the layout is pinned, so placing it does not quietly deal a different village. [Reroll] deals another one. Every structure draws, whether it is stamped from saved templates or built in code, because it is asked to build itself somewhere nothing is kept and the ghost shows what it laid down.
  • /st struct library ghost <name> · /st struct library place <name> [at <x y z>] [rotate ...] — the same for CityWorld's schematic library, when it is installed.
  • /st undo · /st scene clear — take back the last thing you placed or spawned, or everything from this session. Every placement snapshots the ground first, so a building comes back off cleanly, without beds breaking or chests spilling on the way.

Reward the table

  • /st reward <player> xp | levels | sp | karma | money <n> [reason]
  • /st reward <player> reputation <track> <n> [reason] — standing with a faction or a town, which is not the same thing as karma: karma is LegendQuest's moral axis and drives your titles, reputation is standing on a named track, so a character can be loved in one place and hated in the next.
  • /st reward <player> item <item> [count] — hand over the actual thing, from the item registry, so modded loot works as well as vanilla.
  • /st reward party <player> … — the whole party in one action, because a GM awarding four people one at a time will award three.
  • /st effect <player> <effect> <seconds> [level] [hidden], and the party and clear forms.

hidden suppresses the swirling particles — for a condition the story imposes rather than a potion someone drank.

These are not a reimplementation of vanilla /effect and /xp. They are the same capabilities reached through the Storyteller's own permission instead of operator, so a GM can lay a curse without also being handed /stop, /ban and every block on the server.

See the table, and speak to it

  • /st who — the roster: race, class, level, karma, health, mana, party and where everyone is standing, with health coloured because it is the one number you have to react to mid-scene.
  • /st goto <player> · /st next — look in on someone, or cycle the table.
  • /st drift — leave your body and move through the scene unseen; say it again to come back, with dimension, position, facing and game mode all restored.
  • /st summon [player] — bring the whole party to where you stand, in a ring, facing what you are facing. Everyone is told who brought them, and anyone offline is reported to you instead of silently left behind.
  • /st narrate [radius <n>| party <player>] <text> · /st title <text> · /st whisper <player> <text> — a god-voice, a title card, an omen meant for one person.

Buttons, without asking anyone to install anything

With Standards installed, the Storyteller's most-used tools appear as buttons — a drawn bar for anyone running the Standards client, and clickable chat buttons for anyone who is not. A vanilla Storyteller gets working buttons.

They report state rather than just availability: Possess lights up while you are wearing something and names it, Lock lights up naming what it holds. A Storyteller who can see "you are wearing a cow" notices a possession that has quietly ended, instead of finding out three commands later.

And keys, for the tools you aim. Install StoryTeller on the Storyteller's own client and seven keybinds appear — possess, lock, move, swing, drift, next and summon — so you can take over a creature, or send it somewhere, while you are still tracking it with the mouse. They arrive unbound, and the game tells you once that they are there.


Permissions

Two nodes, through NeoForge's permission API, LuckPerms-compatible — the same scheme LegendQuest uses, so a server already granting legendquest.* needs no new tooling.

Node Grants
storyteller.storyteller /st at all
storyteller.reward handing out XP, levels, skill points, karma, reputation and money

Both default to false, operators included. An op is someone who can fix the server, which is not the same as someone who should be able to silently possess a player's rival mid-session. They are split for the same reason: "can hand out levels and money" and "can drift through walls unseen" are different amounts of trust, and you should be able to grant one without the other.


Required: LegendQuest

LegendQuest ReForged is a hard dependency, matching Minecraft version for Minecraft version.

Optional, and each one adds something specific

Mod Adds
Standards the buttons, money rewards, reputation rewards, and hiding you while you wear a body
Cast NPC bodies — human and mob — to possess, dress and speak through; making a person swing needs 1.1.0 or newer
CityWorld its schematic library (.schematic, .schem, .litematic, .nbt) as a second pool for /st struct; ghosts and turning need 5.8.0 or newer

Every one of these degrades to a plain "not available on this server" rather than breaking. Standards being installed and the server having an economy are asked as two separate questions, because they are two separate things.

Where a version is named it is enforced, deliberately: a Cast older than 1.1.0 stops StoryTeller loading, with a message saying which mod to update. That reads harsher than degrading quietly, and it is the kinder failure — the alternative is a server that starts cleanly and then throws, mid-scene, the first time a Storyteller makes somebody swing.


Installing

  1. Put the LegendQuest jar and the StoryTeller jar in your server's mods/ folder — both must be for the same Minecraft version.
  2. Start the server.
  3. Grant storyteller.storyteller to whoever is running the story. Nothing works until you do, deliberately.

Pick the download matching your server:

File Minecraft NeoForge
storyteller-<version>+mc1.21.11.jar 1.21.11 any 21.11 build
storyteller-<version>+mc26.1.2.jar 26.1.2 any 26.1 build
storyteller-<version>+mc26.2.jar 26.2 any 26.2 build

Any build within the series will do — updating NeoForge does not mean waiting for a StoryTeller release that changes nothing else.


Honest about what it does not do yet

There is no Storyteller screen yet — no roster panel, spawn palette or saved reward presets. What you run a session with today is the commands, the Standards buttons (a drawn bar, or clickable chat buttons on a vanilla client) and the keybinds. All three send the same /st commands, so none of them can do something the others cannot, and a screen built later will work the same way.

StoryTeller runs a story live; it does not author one. Written questlines — givers, stages, choices, consequences the world remembers — are Chronicler's job, and the two sit happily on one server: prepare the plot in Chronicler, improvise around it with StoryTeller.

Two limits worth knowing before a real session, stated here rather than discovered mid-scene:

  • behave may not hold on a brain-driven creature — villagers, piglins, wardens and seventeen others run on a different AI system that our instruction competes with rather than replaces. It applies the behaviour and tells you it may not hold, rather than claiming a success it has not earned.
  • Undo restores blocks, not container contents. A chest a structure overwrote comes back as an empty chest of the right kind. Fine for dressing empty ground; do not place over someone's base and rely on taking it back.

Source, issues, licence

MIT licensed and developed in the open at GitHub. Bug reports and suggestions are welcome on the issue tracker.

LegendQuest StoryTeller 1.3.1+mc26.3
MC Client, NeoForge, Server, 26.3
Release 2026-09-29 Get
LegendQuest StoryTeller 1.3.0+mc1.21.11
MC Client, NeoForge, Server, 1.21.11
Release 2026-09-20 Get
LegendQuest StoryTeller 1.3.0+mc26.1.2
MC Client, NeoForge, Server, 26.1.2
Release 2026-09-20 Get
LegendQuest StoryTeller 1.3.0+mc26.2
MC Client, NeoForge, Server, 26.2
Release 2026-09-20 Get
LegendQuest StoryTeller 1.2.0+mc1.21.11
MC Client, NeoForge, Server, 1.21.11
Release 2026-09-19 Get
LegendQuest StoryTeller 1.2.0+mc26.1.2
MC Client, NeoForge, Server, 26.1.2
Release 2026-09-19 Get
LegendQuest StoryTeller 1.2.0+mc26.2
MC Client, NeoForge, Server, 26.2
Release 2026-09-19 Get
LegendQuest StoryTeller 1.1.0+mc1.21.11
MC Client, NeoForge, Server, 1.21.11
Release 2026-09-15 Get
LegendQuest StoryTeller 1.1.0+mc26.1.2
MC Client, NeoForge, Server, 26.1.2
Release 2026-09-15 Get
LegendQuest StoryTeller 1.1.0+mc26.2
MC Client, NeoForge, Server, 26.2
Release 2026-09-15 Get
LegendQuest StoryTeller 1.0.0+mc1.21.11
MC Client, NeoForge, Server, 1.21.11
Release 2026-09-13 Get
LegendQuest StoryTeller 1.0.0+mc26.1.2
MC Client, NeoForge, Server, 26.1.2
Release 2026-09-13 Get
LegendQuest StoryTeller 1.0.0+mc26.2
MC Client, NeoForge, Server, 26.2
Release 2026-09-13 Get

More from sablednah

Advertisement Remove ads with Premium →

You Might Also Like