โœฆ JVDesignStudio ยท No Sign-Up Required

Unreal Engine Cheat Sheet

A one-page printable reference for Blueprint nodes, C++ classes, components, input and the most-used patterns in Unreal Engine. Pin it next to your monitor!

๐Ÿงฉ Blueprint Basics

Event BeginPlayRuns once when actor spawns
Event TickRuns every frame (Delta Seconds)
BranchIf/else for boolean conditions
SequenceRun multiple outputs in order
Cast ToConvert a reference to a specific class
Get/Set VariableRead or write a Blueprint variable
Print StringDebug text on screen

๐Ÿ“ฆ C++ Variables & UPROPERTY

UPROPERTY(EditAnywhere, BlueprintReadWrite)
int32 Health = 100;

UPROPERTY(EditDefaultsOnly, Category="Stats")
float MoveSpeed = 600.f;

UPROPERTY(VisibleAnywhere)
bool bIsAlive = true;

EditAnywhere exposes a variable in the Details panel. BlueprintReadWrite lets Blueprints read and write it.

๐Ÿ” Flow Control (Blueprint & C++)

// C++ if/else
if (Health <= 0)
{
    Destroy();
}
else if (Health < 20)
{
    UE_LOG(LogTemp, Warning, TEXT("Low HP!"));
}

// loop over actors
for (AActor* Enemy : Enemies)
{
    Enemy->Destroy();
}

In Blueprints: use a Branch node for if/else and a For Each Loop node for arrays.

๐Ÿ“ก Events, Delegates & Dispatchers

DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(
    FOnHealthChanged, int32, NewHealth);

UPROPERTY(BlueprintAssignable)
FOnHealthChanged OnHealthChanged;

void ATD ::TakeDamage(int32 Amount)
{
    Health -= Amount;
    OnHealthChanged.Broadcast(Health);
}

In Blueprints, use Custom Events and Event Dispatchers (Bind/Call) for the same one-to-many pattern.

๐ŸŽฎ Enhanced Input

// C++ setup (Pawn/Character)
void APlayerPawn::SetupPlayerInputComponent(
    UInputComponent* PlayerInputComponent)
{
    UEnhancedInputComponent* EIC =
        Cast(PlayerInputComponent);

    EIC->BindAction(MoveAction, ETriggerEvent::Triggered,
        this, &APlayerPawn::Move);
    EIC->BindAction(JumpAction, ETriggerEvent::Started,
        this, &APlayerPawn::Jump);
}

In Blueprints: add an Input Mapping Context in BeginPlay, then use Enhanced Input Action event nodes.

๐ŸŒณ Actors & Components

AActorBase class for anything placed in a level
APawn / ACharacterControllable actors (Character adds movement)
UStaticMeshComponentRenders a static mesh
USkeletalMeshComponentRenders an animated mesh
UCapsuleComponentCommon collision shape for characters
UCameraComponentDefines the player's view
USpringArmComponentSmooth camera boom/follow arm

โฑ๏ธ Timers & Delays

// C++ delayed call
GetWorldTimerManager().SetTimer(
    TimerHandle, this, &AMyActor::Respawn, 2.0f, false);

// Loop every second
GetWorldTimerManager().SetTimer(
    TickHandle, this, &AMyActor::Tick1s, 1.0f, true);

In Blueprints: use a Delay node for a one-off wait, or Set Timer by Function Name for repeating calls.

๐Ÿ› ๏ธ Handy Snippets & Patterns

// Open a level
UGameplayStatics::OpenLevel(this, FName("Level_2"));

// Random number / pick
int32 Roll = FMath::RandRange(1, 6);

// Spawn an actor
FActorSpawnParameters Params;
GetWorld()->SpawnActor(EnemyClass, SpawnTransform, Params);

// Cast a hit actor
if (AEnemy* Enemy = Cast(Hit.GetActor()))
{
    Enemy->TakeDamage(10);
}

// Get player controller / pawn
APlayerController* PC = UGameplayStatics::GetPlayerController(this, 0);

Want to build a whole game?

Follow one of our free step-by-step Unreal Blueprint workshops in the Workshop hub.

๐Ÿ”ง Browse Workshops โ†’