## 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 `roaming` variable 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_cooldown` not 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 `AcceptSoundFX` to 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 set` command
- 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 `tacz` gun 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 swinging
- `ysm.swing_time`: Integer, returns the swing count when the player is swinging, usually within 10
- `ysm.swinging_arm`: The swinging arm, main hand is 0, off hand is 1
- `ysm.attack_time`: Float, attack windup counter; between 0-1, attack triggers when it reaches 1
- `query.rotation_to_camera`: Consistent with Bedrock Edition usage, returns `yaw` and `pitch` of the player camera view
- `ctrl.tac_fire_mode`: Returns the tacz fire mode string
- `ysm.hit_target_id`: Returns the block or entity ID pointed at by the mouse cursor
- `ysm.hit_target_type`: Returns the target type pointed at by the mouse cursor, returns `block` for blocks, `entity` for entities
- `ctrl.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-2
- `ctrl.im_volume`: Volume, usually between 0-2
- `ctrl.im_current`: Level intensity, range 0-1
- `ctrl.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
## 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 `roaming` variable 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_cooldown` not 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 `AcceptSoundFX` to 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 set` command
- 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 `tacz` gun 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 swinging
- `ysm.swing_time`: Integer, returns the swing count when the player is swinging, usually within 10
- `ysm.swinging_arm`: The swinging arm, main hand is 0, off hand is 1
- `ysm.attack_time`: Float, attack windup counter; between 0-1, attack triggers when it reaches 1
- `query.rotation_to_camera`: Consistent with Bedrock Edition usage, returns `yaw` and `pitch` of the player camera view
- `ctrl.tac_fire_mode`: Returns the tacz fire mode string
- `ysm.hit_target_id`: Returns the block or entity ID pointed at by the mouse cursor
- `ysm.hit_target_type`: Returns the target type pointed at by the mouse cursor, returns `block` for blocks, `entity` for entities
- `ctrl.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-2
- `ctrl.im_volume`: Volume, usually between 0-2
- `ctrl.im_current`: Level intensity, range 0-1
- `ctrl.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
## 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 `roaming` variable 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_cooldown` not 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 `AcceptSoundFX` to 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 set` command
- 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 `tacz` gun 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 swinging
- `ysm.swing_time`: Integer, returns the swing count when the player is swinging, usually within 10
- `ysm.swinging_arm`: The swinging arm, main hand is 0, off hand is 1
- `ysm.attack_time`: Float, attack windup counter; between 0-1, attack triggers when it reaches 1
- `query.rotation_to_camera`: Consistent with Bedrock Edition usage, returns `yaw` and `pitch` of the player camera view
- `ctrl.tac_fire_mode`: Returns the tacz fire mode string
- `ysm.hit_target_id`: Returns the block or entity ID pointed at by the mouse cursor
- `ysm.hit_target_type`: Returns the target type pointed at by the mouse cursor, returns `block` for blocks, `entity` for entities
- `ctrl.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-2
- `ctrl.im_volume`: Volume, usually between 0-2
- `ctrl.im_current`: Level intensity, range 0-1
- `ctrl.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
## 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 `roaming` variable 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_cooldown` not 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 `AcceptSoundFX` to 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 set` command
- 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 `tacz` gun 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 swinging
- `ysm.swing_time`: Integer, returns the swing count when the player is swinging, usually within 10
- `ysm.swinging_arm`: The swinging arm, main hand is 0, off hand is 1
- `ysm.attack_time`: Float, attack windup counter; between 0-1, attack triggers when it reaches 1
- `query.rotation_to_camera`: Consistent with Bedrock Edition usage, returns `yaw` and `pitch` of the player camera view
- `ctrl.tac_fire_mode`: Returns the tacz fire mode string
- `ysm.hit_target_id`: Returns the block or entity ID pointed at by the mouse cursor
- `ysm.hit_target_type`: Returns the target type pointed at by the mouse cursor, returns `block` for blocks, `entity` for entities
- `ctrl.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-2
- `ctrl.im_volume`: Volume, usually between 0-2
- `ctrl.im_current`: Level intensity, range 0-1
- `ctrl.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
- Fixed hand animation issues caused by old YSM encryption format
- Fixed potential disconnection issues during cross-server teleportation when running client-only
- Fixed abnormal head hiding functionality when compatible with Better Combat mod
- Corrected model background and foreground image size limits, now supporting maximum 260×450 pixels
- Fixed startup failures on some servers (especially Linux servers) due to irregular configuration directory path formats
- Server now displays accurate error messages when failing to read default models
- Fixed abnormal outline rendering when players are in both glowing and invisible states simultaneously
- Fixed abnormal GUI animation playback under specific conditions
- Fixed incorrect animation display when picking up maids with Carry On mod
- Fixed abnormal animation states when maids switch models
- Fixed issue where some Molang variables couldn't update properly when YSM wasn't installed on the server
- Fixed parameter parsing errors when using function expressions as parameters in Molang custom function calls
- Fixed incorrect Y-coordinate component handling in Molang functions for block information retrieval
- Fixed ZIP file reading failures under specific conditions
- Fixed compatibility issues with TaCZ Tweaks mod
## Performance Optimizations
- Optimized animation update frequency for distant and invisible entities to reduce performance consumption
- Improved player attribute synchronization mechanism, effectively reducing server network bandwidth usage
- Added new server configuration option: Low Bandwidth Mode
- Automatic cleanup of invalid player roaming data on server to prevent excessive NBT data
- Added more memory safety features
- Changed client texture compression format to WebP, significantly reducing memory usage
## New Features and Content Modifications
- Added support for Linux clients (Note: Client cannot run in virtual machine environments)
- Added support for Android clients
- Enhanced compatibility support for head-worn items
- Added compatibility for Simple Hat mod
- Improved entity matching mechanism for projectile and rideable entity models:
- Support for configuring multiple entity IDs
- Support for using entity tags for matching
- Added support for 7z compressed format models to resolve garbled text or reading failures with ZIP format
- Supports both model files and model packs
- When 7z compressed packages exceed 64MB, please disable "Solid Compression" and set "Solid Data Size" to no more than 64MB, then recompress
- Note: Larger solid data provides higher compression ratios but slower loading speeds
- Complete audio system reconstruction with the following improvements:
- Streaming decoding technology for significantly faster model loading and reduced memory usage
- Optimized Opus decoder for higher audio quality
- Added animation controller sound effect support
- Added audio loop playback functionality
- Refined audio playback context management for precise lifecycle control
- Maintains unchanged audio Molang function usage while significantly improving playback effects (see appendix documentation)
- Recommended to use YSM-specific Opus transcoding tool for optimal results
- Enhanced animation debugging features:
- Support for debugging remote players, maids, projectiles, and vehicle entities
- Use `Alt + B` key combination to debug entities pointed by mouse
- Added `/ysmclient debug <selector>` command for precise entity matching and debugging
- Added `/ysmclient molang execute <exp>` command to execute Molang expressions on currently debugged entities
- New Molang variable: `q.delta_time`
- Optimized hardcoded controller scaling frames, disabling initial transition animations
- Added model blacklist functionality to block loading of specified default models
- Configuration file location: `<Game Directory>/yes_steve_model/blacklist.txt` (file contains detailed instructions)
- Added scroll functionality to carousel configuration interface, supporting mouse wheel and button operations
- Added YSM rendering control functionality for individual players
- Command format: `/ysm model disable <Player ID> [true | false]`
- Added wine fox models: Little Wine Fox and Momo Wine Fox
- Added multiple sleeping animation effects for wine fox models (Creator: Little Momo)
## Android Platform Compatibility and Optimization
- Support for FCL, ZL, and ZL2 launchers on Android systems
- Displays upgrade prompts in-game when outdated launcher versions are detected
- Added multiple mobile adaptation optimizations:
- Optimized carousel configuration interface button sizes for improved mobile device operation experience
- Added quick access buttons in pause menu (ESC interface) for skin changing, carousel configuration, and paper doll configuration interfaces
- Enlarged control points in paper doll configuration interface for easier scaling, positioning, and rotation adjustments
- Added reset button and show/hide toggle options for paper doll configuration interface
- Optimized system resource usage during model loading on Android
- Improved thread scheduling algorithms for Android systems
- Fixed issue where carousel animations couldn't be interrupted properly after installing Touch Controller mod
- **Important Note**:
- YSM and Java use independent memory pools, which may have memory competition relationship
- Allocating excessive memory to Java may cause insufficient available memory for YSM, please configure memory allocation reasonably
- Fixed hand animation issues caused by old YSM encryption format
- Fixed potential disconnection issues during cross-server teleportation when running client-only
- Fixed abnormal head hiding functionality when compatible with Better Combat mod
- Corrected model background and foreground image size limits, now supporting maximum 260×450 pixels
- Fixed startup failures on some servers (especially Linux servers) due to irregular configuration directory path formats
- Server now displays accurate error messages when failing to read default models
- Fixed abnormal outline rendering when players are in both glowing and invisible states simultaneously
- Fixed abnormal GUI animation playback under specific conditions
- Fixed incorrect animation display when picking up maids with Carry On mod
- Fixed abnormal animation states when maids switch models
- Fixed issue where some Molang variables couldn't update properly when YSM wasn't installed on the server
- Fixed parameter parsing errors when using function expressions as parameters in Molang custom function calls
- Fixed incorrect Y-coordinate component handling in Molang functions for block information retrieval
- Fixed ZIP file reading failures under specific conditions
- Fixed compatibility issues with TaCZ Tweaks mod
## Performance Optimizations
- Optimized animation update frequency for distant and invisible entities to reduce performance consumption
- Improved player attribute synchronization mechanism, effectively reducing server network bandwidth usage
- Added new server configuration option: Low Bandwidth Mode
- Automatic cleanup of invalid player roaming data on server to prevent excessive NBT data
- Added more memory safety features
- Changed client texture compression format to WebP, significantly reducing memory usage
## New Features and Content Modifications
- Added support for Linux clients (Note: Client cannot run in virtual machine environments)
- Added support for Android clients
- Enhanced compatibility support for head-worn items
- Added compatibility for Simple Hat mod
- Improved entity matching mechanism for projectile and rideable entity models:
- Support for configuring multiple entity IDs
- Support for using entity tags for matching
- Added support for 7z compressed format models to resolve garbled text or reading failures with ZIP format
- Supports both model files and model packs
- When 7z compressed packages exceed 64MB, please disable "Solid Compression" and set "Solid Data Size" to no more than 64MB, then recompress
- Note: Larger solid data provides higher compression ratios but slower loading speeds
- Complete audio system reconstruction with the following improvements:
- Streaming decoding technology for significantly faster model loading and reduced memory usage
- Optimized Opus decoder for higher audio quality
- Added animation controller sound effect support
- Added audio loop playback functionality
- Refined audio playback context management for precise lifecycle control
- Maintains unchanged audio Molang function usage while significantly improving playback effects (see appendix documentation)
- Recommended to use YSM-specific Opus transcoding tool for optimal results
- Enhanced animation debugging features:
- Support for debugging remote players, maids, projectiles, and vehicle entities
- Use `Alt + B` key combination to debug entities pointed by mouse
- Added `/ysmclient debug <selector>` command for precise entity matching and debugging
- Added `/ysmclient molang execute <exp>` command to execute Molang expressions on currently debugged entities
- New Molang variable: `q.delta_time`
- Optimized hardcoded controller scaling frames, disabling initial transition animations
- Added model blacklist functionality to block loading of specified default models
- Configuration file location: `<Game Directory>/yes_steve_model/blacklist.txt` (file contains detailed instructions)
- Added scroll functionality to carousel configuration interface, supporting mouse wheel and button operations
- Added YSM rendering control functionality for individual players
- Command format: `/ysm model disable <Player ID> [true | false]`
- Added wine fox models: Little Wine Fox and Momo Wine Fox
- Added multiple sleeping animation effects for wine fox models (Creator: Little Momo)
## Android Platform Compatibility and Optimization
- Support for FCL, ZL, and ZL2 launchers on Android systems
- Displays upgrade prompts in-game when outdated launcher versions are detected
- Added multiple mobile adaptation optimizations:
- Optimized carousel configuration interface button sizes for improved mobile device operation experience
- Added quick access buttons in pause menu (ESC interface) for skin changing, carousel configuration, and paper doll configuration interfaces
- Enlarged control points in paper doll configuration interface for easier scaling, positioning, and rotation adjustments
- Added reset button and show/hide toggle options for paper doll configuration interface
- Optimized system resource usage during model loading on Android
- Improved thread scheduling algorithms for Android systems
- Fixed issue where carousel animations couldn't be interrupted properly after installing Touch Controller mod
- **Important Note**:
- YSM and Java use independent memory pools, which may have memory competition relationship
- Allocating excessive memory to Java may cause insufficient available memory for YSM, please configure memory allocation reasonably
- Fixed hand animation issues caused by old YSM encryption format
- Fixed potential disconnection issues during cross-server teleportation when running client-only
- Fixed abnormal head hiding functionality when compatible with Better Combat mod
- Corrected model background and foreground image size limits, now supporting maximum 260×450 pixels
- Fixed startup failures on some servers (especially Linux servers) due to irregular configuration directory path formats
- Server now displays accurate error messages when failing to read default models
- Fixed abnormal outline rendering when players are in both glowing and invisible states simultaneously
- Fixed abnormal GUI animation playback under specific conditions
- Fixed incorrect animation display when picking up maids with Carry On mod
- Fixed abnormal animation states when maids switch models
- Fixed issue where some Molang variables couldn't update properly when YSM wasn't installed on the server
- Fixed parameter parsing errors when using function expressions as parameters in Molang custom function calls
- Fixed incorrect Y-coordinate component handling in Molang functions for block information retrieval
- Fixed ZIP file reading failures under specific conditions
- Fixed compatibility issues with TaCZ Tweaks mod
## Performance Optimizations
- Optimized animation update frequency for distant and invisible entities to reduce performance consumption
- Improved player attribute synchronization mechanism, effectively reducing server network bandwidth usage
- Added new server configuration option: Low Bandwidth Mode
- Automatic cleanup of invalid player roaming data on server to prevent excessive NBT data
- Added more memory safety features
- Changed client texture compression format to WebP, significantly reducing memory usage
## New Features and Content Modifications
- Added support for Linux clients (Note: Client cannot run in virtual machine environments)
- Added support for Android clients
- Enhanced compatibility support for head-worn items
- Added compatibility for Simple Hat mod
- Improved entity matching mechanism for projectile and rideable entity models:
- Support for configuring multiple entity IDs
- Support for using entity tags for matching
- Added support for 7z compressed format models to resolve garbled text or reading failures with ZIP format
- Supports both model files and model packs
- When 7z compressed packages exceed 64MB, please disable "Solid Compression" and set "Solid Data Size" to no more than 64MB, then recompress
- Note: Larger solid data provides higher compression ratios but slower loading speeds
- Complete audio system reconstruction with the following improvements:
- Streaming decoding technology for significantly faster model loading and reduced memory usage
- Optimized Opus decoder for higher audio quality
- Added animation controller sound effect support
- Added audio loop playback functionality
- Refined audio playback context management for precise lifecycle control
- Maintains unchanged audio Molang function usage while significantly improving playback effects (see appendix documentation)
- Recommended to use YSM-specific Opus transcoding tool for optimal results
- Enhanced animation debugging features:
- Support for debugging remote players, maids, projectiles, and vehicle entities
- Use `Alt + B` key combination to debug entities pointed by mouse
- Added `/ysmclient debug <selector>` command for precise entity matching and debugging
- Added `/ysmclient molang execute <exp>` command to execute Molang expressions on currently debugged entities
- New Molang variable: `q.delta_time`
- Optimized hardcoded controller scaling frames, disabling initial transition animations
- Added model blacklist functionality to block loading of specified default models
- Configuration file location: `<Game Directory>/yes_steve_model/blacklist.txt` (file contains detailed instructions)
- Added scroll functionality to carousel configuration interface, supporting mouse wheel and button operations
- Added YSM rendering control functionality for individual players
- Command format: `/ysm model disable <Player ID> [true | false]`
- Added wine fox models: Little Wine Fox and Momo Wine Fox
- Added multiple sleeping animation effects for wine fox models (Creator: Little Momo)
## Android Platform Compatibility and Optimization
- Support for FCL, ZL, and ZL2 launchers on Android systems
- Displays upgrade prompts in-game when outdated launcher versions are detected
- Added multiple mobile adaptation optimizations:
- Optimized carousel configuration interface button sizes for improved mobile device operation experience
- Added quick access buttons in pause menu (ESC interface) for skin changing, carousel configuration, and paper doll configuration interfaces
- Enlarged control points in paper doll configuration interface for easier scaling, positioning, and rotation adjustments
- Added reset button and show/hide toggle options for paper doll configuration interface
- Optimized system resource usage during model loading on Android
- Improved thread scheduling algorithms for Android systems
- Fixed issue where carousel animations couldn't be interrupted properly after installing Touch Controller mod
- **Important Note**:
- YSM and Java use independent memory pools, which may have memory competition relationship
- Allocating excessive memory to Java may cause insufficient available memory for YSM, please configure memory allocation reasonably
- Fixed hand animation issues caused by old YSM encryption format
- Fixed potential disconnection issues during cross-server teleportation when running client-only
- Fixed abnormal head hiding functionality when compatible with Better Combat mod
- Corrected model background and foreground image size limits, now supporting maximum 260×450 pixels
- Fixed startup failures on some servers (especially Linux servers) due to irregular configuration directory path formats
- Server now displays accurate error messages when failing to read default models
- Fixed abnormal outline rendering when players are in both glowing and invisible states simultaneously
- Fixed abnormal GUI animation playback under specific conditions
- Fixed incorrect animation display when picking up maids with Carry On mod
- Fixed abnormal animation states when maids switch models
- Fixed issue where some Molang variables couldn't update properly when YSM wasn't installed on the server
- Fixed parameter parsing errors when using function expressions as parameters in Molang custom function calls
- Fixed incorrect Y-coordinate component handling in Molang functions for block information retrieval
- Fixed ZIP file reading failures under specific conditions
- Fixed compatibility issues with TaCZ Tweaks mod
## Performance Optimizations
- Optimized animation update frequency for distant and invisible entities to reduce performance consumption
- Improved player attribute synchronization mechanism, effectively reducing server network bandwidth usage
- Added new server configuration option: Low Bandwidth Mode
- Automatic cleanup of invalid player roaming data on server to prevent excessive NBT data
- Added more memory safety features
- Changed client texture compression format to WebP, significantly reducing memory usage
## New Features and Content Modifications
- Added support for Linux clients (Note: Client cannot run in virtual machine environments)
- Added support for Android clients
- Enhanced compatibility support for head-worn items
- Added compatibility for Simple Hat mod
- Improved entity matching mechanism for projectile and rideable entity models:
- Support for configuring multiple entity IDs
- Support for using entity tags for matching
- Added support for 7z compressed format models to resolve garbled text or reading failures with ZIP format
- Supports both model files and model packs
- When 7z compressed packages exceed 64MB, please disable "Solid Compression" and set "Solid Data Size" to no more than 64MB, then recompress
- Note: Larger solid data provides higher compression ratios but slower loading speeds
- Complete audio system reconstruction with the following improvements:
- Streaming decoding technology for significantly faster model loading and reduced memory usage
- Optimized Opus decoder for higher audio quality
- Added animation controller sound effect support
- Added audio loop playback functionality
- Refined audio playback context management for precise lifecycle control
- Maintains unchanged audio Molang function usage while significantly improving playback effects (see appendix documentation)
- Recommended to use YSM-specific Opus transcoding tool for optimal results
- Enhanced animation debugging features:
- Support for debugging remote players, maids, projectiles, and vehicle entities
- Use `Alt + B` key combination to debug entities pointed by mouse
- Added `/ysmclient debug <selector>` command for precise entity matching and debugging
- Added `/ysmclient molang execute <exp>` command to execute Molang expressions on currently debugged entities
- New Molang variable: `q.delta_time`
- Optimized hardcoded controller scaling frames, disabling initial transition animations
- Added model blacklist functionality to block loading of specified default models
- Configuration file location: `<Game Directory>/yes_steve_model/blacklist.txt` (file contains detailed instructions)
- Added scroll functionality to carousel configuration interface, supporting mouse wheel and button operations
- Added YSM rendering control functionality for individual players
- Command format: `/ysm model disable <Player ID> [true | false]`
- Added wine fox models: Little Wine Fox and Momo Wine Fox
- Added multiple sleeping animation effects for wine fox models (Creator: Little Momo)
## Android Platform Compatibility and Optimization
- Support for FCL, ZL, and ZL2 launchers on Android systems
- Displays upgrade prompts in-game when outdated launcher versions are detected
- Added multiple mobile adaptation optimizations:
- Optimized carousel configuration interface button sizes for improved mobile device operation experience
- Added quick access buttons in pause menu (ESC interface) for skin changing, carousel configuration, and paper doll configuration interfaces
- Enlarged control points in paper doll configuration interface for easier scaling, positioning, and rotation adjustments
- Added reset button and show/hide toggle options for paper doll configuration interface
- Optimized system resource usage during model loading on Android
- Improved thread scheduling algorithms for Android systems
- Fixed issue where carousel animations couldn't be interrupted properly after installing Touch Controller mod
- **Important Note**:
- YSM and Java use independent memory pools, which may have memory competition relationship
- Allocating excessive memory to Java may cause insufficient available memory for YSM, please configure memory allocation reasonably
- Models encrypted in ysm format from version 2.4.1 and earlier still use the legacy mechanism for hand animation playback logic
- Models encrypted in ysm format from versions 2.2.2 - 2.4.1 still use legacy rendering logic for 0-size UV
- New q.ground_speed moved to ysm.ground_speed2, restored legacy q.ground_speed
- Added button: Whether to prioritize displaying model ID, used to restore legacy model selection interface button name display
## Bug Fixes
- Fixed conflict with Vic's Point Blank mod
- Fixed error caused by non-existent directory when reloading models
- Fixed iris shadow anomalies
- Fixed some issues with default Sta Bo model
- Fixed debug interface text overlap issue
- Model switching interface can now properly retain parent directory page count
- Models encrypted in ysm format from version 2.4.1 and earlier still use the legacy mechanism for hand animation playback logic
- Models encrypted in ysm format from versions 2.2.2 - 2.4.1 still use legacy rendering logic for 0-size UV
- New q.ground_speed moved to ysm.ground_speed2, restored legacy q.ground_speed
- Added button: Whether to prioritize displaying model ID, used to restore legacy model selection interface button name display
## Bug Fixes
- Fixed conflict with Vic's Point Blank mod
- Fixed error caused by non-existent directory when reloading models
- Fixed iris shadow anomalies
- Fixed some issues with default Sta Bo model
- Fixed debug interface text overlap issue
- Model switching interface can now properly retain parent directory page count
- Models encrypted in ysm format from version 2.4.1 and earlier still use the legacy mechanism for hand animation playback logic
- Models encrypted in ysm format from versions 2.2.2 - 2.4.1 still use legacy rendering logic for 0-size UV
- New q.ground_speed moved to ysm.ground_speed2, restored legacy q.ground_speed
- Added button: Whether to prioritize displaying model ID, used to restore legacy model selection interface button name display
## Bug Fixes
- Fixed conflict with Vic's Point Blank mod
- Fixed error caused by non-existent directory when reloading models
- Fixed iris shadow anomalies
- Fixed some issues with default Sta Bo model
- Fixed debug interface text overlap issue
- Model switching interface can now properly retain parent directory page count
- Models encrypted in ysm format from version 2.4.1 and earlier still use the legacy mechanism for hand animation playback logic
- Models encrypted in ysm format from versions 2.2.2 - 2.4.1 still use legacy rendering logic for 0-size UV
- New q.ground_speed moved to ysm.ground_speed2, restored legacy q.ground_speed
- Added button: Whether to prioritize displaying model ID, used to restore legacy model selection interface button name display
## Bug Fixes
- Fixed conflict with Vic's Point Blank mod
- Fixed error caused by non-existent directory when reloading models
- Fixed iris shadow anomalies
- Fixed some issues with default Sta Bo model
- Fixed debug interface text overlap issue
- Model switching interface can now properly retain parent directory page count
- Optimized molang particle performance and improved random particle generation
- Added execution limits to particle generation, sound playing and other related molang to avoid abnormal multiple triggers
- These molang can now only be used in animation command keyframes, animation controller entry/exit sections, custom GUI and execute commands
- In multi-animation states of animation controllers, unapplied animations do not execute the above molang
- Lowered molang error log level, model reloading no longer generates extensive error logs in the background under normal circumstances
- Model synchronization mechanism optimization
- Changed from batch synchronization to real-time synchronization to avoid long waiting times for players
- Improved server-side model distribution order, prioritizing distribution of models based on proximity of surrounding players
- Optimized network congestion algorithm, initial model retrieval from server no longer occupies excessive bandwidth, preventing long unresponsive times or frequent disconnections when joining servers
- Changed client model mechanism to lazy loading, improving client model loading speed while avoiding impact on normal gameplay from bulk model loading
- Optimized model compression algorithm, transmitted model size can now be reduced by approximately 20%
- Added model synchronization information interface to view model sync and loading progress in real-time
- Used lazy loading cap to reduce client memory usage
## Mod Compatibility
- Completed compatibility with Superb Warfare 1.20.1 forge / 1.21.1 neoforge
- Fixed issue where parcool mod animations don't terminate in first-person view
- Compatible with Fabric versions of Touhou Little Maid, TACZ and SlashBlade
- When Better Combat is installed, hide head only when rendering model in scene, no longer affecting iris shadows, inventory, and other mod's additional rendering
- Fixed compatibility issues with Replay mod, now can properly use Replay mod to export videos with animations
- Added TOP and Jade information display, now can show the model pack being used by the targeted player
- Added animation support for Create 6.x version's chain behaviors
## Default Model Updates
- Built-in models moved to independent builtin directory
- Fixed TACZ Gatling gun animation error
- Improved fox animations, can now play random idle animations
- Improved fox ladder climbing animations
- Added new models: Astronaut Fox, Witch Fox, Shop Clerk Fox, Kung Fu Fox, Hanfu Fox
- Added New Year Hailuo and New Year Zhiban Fox models
- Added Sta Bo model
- Added default model boat, chest boat and minecart models
- Default models are now organized into subfolders for easier management and viewing
- Removed Qingluka's Alex model
- Fixed default controller model animations
## Bug Fixes
- Fixed issue where models appeared with all black textures after joining server due to incorrect texture culling
- Increased waiting time before reminding about uninstalled YSM on server to 60s, avoiding false "YSM version mismatch" messages due to packet loss or network congestion
- Fixed issue where server couldn't exit normally when shutting down
- Fixed issues caused by some mods loading remote player entity on server side
- Fixed world corruption caused by improper server-side fake player archery in some cases
- Fixed key input detection issues, now properly detects key combinations
- Fixed occasional division by zero crash when opening wheel settings
- Rendering fixes
- Adjusted renderer creation phase to avoid conflicts with other mods
- Properly handle animation updates during single-player game pause
- Model preview animations in GUI are no longer affected by player state
- Don't disable preview rotation in TextureButton (because preview animations don't play)
- Fixed abnormal offset in maid preview in maid model selection interface
- Added `gui_no_lighting` option to model manifest, can disable ambient lighting when displayed in GUI
- Fixed issue where model favorite flag was blocked by preview animation background
- Fixed GUI entities accidentally rendering name tags
- Fixed first-person arm turning black issue
- Fixed physics animation confusion in model selection interface and paper doll interface
## New Features
- On unsupported platforms or systems, disable mod functionality and send a prompt message instead of crashing the game
- Multi-language support: Model names, descriptions, author names, wheel buttons, and wheel names can now be localized through language files
- Enhanced model search functionality:
- Normal search covers model ID, name, text hints and author name
- @ prefix searches author only
- \# prefix searches folder only
- Subfolder categorized model design
- Model selection interface now displays subfolders in categories
- Subfolders support custom images and text
- First-person animation support
- First-person supports animations and animation controllers
- First-person can use main animation's roaming variables
- Projectile model replacement
- Can now replace any projectile model
- Supports custom animations and animation controllers
- When players throw projectiles, their roaming variables are copied to the projectile
- Rideable entity model replacement
- Can now replace any entity model that players ride
- Supports custom animations and animation controllers
- When players ride entities, their roaming variables are copied to the entity
- Added foreground and background image functionality to model selection interface
- Model interface tooltips now show detailed information when holding Shift
## Animation Fixes and Additions
- Fixed HOLD_ON_LAST_FRAME type animation issues, can now properly use HOLD_ON_LAST_FRAME animations
- Fixed issue where temporary default model had no animations when model wasn't fully loaded
- Fixed incorrect blending of transition animation rotation parameters in high-concurrency hardcoded animation controllers causing model twitching
- Fixed weighted scale blending behavior inconsistency with Blockbench
- Provided more detailed debug information for hardcoded animation controllers
- Fixed abnormal reset of swing and eating animations
- Rewrote animation ending transitions to allow smooth transitions of bone parameters between different animation controllers
- Changed all hand animations to file-controlled playback type
- Fixed various issues that may occur due to asynchronous animation updates crossing scopes
- Fixed roaming variable loss issue when player respawns
## Molang Syntax Fixes and Additions
- Added command completion for molang custom functions
- Fixed command completion for v.* variables
- Added array access functionality (read-only, cannot create)
- Fixed error when last expression in Molang ExecutionScope ends with ';'
- Allow molang parameterless functions to be called like variable access
- Added molang custom function and event subscription system (see wiki custom function chapter)
- Added molang sync active synchronization mechanism (see wiki custom function chapter)
- Fixed incorrect execution results of molang functions for getting block information
- Reduced range for getting surrounding block information (from r<=8 to r<=5, to avoid overpowered ore-tracking models)
- Fixed synchronization issues for fly state, potion effects, player experience level, hunger, health, and max health
- Improved roaming and server attribute synchronization mechanism
- Each model now has independent roaming variable storage location. Previously saved roaming variables won't be lost when switching models repeatedly
- Added molang event-based animation controllers
- Improved molang stack memory implementation
- Improved floating-point handling in molang operations
- Improved context management for first and second-order physics systems
- Fixed q.position_delta variable issues
- Increased update rate for q.yaw_speed variable to fix instability in ysm.input_vertical/horizontal
- Added molang function ysm.relative_block_name_any
- Modified y-coordinate calculation in block information molang functions to maintain consistency with previous versions
- Added curios-related molang
- Improved output information of molang dump function
- Molang for getting potion effects and enchantments can now accept multiple parameters
- Added ctrl.playing_extra_animation variable, true when wheel animations are playing
- Fixed ctrl.hold issues
- ysm.throwable_item item type projectile's item ID
- ysm.hooked_in entity ID hooked by fishing rod, empty string when none exists
- ysm.is_biting boolean value, whether fishing rod is biting
- ysm.in_shield_block_cooldown boolean value, true when player successfully blocks and is in block cooldown (default cooldown duration is 5 ticks)
- Added ysm.play_sound and related molang
- Added brightness-related molang
- Added ctrl.set_beginning_transition_length function to modify animation transition duration
- Added ysm.mouse and ysm.keyboard molang to detect mouse and keyboard input states
- Added molang variable ysm.time_delta
## Known Issues
- All maid roaming variables are invalid and cannot be persistently saved
- Maid statue animations only stay at the first frame and cannot play
- Models with vehicles will block first-person view
- Optimized molang particle performance and improved random particle generation
- Added execution limits to particle generation, sound playing and other related molang to avoid abnormal multiple triggers
- These molang can now only be used in animation command keyframes, animation controller entry/exit sections, custom GUI and execute commands
- In multi-animation states of animation controllers, unapplied animations do not execute the above molang
- Lowered molang error log level, model reloading no longer generates extensive error logs in the background under normal circumstances
- Model synchronization mechanism optimization
- Changed from batch synchronization to real-time synchronization to avoid long waiting times for players
- Improved server-side model distribution order, prioritizing distribution of models based on proximity of surrounding players
- Optimized network congestion algorithm, initial model retrieval from server no longer occupies excessive bandwidth, preventing long unresponsive times or frequent disconnections when joining servers
- Changed client model mechanism to lazy loading, improving client model loading speed while avoiding impact on normal gameplay from bulk model loading
- Optimized model compression algorithm, transmitted model size can now be reduced by approximately 20%
- Added model synchronization information interface to view model sync and loading progress in real-time
- Used lazy loading cap to reduce client memory usage
## Mod Compatibility
- Completed compatibility with Superb Warfare 1.20.1 forge / 1.21.1 neoforge
- Fixed issue where parcool mod animations don't terminate in first-person view
- Compatible with Fabric versions of Touhou Little Maid, TACZ and SlashBlade
- When Better Combat is installed, hide head only when rendering model in scene, no longer affecting iris shadows, inventory, and other mod's additional rendering
- Fixed compatibility issues with Replay mod, now can properly use Replay mod to export videos with animations
- Added TOP and Jade information display, now can show the model pack being used by the targeted player
- Added animation support for Create 6.x version's chain behaviors
## Default Model Updates
- Built-in models moved to independent builtin directory
- Fixed TACZ Gatling gun animation error
- Improved fox animations, can now play random idle animations
- Improved fox ladder climbing animations
- Added new models: Astronaut Fox, Witch Fox, Shop Clerk Fox, Kung Fu Fox, Hanfu Fox
- Added New Year Hailuo and New Year Zhiban Fox models
- Added Sta Bo model
- Added default model boat, chest boat and minecart models
- Default models are now organized into subfolders for easier management and viewing
- Removed Qingluka's Alex model
- Fixed default controller model animations
## Bug Fixes
- Fixed issue where models appeared with all black textures after joining server due to incorrect texture culling
- Increased waiting time before reminding about uninstalled YSM on server to 60s, avoiding false "YSM version mismatch" messages due to packet loss or network congestion
- Fixed issue where server couldn't exit normally when shutting down
- Fixed issues caused by some mods loading remote player entity on server side
- Fixed world corruption caused by improper server-side fake player archery in some cases
- Fixed key input detection issues, now properly detects key combinations
- Fixed occasional division by zero crash when opening wheel settings
- Rendering fixes
- Adjusted renderer creation phase to avoid conflicts with other mods
- Properly handle animation updates during single-player game pause
- Model preview animations in GUI are no longer affected by player state
- Don't disable preview rotation in TextureButton (because preview animations don't play)
- Fixed abnormal offset in maid preview in maid model selection interface
- Added `gui_no_lighting` option to model manifest, can disable ambient lighting when displayed in GUI
- Fixed issue where model favorite flag was blocked by preview animation background
- Fixed GUI entities accidentally rendering name tags
- Fixed first-person arm turning black issue
- Fixed physics animation confusion in model selection interface and paper doll interface
## New Features
- On unsupported platforms or systems, disable mod functionality and send a prompt message instead of crashing the game
- Multi-language support: Model names, descriptions, author names, wheel buttons, and wheel names can now be localized through language files
- Enhanced model search functionality:
- Normal search covers model ID, name, text hints and author name
- @ prefix searches author only
- \# prefix searches folder only
- Subfolder categorized model design
- Model selection interface now displays subfolders in categories
- Subfolders support custom images and text
- First-person animation support
- First-person supports animations and animation controllers
- First-person can use main animation's roaming variables
- Projectile model replacement
- Can now replace any projectile model
- Supports custom animations and animation controllers
- When players throw projectiles, their roaming variables are copied to the projectile
- Rideable entity model replacement
- Can now replace any entity model that players ride
- Supports custom animations and animation controllers
- When players ride entities, their roaming variables are copied to the entity
- Added foreground and background image functionality to model selection interface
- Model interface tooltips now show detailed information when holding Shift
## Animation Fixes and Additions
- Fixed HOLD_ON_LAST_FRAME type animation issues, can now properly use HOLD_ON_LAST_FRAME animations
- Fixed issue where temporary default model had no animations when model wasn't fully loaded
- Fixed incorrect blending of transition animation rotation parameters in high-concurrency hardcoded animation controllers causing model twitching
- Fixed weighted scale blending behavior inconsistency with Blockbench
- Provided more detailed debug information for hardcoded animation controllers
- Fixed abnormal reset of swing and eating animations
- Rewrote animation ending transitions to allow smooth transitions of bone parameters between different animation controllers
- Changed all hand animations to file-controlled playback type
- Fixed various issues that may occur due to asynchronous animation updates crossing scopes
- Fixed roaming variable loss issue when player respawns
## Molang Syntax Fixes and Additions
- Added command completion for molang custom functions
- Fixed command completion for v.* variables
- Added array access functionality (read-only, cannot create)
- Fixed error when last expression in Molang ExecutionScope ends with ';'
- Allow molang parameterless functions to be called like variable access
- Added molang custom function and event subscription system (see wiki custom function chapter)
- Added molang sync active synchronization mechanism (see wiki custom function chapter)
- Fixed incorrect execution results of molang functions for getting block information
- Reduced range for getting surrounding block information (from r<=8 to r<=5, to avoid overpowered ore-tracking models)
- Fixed synchronization issues for fly state, potion effects, player experience level, hunger, health, and max health
- Improved roaming and server attribute synchronization mechanism
- Each model now has independent roaming variable storage location. Previously saved roaming variables won't be lost when switching models repeatedly
- Added molang event-based animation controllers
- Improved molang stack memory implementation
- Improved floating-point handling in molang operations
- Improved context management for first and second-order physics systems
- Fixed q.position_delta variable issues
- Increased update rate for q.yaw_speed variable to fix instability in ysm.input_vertical/horizontal
- Added molang function ysm.relative_block_name_any
- Modified y-coordinate calculation in block information molang functions to maintain consistency with previous versions
- Added curios-related molang
- Improved output information of molang dump function
- Molang for getting potion effects and enchantments can now accept multiple parameters
- Added ctrl.playing_extra_animation variable, true when wheel animations are playing
- Fixed ctrl.hold issues
- ysm.throwable_item item type projectile's item ID
- ysm.hooked_in entity ID hooked by fishing rod, empty string when none exists
- ysm.is_biting boolean value, whether fishing rod is biting
- ysm.in_shield_block_cooldown boolean value, true when player successfully blocks and is in block cooldown (default cooldown duration is 5 ticks)
- Added ysm.play_sound and related molang
- Added brightness-related molang
- Added ctrl.set_beginning_transition_length function to modify animation transition duration
- Added ysm.mouse and ysm.keyboard molang to detect mouse and keyboard input states
- Added molang variable ysm.time_delta
## Known Issues
- All maid roaming variables are invalid and cannot be persistently saved
- Maid statue animations only stay at the first frame and cannot play
- Models with vehicles will block first-person view
- Optimized molang particle performance and improved random particle generation
- Added execution limits to particle generation, sound playing and other related molang to avoid abnormal multiple triggers
- These molang can now only be used in animation command keyframes, animation controller entry/exit sections, custom GUI and execute commands
- In multi-animation states of animation controllers, unapplied animations do not execute the above molang
- Lowered molang error log level, model reloading no longer generates extensive error logs in the background under normal circumstances
- Model synchronization mechanism optimization
- Changed from batch synchronization to real-time synchronization to avoid long waiting times for players
- Improved server-side model distribution order, prioritizing distribution of models based on proximity of surrounding players
- Optimized network congestion algorithm, initial model retrieval from server no longer occupies excessive bandwidth, preventing long unresponsive times or frequent disconnections when joining servers
- Changed client model mechanism to lazy loading, improving client model loading speed while avoiding impact on normal gameplay from bulk model loading
- Optimized model compression algorithm, transmitted model size can now be reduced by approximately 20%
- Added model synchronization information interface to view model sync and loading progress in real-time
- Used lazy loading cap to reduce client memory usage
## Mod Compatibility
- Completed compatibility with Superb Warfare 1.20.1 forge / 1.21.1 neoforge
- Fixed issue where parcool mod animations don't terminate in first-person view
- Compatible with Fabric versions of Touhou Little Maid, TACZ and SlashBlade
- When Better Combat is installed, hide head only when rendering model in scene, no longer affecting iris shadows, inventory, and other mod's additional rendering
- Fixed compatibility issues with Replay mod, now can properly use Replay mod to export videos with animations
- Added TOP and Jade information display, now can show the model pack being used by the targeted player
- Added animation support for Create 6.x version's chain behaviors
## Default Model Updates
- Built-in models moved to independent builtin directory
- Fixed TACZ Gatling gun animation error
- Improved fox animations, can now play random idle animations
- Improved fox ladder climbing animations
- Added new models: Astronaut Fox, Witch Fox, Shop Clerk Fox, Kung Fu Fox, Hanfu Fox
- Added New Year Hailuo and New Year Zhiban Fox models
- Added Sta Bo model
- Added default model boat, chest boat and minecart models
- Default models are now organized into subfolders for easier management and viewing
- Removed Qingluka's Alex model
- Fixed default controller model animations
## Bug Fixes
- Fixed issue where models appeared with all black textures after joining server due to incorrect texture culling
- Increased waiting time before reminding about uninstalled YSM on server to 60s, avoiding false "YSM version mismatch" messages due to packet loss or network congestion
- Fixed issue where server couldn't exit normally when shutting down
- Fixed issues caused by some mods loading remote player entity on server side
- Fixed world corruption caused by improper server-side fake player archery in some cases
- Fixed key input detection issues, now properly detects key combinations
- Fixed occasional division by zero crash when opening wheel settings
- Rendering fixes
- Adjusted renderer creation phase to avoid conflicts with other mods
- Properly handle animation updates during single-player game pause
- Model preview animations in GUI are no longer affected by player state
- Don't disable preview rotation in TextureButton (because preview animations don't play)
- Fixed abnormal offset in maid preview in maid model selection interface
- Added `gui_no_lighting` option to model manifest, can disable ambient lighting when displayed in GUI
- Fixed issue where model favorite flag was blocked by preview animation background
- Fixed GUI entities accidentally rendering name tags
- Fixed first-person arm turning black issue
- Fixed physics animation confusion in model selection interface and paper doll interface
## New Features
- On unsupported platforms or systems, disable mod functionality and send a prompt message instead of crashing the game
- Multi-language support: Model names, descriptions, author names, wheel buttons, and wheel names can now be localized through language files
- Enhanced model search functionality:
- Normal search covers model ID, name, text hints and author name
- @ prefix searches author only
- \# prefix searches folder only
- Subfolder categorized model design
- Model selection interface now displays subfolders in categories
- Subfolders support custom images and text
- First-person animation support
- First-person supports animations and animation controllers
- First-person can use main animation's roaming variables
- Projectile model replacement
- Can now replace any projectile model
- Supports custom animations and animation controllers
- When players throw projectiles, their roaming variables are copied to the projectile
- Rideable entity model replacement
- Can now replace any entity model that players ride
- Supports custom animations and animation controllers
- When players ride entities, their roaming variables are copied to the entity
- Added foreground and background image functionality to model selection interface
- Model interface tooltips now show detailed information when holding Shift
## Animation Fixes and Additions
- Fixed HOLD_ON_LAST_FRAME type animation issues, can now properly use HOLD_ON_LAST_FRAME animations
- Fixed issue where temporary default model had no animations when model wasn't fully loaded
- Fixed incorrect blending of transition animation rotation parameters in high-concurrency hardcoded animation controllers causing model twitching
- Fixed weighted scale blending behavior inconsistency with Blockbench
- Provided more detailed debug information for hardcoded animation controllers
- Fixed abnormal reset of swing and eating animations
- Rewrote animation ending transitions to allow smooth transitions of bone parameters between different animation controllers
- Changed all hand animations to file-controlled playback type
- Fixed various issues that may occur due to asynchronous animation updates crossing scopes
- Fixed roaming variable loss issue when player respawns
## Molang Syntax Fixes and Additions
- Added command completion for molang custom functions
- Fixed command completion for v.* variables
- Added array access functionality (read-only, cannot create)
- Fixed error when last expression in Molang ExecutionScope ends with ';'
- Allow molang parameterless functions to be called like variable access
- Added molang custom function and event subscription system (see wiki custom function chapter)
- Added molang sync active synchronization mechanism (see wiki custom function chapter)
- Fixed incorrect execution results of molang functions for getting block information
- Reduced range for getting surrounding block information (from r<=8 to r<=5, to avoid overpowered ore-tracking models)
- Fixed synchronization issues for fly state, potion effects, player experience level, hunger, health, and max health
- Improved roaming and server attribute synchronization mechanism
- Each model now has independent roaming variable storage location. Previously saved roaming variables won't be lost when switching models repeatedly
- Added molang event-based animation controllers
- Improved molang stack memory implementation
- Improved floating-point handling in molang operations
- Improved context management for first and second-order physics systems
- Fixed q.position_delta variable issues
- Increased update rate for q.yaw_speed variable to fix instability in ysm.input_vertical/horizontal
- Added molang function ysm.relative_block_name_any
- Modified y-coordinate calculation in block information molang functions to maintain consistency with previous versions
- Added curios-related molang
- Improved output information of molang dump function
- Molang for getting potion effects and enchantments can now accept multiple parameters
- Added ctrl.playing_extra_animation variable, true when wheel animations are playing
- Fixed ctrl.hold issues
- ysm.throwable_item item type projectile's item ID
- ysm.hooked_in entity ID hooked by fishing rod, empty string when none exists
- ysm.is_biting boolean value, whether fishing rod is biting
- ysm.in_shield_block_cooldown boolean value, true when player successfully blocks and is in block cooldown (default cooldown duration is 5 ticks)
- Added ysm.play_sound and related molang
- Added brightness-related molang
- Added ctrl.set_beginning_transition_length function to modify animation transition duration
- Added ysm.mouse and ysm.keyboard molang to detect mouse and keyboard input states
- Added molang variable ysm.time_delta
## Known Issues
- All maid roaming variables are invalid and cannot be persistently saved
- Maid statue animations only stay at the first frame and cannot play
- Models with vehicles will block first-person view
- Optimized molang particle performance and improved random particle generation
- Added execution limits to particle generation, sound playing and other related molang to avoid abnormal multiple triggers
- These molang can now only be used in animation command keyframes, animation controller entry/exit sections, custom GUI and execute commands
- In multi-animation states of animation controllers, unapplied animations do not execute the above molang
- Lowered molang error log level, model reloading no longer generates extensive error logs in the background under normal circumstances
- Model synchronization mechanism optimization
- Changed from batch synchronization to real-time synchronization to avoid long waiting times for players
- Improved server-side model distribution order, prioritizing distribution of models based on proximity of surrounding players
- Optimized network congestion algorithm, initial model retrieval from server no longer occupies excessive bandwidth, preventing long unresponsive times or frequent disconnections when joining servers
- Changed client model mechanism to lazy loading, improving client model loading speed while avoiding impact on normal gameplay from bulk model loading
- Optimized model compression algorithm, transmitted model size can now be reduced by approximately 20%
- Added model synchronization information interface to view model sync and loading progress in real-time
- Used lazy loading cap to reduce client memory usage
## Mod Compatibility
- Completed compatibility with Superb Warfare 1.20.1 forge / 1.21.1 neoforge
- Fixed issue where parcool mod animations don't terminate in first-person view
- Compatible with Fabric versions of Touhou Little Maid, TACZ and SlashBlade
- When Better Combat is installed, hide head only when rendering model in scene, no longer affecting iris shadows, inventory, and other mod's additional rendering
- Fixed compatibility issues with Replay mod, now can properly use Replay mod to export videos with animations
- Added TOP and Jade information display, now can show the model pack being used by the targeted player
- Added animation support for Create 6.x version's chain behaviors
## Default Model Updates
- Built-in models moved to independent builtin directory
- Fixed TACZ Gatling gun animation error
- Improved fox animations, can now play random idle animations
- Improved fox ladder climbing animations
- Added new models: Astronaut Fox, Witch Fox, Shop Clerk Fox, Kung Fu Fox, Hanfu Fox
- Added New Year Hailuo and New Year Zhiban Fox models
- Added Sta Bo model
- Added default model boat, chest boat and minecart models
- Default models are now organized into subfolders for easier management and viewing
- Removed Qingluka's Alex model
- Fixed default controller model animations
## Bug Fixes
- Fixed issue where models appeared with all black textures after joining server due to incorrect texture culling
- Increased waiting time before reminding about uninstalled YSM on server to 60s, avoiding false "YSM version mismatch" messages due to packet loss or network congestion
- Fixed issue where server couldn't exit normally when shutting down
- Fixed issues caused by some mods loading remote player entity on server side
- Fixed world corruption caused by improper server-side fake player archery in some cases
- Fixed key input detection issues, now properly detects key combinations
- Fixed occasional division by zero crash when opening wheel settings
- Rendering fixes
- Adjusted renderer creation phase to avoid conflicts with other mods
- Properly handle animation updates during single-player game pause
- Model preview animations in GUI are no longer affected by player state
- Don't disable preview rotation in TextureButton (because preview animations don't play)
- Fixed abnormal offset in maid preview in maid model selection interface
- Added `gui_no_lighting` option to model manifest, can disable ambient lighting when displayed in GUI
- Fixed issue where model favorite flag was blocked by preview animation background
- Fixed GUI entities accidentally rendering name tags
- Fixed first-person arm turning black issue
- Fixed physics animation confusion in model selection interface and paper doll interface
## New Features
- On unsupported platforms or systems, disable mod functionality and send a prompt message instead of crashing the game
- Multi-language support: Model names, descriptions, author names, wheel buttons, and wheel names can now be localized through language files
- Enhanced model search functionality:
- Normal search covers model ID, name, text hints and author name
- @ prefix searches author only
- \# prefix searches folder only
- Subfolder categorized model design
- Model selection interface now displays subfolders in categories
- Subfolders support custom images and text
- First-person animation support
- First-person supports animations and animation controllers
- First-person can use main animation's roaming variables
- Projectile model replacement
- Can now replace any projectile model
- Supports custom animations and animation controllers
- When players throw projectiles, their roaming variables are copied to the projectile
- Rideable entity model replacement
- Can now replace any entity model that players ride
- Supports custom animations and animation controllers
- When players ride entities, their roaming variables are copied to the entity
- Added foreground and background image functionality to model selection interface
- Model interface tooltips now show detailed information when holding Shift
## Animation Fixes and Additions
- Fixed HOLD_ON_LAST_FRAME type animation issues, can now properly use HOLD_ON_LAST_FRAME animations
- Fixed issue where temporary default model had no animations when model wasn't fully loaded
- Fixed incorrect blending of transition animation rotation parameters in high-concurrency hardcoded animation controllers causing model twitching
- Fixed weighted scale blending behavior inconsistency with Blockbench
- Provided more detailed debug information for hardcoded animation controllers
- Fixed abnormal reset of swing and eating animations
- Rewrote animation ending transitions to allow smooth transitions of bone parameters between different animation controllers
- Changed all hand animations to file-controlled playback type
- Fixed various issues that may occur due to asynchronous animation updates crossing scopes
- Fixed roaming variable loss issue when player respawns
## Molang Syntax Fixes and Additions
- Added command completion for molang custom functions
- Fixed command completion for v.* variables
- Added array access functionality (read-only, cannot create)
- Fixed error when last expression in Molang ExecutionScope ends with ';'
- Allow molang parameterless functions to be called like variable access
- Added molang custom function and event subscription system (see wiki custom function chapter)
- Added molang sync active synchronization mechanism (see wiki custom function chapter)
- Fixed incorrect execution results of molang functions for getting block information
- Reduced range for getting surrounding block information (from r<=8 to r<=5, to avoid overpowered ore-tracking models)
- Fixed synchronization issues for fly state, potion effects, player experience level, hunger, health, and max health
- Improved roaming and server attribute synchronization mechanism
- Each model now has independent roaming variable storage location. Previously saved roaming variables won't be lost when switching models repeatedly
- Added molang event-based animation controllers
- Improved molang stack memory implementation
- Improved floating-point handling in molang operations
- Improved context management for first and second-order physics systems
- Fixed q.position_delta variable issues
- Increased update rate for q.yaw_speed variable to fix instability in ysm.input_vertical/horizontal
- Added molang function ysm.relative_block_name_any
- Modified y-coordinate calculation in block information molang functions to maintain consistency with previous versions
- Added curios-related molang
- Improved output information of molang dump function
- Molang for getting potion effects and enchantments can now accept multiple parameters
- Added ctrl.playing_extra_animation variable, true when wheel animations are playing
- Fixed ctrl.hold issues
- ysm.throwable_item item type projectile's item ID
- ysm.hooked_in entity ID hooked by fishing rod, empty string when none exists
- ysm.is_biting boolean value, whether fishing rod is biting
- ysm.in_shield_block_cooldown boolean value, true when player successfully blocks and is in block cooldown (default cooldown duration is 5 ticks)
- Added ysm.play_sound and related molang
- Added brightness-related molang
- Added ctrl.set_beginning_transition_length function to modify animation transition duration
- Added ysm.mouse and ysm.keyboard molang to detect mouse and keyboard input states
- Added molang variable ysm.time_delta
## Known Issues
- All maid roaming variables are invalid and cannot be persistently saved
- Maid statue animations only stay at the first frame and cannot play
- Models with vehicles will block first-person view
- Fixed the bug that Forge 1.18.2 could not open the maid skin interface
- Fixed the maid rendering bug. Now there will be no memory leak when using Forge 1.18.2-1.20.1 to render maids, statues, and figures, which greatly improves the frame rate
- Added function to switch the rendering of the sophisticated backpack
- Added molang for the sophisticated backpack: `ctrl.has_sophisticated_backpack`, when the sophisticated backpack is displayed, this variable returns true
- Forge 1.18.2-1.20.1 restores the old ogg file
- Fixed some ctrl variables to ensure that they are exactly the same as the main animation playback conditions
- Cleaned up redundant network packets
- Fixed the bug that Forge 1.18.2 could not open the maid skin interface
- Fixed the maid rendering bug. Now there will be no memory leak when using Forge 1.18.2-1.20.1 to render maids, statues, and figures, which greatly improves the frame rate
- Added function to switch the rendering of the sophisticated backpack
- Added molang for the sophisticated backpack: `ctrl.has_sophisticated_backpack`, when the sophisticated backpack is displayed, this variable returns true
- Forge 1.18.2-1.20.1 restores the old ogg file
- Fixed some ctrl variables to ensure that they are exactly the same as the main animation playback conditions
- Cleaned up redundant network packets
- Fixed the bug that Forge 1.18.2 could not open the maid skin interface
- Fixed the maid rendering bug. Now there will be no memory leak when using Forge 1.18.2-1.20.1 to render maids, statues, and figures, which greatly improves the frame rate
- Added function to switch the rendering of the sophisticated backpack
- Added molang for the sophisticated backpack: `ctrl.has_sophisticated_backpack`, when the sophisticated backpack is displayed, this variable returns true
- Forge 1.18.2-1.20.1 restores the old ogg file
- Fixed some ctrl variables to ensure that they are exactly the same as the main animation playback conditions
- Cleaned up redundant network packets
- Fixed the bug that Forge 1.18.2 could not open the maid skin interface
- Fixed the maid rendering bug. Now there will be no memory leak when using Forge 1.18.2-1.20.1 to render maids, statues, and figures, which greatly improves the frame rate
- Added function to switch the rendering of the sophisticated backpack
- Added molang for the sophisticated backpack: `ctrl.has_sophisticated_backpack`, when the sophisticated backpack is displayed, this variable returns true
- Forge 1.18.2-1.20.1 restores the old ogg file
- Fixed some ctrl variables to ensure that they are exactly the same as the main animation playback conditions
- Cleaned up redundant network packets
- Fixed the bug that Forge 1.18.2 could not open the maid skin interface
- Fixed the maid rendering bug. Now there will be no memory leak when using Forge 1.18.2-1.20.1 to render maids, statues, and figures, which greatly improves the frame rate
- Added function to switch the rendering of the sophisticated backpack
- Added molang for the sophisticated backpack: `ctrl.has_sophisticated_backpack`, when the sophisticated backpack is displayed, this variable returns true
- Forge 1.18.2-1.20.1 restores the old ogg file
- Fixed some ctrl variables to ensure that they are exactly the same as the main animation playback conditions
- Cleaned up redundant network packets
- Fixed the bug that Forge 1.18.2 could not open the maid skin interface
- Fixed the maid rendering bug. Now there will be no memory leak when using Forge 1.18.2-1.20.1 to render maids, statues, and figures, which greatly improves the frame rate
- Added function to switch the rendering of the sophisticated backpack
- Added molang for the sophisticated backpack: `ctrl.has_sophisticated_backpack`, when the sophisticated backpack is displayed, this variable returns true
- Forge 1.18.2-1.20.1 restores the old ogg file
- Fixed some ctrl variables to ensure that they are exactly the same as the main animation playback conditions
- Cleaned up redundant network packets
- Fixed the bug that Forge 1.18.2 could not open the maid skin interface
- Fixed the maid rendering bug. Now there will be no memory leak when using Forge 1.18.2-1.20.1 to render maids, statues, and figures, which greatly improves the frame rate
- Added function to switch the rendering of the sophisticated backpack
- Added molang for the sophisticated backpack: `ctrl.has_sophisticated_backpack`, when the sophisticated backpack is displayed, this variable returns true
- Forge 1.18.2-1.20.1 restores the old ogg file
- Fixed some ctrl variables to ensure that they are exactly the same as the main animation playback conditions
- Cleaned up redundant network packets
- Fixed the bug that Forge 1.18.2 could not open the maid skin interface
- Fixed the maid rendering bug. Now there will be no memory leak when using Forge 1.18.2-1.20.1 to render maids, statues, and figures, which greatly improves the frame rate
- Added function to switch the rendering of the sophisticated backpack
- Added molang for the sophisticated backpack: `ctrl.has_sophisticated_backpack`, when the sophisticated backpack is displayed, this variable returns true
- Forge 1.18.2-1.20.1 restores the old ogg file
- Fixed some ctrl variables to ensure that they are exactly the same as the main animation playback conditions
- Cleaned up redundant network packets
- Fixed the bug that Forge 1.18.2 could not open the maid skin interface
- Fixed the maid rendering bug. Now there will be no memory leak when using Forge 1.18.2-1.20.1 to render maids, statues, and figures, which greatly improves the frame rate
- Added function to switch the rendering of the sophisticated backpack
- Added molang for the sophisticated backpack: `ctrl.has_sophisticated_backpack`, when the sophisticated backpack is displayed, this variable returns true
- Forge 1.18.2-1.20.1 restores the old ogg file
- Fixed some ctrl variables to ensure that they are exactly the same as the main animation playback conditions
- Cleaned up redundant network packets
- Fixed the bug that Forge 1.18.2 could not open the maid skin interface
- Fixed the maid rendering bug. Now there will be no memory leak when using Forge 1.18.2-1.20.1 to render maids, statues, and figures, which greatly improves the frame rate
- Added function to switch the rendering of the sophisticated backpack
- Added molang for the sophisticated backpack: `ctrl.has_sophisticated_backpack`, when the sophisticated backpack is displayed, this variable returns true
- Forge 1.18.2-1.20.1 restores the old ogg file
- Fixed some ctrl variables to ensure that they are exactly the same as the main animation playback conditions
- Cleaned up redundant network packets
- Fixed the bug that Forge 1.18.2 could not open the maid skin interface
- Fixed the maid rendering bug. Now there will be no memory leak when using Forge 1.18.2-1.20.1 to render maids, statues, and figures, which greatly improves the frame rate
- Added function to switch the rendering of the sophisticated backpack
- Added molang for the sophisticated backpack: `ctrl.has_sophisticated_backpack`, when the sophisticated backpack is displayed, this variable returns true
- Forge 1.18.2-1.20.1 restores the old ogg file
- Fixed some ctrl variables to ensure that they are exactly the same as the main animation playback conditions
- Cleaned up redundant network packets
- Fixed an issue where clients without YSM installed could not enter the server.
- Fixed an issue with unplayed animation sound effects in multiple animation states.
- Corrected a problem where buttons were not recognizing boolean values in the custom configuration for the roulette animation.
- In animation control, scaling animation blending is now multiplicative instead of additive (aligning with Bedrock Edition mechanics).
- Modified the second-order animation calculation mechanism, allowing second-order animations to play correctly at very low frame rates.
- Audio is now forced to play in mono (only supports Forge 1.21/1.20/1.19/1.18).
- Fixed a bug where audio would not stop in certain situations.
- Attempted to fix a bug where the first frame would be blank when using or swinging animations.
## Maid Rendering Compatibility
- Added compatibility for the maid mod; now version 1.2.0 of the maid mod can directly call YSM rendering, requiring both mods to be updated.
- In creative mode, right-clicking on a statue or garage kit with a gohei allows you to copy your model onto the statue or garage kit.
- New `tlm.animation.json` file added, including ten new maid-related animations:
- New animations: `broom`, `statue`, `garage_kit`.
- Supports Z key roulette animations.
- Supports multi-material switching.
- Supports roaming variables.
- Supports being made into statues or garage kits.
- Wine fox maids now produce particles and music when playing the piano from the maid mod.
- New maid-related Molang variables added:
- `ysm.entity_type`: returns player and maid.
- `ysm.is_player`: boolean value.
- `ysm.is_maid`: boolean value.
- `tlm.favorability_point`: favorability points, 0-384.
- `tlm.favorability_level`: favorability level: 0-3.
- `tlm.task_id`: work mode ID, string.
- `tlm.schedule`: work schedule, day, night, all (day shift, night shift, full-time).
- `tlm.activity`: activities such as work, idle, reset (working, off-duty, sleeping).
- `tlm.gomoku_win_count`: total rounds won in Gomoku.
- `tlm.gomoku_rank`: Gomoku rank, 1-4 (no 0).
- `tlm.game_statue`: game status, win, lost, empty string.
- `tlm.backpack_type`: backpack ID.
- `tlm.is_entity`: render maid entity.
- `tlm.is_statue`: render statue.
- `tlm.is_garage_kit`: render garage kit.
- `tlm.show_item`: item ID for the decoration slot.
## New Content
- Completed slash blade animations; now supports various Japanese-style slash blade.
- Added extra main and off-hand positioning group functionality; simply add numbers 2-8 after the old main and off-hand positioning groups to use them.
- Roaming variable limit modified; quantity increased to 64, name limit increased to 32 characters.
- Optimized animation debugging functionality:
- You can now use `/ysmclient watch var` command for quick Molang debugging.
- Commands will automatically complete available variables now.
- Animation state machines can now be debugged with `/ysmclient watch state`.
- Compatible rendering with the exquisite backpack mod; requires adding BackpackLocator positioning group to display.
- Added Opus audio decoding functionality; using Opus audio can significantly reduce file size (only supports Forge 1.21/1.20/1.19/1.18).
- New Perlin noise function added: `ysm.perlin_noise(seed, x, y, z)`, where y and z can be omitted.
- Added Molang for particle generation:
- `ysm.particle('id', x, y, z, dx, dy, dz, speed, count, life_time)`.
- `ysm.abs_particle('id', x, y, z, dx, dy, dz, speed, count, life_time)`.
- Eight new blank controllers added:
- player.pre_main
- player.post_main
- player.pre_hold
- player.post_hold
- player.pre_use
- player.post_use
- player.pre_swing
- player.post_swing
- New Molang:
- `ysm.mainhand_charged_crossbow`
- `ysm.offhand_charged_crossbow`
- `ysm.is_fishing`
- Wine fox has a new white outfit option.
- New Spring Wine Fox added.
- Fixed an issue where clients without YSM installed could not enter the server.
- Fixed an issue with unplayed animation sound effects in multiple animation states.
- Corrected a problem where buttons were not recognizing boolean values in the custom configuration for the roulette animation.
- In animation control, scaling animation blending is now multiplicative instead of additive (aligning with Bedrock Edition mechanics).
- Modified the second-order animation calculation mechanism, allowing second-order animations to play correctly at very low frame rates.
- Audio is now forced to play in mono (only supports Forge 1.21/1.20/1.19/1.18).
- Fixed a bug where audio would not stop in certain situations.
- Attempted to fix a bug where the first frame would be blank when using or swinging animations.
## Maid Rendering Compatibility
- Added compatibility for the maid mod; now version 1.2.0 of the maid mod can directly call YSM rendering, requiring both mods to be updated.
- In creative mode, right-clicking on a statue or garage kit with a gohei allows you to copy your model onto the statue or garage kit.
- New `tlm.animation.json` file added, including ten new maid-related animations:
- New animations: `broom`, `statue`, `garage_kit`.
- Supports Z key roulette animations.
- Supports multi-material switching.
- Supports roaming variables.
- Supports being made into statues or garage kits.
- Wine fox maids now produce particles and music when playing the piano from the maid mod.
- New maid-related Molang variables added:
- `ysm.entity_type`: returns player and maid.
- `ysm.is_player`: boolean value.
- `ysm.is_maid`: boolean value.
- `tlm.favorability_point`: favorability points, 0-384.
- `tlm.favorability_level`: favorability level: 0-3.
- `tlm.task_id`: work mode ID, string.
- `tlm.schedule`: work schedule, day, night, all (day shift, night shift, full-time).
- `tlm.activity`: activities such as work, idle, reset (working, off-duty, sleeping).
- `tlm.gomoku_win_count`: total rounds won in Gomoku.
- `tlm.gomoku_rank`: Gomoku rank, 1-4 (no 0).
- `tlm.game_statue`: game status, win, lost, empty string.
- `tlm.backpack_type`: backpack ID.
- `tlm.is_entity`: render maid entity.
- `tlm.is_statue`: render statue.
- `tlm.is_garage_kit`: render garage kit.
- `tlm.show_item`: item ID for the decoration slot.
## New Content
- Completed slash blade animations; now supports various Japanese-style slash blade.
- Added extra main and off-hand positioning group functionality; simply add numbers 2-8 after the old main and off-hand positioning groups to use them.
- Roaming variable limit modified; quantity increased to 64, name limit increased to 32 characters.
- Optimized animation debugging functionality:
- You can now use `/ysmclient watch var` command for quick Molang debugging.
- Commands will automatically complete available variables now.
- Animation state machines can now be debugged with `/ysmclient watch state`.
- Compatible rendering with the exquisite backpack mod; requires adding BackpackLocator positioning group to display.
- Added Opus audio decoding functionality; using Opus audio can significantly reduce file size (only supports Forge 1.21/1.20/1.19/1.18).
- New Perlin noise function added: `ysm.perlin_noise(seed, x, y, z)`, where y and z can be omitted.
- Added Molang for particle generation:
- `ysm.particle('id', x, y, z, dx, dy, dz, speed, count, life_time)`.
- `ysm.abs_particle('id', x, y, z, dx, dy, dz, speed, count, life_time)`.
- Eight new blank controllers added:
- player.pre_main
- player.post_main
- player.pre_hold
- player.post_hold
- player.pre_use
- player.post_use
- player.pre_swing
- player.post_swing
- New Molang:
- `ysm.mainhand_charged_crossbow`
- `ysm.offhand_charged_crossbow`
- `ysm.is_fishing`
- Wine fox has a new white outfit option.
- New Spring Wine Fox added.
- Fixed an issue where clients without YSM installed could not enter the server.
- Fixed an issue with unplayed animation sound effects in multiple animation states.
- Corrected a problem where buttons were not recognizing boolean values in the custom configuration for the roulette animation.
- In animation control, scaling animation blending is now multiplicative instead of additive (aligning with Bedrock Edition mechanics).
- Modified the second-order animation calculation mechanism, allowing second-order animations to play correctly at very low frame rates.
- Audio is now forced to play in mono (only supports Forge 1.21/1.20/1.19/1.18).
- Fixed a bug where audio would not stop in certain situations.
- Attempted to fix a bug where the first frame would be blank when using or swinging animations.
## Maid Rendering Compatibility
- Added compatibility for the maid mod; now version 1.2.0 of the maid mod can directly call YSM rendering, requiring both mods to be updated.
- In creative mode, right-clicking on a statue or garage kit with a gohei allows you to copy your model onto the statue or garage kit.
- New `tlm.animation.json` file added, including ten new maid-related animations:
- New animations: `broom`, `statue`, `garage_kit`.
- Supports Z key roulette animations.
- Supports multi-material switching.
- Supports roaming variables.
- Supports being made into statues or garage kits.
- Wine fox maids now produce particles and music when playing the piano from the maid mod.
- New maid-related Molang variables added:
- `ysm.entity_type`: returns player and maid.
- `ysm.is_player`: boolean value.
- `ysm.is_maid`: boolean value.
- `tlm.favorability_point`: favorability points, 0-384.
- `tlm.favorability_level`: favorability level: 0-3.
- `tlm.task_id`: work mode ID, string.
- `tlm.schedule`: work schedule, day, night, all (day shift, night shift, full-time).
- `tlm.activity`: activities such as work, idle, reset (working, off-duty, sleeping).
- `tlm.gomoku_win_count`: total rounds won in Gomoku.
- `tlm.gomoku_rank`: Gomoku rank, 1-4 (no 0).
- `tlm.game_statue`: game status, win, lost, empty string.
- `tlm.backpack_type`: backpack ID.
- `tlm.is_entity`: render maid entity.
- `tlm.is_statue`: render statue.
- `tlm.is_garage_kit`: render garage kit.
- `tlm.show_item`: item ID for the decoration slot.
## New Content
- Completed slash blade animations; now supports various Japanese-style slash blade.
- Added extra main and off-hand positioning group functionality; simply add numbers 2-8 after the old main and off-hand positioning groups to use them.
- Roaming variable limit modified; quantity increased to 64, name limit increased to 32 characters.
- Optimized animation debugging functionality:
- You can now use `/ysmclient watch var` command for quick Molang debugging.
- Commands will automatically complete available variables now.
- Animation state machines can now be debugged with `/ysmclient watch state`.
- Compatible rendering with the exquisite backpack mod; requires adding BackpackLocator positioning group to display.
- Added Opus audio decoding functionality; using Opus audio can significantly reduce file size (only supports Forge 1.21/1.20/1.19/1.18).
- New Perlin noise function added: `ysm.perlin_noise(seed, x, y, z)`, where y and z can be omitted.
- Added Molang for particle generation:
- `ysm.particle('id', x, y, z, dx, dy, dz, speed, count, life_time)`.
- `ysm.abs_particle('id', x, y, z, dx, dy, dz, speed, count, life_time)`.
- Eight new blank controllers added:
- player.pre_main
- player.post_main
- player.pre_hold
- player.post_hold
- player.pre_use
- player.post_use
- player.pre_swing
- player.post_swing
- New Molang:
- `ysm.mainhand_charged_crossbow`
- `ysm.offhand_charged_crossbow`
- `ysm.is_fishing`
- Wine fox has a new white outfit option.
- New Spring Wine Fox added.
- Fixed an issue where clients without YSM installed could not enter the server.
- Fixed an issue with unplayed animation sound effects in multiple animation states.
- Corrected a problem where buttons were not recognizing boolean values in the custom configuration for the roulette animation.
- In animation control, scaling animation blending is now multiplicative instead of additive (aligning with Bedrock Edition mechanics).
- Modified the second-order animation calculation mechanism, allowing second-order animations to play correctly at very low frame rates.
- Audio is now forced to play in mono (only supports Forge 1.21/1.20/1.19/1.18).
- Fixed a bug where audio would not stop in certain situations.
- Attempted to fix a bug where the first frame would be blank when using or swinging animations.
## Maid Rendering Compatibility
- Added compatibility for the maid mod; now version 1.2.0 of the maid mod can directly call YSM rendering, requiring both mods to be updated.
- In creative mode, right-clicking on a statue or garage kit with a gohei allows you to copy your model onto the statue or garage kit.
- New `tlm.animation.json` file added, including ten new maid-related animations:
- New animations: `broom`, `statue`, `garage_kit`.
- Supports Z key roulette animations.
- Supports multi-material switching.
- Supports roaming variables.
- Supports being made into statues or garage kits.
- Wine fox maids now produce particles and music when playing the piano from the maid mod.
- New maid-related Molang variables added:
- `ysm.entity_type`: returns player and maid.
- `ysm.is_player`: boolean value.
- `ysm.is_maid`: boolean value.
- `tlm.favorability_point`: favorability points, 0-384.
- `tlm.favorability_level`: favorability level: 0-3.
- `tlm.task_id`: work mode ID, string.
- `tlm.schedule`: work schedule, day, night, all (day shift, night shift, full-time).
- `tlm.activity`: activities such as work, idle, reset (working, off-duty, sleeping).
- `tlm.gomoku_win_count`: total rounds won in Gomoku.
- `tlm.gomoku_rank`: Gomoku rank, 1-4 (no 0).
- `tlm.game_statue`: game status, win, lost, empty string.
- `tlm.backpack_type`: backpack ID.
- `tlm.is_entity`: render maid entity.
- `tlm.is_statue`: render statue.
- `tlm.is_garage_kit`: render garage kit.
- `tlm.show_item`: item ID for the decoration slot.
## New Content
- Completed slash blade animations; now supports various Japanese-style slash blade.
- Added extra main and off-hand positioning group functionality; simply add numbers 2-8 after the old main and off-hand positioning groups to use them.
- Roaming variable limit modified; quantity increased to 64, name limit increased to 32 characters.
- Optimized animation debugging functionality:
- You can now use `/ysmclient watch var` command for quick Molang debugging.
- Commands will automatically complete available variables now.
- Animation state machines can now be debugged with `/ysmclient watch state`.
- Compatible rendering with the exquisite backpack mod; requires adding BackpackLocator positioning group to display.
- Added Opus audio decoding functionality; using Opus audio can significantly reduce file size (only supports Forge 1.21/1.20/1.19/1.18).
- New Perlin noise function added: `ysm.perlin_noise(seed, x, y, z)`, where y and z can be omitted.
- Added Molang for particle generation:
- `ysm.particle('id', x, y, z, dx, dy, dz, speed, count, life_time)`.
- `ysm.abs_particle('id', x, y, z, dx, dy, dz, speed, count, life_time)`.
- Eight new blank controllers added:
- player.pre_main
- player.post_main
- player.pre_hold
- player.post_hold
- player.pre_use
- player.post_use
- player.pre_swing
- player.post_swing
- New Molang:
- `ysm.mainhand_charged_crossbow`
- `ysm.offhand_charged_crossbow`
- `ysm.is_fishing`
- Wine fox has a new white outfit option.
- New Spring Wine Fox added.
- Fixed an issue where clients without YSM installed could not enter the server.
- Fixed an issue with unplayed animation sound effects in multiple animation states.
- Corrected a problem where buttons were not recognizing boolean values in the custom configuration for the roulette animation.
- In animation control, scaling animation blending is now multiplicative instead of additive (aligning with Bedrock Edition mechanics).
- Modified the second-order animation calculation mechanism, allowing second-order animations to play correctly at very low frame rates.
- Audio is now forced to play in mono (only supports Forge 1.21/1.20/1.19/1.18).
- Fixed a bug where audio would not stop in certain situations.
- Attempted to fix a bug where the first frame would be blank when using or swinging animations.
## Maid Rendering Compatibility
- Added compatibility for the maid mod; now version 1.2.0 of the maid mod can directly call YSM rendering, requiring both mods to be updated.
- In creative mode, right-clicking on a statue or garage kit with a gohei allows you to copy your model onto the statue or garage kit.
- New `tlm.animation.json` file added, including ten new maid-related animations:
- New animations: `broom`, `statue`, `garage_kit`.
- Supports Z key roulette animations.
- Supports multi-material switching.
- Supports roaming variables.
- Supports being made into statues or garage kits.
- Wine fox maids now produce particles and music when playing the piano from the maid mod.
- New maid-related Molang variables added:
- `ysm.entity_type`: returns player and maid.
- `ysm.is_player`: boolean value.
- `ysm.is_maid`: boolean value.
- `tlm.favorability_point`: favorability points, 0-384.
- `tlm.favorability_level`: favorability level: 0-3.
- `tlm.task_id`: work mode ID, string.
- `tlm.schedule`: work schedule, day, night, all (day shift, night shift, full-time).
- `tlm.activity`: activities such as work, idle, reset (working, off-duty, sleeping).
- `tlm.gomoku_win_count`: total rounds won in Gomoku.
- `tlm.gomoku_rank`: Gomoku rank, 1-4 (no 0).
- `tlm.game_statue`: game status, win, lost, empty string.
- `tlm.backpack_type`: backpack ID.
- `tlm.is_entity`: render maid entity.
- `tlm.is_statue`: render statue.
- `tlm.is_garage_kit`: render garage kit.
- `tlm.show_item`: item ID for the decoration slot.
## New Content
- Completed slash blade animations; now supports various Japanese-style slash blade.
- Added extra main and off-hand positioning group functionality; simply add numbers 2-8 after the old main and off-hand positioning groups to use them.
- Roaming variable limit modified; quantity increased to 64, name limit increased to 32 characters.
- Optimized animation debugging functionality:
- You can now use `/ysmclient watch var` command for quick Molang debugging.
- Commands will automatically complete available variables now.
- Animation state machines can now be debugged with `/ysmclient watch state`.
- Compatible rendering with the exquisite backpack mod; requires adding BackpackLocator positioning group to display.
- Added Opus audio decoding functionality; using Opus audio can significantly reduce file size (only supports Forge 1.21/1.20/1.19/1.18).
- New Perlin noise function added: `ysm.perlin_noise(seed, x, y, z)`, where y and z can be omitted.
- Added Molang for particle generation:
- `ysm.particle('id', x, y, z, dx, dy, dz, speed, count, life_time)`.
- `ysm.abs_particle('id', x, y, z, dx, dy, dz, speed, count, life_time)`.
- Eight new blank controllers added:
- player.pre_main
- player.post_main
- player.pre_hold
- player.post_hold
- player.pre_use
- player.post_use
- player.pre_swing
- player.post_swing
- New Molang:
- `ysm.mainhand_charged_crossbow`
- `ysm.offhand_charged_crossbow`
- `ysm.is_fishing`
- Wine fox has a new white outfit option.
- New Spring Wine Fox added.
- Fixed an issue where clients without YSM installed could not enter the server.
- Fixed an issue with unplayed animation sound effects in multiple animation states.
- Corrected a problem where buttons were not recognizing boolean values in the custom configuration for the roulette animation.
- In animation control, scaling animation blending is now multiplicative instead of additive (aligning with Bedrock Edition mechanics).
- Modified the second-order animation calculation mechanism, allowing second-order animations to play correctly at very low frame rates.
- Audio is now forced to play in mono (only supports Forge 1.21/1.20/1.19/1.18).
- Fixed a bug where audio would not stop in certain situations.
- Attempted to fix a bug where the first frame would be blank when using or swinging animations.
## Maid Rendering Compatibility
- Added compatibility for the maid mod; now version 1.2.0 of the maid mod can directly call YSM rendering, requiring both mods to be updated.
- In creative mode, right-clicking on a statue or garage kit with a gohei allows you to copy your model onto the statue or garage kit.
- New `tlm.animation.json` file added, including ten new maid-related animations:
- New animations: `broom`, `statue`, `garage_kit`.
- Supports Z key roulette animations.
- Supports multi-material switching.
- Supports roaming variables.
- Supports being made into statues or garage kits.
- Wine fox maids now produce particles and music when playing the piano from the maid mod.
- New maid-related Molang variables added:
- `ysm.entity_type`: returns player and maid.
- `ysm.is_player`: boolean value.
- `ysm.is_maid`: boolean value.
- `tlm.favorability_point`: favorability points, 0-384.
- `tlm.favorability_level`: favorability level: 0-3.
- `tlm.task_id`: work mode ID, string.
- `tlm.schedule`: work schedule, day, night, all (day shift, night shift, full-time).
- `tlm.activity`: activities such as work, idle, reset (working, off-duty, sleeping).
- `tlm.gomoku_win_count`: total rounds won in Gomoku.
- `tlm.gomoku_rank`: Gomoku rank, 1-4 (no 0).
- `tlm.game_statue`: game status, win, lost, empty string.
- `tlm.backpack_type`: backpack ID.
- `tlm.is_entity`: render maid entity.
- `tlm.is_statue`: render statue.
- `tlm.is_garage_kit`: render garage kit.
- `tlm.show_item`: item ID for the decoration slot.
## New Content
- Completed slash blade animations; now supports various Japanese-style slash blade.
- Added extra main and off-hand positioning group functionality; simply add numbers 2-8 after the old main and off-hand positioning groups to use them.
- Roaming variable limit modified; quantity increased to 64, name limit increased to 32 characters.
- Optimized animation debugging functionality:
- You can now use `/ysmclient watch var` command for quick Molang debugging.
- Commands will automatically complete available variables now.
- Animation state machines can now be debugged with `/ysmclient watch state`.
- Compatible rendering with the exquisite backpack mod; requires adding BackpackLocator positioning group to display.
- Added Opus audio decoding functionality; using Opus audio can significantly reduce file size (only supports Forge 1.21/1.20/1.19/1.18).
- New Perlin noise function added: `ysm.perlin_noise(seed, x, y, z)`, where y and z can be omitted.
- Added Molang for particle generation:
- `ysm.particle('id', x, y, z, dx, dy, dz, speed, count, life_time)`.
- `ysm.abs_particle('id', x, y, z, dx, dy, dz, speed, count, life_time)`.
- Eight new blank controllers added:
- player.pre_main
- player.post_main
- player.pre_hold
- player.post_hold
- player.pre_use
- player.post_use
- player.pre_swing
- player.post_swing
- New Molang:
- `ysm.mainhand_charged_crossbow`
- `ysm.offhand_charged_crossbow`
- `ysm.is_fishing`
- Wine fox has a new white outfit option.
- New Spring Wine Fox added.
- Fixed an issue where clients without YSM installed could not enter the server.
- Fixed an issue with unplayed animation sound effects in multiple animation states.
- Corrected a problem where buttons were not recognizing boolean values in the custom configuration for the roulette animation.
- In animation control, scaling animation blending is now multiplicative instead of additive (aligning with Bedrock Edition mechanics).
- Modified the second-order animation calculation mechanism, allowing second-order animations to play correctly at very low frame rates.
- Audio is now forced to play in mono (only supports Forge 1.21/1.20/1.19/1.18).
- Fixed a bug where audio would not stop in certain situations.
- Attempted to fix a bug where the first frame would be blank when using or swinging animations.
## Maid Rendering Compatibility
- Added compatibility for the maid mod; now version 1.2.0 of the maid mod can directly call YSM rendering, requiring both mods to be updated.
- In creative mode, right-clicking on a statue or garage kit with a gohei allows you to copy your model onto the statue or garage kit.
- New `tlm.animation.json` file added, including ten new maid-related animations:
- New animations: `broom`, `statue`, `garage_kit`.
- Supports Z key roulette animations.
- Supports multi-material switching.
- Supports roaming variables.
- Supports being made into statues or garage kits.
- Wine fox maids now produce particles and music when playing the piano from the maid mod.
- New maid-related Molang variables added:
- `ysm.entity_type`: returns player and maid.
- `ysm.is_player`: boolean value.
- `ysm.is_maid`: boolean value.
- `tlm.favorability_point`: favorability points, 0-384.
- `tlm.favorability_level`: favorability level: 0-3.
- `tlm.task_id`: work mode ID, string.
- `tlm.schedule`: work schedule, day, night, all (day shift, night shift, full-time).
- `tlm.activity`: activities such as work, idle, reset (working, off-duty, sleeping).
- `tlm.gomoku_win_count`: total rounds won in Gomoku.
- `tlm.gomoku_rank`: Gomoku rank, 1-4 (no 0).
- `tlm.game_statue`: game status, win, lost, empty string.
- `tlm.backpack_type`: backpack ID.
- `tlm.is_entity`: render maid entity.
- `tlm.is_statue`: render statue.
- `tlm.is_garage_kit`: render garage kit.
- `tlm.show_item`: item ID for the decoration slot.
## New Content
- Completed slash blade animations; now supports various Japanese-style slash blade.
- Added extra main and off-hand positioning group functionality; simply add numbers 2-8 after the old main and off-hand positioning groups to use them.
- Roaming variable limit modified; quantity increased to 64, name limit increased to 32 characters.
- Optimized animation debugging functionality:
- You can now use `/ysmclient watch var` command for quick Molang debugging.
- Commands will automatically complete available variables now.
- Animation state machines can now be debugged with `/ysmclient watch state`.
- Compatible rendering with the exquisite backpack mod; requires adding BackpackLocator positioning group to display.
- Added Opus audio decoding functionality; using Opus audio can significantly reduce file size (only supports Forge 1.21/1.20/1.19/1.18).
- New Perlin noise function added: `ysm.perlin_noise(seed, x, y, z)`, where y and z can be omitted.
- Added Molang for particle generation:
- `ysm.particle('id', x, y, z, dx, dy, dz, speed, count, life_time)`.
- `ysm.abs_particle('id', x, y, z, dx, dy, dz, speed, count, life_time)`.
- Eight new blank controllers added:
- player.pre_main
- player.post_main
- player.pre_hold
- player.post_hold
- player.pre_use
- player.post_use
- player.pre_swing
- player.post_swing
- New Molang:
- `ysm.mainhand_charged_crossbow`
- `ysm.offhand_charged_crossbow`
- `ysm.is_fishing`
- Wine fox has a new white outfit option.
- New Spring Wine Fox added.
- Fixed an issue where clients without YSM installed could not enter the server.
- Fixed an issue with unplayed animation sound effects in multiple animation states.
- Corrected a problem where buttons were not recognizing boolean values in the custom configuration for the roulette animation.
- In animation control, scaling animation blending is now multiplicative instead of additive (aligning with Bedrock Edition mechanics).
- Modified the second-order animation calculation mechanism, allowing second-order animations to play correctly at very low frame rates.
- Audio is now forced to play in mono (only supports Forge 1.21/1.20/1.19/1.18).
- Fixed a bug where audio would not stop in certain situations.
- Attempted to fix a bug where the first frame would be blank when using or swinging animations.
## Maid Rendering Compatibility
- Added compatibility for the maid mod; now version 1.2.0 of the maid mod can directly call YSM rendering, requiring both mods to be updated.
- In creative mode, right-clicking on a statue or garage kit with a gohei allows you to copy your model onto the statue or garage kit.
- New `tlm.animation.json` file added, including ten new maid-related animations:
- New animations: `broom`, `statue`, `garage_kit`.
- Supports Z key roulette animations.
- Supports multi-material switching.
- Supports roaming variables.
- Supports being made into statues or garage kits.
- Wine fox maids now produce particles and music when playing the piano from the maid mod.
- New maid-related Molang variables added:
- `ysm.entity_type`: returns player and maid.
- `ysm.is_player`: boolean value.
- `ysm.is_maid`: boolean value.
- `tlm.favorability_point`: favorability points, 0-384.
- `tlm.favorability_level`: favorability level: 0-3.
- `tlm.task_id`: work mode ID, string.
- `tlm.schedule`: work schedule, day, night, all (day shift, night shift, full-time).
- `tlm.activity`: activities such as work, idle, reset (working, off-duty, sleeping).
- `tlm.gomoku_win_count`: total rounds won in Gomoku.
- `tlm.gomoku_rank`: Gomoku rank, 1-4 (no 0).
- `tlm.game_statue`: game status, win, lost, empty string.
- `tlm.backpack_type`: backpack ID.
- `tlm.is_entity`: render maid entity.
- `tlm.is_statue`: render statue.
- `tlm.is_garage_kit`: render garage kit.
- `tlm.show_item`: item ID for the decoration slot.
## New Content
- Completed slash blade animations; now supports various Japanese-style slash blade.
- Added extra main and off-hand positioning group functionality; simply add numbers 2-8 after the old main and off-hand positioning groups to use them.
- Roaming variable limit modified; quantity increased to 64, name limit increased to 32 characters.
- Optimized animation debugging functionality:
- You can now use `/ysmclient watch var` command for quick Molang debugging.
- Commands will automatically complete available variables now.
- Animation state machines can now be debugged with `/ysmclient watch state`.
- Compatible rendering with the exquisite backpack mod; requires adding BackpackLocator positioning group to display.
- Added Opus audio decoding functionality; using Opus audio can significantly reduce file size (only supports Forge 1.21/1.20/1.19/1.18).
- New Perlin noise function added: `ysm.perlin_noise(seed, x, y, z)`, where y and z can be omitted.
- Added Molang for particle generation:
- `ysm.particle('id', x, y, z, dx, dy, dz, speed, count, life_time)`.
- `ysm.abs_particle('id', x, y, z, dx, dy, dz, speed, count, life_time)`.
- Eight new blank controllers added:
- player.pre_main
- player.post_main
- player.pre_hold
- player.post_hold
- player.pre_use
- player.post_use
- player.pre_swing
- player.post_swing
- New Molang:
- `ysm.mainhand_charged_crossbow`
- `ysm.offhand_charged_crossbow`
- `ysm.is_fishing`
- Wine fox has a new white outfit option.
- New Spring Wine Fox added.
- Fixed an issue where clients without YSM installed could not enter the server.
- Fixed an issue with unplayed animation sound effects in multiple animation states.
- Corrected a problem where buttons were not recognizing boolean values in the custom configuration for the roulette animation.
- In animation control, scaling animation blending is now multiplicative instead of additive (aligning with Bedrock Edition mechanics).
- Modified the second-order animation calculation mechanism, allowing second-order animations to play correctly at very low frame rates.
- Audio is now forced to play in mono (only supports Forge 1.21/1.20/1.19/1.18).
- Fixed a bug where audio would not stop in certain situations.
- Attempted to fix a bug where the first frame would be blank when using or swinging animations.
## Maid Rendering Compatibility
- Added compatibility for the maid mod; now version 1.2.0 of the maid mod can directly call YSM rendering, requiring both mods to be updated.
- In creative mode, right-clicking on a statue or garage kit with a gohei allows you to copy your model onto the statue or garage kit.
- New `tlm.animation.json` file added, including ten new maid-related animations:
- New animations: `broom`, `statue`, `garage_kit`.
- Supports Z key roulette animations.
- Supports multi-material switching.
- Supports roaming variables.
- Supports being made into statues or garage kits.
- Wine fox maids now produce particles and music when playing the piano from the maid mod.
- New maid-related Molang variables added:
- `ysm.entity_type`: returns player and maid.
- `ysm.is_player`: boolean value.
- `ysm.is_maid`: boolean value.
- `tlm.favorability_point`: favorability points, 0-384.
- `tlm.favorability_level`: favorability level: 0-3.
- `tlm.task_id`: work mode ID, string.
- `tlm.schedule`: work schedule, day, night, all (day shift, night shift, full-time).
- `tlm.activity`: activities such as work, idle, reset (working, off-duty, sleeping).
- `tlm.gomoku_win_count`: total rounds won in Gomoku.
- `tlm.gomoku_rank`: Gomoku rank, 1-4 (no 0).
- `tlm.game_statue`: game status, win, lost, empty string.
- `tlm.backpack_type`: backpack ID.
- `tlm.is_entity`: render maid entity.
- `tlm.is_statue`: render statue.
- `tlm.is_garage_kit`: render garage kit.
- `tlm.show_item`: item ID for the decoration slot.
## New Content
- Completed slash blade animations; now supports various Japanese-style slash blade.
- Added extra main and off-hand positioning group functionality; simply add numbers 2-8 after the old main and off-hand positioning groups to use them.
- Roaming variable limit modified; quantity increased to 64, name limit increased to 32 characters.
- Optimized animation debugging functionality:
- You can now use `/ysmclient watch var` command for quick Molang debugging.
- Commands will automatically complete available variables now.
- Animation state machines can now be debugged with `/ysmclient watch state`.
- Compatible rendering with the exquisite backpack mod; requires adding BackpackLocator positioning group to display.
- Added Opus audio decoding functionality; using Opus audio can significantly reduce file size (only supports Forge 1.21/1.20/1.19/1.18).
- New Perlin noise function added: `ysm.perlin_noise(seed, x, y, z)`, where y and z can be omitted.
- Added Molang for particle generation:
- `ysm.particle('id', x, y, z, dx, dy, dz, speed, count, life_time)`.
- `ysm.abs_particle('id', x, y, z, dx, dy, dz, speed, count, life_time)`.
- Eight new blank controllers added:
- player.pre_main
- player.post_main
- player.pre_hold
- player.post_hold
- player.pre_use
- player.post_use
- player.pre_swing
- player.post_swing
- New Molang:
- `ysm.mainhand_charged_crossbow`
- `ysm.offhand_charged_crossbow`
- `ysm.is_fishing`
- Wine fox has a new white outfit option.
- New Spring Wine Fox added.
- Fixed an issue where clients without YSM installed could not enter the server.
- Fixed an issue with unplayed animation sound effects in multiple animation states.
- Corrected a problem where buttons were not recognizing boolean values in the custom configuration for the roulette animation.
- In animation control, scaling animation blending is now multiplicative instead of additive (aligning with Bedrock Edition mechanics).
- Modified the second-order animation calculation mechanism, allowing second-order animations to play correctly at very low frame rates.
- Audio is now forced to play in mono (only supports Forge 1.21/1.20/1.19/1.18).
- Fixed a bug where audio would not stop in certain situations.
- Attempted to fix a bug where the first frame would be blank when using or swinging animations.
## Maid Rendering Compatibility
- Added compatibility for the maid mod; now version 1.2.0 of the maid mod can directly call YSM rendering, requiring both mods to be updated.
- In creative mode, right-clicking on a statue or garage kit with a gohei allows you to copy your model onto the statue or garage kit.
- New `tlm.animation.json` file added, including ten new maid-related animations:
- New animations: `broom`, `statue`, `garage_kit`.
- Supports Z key roulette animations.
- Supports multi-material switching.
- Supports roaming variables.
- Supports being made into statues or garage kits.
- Wine fox maids now produce particles and music when playing the piano from the maid mod.
- New maid-related Molang variables added:
- `ysm.entity_type`: returns player and maid.
- `ysm.is_player`: boolean value.
- `ysm.is_maid`: boolean value.
- `tlm.favorability_point`: favorability points, 0-384.
- `tlm.favorability_level`: favorability level: 0-3.
- `tlm.task_id`: work mode ID, string.
- `tlm.schedule`: work schedule, day, night, all (day shift, night shift, full-time).
- `tlm.activity`: activities such as work, idle, reset (working, off-duty, sleeping).
- `tlm.gomoku_win_count`: total rounds won in Gomoku.
- `tlm.gomoku_rank`: Gomoku rank, 1-4 (no 0).
- `tlm.game_statue`: game status, win, lost, empty string.
- `tlm.backpack_type`: backpack ID.
- `tlm.is_entity`: render maid entity.
- `tlm.is_statue`: render statue.
- `tlm.is_garage_kit`: render garage kit.
- `tlm.show_item`: item ID for the decoration slot.
## New Content
- Completed slash blade animations; now supports various Japanese-style slash blade.
- Added extra main and off-hand positioning group functionality; simply add numbers 2-8 after the old main and off-hand positioning groups to use them.
- Roaming variable limit modified; quantity increased to 64, name limit increased to 32 characters.
- Optimized animation debugging functionality:
- You can now use `/ysmclient watch var` command for quick Molang debugging.
- Commands will automatically complete available variables now.
- Animation state machines can now be debugged with `/ysmclient watch state`.
- Compatible rendering with the exquisite backpack mod; requires adding BackpackLocator positioning group to display.
- Added Opus audio decoding functionality; using Opus audio can significantly reduce file size (only supports Forge 1.21/1.20/1.19/1.18).
- New Perlin noise function added: `ysm.perlin_noise(seed, x, y, z)`, where y and z can be omitted.
- Added Molang for particle generation:
- `ysm.particle('id', x, y, z, dx, dy, dz, speed, count, life_time)`.
- `ysm.abs_particle('id', x, y, z, dx, dy, dz, speed, count, life_time)`.
- Eight new blank controllers added:
- player.pre_main
- player.post_main
- player.pre_hold
- player.post_hold
- player.pre_use
- player.post_use
- player.pre_swing
- player.post_swing
- New Molang:
- `ysm.mainhand_charged_crossbow`
- `ysm.offhand_charged_crossbow`
- `ysm.is_fishing`
- Wine fox has a new white outfit option.
- New Spring Wine Fox added.
- Fixed an issue where clients without YSM installed could not enter the server.
- Fixed an issue with unplayed animation sound effects in multiple animation states.
- Corrected a problem where buttons were not recognizing boolean values in the custom configuration for the roulette animation.
- In animation control, scaling animation blending is now multiplicative instead of additive (aligning with Bedrock Edition mechanics).
- Modified the second-order animation calculation mechanism, allowing second-order animations to play correctly at very low frame rates.
- Audio is now forced to play in mono (only supports Forge 1.21/1.20/1.19/1.18).
- Fixed a bug where audio would not stop in certain situations.
- Attempted to fix a bug where the first frame would be blank when using or swinging animations.
## Maid Rendering Compatibility
- Added compatibility for the maid mod; now version 1.2.0 of the maid mod can directly call YSM rendering, requiring both mods to be updated.
- In creative mode, right-clicking on a statue or garage kit with a gohei allows you to copy your model onto the statue or garage kit.
- New `tlm.animation.json` file added, including ten new maid-related animations:
- New animations: `broom`, `statue`, `garage_kit`.
- Supports Z key roulette animations.
- Supports multi-material switching.
- Supports roaming variables.
- Supports being made into statues or garage kits.
- Wine fox maids now produce particles and music when playing the piano from the maid mod.
- New maid-related Molang variables added:
- `ysm.entity_type`: returns player and maid.
- `ysm.is_player`: boolean value.
- `ysm.is_maid`: boolean value.
- `tlm.favorability_point`: favorability points, 0-384.
- `tlm.favorability_level`: favorability level: 0-3.
- `tlm.task_id`: work mode ID, string.
- `tlm.schedule`: work schedule, day, night, all (day shift, night shift, full-time).
- `tlm.activity`: activities such as work, idle, reset (working, off-duty, sleeping).
- `tlm.gomoku_win_count`: total rounds won in Gomoku.
- `tlm.gomoku_rank`: Gomoku rank, 1-4 (no 0).
- `tlm.game_statue`: game status, win, lost, empty string.
- `tlm.backpack_type`: backpack ID.
- `tlm.is_entity`: render maid entity.
- `tlm.is_statue`: render statue.
- `tlm.is_garage_kit`: render garage kit.
- `tlm.show_item`: item ID for the decoration slot.
## New Content
- Completed slash blade animations; now supports various Japanese-style slash blade.
- Added extra main and off-hand positioning group functionality; simply add numbers 2-8 after the old main and off-hand positioning groups to use them.
- Roaming variable limit modified; quantity increased to 64, name limit increased to 32 characters.
- Optimized animation debugging functionality:
- You can now use `/ysmclient watch var` command for quick Molang debugging.
- Commands will automatically complete available variables now.
- Animation state machines can now be debugged with `/ysmclient watch state`.
- Compatible rendering with the exquisite backpack mod; requires adding BackpackLocator positioning group to display.
- Added Opus audio decoding functionality; using Opus audio can significantly reduce file size (only supports Forge 1.21/1.20/1.19/1.18).
- New Perlin noise function added: `ysm.perlin_noise(seed, x, y, z)`, where y and z can be omitted.
- Added Molang for particle generation:
- `ysm.particle('id', x, y, z, dx, dy, dz, speed, count, life_time)`.
- `ysm.abs_particle('id', x, y, z, dx, dy, dz, speed, count, life_time)`.
- Eight new blank controllers added:
- player.pre_main
- player.post_main
- player.pre_hold
- player.post_hold
- player.pre_use
- player.post_use
- player.pre_swing
- player.post_swing
- New Molang:
- `ysm.mainhand_charged_crossbow`
- `ysm.offhand_charged_crossbow`
- `ysm.is_fishing`
- Wine fox has a new white outfit option.
- New Spring Wine Fox added.
- Synchronize 1.16.5/1.18.2/1.19.2/1.20.1/1.21.1 Forge/Fabric/NeoForge, a total of ten versions
- Fix the problem that `AnimationContent` is empty, causing the log screen to refresh
- Fix the problem that 1.16.5/1.18.2 Forge is incompatible with the old version of tac grenade
- Fix the 1.21 NeoForge/Fabric memory pool mechanism to avoid the problem of log screen refreshing
- Fix 1.21 NeoForge/Fabric to fix the molang of getting enchantments
- Fix the problem of 1.21 Fabric pre-setting Forge Cloth Config API Port, now version 1.21.1 can be used directly
- Fix the bug of 1.21 not saving the configuration file
- Fix the bug of missing tacz bayonet animation
- Fix the problem of animation flickering in some perspectives
- Modify the parallel animation of the default model to avoid affecting other animations
- The default controller animation of sword swinging has lower body movements
- Synchronize 1.16.5/1.18.2/1.19.2/1.20.1/1.21.1 Forge/Fabric/NeoForge, a total of ten versions
- Fix the problem that `AnimationContent` is empty, causing the log screen to refresh
- Fix the problem that 1.16.5/1.18.2 Forge is incompatible with the old version of tac grenade
- Fix the 1.21 NeoForge/Fabric memory pool mechanism to avoid the problem of log screen refreshing
- Fix 1.21 NeoForge/Fabric to fix the molang of getting enchantments
- Fix the problem of 1.21 Fabric pre-setting Forge Cloth Config API Port, now version 1.21.1 can be used directly
- Fix the bug of 1.21 not saving the configuration file
- Fix the bug of missing tacz bayonet animation
- Fix the problem of animation flickering in some perspectives
- Modify the parallel animation of the default model to avoid affecting other animations
- The default controller animation of sword swinging has lower body movements
- Synchronize 1.16.5/1.18.2/1.19.2/1.20.1/1.21.1 Forge/Fabric/NeoForge, a total of ten versions
- Fix the problem that `AnimationContent` is empty, causing the log screen to refresh
- Fix the problem that 1.16.5/1.18.2 Forge is incompatible with the old version of tac grenade
- Fix the 1.21 NeoForge/Fabric memory pool mechanism to avoid the problem of log screen refreshing
- Fix 1.21 NeoForge/Fabric to fix the molang of getting enchantments
- Fix the problem of 1.21 Fabric pre-setting Forge Cloth Config API Port, now version 1.21.1 can be used directly
- Fix the bug of 1.21 not saving the configuration file
- Fix the bug of missing tacz bayonet animation
- Fix the problem of animation flickering in some perspectives
- Modify the parallel animation of the default model to avoid affecting other animations
- The default controller animation of sword swinging has lower body movements
- Synchronize 1.16.5/1.18.2/1.19.2/1.20.1/1.21.1 Forge/Fabric/NeoForge, a total of ten versions
- Fix the problem that `AnimationContent` is empty, causing the log screen to refresh
- Fix the problem that 1.16.5/1.18.2 Forge is incompatible with the old version of tac grenade
- Fix the 1.21 NeoForge/Fabric memory pool mechanism to avoid the problem of log screen refreshing
- Fix 1.21 NeoForge/Fabric to fix the molang of getting enchantments
- Fix the problem of 1.21 Fabric pre-setting Forge Cloth Config API Port, now version 1.21.1 can be used directly
- Fix the bug of 1.21 not saving the configuration file
- Fix the bug of missing tacz bayonet animation
- Fix the problem of animation flickering in some perspectives
- Modify the parallel animation of the default model to avoid affecting other animations
- The default controller animation of sword swinging has lower body movements
- Synchronize 1.16.5/1.18.2/1.19.2/1.20.1/1.21.1 Forge/Fabric/NeoForge, a total of ten versions
- Fix the problem that `AnimationContent` is empty, causing the log screen to refresh
- Fix the problem that 1.16.5/1.18.2 Forge is incompatible with the old version of tac grenade
- Fix the 1.21 NeoForge/Fabric memory pool mechanism to avoid the problem of log screen refreshing
- Fix 1.21 NeoForge/Fabric to fix the molang of getting enchantments
- Fix the problem of 1.21 Fabric pre-setting Forge Cloth Config API Port, now version 1.21.1 can be used directly
- Fix the bug of 1.21 not saving the configuration file
- Fix the bug of missing tacz bayonet animation
- Fix the problem of animation flickering in some perspectives
- Modify the parallel animation of the default model to avoid affecting other animations
- The default controller animation of sword swinging has lower body movements
- Synchronize 1.16.5/1.18.2/1.19.2/1.20.1/1.21.1 Forge/Fabric/NeoForge, a total of ten versions
- Fix the problem that `AnimationContent` is empty, causing the log screen to refresh
- Fix the problem that 1.16.5/1.18.2 Forge is incompatible with the old version of tac grenade
- Fix the 1.21 NeoForge/Fabric memory pool mechanism to avoid the problem of log screen refreshing
- Fix 1.21 NeoForge/Fabric to fix the molang of getting enchantments
- Fix the problem of 1.21 Fabric pre-setting Forge Cloth Config API Port, now version 1.21.1 can be used directly
- Fix the bug of 1.21 not saving the configuration file
- Fix the bug of missing tacz bayonet animation
- Fix the problem of animation flickering in some perspectives
- Modify the parallel animation of the default model to avoid affecting other animations
- The default controller animation of sword swinging has lower body movements
- Synchronize 1.16.5/1.18.2/1.19.2/1.20.1/1.21.1 Forge/Fabric/NeoForge, a total of ten versions
- Fix the problem that `AnimationContent` is empty, causing the log screen to refresh
- Fix the problem that 1.16.5/1.18.2 Forge is incompatible with the old version of tac grenade
- Fix the 1.21 NeoForge/Fabric memory pool mechanism to avoid the problem of log screen refreshing
- Fix 1.21 NeoForge/Fabric to fix the molang of getting enchantments
- Fix the problem of 1.21 Fabric pre-setting Forge Cloth Config API Port, now version 1.21.1 can be used directly
- Fix the bug of 1.21 not saving the configuration file
- Fix the bug of missing tacz bayonet animation
- Fix the problem of animation flickering in some perspectives
- Modify the parallel animation of the default model to avoid affecting other animations
- The default controller animation of sword swinging has lower body movements
- Synchronize 1.16.5/1.18.2/1.19.2/1.20.1/1.21.1 Forge/Fabric/NeoForge, a total of ten versions
- Fix the problem that `AnimationContent` is empty, causing the log screen to refresh
- Fix the problem that 1.16.5/1.18.2 Forge is incompatible with the old version of tac grenade
- Fix the 1.21 NeoForge/Fabric memory pool mechanism to avoid the problem of log screen refreshing
- Fix 1.21 NeoForge/Fabric to fix the molang of getting enchantments
- Fix the problem of 1.21 Fabric pre-setting Forge Cloth Config API Port, now version 1.21.1 can be used directly
- Fix the bug of 1.21 not saving the configuration file
- Fix the bug of missing tacz bayonet animation
- Fix the problem of animation flickering in some perspectives
- Modify the parallel animation of the default model to avoid affecting other animations
- The default controller animation of sword swinging has lower body movements
- Synchronize 1.16.5/1.18.2/1.19.2/1.20.1/1.21.1 Forge/Fabric/NeoForge, a total of ten versions
- Fix the problem that `AnimationContent` is empty, causing the log screen to refresh
- Fix the problem that 1.16.5/1.18.2 Forge is incompatible with the old version of tac grenade
- Fix the 1.21 NeoForge/Fabric memory pool mechanism to avoid the problem of log screen refreshing
- Fix 1.21 NeoForge/Fabric to fix the molang of getting enchantments
- Fix the problem of 1.21 Fabric pre-setting Forge Cloth Config API Port, now version 1.21.1 can be used directly
- Fix the bug of 1.21 not saving the configuration file
- Fix the bug of missing tacz bayonet animation
- Fix the problem of animation flickering in some perspectives
- Modify the parallel animation of the default model to avoid affecting other animations
- The default controller animation of sword swinging has lower body movements
- Synchronize 1.16.5/1.18.2/1.19.2/1.20.1/1.21.1 Forge/Fabric/NeoForge, a total of ten versions
- Fix the problem that `AnimationContent` is empty, causing the log screen to refresh
- Fix the problem that 1.16.5/1.18.2 Forge is incompatible with the old version of tac grenade
- Fix the 1.21 NeoForge/Fabric memory pool mechanism to avoid the problem of log screen refreshing
- Fix 1.21 NeoForge/Fabric to fix the molang of getting enchantments
- Fix the problem of 1.21 Fabric pre-setting Forge Cloth Config API Port, now version 1.21.1 can be used directly
- Fix the bug of 1.21 not saving the configuration file
- Fix the bug of missing tacz bayonet animation
- Fix the problem of animation flickering in some perspectives
- Modify the parallel animation of the default model to avoid affecting other animations
- The default controller animation of sword swinging has lower body movements
- Synchronize 1.16.5/1.18.2/1.19.2/1.20.1/1.21.1 Forge/Fabric/NeoForge, a total of ten versions
- Fix the problem that `AnimationContent` is empty, causing the log screen to refresh
- Fix the problem that 1.16.5/1.18.2 Forge is incompatible with the old version of tac grenade
- Fix the 1.21 NeoForge/Fabric memory pool mechanism to avoid the problem of log screen refreshing
- Fix 1.21 NeoForge/Fabric to fix the molang of getting enchantments
- Fix the problem of 1.21 Fabric pre-setting Forge Cloth Config API Port, now version 1.21.1 can be used directly
- Fix the bug of 1.21 not saving the configuration file
- Fix the bug of missing tacz bayonet animation
- Fix the problem of animation flickering in some perspectives
- Modify the parallel animation of the default model to avoid affecting other animations
- The default controller animation of sword swinging has lower body movements
- Fixed calculation discrepancies in second-order and first-order animations under different frame rates
- Fixed audio continuation issue when exiting archive after playing roulette animation and re-entering
- Fixed empty line issue in roulette configuration interface
- Fixed value rounding problem when reopening slider configurations
- Reduced spam of `Could not load animation` in logs upon initial archive entry
- Model and animation fixes
- Fixed incorrect hand animations for JK Wine Fox character
- Fixed sliding issues for default model and Wine Fox model, along with terrain clipping
- Fixed texture errors and incorrect sneak position in controller example model
- Molang additions and fixes
- Added `ysm.rendering_in_paperdoll` variable specifically for paper dolls
- Added `ysm.person_view` variable returning numerical values (First-person: 0, Third-person back: 1, Third-person front: 2; compatible with over-the-shoulder view)
- Added `ctrl.idle` variable
- Fixed `ctrl.run` and `ctrl.walk` incorrectly being true during sneaking and climb states
- Fixed `ctrl.climb` parameter being true during swimming
- Fixed incorrect `ysm.rendering_in_inventory` parameters in some cases (e.g. top-left paper doll)
- Fixed inaccuracies in `q.is_first_person` and `ysm.first_person_mod_hide` under certain conditions
## New Features
- Added new roulette design with `#return` key as return button
- Fixed incorrect Carry On animations during swimming and prone states
- Added Japanese localization (Credits: Mine-Tech)
- Added roulette lock shortcut (Default: `Alt + L`)
- Added two new parkour animations:
- High Jump Charging (`parcool:jump_charging`)
- High Jump (`parcool:charge_jump`)
- Added partial compatibility with Better Combat mod and fixed head obstruction issue during swinging animations
- Added compatibility for slash blade mod's animations. Now you can customize slash blade animations. It is also compatible with the old slash blade and slash blade resharped (thanks: 星屑海螺 provides a full set of animations)
- Added compatibility with Bedrock Edition animation controllers
- Support multiple animation playback
- Support state switching
- Support custom blending duration and blending curve when switching animations
- Support `q.any_animation_finished` `q.all_animations_finished` parameters
- Added some molang specifically for controllers (subsequent documents will supplement this part of the description)
- Animation can now play audio
- Audio can be imported through model packages, Minecraft sound effects can be called, and sound effects added by resource packages are also supported
- At the same time, a volume button is added to control the volume of the animation
- Delete redundant content
- Remove the old version of molang debug interface
- Delete the ingame model upload function
- Delete the `/ysm model export` command (**This command is not a model export command! ! ! **)
- Animation Roulette Update
- Animation Roulette supports classification, multiple animations can be grouped into a group and put into the secondary menu
- Animation Roulette can add configuration functions, and custom buttons can be used to control the input of molang parameters
- Built-in first-order and second-order physical systems molang, simplifying related molang calculations
- Fixed compatibility with the new version of parcool mod (now both new and old can be compatible)
- Added `ysm.shoot_item_id` function, which can be used to distinguish what item is used to shoot the arrow
- Added a configuration file, which can be controlled by the server to hide the default model
- Fixed the animation problem of the default model and tacz guns (thanks: 千代纸 for helping to fix this problem)
- Completed compatibility with the animation of the weapon of the Tinkers Construct through the tag system
- Added terms to the disclaimer ** (prohibiting the production of NSFW content) **
- Added a lock function for the roulette animation: when the lock function is turned on, movement will not interrupt the playback of the roulette animation
- Added the disable_preview_rotation parameter, placed under properties, which can prevent the rotation of the GUI selection interface, making it easier to make GUI animations
- Added the all_cutout parameter, placed under properties, which can force the model to add face culling, making it easier to create stroke effects
- Added a new controller example model (multi-stage attack when using a sword)
- Supports the blend weight parameter (blend_weight) of animation, and the tail swing of the wine fox has added this writing example
- Added a new audio example dance for the wine fox (thanks to 羊毛 for providing audio and animation)
- Updated related language files
- Added cross-mod communication, now supports the custom download function of other mod
- [Fabric] Add compatibility with TACZ Fabric 1.20.1
- Fix the animation twitching problem when TACZ fires
- Complete compatibility with TACZ bayonet animation
- Fix the player rotation problem in the model switching interface (especially when the player opens the model switching interface while riding a horse)
- Fix the problem that the free field of the independent manifest file is not processed
- Add `ysm.bone_pivot_abs` to get the coordinates of the specified bone pivot point in the model space in the previous frame.
> Note that if the parent bone is hidden or scaled by 0, the value will not be updated. Example: `ysm.bone_pivot_abs('LeftHand').x`;
- Add ysm.bone\_[rot/scale/pos] to get the bone parameters of the previous frame.
> Example: `ysm.bone_rot("LeftLeg').x`;
- Fixed the inaccurate values of `q.eye_target_[x/y]rotation` and `q.body_[x/y]_rotation`;
- Fixed the abnormal rendering of paper dolls when using molang hidden groups when the first-person module is effective;
- Improved the rendering of semi-transparent models;
- Added `properties.render_layers_first` field (default false) to the manifest file to specify whether the vanilla model layer is rendered before the ysm model. The specific details will be introduced in the document later;
- Greatly improved the performance of multiplayer games, especially when light and shadow + entity shadow are turned on;
- Adapted the SWEM mod (+11 animations, refer to the `swem.animation.json` of the default model);
- Adapted the Parcool mod (+35 animations, refer to the `parcool.animation.json` of the default model);
- Added `hover`, `hover_fadeout`, and `focus` animations, which are played when the mouse hovers over, moves out of, or selects a model button in the model interface;
- Compatible with Carpet and Curtain mod dummies, and in theory, with dummies that work in a similar way;
- Supports copying or opening the author's contact information on the model details page;
- Supports attaching additional information when exporting encrypted models;
- Adapted to Sodium 0.6 and Iris 1.8;
- Limits the animation update frequency to 60 fps;
- Fixed the problem that iris shadow rendering has no head when the first-person mod is in effect;
- Fixed compatibility with fashion armor mods;
- Fixed the problem that the old version of the model texture file is not sorted correctly;
- Fixed the problem that the renderer crashed in rare cases (access violation);
- Fixed the problem that the process could not be terminated due to abnormal exit;
- Improved the reliability of handshake and synchronization in an online environment;
- Added the command `/ysm ping`, solve the problem that the client does not recognize the server due to packet loss;
- Improve the automatic completion of some command parameters;
- The top-level model directory is not recognized as a model.
- Fix the problem of some groups being misplaced under the Carry On holding posture
- Add a new wine fox model, and attach GUI suspension and selection animations
# Known issues:
- The semi-transparent part of the model may block other entities, which can be solved by installing the oculus/iris module;
- The semi-transparent part of the model in the inventory will block buttons added by other modules.
- The animation will only play once when TACZ fires continuously
- [Fabric] Add compatibility with TACZ Fabric 1.20.1
- Fix the animation twitching problem when TACZ fires
- Complete compatibility with TACZ bayonet animation
- Fix the player rotation problem in the model switching interface (especially when the player opens the model switching interface while riding a horse)
- Fix the problem that the free field of the independent manifest file is not processed
- Add `ysm.bone_pivot_abs` to get the coordinates of the specified bone pivot point in the model space in the previous frame.
> Note that if the parent bone is hidden or scaled by 0, the value will not be updated. Example: `ysm.bone_pivot_abs('LeftHand').x`;
- Add ysm.bone\_[rot/scale/pos] to get the bone parameters of the previous frame.
> Example: `ysm.bone_rot("LeftLeg').x`;
- Fixed the inaccurate values of `q.eye_target_[x/y]rotation` and `q.body_[x/y]_rotation`;
- Fixed the abnormal rendering of paper dolls when using molang hidden groups when the first-person module is effective;
- Improved the rendering of semi-transparent models;
- Added `properties.render_layers_first` field (default false) to the manifest file to specify whether the vanilla model layer is rendered before the ysm model. The specific details will be introduced in the document later;
- Greatly improved the performance of multiplayer games, especially when light and shadow + entity shadow are turned on;
- Adapted the SWEM mod (+11 animations, refer to the `swem.animation.json` of the default model);
- Adapted the Parcool mod (+35 animations, refer to the `parcool.animation.json` of the default model);
- Added `hover`, `hover_fadeout`, and `focus` animations, which are played when the mouse hovers over, moves out of, or selects a model button in the model interface;
- Compatible with Carpet and Curtain mod dummies, and in theory, with dummies that work in a similar way;
- Supports copying or opening the author's contact information on the model details page;
- Supports attaching additional information when exporting encrypted models;
- Adapted to Sodium 0.6 and Iris 1.8;
- Limits the animation update frequency to 60 fps;
- Fixed the problem that iris shadow rendering has no head when the first-person mod is in effect;
- Fixed compatibility with fashion armor mods;
- Fixed the problem that the old version of the model texture file is not sorted correctly;
- Fixed the problem that the renderer crashed in rare cases (access violation);
- Fixed the problem that the process could not be terminated due to abnormal exit;
- Improved the reliability of handshake and synchronization in an online environment;
- Added the command `/ysm ping`, solve the problem that the client does not recognize the server due to packet loss;
- Improve the automatic completion of some command parameters;
- The top-level model directory is not recognized as a model.
- Fix the problem of some groups being misplaced under the Carry On holding posture
- Add a new wine fox model, and attach GUI suspension and selection animations
# Known issues:
- The semi-transparent part of the model may block other entities, which can be solved by installing the oculus/iris module;
- The semi-transparent part of the model in the inventory will block buttons added by other modules.
- The animation will only play once when TACZ fires continuously
- [Fabric] Add compatibility with TACZ Fabric 1.20.1
- Fix the animation twitching problem when TACZ fires
- Complete compatibility with TACZ bayonet animation
- Fix the player rotation problem in the model switching interface (especially when the player opens the model switching interface while riding a horse)
- Fix the problem that the free field of the independent manifest file is not processed
- Add `ysm.bone_pivot_abs` to get the coordinates of the specified bone pivot point in the model space in the previous frame.
> Note that if the parent bone is hidden or scaled by 0, the value will not be updated. Example: `ysm.bone_pivot_abs('LeftHand').x`;
- Add ysm.bone\_[rot/scale/pos] to get the bone parameters of the previous frame.
> Example: `ysm.bone_rot("LeftLeg').x`;
- Fixed the inaccurate values of `q.eye_target_[x/y]rotation` and `q.body_[x/y]_rotation`;
- Fixed the abnormal rendering of paper dolls when using molang hidden groups when the first-person module is effective;
- Improved the rendering of semi-transparent models;
- Added `properties.render_layers_first` field (default false) to the manifest file to specify whether the vanilla model layer is rendered before the ysm model. The specific details will be introduced in the document later;
- Greatly improved the performance of multiplayer games, especially when light and shadow + entity shadow are turned on;
- Adapted the SWEM mod (+11 animations, refer to the `swem.animation.json` of the default model);
- Adapted the Parcool mod (+35 animations, refer to the `parcool.animation.json` of the default model);
- Added `hover`, `hover_fadeout`, and `focus` animations, which are played when the mouse hovers over, moves out of, or selects a model button in the model interface;
- Compatible with Carpet and Curtain mod dummies, and in theory, with dummies that work in a similar way;
- Supports copying or opening the author's contact information on the model details page;
- Supports attaching additional information when exporting encrypted models;
- Adapted to Sodium 0.6 and Iris 1.8;
- Limits the animation update frequency to 60 fps;
- Fixed the problem that iris shadow rendering has no head when the first-person mod is in effect;
- Fixed compatibility with fashion armor mods;
- Fixed the problem that the old version of the model texture file is not sorted correctly;
- Fixed the problem that the renderer crashed in rare cases (access violation);
- Fixed the problem that the process could not be terminated due to abnormal exit;
- Improved the reliability of handshake and synchronization in an online environment;
- Added the command `/ysm ping`, solve the problem that the client does not recognize the server due to packet loss;
- Improve the automatic completion of some command parameters;
- The top-level model directory is not recognized as a model.
- Fix the problem of some groups being misplaced under the Carry On holding posture
- Add a new wine fox model, and attach GUI suspension and selection animations
# Known issues:
- The semi-transparent part of the model may block other entities, which can be solved by installing the oculus/iris module;
- The semi-transparent part of the model in the inventory will block buttons added by other modules.
- The animation will only play once when TACZ fires continuously
- [Fabric] Add compatibility with TACZ Fabric 1.20.1
- Fix the animation twitching problem when TACZ fires
- Complete compatibility with TACZ bayonet animation
- Fix the player rotation problem in the model switching interface (especially when the player opens the model switching interface while riding a horse)
- Fix the problem that the free field of the independent manifest file is not processed
- Add `ysm.bone_pivot_abs` to get the coordinates of the specified bone pivot point in the model space in the previous frame.
> Note that if the parent bone is hidden or scaled by 0, the value will not be updated. Example: `ysm.bone_pivot_abs('LeftHand').x`;
- Add ysm.bone\_[rot/scale/pos] to get the bone parameters of the previous frame.
> Example: `ysm.bone_rot("LeftLeg').x`;
- Fixed the inaccurate values of `q.eye_target_[x/y]rotation` and `q.body_[x/y]_rotation`;
- Fixed the abnormal rendering of paper dolls when using molang hidden groups when the first-person module is effective;
- Improved the rendering of semi-transparent models;
- Added `properties.render_layers_first` field (default false) to the manifest file to specify whether the vanilla model layer is rendered before the ysm model. The specific details will be introduced in the document later;
- Greatly improved the performance of multiplayer games, especially when light and shadow + entity shadow are turned on;
- Adapted the SWEM mod (+11 animations, refer to the `swem.animation.json` of the default model);
- Adapted the Parcool mod (+35 animations, refer to the `parcool.animation.json` of the default model);
- Added `hover`, `hover_fadeout`, and `focus` animations, which are played when the mouse hovers over, moves out of, or selects a model button in the model interface;
- Compatible with Carpet and Curtain mod dummies, and in theory, with dummies that work in a similar way;
- Supports copying or opening the author's contact information on the model details page;
- Supports attaching additional information when exporting encrypted models;
- Adapted to Sodium 0.6 and Iris 1.8;
- Limits the animation update frequency to 60 fps;
- Fixed the problem that iris shadow rendering has no head when the first-person mod is in effect;
- Fixed compatibility with fashion armor mods;
- Fixed the problem that the old version of the model texture file is not sorted correctly;
- Fixed the problem that the renderer crashed in rare cases (access violation);
- Fixed the problem that the process could not be terminated due to abnormal exit;
- Improved the reliability of handshake and synchronization in an online environment;
- Added the command `/ysm ping`, solve the problem that the client does not recognize the server due to packet loss;
- Improve the automatic completion of some command parameters;
- The top-level model directory is not recognized as a model.
- Fix the problem of some groups being misplaced under the Carry On holding posture
- Add a new wine fox model, and attach GUI suspension and selection animations
# Known issues:
- The semi-transparent part of the model may block other entities, which can be solved by installing the oculus/iris module;
- The semi-transparent part of the model in the inventory will block buttons added by other modules.
- The animation will only play once when TACZ fires continuously