userFlaviencancel
reporust_rebootcancel

7,991 Commits over 1,004 Days - 0.33cph!

33 Minutes Ago
Gun attack effects can now be recycled before their tail sound finishes, means we only have to warm up half the amount we'd need to
1 Hour Ago
Added replayInPlace to EffectRecycle, lets us flag effects that can be replayed in place instead of popping and retiring a pooled copy every time Applied to AK first and 3rd person shell eject effects for now, ~0.13ms -> ~0.04ms per shot Also means we'll only have to prewarm a handful of shell particle prefabs for all the guns
1 Hour Ago
merge from main
Today
Fixed EffectParentToWeaponBone 128B alloc per effect spawn
Today
When in first person, don't spawn effects with HideIfOwnerFirstPerson instead of spawning and hiding them right away Also fixed the 128B alloc in HideIfOwnerFirstPerson.OnEnable Saves 0.1ms when firing the AK
Today
Reduced the amount of pooled pilot codelock 200 -> 25 Keylock 1 -> 50
Today
Reduced the amount of pooled blowpipe dart projectiles 100 -> 4
Today
Reduced the amount of pooled ballista projectiles 100 -> 3
Today
merge from main
Today
Reviewed the amount of bullet impacts and decals we prewarm - Rock, gravel, stones, metal ore and tundra impacts were only warmed with 1 copy, now 25 like the others. - Glass impact 25 -> 32, it stays alive for 4s+ - Bullet decals 25 -> 30, forest was set to 1, cactus lowered to 5
Today
Prewarm 10 copies of each sound templates, they were all set to 1 small-sound gets 50 Trying to get to a point where I can empty an AK magazine without instantiating any prefab
Today
Fixed all the references to the default unity Quad in particles not actually using it Any of these particle being set active in builds could spike up to 7ms, caused by ParticleSystemRenderer::UpdateCachedMesh walking the Quad whole user list to check whether its already registered It was referenced by thousands of renderers in monument prefabs, this is why the AK muzzle was slow to spawn in 167737
Today
Stop HideIfAiming deactivating the muzzle flash once its particles finish. Every reused attack effect had to reactivate it Was spiking up to ~5-7ms in a build and only 0.2ms in editor somehow, now 0 It points at ParticleSystemRenderer::UpdateCachedMesh, checking that next
Today
Keep sound template AudioSources enabled while pooled, disabling them on every recycle flushed unity's audio DSP, stalling up to ~1ms when a sound got cut mid play RecycleSound in editor: ~0.45ms -> ~0.25ms The occasional 1ms "flush dsp connections" is gone
Today
Fixed quick craft spending ~1.6ms rebuilding after almost every shot (inventory update) Only rebuilds when the inventory is open now
Today
Pool 3 copies of thrown melee weapon and tool projectiles instead of 100. No point in filling our pool with 3900 copies you'll rarely see more than 3 of at the same time Saves around 50MB of memory and gives me some leeway to eat that with gun effects next
Today
Prewarm 5 copies of each ricochet effect instead of 1, first magazine dumped after connecting created up to 2 more per prefab at ~0.5ms each
Today
Create the pools LaunchProjectileClientside uses at bootstrap instead of on the first shot, avoids a ~365KB alloc when the first projectile of the session is fired
Today
Compile fix, missed a file..
Today
Fixed 150531 not working in builds (Mega hack to bypass the PlayerUpdateCanvases call when unity renders the realtime cubemap, saving some time wasted on UI for nothing)
Today
merge from cubemap_ui_optims2
Today
merge from soundocclusion_optims
Today
Revert ProjectSettings.asset changes
Today
Fixed sounds started by destroyed monument client entities when loading not being cleared correctly
Today
Sound occlusion optims: - stop checking every wall between a sound and the camera once one wall muffles it - looping sounds occlusion rays are batched - virtualised sounds (sounds muted by unity) check occlusion every 1s instead of 0.25s Standing outside an average base with 40 looping sounds in range: ~0.65ms -> ~0.05 ms per frame
Yesterday
merge from railcolliders_optim
Yesterday
Rail segments now cook their collider mesh in a job instead of on the main thread 5.2ms -> 0.03ms on the main thread per segment
Yesterday
merge from buildingprivilege_cache
Yesterday
Comment
Yesterday
Fixed regression with player boat privs when using the cache
Yesterday
Cleaned up building priv cache vs vis tests
Yesterday
merge from buildingprivilege_cache
Yesterday
Cleanup
Yesterday
Reordered the check so bases with no TC are cheaper
Yesterday
Convared the vehicle and entity privilege changes under buildingmanager.privilegecache
Yesterday
Building privilege tests
Yesterday
Legacy shelters, vehicles and boat building stations no longer use Vis queries Same base same spot: GetVehicleBuildingPrivilege 0.34ms -> 0.01ms GetEntityBuildingPrivilege 0.84ms -> ~0
Yesterday
Sort the cells oldest first
Yesterday
Store each blocks bound centre and net id in the grid so: - blocks out of the query radius are skipped without a dictionary lookup - the age check doesnt read every block from memory Only run HasColliderWithinSphere when the block bounds aren't entirely inside the search sphere Around 0.09ms for GetBuildingPrivilege in that same base, same spot
Yesterday
- Skip the bounds check for blocks that aren't older than the current best block - Visit the cell you're standing in first Skips a lot of work when standing in the core or middle of a base
2 Days Ago
Attempt at global building privilege cache, using a simple grid holding all the building blocks + a collider test on the winning block, because triangles and roofs have bounds larger than their colliders Thats enough to remove the Vis Entities call and keep the same precision. Works on the client and the server In a big base, 575 blocks around me: 4.60ms -> ~0.50ms
3 Days Ago
Added alien costume to the skin viewer
3 Days Ago
merge from Halloween2026DLC
3 Days Ago
▉▍▍█▍▍ ▊▉▊▍▄▋ ▋▍▌▍▉▌ ▄▍ ▉▄▄ ▅▅▌▉ ▌▉▉▋█▊
3 Days Ago
▇▉▇▋▇▄ ▄█▋▍ ▆█▆▋▆▍▅▌▌▌█▅▋▇▇▊▊▌
4 Days Ago
Building privilege debug draw convar
4 Days Ago
▅▉▌▉▄▌ ▌▍▊▉█▉█ ▅█▊ ▍▄▄█▇▊▍▅▊▆▅ ▅▌▅▅▄▅▌▋ ▌▋▆▋▇▊▊█▆ ▊▇▇▌▍ ▊▋▉▋▇▊ █▉ ▋▍ ▋▋▋▄█▇█▇▉█▊▌▊▆▊▋ ▋▆ ▋▉▆▌ ▆▅▅ ▇▉▆ ▋▆▆▇▄▇▍ ▊▍▉▍ ▌▅▍▋▇▇▌▅ ▆▅▊▍▆ ▋▆▊▌█▉▍ ▄ ▌▆▉▇▆▇ ▋▇▇▄▌▅▆ ▌ ▇▇▄▍▋▇▆▆▄ ▅▆▍▉ ▌▊ ▄▆▇ ▊▍▄▍ ██ ▅▄▄ ▋▍▅▌▌▄▌▌▇▋▉▋ ▉▋▉▅▇▅▆ ▋▍ ▊▆▌██▆▌ █▌ ▊▋ ▋▆▉▇▍▇█▌▊▍ ▇▆▊▉▅▅█▋▄ ▆▌▆▄▄▋▆▇ ▇▌▄█ █▅ ▋▄▆▆ ▆▅▄▋█▅ ▄▇▍ ▅▍▇▅█▋ ▌█▍█▆█ ▉▊▄ ▄▄▉█▌▅▍█▌▌▆▉▍ ▉█▄▄▊▋▅▇ ▄▊ ▊▋▊▊▌▊▄ ▋▊ █▄▊ ▇▉▉█▋▅█ █▆▅▅▌▌█▇▆▋
4 Days Ago
▅█▅▄▅ ▊▉▅▅ ▊▌▍ ▉█▉ ▉▍▊▌▊▉▅█▇▆▆▅▌█ ▋▅▊▄ ▍▌▄▋▆ ▌▆▅▄▊█▌▄▍ ▇▊▍▉▌▊ █▆ ▍▄▌▌ ▌▉ ▊▊█ █▅▌▊▊▉ ▌▊▌▉██▉ ▍█ ▅▇▋▆▉ ▅▇▍▊ ▋▍ ▄▌ █▍▋█▇▅ ▄▋▅▇▋
4 Days Ago
▄▌▋▊▆▍▊▅ ▍▌ ▇▇▅█▅ ▇▅█ ▋▌▆▊▅▊▄▄█▊▍▅█▅▆▌▅▍▄▍▉▅▊██▆▌▆ ▆▇█▊▇▍▆▄ ▌█▋▅▊▆█▄ ▆▌█ ▆▅▆ ▆▆▆ ▆▍▊▆▋ ▅▌▋▋ ▋▄ ▅▆▌ ▉▌▆▄ ▋▅▍▇ ▆▊▉▆ ▊▋ ▉▅▄▄▆ █▅▍▉▋▄▆ ▌▇▌▉█ ▌▍▄▍ ▇▌▆█▄▇▌▊▄▊ ▉▉ ▄ ▅▉▊▄▍▌▊▉ ▆█ ▍▉▇▉█▋ ▆▋ ▇▊▌▆▆▋▉▆ ▄▆▆▉▄▉▋▌▅▆▌█ ▍ ▄▇▇ ▄▇▆▍▋ ▋ █▍▌▍▅▌ ▆▍▇▍█▋▋ █ ▆▋██▋ ██▅▌▌▌ ▆▆█ ▆▌▉▊▉▇▌▇▋ ▅▇▌ ▉▆▍▍▍▆ ▇▌▅▇ ▍▌▆ ▆▇▆▄▄▅▍▊▋▋█▇▋▅█▊▍▍▆▄ ▍▍▆▆▍ ▌▊▌█▇ ▍▌▋█▇ ▄▉▆ ▋▄█▆▌ ▉█▉▆ ▄▍▆ ▆▇▋▋ ▆▇▅▄▅ ▆█ ▄▅█▌
4 Days Ago
merge from automated_testing