158,949 Commits over 4,566 Days - 1.45cph!
Cherry pick
167632 - prevent seasonal dungeons spawning in building priv
Also applied a 1s cache to prevent it hammering physics too much
merge from hotreload_playmode_brick_fix
Possible fix for hot reload sometimes causing issues when entering playmode and causing server startup to fail, because it held on to the port from a previous playmode session
Fixed halloween NPCs spawning inside safezones
Skip ItemIcon refreshing while not visible, now deferred to when the inventory opens
Before, any hidden icons would refresh on inventory changes, for example updating their amount and hover text every time you shot a gun
Also avoid some unnecessary OnItemAmountChanged broadcasts and hover text rebuild if data didn't change
Stop HideIfAiming deactivating the muzzle flash once its particles finish. Every reused attack effect had to reactivate it
Was spiking up to ~5-7ms in a build and only 0.2ms in editor somehow, now 0
It points at ParticleSystemRenderer::UpdateCachedMesh, checking that next
Fixed dead halloween and easter candies persisting after server restart
merge from halloween_2026_dlc
Fix food spoliling in workbench recycle bin upgrade container
Add VDF files for 6 missing gamepad types.
Update gamepad manifest.
Keep sound template AudioSources enabled while pooled, disabling them on every recycle flushed unity's audio DSP, stalling up to ~1ms when a sound got cut mid play
RecycleSound in editor:
~0.45ms -> ~0.25ms
The occasional 1ms "flush dsp connections" is gone
Fix SelectedBlueprint.CanCraft running every frame while the crafting menu is closed, small but unnecessary
scrap king building skin steam item setup
Add support for major/minor revision bumping.
Update all gamepad configs with this data.
Update validation to always check/catch chamges.
Fix all skinned items allocating on every inventory update when getting their icon sprite
Attack/AttackAlt are now Button actions on the triggers' soft pull so players can rebind fire/aim to any button (per Valve guidance).
Update all action sets/configs to match,
Improve DImage shader replacement system
* Uses case insensitive check for VertexLitGeneric, includes LightmappedGeneric now
* Handles SubRect shader materials by drawing the correct part of the texture
Try to have Paint tool UI with previews
* https://files.facepunch.com/rubat/2026/October13-3318-SecondhandWoodborer.png
Stop any rumble in Deactivate
Fixed "is3DSkybox" variable not resetting when returning from hooks
Fixed some missing textures on Half-Life 2: Episode 2 props
Try to workaround Portal using same texture names as Ep2
Remove some unused libs from menu state
Use a different delimiter for "last map" saves
* One that can't naturally occur in filenames
Change network transfer folder blacklist into a whitelist
* Seems more logical to be this way
* Also removed .ain from extension whitelist, since it's a useless for the client format that is no longer automatically sent anyway
Try resolving a crash with recent change to Entity:SetPos
Merged Pull Requests
* Remove usage of a unnecessary Think hook in DOF post processing effect
* Updated a comment in SurfaceProperties.txt
Includes higher quality Eli Vance face texture from S1 repo
Fixed typo in cam.End2D underflow error message
▆ ▋ ▆█▍▄▋ ▇▋▅▆ ▌▋▇▍▇ ▊▅▅ █▍▅▌ ▇▍▄▌▄▋▌ ▅▊▆▉▇▇█ ▇▌▉▅▋ ▊█▇▆▆▆ ▇▄▊▍▉▍▄ ▅▍▌ █▌▆▊▊▍▄▊▊ ▅▍▊▍▇▇ ▉▇ ▆▉█ ▄▋▌▊ ▊▋▅▆▅▆▉▆█ ▉▍▍▇█ ▄▊▇▊▉ ▄▆▊▄ ▇▉▍▊▋▊█▌▊▄▊▄▍▋▋██ ▉▋▆▇
▆ ▉█▉▅▉ ▍▇▆▊ ▇▋▍▆ ▅▌▍▊▄▍█ ▅ ▅▍▊██▉▊▉ ▊▊▊█ ▍▅▄▊ ▅▇▄ ▉▇▍▅ ▊ ▌▅▍█ ▅▅ ▉▅▆▄██▍▊ ▅▇▋▊▄
merge from render_pipeline_testing
remove the Rust Render Pipeline text when RRP is enabled, instead show Built-In Render Pipeline when RRP is disabled
Try/catch the gamepad update loop, disable on any error errors.
Fixed quick craft spending ~1.6ms rebuilding after almost every shot (inventory update)
Only rebuilds when the inventory is open now
fix stale frame on subsystems without fade in, fix flare not having a predict release event, remove fade in on flare subsystem to fix weird flipping artifact on flare
merge from cache_entity_links -> main
merge from automated_testing
Get rid of some debug logs spamming related to halloween dungeon spawning
Re-add the "Restoring X/100,000 links" for cases where the cache links aren't used
merge from render_pipeline_testing
fix RRP drawing ocean after water bodies
Halloween stringlights
Improve deployment, stop clipping, fix groundwatch, reduce network range, remove snapping
All tests pass
Pool 3 copies of thrown melee weapon and tool projectiles instead of 100. No point in filling our pool with 3900 copies you'll rarely see more than 3 of at the same time
Saves around 50MB of memory and gives me some leeway to eat that with gun effects next
▍ ▌▇▉▆▋ ▅▌▅▉▄▍▆ ▅▄▆▅▆ ▅▅▄▄ ▉█ ▇▆▄▄█ ▄█▍▇▊█▋ ▋▅ █▉▋██▆▋▊▊ ▊▋▅▇▆▊█▊▍▇▍ ▅▍▊▄ ▇▅▄ ▅▊▊▊ ▇█▍ ▋▊ █▊▊▇▊▋ ▊▇▇▇▊▆▆ ▌▄▉█▌ ▍▉▌ ▊▅▇▅▊▍▄▄▇▊▇█ ▄▄▍ ▆▍▇█▇ ▇▊▍ █▋▌▋ ▊▅▍▊ ▄▆▋▋█ ▇▅▍▋▊▇▍▋▇▋▆
Pass `serverStartup` parameter into RestoringLoadedEntityLinks() so we don't call RCON.Update() when pasting with copypaste
- probably harmless but it bugged me
Increase stick move distance required to activate gamepad
merge from cache_ocean_path -> main
Optimize server startup time by caching the ocean patrol path on disk (158s -> 138s)
- same idea as server occlusion grid being saved
- can increase version number to regenerate next restart
- convar `regenerate_ocean_path` will cause it to regenerate it next startup too
Remove three unused floats (skincol, skintex, skinmesh) from all player net messages that havent been used since 2016
Defaults were set to -1 so included in the proto
Saves 17 bytes per player
Prewarm 5 copies of each ricochet effect instead of 1, first magazine dumped after connecting created up to 2 more per prefab at ~0.5ms each
Stop networking IO wire origin data and duplicate slack levels to clients
Saves ~34 B per wired slot + ~5 B per wire point on network load