22,744 Commits over 1,642 Days - 0.58cph!
GenerateMipMaps shouldn't generate mips smaller than 1x1 (which might happen on textures with weird dimensions, e.g. 3x3)
UI: support border-radius shorthand transitions
Update first_person_arms_adjustments.vsubgrph
GameLobbyGroup: order most full lobbies first
Tweak LobbyCard to show additional member count instead of stacked lobby owner avatar, since we can't grab member list for a lobby without joining it currently
Allow ScenePanel to render an actual scene https://files.facepunch.com/layla/1b2011b1/sbox-dev_S7gKWkGBre.mp4
Include VertexPaintTintColor in trace vertex, fixes them not being included in baked props https://files.facepunch.com/layla/1b1911b1/sbox-dev_cpecr6gQeF.png
Potential optimization in CreatePrefabObjectLookup
This helps a bit when cloning larger prefabs, not sure how much it will reflect in our benchmarks, on my machine the gains were quite small.
Log a warning instead of throwing an exception when trying to send an RPC without being connected to a network session - it's harmless anyway and could happen with async tasks even after disconnecting
Added CodeEditor.CanOpenFile. Don't show "Jump to Code" on internal Components/Assets/Properties. Resolves Facepunch/sbox-issues#7579
Groundwork for active lobby info and get / set metadata for lobbies. Dedicated server, tcp and p2p support
CreateLobby async returns active lobby
Fixes
Protocol++
Added CursorShape.Finger to DropdownControlWidget. Resolves Facepunch/sbox-issues#7681
Add CursorShape.Finger and hover effects to ControlSheetGroup
Add Right Click -> Jump to Code for ToggleGroups. Resolves Facepunch/sbox-issues#7630
Track object messages and RPC stats and display the top 10 in the top left when net_debug is enabled
Keep everything nicely contained in NetworkDebugSystem
VR: Fix toggling VR inside the editor after launch
Add NodeResultType and new constructor for NodeResult that takes NodeResultType. Resolves Facepunch/sbox-issues#7684
Standalone: differentiate between failing to copy (e.g. no disk space) and not finding a file
Standalone: locate code resources in non-core locations (e.g. addons/base), fixes a couple of missing files
Standalone: tweak wizard layout to move all executable stuff together
Standalone: clean up exporter code, move into its own folder
Standalone: fix base assets path
Standalone: remove IsDevelopmentBuild and Version, move VersionDate to BuildDate & make it implicit
Show top 10 object messages by total calls then by total bytes received in top left when net_debug is true ( https://files.facepunch.com/conna/1b1911b1/sbox_OEOfBa3MKH.png )
Start by storing incoming RPCs by name, increment total calls, total size, and build an average message size
Track other messages too like spawn and destroy messages and their frequency. Add a temporary command to log the top 10
Connection.GetUserData will now work for any client - not just the host. ConVars marked with ConVarFlags.UserInfo will update for all clients when changed. Updated ConnectionInfo string table to store values individually so when one changes it doesn't send the whole lot again.
We can now include ping in the string table so that Connection.Ping should be correct even if you aren't the host
PolygonMesh serializes position and rotation so it can skip computing texture params from uvs on load
Fix drop shadow tint not being consistent with CSS Box
https://files.facepunch.com/sampavlovic/1b1811b1/0Mw5OMuyj4.png
Revert build layout on value change, not the right way to do it
Fix flickering shit on foliage by using conservative alphatest
https://files.facepunch.com/sampavlovic/1b1811b1/JjzPJ3w0dN.png
Fix stationary lights being treated as dynamic lights (#7667)
Build layout for texture on value change for TextureControlWidget, fixes control widget not being updated when texture property is set through code
CameraComponent.RenderToTexture needs to initialize rendering before rendering to texture - Fixes not being able to render to texture while in editor
Added Search Bar to Editor Keybinds, moved Reset to Default outside of the scrollbox, and gave bind FixedWidth to prevent alignment issues. Resolves Facepunch/sbox-issues#7643
Editor Keybinds now have alternating background colors and improved margins
https://files.facepunch.com/CarsonKompon/2025/February/18_17-10-ProbableHarrierhawk.mp4
Added negative (-) operator for Vector3Int. Resolves Facepunch/sbox-issues#7637
Added Vector3Int * Rotation operator. Resolves Facepunch/sbox-issues#7636
Add albedo absorption parameter to glass
https://files.facepunch.com/sampavlovic/1b1811b1/GpgOqFCTvs.png
Fixed properties with AssetPathAttributes not opening the correct AssetPicker and not always loading the Cloud Browser tab. Resolves Facepunch/sbox-issues#7666
Track other messages too like spawn and destroy messages and their frequency. Add a temporary command to log the top 10
Fix the CloudBrowser infinite scrolling only working in List View.
Added `ClothingContainer.PrefersHuman`. Switching to the human character on the Main Menu will toggle this option and save to your avatar.
Start by storing incoming RPCs by name, increment total calls, total size, and build an average message size
Show progress (#/#) when downloading files in loading screen
GraphCompiler no longer throws error when multiple NodeErrors occur on the same node in Shadergraph
Replace GraphCompiler.NodeStack with GraphCompiler.InputStack to prevent Circular Reference detection when a node is being re-referenced through a different input.
Shut down properly before reconnecting - ensure we've destroyed the scene etc
Don't do terrain hit testing when gizmo selection is disabled
Deselect mesh elements when clicking on nothing
Allow quad slice to set number of cuts
Add quad slice operation https://files.facepunch.com/layla/1b1811b1/sbox-dev_cT3NTDDdcH.mp4
Add remove bad faces operation
Remove duplicate nvpatch postbuild event
Avoid using parallax for diffuse IBLs, it's causing issues with non-uniform scaled envmaps for minimal actual gains
https://files.facepunch.com/sampavlovic/1b1711b1/SMr1GfypB3.png
Use `FileWatch.SuppressWatchers` to prevent error spam while downloading library files.
Only download new/changed files when updating a Library, delete any that no longer exist, and download files in parallel.
LibraryDetail version now updates the ComboBox upon downloading a new version of the Library. Resolves Facepunch/sbox-issues#7669
Can now use multiple of the same subgraph with different values without it attempting to cache values from the other node of the same type. Also tracks nested nodes with their own cache so it's still optimized.
Don't call Component.OnPreRender on dedicated servers
I'm gonna keep an eye on this - but you shouldn't be using this to do non-rendering logic
Standardise "Find in Asset Browser" and "Open File Location" option logic, create a browser if needed, raise tab into view
Rename "Open File Location" to "Go to Location" so I stop confusing it with the one that opens it in explorer