| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-05-13 | 25.2 kB | |
| Update 1.12.6912 source code.tar.gz | 2026-05-13 | 19.7 MB | |
| Update 1.12.6912 source code.zip | 2026-05-13 | 23.0 MB | |
| Totals: 3 Items | 42.7 MB | 17 | |
Blog post: https://flaxengine.com/blog/flax-1-12-released/
Release notes: https://docs.flaxengine.com/manual/release-notes/1_12/index.html
Discussion: https://forum.flaxengine.com/t/flax-engine-update-1-12/2585
Changelog:
- Add Web export support
- Add new collection type
ConcurrentDictionary - Add new SDL support as a base for input and widowing on Linux, Mac and Windows (used on Linux by default for now)
- Add
-lastprojectand remember last project directory in project file dialog - Add support for
.hppand.cfiles in Editor - Add option to render
CanvasintoGPUTexture - Add MSDF fonts rendering support
- Add utility function to
GUICommon.hlslfor MSDF fonts sampling in shaders - Add
UNITS_TO_METERS_SCALEto shader sources for world units scale - Add Git repository branch name and commit hash injection into generated code module metadata
- Add allowable characters enum to text box
- Add support for running engine with a single-thread only (content, jobs, drawing, physics)
- Add
WindowTypeenum toCreateWindowSettingsfor more flexibility - Add WebGPU rendering backend for Web
- Add platform-specific APIs to C# scripting (eg.
AndroidPlatform.DeviceModel) - Add modern message box style on Windows
- Add limit to max DDGI cascade updates per-frame to
2 - Add ability to loop root node in behavior trees
- Add
TrianglestoMeshAccessorfor easy index buffer access - Add new and improved color picker in Editor
- Add tree view mode for Content window
- Add improvements to
RadialMenucontrol scripting - Add alternative node titles to pack/unpack nodes
- Add lazy connecting to Visject nodes via
Alt + right-click and drag - Add option to focus selected Visject nodes with
Shift+F - Add direction gizmo in Editor viewport
- Add scrolling scene tree hierarchy to the newly spawned actor after drag and drop
- Add memory profiler category for Cloth
- Add
UnusedStorageLifetimefor asset file TTL - Add new Visject surface editor style for better readability
- Add larger input fields to Visject surface
- Add bigger default size of Editor windows
- Add selected code editor name to UI button for scripts project opening
- Add option to disable shadows on transparent material
- Add
CanSpawntoParticleEffectfor runtime control over particles spawning - Add
LongitudinalSlip/LateralSlipto wheel state - Add
Per Instance Randomnode to Anim Graph - Add
Instance Transformnode to Anim Graph - Add Spring Bone Physics node to Anim Graph
- Add
DragandStretchLimittoSplineRopeBodyfor more advanced simulation control - Add
Start Distanceto Volumetric Fog to match Exponential Fog more - Add additional way of loading unsupported texture formats via Texture Tool conversion
- Add new
IgnoreNodesScaleoption to skip skeleton nodes scale during import - Add
Platform.GetUserLanguagefor text localization, separate from locale used for numbers, currency and dates - Add
Localization.GetLocalesto list all languages in a game - Add docs about conditional features in public API
- Add various improvements to
MeshAccessorsuch asComputeNormalsandComputeTangents - Add debug drawing particle collision modules
- Add automatic recognition of Skinned Models for Prefabs
- Add model import option to only create material slots
- Add small improvement to terrain normals`
- Add sampler slots usage and inputs/outputs count to GPU shader program bindings meta
- Add
GPUDevice.DumpResourcescommand and fix output to be sorted by size and cleaner to read - Add
GPU_ENABLE_PRELOADING_RESOURCESand use it on Web/Android/iOS to reduce engine resources preloading - Add Box Projection to Environment Probe for better indoor areas
- Add
CaptureOffsetto Environment Probe - Add sharpening and better AABB history clamp to Screen Space Reflections temporal filter
- Add
OnSerializing/OnSerialized/OnDeserializing/OnDeserializedcallbacks to auto serialization code-gen in C++ - Add
RenderColorFormatoption to graphics settings for rendering pipeline buffer format - Add renaming underlying GPU resource (eg. for pooled render targets)
- Add normalization to Reflections debug view to be usable in HDR scenes
- Add
ShaderProfileFeaturesfor more expendable shader feature sets - Add
basis_universalsupport for textures on Web - Add implementation for loading interchange texture formats with multiple runtime formats support
- Add SPIR-V compression with LZ4 of Vulkan shaders (35% avg smaller)
- Add
.ddsfile import support to Editor on Mac and Linux - Add recycle bin to script deleting
- Add editor status message about amount of selected actors
- Add
Viewbutton to edit Environment Probe texture asset - Add
ProfilerGPU.Dumpcommand for GPU frame profiling log - Add DirectX12 Agility SDK to third-party includes
- Add screen vignette to Eye Adaptation histogram for more accurate exposure
- Add
Linear to sRGBandsRGB to Linearnodes to materials - Add checkerboard pattern to part of the alpha slider background in color picker
- Add support for picking colors in linear color space (with toggle for special cases like UI)
- Add code signing and disk image notarization for macOS game cooking
- Add file type filters to file dialog on macOS
- Add new GPU Query API that is lightweight and supports occlusion queries
- Add CPU profiler events to texture and buffer creation
- Add support for Depth Bounds test in all graphics APIs
- Add
Graphics.TestValuegeneral purpose utility for A/B testing features and perf in shaders during development - Add improvements to Volumetric Fog quality and performance
- Add dithering to Volumetric Fog to reduce aliasing
- Add smoother shadowed lights scattering by using medium shadow quality in Volumetric Fog
- Add
Focusedevent to control - Add improved Global SDF quality and precision of rasterization
- Add better debug view for Global SDF to include surface hit normal
- Add force SDF rebuild when holiding
Fkey and using Build All Meshes SDF optino in Editor menu - Add option to skip loading Model SDFs in game if disabled in Graphics Settings
- Add improved local-light shadow raytracing by starting ray from light, not surface
- Add FPS limit and pause option when game is unfocused
- Add verbosity level to platform log for better integration with Web and Android platforms
- Add Dead Zone to virtual input action for better usage with gamepad sticks/triggers
- Add create file Content Panel toolstrip button
- Add option to keep Content Window new asset options disabled when not possible rathenthan hidden
- Add warning when importing texture that is non-power-of-two and cannot generate mip maps
- Add improvements to particle age/lifetime nodes documentation
- Add
Script obsoleteandScript only in prefab instancebuttons to the script header bar - Add
IncludeInheritedTypestoRequireActorAttribute - Add some utility for copying parameter names to parameter right clickmenu
- Add improved orthographic/perspective viewport camera toggle
- Add UI editor grid toggle
- Add improved readability of highlighted text in drop-down menus
- Add better moving tools for UI widgets
- Add new actor transform and UI transform editor skin
- Add input
GamepadButtonDownandGamepadButtonUpevents - Add
Set Parameternode to Anim Graph - Add
Vector4normalize APIs - Add special query for closest point on Physx heightfield
- Add
Collision Meshes Postfixto filter collision meshes inside imported model via ending - Add
Autocollision option to handle imported or created model collider asset - Add saving viewport icons scale (global) within Editor window layout
- Add view flag to hide particles drawing
- Add Texture Group option for triplanar and procedural samplers
- Add memory profiler category for engine debug data
- Add incrementing/decrementing value box value with arrow keys
- Add being able to move move Visject nodes in smaller increments
- Add ribbon menu buttons to quick open product local folder
- Add support for entering numbers with digit separator into value boxes (f.e.
1_000) - Add
*to editor settings window title when settings are dirty - Add Game View toggle via
Gket and Navigation debug draw toggle viaPkey - Add keyboard navgation to context menu child menus
- Add tab navigation to Editor context menus and popups
- Add curve editor presets
- Add moving selected curve keyframes with arrow keys
- Add support for resizing Visject Curve nodes
- Add support for building dependencies with specific architecture
- Add support for Visual Studio 2026 as a generator for CMake dependencies
- Add
ShouldSerializetoISerializableto properly handle serialization of custom C++ types in prefabs - Add comment around asset from which asset reference graph originates
- Add highlighted color property to Dropdown control
- Add Network RPC messages splitting for large arguments payloads
- Add improvements to attribute editor
- Add X11 Class hints to Linux-based windows
- Add Mono AOT dynamic module preloading to speed up startup time
- Add support for Cooperative Suspend when running on Mono
- Add support for Visual Studio 2026 as a generator for CMake dependencies
- Add stripping DXIL debug data from the shader cache when not used
- Add
AutoAttachDebugPreviewActorfor Behavior Tree editor - Update XCode min version to
16.4 - Update meshoptimizer library to
1.0 - Update to
NDK 27as minimum for Android to fix 16kb page alignment issue onlibc++_shared.so - Optimize engine binary size on Windows and Android (smaller PhysX)
- Optimize actors copy/paste data to use a single JSON for all objects
- Optimize
MMethod::GetParameterIsOutto cache all parameters in a single bit-flag - Optimize
VariantTypename allocs to use static type when possible - Optimize out loading texture
DefaultLensDirtif it's not needed - Optimize updating Animated Model bones buffer when it's not dirty
- Optimize Animated Model bones buffer flushing with delayed draw action to reduce lock contention
- Optimize Anim Graph retarget to use cached pose to avoid dynamic memory allocation
- Optimize
SkinnedModel::GetSkeletonMappingto not use locking for better perf when multi-threading - Optimize Volumetric Fog on 2k/4k displays by limiting res to 1080p
- Optimize reflection probes rendering by using depth test to reject occluded pixels early
- Optimize reflection probes, lights and shadow projections rendering with depth bounds test
- Optimize
LOG()macro to use stack-allocated buffer for shorter texts - Optimize Screen Space Reflections tracing with Hierarchical Z-Buffer
- Optimize shadow maps rendering by using new
Graphics.Shadows.MinObjectPixelSizeto skip sub-pixel objects - Optimize
VariantTypeto use static type name in game or from non-reloadable assemblies - Optimize
GPUVertexLayoutcaches withConcurrentDictionary - Optimize Global SDF tracing to not scale steps nearby geometry and properly trace mip cascade
- Optimize
RendererAllocationby reducing fragmentation with operating on power-of-2 blocks - Refactor Mesh SDF generation on GPU to use raytracing for more precise results
- Refactor DDGI irradiance filtering for smoother and more accurate lighting
- Refactor DDGI irradiance sampling when nearby probe is missing to use precomputed fallback probes
- Refactor DDGI fallback radiance to use alpha for blending between fixed color and color at snapped location of the last cascade
- Refactor model LOD transition to run only when any material uses
Dithered LOD Transition - Refactor navmesh building to support updating all scenes automatically without specifying one
- Refactor
Animationeditor to use cloned asset for live preview of nested animations editing - Refactor Job System to reduce mutex usage with more atomic operations
- Refactor
ScreenUtilitiesintoWindowto be implemented per-platform but Editor-only feature - Refactor Editor windows docking system
- Refactor
DrawModesfield inStaticModelandFoliageTypeinto property with getter/setter - Refactor sRGB import option on textures to actually handle image contents with gamma
- Deprecate
GPUTimerQueryin favor of new queries API - Update DXC shader compiler to
1.8version (for D3D12) - Rename
GPUContext::ClearStatetoResetStatefor constentency - Remove
NeedsHitNormal/HitNormalfeature fromGlobalSDFTraceto simplify code - Fix shaders on Xbox to be precompiled
- Fix game viewport scaling when using custom aspect or resolution to simulate actual logic
- Fix animation state transition inputs when using other surface context
- Fix being able to open or close script editor with no fields
- Fix skinned model retarget source asset filter to work after
AssetPickerrefactor with new validator - Fix invoking Anim Event on the first or last frame
- Fix invoking asset load event if it's referenced directly
- Fix check method for type editor not working in a collection
- Fix Visject Surface node dependent connection types init on load
- Fix issues with model data storage when doing long actions in async (eg. SDF generation)
- Fix prefab preview to better match model bounds inside it
- Fix prefab preview to wait for the assets streaming
- Fix
Time::Synchronizenot reset time on unpause - Fix internal function name collision with base class function in bindings
- Fix text box selection height on macOS with custom system scale
- Fix compiler error and wrong CPU architecture warnings on WoA
- Fix spline Bezier drawing when using tangents offsets
- Fix shader compilation with HLSL 2021
- Fix sampling Global SDF gradient at lower border
- Fix Global SDF trace loop limit down to prevent too long shader execution in extreme scenarios
- Fix DDGI iradiance to use debanding by applying quantization error to reduce yellowish artifacts due to
R11G11B10format - Fix DDGI cascades blending to be smoother
- Fix DDGI flickering on floors aligned to world axes
- Fix directional light cascaded shadow maps rendering stability
- Fix AOT libs cooking to avoid file dirtying for more accurate iterative cooking
- Fix async tasks destruction to wait on the dependencies in chain
- Fix material shader generation when material layer fails to load
- Fix shader graph assets loading to wait for async task
- Fix blend shape always applying zero weight if default weight is zero
- Fix out-of-bounds write while parsing command-line arguments
- Fix
Array::RemoveAtKeepOrderto avoid memory override with large mem copy - Fix
HashSet/Dictionarycompact rehash under heavy collisions - Fix collections capacity growing to use the closest power of two
- Fix C# project configuration of launch Game to matych selected config in Visual Studio
- Fix debugging VC++ projects in Rider Linux/macOS to launch correct configuration
- Fix exception thrown when reloading open windows
- Fix clang bindings code generation for non-const ref parameters
- Fix missing scripting api tag on
MeshAccessor::Stream - Fix managed wrapper function parameter handling for
BytesContainerand managed boolean array - Fix incorrect class namespace in bindings class name lookups
- Fix compiling C# scripts that use
nugetpackage to properly resolve it on 1st build - Fix missing move semantics in script object reference
- Fix
Resize to Fitto properly dirty state of level editor - Fix group element header text clipping
- Fix issue with Editor tabs not collapsing panel 1 if no tabs on panel 1
- Fix Editor tree node not expanding on drag over arrow
- Fix C# Json serialization to use proper value comparison for structures with Scene Object references
- Fix showing C++ structures inlined in collection editor when they have a single property/field
- Fix sRGB between Linear conversion to remain Alpha unchanged
- Fix sky, skylight and reflections banding artifacts with a random noise
- Fix yellowish artifacts due to quantization error in TAA and composite image output
- Fix dark Screen Space Reflections in some spots when using Software Tracing
- Fix Volumetric Fog rasterization on Vulkan (inverted Y axis)
- Fix Volumetric Fog to not flicker on temporal blend when resizing the screen or changing quality
- Fix Volume Particles to apply opacity/mask into emission for proper shape
- Fix small lights and small particles rasterization into Volumetric Fog
- Fix missing DDGI on D3D11 when object counter readback buffer doesn't have data on time
- Fix Vulkan synchronization between CPU and GPU to prevent running over
frames in flight - Fix showing folder contents on macOS in Finder
- Fix various DPI issues on macOS in Editor
- Fix various missing features from window-management on macOS
- Fix shadows from wireframe materials
- Fix missing
ChannelMaskparameter type clone for Material Instance - Fix loading cube texture import settings
- Fix missing vertex counting in draws (use index count to approx) for profiler
- Fix parsing
elsepreprocessor and&&conditions in bindings generator - Fix rendering on Intel-based macOS to use integrated GPU primarly
- Fix missing parent tags when creating nested ones from code
- Fix rendering postfx with color grading only in use and optimize color grading LUT to be skipped when unsued
- Fix crash when control reference gets invalid in Editor
- Fix crash when showing cube or volume texture in
GPUTextureBrush - Fix UI raycast if UI is clipping children
- Fix double scaling raycast in canvas scalar
- Fix Rich Text Box vertical alignment of the inlined images and whole contents
- Fix GPU Vertex Layout usage with explicit offsets to properly hash and calculates stride
- Fix broken
DrawWireTriangles - Fix postfx material flicker due to lost asset reference
- Fix missing
OrthoSizeproperty serialization onCamera - Fix animated model bounds to properly update after animation tick
- Fix
SplineRopeBodysimulation when moving spline actor - Fix
Chromatic Distortionto be based on1080pas reference for resolution-independent - Fix drawing editor thumbnails when texture used by asset is using dynamic streaming
- Fix drawing incorrect LOD transition when using 2 cameras in a scene at once
- Fix environment probe selection to use closest one to the object
- Fix sending replication message to newly connected clients for objects that were not spawned
- Fix importing and using files without extension in Editor content
- Fix collection editor of scene object references to use compact inline layout
- Fix material slot comboboxes update when editing model material slots
- Fix rebuilding navmesh data for multiple scenes at once that share the same navmesh runtime
- Fix to not crash after unhandled exception
- Fix various issues with audio and video playback
- Fix missing audio on OpenAL when changing active device
- Fix restoring
NuGetpackages for target with multiple projects - Fix restoring
NuGetpackages to run before project build to ensure files are downloaded - Fix deploying
NuGetpackages to include the correct library file name - Fix deploying
NuGetpackages to include dependencies (recursive) - Fix restoring
Min Screen Sizeof the model on reimport - Fix mesh collision proxy setup for meshes using packed positions format
- Fix timescale in
FixedTimestepparticles update and when using Editor preview - Fix missing material graph references
- Fix missing light shadow resolution serialization
- Fix rendering postfx with color grading only in use and optimize color grading LUT to be skipped when unsued
- Fix rare async task crash when it's canceled while dequeuing
- Fix replicated-object deduplication by hashing/equality on
ObjectId - Fix importing file when target location already exists
- Fix Editor state after loading a scene without compiled game modules
- Fix code editor default handling and missing custom code editor arguments
- Fix double-clicking on properties splitter bar to auto resize split
- Fix caret blink speed to make caret visible more of the time
- Fix rotation on UI handles which implements total parent rotation properly
- Fix textbox length set to
-1for unlimited - Fix
Control.LocalLocationto use parent controlGetDesireClientArearather thanBounds - Fix
Render2D.DrawRectangleto avoid alpha overdraw on the corners when thickness is large - Fix foliage dithered LOD transitions when using shadows
- Fix applying AO twice for lighting in Forward shading and use correct specular occlusion on reflections
- Fix Forward shading to match Deferred in fog and reflections rendering
- Fix texture GPU resource debug name in non-Release game builds to match the path in project
- Fix Vulkan timeout to be larger (5s)
- Fix Global SDF update when changing Draw Modes of the model
- Fix
MeshAccelerationStructureto useMeshAccessorfor proper mesh format access - Fix showing internal surface parameters (eg.
Base ModelinAnim Graph) - Fix show whole timeline and show whole timeline when animation is opened
- Fix
.pchfiles rebuilds after MSVC toolchain updates - Fix deadlock when hot-reloading scripts in Editor while
Animationasset gets auto-saved - Fix sphere with negative radius getting culled to early in physics collider debug draw
- Fix potential stack overflow inside
CustomEditor.RebuildLayout - Fix
MaterialBase::GetParameterValuewhen parameter is not overridden - Fix
MeshAccessorto properly reference model asset data during the usage - Fix
MeshAccessorto validate buffer existence in C# API - Fix
MeshAccessor.Streamcount for items not aligned to buffer start - Fix invalid index buffer format returned by
MeshAccessorwhen model is not yet loaded - Fix
PixelFormatSampler.Writein C# to actually work - Fix missing
Custom Global Codecode generation inDefinesstage - Fix terrain collision geometry order to match heights buffer
- Fix root linkage for prefab instances copy pasted in Editor
- Fix pasted ghost prefab objects when paste target is not defined
- Fix broken prefab linkage when duplicating nested prefab instance root
- Fix shader error when using Position Offset in deformable material
- Fix binary asset dependencies tracking when dependent asset gets loaded later on
- Fix scripting bindings in searching virtual methods to invoke when there is a name and parameter count collision
- Fix using
Dictionaryas virtual method parameter in scripting bindings - Fix Cloth to snap to the parent actor on spawn in Editor
- Fix Cloth with models that use compressed vertex buffer
- Fix missing doppler factor in cooked game with OpenAL backend
- Fix missing scale for inverse squared setting for lights
- Fix client-host replication issue
- Fix .NET 10 tooling detection
- Fix various material nodes to work on D3D12
- Fix memory leak in Editor when using material parameter query
- Fix camera preview placement in editor preview when resizing window
- Fix compute distance crash if no closest point param is defined
- Fix crash when destroying actor that was left in enabled state
- Fix crash when moving disabled kinematic actor target point
- Fix crash when unloading scene during tick of that scene
- Fix crash when reporting from multiple therads to sync and properly log (eg. out of memory)
- Fix crash when texture streaming mip task gets deleted after texture object on GC
- Fix crash if base material gets GCed before it's referenced by instance during loading
- Fix crash on Visual Script missing asset ref after hot-reload in Editor
- Fix crash on Global Surface Atlas objects buffer building
- Fix crash when inserting material functions
- Fix crash due to async content data streaming
- Fix crash due to missing asset reference inside
MeshAccelerationStructure - Fix crash on exit when C# code was bound to asset unloading event called after C# shutdown
- Fix crash on script VTable setup due to async
- Fix crash on invalid unpack node usage in shader graph
- Fix crash on shutdown when one of the windows had outstanding input events
- Fix crash on leftover window handle inside an input device events queue
- Fix crash on Vulkan when
vkGetPhysicalDeviceSurfaceFormatsKHRreturnsVK_INCOMPLETE - Fix crash when drawing minor foliage node with both children and instances
- Fix crash when creating empty material instance
- Fix crash when using overlapping instances
- Fix crash when applying prefab changes using default instance
- Fix crash when using convex mesh collider with negative scale
- Fix crash when loading
CollisionDatabefore physics init - Fix crash when applying prefab changes
- Fix crash when changing prefab root
- Fix crash when loading Visject graph with a broken connection
- Fix crash when using
SkeletonMask::GetNodesMaskfrom 2 threads at once - Fix crash when caching
DebugCommandsand classes cache gets modified