- Box3D Physics
- Editor: Added new startup errors dialog for resolving code errors
- Editor: Component Selector now supports nested sub-categories separated by "/"
- Editor: Added Flat View option to Component Selector
- Editor: Missing Undo Steps to ControlSheet and certain ControlWidgets
- Curve Editor: Added "Move Range When Panning" button, which moves the entire curve when panning or zooming
- Curve Editor: Added "Retain Values When Changing Min/Max" button, which doesn't resize the curve's values when resizing ranges
- Curve Editor: Added "Fit to Screen" button, which fits the viewport to the curve's current range
- Curve Editor: Added [TimeRange] and [ValueRange] attributes to specify default range min/max and whether or not it's clamped
- ShaderGraph: Added Scene Color node (with UV address modes)
- ShaderGraph: Is Front Face node
- ShaderGraph: Normal Blend node
- ShaderGraph: Reflection node
- ShaderGraph: Tangent View Vector node
- ShaderGraph: Added GraphCompiler.RegisterGlobal
- Shaders: Automatically append mode combo to mode if no arguments are set
- Decals: Gizmos for the size
- Decals: Color Mix option for normal/rmo only decals
- Decals: Parallax Occlusion
- Decals: Color Tint is HDR enabling blooming effects
- Decals: Added decal resources
- Decals: Added transient properties
- New default surfaces
- Networking: Ability to specify port to use when hosting a dedicated server - defaulting to 27015
- Added AgX Tonemapper
- Enabled sc_visualize_batches publicly
- ParticleEffect.LocalSpace - float, allows sliding between local and world space
- ParticleEffect.InitialVelocity - velocity to start with
- Particle.ConstantMovement - apply movement without velocity
- Particles: ParticleModelRenderer.RotateWithGameObject
- BeamEffect component
- API: BaseControl.CreateFor - allows creating Panel based controls for specific property
- API: ViewSetup
- API: ReflectionSetup + RefractionSetup
- API: Pixmap.UpdateFromPixels( Bitmap )
- API: VideoWriter.AddFrame( Bitmap )
- API: SoundHandle.Time setter
- API: System.Random.FloatDeterministic( int seed )
- API: Color.WithColorMultiplied( float )
- API: [InfoBox] - allows adding inline help to inspector properties
- API: Scene.FindAllWithTag & Scene.FindAllWithTags
- Add FogStrength to TextRenderer
- Hammer: Map builder produces maps with significantly less draw calls, hugely improving performance
- Audio mixing crackling resolved by switching to a request based system
- Curve Editor: Dragging a Curve Handle outside the bounds of the Curve will automatically update the range(s)
- Curve Editor: Grid lines now have nice value increments and change with range instead of being static
- Curve Editor: Can now Pan/Zoom around the Viewport with Mouse3/MWheel
- Curve Editor: Clicking on a Curve Preset will reset the Viewport to fit the Curve
- Curve Editor: Added X-Range Inputs so you can modify the TimeRange of the Curve
- Curve Editor: Holding CTRL while dragging a Curve Handle will snap the Handle's position to the grid
- Curve Editor: Now draws a light grey rectangle with a dashed line to denote the min/max ranges of the Curve
- GameTransform.World is now cached instead of recalculating every access
- ShaderGraph: Can no longer delete Result nodes (the final output nodes)
- Editor: Simplified the Filter Menu in the Component Selector
- Editor: Component selector improvements
- Networking: Stop breaking prefabs during NetworkSpawn
- API: Re-categorize PlayerController.RotateWithGround and remove PlayerController.GroundYaw
- Bloom (quarter depth, fix rendering behind walls)
- Display default property values in editor inspector tooltips
- Clamp alpha on ParticleSpriteRenderer, fixes negative alpha rendering black
- RenderTarget.GetTemporary thread safety
- CommandList state is scoped allowing recursive command lists
- Nav Agent path invalidation behaviour
- Highlights: More accurate depth testing on outlines
- Highlights: Can target other renderers explicitly
- Don't render ScreenPanel if it's excluded by a camera's RenderExclude tags
- GameOverlay layer is split into opaque/transparent
- Material Overrides
- Curves use Binary Search for better performance
- Bail out of SoundHandle.Stop if already finished or fading out
- Prefab instance context menu: edit shortcut, tidy
- Startup crash on GTX 900 series cards
- Tooltips were recreating every frame
- Hotload errors when encountering anonymous types
- VideoPlayer: Unable to play VP8 (webm) videos
- Native editor tools (Hammer, ModelDoc) stylings
- Launcher showing added projects as launching when they weren't
- Curve Editor: Fixed grid numbers disappearing when increasing the range
- Curve Editor: Popup no longer opens between two monitors when opened near the edge of the screen
- ShaderGraph: "Render Backfaces" setting getting reset on recompiles
- ShaderGraph: shaders not rendering backfaces in Material Editor
- Fix [CallerLineNumber] not being properly whitelisted
- RenderTarget.GetTemporary: Don't try to UAV bind or create mips for depth formats
- Decals: Poor culling at edges for rotated decals
- Decals: Normal maps not decoding or transforming to world space correctly
- Decals: Not inheriting their GameObject tags
- Decals: Fix Decals in Valve's Shading Model
- Game Tick/Update running for one frame after ending the game
- [ColorUsage] HasAlpha issues
- Tint, Tags, Shadow Flags, and Source not getting reset on MeshComponent when disabling "Hide In Game"
- Standalone exports showing black screen
- Editor: Enum selectors showing a horizontal scrollbar instead of wrapping
- Editor: Cloud code assets failing to resolve on project initial launch
- Editor: Disabled text theme color
- VR: Duplicate floor in main menu
- Undefined nav agent behaviour if nav link traversal is not implemented
- Navmesh links worldstart/end position not taking rotation into accont
- WebM video playback for UI and VideoPlayer
- Fixed nested prefab issues related to undo/redi
- Fixed GameObject Transform not transfering to Prefab when Converting a GameObject to a prefab
- Fixed an issue when converting a GameObject (that is part of a prefab instance) to a prefab.
- Fixed prefab changes not propagating correctly to all their dependencies and open editors
- Fixed unlinking a nested prefab not correctly propagating to instances in open editor scenes
- Fixed GameObject to prefab conversion for sub hierarchies that contain nested prefabs
- Fixed reparenting parts of a prefab instance to another GameObject
- Fixed cloning parts of a prefab instance
- Fixed Gameobject ordering not updating when reverting instance to prefab state and applying instance state to prefabs
- Fixed Component order not being restored in some cases after undo/redo
- Fixed NavMeshLink.OnLinkExited not getting called if the link is completed on the frame the agent enters
- Fix drag/drop material preview not resetting in some cases
- Hotload: Fix NRE in DelegateUpgrader
- Hotload: Don't let DefaultUpgrader process delegates
- Fixed connection crash when trying to join via new instance to editor lobby with no game running
- Fixes [Property] properties from a Component's base class not being serialized when sent to other clients
- Fix network owner being unset in OnAwake when doing NetworkSpawn
- Fixed css gap property creating ugly uneven gaps
- Fixed white viewport when opening the editor
- Fixed terrain still being enabled on disabled GameObjects
- Fixed ListViews holding onto stale items
- Ensure ReflectionQueryCache.ClearTypeCache is called on hotload for game instance
- Fix faulty logic for in-place static field hotload upgrading
- Input Editor Fixes
- Inspector history/locking fixes
- Fix DressPrefabScene
- DebugTextSceneObject uses Graphics.DrawText in worldspace
- Fix HashSetEx Remove() being O(N)
- Shaders: Depth-Aware Mask Fix - Fixes objects in front of glass looking aliased
- Renderer: Multiple Vulkan Validation Fixes
- Renderer: Fix native legacy 2D debug overlays not rendering
- Renderer: Fix prefab thumbnails rendering with black background due to opaque bloom
- Renderer: Fix Alpha Test not clipping on non-MSAA
- Renderer: Fix MSAA alpha-to-coverage on depth prepass
- Obsoleted CameraComponent.AddHookBeforeOverlay - Use CommandLists instead
- Obsoleted CameraComponent.AddHookAfterTransparent - Use CommandLists instead
- Spritecard shader - Was only used by legacy particles
- Sandbox.Game.dll - Merged everything into Sandbox.Engine.dll
- Panel.Bind
- Projected Decals
- ::before and ::after to UI
- New Prefab Instance System
- Screen Space Reflections component
- Dresser component - makes dressing avatars easier
- Scene.FindInPhysics( Frustum )
- Scene.Get<T>()
- SequenceAccessor.Blending
- ITagSet.GetDefaults
- ParticleEffect.RealTime
- Panel.SetRect
- Plane.ReflectPoint
- Plane.ReflectDirection
- CameraComponent.BBoxToScreenPixels
- Bitmap.Size
- DebugOverlaySystem.Texture (draw texture on the screen)
- Transform.Mirror
- Application.OnWidgetClicked
- Graphics.CameraTransform
- Graphics.CameraRotation
- Graphics.FieldOfView
- Renderer CommandList wrappers
- Renderer.ExecuteBefore (command list, executes before rendering object)
- Renderer.ExecuteAfter (command list, executes after rendering object)
- CommandList.DrawReflection
- CommandList.DrawRefraction
- CommandList.DrawRenderer
- CommandList.DrawView
- CommandList.Attributes.Set( bool )
- CommandList.Attributes.SetCombo( bool )
- CommandList.GlobalAttributes
- Texture.Clear( Color )
- TextureBuilder.WithInitialColor( Color )
- Vector3.Dot( a, b )
- [FilePath] attribute for string properties
- accessors and constructor to Matrix class
- Matrix.CreateObliqueProjection
- Input.Suppressed
- Gizmo.Draw.Sprite angle parameter added
- Editor theme improved - new font, color scheme and many tweaks
- Shader memory layout changed to drastically reduce stuttering
- Time classes internally use doubles for improved precision
- Video Recording has been greatly improved for stability and speed
- Human female🙍♀️ models look a lot more female
- GPU -> CPU readbacks use cached memory improving speed
- VR gets it's projection matrix from the headset directly
- Updated Roslyn - your games will generate more optimized code now
- GameObjectReference serialization for prefab properties
- Create GameResource Save button when using a customer inspector
- Improved aspect ratio in asset browser thumbnails
- Select prefab/network root when selecting object in viewport
- Prefab instance UX improvements
- Rebuild model hitboxes on renderer model change
- Optimized NetworkTable causing excessive delta snapshot GC
- Cameras rendering to textures use a HDR texture and matching MSAA
- Make sure Screen.Size is correct on scene startup
- Component Eye Dropper can be used directly on Components in the inspector
- GameObject Eye Dropper can be used on Prefabs in the Asset Browser
- GameObject & Component Eye Droppers can be used on other GameObject/Component properties
- Load system scenes on any non-additive scene load
- Creating a new project or opening a Sample Project will now correctly show the "LAUNCHING" text
- Sample Projects no longer create duplicate entries in the Launcher when opened manually
- NetworkFiles includes stuff on resource paths
- Mixer Handles now support multi-edit
- Can now unlink multiple prefabs at once with multi-select
- Can apply/revert prefab instance changes with multi-select
- Unsaved changes dialog prompt for resources
- Update Skin shader with tint and age sliders
- Steam Audio update (4.5.2 -> 4.6.1) and static linked
- RenderTextures are cleared to magenta by default (to spot errors more easily)
- Updated to SDL3 and gamecontrollerdb.txt
- UI textures are mipbiased to avoid being blurry
- Allow modifying the transform of the prefab root
- Project settings UX improvements
- Whitelist JsonStringEnumMemberNameAttribute
- CameraComponent.RenderToTexture takes a ViewSetup allowing overrides
- Yoga config uses UseWebDefaults
- HudPainter.DrawLine uses SDF shape for much smoother lines
- Exposed and documented ImageFormat
- Whitelisted many requested types including BigInteger, Complex, Task.Is*, ReadFromJsonAsync and more..
- GameOverlays use a viewport z-slice instead of an additional depth buffer
- Intel Integrated Graphics no longer crash on startup, device limitations are checked on startup now
- SpriteRenderer crashing trying to render on dedicated servers
- UI no longer renders over the Scene tab in the editor while in play mode
- Various security exploits reported on HackerOne
- MusicPlayer crashes
- Razor elements now play :outro properly
- WantsFrameBufferCopy doing nothing outside of regular models
- Navmesh links triggering when not active
- SceneCamera.GetFrustum returning nonsense on ortho cameras
- Scene not being pushed before several prefab related editor actions
- Scratch depth buffer not matching scratch color dimensions
- UI corners being misaligned
- UI sometimes getting 1 pixel gaps between panels
- SetMaterialOverride( null ) not clearing any overrides
- Prefab Root context menu giving options that resulted in error
- TreeView not completing a SHIFT+CLICK action when the first item was selected outside of the tree
- Locate Prefab option now always appearing when you'd expect it to
- Depth-aware mask NaNs
- Label scissoring with WorldPanels
- Model renderer local bounds being wrong
- Fix rotated off-center box trace
- Null GameResource icons preventing editor start-up
- Blending mode on translucent objects, default alpha blending mode additive
- Missing project settings button on asset projects
- Input binds not saving
- Dedicated server crashes when trying to use lobby methods
- Error when in Eye Dropper tool of a list entry and the entry in the list is removed
- Fixes a discrepancy between the hashed identity of TypeLibrary methods and MethodIdentity in WrappedMethod from CodeGen when the method is on a class contained within another class
- BytePack struct serialization
- TypeLibrary is disabled during cctors / package load
- Context menu on normal files in the Asset Browser
- Error when multi-selecting an asset and a normal file in the Asset Browser
- Flickering when dragging material on to scene mesh
- Tooltips linger when mousing out of a tooltipped pannel
- Depth Linearization in Oblique Matrices
- Crash in CSceneAnimatableObject::MergeFrom
- [Button] not showing if not returning void
- Fixed menu addon not loading in editor (due to whitelist)
- ISceneStage spans the wraps the entire scene update, not just OnUpdate
- Prevent EditorUtility.RenameDirectory making a directory a subdirectory of itself
- Legacy particle system - legacy particles will no longer render
- Prefab variables
- Deleted many unused DLLs reducing the game size
- Removed unstable GPU shadow culling
- NativeRenderingWidget now doesn't render without a scene
- Graphics.RenderToTexture (use CameraComponent.RenderToTexture)
- Added Keyboard Api
- Added follower Prefab option to ParticleEffect
- Added create prefab on collision option to ParticleEffect
- Added TemporaryEffect component
- Added SequenceAccessor.Looping
- Added Mouse.Visibility
- Added Decal Sheet Sequence
- Added Compute dispatch indirect
- Added EditorEvent.ISceneView.DrawGizmos
- CommandList: Added Draw, DrawIndexed, DrawInstancedIndirect, DrawIndexedInstancedIndirect
- CommandList: Added DispatchComputeIndirect & ResourceBarrierTransition
- CommandList: Added GrabDepthTexture & Clear
- ShaderGraph: Preview Post-Processing & Lighting Settings
- ShaderGraph: Added GraphCompiler.RegisterInclude for Custom C# Nodes
- Editor: Added Copy/Paste/Reset options to Group Headers and add Reset option to Feature Tab
- Sound Event Default Mixer
- Project settings are now shown in inspector
- Cloud assets are read-only and can not be recompiled
- WorldPanel sounds now play from the correct position and mixer
- Servers now show across versions if the versions are compatible
- Improved hotload speed
- Asset Browser now listens for external file changes and refreshes automatically
- Sprite and Line shaders use compute shaders instead of geometry shaders
- Cubemaps now render directly to cubemap instead of copying to each face
- Depth-Aware Mask For Framebuffer Copy
- ShaderGraph cleanup, usability, and fixes
- Re-Ordering a ListControlWidget no longer displays all values as the previously dragged value
- Decal prefabs are staged when previewed
- Panel.PlaySound and sound-in/sound-out now plays sounds in 3D if in WorldPanel
- Most weapon animgraph 'components' have been turned into reusable subgraphs
- CSS @keyframes not order properly
- Sequence and direct playback accessors list sequences instead of animations
- Networking: Fixed outdated snapshot when downloading maps
- Terrain: Fixed errors on dedicated servers
- Terrain: Splatmap now default fills the first channel fixing blending
- ShaderGraph: Fixed "Render Backfaces" option
- ShaderGraph: Fixed "Open Generated Shader" button icon not displaying
- ShaderGraph: Fixed named connections getting severed upon re-opening graph when name includes space
- ShaderGraph: Fixed properties not clearing when you cut/delete nodes
- ShaderGraph: Fixed DefaultOpacity on ShaderGraph Result Node (in Unlit/Post-Processing Shaders)
- Material.IsTranslucent properly checks for "translucent" now
- Fixed Generating envmaps infinitely when an envmap probe was disabled
- Fixed MusicPlayer crashes
- Fixed compute skinning for morphs with no skeleton
- Fixed Component.OnAwake not getting called on disabled components during deserialization
- Fixed case where resource compiler can fail with embedded resources
- Fixed DisplayInfo.ForEnumValues name conflicts
- Fixed Inspector Multi-Edit not resetting when leaving selection
- Fixed EditorToolManager.SetSubTool not always working
- Fixed RotationEditorTool handle position not always updating
- Fixed very poor EventSystem performance
- Fixed some FBXs crashing
- Fixed navmesh division by zero on dual core PCs
- Fixed skybox env probe updating when not active