
ProgressionNPCWork
ProgressionNPCWork is currently a merged Paper plugin that combines NPC, quest, shop, and companion systems under /pnw and already includes dialogue book UI, reload/config features, Bedrock support, and companion logic.
ProgressionNPCWork
-
ProgressionNPCWork is a single, merged Paper plugin that bundles four systems into one clean workflow:
-
ProgressionNPC → persistent NPCs with admin tools, skins, and equipment
-
ProgressionQuest → YAML-driven quests with NPC dialogue + clickable chat actions
-
ProgressionShop → NPC-bound buy/sell shops with GUI
-
ProgressionNPCCompanion → quest companions (followers) with optional combat + escort targets + gear transfer
Everything is stored in simple files under plugins/ProgressionNPCWork/, so you can manage content with commands, in-game editors, or raw YAML.
Highlights
-
One plugin, four core RPG systems (NPCs, Quests, Shops, Companions)
-
NPC dialogue + quests shown directly in chat (with clickable Accept / Turn-in)
-
Quest safety rules: accept/turn-in only works after talking to the correct NPC
-
Main-quest chains (Hauptquest) + standalone side quests (Nebenquest)
-
Loot turn-in parsing (supports multiple items + optional cmd=...)
-
Companion system:
-
smooth follow behavior (does not reposition just because you rotate)
-
optional combat assist (never targets players)
-
escort goal support (auto-despawn when target is reached)
-
Shift + Rightclick companion to open an equip GUI
-
auto-return companion gear on quest end/fail (and on next join if anything is left behind)
-
-
Shop system:
-
file-based shops (shops/*.yml)
-
buy + sell entries
-
supports ProgressionAPI item specs (if available)
-
uses ProgressionEconomy for actual money handling (if installed)
-
Why you’ll love it
-
You can build a real MMO-style quest hub fast: create NPC → add dialogue → create quest → activate → done.
-
Players get a clear flow: talk → accept → deliver items → turn in, with minimal commands.
-
It’s built for server iteration: edit YAML, run reload commands, keep moving.
-
You can create escort / companion quests without custom scripting.
Features
-
NPC System (ProgressionNPC)
-
NPC creation/removal/listing
-
“Look at players” toggle
-
“Animations / AI” toggle + anchor control (keeps NPC at its position)
-
Teleport NPC to you
-
NPC equipment GUI (armor + main/offhand)
Skin system:
-
save Mojang skin by player name
-
assign saved skin to NPC
Protection:
-
NPCs can’t be damaged
-
interactions are controlled (no vanilla villager trading)
Quest System (ProgressionQuest)
-
Quest definitions stored as YAML (quests/
.yml) -
NPC dialogue lines stored per NPC (npcs/
.yml) -
Clickable quest actions in chat under the dialogue:
-
[Accept] → runs /pv quest accept
-
[Turn-in] → runs /pv quest turnin
-
-
Quest prerequisites (quest chains) via requires_completed
Turn-in rules:
-
must talk to the correct NPC (context system)
-
optional “visit NPCs before turn-in” requirement
Rewards:
-
XP reward (grants real XP)
-
Item rewards (grants real items)
-
Coins reward is currently displayed (quest economy payout is not implemented here)
Quest book:
-
configurable questbook.yml (title/author/CMD/pages/layout)
- /pv give questbook
Shop System (ProgressionShop)
-
Shops loaded from shops/*.yml
-
Each shop is tied to an npcId
-
GUI-based buy/sell
-
Buy supports item spec (ProgressionAPI) or vanilla material definition
-
Sell supports match rules (e.g., material-based)
-
Optional background filler + navigation/back button settings
-
Economy integration:
- requires ProgressionEconomy to actually buy/sell
Companion System (ProgressionNPCCompanion)
-
Companion can be enabled per quest (companion.enabled)
-
Optional combat support (companion.combat)
-
Optional escort system:
-
set a target location + radius
-
when player + companion reach it, it marks reached and despawns the companion
Template NPC support:
- companion can copy name/skin/equipment from a chosen NPC template (companion.templateNpcId)
Gear transfer:
-
Shift + Rightclick your companion → open equip GUI
-
saved per-player/per-quest
-
auto-returned on quest end/fail (and recovered on join if left over)
-
Setup
-
Install
-
Put the jar in your server’s plugins/ folder.
-
Required dependency
-
ProgressionAPI (hard depend)
-
Optional dependencies (recommended)
-
LibsDisguises + ProtocolLib (needed for player-skin disguises on NPCs/companions)
-
ProgressionEconomy (needed for shop buy/sell to actually work)
-
First start
-
The plugin generates files into:
-
plugins/ProgressionNPCWork/config.yml
-
plugins/ProgressionNPCWork/settings.yml
-
plugins/ProgressionNPCWork/ui.yml
-
plugins/ProgressionNPCWork/messages.yml
-
plugins/ProgressionNPCWork/colors.yml
-
plugins/ProgressionNPCWork/questbook.yml
-
plugins/ProgressionNPCWork/tool_prices.yml
-
plugins/ProgressionNPCWork/shops/ (creates an example shop if empty)
-
plugins/ProgressionNPCWork/templates/ (quest + npc templates)
-
Compatibility
-
Platform: Paper (uses Paper Brigadier command registration)
-
Minecraft: api-version: 1.21 (built against Paper 1.21.11 API)
-
Java: 21
-
Depends: ProgressionAPI
-
Softdepends: ProtocolLib, LibsDisguises, ProgressionEconomy
Basic workflow
-
Create an NPC
-
/pnpc npc create
-
(Optional) Give it a skin
-
/pnpc skin save
-
/pnpc skin set
-
Add dialogue lines for that NPC
-
Select NPC (admin, in-game): Shift-rightclick the NPC (or use selection tools)
-
-
Add dialogue:
-
/pv chat create <text...> [npcId]
-
Create a quest
-
Main quest chain:
- /pv hauptquest create <name...> [npcId]
-
Side quest:
- /pv nebenquest create <name...> [npcId]
-
Edit quest content
-
/pv quest edit
(opens clickable editor) -
Set task text, loot requirement, visited NPC requirements, rewards, companion settings
-
-
Activate the quest
- /pv quest end
(sets the quest to active)
- /pv quest end
-
Player gameplay loop
-
Player rightclicks the NPC → dialogue shows → quests appear with clickable buttons
-
Accept → do task → turn-in
-
(Optional) Add a shop to an NPC
-
Create/edit shops/
.yml
-
-
Bind shop to NPC:
- /pshop bind
- /pshop bind