- 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