160,527 Commits over 4,566 Days - 1.46cph!

Today
update base_occlusion/foundation_offset_fix
Cant take the pt boat out of the deepsea (just like the other boats)
Today
More Uzi 3p setup - stock and no stock anims for world model and player - w_uzi anim hooked up, now swaps between the stock/ no stock anim sets when rifle mode is is toggled - 3p anims now using a subsystem, not an overrride....so I can use multiple masks (no stock = one handed, left arm stays on locomotion, left hand comes in for the reload, stock out = two handed - removed holdtype controller (not needed now) - Stock deploy / collapse anims play when toggling between the two - 3p anim updates + deploy/collapse stock clips - uzi.entity: ProjectileAnimationSubSystem driven by the StockDeployed flag, HoldType.uzi override removed - Uzi.cs (client only): sets the rifle_mode float on the world model animator from the stock flag. Skipped while the animator is inactive, same approach as CrossbowWeapon/Handcuffs driving their world animators
Today
Handle 0 byte model files crashing the game Adjust empty model file handling * Change where it bails so maybe its less error prone?
Today
Cherry pick alloc fix for pool table and fishing, and fix compile error
Today
▄ ▊▅▆▇▍▋ ▌▆▍ ▆▍▇▄▅ ▋▍▆▆ ▊▅▊ ▅▋██▆ ▅█▄ ▅▋ ▋▌▉▊ ▉▍▋▋▍ ▇▍▍▊▍▅▄▉ ▄█▉▊ ▍▅
Today
Fix industrial pipe segments being permanently dynamic via flag on the prefab, toggle their LODs only when on a moving parent like base io lines
Today
merge from base_occlusion/vending_door_fix -> base_occlusion
Today
Update tests
Today
Add support for doors to be "always closed" but still treated like portals between rooms - allows vending machines to block visibility between rooms while keeping the same code as doors
Today
Add the "door blocker" component for base occlusion to the vending machine prefab too
Today
Fix entities placed in sockets (vending machines) not linking up with their sockets until stability runs (which doesn't apply for vending machines) or server restart - part of the reason vending machines didn't block occlusion: they sometimes had no links
Today
Fix entities that were forced dynamic due to being parented never resetting the flag when pooled and staying dynamic when reused without a parent
Today
Update tests to be aware of the extra faces on foundations now
Today
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
Today
Reserialize foundation prefabs before adding new faces (for clean diff)
Today
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
Today
Cherry pick old animals fixes (flee when attacked from afar, do not sleep)
Today
UIBlurCanvasesBehind skips the capture while a CanvasGroup above is faded out
Today
▄ ▉█▋ ▌▉▇▆▊ ▆▋▉▍▅ █▊▅▅
Today
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 Lets try ignoring UV adjustments in surface.DrawTexturedRectUV * So the function's UV arguments work like expected, without the "sub pixel adjustment" stuff, which seems unnecessary? * Only the Lua binding is affected Refine DImage subrect support and KeepAspect features Minor cleanups Remove leftover debug panel from Paint tool, KeepAspect the icons Update GHA actions to version 6 for Linux and Windows Add trigger_portal_cleanser to entity override whitelist Fixed a crash with render.UpdateScreenEffectTexture Remove widgets.RenderMe and properties.GetHovered serverside * widgets would just do nothing, but shouldn't exist on the server, properties.GetHovered would just error out Minor cleanups of various methods to match wiki and vice versa Fixed a couple memory leaks with multicore rendering * Mostly relates to functions such as render.UpdateScreenEffectTexture and render.PushCustomClipPlane Try downgrading actions/checkout to v5 * goddamn github man Port a fix for math.ceil/floor Add some self checks for corrupted map files "load" concommand doesn't boot you from session for missing saves * So "load quick" bind doesn't disconnect you if you accidentally press it without having a quick save Fixed ZFunc not being set when overriding depth testing Fixed regression with DPanel:OnMousePressed due to recent changes Merge Pull Requests * Make ENT:StoreOutput treat times=0 same as times=-1, making it consistent with engine entities Try to add the file path to CWin32ReadOnlyFile::FS_fread warnings Move DrawTexturedRectUV changes to a separate func * DrawTexturedRectRawUV Prediction errors on arrays include array index for ints and floats Try to add classname to CUtlRBTree overflow message Rename ErrorFromLua to ErrorNoHaltStack Added CLuaInterface::FormatError Fixed some compile warnings Allow mesh.BoneData to be called with index 2 * Weight value is ignored in this case * Mesh() global now allows 3 bone weights * Mesh:BuildFromTriangles will now read up to 3 weights, depending on the input above Added 2 new sub scopes to PhysFrame * `PhysFrame-CPhysicsEnvironment::Simulate` and `PhysFrame-VPhysicsShadowUpdate` Added OnChangedFromMin/Max to math_counter entity * Also added SetMax/MinValueNoFire inputs for it Improve error handling of Autorefresh Fixed memory leak with Windows auto refresh with symlinks * Hopefully without regressions, as the system was changed somewhat substantially Fixed a crash with inputs firing from removed triggers Fixed wrong lookup function used in Hunter NPC code Add m_hStoredPathTarget to SetSaveValue whitelist Minor Hammer code fixes Fixed wrongful error with Mesh:DrawSkinned with 52 bones Fix Folder addons being searched in mountable games/platform Add "Engine Error" to Sys_Error_Internal printf Disable some unused Bootil stuff that spits out warnings Fixed an issue with prediction error counting affecting certain fields Make "SetPos touch triggers" change opt-in via argument * This change causes infinite loops in existing addons, such as TTT. Fixed auto complete for lua_refresh_file
Today
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.]
Today
Adjust empty model file handling * Change where it bails so maybe its less error prone? Fixed an issue with prediction error counting affecting certain fields Added icons for the 5 new TF2 maps
Today
Set "occlusion_door_immediate" to false by default (was supposed to be since we show everything within 32m)
Today
merge from aizone_sleep_fix
Today
Merge from vcc
Today
Merge from main
Today
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.
Today
Fix navmesh building on top of cargoship
Today
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
Today
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
Yesterday
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
Yesterday
▉ ▄▅▄▌▇ █▆ ▍▅▉▇ ▋▋▄▍▌▉▅▄█▅▌ ▋▆▋▆▉ ▊█▆██ ▌█▋▍▊▇▇▍█▇ ▄ ▍▄▉▇▇ ▇█ ▅█▅▉█▆▇▋ ▅▄▍▊▉ ▌▄▍▍▆▆▍▆ ▅▋▅▍▋▌▋▆▆ ▌▆▆▍▅▍▆▇▄▉▉ ▌▆▆▍ ▋▋▅ ▌▅▉▅▄▇▆ ▍▊▄▉ ▊█▊▉▌ ▅▋▇▉▋ ▅▊▊▆▊ █▇▍ █▅▅▄ ▊▌▄▋▋▅ ▍▋▅▆ ▅▌ ▇▅▌▇█ ▄▆█▆▇ ▋█▌▍▇▌▍▍▆ ▍▇▊▋▋▉▄█▉▇▌▉▌█▌▌▉▉▄▉▇▍▋▋▆▅ ▉▌▌ ▌▄▋▆▄▆█▊ █▅▌▇▊▊▄▇ ▌▍▄▄▄ ▌▇▍ █▌▍▉ ▌█▊ ▍▆▊▋▇▄▇▋▅▇▆▄█▅▅▋▆▊ ██▅▉▌ ▋▍▋▌ ▋▆▆▍▋▍█▌▅▄▍▋▆█ ▅▌▊▌ ▋▌▋▆▅▊▌█▄ █▇▇▌▋▉▅▉
Yesterday
Optimize doors when recalculating series of connected rooms when doors are opened & closed
Yesterday
merge from analytics_base_occlusion -> main
Yesterday
Fix compile errors
Yesterday
merge from work_queue_optims
Yesterday
- 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
Yesterday
Add analytics events for rotating and flipping building blocks
Yesterday
▄ █▍█▅▊ ▌▅▋▉ ▇▄▍▅▌▊▍██▍▍▋█▊▊▄
Yesterday
█ ▅ ▆▆▋▋▇ ▊▉▅▊ ▆▆▊▅▄ ▉▌ ▇▉▌ █▆▆▉█▄▋▅▊▆ ▇▉▅▄▊▉▆▋ ▄▅▍▌▍▋▆▇▍▊▋ ▇▍ ▌▊▄ ▍▌▍▊ ▆▊▉▉ ▍▌ ▇▊▄▊▉█▆▄▇▇ ▍▊▇▉▇▅▅▅ ▇▇ ▇▉▌ ▄▄▋▊▊ █▇ ▉▇▍▄ █▉▆▇▅▆▄ ▌█▆▅ ▇▉█▇▅ ▉█▅ ▉▉▌▋▄▉▋▌ ▊▊▄▋▉▊▆
Yesterday
boat_scientists_improvements -> main
Yesterday
Only attempt turns when we can actually see the player
Yesterday
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
Yesterday
Fix bad merge when updated before submitting livestock lamp changes
Yesterday
merge from main -> base_occlusion
Yesterday
merge from analytics_base_occlusion -> main
Yesterday
boat_scientist_improvements -> main
Yesterday
- Give up players if you've been chasing them for a while - Pursue for a max set of meters unless that player shoost you
Yesterday
replicated_convar_error_change -> main