Commands
BMModel
Adds or removes a model from an entity. This is necessary for entities that can have multiple models.
- Syntax:
bmmodel entity:<entity> model:<model> (remove) - Examples:
- To add a model:
bmmodel entity:<context.entity> model:my_model - To remove a model:
bmmodel entity:<context.entity> model:my_model remove
BMState
Plays or stops a layered animation state on a specific model on an entity, optionally limited to specific bones. This command supports multiple concurrent animations by allowing you to apply animations to specific parts of the model.
-
Syntax:
bmstate entity:<entity> model:<model> state:<animation> (bones:<list>) (loop:<once|loop|hold>) (speed:<#.#>) (lerp_duration:<duration>) (for_players:<list_of_players>) (remove) -
Arguments:
-
bones:<list>: An optional list of bone names to which this animation should be applied. If not provided, the animation applies to the entire model. -
loop: Sets the playback mode. It can be: -
once(plays one time), -
loop(repeats indefinitely), -
hold(plays once and freezes on the final frame). -
speed:<#.#>: Playback speed multiplier. -
lerp_duration:<duration>: Transition duration between animation states. -
for_players:<list_of_players>: Only shows the animation to the specified players. -
remove: Stops the specified animation. -
Examples:
-
To play a looping 'walk' animation on specific leg bones:
bmstate entity:<context.entity> model:robot state:walk bones:left_leg|right_leg loop:loop -
To play a one-shot 'shoot' animation on the arm without stopping other animations:
bmstate entity:<context.entity> model:robot state:shoot bones:right_arm
BMBillboard
Applies a billboard effect to a specific bone of a model, making it always face the player.
-
Syntax:
bmboard entity:<entity> model:<model> bone:<bone> type:<fixed|vertical|horizontal|center> -
Types (
type): -
fixed: Disables the billboard effect. -
vertical: The bone rotates on the Y-axis only. -
horizontal: The bone rotates on the X and Z axes. -
center: The bone rotates on all axes to face the player. -
Example:
-
To make a 'head' bone always face the player:
bmboard entity:<context.entity> model:my_mob bone:head type:center
BMLimb
Plays a player-specific animation. These animations are sourced from models in the players folder. To stop a looping or held animation, you can play another animation over it.
-
Syntax:
bmlimb target:<player> model:<model_animator> animation:<animation_name> (loop:<once|loop|hold>) (hide:<player>) -
Modes (
loop): -
once: Plays the animation a single time (default). -
loop: Repeats the animation indefinitely. -
hold: Plays the animation once and freezes on the final frame. -
Arguments:
-
hide:<player>: Optional. Makes the target player's models invisible to the specified observer player. -
Examples:
-
To make a player perform a 'roll' animation:
bmlimb target:<player> model:steve animation:roll -
To start a repeating 'dance' animation:
bmlimb target:<player> model:player_gestures animation:dance loop:loop -
To make a player strike a pose and hold it:
bmlimb target:<player> model:player_poses animation:heroic_pose loop:hold
BMPart
Applies a player's skin part (e.g., head, cape, body) to a specific bone of a model.
-
Syntax:
bmpart entity:<entity> model:<model> bone:<bone> part:<part_name> from:<player> -
Arguments:
-
entity:<entity>: Target entity to apply the skin part to. -
model:<model>: Name of the BetterModel model attached to the entity. -
bone:<bone>: Bone name within the model to map the skin part onto. -
part:<part_name>: One of thePlayerLimbvalues (e.g.,head,body,left_arm,cape). -
from:<player>: The player whose skin will be used. -
Description:
-
Dynamically maps the specified bone to a part of the player's skin. Uses BetterModel's skin manager and bone item mapper to handle fetching, caching, and rendering.
-
Example:
-
Apply Player's head to the statue's head bone:
bmpart entity:<[statue_entity]> model:statue_model bone:head part:head from:<player>
BMMount
Mounts or dismounts an entity from a model's bone.
- Syntax:
bmmount [<entity_to_mount>] on:<bmbone> (dismount) (dismount_all) - Arguments:
<entity_to_mount>: Entity to mount (optional fordismount_all).on:<bmbone>: Target bone (must be configured as a seat in the model file).dismount: Dismounts the specified entity from the bone.dismount_all: Dismounts all entities from the bone.
