141,863 Commits over 4,505 Days - 1.31cph!
Added LOD preview mode to the RendererLOD, MeshLOD and MeshCull inspector
When enabled will run the LOD process just for that object in edit mode, so we can test LOD ranges without going into play mode
Supports multi select, also draws a box around the object in the scene view with a label for it's LOD
Works in prefab editing and in the scene view
Planters: improved placement guide meshes
- new low-poly guide meshes for large, small and triangle planters - all three were using their full LOD0 mesh as the deploy guide that was missing the soil
now looks and feels way less jarring and much more satisfying
https://files.facepunch.com/pilgrim/2026/August/31_23-29-IvoryMussaurus.mp4
LOD pass on computer station + mixing table decor
- computerstation.FBX re-exported with proper LOD meshes; computerstation.static LODGroup -> RendererLOD, deployed + apartmentcomplex variants updated for the new model
- MixingTable.Decor: glassware/water existed twice - embedded invisible in the table LOD meshes and again as 9 separate LOD0-only renderers on top; re-exported as one clean 3-LOD mesh with the glass material live, 12 renderers -> 1, LODGroup -> MeshLOD
fix glass portion of glass ak always rendering on top of rivers (with a caveat that may also need fixing)
Add fallbacks for SurfaceGGX and WorldGGX shaders
Fixed Group03m/male_05 using wrong texture directory
Try to fix -tools on Linux
Fix TTT erroring due to it using base gamemode panels
Fixed only some Sandbox entities not spawning when looking far away
* Specifically refers to Spawnmenu entity spawning, where SENTs and Weapon middle clicks were not spawning anything if the player is looking into air, while things like props, vehicles and NPCs were spawning. Now consistently works for all entity types.
Try to account for addons doing weird things in ENT.SpawnFunction
* Referring to spawnmenu gm_spawn* error handling notifications
Potential fixes for vphysics crazy position crashes
Minor changes in sound system
* 0.00001% less memory usage
russian roulette;
- lods added
- updated prefab
- material updated
LODGroup/RendererLOD -> MeshLOD conversion pass on vending machines, covered ch47/bradley props and tin can alarm: 129 -> 75 renderers, 23 -> 6 LODGroups, brings them into the LOD grid + occlusion culling
- vendingmachine family x5: RendererLODs collapsed to MeshLODs (55 -> 33 renderers) now can occlusion cull
- covered bradley/ch47 x6: LODGroups converted, wraps stay RendererLOD where materials demand it (66 -> 39 renderers); ch47_covered, ch47_covered_wrap + bradley_covered_wrap FBXs re-exported so LOD material order matches
- tincan.alarm: split into frame + cans MeshLODs so the rattle anim survives (8 -> 2 renderers); worldmodel onto MeshLOD too
merge from hackweek_parented_ddraw
Parent DDraw objects onto the player model instead of the BasePlayer object
merge from admin_status_indicators
Added Infinite Ammo admin status indicator
https://files.facepunch.com/raul/2026/August/31_19-35-AppropriateYosemitetoad.png
better FSM way to handle critter overrideable Interested states
merge from jukebox_snapping
Added Jukebox deployment snapping
https://files.facepunch.com/raul/2026/August/31_18-30-KeyWildebeast.mp4
9 alpha-less BC7 albedo/em maps -> DXT1, 3 also halved (retro cupboard ems, m16a2_02, loot barrel): saved ~28 MB VRAM, no alpha lost
no visual quality difference
VGUI tweaks
* Make Lua panels never overlap main menu (except for modal panels, TBD)
* Clientside DrawOverlay is no longer called from menu overlay panel
* DrawOverlay and CaptureVideo hooks use pooled strings
* DrawOverlay and PostRenderVGUI are now called just before main menu rendering (PostRender still is called after, TBD)
* Disable PreRender return value while main menu is open
Minor cleanup - give internal GMod panels better names
Move PostRender hook slightly earlier to never cover up main menu
* Specifically just before rendering the overlay panels/hooks (DrawOverlay/PostDrawVGUI), exactly where ClientMode::PostRender is called
Add caller info to "MapIO infinite loop" warning (if available)
Minor adjustments to detailobject system from CS:GO
* No functional changes, just maybe 0.001% faster loading times
Draw Lua panels behind main menu when it is open
Reduced DMenuBar spacing, removing it from the left side
Fixed DToolTip spamming PerformLayout from engine
* This was always happening, but was invisible before recent DrawOverlay changes. Now directly call PerformLayout to set/update the size, without going through the engine
Fixed DMenuOption spamming InvalidateLayout
* Another previously invisible issue
* Fixed DLabel:SetDisabled always calling InvalidateLayout(), even when the enabled value did not change. This is consistent with engine Label:SetEnabled behavior
Try to make Entity:IsPlayerHolding more reliable
Re-export fixed combine soldier player model textures
* Fixes green tint from VTFEdit export that I forgot about
Experimental error handling for Sandbox spawn concommands
* gm_spawn commands give player a notification when they fail, stating the failure reason
* This should hopefully help understand why it seems to not work sometimes?
Make seat jeep animation default to 0.5, not 0
Rework how Lua panels are put behind the main menu
* Fixes that one server having issues (probably not the only one), fixes spawnmenu getting rendered in save previews
Remove "VehicleMemDupe" entity modifier
* Appears to really just do nothing
Minor cleanups
Fixed green tint on group03 male player model texture
Minor adjustments to CEF implementation
* Added some safeguards in resource handlers
* Added mime type translations for gif, webm, mp4
Remove "Hinge Axis (Non functional)" field from prop_door_rotating
Fixed a crash with failing to create `physics_entity_solver` entity
Try to fix -tools on Linux
Fixed igniter and tesla coil damage tests failing since the last optim
Improve carvable pumpkin deployment
Batteries now add drain for the power actually reaching them
Updated tests
Regenerated MaterialIndex.json - was dated Aug 2021, so Tools/Optimize/Find Material Optimzations had been reporting 5-year-old state. Fresh scan covers 9,055 materials and flags 164 with compression savings (84 unique textures, ~68 MB VRAM potential) for example m16a2 ao on high quality compression = 1.3mb, normal compression with no visual cost = 0.7mb
First pass on the free wins: 15 alpha-less DXT5/BC7 textures -> DXT1, ~13 MB VRAM, no quality cost
- m2bradley mainbody/armor: removed DXT5 standalone override (5.3 MB)
- m16a2 AOs x3, flamethrower AO: HQ -> Normal compression (5.3 MB)
- workbench upgrade AOs x2, apartment door mats AO, crate_2/gib/webbing AOs: HQ -> Normal compression (2.2 MB)
Fixed wonky spark material offset. (Satchel charge and others...)
Fixed circuits dirtied mid tick not being handled in that same tick
merge from espcanvas_autosize_clan_fix
Improved alignment of the clan text UI on the player nameplates when it's auto-sized
https://files.facepunch.com/raul/2026/August/31_15-28-SatisfiedMonarch.mp4
merge from maintainables_fixes
Fix HQM collectable missing name token
Add beach to water pipe topology NOT filter
merge from maintainables_fixes
russian roulette;
- optim pass on game models
- updated prefab table collision rotation
Few more pipe acess fixes / prevented trees from spawning in the middle of the pipes / smoother terrain transition near the pipes
merge from sleeper_safezone_fix_2
Fixed typo causing sleepers to never be killed in safezones after server restart, regression from last month
Paintball Gun - added ammo to LOD3 to reduce popping
fixed blowpipe world model material order so it can be converted to meshLOD
russian roulette;
- textures updated
merge from ddraw_demo_fix
Fixed ddraw objects showing up in demos even if ddraw.hideddrawduringdemo is true
Before: https://files.facepunch.com/raul/2026/August/31_13-18-FirebrickDromedary.mp4
After: https://files.facepunch.com/raul/2026/August/31_13-19-GrizzledSteer.mp4
Paintball Gun - replaced rigged mesh in worldmodel with static one, updated hopper shader to fix self sorting issues
Disabled skin viewer viewmodel inspection for the crystal AR, SSR just cant work in the skin viewer so it looked terrible
Ornate horse mask WM LOD fix
Fix a scale override on large rig monument blocker, causing collision issues
Add a few missing vent cages
S2P large and small oilrig
WaterStandardCore light intensity correction
Reduce radius of all new crate gib sounds
Apply elite-crate-gib sound to crate_tools
Setup oxygen RRP postfx volume and overlay