ModeledNPCs – Advanced NPC Management for MythicMobs & ModelEngine
Transform your Minecraft world into a dynamic, interactive universe with ModeledNPCs—a complete NPC system that brings your custom entities to life. Whether you're building an immersive RPG, a quest-driven adventure, or a lively marketplace, this plugin gives you everything you need to create stunning, intelligent, and fully customizable NPCs. Core Highlights
⚙️ Supports both ModelEngine and MythicMobs
Assign complex command chains to NPCs
Integrate with questing plugins like BetonQuest, Quests & QuestDialogs
Dynamic trading system with GUI confirmation
Full Adventure API support for rich text, hover events & translations
Data-persistent NPCs with live reloading, debug tools & permission controls
Create Dynamic NPCs Instantly
Spawn NPCs using ModelEngine or MythicMobs with a single command.
Each NPC is registered with its ID, name, entity type, UUID, and position.
Automatic support for custom names and holograms.
Advanced Interactions & Commands Trigger any command when players interact with NPCs:
player: – Run as the player
console: – Run as the server console
sudo: – Run as the player with OP
Supports:
Custom conditions
Permission checks
Delays and cooldowns Creating a NPC Will happen with this command :
Code (YAML):
/mnpc create <modelengine|mythicmobs> <name>
# Create an NPC /mnpc addcmd <player|console|sudo> <cmd>
# Add a command /mnpc removecmd <cmd>
# Remove a command[/FONT]
and data will be saved in npcdata.yml as follows :
️Powerful Trader System Create complex traders in trader.yml:
Set requirements: XP, economy balance, specific items (with custom model data).
Reward players with items, money, permissions, or teleportation.
Feature-rich multi-page GUI system powered by SmartInvs API.
Preview, buy/sell buttons, and full configurability.
Code (YAML):
# Example trader NPC configuration # Replace "npc-1" with the ID of your NPC as stored in the plugin data npc-1: # This is the name displayed to players when interacting with the trader display-name: "&6Stone Trader"
# Requirements to successfully complete the trade requirements: # Minimum experience level the player must have exp: 10
# Minimum amount of money the player must have (requires Vault + economy plugin) money: 500
# Items the player must have in their inventory (supports custom model data) items:
"1": # Unique ID for the item requirement (can be any string) # The name shown to identify this item (not required for logic) displayName: Stone
# The Minecraft material name (MUST be valid - use autocomplete or https://minecraftitemids.com) material: STONE
# Optional: Only accept items with a specific CustomModelData (e.g., from ItemsAdder, Oraxen, or resource packs) modelId: 57
# How many of this item the player must have amount: 1
# Message shown if the player doesn't meet this item requirement fail: "<red>You lack 1x stone</red>"
# Commands to run when the trade is successful # Use %player% to insert the player's name commands: -
"console:money give %player% 1000"# Gives $1000 to the player via console command
# Whether to show a confirmation GUI before completing the trade requireConfirmation: true
# Message shown to the player when the trade is successful message: "&aYou traded 1 Stone for $1000!"
Quest Integration Plug into top quest systems:
✅ Full compatibility with QuestDialogs (native)
Works with Quests and BetonQuest
Dynamically shows holograms based on player progress
Code (YAML):
CatchFishDialog:
npc: 1
yHeight: 20
questName: "Catch Fish" displayName: -
"&b&lCatch Fish" -
"%dialogstatus_<Catch Fish>_status%" dialog:
Action: DIALOG
Dialog: -
"Welcome to the quest Catch Fish!" - "Options: <yellow>1
: Continue</yellow>, <red>2
: Cancel</red>
" Options: 1: Action: DIALOG Dialog: - "Are you ready to help us catch fish?
" - "Options
: <yellow>1
: Start</yellow>, <red>2
: Cancel</red>
" Options: 1: Action: START Dialog: - "Great! Catch 10 fish and return to me.
" 2: Action: CANCEL Dialog: - "Alright, maybe next time.
" 2: Action: CANCEL Dialog: - "Maybe another time!
"
wood: npc: 2 questName: wood displayName: - "&c&lWood Quest
" - "%dialogstatus_<wood>_status%" yHeight: 3
dialog:
Action: DIALOG
Dialog: - The bridge is broken! Can you help fix it?
- "Options: <yellow>1
: Yes</yellow>, <red>2
: No</red>
" Options: "1
": Action: START Dialog: - Great! Bring 10 wood planks to the carpenter. "2
": Action: CANCEL Dialog: - No worries. Let me know if you change your mind.
SlayDragonDialog: npc: 3 displayName: - "&b&lSlay the Dragon
" - "%dialogstatus_<Slay the Dragon>_status%" questName: "Slay the Dragon" dialog:
Action: DIALOG
Dialog: -
"A dragon is terrorizing the village! Can you help us slay it?" - "Options: <yellow>1
: Yes</yellow>, <red>2
: No</red>
" Options: 1: Action: START Dialog: - "Prepare yourself for battle!
" 2: Action: CANCEL Dialog: - "We understand. It's a dangerous task.
"
️ModelEngine Animation Support Bring your NPCs to life with animations:
Triggered or continuous animations
Controlled via meganimation.yml or directly in-game
Code (YAML):
# This file maps animations to specific NPCs by their ID. # Define animations per NPC using: # - looped_animation: animation that plays continuously # - interact_animation: animation that plays when the player interacts 1:
looped_animation: walk
interact_animation: attack
2:
looped_animation: walk
interact_animation: attack
3:
looped_animation: walk
interact_animation: attack
4:
looped_animation: walk
interact_animation: attack
5:
looped_animation: fidget
interact_animation: greet
# Add more NPCs below # Make sure animation names match your ModelEngine blueprints! # # Example: # 6: # looped_animation: idle # interact_animation: greet
Visual Effects & AutoLook
Add ambient effects like particles, sounds, and flames
Set up looping effects to enhance immersion
Enable AutoLook: NPCs track the closest player automatically
Whether you're building an epic RPG realm, creating merchant hubs, or scripting deep interactions—ModeledNPCs gives you full power to design the world you imagine.