436 Commits over 365 Days - 0.05cph!
Fix metal shield new collider exclude layers
merge from weapon_refresh_salvaged_axe
merge from main
preserve destination deletes of meta files
merge from main
preserve destination deletes of meta files
Lots of small improvements to make the multi-unlock process more robust
Handle closing the techtree or switching tabs during unlock
Selection path stays visible as the animation runs, prevent selecting other nodes until it finishes
Re-enable RW on 5 meshes used by particle systems
merge from hackweek_server_mesh_cull
merge from creative_freebuild_fix
WIP Highlight the path the multi-unlock is going to take as a preview
https://files.facepunch.com/cipeaX/2026/March/11_11-44-FormalKestrel.mp4
Rework the tech tree UI to work with multi-unlocking, now shows "unlock path" and displays path cost when you can unlock the whole path, single item cost displayed above
The holdtime when unlocking via long mouse press is now longer if its a multi-unlock
Make the button texts translated (they never were??)
Fix an old bug where the total cost UI would stay visible and floating when switching tech tree pages
Sort the nodes by Y position before multi unlocking so its guaranteed to be consistent going from top to bottom
Fix creative.freebuild (setting grades) breaking with the boat building plan
Fix some worldmodel prefabs that got saved as disabled, was causing ballista projectiles to be invisible
Fix ghostship d still spawning 100% of the crates when the deep sea opens
Apply the door fix to the unused boat door
▉▍▉▋▋▄ ▄▉█▌ ▌█▇▄▆▊▍▆█▍▋█▊▍▆▌▉▇█▊▌▅▍▄
▍▊▌▉ ▇▅▊▄▇█ ▄▊▊ ▉▉▄▉▊█ ▊▉ ▆█▉▅▆ ▊▋▅▌▉ ▌▉ ▍█▍▊▊▌▉▉ ▍▅▇▇█
merge from collider_cleanup_feb_26
Fix GroundWatch not working for large battery, splitter, volcano fireworks (recent regressions) and fishtrap (old issue)
New deployable test for the root cause, there has to be at least one collider on a layer visible to GroundWatch, otherwise it never gets notified
merge from ambient_light_fix
merge from collider_cleanup_feb_26
▉ ▍▌▊▋▅▅ ▄▅▉██ ▆▋▆▄ ▊▄▄▍▉█▆ ▊▌▉▄▆ ▋▍██▇▆▊▊ ▊▄ ▍▅▇▄▇██ ▇█▋▆▊
merge from collider_cleanup_feb_26
Small pass over deployables recently converted to convex colliders
Slightly more accurate, fix some missing materials
Touched large battery, reactive target, water barrel, water purifier
Fix scaled netting collider on the bbs
Fix various collider issues for things placeable on boats, resolve stringpool warning spam, incorrect materials, offset or redundant colliders etc.
Things touched are telephone, spotlights, splitter, single weapon racks, confetticannon, volcano fireworks, torch holder
Manifest
Re-initialize stringpool for the deployable tests as part of the setup
Fix more local / world space fun
merge from searchlight_worlddirection_fix
Deployable test checking that if placeable on boats, all collider names are in StringPool
Finds 10 cases to fix
merge from searchlight_worlddirection_fix
Fix searchlight not working correctly on boats
merge from redirect_snapping
Deployables can now snap to redirects of itself
All the component boxes now snap to each other
merge from hackweek_fill_containers_rand
Massively refactor and streamline the filling logic to avoid a bunch of duplication
In addition to `fillinventory` there's now use `fillcontainer` and `fillcontainer_radius` to fill containers with random items
Works with storage containers and container io entities, prints out the ones filled, and warns if a container couldn't accept some of the items
Fix bbs not setting owner id correctly with deploy & edit
merge from hackweek_more_tests