14,872 Commits over 1,642 Days - 0.38cph!
Disable performance scopes in RenderTools - I feel like they're over sampling
Disable VPROF_ENABLED
Add profiler debug to SetObjectBounds
Cache animgraph parameters so we don't have to keep passing strings to native
Skip some physics stuff in PlayerController if we're a Proxy
Skip pending/destroyed children when collecting components recursively
Added Tooltips to ComponentSheetHeader. Resolves Facepunch/sbox-issues#7859
https://files.facepunch.com/CarsonKompon/2025/March/13_09-32-MediumorchidHartebeest.mp4
InteropGen: Can add [nogc] to class or function mark function with [SuppressGCTransition]. Add [callback] to a function to prevent it being added.
Cache PhysicsBody.BodyType
Add interopsystem_counts, for when interop recording is on
Buffer up engine console output and print it in one place
Add [nogc] to a bunch of stuff
add [nogc] to stronghandle internals
Fixed a bug where the parent network object could be destroyed when doing a network refresh if there were children to prune (Fixes Facepunch/sbox-issues#7812)
Game.Close will no longer NRE when called from Dedicated Server - will exit the whole application instead (Fixes Facepunch/sbox-issues#7781)
Use target local for delta snapshot transform and when reconstructing on the other side
Fix FixedUpdate so that Time.Now is always correctly aligned with the fixed delta, eliminate drifting
Clip allocations listener in lock
Move Interop getters/setters to function pointers
Support TIF image format in image loader and bitmap load
Add SceneTraceResult.Collider, to get the actual collider that was hit
Sound occlusion test occur less if the sound is further away
Don't create a new array every time we get ISceneCollisionEvents
HeavyGarbageRegion can be a ref struct
Use allocation free lock in MixBuffer
MultiChannelBuffer doesn't make an array
Mixing thread only sleeps if it has time to
Casting methods use SuppressGCTransition
Use shared buffer for ConvertToBinaural
LowPass processor uses Vector<T>
Minimize allocations in mixer
Pass WrappedPropertySet as in
Remap lowpass so it doesn't kick in until it should
Fix build failing, Vector3Int already had entry
Update CreateGameModal - don't have two General categories if we have uncategorized GameSettings, fixed not listing uncategorized GameSettings
Added negative (-) operator to Vector2Int and Vector3Int
Support ConVar.Min|Max for game settings when publishing a project
Try to use the closest instance (eg docked in that window) when we do 'Find in Asset Browser'
Fix wonky spacing in locations list
These hammer asset browser locations haven't worked in forever and nobody seems to care so bin
Hammer: hook up run map/launch in engine shortcuts
fix native build
Fatal error on all VK_ERROR_OUT_OF_DEVICE_MEMORY results, don't invoke ErrorReports
Bump default avoidance for nav agents
Count unshadowed lights properly
[SkipHotload] in allocation / GC profiling types
Fix exception when leaving a loading game
add overlay_frame, show frame stats
Sort Sandbox.Rules.Types
Access control: allow Type.IsClass, Type.IsValueType getters
Add wrapped GetAttribute<> to CodeGen wrappers
Lock the mixer any time we're messing with its children
Add Physics Debug button to console
Fix objects tagged "world" not colliding with triggers
Fix dedicated server crash when creating legacy particle systems
Give mixing thread higher priority
Our "LastSecond" stats were actually updating every 500ms
Add GcPause to performance stats
Add Sandbox.Diagnostics.GarbageCollection, internal, unused for now
Add overlay_alloc
Fix missing network profiling captures
Small optimizations in GameObject.Clone
Preallocate some containers
Slightly reduce reflection usage
Small optimization in Components.GetAll
Reduces allocations/garbage by getting rid of recursive lazy evaluation (yield).
Add SceneTrace.UseHitPosition to opt into computing of shape trace hit positions. This is opt in because it's not always needed and some games are using hitposition as if it's endposition, so it would be a breaking change https://files.facepunch.com/layla/1b1211b1/sbox-dev_c1anohx70E.mp4
Add Vector3.IsInfinity
Fix editor camera position getting stuck in an invalid state, check for NaN and infinity, jump closer to target before smoothing if distance is crazy
Change physics ideal hz back to 120
Strip scale from collider local bounds, scale is built into physics shapes
FixedUpdate is outside of Scene profile now
Record the entire physics step in profiler
Move CommandList and HudPainter to engine
Draw overlay profiler above everything, run editor loop manually
Audio mixing thread tweaks, catch SoundHandle.TickAll om Audio scope too
Async + Video profilers
Set transform to identity/zero during ConvertToPrefab serialization, restore instance transform after serialization
Closes sbox-issues/issues/7840
Launcher: clean up UI, make a few things contextual rather than showing everything all at once
https://files.facepunch.com/alexguthrie/1b1111b1/explorer_2JWhMC4P0r.mp4
Sweeper .sbproj update
Forgot to commit this with the object-fit stuff
Revert "Add option to ignore transform when serializing a GameObject, resolves Facepunch/sbox-issues#7840"
This reverts commit 2ac02f274f06d90bdc0719ec8b9f95c68a258642.
UI: add support for `object-fit`, move aspect ratio code into source text template
Can toggle profiling overlay in console
Profiling cleanup
HUDPainter aligns to pixels
PerformanceStats more buffer
Add overlay_profile [0|1]
Fixed InputAction copy constructor not setting Title
Add InputAction.Title, use in binds menu, fall back to Name if not set, resolves Facepunch/sbox-issues#7818
Add option to ignore transform when serializing a GameObject, resolves Facepunch/sbox-issues#7840
Revert "PlayerController: prevent EyeAngles stomping, maintain rotation when reenabled"
This reverts commit fc1d80ad7949e69b72eb8cd092047c99f969681d.
Let the mixing thread breathe more often
Add StartTick to FastTimer
Add CameraComponent.Overlay, UI doesn't need special drawing functions
Fix commandlist re-creating RenderAttributes every reset
Remove RenderMenuUI calls
Don't call OnRenderPostProcess anymore, it's been obsolete for a while
Lets not perfscope traces just yet
Start cleaning up Sandbox.Diagnostics.Performance
Graphics.Scope not boxing
Handle.MakeNextHandle not boxing
Rename legacy tonemapper to linear, upgrade existing ones using legacy to HableFilmic
PlayerController: prevent EyeAngles stomping, maintain rotation when reenabled
Stub out ISceneUndoScope for hammer sessions instead of throwing everytime we try to interact with a gameobject
Hammer: can create GameObject under mouse via right click menu
Fix GameSettingsModal incorrectly showing some properties as bool
PreJIT game and packages
Avoid allocation when getting default surface
Remove unused