10,999 Commits over 4,018 Days - 0.11cph!
Replacing Thread.Sleep with AutoResetEvent
Block main thread if worker thread can't keep up
Added client.maxsendqueue and server.maxsendqueue convars
Added some comments to network threading
Replacing lock-synchronized queue with concurrent queue
Replaced Stopwatch.Reset + Stopwatch.Start with Stopwatch.Restart
Enabled by default inside editor
Added client.maxreceivequeue and server.maxreceivequeue convars
Ensure maxreceivetime is still respected on the main thread even with multithreading enabled
Rearranging and simplifying some things, cleaning up, removing duplicate code
Sleep network thread when read queue is at capacity and write queue is empty (i.e. we're waiting for the main thread to catch up with us)
Steam networking log tweak to be more in line with Raknet
Fixed client main thread accessing peer directly in some console logs
Startup parameter to enable network thread (-networkthread)
Encryption support (forgotten file)
Baseline (disabled by default)
BuildingProximity.GetProximity: additional checks added in early December now only run on the server (fix attempt for FPS drop when using building planner)
Fixed xmas dungeons not disabling their environment volume trigger when entering the pool on the client
ClearAllEntitiesInRadius uses Vis.Entities
AnyPlayersInside uses BaseNetworkable.HasCloseConnections
ClearAllEntitiesInRadius checks IsValid
ClearAllEntitiesInRadius doesn't set blockBagDrop on entities that are already destroyed
Q: Is there a reason this cannot use Vis.Entities?
Optimization: Vector3.Distance -> sqrMagnitude
Fixed edge case where ClearAllEntitiesInRadius would not return entity list to pool
Disabled saving on gingerbread barricades, xmas dwellings and gingerbread corpses
Fixed Xmas dungeons using the Halloween lifetime convar (now correctly using xmaslifetime)
Fixed several edge cases that could call into EOS API with invalid client handle
Fixed BoundsCheck.ApplyBoundsChecks not doing the correct fallback bounds check when no BoundsCheck components exist (also optimized it a little bit in the process)
▉▆▋▍▇ ▋▅█▅ ▇▌▉▅▆▉▅ ▅▍▆▌▌ ▉▌▍▅ ▉▊▉▉ ▍█▌▄▉▊▋▋ ▆▇▍▋▊▌▋▅▍▍█▊▄ ▄▉▉▉▄▄▇▌ ▋▋▅ ▊▌▅ (▌▄▉▉▉▌▇ ▌▉▆▅ ▅▋▅▌ ▆▊▅▌▉▍▍▇█ ▉▊█▌ ▉▉▌▄▌▋ ▌▄ █▇▌▌▊▅▍ ▆█▌▇▅▄█▅, ▍▋ ▇▆▌▋ ▄▄▌▇▉▇▍█ ▄▇▍ ▆▋▌▆▆▄ ▌▋ ▍▄▄ ▊▇▆▌▄█)
██▉▊▊ ▉██▇▄█▌▄▅▇▇▉▆.▄█▄▄▌▌▊▋█▋▍▅▆▆▉█▉▉▋▅▇▉▅▍ █▄▍▊▍▇▄▆ ▇▌▅ ▆▌▇▉▋▄▍▄ ▊▉▆▌▆ ▆▊▉ ▌▊█▌ ▉▇▄ ▊▌▌▍▌▅▋▊ ▌█▅ ▇▊▆▍▄▅ █▉ ██▅▆▋█▇▌ ▅▊ (▍▍▊▍▌▋ ▋▌▄▅▍▍▌██ ▄▍▍▆▍▉ ▆█▍▍▉█▊▅▉ █▇ ▉▍▌ ██▇▌▉▅ ▅▄ ▇▊▉▊▋▌ ▊█ ▇▉▆▄▊ █▊ ▍▆▆▅▋▉▊▊, ▇▌ ▉▍▉ ▉▅ ▋ ▋█▆ ▅▇█▌ ▊▌█▄ ▅▋▇ ▍▆▄▌█▉ ▆▄▇█ ▊ ▄▆▌ ▆▌▄ ▍▅▋█ ▉▇▆▇▉▇▉▇▆ / ▉█▌▍▍▆ ▍▋ ▅▊█▊▄▋█▇▅ ▄█▍█ ▅▄▄ ▌▇▌▋█▌▅▋ ▋▅▍▆▆▆▍▍ ▍▆▌█▆▌)
▄▅▄▋█▋▇█▅█▆▋ ▊▋ ▋▅▄ ▄▉▉▊▊▌ ▉▌▅▄▊▍ ▊▊▉▇▍▇ ▋▌▌▆▇▆▍▅▄ (█▌▋▄▆▌▆▋.▄▊▆▇▇█▍▇▋▋█▉▌▊ █▊█ ▄▆▅▌▆▆▊▉ ▌▄▄▇▍▇▄█▌█▋▋)
Call MissionManifest.Get towards the end of Bootstrap.StartServer to make sure it's cached before players can join the server
▋▅█▊▌▋▆ ▊▆▌▇▊██▌▌▊▌ / ▅█▉▌▄▌▋▆▉▊▍ ▅▋▇▇█▊ ▌▌██ ▅▅▆▍
▊▊▄▅▍▄▇▊▄ ▄▌▄▄▇ █▉▌▊▄▊▆▇▋▅ ▉▍ ▋▇ ▇▉▄-▌▉ (█▍▋▅▄▅▄▊▊ ▋ ▋▌▍▉▌▅ ▌▉ █▇▉▋ ▇▌ ▍▊▍▆ ▄▆ █▄▄▉▊█▊█ ▋█▄▄)
Added convars: steamsendratemin, steamsendratemax, steamnagletime
Prefer underwater labs closer to their max size with more puzzles, pick the best underwater lab out of 25 candidates
▄▋▊▄▉ ▋▋▆, ▉▌▊▄█▌ ▉▆ ▍█▊▅▆▇▋▉▌ ▇██▄▇▉▍▋
▊█▄▆▇▍▊▆▆ ▅█▄ ▄█▍▍ ▇▇ ▅▆▌▍
External wall debris despawn time is 120s instead of debrisdespawn convar (DebrisDespawnOverride time added to DebrisEntity)
▉▌▊▊▄ ▊▅▇▆▊▉▄█▌▆▆ ▌▊▇▄ ██▆▉ █▇▆▋▋ ▊▆▄▉▆▉▉ ▊▄▍▄▉▌▉ ▄▄▇▍ ▌▇▉ ▉▆▊█▇▅ / ▉▅▅▋ ██▉▉▇█ ▉▆▇▋▉ ▌▋▆█▊ ▌▆▉▅▇▇█▅▄▄ █▅▌█▍▉▌ ▅▊▅▆ ▍▊ ▉▌▋█▊ (▄▋▉▇ ▍▋▆▇▉ ▄█▄▍ ▇█▇▍ ██▍▋▄ ▍▉ ▉▇▇ ▌▉▍▆▉▍ ▌▅▇ █▅▅ ▅▅▊▍▋▋▊▅▌ ▉▇ ▉█▆ ▉▌▍▋ ▍▋▊, ▇▇▋ ▊▌▌▅▅ ▆▅▌▌▆ ▆ ▌▄▄)
Print connection protocol in console instead of integer value