Unreal Engine 5.7 — Breaking Changes

Last verified: 2026-02-13

This document tracks breaking API changes and behavioral differences between Unreal Engine 5.3 (likely in model training) and Unreal Engine 5.7 (current version). Organized by risk level.

HIGH RISK — Will Break Existing Code

Substrate Material System (Production-Ready in 5.7)

Versions: UE 5.5+ (experimental), 5.7 (production-ready)

Substrate replaces the legacy material system with a modular, physically accurate framework.

// ❌ OLD: Legacy material nodes (still work but deprecated)
// Standard material graph with Base Color, Metallic, Roughness, etc.

// ✅ NEW: Substrate material layers
// Use Substrate nodes: Substrate Slab, Substrate Blend, etc.
// Modular material authoring with true physical accuracy

Migration: Enable Substrate in Project Settings > Engine > Substrate and rebuild materials using Substrate nodes.


PCG (Procedural Content Generation) API Overhaul

Versions: UE 5.7 (production-ready)

PCG framework reached production-ready status with major API changes.

// ❌ OLD: Experimental PCG API (pre-5.7)
// Old node types, unstable API

// ✅ NEW: Production PCG API (5.7+)
// Use FPCGContext, IPCGElement, new node types
// Stable API, production-ready workflow

Migration: Follow PCG migration guide in 5.7 docs. Expect significant refactoring for experimental PCG code.


Megalights Rendering System

Versions: UE 5.5+

New lighting system supports millions of dynamic lights.

// ❌ OLD: Limited dynamic lights (clustered forward shading)
// Max ~100-200 dynamic lights before performance degrades

// ✅ NEW: Megalights (5.5+)
// Millions of dynamic lights with minimal performance cost
// Enable: Project Settings > Engine > Rendering > Megalights

Migration: No code changes needed, but lighting behavior may differ. Test scenes after enabling.


MEDIUM RISK — Behavioral Changes

Enhanced Input System (Now Default)

Versions: UE 5.1+ (recommended), 5.7 (default)

Enhanced Input is now the default input system.

// ❌ OLD: Legacy input bindings (deprecated)
InputComponent->BindAction("Jump", IE_Pressed, this, &ACharacter::Jump);

// ✅ NEW: Enhanced Input
SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) {
    UEnhancedInputComponent* EIC = Cast<UEnhancedInputComponent>(PlayerInputComponent);
    EIC->BindAction(JumpAction, ETriggerEvent::Started, this, &ACharacter::Jump);
}

Migration: Replace legacy input bindings with Enhanced Input actions.


Nanite Default Enabled

Versions: UE 5.0+ (optional), 5.7 (encouraged)

Nanite virtualized geometry is now the recommended workflow for static meshes.

// Enable Nanite on static mesh:
// Static Mesh Editor > Details > Nanite Settings > Enable Nanite Support

Migration: Convert high-poly meshes to Nanite. Test performance on target platforms.


LOW RISK — Deprecations (Still Functional)

Legacy Material System

Status: Deprecated but supported Replacement: Substrate Material System

Legacy materials still work, but Substrate is recommended for new projects.


Old World Partition (UE4 Style)

Status: Deprecated Replacement: World Partition (UE5+)

Use UE5's World Partition system for large worlds.


Platform-Specific Breaking Changes

Windows

  • UE 5.7: DirectX 12 is now default (was DX11 in older versions)
  • Update shaders for DX12 compatibility

macOS

  • UE 5.5+: Metal 3 required (minimum macOS 13)

Mobile

  • UE 5.7: Minimum Android API level raised to 26 (Android 8.0)
  • Minimum iOS deployment target raised to iOS 14

Migration Checklist

When upgrading from UE 5.3 to UE 5.7:

  • Review Substrate materials (convert if ready for new system)
  • Audit PCG usage (update to production API if using experimental)
  • Test Megalights performance (enable and benchmark)
  • Migrate legacy input to Enhanced Input
  • Convert high-poly meshes to Nanite
  • Update shaders for DX12 (Windows) or Metal 3 (macOS)
  • Verify minimum platform versions (Android 8.0, iOS 14)
  • Test Lumen and Nanite performance on target hardware

Sources:

Built with LogoFlowershow