22,759 Commits over 1,642 Days - 0.58cph!
Default texture generator to empty image file for null texture properties instead of showing vtex resource control
Allow texture asset type to be dragged into texture image control
Example networking test for asserting certain message types
Motion vector experiments
https://files.facepunch.com/sampavlovic/1b0511b1/ShareX_18HStfTFsS.mp4
We aren't using m_pTransformBufferPrevData and probably won't need to with compute transforms, also remove m_hTransformTexture which has been deprecated for years
Custom JSON converter for spline points
Reduces serialization overhead by omitting certain fields when set to their default value.
Also uses shorter property names.
Add more summaries
more summaries
Simple AssetPicker displays Cloud Assets in a separate tab by default (with the option to combine them like it used to be). Show Cloud Assets is set to true by default so you can set Cloud Assets for anything called from native (like material/modeldoc)
https://files.facepunch.com/CarsonKompon/2025/February/05_16-10-CoarseTasmaniandevil.mp4
Add [SkipHotload] to RcSortedQueue comparator
Example networking test for asserting certain message types
fucking with VK_KHR_multiview and cubemap render targets
Remove Parameter.GetDefaultValue() and grab the current value as the default value
Fix Default Color Editor in Subgraph Node Properties
Subgraph Node ColorEditors are now bound to the defaults properly
Require DropOwnership() to clear owner instead, document exception
Shader Graph Functions (Sub-Graphs) (#1806)
- Adds a new Asset type with `.shdrfunc` extension.
- Shader Functions do not have the "Material" node as their final output node. Instead they have a "Result" node which has a variable amount of inputs defined by the user
- You can change the preview type of a Function Output so the value can be previewed while working on it
- Dragging a `.shdrfunc` file into a Shader Graph (or a subgraph) will create the subgraph node
- When "Add To Node Library" is set to `true` on a Shader Function it will be added to the Right Click -> Create menu
- Double Clicking on a Shader Function Node will open the Shader Function
- GraphCompiler now keeps track of the current Subgraph stack when compiling the preview and the output code, fully supports subgraphs within subgraphs.
- Constant nodes now have a "Preview" input when you're in a Shader Function
- Can Right Click -> Create Custom Node with a bunch of nodes already selected to instantly create a Shader Function. Will automatically create all the input parameters and result outputs.
- Texture Parameters/Attributes are fed the whole way up from each nested subgraph since you cannot define a default texture in the `.shader` file.
- Subgraph Nodes are now colour-coded Green and Result nodes are now colour-coded Blue
https://files.facepunch.com/CarsonKompon/2025/January/28_18-05-OddAsiantrumpetfish.mp4
Standalone: Separate operations up into build steps & sort
Standalone: ignore dxcompiler
Calling Network.AssignOwnership with a null connection will pass empty guid instead of throwing NRE
Make use of the return type of Scene.Load and return false if SceneLoadOptions has no valid scene set
Added BaseNode.OnFrame, moved hashcode check in FunctionResult out of OnPaint
Fixed issue with calling RPCs from within RPCs when using HostOnly / permissions and Caller not being set correctly. Fixes Facepunch/sbox-issues#7452
Add thumb to published workshop clothing
Decal: Update transform when dirty too Fixes Facepunch/sbox-issues#7518
Add missing shader include
Build shaders
Gpu decals point towards forward and not left 🤦
Fix Gpu Decals normals not transforming to world space
New decal component - https://sbox.game/dev/doc/reference/components/decals/
Revert sbox/commit/11b227aac0ff5e756beae0ced2410445b1270c70, it's causing hammer objects to duplicate for remote clients over the network
Make ResourceLibrary work for all Resources - meaning we can network resource references
Test reproducing Facepunch/sbox-issues#7443
Scene.Load: deserialize component properties before network spawn
Test reproducing Facepunch/sbox-issues#7443
Moved DirectoryMetadata from Project Cookies to Project Config folder. Metadata is only saved when changes are made instead of saving a bunch of default values that are identical.
If folder metadata isn't found, check ProjectCookie for legacy data
Standalone: projects that only have the VR control mode enabled should automatically launch in VR, otherwise default to using the `-vr` launch param
Fixed previous Show Hitbox Debug displaying BBox hitboxes in the wrong place
Invert Ladder climbing controls when looking down (just like half-life)
Remove logic to migrate from old project cookie, editor layout locations
Fix default layout raising cloud browser, do asset browser instead
Default WindowedLocalInstances preference to true
IES should be using RgbaF16 to avoid banding
Do InputRouter::OnWindowActive based on engine window (not app) focus, fixes click-to-focus going thru as an input and shooting or whatever
Add bitmap loader for IES files, treat them as images
Update mouse capture position if we get new absolute pos while locked (eg when unfocused, tabbed)
Keeps cursor position predictable/reliable, stops occasional out of date position being restored and yeeting my mouse across the screen
Only SetCursorPosition while engine window's got mouse focus, prevents unwanted movement in editor
Apply offset when sampling Prepass Normals
https://files.facepunch.com/sampavlovic/1b0411b1/dfC5VELlYw.png
Added Show Hitbox Debug option in Debugging Menu in the editor. debug_hitbox ConVar. Can debug hitboxes in the editor or in-game similar to Show Interpolation Debug. Fixes Facepunch/sbox-issues#7505
Make SegmentParams struct internal
ActionGraph: add warning frame for graphs that can't be saved
Fix case where empty editor scene is opened
Fixes Facepunch/sbox-issues#7026
Spline Class
Ported from scenestaging
Fixed Show Interpolation Debug not being able to be toggled in the UI. If a ConVar value is a boolean, use its integer form. Fixes Facepunch/sbox-issues#7503
Added Object property to WrappedMethod<T> (Fixes Facepunch/sbox-issues#7497)
Fix incorrect bounds on Gizmo.Draw.Sprite
Optimization branch - for testing over parsec
Add optional widget parameter to EditorShortcuts.Register
Allows non-Widget targets that only want shortcuts if a particular widget is in focus
Dispatch edit event when changing SkinnedModelRenderer.Sequence
Pass screen size to managed texture we create for depthnormal gbuffer, dimensions must match the swapchain, which resized viewports don't match
Enable no cull on face hover material to see selected backfaces https://files.facepunch.com/layla/1b0311b1/sbox-dev_xA8GKNxwIK.png
Support multi open edge extrude using edge extend until edge bevel is added (bevel is needed for closed edge extrude) https://files.facepunch.com/layla/1b0311b1/sbox-dev_v10zWWneqA.mp4