ModelEngineNPC | Models and Animate NPC v1.3.2

Customizable Interactions, Models & Animations NPC Plugin for ModelEngine 4 with GUI Editor.
Fixed
  • CRITICAL — NullPointerException on Interaction: Fixed a crash when players interacted with NORMAL-type NPCs caused by a null model ID being passed into the placeholder selector. Null values are now safely redirected to "none".
  • Component String Leak in Placeholder: Fixed {player_display} displaying raw component output (TextComponentImpl{...}) on Paper 1.20+. Now correctly serialized to plain text.
  • Async Location Safety: Added null-checks for {npc_x}, {npc_y}, and {npc_z} placeholders to prevent interaction loop breaks when world or location data is temporarily unloaded between ticks.
Fixed
  • CRITICAL — Normal NPC Persistence: NPC data of type NORMAL was being silently wiped on every server restart or plugin reload.
  • CRITICAL — Mass Disconnect on NPC Spawn: Corrected an invalid entity metadata index that caused an IllegalStateException, disconnecting all online players when an NPC was spawned.
  • CRITICAL — NPC Skin Not Appearing: All NPC skins were rendering as default Steve. Fixed by properly delaying PlayerInfoRemove to allow skin textures to load on the client side.
  • Interaction De-duplication: Interaction messages were triggering multiple times per click on Normal NPCs.
  • Profile Name Sanitation: Added validation on NPC profile names to prevent native protocol failures.
  • Vanilla Nametag Visibility: Default Minecraft nametags on NPCs are now properly hidden, ensuring full compatibility with FancyHolograms.

Improved
  • Mineskin API Retry Logic: Added retry-with-backoff support when Mineskin returns a timeout, with up to 3 automatic retries.
  • HTTP Request Timeout: Async threads no longer hang indefinitely when Mineskin or Mojang API is unresponsive.
Added
  • Native Packet NPC System: Completely replaced the third-party FancyNpcs dependency with a robust, native NPC rendering system using PacketEvents. The plugin now directly handles all aspects of normal (player-shaped) NPCs at the protocol level.
  • Packet-Based Interactions: Added NativeNPCInteractionListener which securely intercepts LEFT and RIGHT click packets locally without relying on Bukkit's Entity API, enabling instant interactive responses.
  • Per-Player Look Tracking: The LookCloseTask now natively sends WrapperPlayServerEntityHeadLook and WrapperPlayServerEntityRotation packets dynamically to nearby players for Normal NPCs, delivering smooth and efficient head tracking.
  • Background Player Tracking: Integrated NPCTrackerTask which loops asynchronously to actively track player distances up to 48 blocks and intelligently sends spawn/despawn entity packets to maintain network efficiency.

Changed
  • Removed FancyNpcs Dependency: Completely stripped FancyNpcs code and legacy requirements from the pom.xml, significantly making the plugin more reliable, isolated, and lightweight.
  • Advanced NPCManager and NPCSpawner integrations to properly utilize our new custom packet processing logic.
Added
  • NPC Display Name Toggle (/menpc name <id> <true|false>): Control the visibility of the primary display name (hologram) for normal-type NPCs. Default is false (hidden) to prevent conflict with custom FancyHolograms displays.

Changed
  • FancyNpcsIntegration now dynamically injects <empty> as the display name if the NPC is configured to hide its name natively.

Added​

  • NPC Cloning (/menpc copy <source> <new-id>): Full deep-copy of any NPC including model, skin, animations, interactions, and hologram settings. Clone spawns at the player's current location.
  • Universal LookClose System: Complete rewrite of LookCloseTask to support both MODEL_ENGINE and NORMAL NPC types. No longer dependent on FancyNpcs for look-at-player behavior on normal NPCs.
  • NPC Type Conversion(/menpc setnpctype <id> <type>): Convert existing NPCs between model and normal types at runtime. Handles full despawn → type transition → respawn cycle automatically.
    • model → normal: NPC becomes a player entity (Steve default). Skin can be set separately via /menpc setskin.
    • normal → model: Requires a valid modelId parameter. Animation config is auto-applied.
  • Set Skin Command (/menpc setskin <id> <player-name|url>): Dedicated command to set or change the skin of a normal-type NPC at any time.
  • Mojang API Skin Support: Normal NPCs can now use a Minecraft player name (e.g., Notch) as the skin source. Skins are fetched from Mojang's session server (~100ms, no strict rate limits). Works in both /menpc create and /menpc setskin.
  • Smart Skin Detection: SkinManager auto-detects input type — URLs (starting with http:// or https://) route to Mineskin API; everything else routes to Mojang API.

Changed​

  • Async Skin Fetching: Replaced synchronous FancyNpcs skin fetch with async-first approach. NPCs now spawn instantly and skin loads in the background via SkinManager. Eliminates SocketTimeoutException from Mineskin API timeouts.
  • Texture Caching: Skin textures (value + signature) are cached after first fetch. Subsequent spawns (reload, restart) apply skins instantly with zero network calls.
  • FancyNpcs Integration (v2.9.x): Updated SkinData construction to use SkinData.SkinVariant.AUTO instead of CLASSIC — fixes compatibility with FancyNpcs 2.9.x API.
  • LookClose Decoupling: LookCloseTask now manages turnToPlayer state on FancyNpc instances at runtime instead of setting it once at spawn. This is a step toward fully removing the FancyNpcs dependency.

Fixed​

  • SocketTimeoutException on NPC Creation: Skin fetching no longer blocks the spawn process. FancyNpcs' synchronous setSkin(url) was replaced with our own async skin pipeline.
  • No enum constant SkinData.SkinVariant.CLASSIC: Fixed SkinVariant enum resolution for FancyNpcs 2.9.x. Now uses AUTO which is guaranteed to exist.
  • LookClose Not Working for Normal NPCs: The lookclose command now correctly syncs the look-at-player state to live FancyNpc instances, not just at spawn time.

Added​

  • Normal NPC Support (NPCType.NORMAL): Create standard Minecraft player NPCs alongside ModelEngine entities.
  • FancyNpcs Integration: Integration with FancyNpcs API (v2.9.x) for rendering normal-type NPCs.
  • Mineskin API Support: SkinManager fetches and processes skin URLs asynchronously through the Mineskin API.
  • Dynamic Commands: The /menpc create command now accepts a type parameter (normal or model) with context-aware tab completion.
  • Context-Aware GUI: NPCEditorGUI dynamically switches between model ID and skin URL editing based on NPC type.

Changed​

  • Refactored NPCManager to route spawning behaviors to the appropriate spawner layer (NPCSpawner for model, FancyNpcsIntegration for normal).
  • Normal NPCs safely bypass ModelEngine-specific checks to prevent console exceptions.

Added:​

  • Public Developer API (ModelEngineNPCAPI): Full programmatic access to create, remove, and manage NPCs.
  • Maven Repository: Plugin artifacts hosted on repo.minekarta.com for dependency management.
  • YAML persistence architecture (YamlNPCRepository).
  • Interactive clicking system with configurable interaction commands.
  • Hologram settings and formatting integration via FancyHolograms API.
Changelog:
- Fix NPC removal issue
Buy a license now
$9.99
EULA
Standard EULA
Use on any projects you own with attribution
Support
Standard
Includes:
Download the resource
Access new updates
Support from the creator
Support duration
Lifetime
Share and earn
Refer this resource and earn a 10% commission.
1,810 Views
11 Purchases
12 Downloads
Feb 13, 2026 Published
Apr 21, 2026 Updated
Not yet rated
2 MB File size
Open source
  1. No
DRM-free
  1. Yes
Unobfuscated
  1. Yes
Type
  1. Mobs
  1. Decoration
  1. Fun
Game mode
  1. Survival
  1. Towny
  1. Hub & lobby
Supported software
  1. Paper
  1. Purpur
Supported versions
  1. 1.21.11
  1. 1.21.8
  1. 1.21.5
  1. 1.21.4
  1. 1.21.2
  1. 1.21
Supported languages
  1. English
Creator
Recommended for you
Exact 1:1 Realm-Based Land Claiming Plugin like Originrealms with Advanced GUI menu
5.00 star(s) 1 ratings
1 purchase
#1 BuiltByBit Plugin ~ Protects your server from crash packet exploits ~ Folia Support
5.00 star(s) 141 ratings
4,208 purchases
Create items, blocks, mobs, emojis, and more with automatic resourcepack generation!
5.00 star(s) 54 ratings
3,172 purchases
Protect your server from crash/dupe/packet exploits with the ultimate security fix plugin.
5.00 star(s) 44 ratings
3,097 purchases
High Performance | Customizable | Cross-Version | GeyserMC | Folia Support
4.50 star(s) 71 ratings
2,813 purchases
Share and earn
Refer this resource and earn a 10% commission.
1,810 Views
11 Purchases
12 Downloads
Feb 13, 2026 Published
Apr 21, 2026 Updated
Not yet rated
2 MB File size
Open source
  1. No
DRM-free
  1. Yes
Unobfuscated
  1. Yes
Type
  1. Mobs
  1. Decoration
  1. Fun
Game mode
  1. Survival
  1. Towny
  1. Hub & lobby
Supported software
  1. Paper
  1. Purpur
Supported versions
  1. 1.21.11
  1. 1.21.8
  1. 1.21.5
  1. 1.21.4
  1. 1.21.2
  1. 1.21
Supported languages
  1. English
Creator
Recommended for you
Exact 1:1 Realm-Based Land Claiming Plugin like Originrealms with Advanced GUI menu
5.00 star(s) 1 ratings
1 purchase
#1 BuiltByBit Plugin ~ Protects your server from crash packet exploits ~ Folia Support
5.00 star(s) 141 ratings
4,208 purchases
Create items, blocks, mobs, emojis, and more with automatic resourcepack generation!
5.00 star(s) 54 ratings
3,172 purchases
Protect your server from crash/dupe/packet exploits with the ultimate security fix plugin.
5.00 star(s) 44 ratings
3,097 purchases
High Performance | Customizable | Cross-Version | GeyserMC | Folia Support
4.50 star(s) 71 ratings
2,813 purchases
Top