Meigo™ CorporationMeigo™ Corporation

Objects and Tags


Server tags: <bm.*> (new in 6.0)

TagReturnsDescription
<bm.version>ElementTagVersion string of the installed BetterModel plugin.
<bm.compat_layer>ElementTagActive DBetterModel compat layer: v1 (BetterModel 1.15.x), v2 (2.x), or v3 (3.x+).
<bm.capabilities>ListTagCapabilities the active layer provides on the running BetterModel, e.g. dummy_trackers, animation_signals. See compatibility.
<bm.models>ListTagNames of all models registered in BetterModel.
<bm.limbs>ListTagNames of all player limb models registered in BetterModel.

Guard capability-dependent scripts like this:

- if <bm.capabilities.contains[dummy_trackers]>:
    - bmsummon model:blue_wizard location:<[loc]>

EntityTag / PlayerTag extensions

TagReturnsDescription
<EntityTag.bm_entity>BMEntityTagThe BMEntityTag of the entity, if it has any BetterModel models. Null if none.
<EntityTag.bm_model[<name>]>BMModelTagThe named model on the entity. The name is required.
<PlayerTag.limb[(<model_name>)]>MapTagThe player's currently active "limb" animation (from bmlimb). Keys: animation_name, loop_mode, and default_loop_mode when the model defines one. Without a model name, uses the first-found active limb animator — specify the name for script stability. Null if nothing is playing.
<PlayerTag.limb_bones[<model_name>]>MapTagAll bones of a specific player limb model: bone name → BMBoneTag.

BMEntityTag

Represents an entity that has one or more BetterModel models attached to it.

  • Prefix: bmentity
  • Format: the UUID of the base entity (e.g. bmentity@dfc67056-b15d-45dd-b239-482d92e482e5).
TagReturnsDescription
<BMEntityTag.base_entity>EntityTagThe base Bukkit entity.
<BMEntityTag.model[(<model_name>)]>BMModelTagThe named model on the entity; without a name, the first model loaded.

BMModelTag

Represents a specific model instance (tracker) attached to an entity — or, new in 6.0, bound to a location.

  • Prefix: bmmodel
  • Format: <uuid>,<model_name> (e.g. bmmodel@dfc67056-...-482d92e482e5,demon_knight).
  • Dummy identity form (new in 6.0): models summoned with bmsummon have no source entity, so they identify as bmmodel@dummy:<id>,<model>. The <id> is an internal registry id — valid until the tracker is removed, BetterModel reloads, or the server restarts. Non-persistent: do not store it in flags or files; re-acquire the handle from the bmsummon save entry.
TagReturnsDescription
<BMModelTag.name>ElementTagName of the model.
<BMModelTag.bm_entity>BMEntityTagParent BMEntityTag (null for dummies).
<BMModelTag.bones>MapTagAll bones: name → BMBoneTag.
<BMModelTag.bone[<name>]>BMBoneTagThe named bone.
<BMModelTag.animations>ListTagAll animation names of the model.
<BMModelTag.get_animation_duration[<name>]>DurationTagTotal duration of the animation.
<BMModelTag.viewers>ListTag(PlayerTag)Players currently seeing this model. (new in 6.0)
<BMModelTag.running_animations>ListTagNames of animations currently playing on the tracker pipeline. The compat api exposes at most one pipeline animation, so the list has zero or one entries. (new in 6.0)

Mechanisms:

  • force_update — forces an immediate visual update of the model for all viewers.
  • Every BMBoneTag mechanism (below) also works on a BMModelTag, applying to all bones of the model at once.

BMBoneTag

Represents a single bone within a specific model instance on an entity.

  • Prefix: bmbone
  • Format: <uuid>,<model_name>,<bone_name> (e.g. bmbone@dfc67056-...-482d92e482e5,demon_knight,head).

Position/rotation tags

TagReturnsDescription
<BMBoneTag.name>ElementTagThe bone's name.
<BMBoneTag.world_location>LocationTagThe bone's world position (entity location + rotated model offset).
<BMBoneTag.global_position>LocationTagAlias of world_location.
<BMBoneTag.local_position>LocationTagThe bone's position relative to the model, un-rotated.
<BMBoneTag.real_position>LocationTagWorld position with the bone's real view direction applied.
<BMBoneTag.world_rotation_euler>LocationTagThe bone's world rotation as Euler angles (x/y/z).
<BMBoneTag.world_rotation>LocationTagDeprecated pre-4.0.0 alias of world_rotation_euler, restored in 6.0 for legacy scripts.
<BMBoneTag.is_visible>ElementTag(Boolean)Whether the bone is visible.
<BMBoneTag.bm_model>BMModelTagThe parent model.
<BMBoneTag.bm_entity>BMEntityTagDeprecated 2.x alias (dropped in 4.x, restored in 6.0): the parent BMEntityTag. Null for bones of dummy trackers. Prefer bm_model.bm_entity.

Getter tags (new in 6.0)

BetterModel exposes no display-state reads, so these tags return the last value set through DBetterModel — or the documented default before the first write. Values set by other plugins or by the model file at runtime are not visible to them.

TagReturnsDefault before first writeMechanism
<BMBoneTag.glow>ElementTag(Boolean)falseglow
<BMBoneTag.glow_color>ElementTag(Number)16777215 (white)glow_color
<BMBoneTag.tint>ElementTag(Number)16777215 (neutral white)tint
<BMBoneTag.billboard>ElementTagFIXEDbillboard
<BMBoneTag.view_range>ElementTag(Decimal)1.0 (display default)view_range
<BMBoneTag.brightness>ListTag0|15 (block|sky)brightness
<BMBoneTag.shadow_radius>ElementTag(Decimal)0shadow_radius
<BMBoneTag.scale>LocationTagthe model's own item scalescale
<BMBoneTag.offset>LocationTagthe model's own item offsetoffset
<BMBoneTag.item>ItemTagnullitem
<BMBoneTag.skin_parts>ListTagvalid part names for the skin mechanismskin

Mechanisms

MechanismInputDescription
tintElementTag(Integer)RGB color tint of the bone's item (<ColorTag.rgb_integer>).
visibleElementTag(Boolean) or ListTagVisibility for all players, or true|<player>|<player>... for specific ones.
itemItemTagItem displayed by the bone.
offsetLocationTagLocal offset of the bone's item.
scaleLocationTagScale vector of the bone.
rotateQuaternionTagAdditional rotation on the bone. Repeated writes replace the rotation instead of stacking (fixed 5.x accumulation bug).
interpolation_durationDurationTagMovement interpolation duration.
glowElementTag(Boolean)Glowing on/off.
glow_colorElementTag(Integer)RGB glow color.
brightnessElementTag(Integer)Brightness level.
view_rangeElementTag(Decimal)Render distance in blocks.
shadow_radiusElementTag(Decimal)Shadow radius.
billboardElementTagBillboard mode (fixed/vertical/horizontal/center).
skinMapTagApplies a player's skin part to the bone: skin:[part=head;from=<player>]. Part names: <BMBoneTag.skin_parts>. The skin loads asynchronously, so the bone updates a moment later. Modern replacement for the bmpart command (which stays supported). Bone-only — not fanned out via BMModelTag.

All bone mechanisms execute exactly once per adjust, even when fanned out over every bone of a model via BMModelTag (fixed 5.x double-fire bug).

On this page