Configuration
- Model Engine
- Default Animations
- Print Script Warnings
- Use State Machine
- Engine Threads
- Max Engine Threads
- Sync Client Tick End
- Load On World Load
- Unload On World Unload
- Manual Translucency Order
- Default Animation Priority
- Client Sync Interval
- Lower Scale Limit
- Force Custom Model Data
- Process Empty Timeline
- Render Fire On Model
- MineSkin API Key
- User Limb
- Model Generator
- Network Optimization
Model Engine
This section is responsible for the in-game behaviors while Model Engine is running.
Default Animations
Configure the animation names for all default animations.
Some default animations are planned but not fully implemented yet. Don't tell anyone :p
Print Script Warnings
Whether warning messages should be printed when an error occurred on a script keyframe.
Use State Machine
Whether to use the new state machine animation system by default.
Although defaulted to false, it is recommended to migrate all models to using this system.
Engine Threads
The initial amount of threads used to processing model animations.
Max Engine Threads
The maximum amount of threads Model Engine can create to process model animations. The amount must be more than the value set at Engine Threads.
Sync Client Tick End
Whether client desync detection should be timed off the client's tick-end packet instead of the client's movement
packet. When enabled, Model Engine records the client sync time from the ClientTickEnd packet; when disabled, it uses
the player movement packet instead.
Load On World Load
Whether models in a world should be loaded automatically when that world is loaded.
Unload On World Unload
Whether models in a world should be unloaded automatically when that world is unloaded.
Manual Translucency Order
Whether to manually control the render order of translucent parts. This only takes effect when Force Custom Model Data is disabled, in which case translucent parts use a different base item to influence their sorting against opaque parts.
Default Animation Priority
The default priority assigned to the state machine animation handler.
Client Sync Interval
The interval, in milliseconds, between client desync checks. A desync test is only run again once this much time has passed since the last test.
Lower Scale Limit
The smallest absolute scale value a bone is allowed to have. Scale components with a magnitude below this limit are snapped to zero, which also serves to hide near-zero scaled bones.
Force Custom Model Data
Whether generated bone items should be created using real Custom Model Data items. When disabled, Model Engine instead uses a placeholder base item carrying the bone's item model and color component.
Process Empty Timeline
Whether keyframe channels with no value should be treated as zero instead of being left unanimated. When enabled, a missing keyframe value defaults to zero.
Render Fire On Model
Whether the fire overlay should be rendered on models when the base entity is on fire. This is the default value and can be overridden per Active Model.
MineSkin API Key
The API key used to enable MineSkin-based skin generation. If left empty, MineSkin skin generation is disabled.
User Limb
Configures the default player skins used for the player limb bone behavior, and how those skins are generated.
| Key | Description | Default |
|---|---|---|
| Eager-Generate-Skins | Whether a joining player's skin limbs should be generated ahead of time when they join. | true |
| Default-Classic-Skin | The name of the default skin (from Default-Skins) used for the classic (Steve) player model. |
Steve |
| Default-Slim-Skin | The name of the default skin (from Default-Skins) used for the slim (Alex) player model. |
Alex |
| Default-Skins | The named skins registered on start up. Each entry supplies skin data via base64, url, path, username, or uuid, and an optional slim flag. |
Steve, Alex |
Model Generator
This section configures the assets generation settings ran on server start up or model reimport.
Delete Old
Whether the previously generated resource pack folder should be deleted before assets are regenerated.
Register Post Server
Should the models register after server start up.
If set the false, the server will hang until all models are registered.
Otherwise, the server will be joinable before all models are imported, and all subsequent process will also be run after
server start up.
Assets Post Server
Should the resource pack be generated after server start up.
If set the false, the server will hang until all assets are generated.
Compile Post Server
Should the resource pack be zipped after server start up.
If set the false, the server will hang until all assets are generated.
Enable Error
Should model error messages be printed.
Debug Level
Set the debug level of the Model Engine logger. May sometimes reveal useful information.
Log Only Error Models
Whether the error collector should only log models that actually have errors, suppressing log output for models that imported without any errors.
Namespace
Set the namespace of the generated resource pack.
Texture Path
The sub-folder inside the resource pack's texture directory where generated model textures are placed.
Create Zip
Should Model Engine zip the resource pack automatically.
Create Atlas
Should Model Engine create an atlas file automatically.
Create Shader
Should Model Engine create the shaders used for player limb bone behavior.
Create MC-META
Should Model Engine generate MC-META files for animated textures.
This does NOT stop generation if the model contains metadata saved through
the MC-META blockbench plugin, which we highly recommend using.
Item Model
The item model used to create overrides for all generated models.
Here is a list of usable items. All items shown here are colorable:
| Item |
|---|
| FILLED_MAP |
| LEATHER_BOOTS |
| LEATHER_CHESTPLATE |
| LEATHER_HORSE_ARMOR |
| LEATHER_LEGGINGS |
| LINGERING_POTION |
| POTION |
| SPLASH_POTION |
| TIPPED_ARROW |
Item Models
A list of base items used to create overrides for all generated models, using the same items listed under Item Model. When this list is non-empty, it replaces the single Item Model value, allowing generated models to be spread across multiple base items. When left empty, the single Item Model is used.
Max Generator Threads
The maximum number of threads used to generate the resource pack. A negative value uses the number of available processor cores.
Use New Rotation
Whether the model generator uses the alternative bone rotation handling when generating models.
Network Optimization
This section allows adjustment to the network optimizations Model Engine provides.
It is highly recommended to have all optimizations enabled, as they greatly reduce network load, and all optimizations
are configurable on a per-Active Model basis.
Bundle Everything
Should all packets send by Model Engine be bundled and sent in one go.
This optimization utilize the new Bundle packet introduced in 1.19.4. In theory, this will massively reduce overhead
caused by sending packets separately.
Bundle Size
Maximum amount of packets allowed in a bundle.
Since packets wrapped in a bundle are forced to be processed in the same tick, too many packets in a bundle may cause
the client to lag.
Minecraft by default only allow up to 4096 packets in a single bundle.
Cull Interval
The culling interval of an Active Model. Smaller value means more frequent detection but more calculations.
Culling Threads
The initial amount of threads used to processing model culling.
Max Culling Threads
The maximum amount of threads Model Engine can create to process model culling. The amount must be more than the value set at Culling Threads.
Vertical Render Distance
Culls the model when the vertical distance between the model's render hitbox and the eye position of the view exceeds a certain threshold.
| Key | Description | Default |
|---|---|---|
| Enabled | Whether this culling method is on. | true |
| Vertical-Render-Distance | Vertical render distance in blocks | 32 |
| Cull-Type | Culling behavior | CULLED |
Skip Models Behind Viewer
Culls the model when angle between the viewer and the model exceeds the configured threshold.
| Key | Description | Default |
|---|---|---|
| Enabled | Whether this culling method is on. | true |
| View-Angle | The view angle of the viewer in degrees, where the model **does not get culled.** Setting to 360 effectively disables this culling method. |
180 |
| Force-Render-Radius | Minimum distance between the viewer and the model for it the be culled in blocks. | 5 |
| Cull-Type | Culling behavior | MOVEMENT_ONLY |
Skip Blocked Models
Culls the model when the model is being blocked by view-occluding blocks.
| Key | Description | Default |
|---|---|---|
| Enabled | Whether this culling method is on. | true |
| Force-Render-Radius | Minimum distance between the viewer and the model for it the be culled in blocks. | 5 |
| Force-Render-Size > Width | Minimum render hitbox width to give up on culling. | 32 |
| Force-Render-Size > Height | Minimum render hitbox height to give up on culling. | 32 |
| Cull-Type | Culling behavior | CULLED |
| Use-Paper-Clip-Method | Whether the culling method should use the paper variant of the raytrace method. | false |
Reduce Update When Far
Reduces how often animation updates are sent to a player as the model gets further away, lowering network load for distant models. The update rate falls off with distance and is clamped between the configured minimum and maximum rate multipliers.
| Key | Description | Default |
|---|---|---|
| Enabled | Whether this optimization is enabled. | true |
| Active-By-Default | Whether this optimization is active for a player by default when they are registered. | true |
| Falloff-Length | The distance, in blocks, over which the rate multiplier decays by one factor of Falloff-Multiplier. |
8 |
| Falloff-Multiplier | The multiplier applied to the update rate per Falloff-Length of distance beyond the full-update range. Smaller values fall off faster. |
0.65 |
| Full-Update-Distance | The distance, in blocks, within which models always receive full-rate updates. | 8 |
| Full-Update-Distance-Multiplier-By-Size | Multiplier scaling the full-update distance by the model's render hitbox size, so larger models keep full updates from further away. | 1 |
| Max-Rate-Multiplier | The upper clamp on the update rate multiplier. | 1 |
| Min-Rate-Multiplier | The lower clamp on the update rate multiplier, preventing very distant models from stopping updates entirely. | 0.05 |
Override Move To Method
Whether Model Engine overrides the navigation moveTo method for modeled mobs. When disabled, the wrapped navigation
falls back to the vanilla movement behavior.