-
Notifications
You must be signed in to change notification settings - Fork 0
User Guide
This page is for players and pack authors who want to use Easy Model Entities with resource packs and data packs only. You do not need Java code for this.
- Easy Model Entities is installed on the client and the server.
- Your data pack contains the server profiles.
- Your resource pack contains render profiles,
.bbmodelfiles, and textures. - Server profiles and render profiles use matching namespaces and IDs.
Use an entity when your model should move, use pathfinding, or react like a mob. Entities are more flexible, but Minecraft has to manage them as moving objects.
Use a block entity when your model stays at one block position. Block entities are often better for decorations, shrines, mimics, and machines because they do not need mob movement logic.
Recommended stable starting points are humanoid_wandering,
quadruped_wandering, statue, and the block entity preset
animated_randomly. Some other presets already exist for schema and renderer
support, but are still marked as WIP in the Profile Reference.
A typical pack looks like this:
data/<namespace>/easy_model_entities/profiles/entity/<id>.json
data/<namespace>/easy_model_entities/profiles/block_entity/<id>.json
assets/<namespace>/easy_model_entities/render_profiles/<id>.json
assets/<namespace>/easy_model_entities/models/<model>.bbmodel
assets/<namespace>/textures/entity/<texture>.png
assets/<namespace>/textures/block/<texture>.png
<namespace> is your pack or mod namespace, for example my_pack.
Server profiles include their type path in commands:
my_pack:entity/little_explorer
my_pack:block_entity/shrine
Render profiles are separate client-side IDs, usually shorter:
my_pack:little_explorer
my_pack:shrine
Model IDs do not include .bbmodel. Texture IDs do include .png.
For normal pack use, start with the small version. EME fills many fields from the preset:
-
schema_versiondefaults to the current schema. -
versioncan stay empty unless you want client/server asset mismatch checks. -
dimensions,movement,behavior, andattributesare generated from the server preset. -
body_type,rendering, andanimationare generated from the render preset. -
modelandtexturecan be generated from the render profile ID if your files use the default paths.
Practical entity setup with default model and texture paths:
data/my_pack/easy_model_entities/profiles/entity/little_explorer.json
assets/my_pack/easy_model_entities/render_profiles/little_explorer.json
assets/my_pack/easy_model_entities/models/little_explorer.bbmodel
assets/my_pack/textures/entity/little_explorer.png
Server profile:
{
"model_type": "entity",
"preset_type": "humanoid_wandering",
"client": {
"render_profile": "my_pack:little_explorer"
}
}Render profile:
{
"preset_type": "humanoid_wandering"
}Practical block entity setup keeps the texture explicit, because block textures
usually live under textures/block:
{
"model_type": "block_entity",
"preset_type": "animated_randomly",
"client": {
"render_profile": "my_pack:shrine"
}
}{
"preset_type": "static",
"texture": "my_pack:textures/block/shrine.png",
"animation": {
"mode": "random_idle"
}
}The longer examples below show fields that an exporter may generate when the model needs custom dimensions, bounds, versions, or animation tuning.
Full details are on Entities.
Data pack server profile:
{
"model_type": "entity",
"preset_type": "humanoid_wandering",
"version": "my-entity-v1",
"client": {
"render_profile": "my_pack:little_explorer"
}
}Resource pack render profile:
{
"preset_type": "humanoid_wandering",
"version": "my-entity-v1",
"model": "my_pack:easy_model_entities/models/little_explorer",
"texture": "my_pack:textures/entity/little_explorer.png",
"animation": {
"walk_speed_multiplier": 0.85
}
}Summon it in game:
/easy_model_entities summon my_pack:entity/little_explorerFull details are on Block Entities.
Data pack server profile for a fixed shrine that only animates sometimes:
{
"model_type": "block_entity",
"preset_type": "animated_randomly",
"version": "my-shrine-v1",
"client": {
"render_profile": "my_pack:shrine"
},
"dimensions": {
"width": 1.0,
"height": 1.35,
"eye_height": 0.75
}
}Resource pack render profile:
{
"preset_type": "static",
"version": "my-shrine-v1",
"model": "my_pack:easy_model_entities/models/shrine",
"texture": "my_pack:textures/block/shrine.png",
"animation": {
"mode": "random_idle"
}
}Place it in game:
/easy_model_entities place_block my_pack:block_entity/shrineanimated_randomly selects the EME host block entity that supports random idle
animation. The client plays a short idle burst and then waits before playing it
again.
-
automatic: EME picks the standard animation from the preset and entity state. -
random_idle: plays short idle bursts with pauses between them. -
none: disables built-in automatic animation. This is mainly useful for mods that animate model parts from Java.
List loaded server profiles:
/easy_model_entities list_profilesValidate loaded profiles:
/easy_model_entities validate_profilesDebug one profile:
/easy_model_entities debug_profile my_pack:entity/little_explorerSummon an entity:
/easy_model_entities summon my_pack:entity/little_explorerPlace a block entity:
/easy_model_entities place_block my_pack:block_entity/shrineThe bundled examples use the namespace easy_model_entities_examples. You can
use them as templates for your own pack. See Demo Commands for the exact
commands.
The planned Blockbench plugin workflow is documented as a WIP placeholder on
Blockbench Plugin. It explains why models should start as
modded_entity, which bone names are useful for automatic animation, and which
pack files the export should generate.