Easy Model EntitiesСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачать
ВЕРСИИ (211)
release
Easy Model Entities 2.6.0
2.6.016 окт. 2026 г.72Minecraft: 1.20.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.6.0
- Fixed flying aquatic models, like a ray gliding above the water, flopping as if stranded on land.
- Added `animation get` to show the animation set on an entity or block entity.
- Added `behavior get` to show whether a host entity is frozen.
- Added `profile get` to show the profile of an entity or block entity.
- Added `profile set block` to switch the profile of a placed block entity.
- Added `shoulder offset` to move a single entity on the shoulder, on top of the profile offset.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
- Removed the unsupported NeoForge loader declaration from the Forge release metadata.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.6.0
2.6.016 окт. 2026 г.160Minecraft: 1.20.1forge
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.6.0
- Fixed flying aquatic models, like a ray gliding above the water, flopping as if stranded on land.
- Added `animation get` to show the animation set on an entity or block entity.
- Added `behavior get` to show whether a host entity is frozen.
- Added `profile get` to show the profile of an entity or block entity.
- Added `profile set block` to switch the profile of a placed block entity.
- Added `shoulder offset` to move a single entity on the shoulder, on top of the profile offset.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
- Removed the unsupported NeoForge loader declaration from the Forge release metadata.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.6.0
2.6.016 окт. 2026 г.86Minecraft: 1.21.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.6.0
- Fixed NeoForge servers crashing when a player without the mod is near an animated model.
- Fixed flying aquatic models, like a ray gliding above the water, flopping as if stranded on land.
- Fixed NeoForge reporting the version as 0.0NONE, so other mods could not require a minimum.
- Added `animation get` to show the animation set on an entity or block entity.
- Added `behavior get` to show whether a host entity is frozen.
- Added `profile get` to show the profile of an entity or block entity.
- Added `profile set block` to switch the profile of a placed block entity.
- Added `shoulder offset` to move a single entity on the shoulder, on top of the profile offset.
- Updated the tested NeoForge version to 21.1.262, which fixes three network vulnerabilities.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Changed the minimum Forge version to 52.1.8; older Forge versions are rejected.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.6.0
2.6.016 окт. 2026 г.150Minecraft: 1.21.1neoforge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.6.0
- Fixed NeoForge servers crashing when a player without the mod is near an animated model.
- Fixed flying aquatic models, like a ray gliding above the water, flopping as if stranded on land.
- Fixed NeoForge reporting the version as 0.0NONE, so other mods could not require a minimum.
- Added `animation get` to show the animation set on an entity or block entity.
- Added `behavior get` to show whether a host entity is frozen.
- Added `profile get` to show the profile of an entity or block entity.
- Added `profile set block` to switch the profile of a placed block entity.
- Added `shoulder offset` to move a single entity on the shoulder, on top of the profile offset.
- Updated the tested NeoForge version to 21.1.262, which fixes three network vulnerabilities.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Changed the minimum Forge version to 52.1.8; older Forge versions are rejected.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.6.0
2.6.016 окт. 2026 г.41Minecraft: 1.21.1forge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.6.0
- Fixed NeoForge servers crashing when a player without the mod is near an animated model.
- Fixed flying aquatic models, like a ray gliding above the water, flopping as if stranded on land.
- Fixed NeoForge reporting the version as 0.0NONE, so other mods could not require a minimum.
- Added `animation get` to show the animation set on an entity or block entity.
- Added `behavior get` to show whether a host entity is frozen.
- Added `profile get` to show the profile of an entity or block entity.
- Added `profile set block` to switch the profile of a placed block entity.
- Added `shoulder offset` to move a single entity on the shoulder, on top of the profile offset.
- Updated the tested NeoForge version to 21.1.262, which fixes three network vulnerabilities.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Changed the minimum Forge version to 52.1.8; older Forge versions are rejected.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.6.0
2.6.016 окт. 2026 г.132Minecraft: 1.21.11fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.6.0
- Fixed NeoForge servers crashing when a player without the mod is near an animated model.
- Fixed NeoForge servers crashing when a player without the mod is near a shoulder model.
- Fixed flying aquatic models, like a ray gliding above the water, flopping as if stranded on land.
- Fixed NeoForge reporting the version as 0.0NONE, so other mods could not require a minimum.
- Added `animation get` to show the animation set on an entity or block entity.
- Added `behavior get` to show whether a host entity is frozen.
- Added `profile get` to show the profile of an entity or block entity.
- Added `profile set block` to switch the profile of a placed block entity.
- Added `shoulder offset` to move a single entity on the shoulder, on top of the profile offset.
- Updated the tested NeoForge version to 21.11.48, which fixes three network vulnerabilities.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.6.0
2.6.016 окт. 2026 г.27Minecraft: 1.21.11forge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.6.0
- Fixed NeoForge servers crashing when a player without the mod is near an animated model.
- Fixed NeoForge servers crashing when a player without the mod is near a shoulder model.
- Fixed flying aquatic models, like a ray gliding above the water, flopping as if stranded on land.
- Fixed NeoForge reporting the version as 0.0NONE, so other mods could not require a minimum.
- Added `animation get` to show the animation set on an entity or block entity.
- Added `behavior get` to show whether a host entity is frozen.
- Added `profile get` to show the profile of an entity or block entity.
- Added `profile set block` to switch the profile of a placed block entity.
- Added `shoulder offset` to move a single entity on the shoulder, on top of the profile offset.
- Updated the tested NeoForge version to 21.11.48, which fixes three network vulnerabilities.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.6.0
2.6.016 окт. 2026 г.23Minecraft: 1.21.11neoforge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.6.0
- Fixed NeoForge servers crashing when a player without the mod is near an animated model.
- Fixed NeoForge servers crashing when a player without the mod is near a shoulder model.
- Fixed flying aquatic models, like a ray gliding above the water, flopping as if stranded on land.
- Fixed NeoForge reporting the version as 0.0NONE, so other mods could not require a minimum.
- Added `animation get` to show the animation set on an entity or block entity.
- Added `behavior get` to show whether a host entity is frozen.
- Added `profile get` to show the profile of an entity or block entity.
- Added `profile set block` to switch the profile of a placed block entity.
- Added `shoulder offset` to move a single entity on the shoulder, on top of the profile offset.
- Updated the tested NeoForge version to 21.11.48, which fixes three network vulnerabilities.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.6.0
2.6.016 окт. 2026 г.156Minecraft: 26.3fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.3
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.6.0
- Fixed NeoForge servers crashing when a player without the mod is near an animated model.
- Fixed NeoForge servers crashing when a player without the mod is near a shoulder model.
- Fixed flying aquatic models, like a ray gliding above the water, flopping as if stranded on land.
- Fixed NeoForge reporting the version as 0.0NONE, so other mods could not require a minimum.
- Added `animation get` to show the animation set on an entity or block entity.
- Added `behavior get` to show whether a host entity is frozen.
- Added `profile get` to show the profile of an entity or block entity.
- Added `profile set block` to switch the profile of a placed block entity.
- Added `shoulder offset` to move a single entity on the shoulder, on top of the profile offset.
- Updated the tested NeoForge version to 26.3.0.83, which fixes three network vulnerabilities.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.3
release
Easy Model Entities 2.6.0
2.6.016 окт. 2026 г.39Minecraft: 26.3forge
Что нового
# Changelog for Easy Model Entities 26.3
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.6.0
- Fixed NeoForge servers crashing when a player without the mod is near an animated model.
- Fixed NeoForge servers crashing when a player without the mod is near a shoulder model.
- Fixed flying aquatic models, like a ray gliding above the water, flopping as if stranded on land.
- Fixed NeoForge reporting the version as 0.0NONE, so other mods could not require a minimum.
- Added `animation get` to show the animation set on an entity or block entity.
- Added `behavior get` to show whether a host entity is frozen.
- Added `profile get` to show the profile of an entity or block entity.
- Added `profile set block` to switch the profile of a placed block entity.
- Added `shoulder offset` to move a single entity on the shoulder, on top of the profile offset.
- Updated the tested NeoForge version to 26.3.0.83, which fixes three network vulnerabilities.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.3
release
Easy Model Entities 2.6.0
2.6.016 окт. 2026 г.35Minecraft: 26.3neoforge
Что нового
# Changelog for Easy Model Entities 26.3
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.6.0
- Fixed NeoForge servers crashing when a player without the mod is near an animated model.
- Fixed NeoForge servers crashing when a player without the mod is near a shoulder model.
- Fixed flying aquatic models, like a ray gliding above the water, flopping as if stranded on land.
- Fixed NeoForge reporting the version as 0.0NONE, so other mods could not require a minimum.
- Added `animation get` to show the animation set on an entity or block entity.
- Added `behavior get` to show whether a host entity is frozen.
- Added `profile get` to show the profile of an entity or block entity.
- Added `profile set block` to switch the profile of a placed block entity.
- Added `shoulder offset` to move a single entity on the shoulder, on top of the profile offset.
- Updated the tested NeoForge version to 26.3.0.83, which fixes three network vulnerabilities.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.3
release
Easy Model Entities 2.6.0
2.6.016 окт. 2026 г.88Minecraft: 26.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.6.0
- Fixed NeoForge servers crashing when a player without the mod is near an animated model.
- Fixed NeoForge servers crashing when a player without the mod is near a shoulder model.
- Fixed flying aquatic models, like a ray gliding above the water, flopping as if stranded on land.
- Fixed NeoForge reporting the version as 0.0NONE, so other mods could not require a minimum.
- Added `animation get` to show the animation set on an entity or block entity.
- Added `behavior get` to show whether a host entity is frozen.
- Added `profile get` to show the profile of an entity or block entity.
- Added `profile set block` to switch the profile of a placed block entity.
- Added `shoulder offset` to move a single entity on the shoulder, on top of the profile offset.
- Updated the tested NeoForge version to 26.2.0.93, which fixes three network vulnerabilities.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 2.6.0
2.6.016 окт. 2026 г.34Minecraft: 26.2forge
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.6.0
- Fixed NeoForge servers crashing when a player without the mod is near an animated model.
- Fixed NeoForge servers crashing when a player without the mod is near a shoulder model.
- Fixed flying aquatic models, like a ray gliding above the water, flopping as if stranded on land.
- Fixed NeoForge reporting the version as 0.0NONE, so other mods could not require a minimum.
- Added `animation get` to show the animation set on an entity or block entity.
- Added `behavior get` to show whether a host entity is frozen.
- Added `profile get` to show the profile of an entity or block entity.
- Added `profile set block` to switch the profile of a placed block entity.
- Added `shoulder offset` to move a single entity on the shoulder, on top of the profile offset.
- Updated the tested NeoForge version to 26.2.0.93, which fixes three network vulnerabilities.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 2.6.0
2.6.016 окт. 2026 г.41Minecraft: 26.2neoforge
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.6.0
- Fixed NeoForge servers crashing when a player without the mod is near an animated model.
- Fixed NeoForge servers crashing when a player without the mod is near a shoulder model.
- Fixed flying aquatic models, like a ray gliding above the water, flopping as if stranded on land.
- Fixed NeoForge reporting the version as 0.0NONE, so other mods could not require a minimum.
- Added `animation get` to show the animation set on an entity or block entity.
- Added `behavior get` to show whether a host entity is frozen.
- Added `profile get` to show the profile of an entity or block entity.
- Added `profile set block` to switch the profile of a placed block entity.
- Added `shoulder offset` to move a single entity on the shoulder, on top of the profile offset.
- Updated the tested NeoForge version to 26.2.0.93, which fixes three network vulnerabilities.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 2.6.0
2.6.016 окт. 2026 г.60Minecraft: 26.1.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.6.0
- Fixed NeoForge servers crashing when a player without the mod is near an animated model.
- Fixed NeoForge servers crashing when a player without the mod is near a shoulder model.
- Fixed flying aquatic models, like a ray gliding above the water, flopping as if stranded on land.
- Fixed NeoForge reporting the version as 0.0NONE, so other mods could not require a minimum.
- Added `animation get` to show the animation set on an entity or block entity.
- Added `behavior get` to show whether a host entity is frozen.
- Added `profile get` to show the profile of an entity or block entity.
- Added `profile set block` to switch the profile of a placed block entity.
- Added `shoulder offset` to move a single entity on the shoulder, on top of the profile offset.
- Updated the tested NeoForge version to 26.1.2.120, which fixes three network vulnerabilities.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 2.6.0
2.6.016 окт. 2026 г.50Minecraft: 26.1.2neoforge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.6.0
- Fixed NeoForge servers crashing when a player without the mod is near an animated model.
- Fixed NeoForge servers crashing when a player without the mod is near a shoulder model.
- Fixed flying aquatic models, like a ray gliding above the water, flopping as if stranded on land.
- Fixed NeoForge reporting the version as 0.0NONE, so other mods could not require a minimum.
- Added `animation get` to show the animation set on an entity or block entity.
- Added `behavior get` to show whether a host entity is frozen.
- Added `profile get` to show the profile of an entity or block entity.
- Added `profile set block` to switch the profile of a placed block entity.
- Added `shoulder offset` to move a single entity on the shoulder, on top of the profile offset.
- Updated the tested NeoForge version to 26.1.2.120, which fixes three network vulnerabilities.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 2.6.0
2.6.016 окт. 2026 г.44Minecraft: 26.1.2forge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.6.0
- Fixed NeoForge servers crashing when a player without the mod is near an animated model.
- Fixed NeoForge servers crashing when a player without the mod is near a shoulder model.
- Fixed flying aquatic models, like a ray gliding above the water, flopping as if stranded on land.
- Fixed NeoForge reporting the version as 0.0NONE, so other mods could not require a minimum.
- Added `animation get` to show the animation set on an entity or block entity.
- Added `behavior get` to show whether a host entity is frozen.
- Added `profile get` to show the profile of an entity or block entity.
- Added `profile set block` to switch the profile of a placed block entity.
- Added `shoulder offset` to move a single entity on the shoulder, on top of the profile offset.
- Updated the tested NeoForge version to 26.1.2.120, which fixes three network vulnerabilities.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 2.5.0
2.5.013 окт. 2026 г.24Minecraft: 26.3fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.3
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.3
release
Easy Model Entities 2.5.0
2.5.013 окт. 2026 г.14Minecraft: 26.3forge
Что нового
# Changelog for Easy Model Entities 26.3
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.3
release
Easy Model Entities 2.5.0
2.5.013 окт. 2026 г.16Minecraft: 26.3neoforge
Что нового
# Changelog for Easy Model Entities 26.3
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.3
release
Easy Model Entities 2.5.0
2.5.013 окт. 2026 г.16Minecraft: 26.2neoforge
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 2.5.0
2.5.013 окт. 2026 г.24Minecraft: 26.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 2.5.0
2.5.013 окт. 2026 г.12Minecraft: 26.2forge
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 2.5.0
2.5.012 окт. 2026 г.12Minecraft: 26.1.2neoforge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 2.5.0
2.5.012 окт. 2026 г.21Minecraft: 26.1.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 2.5.0
2.5.012 окт. 2026 г.10Minecraft: 26.1.2forge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 2.5.0
2.5.012 окт. 2026 г.27Minecraft: 1.21.11fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.5.0
2.5.012 окт. 2026 г.6Minecraft: 1.21.11neoforge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.5.0
2.5.012 окт. 2026 г.9Minecraft: 1.21.11forge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.5.0
2.5.012 окт. 2026 г.51Minecraft: 1.21.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Changed the minimum Forge version to 52.1.8; older Forge versions are rejected.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.5.0
2.5.012 окт. 2026 г.46Minecraft: 1.21.1neoforge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Changed the minimum Forge version to 52.1.8; older Forge versions are rejected.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.5.0
2.5.012 окт. 2026 г.15Minecraft: 1.21.1forge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Changed the minimum Forge version to 52.1.8; older Forge versions are rejected.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.5.0
2.5.012 окт. 2026 г.30Minecraft: 1.20.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
- Removed the unsupported NeoForge loader declaration from the Forge release metadata.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.5.0
2.5.012 окт. 2026 г.107Minecraft: 1.20.1forge
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.5.0
- Fixed models playing `fly` instead of `swim` while diving or surfacing.
- Fixed the game tests getting in the way of game tests from other mods.
- Fixed models without a `root` group sinking into the ground; `root` is now optional.
- Fixed `inflate`, `export: false`, inverted cubes and texture paths not matching Blockbench.
- Changed textures to come from the model; render profile `texture` and `textures` override them.
- Changed `swim`, `hurt`, `death` and `sit` clips to play automatically when they apply.
- Changed aquatic models without a `walk` clip to flop on land like fish.
- Changed `behavior set … auto` to keep static models without AI.
- Changed placed block entities to face the player; existing ones keep their direction.
- Added shoulder sitting like a parrot, with its own clip, render profile settings and API.
- Added server API calls for animations, textures, opacity, light level and freezing.
- Added an opt-in interface so commands and the API can control models of other mods.
- Added item sockets and client API calls to render items and find model part positions.
- Added playback speed, a `hold` play mode and weighted clip variants.
- Added double-sided textures, face UV rotation and a scarecrow block entity example.
- Improved warnings and errors for textures and duplicate group names.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
- Removed the unsupported NeoForge loader declaration from the Forge release metadata.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.4.0
2.4.026 сент. 2026 г.111Minecraft: 26.3fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.3
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.3
release
Easy Model Entities 2.4.0
2.4.026 сент. 2026 г.35Minecraft: 26.3neoforge
Что нового
# Changelog for Easy Model Entities 26.3
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.3
release
Easy Model Entities 2.4.0
2.4.026 сент. 2026 г.37Minecraft: 26.3forge
Что нового
# Changelog for Easy Model Entities 26.3
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.3
release
Easy Model Entities 2.4.0
2.4.019 сент. 2026 г.133Minecraft: 26.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 2.4.0
2.4.019 сент. 2026 г.35Minecraft: 26.2forge
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 2.4.0
2.4.019 сент. 2026 г.50Minecraft: 26.2neoforge
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 2.4.0
2.4.012 сент. 2026 г.55Minecraft: 26.1.2forge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 2.4.0
2.4.012 сент. 2026 г.84Minecraft: 26.1.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 2.4.0
2.4.012 сент. 2026 г.55Minecraft: 26.1.2neoforge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 2.4.0
2.4.010 сент. 2026 г.38Minecraft: 1.21.11forge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.4.0
2.4.010 сент. 2026 г.167Minecraft: 1.21.11fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.4.0
2.4.010 сент. 2026 г.33Minecraft: 1.21.11neoforge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.4.0
2.4.010 сент. 2026 г.251Minecraft: 1.21.1neoforge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.4.0
2.4.010 сент. 2026 г.34Minecraft: 1.21.1forge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.4.0
2.4.010 сент. 2026 г.123Minecraft: 1.21.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.4.0
2.4.07 сент. 2026 г.470Minecraft: 1.20.1forge
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
- Removed the unsupported NeoForge loader declaration from the Forge release metadata.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.4.0
2.4.07 сент. 2026 г.95Minecraft: 1.20.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.4.0
- Fixed `body_type: static` and `animation.mode: none` ignoring an explicitly played or set clip.
- Added `animation play <target> sequence "<clips>"` to chain up to 16 clips in one run.
- Added `playAnimationSequence` to the client and server API, sending a whole chain as one request.
- Added `emissive` as texture blend, so a slot renders fullbright and keeps its transparency.
Emissive slots are never backface culled.
- Added hand item rendering to the render options, off unless a mod opts in.
- Added `left_item`, `right_item`, `left_hand` and `right_hand` as recognized model part names.
- Added an automatic item anchor fallback to the arm, head or body when a model has no hand bone.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
- Removed the unsupported NeoForge loader declaration from the Forge release metadata.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.3.0
2.3.023 авг. 2026 г.174Minecraft: 26.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 2.3.0
2.3.023 авг. 2026 г.32Minecraft: 26.2neoforge
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 2.3.0
2.3.023 авг. 2026 г.46Minecraft: 26.2forge
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 2.3.0
2.3.022 авг. 2026 г.21Minecraft: 26.1.2forge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 2.3.0
2.3.022 авг. 2026 г.43Minecraft: 26.1.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 2.3.0
2.3.022 авг. 2026 г.31Minecraft: 26.1.2neoforge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 2.3.0
2.3.022 авг. 2026 г.29Minecraft: 1.21.11neoforge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.3.0
2.3.022 авг. 2026 г.93Minecraft: 1.21.11fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.3.0
2.3.022 авг. 2026 г.29Minecraft: 1.21.11forge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.3.0
2.3.022 авг. 2026 г.110Minecraft: 1.21.1neoforge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.3.0
2.3.022 авг. 2026 г.30Minecraft: 1.21.1forge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.3.0
2.3.022 авг. 2026 г.55Minecraft: 1.21.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.3.0
2.3.021 авг. 2026 г.138Minecraft: 1.20.1forge
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
- Removed the unsupported NeoForge loader declaration from the Forge release metadata.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.3.0
2.3.021 авг. 2026 г.59Minecraft: 1.20.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.3.0
- Changed models rendered by another mod to show the hurt and death overlay, which they never did.
- Changed `texture query` to `texture get`, matching vanilla commands; the old name no longer works.
- Changed the chat feedback of `behavior set` and `texture get` to match the other commands.
- Added a server API call to read the texture override of an entity or block entity.
- Added `display opacity set`, `clear` and `get` to fade a model out at runtime.
- Added `display light set`, `clear` and `get` to give a model its own minimum block light.
- Added opacity and light level as saved, synchronized state, so both survive a reload and relog.
- Added `rendering.opacity` to the render profile as the default a model starts with.
- Added opacity, light level and overlay to the render options and to the server API.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
- Removed the unsupported NeoForge loader declaration from the Forge release metadata.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.2.0
2.2.019 авг. 2026 г.45Minecraft: 26.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 2.2.0
2.2.019 авг. 2026 г.30Minecraft: 26.2neoforge
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 2.2.0
2.2.019 авг. 2026 г.20Minecraft: 26.2forge
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 2.2.0
2.2.019 авг. 2026 г.25Minecraft: 26.1.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 2.2.0
2.2.019 авг. 2026 г.20Minecraft: 26.1.2forge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 2.2.0
2.2.019 авг. 2026 г.26Minecraft: 26.1.2neoforge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 2.2.0
2.2.018 авг. 2026 г.10Minecraft: 1.21.11forge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.2.0
2.2.018 авг. 2026 г.24Minecraft: 1.21.11neoforge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.2.0
2.2.018 авг. 2026 г.19Minecraft: 1.21.11fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.2.0
2.2.018 авг. 2026 г.40Minecraft: 1.21.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.2.0
2.2.018 авг. 2026 г.37Minecraft: 1.21.1neoforge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.2.0
2.2.018 авг. 2026 г.15Minecraft: 1.21.1forge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.2.0
2.2.018 авг. 2026 г.29Minecraft: 1.20.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
- Removed the unsupported NeoForge loader declaration from the Forge release metadata.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.2.0
2.2.018 авг. 2026 г.51Minecraft: 1.20.1forge
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.2.0
- Fixed Forge entity data serializers using load-order-dependent IDs when other mods register their
own serializers.
- Fixed hurt, flash, and shader overlays being dropped by entity, block entity, and item renderers.
- Fixed offset or rotated models being culled with incorrect visibility bounds.
- Fixed touching faces disappearing from models whose textures can contain transparent pixels.
- Improved compatibility with EntityCulling for entities and block entities using extended model
bounds.
- Removed the unsupported NeoForge loader declaration from the Forge release metadata.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.1.0
2.1.015 авг. 2026 г.47Minecraft: 26.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 2.1.0
2.1.015 авг. 2026 г.44Minecraft: 26.2forge
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 2.1.0
2.1.015 авг. 2026 г.32Minecraft: 26.2neoforge
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 2.1.0
2.1.014 авг. 2026 г.29Minecraft: 26.1.2forge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 2.1.0
2.1.014 авг. 2026 г.22Minecraft: 26.1.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 2.1.0
2.1.014 авг. 2026 г.16Minecraft: 26.1.2neoforge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 2.1.0
2.1.014 авг. 2026 г.36Minecraft: 1.21.11forge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.1.0
2.1.014 авг. 2026 г.45Minecraft: 1.21.11fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.1.0
2.1.014 авг. 2026 г.24Minecraft: 1.21.11neoforge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.1.0
2.1.014 авг. 2026 г.25Minecraft: 1.21.1neoforge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.1.0
2.1.014 авг. 2026 г.29Minecraft: 1.21.1forge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.1.0
2.1.014 авг. 2026 г.30Minecraft: 1.21.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.1.0
2.1.014 авг. 2026 г.34Minecraft: 1.20.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.1.0
2.1.014 авг. 2026 г.58Minecraft: 1.20.1forge, neoforge
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.1.0
- Fixed a model whose only clips are numbered variants, such as `idle_2` and `idle_3`, silently
falling back to the procedural animation.
- Changed the clip limit of a model from 16 to 64, with a warning above 32.
- Changed numbered clips to rotate by default; `animation.variant_mode: none` keeps one clip.
- Changed a numbered variant such as `walk_2` to count as a standard clip, not a custom one.
- Added `texture set`, `clear` and `query` to swap the texture of a single model slot at runtime.
- Added the texture override as saved, synchronized state, so it survives a reload and relog.
- Added a texture option to the render options, so a mod can swap a slot without a command.
- Added `texture blend … translucent` so a half-transparent texture is no longer drawn opaque.
- Added client API calls to list the texture slots of a model and the textures next to a slot.
- Added random clip variants: clips named `idle`, `idle_2`, `idle_3` form one group and EME picks a
different one each cycle, controlled by `animation.variant_mode` in the render profile.
- Added `animation play … random "<clips>"` to pick one clip of a list on the server, so every
player sees the same animation.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.0.1
2.0.17 авг. 2026 г.62Minecraft: 26.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 2.0.1
2.0.17 авг. 2026 г.26Minecraft: 26.2forge
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 2.0.1
2.0.17 авг. 2026 г.32Minecraft: 26.2neoforge
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 2.0.1
2.0.16 авг. 2026 г.32Minecraft: 26.1.2neoforge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 2.0.1
2.0.16 авг. 2026 г.28Minecraft: 26.1.2forge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 2.0.1
2.0.16 авг. 2026 г.102Minecraft: 26.1.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 2.0.1
2.0.16 авг. 2026 г.23Minecraft: 1.21.11forge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.0.1
2.0.16 авг. 2026 г.62Minecraft: 1.21.11fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.0.1
2.0.16 авг. 2026 г.18Minecraft: 1.21.11neoforge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.0.1
- Fixed block entities `animation play`, `stop`, and `restart` never reached the screen.
- Fixed the render options for scale and part animation being dropped by custom renderers.
- Added `extractRenderState` and `submit` to both render delegates, so other mods can show manual
animations again.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.0.0
2.0.05 авг. 2026 г.9Minecraft: 1.21.11forge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.0.0
2.0.05 авг. 2026 г.20Minecraft: 1.21.11fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.0.0
2.0.05 авг. 2026 г.16Minecraft: 1.21.11neoforge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.0.0
2.0.05 авг. 2026 г.76Minecraft: 1.21.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.0.0
2.0.05 авг. 2026 г.60Minecraft: 1.21.1neoforge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.0.0
2.0.05 авг. 2026 г.20Minecraft: 1.21.1forge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.0.0
2.0.04 авг. 2026 г.76Minecraft: 1.20.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 2.0.0
2.0.04 авг. 2026 г.59Minecraft: 1.20.1forge, neoforge
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 2.0.0
- Fixed the command auto-completion never offering the UUID of the entity in the crosshair.
- Changed the command auto-completion to drop `@a`, `@p`, `@r` and player names, which can never
select a model entity.
- Changed every public signature to use stable API types and enums instead of internal classes.
- Changed the numeric animation states and named clips into the type-safe `EasyModelAnimation`.
- Changed the animation of an entity or block entity into saved, synchronized state, so it survives
a reload and reaches players who arrive later.
- Changed render and model values to reject invalid input before it reaches rendering.
- Changed an invalid transform to show a reloadable placeholder instead of dropping the model.
- Changed the minimum Forge, Fabric Loader, and Fabric API versions; older loaders are rejected.
- Changed animations to keep their own clock, so a finished animation no longer jumps back.
- Removed `set_animation`; use `animation set entity <targets> <state>`, which does the same and
also accepts named clips and `loop` or `once`.
- Added `behavior set` to freeze the movement of a host entity, so a `sit` or `death` animation no
longer plays while the entity walks away.
- Added named Blockbench clips and host hooks for custom animations without a fixed state.
- Added `sit` as a standard animation state and Blockbench clip for all body types.
- Added animation discovery and metadata to list the clips of a model with their length.
- Added playback modes, transitions, repeats, and duration limits for controlled animations.
- Added `animation set` to give a lasting animation, with `clip`, `loop`, or `once` deciding whether
it repeats.
- Added `animation play`, `stop`, and `restart` for one-off animations on everyone watching.
- Improved the migration from schema `0.1.0` to `0.2.0` to keep the existing render profile.
- Improved playback queues, missing-clip warnings, and loops to stay bounded in long sessions.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 1.7.0
1.7.01 авг. 2026 г.46Minecraft: 26.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 1.7.0
1.7.01 авг. 2026 г.24Minecraft: 26.2forge
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 1.7.0
1.7.01 авг. 2026 г.27Minecraft: 26.2neoforge
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 1.7.0
1.7.01 авг. 2026 г.18Minecraft: 26.1.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 1.7.0
1.7.01 авг. 2026 г.23Minecraft: 26.1.2forge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 1.7.0
1.7.01 авг. 2026 г.17Minecraft: 26.1.2neoforge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 1.7.0
1.7.01 авг. 2026 г.51Minecraft: 1.21.11forge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 1.7.0
1.7.01 авг. 2026 г.57Minecraft: 1.21.11fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 1.7.0
1.7.01 авг. 2026 г.19Minecraft: 1.21.11neoforge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 1.7.0
1.7.031 июл. 2026 г.59Minecraft: 1.21.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 1.7.0
1.7.031 июл. 2026 г.78Minecraft: 1.21.1neoforge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 1.7.0
1.7.031 июл. 2026 г.19Minecraft: 1.21.1forge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 1.7.0
1.7.031 июл. 2026 г.20Minecraft: 1.20.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 1.7.0
1.7.031 июл. 2026 г.44Minecraft: 1.20.1forge, neoforge
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes. For the full changelog, please go to
the [GitHub History][history] instead.
### 1.7.0
- Fixed the head of an entity never turning towards what it looks at.
- Fixed cubes outside of an outliner group being dropped without any message.
- Fixed profiles without an explicit `texture` staying inactive because of a wrong texture path.
- Fixed a single minor finding, such as an unknown behavior mode, deactivating a whole server
profile.
- Fixed repaired models being reported only once, because the log suppression survived a resource
reload.
- Fixed `modded_entity` models never deriving a texture path from the model file itself.
- Fixed the profiles of a single player world staying active after leaving it, which could break the
models on a server joined afterwards.
- Changed a model with a missing texture to render its own shape with a pink placeholder texture
instead of a pink box.
- Changed the creative tabs to hide render profiles from unexpected folders and models the server
does not know.
- Removed eight example entities that only mirrored another example with different presets or
numbers.
- Added a head look render option, so another mod can supply its own look direction.
- Added warnings for unknown fields, a missing `schema_version`, a one-sided `version` declaration
and cubes that are fully covered by other cubes.
- Added detailed log and `validate_profiles` output for every skipped or failed profile, including
the reason and the affected field.
- Added `scale`, a part pose listener and a forced animation state to the block entity render
options, so block entities support the same integration as entities.
- Improved error messages to name the underlying parser message and the affected texture file.
- Improved render performance by resolving bone names once while baking and by reusing the entity
render data per frame.
- Improved the render cache to drop only the least recently used entries instead of emptying itself
completely.
- Improved the profile and render profile parsers to share their field handling, so both report the
same problems in the same way.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and command
block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle, dawn
sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 1.7.0
1.7.021 июл. 2026 г.54Minecraft: 26.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.7.0
- Fixed profiles without an explicit `texture` falling back to a duplicated `entity/entity/` texture
path, which left the profile inactive and hid its spawn item from the creative tabs.
- Changed missing textures to be reported as an error instead of a warning by `validate_profiles`,
because a model without a texture cannot be rendered at all.
- Changed a version mismatch between data pack and resource pack to be reported as a warning
instead of an error, because the entity still renders with the fallback model.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 1.7.0
1.7.021 июл. 2026 г.23Minecraft: 26.2forge
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.7.0
- Fixed profiles without an explicit `texture` falling back to a duplicated `entity/entity/` texture
path, which left the profile inactive and hid its spawn item from the creative tabs.
- Changed missing textures to be reported as an error instead of a warning by `validate_profiles`,
because a model without a texture cannot be rendered at all.
- Changed a version mismatch between data pack and resource pack to be reported as a warning
instead of an error, because the entity still renders with the fallback model.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 1.7.0
1.7.021 июл. 2026 г.26Minecraft: 26.2neoforge
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.7.0
- Fixed profiles without an explicit `texture` falling back to a duplicated `entity/entity/` texture
path, which left the profile inactive and hid its spawn item from the creative tabs.
- Changed missing textures to be reported as an error instead of a warning by `validate_profiles`,
because a model without a texture cannot be rendered at all.
- Changed a version mismatch between data pack and resource pack to be reported as a warning
instead of an error, because the entity still renders with the fallback model.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
release
Easy Model Entities 1.7.0
1.7.021 июл. 2026 г.7Minecraft: 26.1.2forge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.7.0
- Fixed profiles without an explicit `texture` falling back to a duplicated `entity/entity/` texture
path, which left the profile inactive and hid its spawn item from the creative tabs.
- Changed missing textures to be reported as an error instead of a warning by `validate_profiles`,
because a model without a texture cannot be rendered at all.
- Changed a version mismatch between data pack and resource pack to be reported as a warning
instead of an error, because the entity still renders with the fallback model.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 1.7.0
1.7.021 июл. 2026 г.36Minecraft: 26.1.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.7.0
- Fixed profiles without an explicit `texture` falling back to a duplicated `entity/entity/` texture
path, which left the profile inactive and hid its spawn item from the creative tabs.
- Changed missing textures to be reported as an error instead of a warning by `validate_profiles`,
because a model without a texture cannot be rendered at all.
- Changed a version mismatch between data pack and resource pack to be reported as a warning
instead of an error, because the entity still renders with the fallback model.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 1.7.0
1.7.021 июл. 2026 г.13Minecraft: 26.1.2neoforge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.7.0
- Fixed profiles without an explicit `texture` falling back to a duplicated `entity/entity/` texture
path, which left the profile inactive and hid its spawn item from the creative tabs.
- Changed missing textures to be reported as an error instead of a warning by `validate_profiles`,
because a model without a texture cannot be rendered at all.
- Changed a version mismatch between data pack and resource pack to be reported as a warning
instead of an error, because the entity still renders with the fallback model.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
release
Easy Model Entities 1.7.0
1.7.021 июл. 2026 г.18Minecraft: 1.21.11forge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.7.0
- Fixed profiles without an explicit `texture` falling back to a duplicated `entity/entity/` texture
path, which left the profile inactive and hid its spawn item from the creative tabs.
- Changed missing textures to be reported as an error instead of a warning by `validate_profiles`,
because a model without a texture cannot be rendered at all.
- Changed a version mismatch between data pack and resource pack to be reported as a warning
instead of an error, because the entity still renders with the fallback model.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 1.7.0
1.7.021 июл. 2026 г.41Minecraft: 1.21.11fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.7.0
- Fixed profiles without an explicit `texture` falling back to a duplicated `entity/entity/` texture
path, which left the profile inactive and hid its spawn item from the creative tabs.
- Changed missing textures to be reported as an error instead of a warning by `validate_profiles`,
because a model without a texture cannot be rendered at all.
- Changed a version mismatch between data pack and resource pack to be reported as a warning
instead of an error, because the entity still renders with the fallback model.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 1.7.0
1.7.021 июл. 2026 г.23Minecraft: 1.21.11neoforge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.7.0
- Fixed profiles without an explicit `texture` falling back to a duplicated `entity/entity/` texture
path, which left the profile inactive and hid its spawn item from the creative tabs.
- Changed missing textures to be reported as an error instead of a warning by `validate_profiles`,
because a model without a texture cannot be rendered at all.
- Changed a version mismatch between data pack and resource pack to be reported as a warning
instead of an error, because the entity still renders with the fallback model.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 1.7.0
1.7.021 июл. 2026 г.22Minecraft: 1.21.1neoforge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.7.0
- Fixed profiles without an explicit `texture` falling back to a duplicated `entity/entity/` texture
path, which left the profile inactive and hid its spawn item from the creative tabs.
- Changed missing textures to be reported as an error instead of a warning by `validate_profiles`,
because a model without a texture cannot be rendered at all.
- Changed a version mismatch between data pack and resource pack to be reported as a warning
instead of an error, because the entity still renders with the fallback model.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 1.7.0
1.7.021 июл. 2026 г.16Minecraft: 1.21.1forge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.7.0
- Fixed profiles without an explicit `texture` falling back to a duplicated `entity/entity/` texture
path, which left the profile inactive and hid its spawn item from the creative tabs.
- Changed missing textures to be reported as an error instead of a warning by `validate_profiles`,
because a model without a texture cannot be rendered at all.
- Changed a version mismatch between data pack and resource pack to be reported as a warning
instead of an error, because the entity still renders with the fallback model.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 1.7.0
1.7.021 июл. 2026 г.59Minecraft: 1.21.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.7.0
- Fixed profiles without an explicit `texture` falling back to a duplicated `entity/entity/` texture
path, which left the profile inactive and hid its spawn item from the creative tabs.
- Changed missing textures to be reported as an error instead of a warning by `validate_profiles`,
because a model without a texture cannot be rendered at all.
- Changed a version mismatch between data pack and resource pack to be reported as a warning
instead of an error, because the entity still renders with the fallback model.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 1.7.0
1.7.021 июл. 2026 г.107Minecraft: 1.20.1forge, neoforge
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.7.0
- Fixed profiles without an explicit `texture` falling back to a duplicated `entity/entity/` texture
path, which left the profile inactive and hid its spawn item from the creative tabs.
- Changed missing textures to be reported as an error instead of a warning by `validate_profiles`,
because a model without a texture cannot be rendered at all.
- Changed a version mismatch between data pack and resource pack to be reported as a warning
instead of an error, because the entity still renders with the fallback model.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
release
Easy Model Entities 1.7.0
1.7.021 июл. 2026 г.55Minecraft: 1.20.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.7.0
- Fixed profiles without an explicit `texture` falling back to a duplicated `entity/entity/` texture
path, which left the profile inactive and hid its spawn item from the creative tabs.
- Changed missing textures to be reported as an error instead of a warning by `validate_profiles`,
because a model without a texture cannot be rendered at all.
- Changed a version mismatch between data pack and resource pack to be reported as a warning
instead of an error, because the entity still renders with the fallback model.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.6.0
1.6.015 июл. 2026 г.52Minecraft: 26.2forge
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
beta
Easy Model Entities 1.6.0
1.6.015 июл. 2026 г.22Minecraft: 26.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
beta
Easy Model Entities 1.6.0
1.6.015 июл. 2026 г.7Minecraft: 26.2neoforge
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
beta
Easy Model Entities 1.6.0
1.6.014 июл. 2026 г.7Minecraft: 26.1.2forge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
beta
Easy Model Entities 1.6.0
1.6.014 июл. 2026 г.10Minecraft: 26.1.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
beta
Easy Model Entities 1.6.0
1.6.014 июл. 2026 г.7Minecraft: 26.1.2neoforge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
beta
Easy Model Entities 1.6.0
1.6.014 июл. 2026 г.13Minecraft: 1.21.11forge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.6.0
1.6.014 июл. 2026 г.19Minecraft: 1.21.11fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.6.0
1.6.014 июл. 2026 г.10Minecraft: 1.21.11neoforge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.6.0
1.6.014 июл. 2026 г.30Minecraft: 1.21.1neoforge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.6.0
1.6.014 июл. 2026 г.8Minecraft: 1.21.1forge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.6.0
1.6.014 июл. 2026 г.14Minecraft: 1.21.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.6.0
1.6.013 июл. 2026 г.49Minecraft: 1.20.1forge, neoforge
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.6.0
1.6.013 июл. 2026 г.19Minecraft: 1.20.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.6.0
- Added an `attack` animation state with standard Blockbench `attack` clip support for all body
types, driven by the entity's attack swing progress.
- Added a procedural vanilla-style arm swing for biped and winged humanoid models that lack an
`attack` clip.
- Added a part pose capture API (`EasyModelPartPoseListener` / `EasyModelPartPose` via
`EasyModelEntityRenderOptions.withPartPoseListener`) so integrations can anchor held items or
attachments to animated model parts.
- Added `EasyModelEntitiesClientApi.getItemAnchor(profileId, arm)` with cached anchor resolution
(dedicated `right_item`/`left_item` anchor parts take precedence over the `*_hand`/`*_arm`
fallback).
- Added `EasyModelEntityRenderOptions.withAnimationState(int)` to force an animation state without
implementing `EasyModelRenderable`.
- Improved performance by 10%.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.5.1
1.5.111 июл. 2026 г.19Minecraft: 26.2neoforge
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
beta
Easy Model Entities 1.5.1
1.5.111 июл. 2026 г.21Minecraft: 26.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
beta
Easy Model Entities 1.5.1
1.5.111 июл. 2026 г.5Minecraft: 26.2forge
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
beta
Easy Model Entities 1.5.1
1.5.111 июл. 2026 г.4Minecraft: 26.1.2forge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
beta
Easy Model Entities 1.5.1
1.5.111 июл. 2026 г.6Minecraft: 26.1.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
beta
Easy Model Entities 1.5.1
1.5.111 июл. 2026 г.6Minecraft: 26.1.2neoforge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
beta
Easy Model Entities 1.5.1
1.5.111 июл. 2026 г.6Minecraft: 1.21.11forge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.5.1
1.5.111 июл. 2026 г.16Minecraft: 1.21.11fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.5.1
1.5.111 июл. 2026 г.4Minecraft: 1.21.11neoforge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.5.0
1.5.07 июл. 2026 г.18Minecraft: 26.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
beta
Easy Model Entities 1.5.0
1.5.07 июл. 2026 г.8Minecraft: 26.2forge
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
beta
Easy Model Entities 1.5.0
1.5.07 июл. 2026 г.8Minecraft: 26.2neoforge
Что нового
# Changelog for Easy Model Entities 26.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.2
beta
Easy Model Entities 1.5.0
1.5.07 июл. 2026 г.5Minecraft: 26.1.2forge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
beta
Easy Model Entities 1.5.0
1.5.07 июл. 2026 г.6Minecraft: 26.1.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
beta
Easy Model Entities 1.5.0
1.5.07 июл. 2026 г.6Minecraft: 26.1.2neoforge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
beta
Easy Model Entities 1.5.0
1.5.07 июл. 2026 г.4Minecraft: 1.21.11forge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.5.0
1.5.07 июл. 2026 г.5Minecraft: 1.21.11fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.5.0
1.5.07 июл. 2026 г.2Minecraft: 1.21.11neoforge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.5.0
1.5.07 июл. 2026 г.13Minecraft: 1.21.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.5.0
1.5.07 июл. 2026 г.10Minecraft: 1.21.1neoforge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.5.0
1.5.07 июл. 2026 г.6Minecraft: 1.21.1forge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.5.0
1.5.06 июл. 2026 г.15Minecraft: 1.20.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.5.0
1.5.06 июл. 2026 г.16Minecraft: 1.20.1forge, neoforge
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.5.0
- Fixed the entity and block-entity creative tabs being empty on dedicated clients by building them
from the client render profiles instead of the server-only profile registry.
- Fixed the spawn item icons rendering nothing on dedicated clients by falling back to the client
render profile when no server profile is available.
- Added a stateless render-by-profile-id API with `scale`, displayed bounds, and body type lookups
for mod integrations.
- Added `EasyModelEntitiesClientApi.listRenderableProfileIds()` so integrations such as Easy NPC can
list and preview available models on a dedicated client without server profiles.
- Changed the example render profiles to align their IDs with the server profile IDs
(`render_profiles/entity/<id>` and `render_profiles/block_entity/<id>`), so the model type is
derived from the profile ID prefix on the client.
- Bumped `schema_version` to `0.2.0` and removed the server profile `client.render_profile`.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.4.0
1.4.02 июл. 2026 г.14Minecraft: 26.1.2forge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
beta
Easy Model Entities 1.4.0
1.4.02 июл. 2026 г.9Minecraft: 26.1.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
beta
Easy Model Entities 1.4.0
1.4.02 июл. 2026 г.3Minecraft: 26.1.2neoforge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
beta
Easy Model Entities 1.4.0
1.4.02 июл. 2026 г.3Minecraft: 1.21.11forge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.4.0
1.4.02 июл. 2026 г.7Minecraft: 1.21.11fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.4.0
1.4.02 июл. 2026 г.4Minecraft: 1.21.11neoforge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.4.0
1.4.02 июл. 2026 г.7Minecraft: 1.21.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.4.0
1.4.02 июл. 2026 г.13Minecraft: 1.21.1neoforge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.4.0
1.4.02 июл. 2026 г.4Minecraft: 1.21.1forge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.4.0
1.4.02 июл. 2026 г.17Minecraft: 1.20.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.4.0
1.4.02 июл. 2026 г.7Minecraft: 1.20.1forge, neoforge
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.4.0 (beta)
- Fixed choppy body rotation of walking host entities by using the interpolated body rotation.
- Added playback of standard Blockbench keyframe animations (`idle`, `walk`, `swim`, `fly`) with
linear interpolation and automatic clip selection.
- Added `set_animation` command to force an animation state on host entities for testing and
command block setups.
- Added `swim` and `fly` animation states to the API.
- Added standard `idle`/`walk`/`swim`/`fly` animations to the little explorer, stone turtle,
dawn sparrow, and coral drifter examples.
- Added entity and block entity spawn items for all example profiles.
- Added offset, rotation, and scale to the `ModelPart` definition to allow complex model
definitions.
- Improved spawn item tooltips to show the behavior mode and movement type of entities.
- Improved render performance by caching resolved render states and fallback models per profile.
- Improved api support for mod integrations.
- Code refactoring and cleanup to improve maintainability and readability.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.3.0
1.3.024 июн. 2026 г.15Minecraft: 26.1.2forge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
beta
Easy Model Entities 1.3.0
1.3.024 июн. 2026 г.11Minecraft: 26.1.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
beta
Easy Model Entities 1.3.0
1.3.024 июн. 2026 г.7Minecraft: 26.1.2neoforge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
beta
Easy Model Entities 1.3.0
1.3.024 июн. 2026 г.5Minecraft: 1.21.11forge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.3.0
1.3.024 июн. 2026 г.17Minecraft: 1.21.11fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.3.0
1.3.024 июн. 2026 г.9Minecraft: 1.21.11neoforge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.3.0
1.3.023 июн. 2026 г.20Minecraft: 1.21.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.3.0
1.3.023 июн. 2026 г.14Minecraft: 1.21.1neoforge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.3.0
1.3.023 июн. 2026 г.8Minecraft: 1.21.1forge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.3.0
1.3.023 июн. 2026 г.16Minecraft: 1.20.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.3.0
1.3.023 июн. 2026 г.10Minecraft: 1.20.1forge, neoforge
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.3.0 (beta)
- Added a stable API for mod integrations that lists all limits, types, and status codes.
- Added a generated JSON file that documents these limits, types, and status codes per version.
- Added a test that fails if the documented values and the actual code values no longer match.
- Added an optional `asset_fingerprint` so resource packs can ship alternate model styles.
- Added a migration hook to handle profiles from older `schema_version`s.
- Improved server and client `version` matching to only report a mismatch when both sides are set
and differ.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.2.0
1.2.020 июн. 2026 г.5Minecraft: 26.1.2neoforge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
beta
Easy Model Entities 1.2.0
1.2.020 июн. 2026 г.5Minecraft: 26.1.2fabric, quilt
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
beta
Easy Model Entities 1.2.0
1.2.020 июн. 2026 г.6Minecraft: 26.1.2forge
Что нового
# Changelog for Easy Model Entities 26.1.2
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/26.1.2
beta
Easy Model Entities 1.2.0
1.2.020 июн. 2026 г.8Minecraft: 1.21.11forge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.2.0
1.2.020 июн. 2026 г.4Minecraft: 1.21.11fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.2.0
1.2.020 июн. 2026 г.3Minecraft: 1.21.11neoforge
Что нового
# Changelog for Easy Model Entities 1.21.11
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.2.0
1.2.018 июн. 2026 г.5Minecraft: 1.21.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.2.0
1.2.018 июн. 2026 г.4Minecraft: 1.21.1neoforge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.2.0
1.2.018 июн. 2026 г.7Minecraft: 1.21.1forge
Что нового
# Changelog for Easy Model Entities 1.21.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.2.0
1.2.018 июн. 2026 г.8Minecraft: 1.20.1forge, neoforge
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.2.0 (beta)
- Added read-only profile catalog API (listProfiles, listProfiles by body type, listProfileIds) for
mod integrations.
- Added still and custom example presets covering all body types, plus a fast-moving example.
- Added case-insensitive bone name matching so `Body`, `body`, and `BODY` all resolve to `body`.
- Fixed profile attributes max_health and follow_range not being applied to host entities.
- Removed unused mixins.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.1.0
1.1.017 июн. 2026 г.7Minecraft: 1.20.1forge, neoforge
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.1.0
1.1.017 июн. 2026 г.8Minecraft: 1.20.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.1.0 (beta)
- Fixed wrong UV mapping for some model parts.
- Fixed wrong block placements.
- Fixed rendering edge case with multiple texture definitions.
- Added UV mapping record to define UV mapping for model parts in a more structured way.
- Added ModelPartTypes enum to replace strings for model part names to avoid typos and errors.
- Added Vec3f enum to replace unnamed float parameter for Vec3f types to avoid typos and errors.
- Added additional model examples for different entity types.
- Added automatic face culling and model optimization to improve performance.
- Added better aquatic and ambient entity support.
- Improved performance by pre-building and adding additional cache.
- Improved example models and textures for better demonstration of features and capabilities.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.0.0
1.0.015 июн. 2026 г.7Minecraft: 1.20.1forge, neoforge
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1
beta
Easy Model Entities 1.0.0
1.0.015 июн. 2026 г.11Minecraft: 1.20.1fabric, quilt
Что нового
# Changelog for Easy Model Entities 1.20.1
## Note
This change log includes the summarized changes.
For the full changelog, please go to the [GitHub History][history] instead.
### 1.0.0 (beta) 🚀
- Initial release for Minecraft 1.20.1.
[history]: https://github.com/MarkusBordihn/BOs-Easy-Model-Entities/commits/1.20.1