[Temporary Wiki] 3.0 Features - Ticxo/Model-Engine-Wiki GitHub Wiki
New Bone Types
Item Bone
Tags: ih_
for head display, ir_
for main hand display, il_
for off hand display
No cubes in bone
Used to display an item on the desired slot.
Unlike the old hand bone, this bone is not linked to any equipment slots of the base entity. Although it would not auto-update, you can create as many item bones and hold as many item types as you want.
Configure the item display with SetItemModel mechanic.
Leash Bone
Tags: l_
No cubes in bone
Mark a bone as the attachment point when being leashed. Can have multiple.
Connect a leash to this bone with the Leash mechanic.
The bone can also be the source of the leash with LeashSelf mechanic.
Rendered Ghost Bone
Tags: g_
No cubes in bone
Mark a ghost bone as rendered in-game.
Normal ghost bones (bones without cubes inside) are only used internally and do not spawn armor stands. Marking them as rendered would cause them to spawn an armor stand, but will not display any models.
You can set the model of a rendered ghost bone using the ChangePart mechanic.
MM Model Mechanics
BodyClamp
Configure the rotational interaction between the head bone and body bone.
Attribute | Aliases | Description | Default |
---|---|---|---|
headuneven | hu, head | Is the head clamp uneven (used while model is walking) | false |
maxhead | mh, mxh | Maximum angle the head can rotate | 50 |
minhead | mnh | Minimum angle the head can rotate | -maxhead |
bodyuneven | bu, body | Is the body clamp uneven (used while model is idling) | false |
maxbody | mb, mxb | Maximum angle the body can rotate | 50 |
minbody | mnb | Minimum angle the body can rotate | -maxbody |
playermode | m, mode, player | Should the body reorient itself like vanilla mobs | false |
stable | s | Stable angle before the body rotatesE.g. if maxbody = 50, and stable = 15, the head can rotate freely until it passes 65 degrees,then the body would snap back to be 50 degrees apart from the head. |
15 |
rdelay | rde | Delay in ticks before the body reorient itself | 10 |
rduration | rdu | How long in ticks would the body take to reorient itself | 10 |
DefaultState
Configure the default states of a model.
Attribute | Aliases | Description | Default |
---|---|---|---|
modelid | m, mid, model | The model being changed | |
type | t | The default state getting changed | |
state | s | Animation name | |
lerpin | li | Lerp in tick | prev |
lerpout | lo | Lerp out tick | prev |
speed | sp | Speed modifier | prev |
Leash
Visually link a leash bone to the target.
Attribute | Aliases | Description | Default |
---|---|---|---|
modelid | m, mid, model | The model being changed | |
partid | p, pid, part | Leash bone | |
leash | l | Is leashed to target |
LeashSelf
Link a leash bone to another.
Attribute | Aliases | Description | Default |
---|---|---|---|
modelid | m, mid, model | The model being changed | |
sourceid | s, sid, src, source | The leash bone being leashed | |
destid | d, did, dest | The leash bone holding the leash |
The leash would be visible as long as the destination is in view, or it will disappear. Double leash if you need it to be always visible (leash A to B, then leash B to A)
MountModel
If the model has driver/passenger bones, mount entities to those bones.
Attribute | Aliases | Description | Default |
---|---|---|---|
driver | d, drive | Is this mechanic mounting a driver | true |
force | f | Should the target be forced to mount on the boneDriver: dismount the original driver and mount the targetPassenger: find a seat with the least passengers and mount the target | false |
autodismount | ad | If the target is already mounted on another seat, should the target dismount from the old seat and mount on the new seat | false |
damagemount | dmg | Can the mounted entity damage the mount | false |
mode | m | What mount mode should the mounted entity useWalking: WASD ground controllerFlying: WASD-Sneak-Jump aerial controller (jump to ascend, shift to descend, shift while mount on ground to dismount)Flying_v16: WASD-Pitch-Jump aerial controller for 1.16 (look up + space to ascend, look down + space to descend)Force_Walking: Same as Walking, but mounted entity cannot dismountForce_Flying: Same as Flying, but mounted entity cannot dismount | walking |
modelid | mid, model | Not Driver: The model ID of the passenger bones. | |
pbone | p | Not Driver: A list of seats searched when mounting entitiesFormat: pbone=seat1,seat2,seat3If force is not enabled, this will fill all the seats until no more passengers can be mounted. |
SubModel
Add or remove a part of a different model to the targeted model. This will create all child bones contained in the substitution, with the offset and rotation taken from the model.
Attribute | Aliases | Description | Default |
---|---|---|---|
modelid | m, mid, model | The targeted model | |
partid | p, pid, part | The targeted part | |
subpartid | sp, spid, subpart | The new part | |
remove | r | Is this mechanic removing a part |
SetModelTag
Set the name displayed on the name tag of the model.
Attribute | Aliases | Description | Default |
---|---|---|---|
modelid | m, mid, model | The targeted model | |
bone | b | The selected bone | |
tag | t | The name, or a placeholder string | |
visible | v | The visibility of the name tag | true |
SwapEntity
Swap the model owner from one entity to the target.
Attribute | Aliases | Description | Default |
---|---|---|---|
modelid | m, mid, model | The targeted model | |
hitbox | h | Should override hitbox | true |
invisible | i, invis | Should the base entity be invisible | true |
step | s | New step height of receiver entity | 0.5 |
radius | rad | View radius of the model | base entity default |
LockModel
Lock all yaw rotation of the model. Useful when trying to execute a skill without the model turning.
Attribute | Aliases | Description | Default |
---|---|---|---|
lock | l | True to lock the model rotation.This would lock both the head and body yaw rotation,but animations do still play. | true |
SetItemModel
Set the item displayed on an item bone.
Attribute | Aliases | Description | Default |
---|---|---|---|
modelid | m, mid, model | The targeted model | |
bone | b | The targeted item bone | |
item | i | The material name of a vanilla item, or the name of a MM item.If this attribute is not set, it would set the item as AIR. |
MM VFX Mechanics
VFX
Set the VFX of the mob.
Attribute | Aliases | Description | Default |
---|---|---|---|
modelid | m, mid, model | The model id of the VFX | |
partid | p, pid, part | The part id of the VFX | |
remove | r | Is this mechanic used for removing a VFX | false |
radius | rad | The view radius of the VFX | base entity default |
color | c | The color of the VFX | FFFFFF |
enchant | en | If the VFX is enchanted | false |
visible | v | If the VFX is visible | true |
bvisible | bv | If the base entity of the VFX is visible. | false |
autotick | at | Should the VFX update by itselfWhen enabled, the VFX would update location, pitch and yaw | false |
autorange | ar | Should the VFX spawn/despawn automatically to player based on distance | true |
VFXSpawn
Removed.
VFXPoint
Removed useyaw
attribute.
VFXObserver (vfxobs)
Manually set the target to see the vfx.
Attribute | Aliases | Description | Default |
---|---|---|---|
remove | r | Hide from targets | false |
force | f | Force the target to see the VFX | false |
VFXChangeModel
Change the model of the VFX. The armor stand holding the VFX would change size if the VFX uses a different size.
Attribute | Aliases | Description | Default |
---|---|---|---|
modelid | m, mid, model | The model id of the new VFX model | |
partid | p, pid, part | The part id of the new VFX model |
Scriptable keyframes
Using the script keyframe, you can now call MM skills or MEG commands at the exact animation frame. You can add new script keyframes by opening the effects timeline within Blockbench.
Afterward, add a new keyframe on the Instructions timeline. Instead of the normal XYZ input, you will see an input called Script.
MM Skills
You can call any custom-defined MM skills by using the prefix mm:
and the skill name. For example:
Primary_5:
Skills:
- message{m="Get punched";audience=world} @self
- explode @ModelPart{m=dr_axis;p=attack_point}
You can even use Skill Parameters within keyframes.
Primary_5:
Skills:
- message{m=<skill.dialogue>;audience=world} @self
- explode @ModelPart{m=dr_axis;p=attack_point}
MEG Commands
MEG Commands are, by design, structurally very similar to MM mechanics. Currently, we have 7 commands which have the same attributes as their MM mechanic counterpart. However, all commands will only target the model you are editing.
- changeparent = ChangeParent
- partvis = PartVisibility
- tint = Tint
- enchant = Enchant
- tag = SetModelTag
- changepart = ChangePart
- remap = RemapModel
To use a MEG command, you just enter it like using them as a normal mechanic.
Multiline scripts
You can write multiple lines of scripts into a single keyframe, and you can also mix and match different script types.
This keyframe would run the MM Skill that plays the dialogue and effect first, then the MEG command to enchant the arm bone.
Using Animation Variables
Finally, you can make use of the Variable Placeholder system provided by Blockbench itself. This system is also extremely similar to MM's variable system, and it works on both MM skills and MEG commands.