871 Commits over 487 Days - 0.07cph!
merge from cargo_network_optims
Prevent fireballs and heli gibs from inheriting the global network group too
Fix "missing tree at index 0" error when loading playground scene
merge from cargo_network_optim
merge from industrial_garagedoor_vehicle_fix
Prevent dropped item containers (player loot bags) and dynamic cargo containers from inheriting the global network group when parented to cargo ship, spamming position updates to all players on the server
Set the network range for the containers to 512m so they can still be seen from far away
Fix entity item ownership not preserved through reskin
New "Blocked by industrial piping" error when building is blocked by an industrial pipe (before it would say blocked by the entity the pipe is connected to, which could be far away)
Phrases
merge from blocked_by_piping_error
Add UI section in the keybind settings, add clan menu and contacts menu bind options, move crafting menu option to it
Enable clan name tag color accessibility option
merge from automated_testing
Fix military silencer not spawning in loot
When opening the spraycan reskin menu, the currently applied skin object you are looking at is now greyed out, instead of always being accessible and confusing - works with wallpaper too
https://files.facepunch.com/cipeaX/2026/June/17_19-28-ScratchyBass.mp4
Further spraycan refactor progress
Entities restrict whether they are in a valid state for reskinning by overriding CanBeReskinned / CanBeRedirectSwapped
Unified the way the reskin error toasts are sent, added 2 more - getting toasts when a reskin failed is now more consistent vs just not being able to open the menu
Fixed not seeing the amount of seconds you need to wait when trying to reskin a recently damaged entity
Some cleanup, moved BaseEntity.Reskinning to its own file
Add storage adaptor sorting to vending machines, fridges, wall cabinet
They previously didn't support it since they aren't regular storage containers
merge from quarry_speed_fix
Set belt scroll speed multiplier to 0.63 so the speed of the belt visually matches the speed of the other rotating parts
Fix broken materials on the mining quarry top engine with LOD1
merge from vending_purchase_clamping_fix
Another vending machine clamping consistency fix
merge from videoplayer_fix
Fix new mountable tests having the "Deployables" category, breaking deployable tests
Minor cleanup, testlist
merge from sprinting_footsteps_update
merge from player_corpse_no_buoyancy_assigned_fix
merge from bowless_crossbow
merge from parent_projectile_validation_on_default
merge from clothing_mannequin_wearable_fix
merge from vending_purchase_clamping_fix
merge from demo_window_auto_refresh
merge from pool_analyzer_non_caching_methods
The Demos window refreshes automatically when opened so you dont have to press the refresh button every time
Update Rust.CodeAnalyzer - bring back .editorconfig list as a secondary way of marking methods as non caching - fall back to allow tagging unity / third party methods that we can't easily add the attribute to, like GameObject.GetComponentsInChildren<T>(List<T>)
Apply amount clamping in the vending machine purchase UI on value changed instead of end edit to match how it was before the ui refresh
Fix 4 pool leaks that got flagged
Move the attribute to Facepunch.System so it can be used in more places
Apply it to 42 more suitable methods across the project
merge from water_splash_sound_fix
Restore movement sounds reference on the player model
Fixes water impact splash sounds not playing
merge from spraycan_reskin_refactor
Fix an edge case of errors when reskinning snowmobiles after they were saveloaded
Child entity (fuel tank, storage) spawn order can vary after a server restart, causing a mismatch when trying to restore inventories using the child indices - add fallback to match by just prefab id
For extra safety add more logging, and a fallback for the fallback - should anything go wrong with restoring containers, drop any leftover items instead of leaking them