156,856 Commits over 4,536 Days - 1.44cph!
Texture optimisations to some apartment textures (reducing size) and floating walkway LOD textures
Committing WIP work on Small Random Room J for branch switching
update to barricade sandbags now use continuious lods so skins persist down the chain. Was previously using a baked version.
Adding initial burst cloth setup
Changed base ladder hatches to have more metal and less rust
update milk icon to face the other way so item quanity isn't covered
merge from airwolf_repairable_pad
Helipad repair now requires
30,000 wood
10,000 metal fragments
100 rope
Added AIRWOLF cctv
S2P
Added analytic hook locations TODOs
Merge from legacy_anim_deletes_oct_2026
Removed 75 animation files and overrides, around 47mb worth
Mostly legacy hold types
Cleaned orphaned data in player animation controller
Updated cleanup tool to also clean out orphaned references in override controllers
Added new tool Tools/Animation/Remove Orphaned Sub Assets
Finds orphaned assets on animation controllers that Unity apparently just keeps around after you delete things?
Could also have been caused by bad merges
Cleaned out Scientist2.anim, RidableHorse, v_mini_crossbow.anim, snowballgun.anim, v_food_pies.anim
Fixed boomerang waiting to catch animation still using old player model animation
Once removed old boomerange animations were no longer referenced, removed them
Double baseline dung production speed of cow and sheep (was every 40m, now 20m)
Fixed a long standing dung production bug on horses that was inadvertedly increasing their dung production x10
Adjusted horse dung produced per calorie to 0.2, was 0.1
A well fed horse should now produce ~48 dung/day (was 240)
A well fed livestock animal should now produce ~72 dung/day (before any gene increase/decrease)
Merge from deep_sea_teleport_fix
Possible fix for players being left behind when a boat they are on transfers to/from the deep sea and they were standing too close to a wall
Also add null checks when spawning the deep sea so we can spawn a quick, empty deep sea in the editor
▉ ▅▋▆█▇▇▅▊ ▅▇▊▋ ▉▅▆▄▋▄▄█▄▋▊▋ ▇▍▊▇ ▍▉ ▅▊██▌█ ▅▄▍▍ ▇▅ █▍█▊▆▇▌ ▍▊ ▉▅▍
Fix individual edits causing more faces to be marked dirty than needed
Animals are now dismounted when the vehicle they are on rolls or ends up submerged
Updated sales charts for livestock selling
Can now receive random reward that could include Turret, HQM, LGF, Semi rifle, Scrap, Saddles, Rope, Blue cards, Tarps, CCTV, Targeting computer and frags
Updated wool chart to match for now, will likely need a further revision
Cows now harvest for 30 cloth, 100 leather, 100 bones, 20 beef, 40 fat
Sheep now harvest for 10 cloth, 20 leather, 50 bones, 12 mutton, 20 fat + whatever wool they had on them at the time of death
Hooked up new animal icons
Set all animal avatars to 1024, was 2056
▌ ▉▉▇▇█▆▊▉ ▋▊▉ ▉▌▌▊▆▅ ▋▉▆▋▅▉ ▌▊▆▅▌▋▆▌ ▄▆▇█▍ ▍█▋▄▌ ▄ █▅▉▊▄█ ▊▌ ▊▄▇▅ ▄▇▍█▋
Item icons for milk drink interaction
Added p2p_force_reliable convar
* Defaults to 0, forces all packets to be sent over reliable P2P channel.
* Stop using k_EP2PSendUnreliableNoDelay for all small packets, use the more reliable k_EP2PSendUnreliable
Attempt a different fix for overlay layers resetting on server join
Added feedback message to host_writeconfig_lua
Added ability to load Srcds Workshop Ids from a file
* It can be used alone or in conjunction with a collection. Documented on wiki
* Moved srcds workshop cache file from `cfg/srcds_addons.txt` (too generic) to `cache/srcds_addon_list_cache.txt`
Remove CExampleEffect screen space effect from builds
* I don't think it was ever accessible from Lua/whatever
Prevent Lua errors when using prop_effect in base gamemode
* I don't know why this Sandbox specific entity is in the base gamemode, but it is, so we gotta deal with that now.
Add UpdateScreenEffectTexture matproxy, use it for that PHX screen
* Basically it forces _rt_FullFrameFB texture to update (at the end of the frame), meant to be used on model materials that make use of this texture.
Fixed SWEP:CustomAmmoDisplay causing UI overlaps sometimes
Fixed normals on a few more built-in models
* prison_padlock001b.mdl
* de_inferno/goldfish.mdl, claypot01.mdl & its gibs, claypot02.mdl
Add a 'needs stirring' electrical output so people can make circuits letting them know the generator needs stirred
Optimize worst case pass of the multiple exterior detection so it doesn't balloon execution time
Apply the item position on the Loadout UI icon slots if applicable
https://files.facepunch.com/raul/2026/September/22_22-19-FixedHellbender.png
https://files.facepunch.com/raul/2026/September/22_22-20-PertinentWeevil.png
Fix the deployment being the wrong way around
Add blinking 'processing' and 'blocked' text on the info display
Ok fine allow buildings to define multiple exteriors
- even though theoretically there can only be a single exterior per base it gets funky in it's current implementation when not all building blocks are handled by base occlusion so you can have separate sections of a base that aren't connected with faces but are both outsides (example: connecting external TC with ramps)
Exclude high walls from room occlusion (since they are always considered outside structures)
Fix bases being able to define multiple outsides of the base
- collapse to a single outside when interior rooms incorrectly are flagged as interior
Bugfix: fix invalid takeover data for crystal ak
Accidentally copied pack even though it hasn't one when manually resolving
Tests: navigated to page, crystal ak displays as intended
Added a per-stage benchmark measurement harness before moving onto experimental optimisations. To be used to measure future improvements and map changes.
- ProcgenStats: time per-stage, number of prefabs placed, placement hash, counters (filter calls, radius scans, texel reads, anchor scans, monument attempts).
- ProcgenBenchmark: editor tooling to generate maps for queued seeds and writes a CSV row per-stage. One map per play session, exiting play mode after each generation.
- Powershell scripts to drive the editor benchmarks and compare CSV outputs by hash and stage time
Bugfix: store.refresh now restarts the tab
Fixes tab having only default-initialized tiles
Tests: ran refresh while on general tab
merge from main
fix conflict in ConversationData, bumped VehiclePadRepaired condition type
█▇▌▊▇▉▅▊ ▋▋▄ █▇▉▊▇▉█ ▋▆▇▇▆▇▇ ▍▅▊▇▍▄▇█▇ ▅▇▇▄▆ ▄▆█▍ ▉▄▌█▇ ▅▅▆ ▄▍▄▌▄▅▉ ▇▇ ▇▉▇▋▋▊▄▄▇▇▄█ ▅▊▄▍█▋▆█▉ ▋█ ▅▊▍███▅▅▌ ▋▍▋ ▊▄▅▋▇ ▌█▄ ▌▅▌▌▇ ▄▍▉█▆▌▋
▆▊▊▇▊▇ █▊▍▉ ▊▌▆██▊▄▋▉▍▉▍▆▆▋▅▄▌▊▅
▆▄▆▍▋▉ ▉▊▋▌▅▆▌█▄▇▅█▉▅▇█▌▉▉▌▇▊▄█▄▆▆▅▇▍ ▋▊▌▉▄▅▇ ▊▌ ▌▋▆ ▇▅▇ █▅▇▆▌▅ ▋▇▌ ▆▍▉▆ ▋▍▄ ▋▄▄ ▊▉▉▍▄▅▄▆ ▋▋ ▅▄▆ ▍▅▊▅▌