The Yes Steve Model mod is a Minecraft Forge/Fabric/NeoForge mod that modifies the vanilla player model, using geckolib at its core, using Minecraft Bedrock Edition models and animation files. This allows players to customize player models and animations as they wish.
-
Custom Model Wiki: http://page.cfpa.team/ysm/
-
Discord: https://discord.gg/ZKeRUt95Ez
-
This github repository is maintained by community player @Elaina and stores many YSM models shared by art authors: https://github.com/Elaina69/Yes-Steve-Model-Repo
Platform Support
Versions 1.1.5 and earlier were written in pure Java and support the three major mainstream platforms and mobile platforms.
Since the encryption algorithm of the old versions written in Java was quickly cracked, starting from version 1.2.0, the core encryption and rendering parts are all written in C++. This greatly improves the rendering performance and security, but the multi-platform support is poor.
The system support situation is as follows:
| System | Client | Server |
|---|---|---|
| Windows AMD64 | ✅ | ✅ |
| Linux AMD64 | ✅ | ✅ |
| Android AArch64 | ✅ | ❌ |
| macOS (Intel) | ❌ | ❌ |
| macOS (Apple Silicon) | ❌ | ❌ |
Introductory Videos
Text introduction

The Yes Steve Model mod takes into account the mod needs of the server community, and adopts many designs suitable for the server environment, including but not limited to:
- Automatic synchronization of client models: When players enter the server, the server will automatically synchronize the models to the player's computer.
- Encrypted model files: All the models sent to the player client are encrypted binary files, effectively avoiding the problem of model theft!
- Model auth function: Models can be authorized separately, and only after the OP input command is authorized, a specific model can be used.
- Vanilla player model modification: Added default Steve and Alex models, both of which can automatically call the player skin display.
Simple customization function: The model customization function is extremely simple. You only need to place the model, textures and animation files in a specific folder, and input the reload command in the game to automatically load and synchronize. No need to write any configuration files!
For client players, it is also extremely simple to use. After the player enters the server for the first time and waits for more than ten seconds (time-consuming for model synchronization), he can use the shortcut key Alt + Y to open the following GUI:

- ① Model switching button: Click to switch to the corresponding model. If the icon in the upper right corner of the button is red, it means the model is not authorized. The number in the icon represents the number of materials that the model can switch.
- ② Texture switching button: For models with multiple textures, click the left and right buttons to switch the model texture.
- ③ Model category switching button: You can switch between all models, auth models and vanilla models (currently only Steve and Alex models
There are many authors who have published works on planetminecraft. You can follow them:
- NekuroMC: https://www.planetminecraft.com/member/nekuromc/
- Omegaff0048: https://www.planetminecraft.com/member/omegaff0048/
- rWby9: https://www.planetminecraft.com/member/rwby9/
- WelfarexWaifu: https://www.planetminecraft.com/member/welfarexwaifu/
Additional Warning:
Please do not create any models that violate laws and regulations. This production team is also opposed to any form of R18/NSFW content creation! We have never participated in any related content creation!
请不要制作任何违反法律法规的模型,本制作组也反对任何形式的 R18 内容创作!也从未参与过任何相关内容创作!
Version 2.2.2+ uses C++ and VMP.
Although we have used digital signatures to avoid this as much as possible, there may still be false positives from some antivirus software.
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 | ||||
| 2d ago | 1 |
- Fixed an issue where the RemotePlayer model was not rendering
- Fixed an issue where the first-person arms were not rendering
- Performance & Stability**
- Fixed an issue where the game would freeze after long runtime on Linux and Android;
- Improved renderer scheduling for slight performance gains, reducing load and power consumption on Android;
- Optimized rendering of opaque models; improved model memory management;
- Note: Once a model uses semi-transparent textures, rendering efficiency will drop significantly. It is recommended to minimize the use of transparency;
- Compatibility**
- Added support for Minecraft 26.1.2 NeoForge;
- Automatically disables linked mod features when the linked mod version is too low (instead of crashing with an error);
- Features**
- Added configuration options to disable certain high-risk linked mod features;
- For example, mods like Sophisticated Backpacks and Parkour that frequently change their core code;
- Improved stability of the radial menu configuration UI;
- Added support for lance animations; the animation category name is
lance;
- Bug Fixes**
- Fixed an issue where some Molang events were not firing correctly;
- Fixed incorrect pitch rotation not being applied to custom minecart models;
- Fixed rotation anomalies in preview models and paper doll rendering in certain situations;
- Fixed katana group positioning and TaCZ pistol animation issues for some models;
- Fixed the issue where maids using YSM models would clip through entertainment blocks;
- Model Updates**
- Updated models: Mini Wine Fox, Holy Wine Fox, Elf Wine Fox, Survivor Wine Fox, K Snail;
- Performance & Stability**
- Fixed an issue where the game would freeze after long runtime on Linux and Android;
- Improved renderer scheduling for slight performance gains, reducing load and power consumption on Android;
- Optimized rendering of opaque models; improved model memory management;
- Note: Once a model uses semi-transparent textures, rendering efficiency will drop significantly. It is recommended to minimize the use of transparency;
- Compatibility**
- Added support for Minecraft 26.1.2 NeoForge;
- Automatically disables linked mod features when the linked mod version is too low (instead of crashing with an error);
- Features**
- Added configuration options to disable certain high-risk linked mod features;
- For example, mods like Sophisticated Backpacks and Parkour that frequently change their core code;
- Improved stability of the radial menu configuration UI;
- Added support for lance animations; the animation category name is
lance;
- Bug Fixes**
- Fixed an issue where some Molang events were not firing correctly;
- Fixed incorrect pitch rotation not being applied to custom minecart models;
- Fixed rotation anomalies in preview models and paper doll rendering in certain situations;
- Fixed katana group positioning and TaCZ pistol animation issues for some models;
- Fixed the issue where maids using YSM models would clip through entertainment blocks;
- Model Updates**
- Updated models: Mini Wine Fox, Holy Wine Fox, Elf Wine Fox, Survivor Wine Fox, K Snail;
- Performance & Stability**
- Fixed an issue where the game would freeze after long runtime on Linux and Android;
- Improved renderer scheduling for slight performance gains, reducing load and power consumption on Android;
- Optimized rendering of opaque models; improved model memory management;
- Note: Once a model uses semi-transparent textures, rendering efficiency will drop significantly. It is recommended to minimize the use of transparency;
- Compatibility**
- Added support for Minecraft 26.1.2 NeoForge;
- Automatically disables linked mod features when the linked mod version is too low (instead of crashing with an error);
- Features**
- Added configuration options to disable certain high-risk linked mod features;
- For example, mods like Sophisticated Backpacks and Parkour that frequently change their core code;
- Improved stability of the radial menu configuration UI;
- Added support for lance animations; the animation category name is
lance;
- Bug Fixes**
- Fixed an issue where some Molang events were not firing correctly;
- Fixed incorrect pitch rotation not being applied to custom minecart models;
- Fixed rotation anomalies in preview models and paper doll rendering in certain situations;
- Fixed katana group positioning and TaCZ pistol animation issues for some models;
- Fixed the issue where maids using YSM models would clip through entertainment blocks;
- Model Updates**
- Updated models: Mini Wine Fox, Holy Wine Fox, Elf Wine Fox, Survivor Wine Fox, K Snail;
- Performance & Stability**
- Fixed an issue where the game would freeze after long runtime on Linux and Android;
- Improved renderer scheduling for slight performance gains, reducing load and power consumption on Android;
- Optimized rendering of opaque models; improved model memory management;
- Note: Once a model uses semi-transparent textures, rendering efficiency will drop significantly. It is recommended to minimize the use of transparency;
- Compatibility**
- Added support for Minecraft 26.1.2 NeoForge;
- Automatically disables linked mod features when the linked mod version is too low (instead of crashing with an error);
- Features**
- Added configuration options to disable certain high-risk linked mod features;
- For example, mods like Sophisticated Backpacks and Parkour that frequently change their core code;
- Improved stability of the radial menu configuration UI;
- Added support for lance animations; the animation category name is
lance;
- Bug Fixes**
- Fixed an issue where some Molang events were not firing correctly;
- Fixed incorrect pitch rotation not being applied to custom minecart models;
- Fixed rotation anomalies in preview models and paper doll rendering in certain situations;
- Fixed katana group positioning and TaCZ pistol animation issues for some models;
- Fixed the issue where maids using YSM models would clip through entertainment blocks;
- Model Updates**
- Updated models: Mini Wine Fox, Holy Wine Fox, Elf Wine Fox, Survivor Wine Fox, K Snail;
- Performance & Stability**
- Fixed an issue where the game would freeze after long runtime on Linux and Android;
- Improved renderer scheduling for slight performance gains, reducing load and power consumption on Android;
- Optimized rendering of opaque models; improved model memory management;
- Note: Once a model uses semi-transparent textures, rendering efficiency will drop significantly. It is recommended to minimize the use of transparency;
- Compatibility**
- Added support for Minecraft 26.1.2 NeoForge;
- Automatically disables linked mod features when the linked mod version is too low (instead of crashing with an error);
- Features**
- Added configuration options to disable certain high-risk linked mod features;
- For example, mods like Sophisticated Backpacks and Parkour that frequently change their core code;
- Improved stability of the radial menu configuration UI;
- Added support for lance animations; the animation category name is
lance;
- Bug Fixes**
- Fixed an issue where some Molang events were not firing correctly;
- Fixed incorrect pitch rotation not being applied to custom minecart models;
- Fixed rotation anomalies in preview models and paper doll rendering in certain situations;
- Fixed katana group positioning and TaCZ pistol animation issues for some models;
- Fixed the issue where maids using YSM models would clip through entertainment blocks;
- Model Updates**
- Updated models: Mini Wine Fox, Holy Wine Fox, Elf Wine Fox, Survivor Wine Fox, K Snail;
- Improved model object loading.
- Fixed a crash caused by switching YSM models when installed alongside Touhou Little Maid.
- Fixed incorrect Y-axis offset when riding boats, minecarts, and other vehicles while using a YSM model with Touhou Little Maid.
- Improved molang struct creation logic.
- Added a new configuration option
merge_multiline_expr(see default model), which merges multi-line expressions within command keyframes.
- This option is a fix for a BlockBench export issue.
- Fixed abnormal rotation when replacing vehicle models from
Immersive AircraftandSimple Planes.
- Improved model object loading.
- Fixed a crash caused by switching YSM models when installed alongside Touhou Little Maid.
- Fixed incorrect Y-axis offset when riding boats, minecarts, and other vehicles while using a YSM model with Touhou Little Maid.
- Improved molang struct creation logic.
- Added a new configuration option
merge_multiline_expr(see default model), which merges multi-line expressions within command keyframes.
- This option is a fix for a BlockBench export issue.
- Fixed abnormal rotation when replacing vehicle models from
Immersive AircraftandSimple Planes.
- Improved model object loading.
- Fixed a crash caused by switching YSM models when installed alongside Touhou Little Maid.
- Fixed incorrect Y-axis offset when riding boats, minecarts, and other vehicles while using a YSM model with Touhou Little Maid.
- Improved molang struct creation logic.
- Added a new configuration option
merge_multiline_expr(see default model), which merges multi-line expressions within command keyframes.
- This option is a fix for a BlockBench export issue.
- Fixed abnormal rotation when replacing vehicle models from
Immersive AircraftandSimple Planes.
- Improved model object loading.
- Fixed a crash caused by switching YSM models when installed alongside Touhou Little Maid.
- Fixed incorrect Y-axis offset when riding boats, minecarts, and other vehicles while using a YSM model with Touhou Little Maid.
- Improved molang struct creation logic.
- Added a new configuration option
merge_multiline_expr(see default model), which merges multi-line expressions within command keyframes.
- This option is a fix for a BlockBench export issue.
- Fixed abnormal rotation when replacing vehicle models from
Immersive AircraftandSimple Planes.
## Bug Fixes
- Fixed an issue where a client-side model build failure could cause model synchronization to hang
- Fixed an issue with the configuration interface displaying incorrectly
- Fixed compatibility issues with the latest version of Sophisticated Backpacks
- Removed the 32-layer nesting limit for model bones
## Feature Improvements
- Added the ability for Bedrock animation controllers to invoke hardcoded control logic
- Added sub-animation controllers
- Allowed loading empty models
- Improved renderer scheduling
## Animation & Model Updates
- Added Mini Wine Fox model (Thanks: 白色北熊)
- Added Wedding Wine Fox model (Thanks: 羊毛Official)
- Added Nine-Tail Wine Fox model (Thanks: 星海境)
- Added Tactical Wine Fox model (Thanks: 汽水弹珠Pixel)
- Modified Wine Fox Car model (Thanks: 辣辣火鸡面)
## Animation Controller Updates
### Dynamic Controllers
By creating Bedrock controllers with specific name prefixes, you can add custom controllers to designated slots in YSM's animation pipeline. Controllers within the same group are sorted alphabetically by name and loaded in order; the later a controller appears, the higher its priority.
| Prefix | Example | Insertion Point (priority low → high) |
| :---------------------: | :--------------------------: | :--------------------------------------------------------------: |
|
player.pre_parallel | player.pre_parallel_meow | Before all controllers ||
player.pre_main_ | player.pre_main_meow | Before player.main (main animation) ||
player.post_main_ | player.post_main_meow | After player.main (main animation) ||
player.pre_hold_ | player.pre_hold_meow | Before player.hold_offhand / player.hold_mainhand (hold) ||
player.post_hold_ | player.post_hold_meow | After player.hold_offhand / player.hold_mainhand (hold) ||
player.pre_swing_ | player.pre_swing_meow | Before player.swing (swing animation) ||
player.post_swing_ | player.post_swing_meow | After player.swing (swing animation) ||
player.pre_use_ | player.pre_use_meow | Before player.use (use animation) ||
player.post_use_ | player.post_use_meow | After player.use (use animation) ||
player.parallel | player.parallel_meow | End of the controller pipeline |### Hardcoded State
A new built-in state named
ysm-builtin has been added (must be added manually). When the animation controller enters this state, it invokes YSM's built-in hardcoded control logic (i.e., the behavior used when no Bedrock controller is present).#### Example
In the main animation controller
player.main, when v.idle_type equals 1, the idle animation is replaced with the flying animation.#### Notes
- The transition time of this state affects the hardcoded controller.
- Particles, sound effects, and "on entry / on exit" expressions function normally in this state.
- This state is treated as an empty state — animations within it will not play.
- Molang script controllers function normally in this state.
### Empty State Chained Transitions
When the animation controller transitions to an empty state (a state with no animations), it will immediately re-evaluate transitions.
#### Example
Within a single frame, if the animation controller is in state A and the conditions for both
A -> B -> C transitions are met, and B is an empty state:- Old behavior:** Only the
A -> Btransition is executed. On the next frame, conditions are re-evaluated, andB -> Cis executed only if conditions are still met. - New behavior:** The
A -> B -> Cchained transition is executed within the same frame.
#### Notes
- If a cyclic transition such as
A -> B -> C -> A -> ...is detected, the controller will stop at the last state before the cycle begins (i.e., C). - During chained transitions, particles, sound effects, and "on entry / on exit" expressions of intermediate states function normally.
### Sub-Controllers
When a controller named
{parent} transitions to a state named ysm-entry-{child}, it invokes the controller logic of {parent}.{child}. The state that triggers the sub-controller is called the "entry state".#### Example
The
player.main controller uses a player.main.idle sub-controller, which in turn nests a player.main.idle.type1 sub-controller.#### Notes
- The transition time of the entry state is ignored, but particles, sound effects, and "on entry / on exit" expressions function normally.
- The entry state is treated as an empty state — animations within it will not play.
- Each frame, the parent controller's transition conditions are checked first. If the entry state transitions to another state, the corresponding sub-controller is immediately invalidated and reset.
- When a sub-controller is invalidated, the "on exit" expression of its current state functions normally.
- Sub-controllers cannot use the
ysm-builtinbuilt-in state. - Sub-controllers can be nested up to 5 levels deep.
## Bug Fixes
- Fixed an issue where a client-side model build failure could cause model synchronization to hang
- Fixed an issue with the configuration interface displaying incorrectly
- Fixed compatibility issues with the latest version of Sophisticated Backpacks
- Removed the 32-layer nesting limit for model bones
## Feature Improvements
- Added the ability for Bedrock animation controllers to invoke hardcoded control logic
- Added sub-animation controllers
- Allowed loading empty models
- Improved renderer scheduling
## Animation & Model Updates
- Added Mini Wine Fox model (Thanks: 白色北熊)
- Added Wedding Wine Fox model (Thanks: 羊毛Official)
- Added Nine-Tail Wine Fox model (Thanks: 星海境)
- Added Tactical Wine Fox model (Thanks: 汽水弹珠Pixel)
- Modified Wine Fox Car model (Thanks: 辣辣火鸡面)
## Animation Controller Updates
### Dynamic Controllers
By creating Bedrock controllers with specific name prefixes, you can add custom controllers to designated slots in YSM's animation pipeline. Controllers within the same group are sorted alphabetically by name and loaded in order; the later a controller appears, the higher its priority.
| Prefix | Example | Insertion Point (priority low → high) |
| :---------------------: | :--------------------------: | :--------------------------------------------------------------: |
|
player.pre_parallel | player.pre_parallel_meow | Before all controllers ||
player.pre_main_ | player.pre_main_meow | Before player.main (main animation) ||
player.post_main_ | player.post_main_meow | After player.main (main animation) ||
player.pre_hold_ | player.pre_hold_meow | Before player.hold_offhand / player.hold_mainhand (hold) ||
player.post_hold_ | player.post_hold_meow | After player.hold_offhand / player.hold_mainhand (hold) ||
player.pre_swing_ | player.pre_swing_meow | Before player.swing (swing animation) ||
player.post_swing_ | player.post_swing_meow | After player.swing (swing animation) ||
player.pre_use_ | player.pre_use_meow | Before player.use (use animation) ||
player.post_use_ | player.post_use_meow | After player.use (use animation) ||
player.parallel | player.parallel_meow | End of the controller pipeline |### Hardcoded State
A new built-in state named
ysm-builtin has been added (must be added manually). When the animation controller enters this state, it invokes YSM's built-in hardcoded control logic (i.e., the behavior used when no Bedrock controller is present).#### Example
In the main animation controller
player.main, when v.idle_type equals 1, the idle animation is replaced with the flying animation.#### Notes
- The transition time of this state affects the hardcoded controller.
- Particles, sound effects, and "on entry / on exit" expressions function normally in this state.
- This state is treated as an empty state — animations within it will not play.
- Molang script controllers function normally in this state.
### Empty State Chained Transitions
When the animation controller transitions to an empty state (a state with no animations), it will immediately re-evaluate transitions.
#### Example
Within a single frame, if the animation controller is in state A and the conditions for both
A -> B -> C transitions are met, and B is an empty state:- Old behavior:** Only the
A -> Btransition is executed. On the next frame, conditions are re-evaluated, andB -> Cis executed only if conditions are still met. - New behavior:** The
A -> B -> Cchained transition is executed within the same frame.
#### Notes
- If a cyclic transition such as
A -> B -> C -> A -> ...is detected, the controller will stop at the last state before the cycle begins (i.e., C). - During chained transitions, particles, sound effects, and "on entry / on exit" expressions of intermediate states function normally.
### Sub-Controllers
When a controller named
{parent} transitions to a state named ysm-entry-{child}, it invokes the controller logic of {parent}.{child}. The state that triggers the sub-controller is called the "entry state".#### Example
The
player.main controller uses a player.main.idle sub-controller, which in turn nests a player.main.idle.type1 sub-controller.#### Notes
- The transition time of the entry state is ignored, but particles, sound effects, and "on entry / on exit" expressions function normally.
- The entry state is treated as an empty state — animations within it will not play.
- Each frame, the parent controller's transition conditions are checked first. If the entry state transitions to another state, the corresponding sub-controller is immediately invalidated and reset.
- When a sub-controller is invalidated, the "on exit" expression of its current state functions normally.
- Sub-controllers cannot use the
ysm-builtinbuilt-in state. - Sub-controllers can be nested up to 5 levels deep.
## Bug Fixes
- Fixed an issue where a client-side model build failure could cause model synchronization to hang
- Fixed an issue with the configuration interface displaying incorrectly
- Fixed compatibility issues with the latest version of Sophisticated Backpacks
- Removed the 32-layer nesting limit for model bones
## Feature Improvements
- Added the ability for Bedrock animation controllers to invoke hardcoded control logic
- Added sub-animation controllers
- Allowed loading empty models
- Improved renderer scheduling
## Animation & Model Updates
- Added Mini Wine Fox model (Thanks: 白色北熊)
- Added Wedding Wine Fox model (Thanks: 羊毛Official)
- Added Nine-Tail Wine Fox model (Thanks: 星海境)
- Added Tactical Wine Fox model (Thanks: 汽水弹珠Pixel)
- Modified Wine Fox Car model (Thanks: 辣辣火鸡面)
## Animation Controller Updates
### Dynamic Controllers
By creating Bedrock controllers with specific name prefixes, you can add custom controllers to designated slots in YSM's animation pipeline. Controllers within the same group are sorted alphabetically by name and loaded in order; the later a controller appears, the higher its priority.
| Prefix | Example | Insertion Point (priority low → high) |
| :---------------------: | :--------------------------: | :--------------------------------------------------------------: |
|
player.pre_parallel | player.pre_parallel_meow | Before all controllers ||
player.pre_main_ | player.pre_main_meow | Before player.main (main animation) ||
player.post_main_ | player.post_main_meow | After player.main (main animation) ||
player.pre_hold_ | player.pre_hold_meow | Before player.hold_offhand / player.hold_mainhand (hold) ||
player.post_hold_ | player.post_hold_meow | After player.hold_offhand / player.hold_mainhand (hold) ||
player.pre_swing_ | player.pre_swing_meow | Before player.swing (swing animation) ||
player.post_swing_ | player.post_swing_meow | After player.swing (swing animation) ||
player.pre_use_ | player.pre_use_meow | Before player.use (use animation) ||
player.post_use_ | player.post_use_meow | After player.use (use animation) ||
player.parallel | player.parallel_meow | End of the controller pipeline |### Hardcoded State
A new built-in state named
ysm-builtin has been added (must be added manually). When the animation controller enters this state, it invokes YSM's built-in hardcoded control logic (i.e., the behavior used when no Bedrock controller is present).#### Example
In the main animation controller
player.main, when v.idle_type equals 1, the idle animation is replaced with the flying animation.#### Notes
- The transition time of this state affects the hardcoded controller.
- Particles, sound effects, and "on entry / on exit" expressions function normally in this state.
- This state is treated as an empty state — animations within it will not play.
- Molang script controllers function normally in this state.
### Empty State Chained Transitions
When the animation controller transitions to an empty state (a state with no animations), it will immediately re-evaluate transitions.
#### Example
Within a single frame, if the animation controller is in state A and the conditions for both
A -> B -> C transitions are met, and B is an empty state:- Old behavior:** Only the
A -> Btransition is executed. On the next frame, conditions are re-evaluated, andB -> Cis executed only if conditions are still met. - New behavior:** The
A -> B -> Cchained transition is executed within the same frame.
#### Notes
- If a cyclic transition such as
A -> B -> C -> A -> ...is detected, the controller will stop at the last state before the cycle begins (i.e., C). - During chained transitions, particles, sound effects, and "on entry / on exit" expressions of intermediate states function normally.
### Sub-Controllers
When a controller named
{parent} transitions to a state named ysm-entry-{child}, it invokes the controller logic of {parent}.{child}. The state that triggers the sub-controller is called the "entry state".#### Example
The
player.main controller uses a player.main.idle sub-controller, which in turn nests a player.main.idle.type1 sub-controller.#### Notes
- The transition time of the entry state is ignored, but particles, sound effects, and "on entry / on exit" expressions function normally.
- The entry state is treated as an empty state — animations within it will not play.
- Each frame, the parent controller's transition conditions are checked first. If the entry state transitions to another state, the corresponding sub-controller is immediately invalidated and reset.
- When a sub-controller is invalidated, the "on exit" expression of its current state functions normally.
- Sub-controllers cannot use the
ysm-builtinbuilt-in state. - Sub-controllers can be nested up to 5 levels deep.
## Bug Fixes
- Fixed an issue where a client-side model build failure could cause model synchronization to hang
- Fixed an issue with the configuration interface displaying incorrectly
- Fixed compatibility issues with the latest version of Sophisticated Backpacks
- Removed the 32-layer nesting limit for model bones
## Feature Improvements
- Added the ability for Bedrock animation controllers to invoke hardcoded control logic
- Added sub-animation controllers
- Allowed loading empty models
- Improved renderer scheduling
## Animation & Model Updates
- Added Mini Wine Fox model (Thanks: 白色北熊)
- Added Wedding Wine Fox model (Thanks: 羊毛Official)
- Added Nine-Tail Wine Fox model (Thanks: 星海境)
- Added Tactical Wine Fox model (Thanks: 汽水弹珠Pixel)
- Modified Wine Fox Car model (Thanks: 辣辣火鸡面)
## Animation Controller Updates
### Dynamic Controllers
By creating Bedrock controllers with specific name prefixes, you can add custom controllers to designated slots in YSM's animation pipeline. Controllers within the same group are sorted alphabetically by name and loaded in order; the later a controller appears, the higher its priority.
| Prefix | Example | Insertion Point (priority low → high) |
| :---------------------: | :--------------------------: | :--------------------------------------------------------------: |
|
player.pre_parallel | player.pre_parallel_meow | Before all controllers ||
player.pre_main_ | player.pre_main_meow | Before player.main (main animation) ||
player.post_main_ | player.post_main_meow | After player.main (main animation) ||
player.pre_hold_ | player.pre_hold_meow | Before player.hold_offhand / player.hold_mainhand (hold) ||
player.post_hold_ | player.post_hold_meow | After player.hold_offhand / player.hold_mainhand (hold) ||
player.pre_swing_ | player.pre_swing_meow | Before player.swing (swing animation) ||
player.post_swing_ | player.post_swing_meow | After player.swing (swing animation) ||
player.pre_use_ | player.pre_use_meow | Before player.use (use animation) ||
player.post_use_ | player.post_use_meow | After player.use (use animation) ||
player.parallel | player.parallel_meow | End of the controller pipeline |### Hardcoded State
A new built-in state named
ysm-builtin has been added (must be added manually). When the animation controller enters this state, it invokes YSM's built-in hardcoded control logic (i.e., the behavior used when no Bedrock controller is present).#### Example
In the main animation controller
player.main, when v.idle_type equals 1, the idle animation is replaced with the flying animation.#### Notes
- The transition time of this state affects the hardcoded controller.
- Particles, sound effects, and "on entry / on exit" expressions function normally in this state.
- This state is treated as an empty state — animations within it will not play.
- Molang script controllers function normally in this state.
### Empty State Chained Transitions
When the animation controller transitions to an empty state (a state with no animations), it will immediately re-evaluate transitions.
#### Example
Within a single frame, if the animation controller is in state A and the conditions for both
A -> B -> C transitions are met, and B is an empty state:- Old behavior:** Only the
A -> Btransition is executed. On the next frame, conditions are re-evaluated, andB -> Cis executed only if conditions are still met. - New behavior:** The
A -> B -> Cchained transition is executed within the same frame.
#### Notes
- If a cyclic transition such as
A -> B -> C -> A -> ...is detected, the controller will stop at the last state before the cycle begins (i.e., C). - During chained transitions, particles, sound effects, and "on entry / on exit" expressions of intermediate states function normally.
### Sub-Controllers
When a controller named
{parent} transitions to a state named ysm-entry-{child}, it invokes the controller logic of {parent}.{child}. The state that triggers the sub-controller is called the "entry state".#### Example
The
player.main controller uses a player.main.idle sub-controller, which in turn nests a player.main.idle.type1 sub-controller.#### Notes
- The transition time of the entry state is ignored, but particles, sound effects, and "on entry / on exit" expressions function normally.
- The entry state is treated as an empty state — animations within it will not play.
- Each frame, the parent controller's transition conditions are checked first. If the entry state transitions to another state, the corresponding sub-controller is immediately invalidated and reset.
- When a sub-controller is invalidated, the "on exit" expression of its current state functions normally.
- Sub-controllers cannot use the
ysm-builtinbuilt-in state. - Sub-controllers can be nested up to 5 levels deep.
- Fixed the issue where the ground could not be hidden in the animation preview interface
- Fixed some issues with Accelerated Rendering and Iris rendering
- Fixed model rendering loss issues
- Model rendering loss when sleeping
- Model rendering loss when switching to spectator mode after installing Free Cam mod
- Added configuration option:
Disable first-person animations from other mods
- Fixed the issue where the ground could not be hidden in the animation preview interface
- Fixed some issues with Accelerated Rendering and Iris rendering
- Fixed model rendering loss issues
- Model rendering loss when sleeping
- Model rendering loss when switching to spectator mode after installing Free Cam mod
- Added configuration option:
Disable first-person animations from other mods
- Fixed the issue where the ground could not be hidden in the animation preview interface
- Fixed some issues with Accelerated Rendering and Iris rendering
- Fixed model rendering loss issues
- Model rendering loss when sleeping
- Model rendering loss when switching to spectator mode after installing Free Cam mod
- Added configuration option:
Disable first-person animations from other mods
- Fixed the issue where the ground could not be hidden in the animation preview interface
- Fixed some issues with Accelerated Rendering and Iris rendering
- Fixed model rendering loss issues
- Model rendering loss when sleeping
- Model rendering loss when switching to spectator mode after installing Free Cam mod
- Added configuration option:
Disable first-person animations from other mods
- Temporarily fixed first-person rendering issues with Better Combat and other mods
- Fixed incorrect pose when holding an unplayed trumpet
- Temporarily fixed first-person rendering issues with Better Combat and other mods
- Fixed incorrect pose when holding an unplayed trumpet
- Temporarily fixed first-person rendering issues with Better Combat and other mods
- Fixed incorrect pose when holding an unplayed trumpet
- Temporarily fixed first-person rendering issues with Better Combat and other mods
- Fixed incorrect pose when holding an unplayed trumpet
## Bug Fixes
- Provided more detailed error messages on incompatible systems
- Fixed the issue of repeated attribute synchronization when health is a non-integer value
- Improved the handling logic of some synchronized attributes
- Fixed rendering issues with translucent faces in encrypted models exported from version 2.2.1 and below
- Fixed the
roamingvariable synchronization issue for vehicle models - Fixed crashes caused by other mods extending
SlotType - Fixed the issue where some mods may cause potion effects to be null
- Fixed the issue of async animation updates not working
- Fixed the issue of
ysm.in_shield_block_cooldownnot working - Fixed the issue of arrow replacement not working in legacy encrypted models (requires manual cache deletion to take effect)
- Fixed several client crash issues
## Performance Optimizations
- Improved the handling logic of some synchronized attributes
- Significantly improved the loading speed of zip models and legacy encrypted models
- Significantly improved the encoding/decoding speed of PNG images
- Optimized model audio processing performance
- Added server-side config option
AcceptSoundFXto optionally disable model audio loading, improving model loading speed and reducing bandwidth usage
## Feature Improvements
- Improved UV handling
- Mainly affects faces with UV size or area of 0
- Scope: Encrypted models below version 2.2.1 and above version 2.5.4, and all unencrypted models
- Drafted YSM UV specification: https://www.yuque.com/flrscn/uwdwcf/uap5og621pfqulm3
- Added default texture name placeholder
-for the/ysm model setcommand - Improved runtime environment detection, displaying a warning window in unsupported environments
- Refined animation update context
- No longer adds Jade information to entities with disabled models
- Updated some language files
- Updated new icons drawn by Blue Rose
## Animation and Model Updates
- Added KLUO model
- Default Fox Spirit model optimization and fixes
- Optimized
taczgun usage animation, no longer causes issues in flight state (Thanks to @Chiyogami) - Changed Fox Spirit flight animation to helicopter style (Thanks to @Xiaomomo)
- Added Large Fox Spirit model (Thanks to @Can't Stand Teacher)
- Optimized and updated Magic Fox Spirit animation (Thanks to @Starry Sea)
- New Molang variables:
- Attack swing related Molang:
ysm.swinging: Boolean, returns true when the player is swingingysm.swing_time: Integer, returns the swing count when the player is swinging, usually within 10ysm.swinging_arm: The swinging arm, main hand is 0, off hand is 1ysm.attack_time: Float, attack windup counter; between 0-1, attack triggers when it reaches 1query.rotation_to_camera: Consistent with Bedrock Edition usage, returnsyawandpitchof the player camera viewctrl.tac_fire_mode: Returns the tacz fire mode stringysm.hit_target_id: Returns the block or entity ID pointed at by the mouse cursorysm.hit_target_type: Returns the target type pointed at by the mouse cursor, returnsblockfor blocks,entityfor entitiesctrl.bcombat_attack_animation: Returns Better Combat attack animation, note that this animation does not distinguish between main/off hand, additional conditions are needed- Immersive Music mod related:
ctrl.im_pitch: Pitch, usually between 0-2ctrl.im_volume: Volume, usually between 0-2ctrl.im_current: Level intensity, range 0-1ctrl.im_delta: Time elapsed since last note output (in milliseconds)ctrl.im_time: Time elapsed since playback started (in milliseconds)ctrl.iss_animation: Iron's Spells casting animation
## Mod Compatibility
### 1. Better Combat Mod
Better Combat can currently be implemented through the default swing animation, with no additional dedicated animations for now.
More refined Better Combat animations can be achieved by using
ctrl.bcombat_attack_animation Molang with animation controllers.Fixed several Better Combat compatibility issues:
- Fixed the issue of weapon swinging not triggering animations
- Fixed rendering issues in first-person view when shaders are enabled
- Fixed the issue of swing animation not synchronizing in multiplayer games
### 2. Immersive Melodies Mod
Added dedicated
im.animation.json animation file, containing default animations for 11 instruments.Added 5 Molang variables related to current music playback for creating dynamic animations.
Thanks to @lucia2048 for creating the music animations.
### 3. Iron's Spells 'n Spellbooks
Added dedicated
iss.animation.json animation file for Iron's Spells casting animations (extensible for compatibility with other addon mods).Added 1 Molang variable related to current casting animation.
Thanks to @Acreia and @lucia2048 Sea for creating the casting animations.
## Bug Fixes
- Provided more detailed error messages on incompatible systems
- Fixed the issue of repeated attribute synchronization when health is a non-integer value
- Improved the handling logic of some synchronized attributes
- Fixed rendering issues with translucent faces in encrypted models exported from version 2.2.1 and below
- Fixed the
roamingvariable synchronization issue for vehicle models - Fixed crashes caused by other mods extending
SlotType - Fixed the issue where some mods may cause potion effects to be null
- Fixed the issue of async animation updates not working
- Fixed the issue of
ysm.in_shield_block_cooldownnot working - Fixed the issue of arrow replacement not working in legacy encrypted models (requires manual cache deletion to take effect)
- Fixed several client crash issues
## Performance Optimizations
- Improved the handling logic of some synchronized attributes
- Significantly improved the loading speed of zip models and legacy encrypted models
- Significantly improved the encoding/decoding speed of PNG images
- Optimized model audio processing performance
- Added server-side config option
AcceptSoundFXto optionally disable model audio loading, improving model loading speed and reducing bandwidth usage
## Feature Improvements
- Improved UV handling
- Mainly affects faces with UV size or area of 0
- Scope: Encrypted models below version 2.2.1 and above version 2.5.4, and all unencrypted models
- Drafted YSM UV specification: https://www.yuque.com/flrscn/uwdwcf/uap5og621pfqulm3
- Added default texture name placeholder
-for the/ysm model setcommand - Improved runtime environment detection, displaying a warning window in unsupported environments
- Refined animation update context
- No longer adds Jade information to entities with disabled models
- Updated some language files
- Updated new icons drawn by Blue Rose
## Animation and Model Updates
- Added KLUO model
- Default Fox Spirit model optimization and fixes
- Optimized
taczgun usage animation, no longer causes issues in flight state (Thanks to @Chiyogami) - Changed Fox Spirit flight animation to helicopter style (Thanks to @Xiaomomo)
- Added Large Fox Spirit model (Thanks to @Can't Stand Teacher)
- Optimized and updated Magic Fox Spirit animation (Thanks to @Starry Sea)
- New Molang variables:
- Attack swing related Molang:
ysm.swinging: Boolean, returns true when the player is swingingysm.swing_time: Integer, returns the swing count when the player is swinging, usually within 10ysm.swinging_arm: The swinging arm, main hand is 0, off hand is 1ysm.attack_time: Float, attack windup counter; between 0-1, attack triggers when it reaches 1query.rotation_to_camera: Consistent with Bedrock Edition usage, returnsyawandpitchof the player camera viewctrl.tac_fire_mode: Returns the tacz fire mode stringysm.hit_target_id: Returns the block or entity ID pointed at by the mouse cursorysm.hit_target_type: Returns the target type pointed at by the mouse cursor, returnsblockfor blocks,entityfor entitiesctrl.bcombat_attack_animation: Returns Better Combat attack animation, note that this animation does not distinguish between main/off hand, additional conditions are needed- Immersive Music mod related:
ctrl.im_pitch: Pitch, usually between 0-2ctrl.im_volume: Volume, usually between 0-2ctrl.im_current: Level intensity, range 0-1ctrl.im_delta: Time elapsed since last note output (in milliseconds)ctrl.im_time: Time elapsed since playback started (in milliseconds)ctrl.iss_animation: Iron's Spells casting animation
## Mod Compatibility
### 1. Better Combat Mod
Better Combat can currently be implemented through the default swing animation, with no additional dedicated animations for now.
More refined Better Combat animations can be achieved by using
ctrl.bcombat_attack_animation Molang with animation controllers.Fixed several Better Combat compatibility issues:
- Fixed the issue of weapon swinging not triggering animations
- Fixed rendering issues in first-person view when shaders are enabled
- Fixed the issue of swing animation not synchronizing in multiplayer games
### 2. Immersive Melodies Mod
Added dedicated
im.animation.json animation file, containing default animations for 11 instruments.Added 5 Molang variables related to current music playback for creating dynamic animations.
Thanks to @lucia2048 for creating the music animations.
### 3. Iron's Spells 'n Spellbooks
Added dedicated
iss.animation.json animation file for Iron's Spells casting animations (extensible for compatibility with other addon mods).Added 1 Molang variable related to current casting animation.
Thanks to @Acreia and @lucia2048 Sea for creating the casting animations.
## Bug Fixes
- Provided more detailed error messages on incompatible systems
- Fixed the issue of repeated attribute synchronization when health is a non-integer value
- Improved the handling logic of some synchronized attributes
- Fixed rendering issues with translucent faces in encrypted models exported from version 2.2.1 and below
- Fixed the
roamingvariable synchronization issue for vehicle models - Fixed crashes caused by other mods extending
SlotType - Fixed the issue where some mods may cause potion effects to be null
- Fixed the issue of async animation updates not working
- Fixed the issue of
ysm.in_shield_block_cooldownnot working - Fixed the issue of arrow replacement not working in legacy encrypted models (requires manual cache deletion to take effect)
- Fixed several client crash issues
## Performance Optimizations
- Improved the handling logic of some synchronized attributes
- Significantly improved the loading speed of zip models and legacy encrypted models
- Significantly improved the encoding/decoding speed of PNG images
- Optimized model audio processing performance
- Added server-side config option
AcceptSoundFXto optionally disable model audio loading, improving model loading speed and reducing bandwidth usage
## Feature Improvements
- Improved UV handling
- Mainly affects faces with UV size or area of 0
- Scope: Encrypted models below version 2.2.1 and above version 2.5.4, and all unencrypted models
- Drafted YSM UV specification: https://www.yuque.com/flrscn/uwdwcf/uap5og621pfqulm3
- Added default texture name placeholder
-for the/ysm model setcommand - Improved runtime environment detection, displaying a warning window in unsupported environments
- Refined animation update context
- No longer adds Jade information to entities with disabled models
- Updated some language files
- Updated new icons drawn by Blue Rose
## Animation and Model Updates
- Added KLUO model
- Default Fox Spirit model optimization and fixes
- Optimized
taczgun usage animation, no longer causes issues in flight state (Thanks to @Chiyogami) - Changed Fox Spirit flight animation to helicopter style (Thanks to @Xiaomomo)
- Added Large Fox Spirit model (Thanks to @Can't Stand Teacher)
- Optimized and updated Magic Fox Spirit animation (Thanks to @Starry Sea)
- New Molang variables:
- Attack swing related Molang:
ysm.swinging: Boolean, returns true when the player is swingingysm.swing_time: Integer, returns the swing count when the player is swinging, usually within 10ysm.swinging_arm: The swinging arm, main hand is 0, off hand is 1ysm.attack_time: Float, attack windup counter; between 0-1, attack triggers when it reaches 1query.rotation_to_camera: Consistent with Bedrock Edition usage, returnsyawandpitchof the player camera viewctrl.tac_fire_mode: Returns the tacz fire mode stringysm.hit_target_id: Returns the block or entity ID pointed at by the mouse cursorysm.hit_target_type: Returns the target type pointed at by the mouse cursor, returnsblockfor blocks,entityfor entitiesctrl.bcombat_attack_animation: Returns Better Combat attack animation, note that this animation does not distinguish between main/off hand, additional conditions are needed- Immersive Music mod related:
ctrl.im_pitch: Pitch, usually between 0-2ctrl.im_volume: Volume, usually between 0-2ctrl.im_current: Level intensity, range 0-1ctrl.im_delta: Time elapsed since last note output (in milliseconds)ctrl.im_time: Time elapsed since playback started (in milliseconds)ctrl.iss_animation: Iron's Spells casting animation
## Mod Compatibility
### 1. Better Combat Mod
Better Combat can currently be implemented through the default swing animation, with no additional dedicated animations for now.
More refined Better Combat animations can be achieved by using
ctrl.bcombat_attack_animation Molang with animation controllers.Fixed several Better Combat compatibility issues:
- Fixed the issue of weapon swinging not triggering animations
- Fixed rendering issues in first-person view when shaders are enabled
- Fixed the issue of swing animation not synchronizing in multiplayer games
### 2. Immersive Melodies Mod
Added dedicated
im.animation.json animation file, containing default animations for 11 instruments.Added 5 Molang variables related to current music playback for creating dynamic animations.
Thanks to @lucia2048 for creating the music animations.
### 3. Iron's Spells 'n Spellbooks
Added dedicated
iss.animation.json animation file for Iron's Spells casting animations (extensible for compatibility with other addon mods).Added 1 Molang variable related to current casting animation.
Thanks to @Acreia and @lucia2048 Sea for creating the casting animations.
## Bug Fixes
- Provided more detailed error messages on incompatible systems
- Fixed the issue of repeated attribute synchronization when health is a non-integer value
- Improved the handling logic of some synchronized attributes
- Fixed rendering issues with translucent faces in encrypted models exported from version 2.2.1 and below
- Fixed the
roamingvariable synchronization issue for vehicle models - Fixed crashes caused by other mods extending
SlotType - Fixed the issue where some mods may cause potion effects to be null
- Fixed the issue of async animation updates not working
- Fixed the issue of
ysm.in_shield_block_cooldownnot working - Fixed the issue of arrow replacement not working in legacy encrypted models (requires manual cache deletion to take effect)
- Fixed several client crash issues
## Performance Optimizations
- Improved the handling logic of some synchronized attributes
- Significantly improved the loading speed of zip models and legacy encrypted models
- Significantly improved the encoding/decoding speed of PNG images
- Optimized model audio processing performance
- Added server-side config option
AcceptSoundFXto optionally disable model audio loading, improving model loading speed and reducing bandwidth usage
## Feature Improvements
- Improved UV handling
- Mainly affects faces with UV size or area of 0
- Scope: Encrypted models below version 2.2.1 and above version 2.5.4, and all unencrypted models
- Drafted YSM UV specification: https://www.yuque.com/flrscn/uwdwcf/uap5og621pfqulm3
- Added default texture name placeholder
-for the/ysm model setcommand - Improved runtime environment detection, displaying a warning window in unsupported environments
- Refined animation update context
- No longer adds Jade information to entities with disabled models
- Updated some language files
- Updated new icons drawn by Blue Rose
## Animation and Model Updates
- Added KLUO model
- Default Fox Spirit model optimization and fixes
- Optimized
taczgun usage animation, no longer causes issues in flight state (Thanks to @Chiyogami) - Changed Fox Spirit flight animation to helicopter style (Thanks to @Xiaomomo)
- Added Large Fox Spirit model (Thanks to @Can't Stand Teacher)
- Optimized and updated Magic Fox Spirit animation (Thanks to @Starry Sea)
- New Molang variables:
- Attack swing related Molang:
ysm.swinging: Boolean, returns true when the player is swingingysm.swing_time: Integer, returns the swing count when the player is swinging, usually within 10ysm.swinging_arm: The swinging arm, main hand is 0, off hand is 1ysm.attack_time: Float, attack windup counter; between 0-1, attack triggers when it reaches 1query.rotation_to_camera: Consistent with Bedrock Edition usage, returnsyawandpitchof the player camera viewctrl.tac_fire_mode: Returns the tacz fire mode stringysm.hit_target_id: Returns the block or entity ID pointed at by the mouse cursorysm.hit_target_type: Returns the target type pointed at by the mouse cursor, returnsblockfor blocks,entityfor entitiesctrl.bcombat_attack_animation: Returns Better Combat attack animation, note that this animation does not distinguish between main/off hand, additional conditions are needed- Immersive Music mod related:
ctrl.im_pitch: Pitch, usually between 0-2ctrl.im_volume: Volume, usually between 0-2ctrl.im_current: Level intensity, range 0-1ctrl.im_delta: Time elapsed since last note output (in milliseconds)ctrl.im_time: Time elapsed since playback started (in milliseconds)ctrl.iss_animation: Iron's Spells casting animation
## Mod Compatibility
### 1. Better Combat Mod
Better Combat can currently be implemented through the default swing animation, with no additional dedicated animations for now.
More refined Better Combat animations can be achieved by using
ctrl.bcombat_attack_animation Molang with animation controllers.Fixed several Better Combat compatibility issues:
- Fixed the issue of weapon swinging not triggering animations
- Fixed rendering issues in first-person view when shaders are enabled
- Fixed the issue of swing animation not synchronizing in multiplayer games
### 2. Immersive Melodies Mod
Added dedicated
im.animation.json animation file, containing default animations for 11 instruments.Added 5 Molang variables related to current music playback for creating dynamic animations.
Thanks to @lucia2048 for creating the music animations.
### 3. Iron's Spells 'n Spellbooks
Added dedicated
iss.animation.json animation file for Iron's Spells casting animations (extensible for compatibility with other addon mods).Added 1 Molang variable related to current casting animation.
Thanks to @Acreia and @lucia2048 Sea for creating the casting animations.
- Fixed a critical error in model loading
- Fixed a critical error in model loading
- Fixed a critical error in model loading
- Fixed a critical error in model loading