12,096 Commits over 2,527 Days - 0.20cph!
Merge from player_model_anim_inspector
Merge from main
Lots of code conflicts, all resolved except for one in PlayerModel.cs, looked fine
Conflicts on binocular.entity, used changes from source (presumably related to refresh?)
OneShotAnimationSubSystem can now pick from a selection of random animations
Hooked up SaleSuccess, EndConvoBoughtNothing, Talk and EndConvoBoughtSomething events
Plays from a selection of animations for each state
Added a priority system, allows us to specify a sub system to use Low, Medium or High priority to take ownership of the player model
Hooked up an additional OneShot system to the test chair, so we're running the random idle as a base and then a one shot to react to events
Added RandomLoopAnimSubSystem, can cycle through an arbitrary amount of looping animations, randomly picking the next one to play
Fixed some pooling issues when going in and out of range of animators running sub systems
Added a new ClientOnPlayerMountedWithPlayerModel callback for mountables, is called the first frame the player has a valid player model
Using this bypasses the recurring issue that ClientOnPlayerMounted is called before a player model exists when coming into network range of a player
Didn't make a matching dismount version as we don't have the same problem when leaving network range
Piped the in-game debugging readouts into the unity inspector for more visibility while in editor
Added an example OneShotAnimationSubSystem for handling event driven animations
Added debug.animatorsubsystemdebug convar that prints out the currently active sub systems
Each system can add to the debug readout with component specific info (eg. per clip blends)
Added a TwoAnimBlend example
Add general fade in/out support
Exploring a new AnimationSubSystem class to standardise the new player model handle techniques we've been using for various one shots and other features
Replaced the dedicated OnPhone state in the PlayerAnimator with a new TelephoneAnimationSubSystem
Merge from elevator_fixes_apr_26
Allow elevator cables to update while offscreen
Some new Light LOD system tests
Merge from elevator_fixes_apr_26
Fix player elevator cables sometimes appearing in the wrong place if the player was too far away from the elevator
Disable the hurt trigger on the launch site lifts when the lift is idle, will no longer kill players if they jump while underneath it
Require LOS for hurt trigger on player placed lifts, prevents killing players if there's a floor between the player and the elevator
Fixed industrial furnace not retaining it's children (storage adaptors) when reskinning with spray can
Added a new ToggleThrownWeapon animation event, allows us to switch on/off the grenade visuals so they don't stay in the players hands all the time throughout a throw animation
Implemented on supply signal, smoke grenades, molotovs, beancans, flashbangs, bee grenades, f1 grenades and firecrackers
Fixed incorrect animations on the smoke grenade and firecracker animation overrides
New StateSync component for weapon animators
Looks for a matching state on the main player model and matches the normalized time on the weapon animator to ensure the animation stays in sync
Will need to be applied to each weapon individually, applied on HMLMG reload animation for now
Enable single frame parenting for AK mag drop effects
HMLMG mag drop now detaches from parent and plays in world space
Fixes mag being affected by weapon position/rotation of gun and motion blur issues
Added new TriggerMonumentIOArea component that allows IO wiring inside the bounds even if those bounds are within a monument (still won't work if the player is build blocked)
Crude produced at a monument is locked, can only be moved via IO
Stays locked once it's transferred into the car fuel tank, can only be removed at a car lift
Items flagged as Locked are now blocked from moving via MoveItem RPC (might have side-effects)
Merge from ducked_splash_fix
Slight change for better LOS check
Merge from main, many conflicts
Auto resolved all code changes except for BallistaGun, used IK handling on this branch
Auto resolved all prefab changes except for salvaged_cleaver.entity, used the holster position/rotation on this branch
Merge from easter_disable_2026
Merge from storage_adaptor_prevent_building_fix
Storage adaptor prevent building check now uses the StorageAdaptorAllowCollisionGroup, fixes placement on large industrial furnace
Should be simpler to manage going forwards
Merge from ducked_splash_fix
Possibly fixed player getting splashed by explosive damage when crouched under a half height floor and the explosion detonates above the floor
Do an additional line of sight check when damaging ducked players if closest point on the player bounds is within 0.1m (additional LOS is 01.m below original check)
Also removed an old log in TimedExplosive
Merge from fix_manifest_errors
Assign Root Bones to the Model component on:
turret_attackheli
sedanrail.entity
50cal.base.entity
shovel.entity
food_pie_generic.entity
Converted wall.frame.shopfront_static and wall.frame.shopfront.door_static to StabilityEntity (was Door)
Neither have animators so they wouldn't have worked as doors anyway and as far as I can see they aren't used by vanilla content anywhere
Fixed exception in DoPrepare on shields because they don't have a HoldAnimationOverride
Merge from water_well_B_spawn_fix
Fixed food cache not spawning in water well B
Merge from whatusesthis_fast_path