Polymart is now Voxel Shop! We're upgrading many features of the site, and during this open beta you will experience occasional bugs. Learn more
Advanced Vanilla & MythicMobs bodyguards with tactical AI and smart targeting

🌟 Key Features
| Feature | Description |
| ⚔️ Loyal Companions | Turn any Vanilla mob or custom MythicMobs into personal bodyguards |
| 🧠 Tactical AI Logic | Advanced Guard Mode with automatic target resetting and MythicMobs protection to prevent AI hijacking |
| 🛡️ Smart Targeting | Advanced logic ensures puppets ignore friends and other puppets owned by the same player |
| 🎮 Remote Management | Manage your puppets via GUI within a configurable radius (up to 50 blocks by default) |
| 💾 Hybrid Storage | High-performance persistence using H2 (Zero-Config), MySQL, or YAML |
| 🚀 Performance Optimized | Asynchronous database operations and lightweight AI ticking for zero lag |
| 🔌 Developer API & PAPI | Full API for custom integrations and PlaceholderAPI support |
🎮 AI Modes
Your puppets can operate in multiple tactical modes:
| Mode | Description |
| 🔴 Guard | Follows the owner and attacks nearby threats automatically |
| 🟠 Sentinel | Stays in position but attacks enemies within range |
| 🟡 Patrol | Follows a custom waypoint route you define |
| ⚪ Idle | Stops and holds current position |
| 🟣 Hold Position | Stays at a fixed location, attacks threats, and returns after combat |
| 🟢 Harvest | (Experimental) Breaks a specific block type |

🖥️ GUI System
The plugin features fully customizable GUIs for easy management.



🛠️ Commands
| Command | Description |
| /mp spawn | Spawn a vanilla mob as your puppet |
| /mp spawn-mm | Spawn a MythicMobs creature as your puppet |
| /mp list | Open the GUI to manage all your puppets |
| /mp spawnall | Spawn all saved puppets at your location |
| /mp despawnall | Despawn all active puppets (saves them) |
| /mp waypoint finish | Complete setting up patrol waypoints |
| /mp waypoint cancel | Cancel patrol waypoint mode |
| /mp friend add | Add a player to a puppet's friend list |
| /mp friend remove | Remove a player from a puppet's friend list |
| /mp addallfriend | Add a friend to ALL your puppets |
| /mp removefriendall | Remove a friend from ALL your puppets |
| /mp reload | Reload plugin configuration |
Aliases: /pawn, /puppet, /mobpuppets, /mobpuppet, /pedina
🔐 Permissions
| Permission | Description | Default |
| mobpuppets.use | Basic puppet usage and help command | true |
| mobpuppets.create | Create new puppets | op |
| mobpuppets.remove | Remove owned puppets | true |
| mobpuppets.manage | Open puppet management GUI | true |
| mobpuppets.list | View puppet list GUI | true |
| mobpuppets.friend.add | Add friends to puppets | true |
| mobpuppets.friend.addall | Mass friend updates across all puppets | op |
| mobpuppets.spawnall | Spawn all saved puppets at once | true |
| mobpuppets.reload | Reload plugin configuration | op |
| mobpuppets.admin | Full administrative access | op |
📋 Configuration
config.yml
# ===== STORAGE CONFIGURATION =====
storage:
# Storage type: h2 (default), yaml, mysql
type: h2
# MySQL settings (only if type: mysql)
mysql:
host: "localhost"
port: 3306
database: "minecraft"
username: "root"
password: ""
pool-size: 10
# ===== GENERAL SETTINGS =====
settings:
# Maximum puppets per player
max-puppets: 5
# ===== GUARD MODE AI SETTINGS =====
guard:
# Ticks before force-clearing stuck target (20 ticks = 1 second)
target_reset_timeout_ticks: 40
# Ticks before starting follow after combat ends
follow_reactivation_delay: 5
# Re-validate goals after entity load to prevent MythicMobs hijacking
mythicmobs_protection: true
# ===== MANAGEMENT SETTINGS =====
management:
# Maximum distance for remote puppet control via GUI
remote_radius: 50
🔌 Developer API
Getting the API Instance
MobPuppetsAPI api = MobPuppetsAPI.getInstance();
Available Methods
| Method | Description |
| isPuppet(Entity entity) | Check if an entity is a puppet |
| getPuppetOwner(Entity entity) | Get the owner's UUID of a puppet |
| getPlayerPuppets(Player player) | Get all active puppets owned by a player |
| areAllies(Entity e1, Entity e2) | Check if two entities are allies |
Maven Dependency
it.nuovaaurorastudio
MobPuppets
1.0.0
provided