693 Commits over 426 Days - 0.07cph!
merge from drawcolliders_improvements
merge from barrel_conveyor_fix
Fix forceShowInConveyorFilters not overriding redirect check
Show industrial barrels too
merge from spraycan_reskin_refactor 🎨
Refactored the entire method / file now that reskinning is feature complete and all on the new system
Clear steps, organized validation logic, comments, ripped out redundant stuff, etc.
Allow reskinning while noclip flying
Add computer station reskinning
Now preserves all the saved cctv codes and wire stays connected to the sub io entity, snapping to the new handle position
Fix an NRE when trying to control drones on playground
merge from mfm (merge from main)
Merge from main
Manually resolve merge hell in SprayCan.cs
Add autoturret reskinning
Preserves loaded ammo, authlist, rc identifier and peacekeeper setting
Implement IO entity reskinning with the new system, will now always nicely adjust any connected wires / pipes to the new positions:
https://files.facepunch.com/cipeaX/2026/May/21_01-08-RightBighorn.mp4
Fix a bug causing io lines to not update correctly when multiple storage adaptors on the same barrel have connections between themselves
Integrate item container and child item container preserving into the new system
Re-implement entity children preserving, with attachments repositioning if their sockets shifted, child io entity also have their connected lines update correctly
Fixes various current bugs with storage adaptors / door controllers when their parent is reskinned
Make ceilinglight reskinnable again, will fix reskinning io entities themselves next
Fix not being able to skin snowmobile back to default
Improve the building of the PreserveInfo
Initial wip on an attempt to refactor the beast that is SprayCan.ChangeItemSkin
The idea is that entities handle things they need to persist through reskinning themselves via Preserve and Restore methods
merge from barrel_conveyor_fix
Fix barrels not showing up in conveyor filters since reskin support was added
merge from server_browser_description_loading_fix
Update Facepunch.Steamworks (22b352e)
Fixes the initial challenge request for A2S_RULES queries using the A2S_PLAYERS byte, causing server info in the browser to fail to load in some cases
Important: Server hosts need to ensure they use the A2S challenge mechanism correctly, otherwise their server's info / descriptions WILL NOT load
merge from version_log_server
merge from traintunlightfixes
merge from cargoshipfixes
merge from terrain_lowering_nms_large_cave
Slightly expand and shift the CaveNetworkGroupLayerOverride at silo to fix a remaining problematic sight line
S2P NMS
merge from reset_groups_command
merge from mortar_prototype
Improve mortar uneven ground placement error
Add spawn.reset_groups - just clears then fills all spawn groups, useful for spawn point testing
merge from automated_testing
Possibly fix some tests failing
merge from interaction_toast_banned_fix
Better checks for when to display "Banned/Kicked from the server" in the interaction toast on disconnect
merge from automated_testing
merge from automated_testing
Editor only codegen, codegen
merge from automated_testing
merge from automated_testing