297 Commits over 699 Days - 0.02cph!
Merge: from culling_falsepos_improve
- Update: restore culling.debugshowstats functionality
Tests: built debug client standalone, used the command in editor
Merge: from culling_falsepos_improv
- Bugfix for NRE blocking connection to the server
Tests: none, trivial change
Merge: from culling_falsepos_improv
- Update(debug): added a bunch of editor only debug tools to be available in standalone, in culling clientvar group
- Update(debug): improved output of some of these tools
Tests: used these tools on craggy and apartment
Remerge of before due to submit race
Merge: from renderbatch_meshlod_improv
- Update: reimplementation of previous bugfix to be cheaper
Tests: pasted a boat, flew out and back - props were there
Bugfix: from renderbatch_meshlod_improv
- Bugfix for disappearing props on boats
Tests: paste a boat, flew out of range and back - all props present
Merge: from furniture_occlusion_fix
- Reimplement previous bugfix to retain furniture culling
Tests: rendeted and tried to run in and out, abused noclip, triggered bug once
Merge: from renderbatch_meshlod_improv
- Bugfix for basement doors not rendering
Tests: booted into apartments island, checked all floors for doors not rendering. Checked room 101 - stuff was rendering
Merge: from renderbatch_meshlod_improv
- Bugfix: opening doors should no longer cause them/others to disappear
Tests: pasted many doors paste and opened door, flew back and to - all was in place
Merge: from jobs3_as_default
- Update: UsePlayerJobs is set to 3 by default
Tests: booted craggy and verified server var
Merge: from renderbatch_meshlod_improv
- Optim: allow culling to work on MeshLods if they have invalid RenderBatch setups
- Optim: Avoid creating batches-of-1-mesh, as that inhibits Unity batching
Tests: ran around apartment complex, didn't see rendering artifacts. compared standalone builds, shows 20% fps improvement on my setup
Merge: from unity_frame_dump
- New(editor): frame debugger dump utility(https://github.com/sputnicyoji/unity-frame-dump) to help analyze what is rendered
Tests: used it to dump out a couple passes
Merge: from cargoship_bot_replication_fix
- Buildfix: expose setter for NetworkPosTickCallback
Tests: editor compiles
Merge: from cargoship_bot_replication_fix
- Bugfix: fix bots/sleepers disappearing from cargoship
Tests: spawned cargoship event, spawned bot, followed them for a couple mins - no houdini
Merge: from dropspectators_nre_fix
- Bugfix: fix for NRE that happens when multiple spectators watch a player being banned
Tests: 2 players spectated 3rd, banned them - no NRE
Merge: from alloc_clean_july2026
- Optim: avoid ~15 separate allocations related to scheduling/cancelling invokes
Tests: none, trivial changes
Merge: from fullserverdemo_removal
- Clean: Remove FullServerDemo implementation (RustRelay will take us to the promised land)
Tests: compiles, recorded client and server demos and was able to play them back
Resave TimeManager
Tests: nothing specific, but have been running with this changed for a couple days
Merge: from waterlevel_deepsea_sample_fix
- Bugfix for water level queries incorrectly mixing deep sea and overworld states
- Bugfix for deep sea ocean sim using overworld heightmap
- Simplified TerrainHeightMap API
Tests: ran unit tests, booted into craggy, explored deep sea and swam around
Merge: from servercacheplayerinfo_optim
- Optim: reduce the amount of state we recache every frame
- Bugfix: fix some state being out of date by half-a-frame
Tests: unit tests + playing on craggy
Merge: from server_player_refreshcolliders_optim (previously jobs3_...)
- Optim: avoid water queries when refreshing connected player colliders
Tests: On Craggy, ran around, sawm and crouched - could see gizmo size change
Merge: from pool_mt
- Bugfix: avoid extensive spills/misses with new Pool
- Clean: UseMutexPool is now correctly showing 2 entries in console autocomplete
Tests: unit tests, booted into Playground and Procgen 2k worlds and checked print_memory
Merge: from relax_stringview
Merge to cleanup plastic branch view, no actual files changed
Merge: from playervoice_allocs
- Optim: PlayerVoice processing no longer requires allocations
- Clean: removed most deprecated or generic ClientRPC/ServerRPC calls, now relying fully on our RPC source generator
- Update: Rust.SourceGenerator supports ReadOnlySpan and similar types
Tests: unit tests, 2p session on Craggy with voice going both ways
Merge: from tovector3_parse_format_fix
- Bugfix: fixes another edge case of weirdly formatted vec3 using StringView.ToVec3
Tests: unit tests
Merge: from tovector3_parse_format_fix
- Bugfix: fixes ToVector3 parsing bugs for various spacing configurations of Vec3, added unit tests to cover it
Tests: ran unit tests, checked F3 modes camera offset is correct and spawned entities appear where expecte
Merge: from player_benchmark_improvements
- Bugfix for PlayerModelBenchmark scene missing from builds
Tests: none, trivial change
Merge: from alloc_clean_june2026
- Optim: amortise or remove 19 allocation sources
Tests: on craggy, gathered resources, built a mini base
Merge: from buildcommand_allocs
- Bugfix for enable_marker_teleport teleporting to wrong Z
Tests: unit tests + enable_marker_teleport
Clean: add root-level *.slnx to plastic ignore list
Tests: plastic doesn't show it as a new file
Merge: from player_benchmark_improvements
- New: added PlayerModelBenchmark scene that tracks rendering cost of new player model
Tests: ran benchmark a couple times
Merge: from jobs3_skip_preallocnetwrites
- Optim: Jobs 3 - move netwrite pooling to all threads
Tests: ran around craggy with Jobs 3
Merge: from buildcommand_allocs
- Optim: reduce alloc count from building Arg commands from 20+ to 2 on average
- Update: expanded StringView API,
Tests: unit tests and running a bunch of different console commands
Merge: from pool_mt
- Bugfix: implemented missing Pool.Reset and ResetMaxCounterUsage
Tests: booted into craggy couple times with Skip Domain Reload active - no NYI exceptions
Merge: from serverocclusion_unittests_fixes
- Bugfix: NetworkVisibilityGrid.IsVisibleFrom didn't return consistent to GetVisibleFrom results
- Bugfix(tests): fix invalid setup of server occlusion visibility in select tests
Tests: ran unit tests
Merge: from pool_mt
- Optim: Pool is now cheaper to use in multithreaded context. Can revert to old pool with pool.usemutexpool 1 (default 0)
Tests: unit tests and played on Craggy in editor
Merge: from sanitize_specatating_players
- Bugfix for NRE spam when spectate mods don't correctly setup spectating
Tests: none, trivial change
Merge: from objectworkqueue_valuetype_allocs
- Optim: eliminate allocs from value types used in ObjectWorkQueue. Needs manual changes to be eneabled
Tests: none, trivial change. Checked IL
Merge: from createcorpse_triggerparent_nre
- Bugfix for TriggerParent not cleaning themselves up if a corpse forces it's way just before volume is destroyed
Tests: ran auto tests
Merge: from stableobjectarray_remove_dirty
- Optim: maintain synchronized order of dependent data as we remove from StableObjectCache
Tests: unit tests and a couple 2p sessions on Craggy with disconnects, shooting
Merge: from terrainkick_nre_fix
- Bugfix for NREs caused by kicking players(invalidating iterators) while looping over StableObjectArray
Tests: kicked self through clipping in terrain - no NREs
Update: replace hardcoded constant with GamePhysics.DefaultMaxResultsPerQuery (same value)
- also submitting missing meta file
Tests: compiles
Merge: from fix_boat_no_sail
- Bugfix for boats and vehicles getting stuck in open areas, effects not playing, building appearing slow
Tests: unit and perf tests, built and sailed a boat on craggy
Merge: from stableobjectcache_taa_nulls
- Update: Replaced StableObjectCache with StableObjectArray, updated TriggerParent, Projectiel batching and server player processing to use it
- Bugfix: fix for "Adding null to TransformAccessArray" warning
Tests: unit tests, 2p session on Craggy with jumping on boat, shooting, conencting-disconnecting
Merge: from unitask_reliable_taskpool
- Optim: UniTask internal pooling now reliably caches items
Tests: unit and perf tests, ran around Craggy with Jobs 3
Merge: from remove_netgroup_prealloc
- Optim: NetGroup objects are now lazy allocated, saves 150MB
Tests: ran unit tests, ran around on craggy
Merge: from useplayerupdatejobs_purge
- Clean: Removal of UsePlayerUpdateJobs 0 and 1 code
- Optim: RelationshipManager now uses cached server occlusion results instead of running new ones
- Bugfix: stop NPCs/Bots writing tick history, corrupting internal memory
Tests: booted a server from a save and connected to it
Subtract: roll back
148302 - merge from usepalyerupdatejobs_purge
Release servers are crashing (but debug not). Will chase up next week
Merge: from useplayerupdatejobs_purge
- Clean: Removal of UsePlayerUpdateJobs 0 and 1 code
- Optim: RelationshipManager now uses cached server occlusion results instead of running new ones
Tests: unit tests + ran around on craggy, used heli, zipline, swam
Merge: from triggerparent_jobs_isinside
- Buildfix
Tests: built server locally