22,806 Commits over 1,642 Days - 0.58cph!
Rebuild content
Rebuild shaders
Don't reset the menu environment when you quit a game, so you're on the same page
Allow TryJoinLobby to be called only once at a time
Disable play button when joining a game, so we can't keep pressing it
Fix disconnect message showing "Unknown Player"
Get rid of some obsolete function calls in editor tools
Start/Finish Edit Events for ControlWidgets and SerializedProperties
Does not yet cover all ControlWidgets
Automatically hotload user permissions if users.json is edited while the server is running - can change or add permissions without restarting the server
User perms config
Allow Json comments
Add default users.json file and change structure of config
Don't ignore game/config/users.json because we want to keep the default with comments
Return true in Connection.HasPermission if the connection is the host. We'll check user permissions from the config file for connections to a dedicated server.
Remove some test logs and make HasPermission available
LobbyConfig.HideInServerList would let you hide a lobby from appearing in any server lists in s&box but still queryable with QueryLobbies
Fix IsHidden support
Filter in the query
HideInServerList -> Hidden
HideInServerList -> Hidden
WIP, probably scrapping this
Mark a bunch of stuff as obsolete
- void AddSelectionUndo();
- void OnEditLog( string name, object source );
- void FullUndoSnapshot( string title )
- void PushUndoSelection()
- void RecordChange( SerializedProperty property )
Simplify Component Property Editing undo
Rewrite GameObjectInspector Undos, seems like most of them never worked in the first place?
Also gets rid of all fullundosnapshots calls in editor
Fixed p2p lobby clients not being able to connect to lobbies
Rename "Inputs" -> "Outputs" on FunctionResult since that's technically more accurate
Instantly update the Result node when Outputs are modified
https://files.facepunch.com/CarsonKompon/2025/January/16_16-18-WarmIncatern.mp4
FunctionResult node will produce Errors preventing compilation
https://files.facepunch.com/CarsonKompon/2025/January/16_16-48-VictoriousBrownbutterfly.png
Add ShaderGraph.IsSubgraph and add "Shader Sub-Graph" to the New Asset menu
Shader Sub-Graphs are now saved with the `.shdrfunc` file extension despite being the same asset (just so it can be registered with a different icon and filtered against in the Asset Browser to reduce user confusion)
Give .shader, .shdrgrph, and .shdrfunc assets different colours in the Asset Browser
Don't include BlendMode, ShadingModel or Domain in Subgraphs
Don't include "Material" ShaderNode in the Create Node/Palette menus of Subgraphs. Ensure proper extensions are used when opening the respective file types.
Add PlugInfo and make BaseNode.Inputs and BaseNode.Ouputs virtual.
Added FunctionResult ShaderNode, can only be created in Subgraphs and is created as the default node in newly created Subgraphs
Fix Shader Graph wanting to save/load as sub-graphs
Make sure [Title] attributes are still respected with PlugInfo
FunctionResult can now have a variable amount of inputs of varying types defined by a Dictionary. These are to be used as the outputs of the eventual sub-graph node
Use shader-specific types for FunctionResult Inputs
https://files.facepunch.com/CarsonKompon/2025/January/16_16-02-HumiliatingMorayeel.png
Fix selection after go deletion undo
Simplify Change Game Object Order undo
Simplify Group undo
Simplify Passte Component as New undo
Simplify change component order undo
When publishing an asset with IncludeSourceFiles, seek the asset and its dependencies for input dependencies (should include animgraph animations, texture source files)
Simplify Select All and Paste undos
Remove obsolete interface funcs
Remove ExecuteGameObjectEdit and ExecuteComponentEdit
Better error handling for undo scopes
Disable PathWidget "Copy Relative Path" if the path is not within the Project's Assets folder, just like files/assets.
Fixed connecting/connect rejection messages not using correct Name/SteamId
Fix Asset Browser Forward Button enabling/disabling based on the Back Button instead of itself.
Add Context Menu to Asset Browser Path Segments. Resolves Facepunch/sbox-issues#7391
https://files.facepunch.com/CarsonKompon/2025/January/16_10-33-GreedyQuahog.png
When loading ShaderGraphs and a connected property cannot be found, check for [Alias] attributes. This will resolve issues where loading old ShaderGraphs would look for old variable names. Facepunch/sbox-issues#5822
Added [Alias] to Combine node since its output was renamed at some point
MeshTool selection ops are now undoable
VR: More stuttering-related fixes, don't alloc joint data every frame
VR: Improved main menu scene
VR: Only create debug callback if `-vrdebug` is specified as a launch parameter
Add Undo Scopes for Selection and Gameobjects
Test dynamic properties get cleaned up when object is destroyed
Do the same when setting var
Fix dynamic properties referencing game objects / components
Additional cmd line fix and extra test
Tweak dynamic properties serialization
Failing GameObject dynamic property serialization test
Make IGameObjectDestroy internal for now
Add IGameObjectSerialize scene events (internal)
Dynamic property serialization
Improve CommandLine parser. Added CommandLineTest.
Add IGameObjectDestroy scene event
Started on #1773
Dynamic properties API tweaks
Dynamic properties tests
Basic get / set node
Some dynamic property documentation
Dynamic property cloning tests
Fix failing to start game if VRSystem returns nullptr for extensions
Delta snapshot improvements. Fixed a bug where it was possible for a snapshot ack to be ignored - should fix a rare and difficult to reproduce bug where sync vars can become stuck
Material.FromShader uses path and not just name - allows shaders of same name in different folders
When running commands from command line, enclose args in quotes so they aren't split again by spaces internally (Fixes Facepunch/sbox-issues#7388)
Print in console when client connects/disconnects
Add player count to DedicatedStatus
Add extra info to snapshot analytic
Rename SceneNetworkSystem.LoadScene to LoadSceneBroadcast
Remove Nav_WaitBuild, make it a LoadingTask instead - there's no reason this should be special
Fix fov in settings not working
Add Normals.hlsl, with fallback if no depthnormals are available, add Bindless::GetTexture2DMS
Pass MSAA value from pipeline, make DepthNormals a dynamic combo instead of a mode, conditional
Some cleanup
Retire more editlogs
Don't try to play voice on dedicated server