130,553 Commits over 4,232 Days - 1.29cph!
    
    
    
        
            
            
            
                
                - Properly support material property blocks (for real this time)
- Disregard LOD minimum distance for the 0th LOD entry to prevent objects hiding from getting too close to them.
- Fix ConVars
- Various cleanups
 
                
                
                
                
                
             
         
        
            
            
            
                
                More progress on bunker outside blockout WIP
 
                
                
                
                
                
             
         
        
            
            
            
                
                Clean: split up FinalizeTickParallel monstrosity
This is end of prep to rearrange systems for better occlusion cache reuse
Tests: 2p session on craggy with UsePlayerUpdateJobs 1 and 2
 
                
                
                
                
                
             
         
        
            
            
            
                
                Merged engine.json and phrases.json into a single file
 
                
                
                
                
                
             
         
        
            
            
            
                
                Phrase update only look for code declared phrases
Added "Update Phrases Usage", which is basically the old update scanning the whole project, collecting everything and saving where phrases are used
 
                
                
                
                
                
             
         
        
            
            
            
                
                Created prefabs and icons for charity plushies 2 and 3. 
Updated charity plushie 02 mesh. 
Created icon for charity plushie 01
 
                
                
                
                
                
             
         
        
            
            
            
                
                Added zombie model along with the anims
 
                
                
                
                
                
             
         
        
            
            
            
                
                Update: add native list expand to GatherPlayersToUpdate
No effect in current case, but can prevent surprise exceptions in the future if reused
Tests: none, trivial change
 
                
                
                
                
                
             
         
        
            
            
            
                
                Clean: minor refactor of ServerUpdatePlayerTick
Getting ready to shuffle system steps around, to re-expand occlusion cache and potentially reduce network traffic
Tests: none, trivial changes
 
                
                
                
                
                
             
         
        
            
            
            
                
                Bugfix: avoid stale occlusion results for new occludeeds
Didn't realize UpdateSubscriptions modifies occludees - this returns a bunch of overhead. Will try to fix next.
Tests: none, trivial change
 
                
                
                
                
                
             
         
        
            
            
            
                
                Optim: deduplicate occlusion queries
Saves 15-50% in 1k baseplayer pairs parallel occlusion perf tests.
Tests: occlusion unit tests
 
                
                
                
                
                
             
         
        
            
            
            
                
                Chandelier - adjusted alpha cutoff value for bike chain materials
 
                
                
                
                
                
             
         
        
        
            
            
            
                
                more_browser_fixes -> main
 
                
                
                
                
                
             
         
        
            
            
            
                
                Fix bug showing 'prioritise premium' as being off even though it was on
 
                
                
                
                
                
             
         
        
        
        
        
            
            
            
                
                FillCharacterVertexBuffers error fix attempt, backported from a never TMP version
 
                
                
                
                
                
             
         
        
            
            
            
                
                Set 'ShowEmpty' to false by default
Update tab boxes on open
 
                
                
                
                
                
             
         
        
            
            
            
                
                Crappy visualization method of connected links so I can make a video of it working
 
                
                
                
                
                
             
         
        
            
            
            
                
                Handle case of one face connecting to two other faces with the same angle by choosing the face that is closer
- bottom face of wall connecting to top + bottom faces of a wall via the side socket
- fixes so bottom <-> bottom and top <-> top since they are closer
 
                
                
                
                
                
             
         
        
            
            
            
                
                Fix dot product of normals missing `Mathf.Abs()` causing it not to catch special case of 180 degrees
 
                
                
                
                
                
             
         
        
            
            
            
                
                Temp fix for TextTable Pooling error NRE so I can use breakpoints
 
                
                
                
                
                
             
         
        
            
            
            
                
                Commit bunch of stuff
- setup faces & edges when setting up entity links (edges are essentially groups of entity links)
- add 'printfaces' command to debug what faces are closest and what edges are considered connected
- after a "bit" of trial and error grab the old "CalculateAngle()" method from previous hackweek and rewrite it
- be greedy and recalculate all closest faces whenever links change (instead of being smart with caching, it's a hackweek)
- all that should be left is debugging why certain faces don't want to consider themselves connection candidates
 
                
                
                
                
                
             
         
        
            
            
            
                
                ▉▉▅▊▌ ▍▌▌▄ ▇▅▋_▍▊▌_▊▍▄▆▅▋
 
                
                
                
                
                
             
         
        
            
            
            
                
                Improvised walkways more meshes
 
                
                
                
                
                
             
         
        
        
            
            
            
                
                ▍▄▋▉▊ ▉▊▇▇▉█▋█▄▇▉ & ▌▍▅▆▄▅█▍ ▊▋▅█▆
 
                
                
                
                
                
             
         
        
            
            
            
                
                work around crash when undoing changes on Sky Dome when playing
 
                
                
                
                
                
             
         
        
        
        
            
            
            
                
                Clean: ServerOcclusionJobs.Algorithm uses int3 instead of SubGrid
Simplifies the code a bit
Tests: ran unit tests
 
                
                
                
                
                
             
         
        
            
            
            
                
                Clean: get rid of non-burst CalculatePathBetweenGrids
- Also removed obsolete tests
We've been using burst version for a bit, and with current fixes it balooned to too many lines of code
Tests: ran unit tests
 
                
                
                
                
                
             
         
        
            
            
            
                
                Missile Tiki Torch - Added textures, updated model, added gibs, colliders, LODs, Icon, wind shader, sounds, tweaked lights and fire
https://files.facepunch.com/mauroavalos/1b1311b1/13_15-17-UntimelyCuttlefish.mp4
 
                
                
                
                        
                
                
             
         
        
            
            
            
                
                Bug fixes following Phrase english field set to non serialized
 
                
                
                
                
                
             
         
        
            
            
            
                
                saving bunker blockout wip
 
                
                
                
                
                
             
         
        
            
            
            
                
                added model, materials and textures for charity plushie 2 and 3
 
                
                
                
                
                
             
         
        
            
            
            
                
                Added custom wooden door for farm barge kiosk (mesh still WIP and not merged)
 
                
                
                
                
                
             
         
        
            
            
            
                
                Bugfix: apply same neighbour occlusion fix to jobs
Perf tests of 100k paths show degradation (serial +25%, parallel +52%), but perf tests for 10k baseplayer occlusion show negligeble impact (serial -9%, parallel +1%).
Tests: occlusion unit tests pass
 
                
                
                
                
                
             
         
        
            
            
            
                
                Bugfix: reimplement occlusion neighbour logic in non-burst flow
- Added anothed optim todo now that we have axis-count-specific neighbour checks
This partially fixes the failing test (it still fails since now it trips up in burst version)
Tests: ran unit tests
 
                
                
                
                
                
             
         
        
            
            
            
                
                ▍▋▆▆▇▋█▋ ▆▇▄▆▆▄▌▍, ▇██▉▋ ▄▅▆▅▊▊
 
                
                
                
                
                
             
         
        
            
            
            
                
                Update: Re-enable sorted pair occlusiuon visibility  caching
Tests: none, I know it's borked
 
                
                
                
                
                
             
         
        
            
            
            
                
                Merge: from baseplayer_serverupdateparallel
 
                
                
                
                
                
             
         
        
            
            
            
                
                Prototype crosshair editor section in the options menu, lets you configure your crosshair with a live preview:
https://files.facepunch.com/cipeaX/2025/August/13_16-47-NiftyUlyssesbutterfly.mp4
 
                
                
                
                        
                
                
             
         
        
            
            
            
                
                Update: disable bidirectional occlusion caching for now
- Left a couple optim/safety todos
This fixes the batch vs serial baseplayer occlusion consistency test, but one CantSee fails as expected. Going to fix it in a child branch, as that currently blocks more optims.
Tests: ran relevant unit tests
 
                
                
                
                
                
             
         
        
            
            
            
                
                prison update, prison barge made into prefab
 
                
                
                
                
                
             
         
        
            
            
            
                
                Moved files around and renamed some classes
 
                
                
                
                
                
             
         
        
        
            
            
            
                
                Added LocalizationToken attribute, use that everywhere instead. Much easier