Unreal Engine 5.7 — Deprecated APIs

Last verified: 2026-02-13

Quick lookup table for deprecated APIs and their replacements. Format: Don't use XUse Y instead


Input

DeprecatedReplacementNotes
InputComponent->BindAction()Enhanced Input BindAction()New input system
InputComponent->BindAxis()Enhanced Input BindAxis()New input system
PlayerController->GetInputAxisValue()Enhanced Input Action ValuesNew input system

Migration: Install Enhanced Input plugin, create Input Actions and Input Mapping Contexts.


Rendering

DeprecatedReplacementNotes
Legacy material nodesSubstrate material nodesSubstrate is production-ready in 5.7
Forward shading (default)Deferred + LumenLumen is default in UE5
Old lighting workflowLumen Global IlluminationReal-time GI

World Building

DeprecatedReplacementNotes
UE4 World CompositionWorld Partition (UE5)Streaming large worlds
Level Streaming VolumesWorld Partition Data LayersBetter level streaming

Animation

DeprecatedReplacementNotes
Old animation retargetingIK Rig + IK RetargeterUE5 retargeting system
Legacy control rigControl Rig 2.0Production-ready rigging

Gameplay

DeprecatedReplacementNotes
UGameplayStatics::LoadStreamLevel()World Partition streamingUse Data Layers
Hardcoded input bindingsEnhanced Input systemRebindable, modular input

Niagara (VFX)

DeprecatedReplacementNotes
Cascade particle systemNiagaraCascade is fully deprecated

Audio

DeprecatedReplacementNotes
Old audio mixerMetaSoundsProcedural audio system
Sound Cue (for complex logic)MetaSoundsMore powerful, node-based

Networking

DeprecatedReplacementNotes
DOREPLIFETIME() (basic)DOREPLIFETIME_CONDITION()Conditional replication for optimization

C++ Scripting

DeprecatedReplacementNotes
TSharedPtr<T> for UObjectsTObjectPtr<T>UE5 type-safe pointers
Manual RTTI checksCast<T>() / IsA<T>()Type-safe casting

Quick Migration Patterns

Input Example

// ❌ Deprecated
void AMyCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) {
    PlayerInputComponent->BindAction("Jump", IE_Pressed, this, &ACharacter::Jump);
}

// ✅ Enhanced Input
#include "EnhancedInputComponent.h"

void AMyCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) {
    UEnhancedInputComponent* EIC = Cast<UEnhancedInputComponent>(PlayerInputComponent);
    if (EIC) {
        EIC->BindAction(JumpAction, ETriggerEvent::Started, this, &ACharacter::Jump);
    }
}

Material Example

// ❌ Deprecated: Legacy material
// Use standard material graph (still works but not recommended)

// ✅ Substrate Material
// Enable: Project Settings > Engine > Substrate > Enable Substrate
// Use Substrate nodes in material editor

World Partition Example

// ❌ Deprecated: Level streaming volumes
// Load/unload levels manually

// ✅ World Partition
// Enable: World Settings > Enable World Partition
// Use Data Layers for streaming

Particle System Example

// ❌ Deprecated: Cascade
UParticleSystemComponent* PSC = CreateDefaultSubobject<UParticleSystemComponent>(TEXT("Particles"));

// ✅ Niagara
UNiagaraComponent* NiagaraComp = CreateDefaultSubobject<UNiagaraComponent>(TEXT("Niagara"));

Audio Example

// ❌ Deprecated: Sound Cue for complex logic
// Use Sound Cue editor nodes

// ✅ MetaSounds
// Create MetaSound Source asset, use node-based audio

Summary: UE 5.7 Tech Stack

FeatureUse This (2026)Avoid This (Legacy)
InputEnhanced InputLegacy Input Bindings
MaterialsSubstrateLegacy Material System
LightingLumen + MegalightsLightmaps + Limited Lights
ParticlesNiagaraCascade
AudioMetaSoundsSound Cue (for logic)
World StreamingWorld PartitionWorld Composition
Animation RetargetIK Rig + RetargeterOld Retargeting
GeometryNanite (high-poly)Standard Static Mesh LODs

Sources:

Built with LogoFlowershow