This change log includes the summarized changes. For the full changelog, please go to the GitHub History instead.
Note: Please always back up your world / NPCs before updating to a new version! Check the upgrade guide for more information.
Notes: This update includes better security checks and permissions for multiplayer environments. It allows to execute server commands which can be potentially dangerous if used with malicious intent.
The update splits the model root data and logic from the rest of the model part data and logic, which mean it may reset the root rotation and scaling of existing NPCs to the default values.
DEFAULT vanilla pose.isTargetedPlayer check, wrong
UUID in leave-handler, missing player-targeted refresh on join/leave, and retry for offline
targets.ConfigurationMenuHandler for the default pose screen.CustomPosition, CustomRotation, CustomScale, ModelPose,
ModelAnimationBehavior and ModelAnimationData.NPCDataIsolationTestHelper and game tests for Fabric and Forge.saveNPC calls on entity join by checking existing registry entry first.despawn and spawn commands to remove and re-spawn NPCs by UUID with configurable
removal reasons.ModelPoseAPI and EasyNPCEntityHandler public API classes for controlling NPC poses and
managing NPCs programmatically from external mods.MoveToPositionGoal to move an NPC to a position before executing a callback action.EasyNPCLookControl and EasyNPCBodyRotationControl to respect locked root rotation.Flee Objective configuration tab with objectives for fleeing creepers,
monsters, mobs, players, villagers and the sun.FOLLOW_ITEM objective to the follow objectives tab to make NPCs follow item entities
by resource location (e.g. minecraft:apple).LookAtEntityByUUIDGoal and enabled the look-at-entity-by-UUID and look-at-owner
objectives in the look objectives screen.persistent flag to SynchedDataIndex so that transient indices (e.g. crossbow charge,
model animation) no longer trigger dirty-save marking.customParticlesEnabled flag to SlimeBase for API consumers.SoundType.PET and mapped CAT_PURR to the cat NPC for tamed ambient sound variety.SafeMerchantData with notifyTrade to avoid crashes.OriginalModelConfig.withVariantTexture() option to allow using variant textures with the
original model.allowBypassInvulnerability config option to allow/deny bypassing
invulnerability for NPCs.defineId called for: warning messages during NPC loading.Spawnblade for the detailed
investigation and fix suggestion.@score(...) NPC macro to display scoreboard values in the dialog.skin field.texture field.This is a major release. Please back up your worlds and NPC data before updating. This version contains many improvements, optimizations, and internal changes that are not fully compatible with earlier releases.
⚠️ Breaking changes
🧩 New modular structure
Easy NPC is now split into three separate mods:
🎯 Why this change?
This change log includes the summarized changes. For the full changelog, please go to the GitHub History instead.
Note: Please always back up your world / NPCs before updating to a new version! Check the upgrade guide for more information.
Notes: This update includes better security checks and permissions for multiplayer environments. It allows to execute server commands which can be potentially dangerous if used with malicious intent.
The update splits the model root data and logic from the rest of the model part data and logic, which mean it may reset the root rotation and scaling of existing NPCs to the default values.
DEFAULT vanilla pose.isTargetedPlayer check, wrong
UUID in leave-handler, missing player-targeted refresh on join/leave, and retry for offline
targets.ConfigurationMenuHandler for the default pose screen.CustomPosition, CustomRotation, CustomScale, ModelPose,
ModelAnimationBehavior and ModelAnimationData.NPCDataIsolationTestHelper and game tests for Fabric and Forge.saveNPC calls on entity join by checking existing registry entry first.despawn and spawn commands to remove and re-spawn NPCs by UUID with configurable
removal reasons.ModelPoseAPI and EasyNPCEntityHandler public API classes for controlling NPC poses and
managing NPCs programmatically from external mods.MoveToPositionGoal to move an NPC to a position before executing a callback action.EasyNPCLookControl and EasyNPCBodyRotationControl to respect locked root rotation.Flee Objective configuration tab with objectives for fleeing creepers,
monsters, mobs, players, villagers and the sun.FOLLOW_ITEM objective to the follow objectives tab to make NPCs follow item entities
by resource location (e.g. minecraft:apple).LookAtEntityByUUIDGoal and enabled the look-at-entity-by-UUID and look-at-owner
objectives in the look objectives screen.persistent flag to SynchedDataIndex so that transient indices (e.g. crossbow charge,
model animation) no longer trigger dirty-save marking.customParticlesEnabled flag to SlimeBase for API consumers.SoundType.PET and mapped CAT_PURR to the cat NPC for tamed ambient sound variety.SafeMerchantData with notifyTrade to avoid crashes.OriginalModelConfig.withVariantTexture() option to allow using variant textures with the
original model.allowBypassInvulnerability config option to allow/deny bypassing
invulnerability for NPCs.defineId called for: warning messages during NPC loading.Spawnblade for the detailed
investigation and fix suggestion.@score(...) NPC macro to display scoreboard values in the dialog.skin field.texture field.This is a major release. Please back up your worlds and NPC data before updating. This version contains many improvements, optimizations, and internal changes that are not fully compatible with earlier releases.
⚠️ Breaking changes
🧩 New modular structure
Easy NPC is now split into three separate mods:
🎯 Why this change?
This change log includes the summarized changes. For the full changelog, please go to the GitHub History instead.
Note: Please always back up your world / NPCs before updating to a new version! Check the upgrade guide for more information.
Notes: This update includes better security checks and permissions for multiplayer environments. It allows to execute server commands which can be potentially dangerous if used with malicious intent.
The update splits the model root data and logic from the rest of the model part data and logic, which mean it may reset the root rotation and scaling of existing NPCs to the default values.
DEFAULT vanilla pose.isTargetedPlayer check, wrong
UUID in leave-handler, missing player-targeted refresh on join/leave, and retry for offline
targets.ConfigurationMenuHandler for the default pose screen.CustomPosition, CustomRotation, CustomScale, ModelPose,
ModelAnimationBehavior and ModelAnimationData.NPCDataIsolationTestHelper and game tests for Fabric and Forge.saveNPC calls on entity join by checking existing registry entry first.despawn and spawn commands to remove and re-spawn NPCs by UUID with configurable
removal reasons.ModelPoseAPI and EasyNPCEntityHandler public API classes for controlling NPC poses and
managing NPCs programmatically from external mods.MoveToPositionGoal to move an NPC to a position before executing a callback action.EasyNPCLookControl and EasyNPCBodyRotationControl to respect locked root rotation.Flee Objective configuration tab with objectives for fleeing creepers,
monsters, mobs, players, villagers and the sun.FOLLOW_ITEM objective to the follow objectives tab to make NPCs follow item entities
by resource location (e.g. minecraft:apple).LookAtEntityByUUIDGoal and enabled the look-at-entity-by-UUID and look-at-owner
objectives in the look objectives screen.persistent flag to SynchedDataIndex so that transient indices (e.g. crossbow charge,
model animation) no longer trigger dirty-save marking.customParticlesEnabled flag to SlimeBase for API consumers.SoundType.PET and mapped CAT_PURR to the cat NPC for tamed ambient sound variety.SafeMerchantData with notifyTrade to avoid crashes.OriginalModelConfig.withVariantTexture() option to allow using variant textures with the
original model.allowBypassInvulnerability config option to allow/deny bypassing
invulnerability for NPCs.defineId called for: warning messages during NPC loading.Spawnblade for the detailed
investigation and fix suggestion.@score(...) NPC macro to display scoreboard values in the dialog.skin field.texture field.This is a major release. Please back up your worlds and NPC data before updating. This version contains many improvements, optimizations, and internal changes that are not fully compatible with earlier releases.
⚠️ Breaking changes
🧩 New modular structure
Easy NPC is now split into three separate mods:
🎯 Why this change?
This change log includes the summarized changes. For the full changelog, please go to the GitHub History instead.
Note: Please always back up your world / NPCs before updating to a new version! Check the upgrade guide for more information.
Notes: This update includes better security checks and permissions for multiplayer environments. It allows to execute server commands which can be potentially dangerous if used with malicious intent.
The update splits the model root data and logic from the rest of the model part data and logic, which mean it may reset the root rotation and scaling of existing NPCs to the default values.
DEFAULT vanilla pose.isTargetedPlayer check, wrong
UUID in leave-handler, missing player-targeted refresh on join/leave, and retry for offline
targets.ConfigurationMenuHandler for the default pose screen.CustomPosition, CustomRotation, CustomScale, ModelPose,
ModelAnimationBehavior and ModelAnimationData.NPCDataIsolationTestHelper and game tests for Fabric and Forge.saveNPC calls on entity join by checking existing registry entry first.despawn and spawn commands to remove and re-spawn NPCs by UUID with configurable
removal reasons.ModelPoseAPI and EasyNPCEntityHandler public API classes for controlling NPC poses and
managing NPCs programmatically from external mods.MoveToPositionGoal to move an NPC to a position before executing a callback action.EasyNPCLookControl and EasyNPCBodyRotationControl to respect locked root rotation.Flee Objective configuration tab with objectives for fleeing creepers,
monsters, mobs, players, villagers and the sun.FOLLOW_ITEM objective to the follow objectives tab to make NPCs follow item entities
by resource location (e.g. minecraft:apple).LookAtEntityByUUIDGoal and enabled the look-at-entity-by-UUID and look-at-owner
objectives in the look objectives screen.persistent flag to SynchedDataIndex so that transient indices (e.g. crossbow charge,
model animation) no longer trigger dirty-save marking.customParticlesEnabled flag to SlimeBase for API consumers.SoundType.PET and mapped CAT_PURR to the cat NPC for tamed ambient sound variety.SafeMerchantData with notifyTrade to avoid crashes.OriginalModelConfig.withVariantTexture() option to allow using variant textures with the
original model.allowBypassInvulnerability config option to allow/deny bypassing
invulnerability for NPCs.defineId called for: warning messages during NPC loading.Spawnblade for the detailed
investigation and fix suggestion.@score(...) NPC macro to display scoreboard values in the dialog.skin field.texture field.This is a major release. Please back up your worlds and NPC data before updating. This version contains many improvements, optimizations, and internal changes that are not fully compatible with earlier releases.
⚠️ Breaking changes
🧩 New modular structure
Easy NPC is now split into three separate mods:
🎯 Why this change?
This change log includes the summarized changes. For the full changelog, please go to the GitHub History instead.
Note: Please always back up your world / NPCs before updating to a new version! Check the upgrade guide for more information.
Notes: This update includes better security checks and permissions for multiplayer environments. It allows to execute server commands which can be potentially dangerous if used with malicious intent.
The update splits the model root data and logic from the rest of the model part data and logic, which mean it may reset the root rotation and scaling of existing NPCs to the default values.
DEFAULT vanilla pose.isTargetedPlayer check, wrong
UUID in leave-handler, missing player-targeted refresh on join/leave, and retry for offline
targets.ConfigurationMenuHandler for the default pose screen.CustomPosition, CustomRotation, CustomScale, ModelPose,
ModelAnimationBehavior and ModelAnimationData.NPCDataIsolationTestHelper and game tests for Fabric and Forge.saveNPC calls on entity join by checking existing registry entry first.despawn and spawn commands to remove and re-spawn NPCs by UUID with configurable
removal reasons.ModelPoseAPI and EasyNPCEntityHandler public API classes for controlling NPC poses and
managing NPCs programmatically from external mods.MoveToPositionGoal to move an NPC to a position before executing a callback action.EasyNPCLookControl and EasyNPCBodyRotationControl to respect locked root rotation.Flee Objective configuration tab with objectives for fleeing creepers,
monsters, mobs, players, villagers and the sun.FOLLOW_ITEM objective to the follow objectives tab to make NPCs follow item entities
by resource location (e.g. minecraft:apple).LookAtEntityByUUIDGoal and enabled the look-at-entity-by-UUID and look-at-owner
objectives in the look objectives screen.persistent flag to SynchedDataIndex so that transient indices (e.g. crossbow charge,
model animation) no longer trigger dirty-save marking.customParticlesEnabled flag to SlimeBase for API consumers.SoundType.PET and mapped CAT_PURR to the cat NPC for tamed ambient sound variety.SafeMerchantData with notifyTrade to avoid crashes.OriginalModelConfig.withVariantTexture() option to allow using variant textures with the
original model.allowBypassInvulnerability config option to allow/deny bypassing
invulnerability for NPCs.defineId called for: warning messages during NPC loading.Spawnblade for the detailed
investigation and fix suggestion.@score(...) NPC macro to display scoreboard values in the dialog.skin field.texture field.This is a major release. Please back up your worlds and NPC data before updating. This version contains many improvements, optimizations, and internal changes that are not fully compatible with earlier releases.
⚠️ Breaking changes
🧩 New modular structure
Easy NPC is now split into three separate mods:
🎯 Why this change?

Create easily NPCs with dialogs for your world or for your mods.