140,133 Commits over 4,536 Days - 1.29cph!
merge from render_pipeline_testing
support for WaterWIndow in RRP, fixes no underwater fog when looking out submarine windows, etc
Hooked up fur shader toggle when shearing is ready
Added readytomilk and readytoshear debug commands
ai.showstate now parents it's Ddraw labels, looks a lot smoother
Animals can now eat from a trough, will prioritise that over grazing on grass
Renamed the "Horse Dung" item to just "Dung" (left the prefab/item def names referencing horse, no point changing those)
Hooked up male calf prefab/material
Show a mesh quality slider when previewing a LOD, allows us to quickly see what things look like at different quality settings
Merge from footstep_heavy_armour_fix
Fixed player footsteps not playing when slowed by excessive amount of armour
Affects players wearing full plate set as well as diving fins while walking on land
main -> character_customisation
Merge from tc_auth_group_tests (only count a codelock if it has greater than 2 users authed on it)
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)
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
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