
2.6.4-neoforge+mc1.21.1
release24 марта 2026 г.YSM 2.6.4 Changelog
-
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.
2.6.4-fabric+mc1.21.1
release24 марта 2026 г.YSM 2.6.4 Changelog
-
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.
2.6.4-forge+mc1.20.1
release24 марта 2026 г.YSM 2.6.4 Changelog
-
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.
2.6.4-fabric+mc1.20.1
release24 марта 2026 г.YSM 2.6.4 Changelog
-
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.
2.6.3-neoforge+mc1.21.1
release13 марта 2026 г.2.6.3 Changelog
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.
