This month's update includes Movie Maker, an editor makeover, more progress on the Sandbox Mode, serverside code, and more
Mounts API
LineRenderer: PBR Material support
LineRenderer: Face Mode Cylinder
SamplerStates API
Renderer.Attributes - set attributes are now deferred when the renderer is disabled and will persist when re-enabled
ModelPhysics GameObjects
Rigidbody networking kinematic proxy
GameObject.Network.RootGameObject
NetworkTable<T> and NetworkTransforms
NetworkSpawn accepts options to specifcy NetworkOrphaned and OwnerTransfer settings
Component.DontExecuteOnServer
Game.ChangeScene
Sequence Animation Events
SprintJoint.RestLength
DebugOverlay.Trace
TextRenderer.VerticalAlignment - the vertical alignment of the rendered text.
ImageFileGenerator.Cropping (useful for importing spritesheets or images with whitespace)
Perlin and Simplex noise types to RandomTextureGenerator
Offset, Scale and Octaves properties to RandomTextureGenerator (only for Perlin and Simplex noise types)
Bitmap.Tint and ImageFileGenerator.Tint
Bitmap.SetPixels(Color[])
[Step] attribute, allows you to specify step amount of a value in an inspector without specifying the range
[Range] (and [Step]) attribute support to types Angles, Rotation, Margin, BBox, and Sphere
Editor viewport now has a context menu
Projects can now be editor only
Application.RenderSettings for standalone
ITintable to ParticleEffect
Audio: Support FLAC 24 bit
Hotspot Editor - Position and Size properties are now shown when any Rectangle(s) are selected
Hotspot Editor - Added "Grid Size" option for entering exact values that are not a power of 2
Hotspot Editor - Added "Normalized Values" option, which shows Min and Max properties in place of Position and Size
ConVar properties now support decimal type
New surface types: plaster, plastic, cardboard, ceramic, fabric
Whitelist: ITuple
SerializedProperty: Added OnPreChange, OnChanged, OnStartEdit, OnFinishEdit events
Editor Apperance
More Vulkan Validation Fixes
Materials made with shaders created with ShaderGraph will automatically populate any textures used in samplers instead of the color white.
Made SceneViewportWidget editor shortcuts consistent with one-another so they need viewport focus.
Pressing a ViewportTools-related editor shortcut will update the related button visually without having to hover/click it.
Added missing XML summaries to TextRenderer.
Added missing XML summaries to ImageFileGenerator and re-categorized properties
Removed "Null or empty audio data" warning.
Physics: Box3D now uses the thread pool improving
Stepped increments with new [Step] attribute (or previous [Range] attribute uses) now work without the need for a slider
Inspector handles inspecting [ null ] better instead of erroring
Allow suppressing SB3000 with [SkipHotload], add a CodeFixProvider
Networking: Optimize prefab instance NetworkSpawn
Networking: Break prefabs before network spawning
Networking: Unify GameObject refresh logic
Networking: Fonts load over local instances
Networking: Deterministic map ids
Dedicated Server: Cvar fixes, cheats
Dedicated Server: clear command
Scene.Source is no longer set when loading an additive scene
Vignette renders before bloom
Derived GameResources are pickable
Removed SceneTree splitter and hotload event
FileSystem.Data is no longer resets with every game version
Ambient occlusion has more sane defaults
AssetPreview uses proper Scenes now
AssetPreview on small objects
Reduce allocations in Json.Diff
Misc Asset Browser fixes:
Only do FolderContextMenu for disk locations. Prevents trying to pin paths that aren't real etc.
Wait for the browser to populate after navigation before trying to highlight an asset.
When renaming non-assets, only auto-select the region up to the last '.' so you can just start typing without accidentally changing the extension, but still change it if needed. (Like windows does)
Editor shortcut consistency
ImageFile TextureGenerator Improvements
RandomTextureGenerator Optimizations
Texture.Load() no longer requires BaseFileSystem to load files
Texture.LoadAvatar() now takes an optional argument for the avatar size
Hotspot Editor - Can now hold CTRL or SHIFT to multi-select rectangles and edit multiple at once
Hotspot Editor - Editor now remembers the Grid Size and Reference Material for each .rect asset
Hotspot Editor - Can right click on a rectangle to quickly delete them
Hotspot Editor - Can now click-and-drag to move or resize rectangles
Vector2.Up is now ( 0, -1 )
Vector2.Down is now ( 0, 1 )
Vector2.Left is now ( -1, 0 )
Vector2.Right is now ( 1, 0 )
Vector2 now implements IInterpolator
Added Vector2.IsNan, Vector2.IsInfinity, Vector2.IsNearlyZero, Vector2.SmoothDamp, Vector2.SpringDamp, Vector2.ClampLength, Vector2.AddClamped, Vector2.Reflect, Vector2.Approach, Vector2.SubtractDirection, Vector2.Angle and Vector2.GetAngle
Vector2 and Vector4 now have an index accessor
Matrix.Transform now accepts Vector2 and Vector4
Many APIs now take Vector2 instead of Vector3 where it makes sense
Vector3.IsNearZeroLength actually checks if the length is near zero instead of checking if each axis near zero (which is how Vector2 and Vector4 work)
Added == and != operators to Vector4 along with Vector4.Equals and Vector4.GetHashCode
Added Vector4.WithX, Vector4.WithY, Vector4.WithZ, Vector4.WithW, Vector4.SnapToGrid, Vector4.Clamp, Vector4.Min, Vector4.Max and Vector4.Lerp
Added implicit operators for int -> Vector2Int and int -> Vector3Int
Added explicit operators for Vector2 -> Vector2Int and Vector3 -> Vector3Int
Make use of MethodImplOptions.AggressiveInlining across all Vector structs
Standalone: Now launches exported games fully
VR: Scaling fixed
VR: Main menu inputs work again
In-game debug wireframe rendering
TextRenderers now update immediately upon making a change in the editor instead of having to disable and re-enable component.
Can no longer delete the scene root
Decals: DecalDefinition.Tint is now used
Decals: Preview updates when properties change
Decals: Fix texture streaming requesting only lowest mips
Terrain: Only create terrain when active
Terrain: Fixed terrain "Fucked" error causing storage resource not to link to component
Update parent panel
Fix reparenting and cloning parts of prefab instances
Fix text area control multi edit
Fix Map Load Warning Spam + Unnecessary Creation of GameObjects
Folder Metadata now loads properly
Fix editor only prefab instances not getting destroyed on load
Physics aggregate surfaces
Fixed regression when calling NetworkRefresh on a GameObject hierarchy that contains child networked objects.
Fixed several asset load problems when running a dedicated server with a local project.
Server local project asset fixes
Input.Keyboard erroring on dedicated server
PostProcess running on dedicated server
Networking: unidentified RPCs no longer crash the dedicated server
Bytepack TypePacker respect [JsonIgnore]
NavMeshLink Start/End Local <-> World space transformation
NavMeshLinks sometimes lingering wen moving from one tile to another
Player controller reground
DragData.OfType includes value types when T is object
Incorrect nav areas offset when BoxCollider.Center is set
Plane.Trace returning hits behind ray
Fixed support for .flac sound files
ShaderGraph now tells you when you are using invalid parameter names to prevent conflicts
Margin struct now serializes/deserializes properly
Hotspot Editor no longer resets the Grid Size and Material Reference upon hotload
Blendable material preview
3D Skybox applies proper rotation from the Hammer sky entity
SerializedDictionary: set parent, formatting fixes
Fix inspector widgets duplicating after editing a property
Fix mono mixing
Fix ModelPhysics not using mass and mass center overrides
Fix PolygonMesh not clearing out unused materials
Mouse4/Mouse5 glyphs
RangeAttribute.Step obsoleted - Use [Step] attribute now
Citizen gibs - Now available on the workshop
Core cleanup
Shader cull: black_only, combine_colorcorrection_lut, cables, cs_mipgen, decal, downsample, general_filter, hair, projected_decals, projected_sheet_decal, sampletexture_bicubic, screen_texture_with_depth, tools_encode_environment_map, tools_modelviewer_wireframe, visualize_depth, visualize_physics
Various HL:Alyx particle textures
Unused thirdparty libs