130,621 Commits over 4,232 Days - 1.29cph!
    
    
    
        
            
            
            
                
                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
 
                
                
                
                
                
             
         
        
            
            
            
                
                LocalizeText use the new localization drawer
Removed its English field
Added a warning saying its obsolete
 
                
                
                
                
                
             
         
        
            
            
            
                
                RustTextEditor and PhraseDrawer share the same drawing code
Phrase adding flow
 
                
                
                
                
                
             
         
        
            
            
            
                
                Split crude profiler and memory tally into separate files as they should
 
                
                
                
                
                
             
         
        
            
            
            
                
                - Add more ConVars and explainations to indirect instancing
- Disable indirect instancing by default
- Disable debug info by default
- Fix multiple NREs when returning to the main menu
- Add assertions to catch use after free with the crude profiler / memory tally
 
                
                
                
                
                
             
         
        
            
            
            
                
                Holding a lit torch provides some warmth, comfort, and slowly dries wetness
https://files.facepunch.com/cipeaX/2025/August/13_13-59-NeglectedGreatargus.mp4
 
                
                
                
                        
                
                
             
         
        
            
            
            
                
                Starting the blockout again from scratch since my PC bluescreened
 
                
                
                
                
                
             
         
        
            
            
            
                
                Added exact match to PhraseSearchWindow and improved performance
 
                
                
                
                
                
             
         
        
            
            
            
                
                fix_server_browser_missing_servers -> main
 
                
                
                
                
                
             
         
        
        
            
            
            
                
                Check for AVX2 support instead of FMA because Burst won't compile for FMA specifically.
 
                
                
                
                
                
             
         
        
            
            
            
                
                Instanced snow tiles based on terrain maps with simple displacement
 
                
                
                
                
                
             
         
        
            
            
            
                
                English field of phrases is now non serialized, removed English from RustText
Added a button on PhraseDrawer to edit a phrase, opens a window that will amend changes to the json file directly
Phrases update now only collect phrases declared in code
 
                
                
                
                
                
             
         
        
        
            
            
            
                
                tutorial_mission_reset_nre_fix -> main
 
                
                
                
                
                
             
         
        
            
            
            
                
                Ensure logic still works if the skipped mission was the active mission
 
                
                
                
                
                
             
         
        
            
            
            
                
                tutorial_mission_reset_nre_fix -> main
 
                
                
                
                
                
             
         
        
            
            
            
                
                Dont serialize null missions
Dont serialize default state missions
 
                
                
                
                
                
             
         
        
        
        
            
            
            
                
                Replaced static fuel_barrel_black objects on large oilrig with yellow and red variants so gameplay remains unchanged. Ran S2P
 
                
                
                
                
                
             
         
        
            
            
            
                
                Caged in fuel_barrel_black objects on small oilrig (1 set of 8, 1 set of 4) and replaced 4 other fuel_barrel_black objects with fuel_barrel_red as they are too visually similar to the diesel barrel pickupables. Ran S2P.
 
                
                
                
                
                
             
         
        
            
            
            
                
                More set dressing of farm barge
 
                
                
                
                
                
             
         
        
            
            
            
                
                Removed static upright fuel_barrel_black objects from large oilrig as they are too visually similar to the diesel barrel pickupables. Ran S2P.
 
                
                
                
                
                
             
         
        
            
            
            
                
                mission_isstarted_nre -> main
 
                
                
                
                
                
             
         
        
            
            
            
                
                Improvised walkways progress
 
                
                
                
                
                
             
         
        
            
            
            
                
                Try/catch mission think system
 
                
                
                
                
                
             
         
        
            
            
            
                
                Assembly contexts for code declared phrases
Better de-duping and type skip when generating the phrases
 
                
                
                
                
                
             
         
        
            
            
            
                
                Reworked pouring so it uses a start and stop RPC. Holding left mouse button will pour (up to) 50ml out of the container every 0.5s (100ml/s), stop holding left mouse button and pouring stops.
Needs bespoke animations and visual effects, something like a continuous stream pouring out when the item is tilted over.
Video: https://files.facepunch.com/jacob/1b1211b1/Unity_0KbTAw2Am2.mp4
 
                
                
                
                        
                
                
             
         
        
            
            
            
                
                mission_isstarted_nre -> main
 
                
                
                
                
                
             
         
        
            
            
            
                
                Fix mission 'is started' NRE
 
                
                
                
                
                
             
         
        
            
            
            
                
                Allow AI to drive anything derived from BaseVehicle
New custom upload loop. Safely turned on/off if AI is assigned
HasDriver flag set but mounting logic stays the same
 
                
                
                
                
                
             
         
        
            
            
            
                
                Enable 3052 materials for instancing