158,451 Commits over 4,566 Days - 1.45cph!
Fix a foundation surrounded by walls being connected to a foundation outside the base offset half below
- add faces on the sides of foundations & rely on existing face linking behavior to work properly
Reserialize foundation prefabs before adding new faces (for clean diff)
added example mesh for jarryd -
idea is to box’s position, dimensions and rotation
Use object-name suffixes to assign physics materials, e.g. floor_01_wood uses Wood.
Remove material suffixes from generated child names
Place aligned colliders directly on the parent; create separate children for rotated boxes
Remove the reference instance after conversion, with Undo/Redo support
Cherry pick old animals fixes (flee when attacked from afar, do not sleep)
UIBlurCanvasesBehind skips the capture while a CanvasGroup above is faded out
rename `demo.newui` to `demo.oldui`, enable demoui2 by default.
[old ui stays. we really don't have a reason to nuke it for now and there are still some people that prefer the old one.]
Set "occlusion_door_immediate" to false by default (was supposed to be since we show everything within 32m)
merge from aizone_sleep_fix
Add special staging-only gamepad UI button option that hackily enables gamepad override just for that session.
Hide all other gamepad options in the gamepad section until it is enabled.
Fix navmesh building on top of cargoship
Fix AI Sleep Zones not working correctly since May
- race condition fix earlier this year inadvertently made any zone outside of a BaseEntity not initialise correctly (all except underwater labs)
- before / after on fresh procmap: https://files.facepunch.com/ryanw/2026/October/26_19-06-IndelibleBlackrhino.png / https://files.facepunch.com/ryanw/2026/October/26_18-54-FluffyDaddylonglegs.png
Fix sheeps starving despite a trough, their feed time was lower than cows so they wasted time shuffling with each other for a turn, now feeding time can't desync between sheep and cows
Update: Item.UseItem now returns if the entire item was consumed
- bugfix IndustrialConveyor's use-after-free of item in QuickMove path
Tests: ran conveyor tests, no longer failing
▉ ▄▅▄▌▇ █▆ ▍▅▉▇ ▋▋▄▍▌▉▅▄█▅▌ ▋▆▋▆▉ ▊█▆██ ▌█▋▍▊▇▇▍█▇ ▄ ▍▄▉▇▇ ▇█ ▅█▅▉█▆▇▋ ▅▄▍▊▉ ▌▄▍▍▆▆▍▆ ▅▋▅▍▋▌▋▆▆ ▌▆▆▍▅▍▆▇▄▉▉ ▌▆▆▍ ▋▋▅ ▌▅▉▅▄▇▆ ▍▊▄▉ ▊█▊▉▌ ▅▋▇▉▋ ▅▊▊▆▊ █▇▍ █▅▅▄ ▊▌▄▋▋▅ ▍▋▅▆ ▅▌ ▇▅▌▇█ ▄▆█▆▇ ▋█▌▍▇▌▍▍▆ ▍▇▊▋▋▉▄█▉▇▌▉▌█▌▌▉▉▄▉▇▍▋▋▆▅ ▉▌▌ ▌▄▋▆▄▆█▊ █▅▌▇▊▊▄▇ ▌▍▄▄▄ ▌▇▍ █▌▍▉ ▌█▊ ▍▆▊▋▇▄▇▋▅▇▆▄█▅▅▋▆▊ ██▅▉▌ ▋▍▋▌ ▋▆▆▍▋▍█▌▅▄▍▋▆█ ▅▌▊▌ ▋▌▋▆▅▊▌█▄ █▇▇▌▋▉▅▉
Optimize doors when recalculating series of connected rooms when doors are opened & closed
merge from analytics_base_occlusion -> main
merge from work_queue_optims
- anims and clips for weapons own anims, inc stock deploy + collapse, reload and fire
- initial animator setup for these weapon anims
- clip update of 3p idle
- avatar setup for world weapon rig
Add analytics events for rotating and flipping building blocks
▄ █▍█▅▊ ▌▅▋▉ ▇▄▍▅▌▊▍██▍▍▋█▊▊▄
█ ▅ ▆▆▋▋▇ ▊▉▅▊ ▆▆▊▅▄ ▉▌ ▇▉▌ █▆▆▉█▄▋▅▊▆ ▇▉▅▄▊▉▆▋ ▄▅▍▌▍▋▆▇▍▊▋ ▇▍ ▌▊▄ ▍▌▍▊ ▆▊▉▉ ▍▌ ▇▊▄▊▉█▆▄▇▇ ▍▊▇▉▇▅▅▅ ▇▇ ▇▉▌ ▄▄▋▊▊ █▇ ▉▇▍▄ █▉▆▇▅▆▄ ▌█▆▅ ▇▉█▇▅ ▉█▅ ▉▉▌▋▄▉▋▌ ▊▊▄▋▉▊▆
boat_scientists_improvements -> main
Only attempt turns when we can actually see the player
Lap interval pass on additional work queues
- DroppedItemUnderwaterQueue, 0.05, keep inline (ish) with physics tick rate
- BotColliderWorkQueue, 0.1, this is only refreshed every 0.2-0.3 seconds anyway
Fix bad merge when updated before submitting livestock lamp changes
merge from main -> base_occlusion
merge from analytics_base_occlusion -> main
boat_scientist_improvements -> main
- Give up players if you've been chasing them for a while
- Pursue for a max set of meters unless that player shoost you
replicated_convar_error_change -> main
item_pool_expansion -> main
radwater_color_throw_fix -> main
Add "isOpen" to the existing door toggled event
3p setup wip
- 3p anims
- holdtype controller population
- holster placement
▇ ▇▉▅▊▋ ▉▄ ▌▍▇▌█ ▋█▋▊▋ █▄█▄▆█▊▋▄ ▋▉█▄▊ ▄▇▆▉▋▌▉ ▋▊▆▆▍ ▆▋ ▅▌▋▇▄▍▆▆▌ ▇▄▅█ ▌▊▋▉▇ ▍▋▌ ▄█▍▍▌▆ ▋▇▆▌ ▇▅▍▉▅ ▄▅█▅▇▌ █▍▉▊ █▊▄▍▊▍▄▉▍▅▇▌█▆ ▋█▌▊█▊▍▉▇ ▉▊▇▍▌ ▇▍▉▉▇▇▇▉ ▋█▉ ▍▇▉▍█▋▆ ▋▅▇▍▍▋ █▌▊▌▇█▆▆▄▆▆▍▉▌█▄▌▅ ▋▇▅▉▇▇▉▌▋ █▉▋█▇▍▋▄ ▉▊▉ ▅▆▆▆ ▍▅▇ ▄ ▍▍▌▊▆▅▅ ▊▊▌ █▇▆▉▋ ▋▊▆ ▋▌▍▋▋▌█▇▄▉ ▄▍▊▆▄▉▌ ▋▊ ▌█▆▆▇▅▆▄▇▆
- Swap to another target if the boats main target is obstructed
- Otherwise decide to bail if the target has been hidden for a long time
Bugfix: fix WaterPurifier incorrectly increasing stack of garbage in output just before removing it
Tests: none, trivial change
Bugfix: ResearchTable.ResearchAttemptFinished - preserve ItemDef from the removed item to avoid NREs
Tests: none, trivial change
commit remaining textures that were for some reason not included
added new milk icons so its clearer what they are when in fridge. updated asset textures accordingly
Optim: use IndexOf to avoid double scan in ItemContainer.Remove
Tests: ran unit tests
▊▇▌▌▆ ▍▇▄▊ █▆▆ ▄▄▊██▋ ▉▍▌▋▉ ▉▇▌▋▋
Bugfix: reimplement ItemContainer.Clear loop to invalidate items at the end of iteration
- removed couple cases of dead code
Tests: unit tests + server automated tests, down to 1 failing
If the target is no longer valid then move on to someone we can see, or bail out
Workshop Downloadable Source - Default name for files now uses dashes instead of dots. "rifle.ak.obj" would now be "rifle-ak.obj" to prevent issues