-
Notifications
You must be signed in to change notification settings - Fork 0
Profile Reference
This page summarizes the current profile fields, IDs, presets, animation modes, and pack paths.
Server profiles live in the data pack:
data/<namespace>/easy_model_entities/profiles/entity/<id>.json
data/<namespace>/easy_model_entities/profiles/block_entity/<id>.json
Important fields:
-
schema_version: optional; current value is0.1.0. -
model_type:entityorblock_entity. -
preset_type: server preset for behavior and host type. -
version: optional version string for cache and debug output. -
client.render_profile: render profile in the resource pack. -
dimensions: optional size settings; containswidth,height, andeye_height. -
movement: optional entity movement settings; containsspeed,step_height, andgravity. -
behavior: optional entity behavior settings; containsmode,look_at_players, andrandom_stroll. -
attributes: optional entity attributes; containsmax_health,movement_speed, andfollow_range.
Block entity profiles ignore entity movement, behavior, and attributes.
For pack authors, most fields are optional because EME derives them from the profile ID and preset.
Server profile defaults:
-
schema_version: defaults to the current schema. -
version: defaults to an empty string. -
client.render_profile: defaults to the server profile ID. -
entity.type,entity.movement_type, andentity.body_type: generated from the entity preset. -
block_entity.typeandblock_entity.body_type: generated from the block entity preset. -
dimensions: generated from the preset; block entities default towidth: 1.0,height: 1.0,eye_height: 0.5. -
movement: generated from the movement type. -
behavior: generated from the preset and movement type. -
attributes: defaults tomax_health: 10.0, movement speed frommovement, andfollow_range: 16.0.
Render profile defaults:
-
schema_version: defaults to the current schema. -
version: defaults to an empty string. -
body_type: generated frompreset_type, except forcustom. -
model: defaults to<namespace>:easy_model_entities/models/<render_profile_path>. -
texture: defaults to<namespace>:textures/entity/<render_profile_path>.png. -
rendering: generated from the render preset. -
animation: generated from the render preset.
The default texture path is entity-oriented. For block entities that use
textures/block, set texture explicitly.
Render profiles live in the resource pack:
assets/<namespace>/easy_model_entities/render_profiles/<id>.json
Important fields:
-
schema_version: optional; current value is0.1.0. -
preset_type: render preset for body type, defaults, and automatic animation. -
body_type: required only forcustom; otherwise inferred from the preset. -
version: optional version string. -
model: ResourceLocation to the.bbmodelfile without the file extension. -
texture: ResourceLocation to the texture with the file extension. -
rendering: optional render bounds and shadow settings. -
animation: optional animation settings.
rendering supports:
scaleshadow_radius
animation supports:
modeswing_speedwalk_speed_multiplier
Blockbench models:
assets/<namespace>/easy_model_entities/models/<model>.bbmodel
Textures:
assets/<namespace>/textures/entity/<texture>.png
assets/<namespace>/textures/block/<texture>.png
Example:
{
"model": "my_pack:easy_model_entities/models/shrine",
"texture": "my_pack:textures/block/shrine.png"
}More context is available in Block Entities.
-
static: static EME host block entity. -
ticking: WIP for pack-authored behavior; the host type has client and server tick support, but no built-in visible behavior yet. -
animated: continuously animated EME host block entity. -
animated_randomly: client-side random idle animation with pauses.
Registered EME host block IDs:
easy_model_entities:static_blockeasy_model_entities:ticking_blockeasy_model_entities:animated_blockeasy_model_entities:animated_randomly_block
Registered EME host block entity type IDs:
easy_model_entities:static_block_entityeasy_model_entities:ticking_block_entityeasy_model_entities:animated_block_entityeasy_model_entities:animated_randomly_block_entity
More context is available in Entities.
Stable presets for pack authors:
staticstatuehumanoid_stillhumanoid_wanderingquadruped_stillquadruped_wandering
WIP presets:
-
custom: supported by the parser, mainly useful for mod-owned profiles that provide explicit host settings and dimensions. aquatic_still-
aquatic_swimming: render/body preset exists, dedicated swimming movement is not implemented yet. arthropod_still-
arthropod_wandering: render/body preset exists, ground movement uses the genericground_entityhost. cuboid_still-
cuboid_hopping: render/body preset exists, dedicated hopping movement is not implemented yet. -
floating_still: render/body preset exists, dedicated floating movement is not implemented yet. winged_still-
winged_wandering: render/body preset exists, dedicated flying movement is not implemented yet. winged_humanoid_still-
winged_humanoid_wandering: render/body preset exists, dedicated flying movement is not implemented yet.
Registered EME host entity type IDs:
easy_model_entities:static_entityeasy_model_entities:ground_entity
Current body types:
staticbipedquadrupedaquaticamphibiouswingedwinged_humanoidarthropodcuboidfloating
The preset_type determines the body_type, which in turn decides the required
model parts (bones) and the procedural animation. See Bones (Model Parts).
EME matches Blockbench bones (groups) by name. Bone names are case-insensitive
and surrounding whitespace is trimmed, so Body, body, and BODY all resolve
to body. Use the names below to make a model work with a preset and its
automatic animation.
Recognized bone names:
-
root,head,body -
left_arm,right_arm -
left_leg,right_leg -
front_left_leg,front_right_leg,back_left_leg,back_right_leg -
middle_front_left_leg,middle_front_right_leg,middle_back_left_leg,middle_back_right_leg -
left_wing,right_wing -
tail,tail_fin(any bone namedtail/tail_fin, or starting withtail_, ending with_tail, or containing_tail_, is animated as a tail)
A model is rejected with CLIENT_BODY_TYPE_MISMATCH if a required bone is
missing. A missing root is auto-created for static body types only.
-
static(presetsstatic,statue,custom): none (rootauto-created). -
biped(presetshumanoid_still,humanoid_wandering):root,head,body,left_arm,right_arm,left_leg,right_leg. -
quadruped(presetsquadruped_still,quadruped_wandering):root,body,head,front_left_leg,front_right_leg,back_left_leg,back_right_leg. -
aquatic(presetsaquatic_still,aquatic_swimming):root,body. -
amphibious(presetsamphibious_still,amphibious_wandering):root,body. -
winged(presetswinged_still,winged_wandering):root,body,head,left_wing,right_wing. -
winged_humanoid(presetswinged_humanoid_still,winged_humanoid_wandering):root,body,head,left_arm,right_arm,left_wing,right_wing. -
arthropod(presetsarthropod_still,arthropod_wandering):root,body,head,front_left_leg,front_right_leg,middle_front_left_leg,middle_front_right_leg,middle_back_left_leg,middle_back_right_leg,back_left_leg,back_right_leg. -
cuboid(presetscuboid_still,cuboid_hopping):root,body. -
floating(presetfloating_still):root,body.
Beyond required bones, the procedural animation drives these parts when present.
_still presets only play the idle animation; the matching moving preset
(_wandering, _swimming, _hopping) adds the walk/swim animation. tail
parts are animated for every non-static body type.
-
biped: walk swingsleft_arm,right_arm,left_leg,right_leg; idle breathesbodyandhead. -
quadruped: walk swings all four*_legbones (andleft_leg/right_leg); idle breathesbodyandhead. -
winged: walk swingsleft_leg/right_legand flapsleft_wing/right_wing; idle flaps the wings and breathesbodyandhead. -
winged_humanoid: walk swingsleft_arm,right_arm,left_leg,right_legand flaps the wings; idle flaps the wings and breathesbodyandhead. -
arthropod: walk swings all eight*_legbones; idle breathesbodyandhead. -
aquaticandamphibious: sway thetail; idle breathesbodyandhead. Legs are not animated. -
cuboid: idle only, rocksbodyand tiltsheadlike a lid. -
floating: idle only, breathesbodyandhead. -
static: no animation.
Movement types:
staticground
Behavior modes:
staticidle_onlyambient-
external_owner: WIP marker for mod-owned behavior; the current EME host entities do not add special logic for it.
For common pack use, presets usually provide good defaults. Override movement, behavior, or attributes only when the default behavior is not enough.
Render profile example:
{
"animation": {
"mode": "random_idle",
"walk_speed_multiplier": 1.0
}
}Modes:
-
automatic: default behavior based on preset and entity state. -
random_idle: short idle bursts with pauses. -
none: no built-in automatic animation.
Animation is procedural and driven by mode, swing_speed, and
walk_speed_multiplier; there are no named animation clips. For complex,
custom animations use the render API and drive them from your own mod.
random_idle currently uses 53-tick bursts and waits 200 to 400 ticks before
starting another burst.
The current examples use the namespace easy_model_entities_examples.
Useful server profile IDs:
easy_model_entities_examples:entity/training_dummyeasy_model_entities_examples:entity/little_explorereasy_model_entities_examples:entity/stone_turtleeasy_model_entities_examples:block_entity/shrine