ysm-2.5.0-fabric+mc1.20.1-release

Changelog

YSM 2.5.0 Update Log

Performance Optimization

  • 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

Files

ysm-2.5.0-fabric+mc1.20.1-release.jar(33.78 MiB) Primary Download