Back to Blog
    Last Week in Unreal

    Last Week in Unreal — Feb 16-23, 2026

    Abraham KUpdated 13 min read
    Last Week in Unreal — Feb 16-23, 2026

    Unreal Engine Weekly — What Changed and What Matters

    Week of Feb 16–23, 2026 | 912 commits analyzed | Branch: ue5-main


    Overview

    A moderately active week on ue5-main — down from last week’s 1,066 but still substantial. MegaLights continues its march toward production with front layer translucency support, which is the most significant rendering feature this week. Substrate’s material system keeps evolving fast, with quality-level-aware closures and experimental toon shading work. A new ShaderPlatformConfig system introduces a cross-platform architectural change to how shader settings are managed. On the platform side, Xbox GDK online plugins moved from restricted to public engine — a meaningful accessibility shift for licensees.

    The stability story is dense: a dozen targeted crash fixes across physics, cloth, Niagara, Nanite, and the Material Function Editor. And beneath the surface, Epic’s in-editor AI assistant infrastructure is quietly becoming real.


    TL;DR

    • MegaLights now supports front layer translucency with full stochastic lighting, denoising, and scalability controls — the feature’s scope just expanded significantly.
    • Substrate gained quality-level-aware shader closure counts, letting projects compile different material complexity per quality tier — a real shipping optimization for multi-platform projects.
    • Xbox GDK online plugins moved from restricted to public engine, removing a long-standing access barrier for licensees.
    • Shader library crash fixes prevent hard crashes when on-demand content chunks are not yet installed — a shipping blocker for Install-At-Demand workflows.
    • Audio render scheduler is now enabled by default for all projects.

    Rendering & GPU

    MegaLights — Front Layer Translucency

    What changed. MegaLights gained full stochastic lighting support for the front layer of translucency. This is a new pipeline path where MegaLights re-runs its sampling, denoising, and resolve steps specifically for translucent surfaces that were previously outside its lighting model. The feature ships with proper scalability controls (r.MegaLights.FrontLayerTranslucency.Allow), project settings overrides, and post-process volume overrides. It shares tile classification between MegaLights and Lumen Reflections.

    Separately, a dark ghosting fix during disocclusion replaced hidden sample reweighting with a max shading weight approach. The old reweighting behavior is gone entirely — if you had custom tuning around it, that tuning no longer applies. Visualization tooling also improved: diffuse/specular modulate factor views, shadow castor mismatch fixes, and a 4×4 tile grid for the denoiser overview.

    Why this is important. Last week MegaLights got production instrumentation. This week it got a major scope expansion. Front layer translucency was a gap in MegaLights’ coverage — translucent surfaces with TRANSLUCENCY_LIGHTING_SURFACE_FORWARDSHADING now receive proper dynamic light sampling. This does not yet cover LightingVolume mode, so not all translucent materials benefit. The disocclusion fix is a correctness improvement that anyone with many dynamic lights will appreciate.

    Who should care. Graphics engineers and lighting artists using MegaLights, particularly those with translucent materials in dynamically lit scenes.

    Urgency. Track. The r.MegaLights.MaxShadingWeightForHiddenLight CVar replaces old behavior — check if you had custom tuning.

    Substrate Material System Evolution

    What changed. Three distinct areas of work. First, quality-level-aware shader selection: Substrate materials can now compile different closure counts per quality level using r.Substrate.MaterialQualityLevelsClosuresPerPixel="L1-M1-H2-E3". This was submitted, backed out, and resubmitted, suggesting it had stability issues but is now in. Second, an anisotropy bug was fixed where anisotropic lighting was incorrectly enabled for legacy shading models (subsurface, etc.) when Substrate is active. Third, the toon shading model gained experimental GGX lobe support with energy conservation and indirect specular reflection quantization, both behind experimental CVars.

    Why this is important. The quality-level closure count is a shipping optimization lever. If you target mobile and desktop from the same project, this lets you compile simpler materials for lower quality tiers without separate material assets. The anisotropy fix is a silent correctness issue — subsurface materials under Substrate were getting lighting they should not have had. The toon shading work signals sustained investment in stylized rendering under Substrate.

    Who should care. Material artists and graphics engineers on Substrate. Multi-platform projects that need per-quality material optimization. Studios evaluating stylized rendering pipelines.

    Urgency. Track. The quality-level closures feature is worth testing now if you ship multiple quality tiers.

    ShaderPlatformConfig — New Cross-Platform Configuration Surface

    What changed. A new ShaderPlatformConfig system reads shader platform settings from the Engine config hierarchy instead of data-driven platform tables. It caches settings per EShaderPlatform at startup. Initial fields are SubstrateMaxClosuresPerPixel and BindlessConfiguration. The change touches D3D12, Vulkan, Metal, and RHICore.

    Why this is important. This is a new configuration surface for shader platform behavior. If your project or platform overrides have custom shader platform settings, you need to understand where this system reads from and how it interacts with existing DataDrivenShaderPlatformInfo.

    Who should care. Engine programmers, platform leads, anyone extending the renderer or maintaining custom platform configurations.

    Urgency. Track. Understand the new system before it accumulates more settings.

    Renderer API Deprecations and Cleanup

    What changed. Several renderer APIs were deprecated: FSceneInterface::RequiresHitProxies, IRendererModule::GetNumDynamicLightsAffectingPrimitive, and dead code like AddLumenSceneCard was removed. The UE_LOG-to-UE_LOGF migration across the renderer continues, reducing binary size by switching to ANSI/UTF-8 for log macros.

    Why this is important. The deprecated APIs will eventually be removed. UE_LOGF is the new preferred pattern in rendering code.

    Who should care. Teams with custom renderer code calling deprecated APIs. Follow the UE_LOGF pattern in your own renderer extensions.

    Urgency. Track. Start migrating off deprecated APIs.


    Platform & Build

    Xbox GDK Plugins Move to Public Engine

    What changed. The GDK online plugins — OnlineSubsystemGDK, OnlineServicesXbl, GDKNetDriver — moved from restricted folders to the public engine. This is an accessibility change: licensees can now access Xbox online services plugins directly without restricted folder access.

    Why this is important. This removes a long-standing friction point for Xbox development. Studios that previously needed separate restricted access to integrate Xbox online services can now work with these plugins directly from the public engine tree.

    Who should care. Xbox developers, platform teams shipping on Game Pass, studios with console deployment workflows.

    Urgency. Track. A welcome simplification for Xbox workflows.

    iOS, Android, and Build Tooling

    What changed. On iOS/Mac: PGO build data for iOS was added, the portable Apple toolchain got additional compiler arguments, and file copy from device now uses devicectl instead of ios-deploy. Appium is being phased out as the default automation driver. On Android: HWASAN debug script handling was hardened, and PSO deep testing was extended with memory-pressure-aware tuning. In build tooling: Ionic.Zip.Reduced.dll is being replaced with System.IO.Compression across AutomationTool, and UBT gained third-party module info in Analyze mode.

    Why this is important. The ios-deploy to devicectl transition is a toolchain change iOS teams need to be aware of. The Ionic.Zip removal modernizes AutomationTool’s dependency chain. PSO deep testing on Android is a meaningful addition for mobile GPU coverage.

    Who should care. iOS teams (toolchain changes), build engineers (Ionic.Zip migration), Android teams (PSO testing).

    Urgency. Track. iOS teams should note the devicectl transition.


    Asset Pipeline & Shader Infrastructure

    Shader Library Crash Resilience for On-Demand Content

    What changed. Two shader library fixes landed. The first adds a fallback to the default material when on-demand shader maps have IoChunks that are not yet installed, instead of crashing with an I/O error. The second fixes a crash where shader map IoChunk resolution was only checking the first shader library instance instead of all instances, which broke when shader grouping split shaders across multiple containers. Intermediate shader file paths were also fixed to stop using debug paths that changed across build machines.

    Why this is important. If you are shipping with Install-At-Demand assets, the first fix prevents a hard crash when shader maps are requested before their chunks are downloaded. This is a shipping blocker. The multi-library resolution fix addresses a class of GetResultOrDie() crashes that only appeared when shader grouping distributed shaders across containers.

    Who should care. Platform engineers and packaging teams using Install-At-Demand content. CI/CD pipelines that upload shader artifacts.

    Urgency. Act now if shipping IAD content. The intermediate file path fix also matters for CI pipelines.

    Cook Artifact System Hardening

    What changed. The CookArtifact system saw multiple refinements: IsReferenced was split into a three-state enum (None/Cook/Stage) to distinguish development AssetRegistry needs from staging needs. A new GetCookMetadataOutputFolder was added for DLC cook paths. GeneratedAssetRegistry memory usage during cook was reduced by filtering deny-listed tags earlier in the pipeline.

    Why this is important. For large projects, the earlier deny-list filtering could measurably reduce peak cook memory. The three-state reference tracking is the kind of precision work that happens when a system is being production-hardened.

    Who should care. Teams with large cook pipelines, DLC workflows, or cook memory pressure.

    Urgency. Track. CookArtifacts are maturing.


    Audio

    Audio Render Scheduler Enabled by Default

    What changed. The audio render scheduler was flipped to enabled by default, with ECVF_SaveForNextBoot for hotfixability and automatic state dump on error. Separately, LKFS loudness calculations were refactored out of AudioSynesthesiaCore into SignalProcessing, and TruePeak meters were added to Audio Insights.

    Why this is important. The scheduler being on by default is a runtime behavior change for every project. The LKFS refactor and TruePeak metering signal Epic is building toward standardized broadcast-spec loudness metering — relevant for anyone targeting platform audio certification requirements.

    Who should care. Audio programmers, anyone with custom audio processing, teams targeting broadcast loudness standards.

    Urgency. Track. Test audio behavior after syncing — the scheduler default change affects all projects.


    Stability & Crash Fixes

    What changed. A heavy cluster of targeted crash fixes:

    • Material Function Editor + Nanite preview mesh crash — fixed by checking editing context before propagating usage flags.
    • Async loading time limit crash in PIE — s.AsyncCreatePackagesFromQueueMaxTimeLimitMs causing crashes with MT async loading. Required three CLs to resolve.
    • Lyra frontend crash during world transitions — dangling pointer from lambda capturing this after component destruction. Fixed with TWeakObjectPtr.
    • Chaos cache out-of-bounds — OOB curve access in Chaos caching.
    • Cloth simulation crash in Sequencer — crash when duplicating skeletal mesh components with in-editor cloth simulation.
    • Niagara PSO task thread crash — PSO tasks incorrectly started on render thread instead of game thread.
    • RigVM deadlock and exit crash — double read-lock causing deadlock, plus a separate exit crash.
    • VMutableArray out-of-bounds write — buffer overflow in Verse VM array append.
    • Multi-view rendering deadlock — game and main thread deadlocking.
    • Thread safety crash in BodySetup cooking — thread crashing during TryGetCookedData.
    • HWRT ray tracing memory leak — RayTracingGeometryGroup leak.
    • Race condition in physics body creation.
    • Infinite loop mitigation in replication — FReplicationWriter::HasInFlightStateChanges.

    Why this is important. The breadth here is notable — physics, animation, rendering, networking, asset loading, and the Verse VM all received crash fixes in the same week. The RigVM deadlock and multi-view rendering deadlock are the kind of concurrency bugs that produce hard-to-reproduce crashes in production. The Verse VM buffer overflow is a memory safety issue in a system that is still under active development.

    Who should care. General — check this list against your crash reports. Teams using cloth simulation in Sequencer, Chaos physics caching, Niagara with PSO precaching, or networked replication should look closely.

    Urgency. Act now if any of these match your crash reports. The deadlock fixes and memory safety issues are the most serious.


    Gameplay & Frameworks

    Chaos Rigid Body Architecture Migration

    What changed. A structural refactor of the Chaos rigid body handle system — body handles now directly contain the scene handle instead of going through a body collection. The commit explicitly states the body container “still exists for now, but will be removed at a later point.” This touches 17 files across runtime and async plugins and rewires the fundamental relationship between bodies and scenes.

    Why this is important. This is a staged API migration in the experimental Chaos rigid physics system. Teams already experimenting with ChaosRigidPhysicsAsync should expect the body container abstraction to disappear in a future CL.

    Who should care. Teams using or evaluating Chaos rigid body APIs directly.

    Urgency. Track. The old API still works, but migration is coming.

    MassEntity ECS Framework Evolution

    What changed. Eight or more commits advancing the MassEntity framework: composition descriptor removal, sparse elements, observer support, and shared fragments.

    Why this is important. MassEntity is still maturing as an ECS framework within Unreal. The volume of structural changes suggests it is being actively shaped for a broader set of use cases.

    Who should care. Teams evaluating or using MassEntity for large-scale simulation.

    Urgency. Track.

    Viewport ITF: Editor Mode Gizmo Compatibility Layer

    What changed. A single commit touching 35 files across virtually every editor mode — ModelingTools, ControlRig, Landscape, Sequencer, AnimGraph, LidarPointCloud, and more. It introduces a compatibility layer so editor modes can opt in to new Interactive Tools Framework gizmos while falling back to legacy when needed.

    Why this is important. Any studio with custom editor modes needs to be aware this compatibility contract now exists. A new CVar lets you bypass mode checks entirely.

    Who should care. Studios with custom editor modes or tool extensions.

    Urgency. Track. Review if you maintain custom editor modes.


    Worth Tracking

    Epic’s in-editor AI assistant infrastructure. Seventeen or more commits this week build out an AI toolset system inside the editor: Blueprint and DataAsset toolsets, add_component for ActorToolset, a search tool for dataset subclasses, JSON schema generation, async tool execution, and a toolset registry. This is structured tool-use — not just chat, but an LLM that can create assets, add components, and query the project programmatically. This is probably the most narratively interesting development this week, even though no single commit is high-impact. The system is being built methodically, and the toolset registry pattern suggests Epic is designing for extensibility.

    AutoRTFM transaction safety expanding to core types. FSharedString was made transactionally safe using TTransactionalAtomicRefCount. The fact that Epic is investing in making core string types safe for AutoRTFM transactions suggests the surface area of code that needs to run inside transactions is expanding. If AutoRTFM becomes a requirement for gameplay code in Verse-heavy projects, these are the foundational commits that make that possible. The Verse VM itself remains in active structural flux — an array += optimization was disabled pending a live-variable fix, and core data structures are still being renamed. If your studio is planning Verse adoption, know the runtime is still being shaped.


    What We Ignored

    This week we filtered 8 commits as noise and skipped roughly 700 more that do not meaningfully affect runtime behavior, performance, or upgrade risk. The bulk of what we ignored: Horde CI/CD infrastructure, TEDS outliner and hierarchy work, StateTree property binding fixes, Dataflow evaluation system changes (though the 3x optimization is notable for Dataflow users), Pixel Streaming 2 minor fixes, Sequencer and MovieScene incremental improvements, Mutable system churn, Interchange format updates, OpenXR routine maintenance, Water system minor fixes, and the usual formatting, localization, and copyright updates.

    The Dataflow system cluster (8+ commits, new evaluation system enabled by default) and Substrate New Material Translator work (eye and hair material node support) are both worth a deeper look if those subsystems are central to your project, but neither rises to report-level significance this week.


    Closing

    MegaLights adding front layer translucency in the same window as last week’s production instrumentation confirms the pattern: Epic is simultaneously widening and hardening this system for 5.8. The GDK plugins moving to public engine is the quiet kind of change that actually matters to studios — removing access friction is underrated. And the in-editor AI toolset work deserves attention not for what it does today, but for what it implies about where the editor is going.

    912 commits. The engine keeps building.

    Share this article