131,934 Commits over 4,262 Days - 1.29cph!
Replace ServerUpdateBots with a PersistentObjectWorkQueue
In a test of 500 bots on the server (about baseline on an empty server) this was taking 0.25ms because it looped over every entity, every frame. The internal logic is time gated so it would only actually check/modify 5-15 each frame
WorkQueue is budgeted at 0.05ms and goes through as many as possible in a frame within that window
As this might result in some bot colliders temporarily being the wrong size for a frame or two I've added manual forced collider size updates when a player state changes that we are otherwise checking in the update process (mounting/dismounting/wounding/crawling) to minimise any delays
Don't do any processing for UpdateReputations if the player's reputation state hasn't changed
Vertex colours visual for edit mode
Readd nextPlayerCheck to JunkpileWater, we don't need to be running this check every frame on every junkpile
Adjust TOD headless check to work via compiler defines, it seems liike cameras are still present on the server (although not doing anything) so it thought it was running on the client
Should save 0.1ms a frame
Marked FishSwarm as client only, was profiling as 0ms but it was still running a coroutine so might as well nuke it on the server
Merge from main
Only conflict is cake.entity, auto resolved
Fixed settings slider jittering when dragged
Fixed settings resetting convars set above the max value
merge from cardgames_atlas
Compressed and atlased card games UI sprites, should save around 100mb ram
Frankenstein_monster_03 torso/legs/head repose
merge from console_autocompletion_contains
Sort StartsWith console autocompletion before Contains
Dracula fixes and Scarecrow repose
Remove repeated allocations from getting missions from the mission manifest
merge from birthday2025 -> main
exported latest vm paintabll anims and linked up camera in prefab
Added new sounds for the butcher knife
merge from boat_wall_trigger_improvements
merge from ramp_plank_parenting_fix
merge from kinematic_shoredrift_fix
merge from trigger_parent_nre_fix
Adding gesture anims for player update
Paintball Gun - Worldmodel, LODs and rebaked materials
When converting back to editable, apply damage to the blocks that actually took damage, down to a minimum of 1hp. Any extra damage gets rolled over to additional blocks, as much as possible per block, resulting in not having to repair every block on a boat. (unless they all got hit...)
Set edit flag on ice material when opening/closing edit mode
Ice sculpture shader changes for edit mode
Added new sounds for the 50cal movements
Dont send aim dir at first - not needed
reduce_balistagun_aim_packets -> main
reduce_ballistagun_aim_packet -> main
Restore server tick (no networking overhead)
Stop every BallistaGun firing off a roughly 32~ byte packet every 0.05 seconds
Every cannon in the DeepSea was doing this at once.
- Fixed bug causing dismount not to unparent properly
- Ensured ShouldRepositionPerFrame() is inverted for setting parent (no parenting was actually happening), but mount update was skipped
Blocks track damage they've taken
MountedPlayerSync (for scientist boats) reduced from 1ms -> 0.01ms
Merge: from randomize_junkpile_checkempty
- minor optim to load balance JunkPile::CheckEmpty
Tests: looted one on craggy, saw it disappear
Update: JunkPile.CheckEmpty now have a 5 second randomness
Tests: looted a junkpile on craggy, flew away, waited and got back - it was gone
fixed clipping issues on planner viewmodel