139,482 Commits over 4,505 Days - 1.29cph!
merge from main, fix proto conflict
Market terminal now needs charge from the powerplant to function
Can store 100 charge points, generates 0.15/s with a single heavy fuse and 1/s with a fully loaded power plant
Each transaction costs 10 charge
Marketplace terminal UI shows current charge
thumb_up
17
thumb_down
14
Apply aim sway scaled by movement speed when aiming held weapons in the passenger seat of the attack helicopter
Merge from render_pipeline_testing
Apply UnityPixelLightIntensityCorrection for billboardlight-RRP to fix particle lighting
Added a drink water need and corresponding behaviour to livestock animals, they can drink from a nearby water container or river/lake
Added functionality for a TC to modify upkeep rate based on how many players are authed
Based on a tier system, we can set three group sizes and what percentage a player adds to the TC within that group
Setup with some very placeholder values for now for testing
Tier 0 - first 4 players add 0% to upkeep
Tier 1 - next 6 players add 2% upkeep each
Tier 2 - any further players add 4% upkeep each
This means a TC with 6 players authed will have +4% upkeep, a TC with 12 players will have +20% upkeep
When a player deauths from a TC it takes 24 hours in real time before that player is removed from the tax calculation, so authing, building and deauthing won't bypass the extra upkeep
Very, very WIP, for internal evaluation for now
thumb_up
57
thumb_down
29
Make sure we only send entiites when a door opens immediately based on a convar, so we can do normal slower snapshot queue when doors are opened and we send entiites and let the "closer than 30m send everything" prevent pop-in
Merge from new_navmesh_fixes
Merge from cactus_impact_effects
Merge from FoundationMeleeLOS_fix
Merge from high_external_wallgate_COL
Merge from MarketTerminal_Names
Merge from AugustLowCraftBuffs
Merge from heavy_helmet_audio
Add audioMuffleAmount to ItemModWearable, allows us to muffle game audio based on specific clothing
Muffled game audio when wearing heavy plate helmet
Declare hair shader stencil block
Merge from render_pipeline_testing
Capped fuel pump crude storage amount at dome to 1000 (per pump)
S2P dome
Merge from deepsea_terrain_everywhere
Merge from deepsea_terrain_everywhere
Added deepsea.terrain_everywhere replicated convar, enables the deep sea terrain splats everywhere when enabled
added new cactus decals by repurposing the wood decals looks much better
https://files.facepunch.com/pilgrim/2026/August/23_22-55-SomeCicada.mp4
merge from automated_testing
S2P oilrigs, excavator and gas station
Add convar to toggle navmesh optis on and off
Gate per tile interlocked add needed for logging when logging is off
Fix ghostship A having no navmesh
Remove unused param in bake stats
Remove some spammy and uninformative logs
Adds lots of instrumentation, and increase navmesh build speed by around 30%, implemented common optimizations I've seen before or discussed with Lorenz:
- when rasterizing triangles, reuse values between neighbors instead of re-clipping the triangle against every column (7%)
- heightfield is supposed to have faster insertion than compact heightfield thanks to linked list, but because it wastes so much time pointer chasing during iteration it's actually slower, also instertion is not that bad when the column fits in cache (4%)
- fuse some span filtering operation to iterate once instead of 3 times on the spans (only 1% for rust maps sadly...) + the pooling from sbox doesn't really benefit us
As well as some new findings found from profiling:
- during heigthfield stage when comparing span A to span B for walkability tests, don't do everything from scratch when comparing B to A (9% whole map, but monuments and bases specifically x4 speed with this)
- watershed iterates through the whole list of regions multiple times, faster with lookup (7%)
Can get another 10% if we halve the detail mesh precision, automatically sampled lots of tiles for vertical differences to test and the difference is negligible
The real bigger order of magnitude gain is to not limit the number of threads and not time slice geometry collection, it stalls the server but goes 6x faster, could do it at server boot and just throttle the subsequent dynamic navmesh updates (player building bases, nodes etc).
New automated test to check for immortal entities starting with health <= 0.
Changed beancan max stacksize from 5 > 4
Tweaked steering values to make steering feel more responsive (hopefully better with some ping as well)
Added first itteration of a drift function, currently uses ctrl to lock the rear wheels
https://files.facepunch.com/el-hog/2026/August/23_13-18-PettyDingo.mp4
Reduced stack size for:
- F1s 5 > 3
- Bee nades 5 > 3
- Flashbangs 5 >3
- Molotovs 5 > 3
speculative - added a collsiion mesh to sleeping bag to prevent dropped items from passing through it.
re-centered gib parts again
- hot_air_balloon: 67 of 67 parts had their origin outside the piece, now 0
- got rid of a load of self intersections that caused the self intersected faces to be discarded despite unity triangulating on import. It can't triangulate self intersecting faces.
Re-centred gib part origins on 8 deployables
Same problem as the hot air balloon armour last commit - gib part origins weren't central to their mesh, so pieces rotated about a point outside themselves and the physics was inaccurate. Re-exported the gib meshes and re-assigned the collider boxes. should be much more accurate gib physics now.
Also on some gibs, they had parts that were self intersecting and were being discarded. Fixed that.
- HotAirBalloon basket: 43 of 55 parts had their origin outside the piece, now 0
- refinery_b (refinery_large_deployed): 24 of 83, now 0
- windmill_main: 22 of 53, now 0
- box.wooden.large: 19 of 33, now 0
- fireplace: 19 of 53, now 0
- lift_shaft_top (elevator): 18 of 33, now 0 - worst part sat 1183x its own half-extent off centre
- tool_cupboard: 15 of 44, now 0
- cannon: 14 of 24, now 0
- component_box_wood: boxes re-fitted