Blueprint Basics · Beginner · 15 min

Make an Actor Spin or Move With Blueprints

Make a coin spin and a platform glide using Event Tick with Delta Seconds, then a Timeline for buttery-smooth motion — your first taste of bringing a scene to life.

LevelBeginner Time~15 min EngineUE 5.4+ Hands-on16 checkpoints

Before this: What Is a Blueprint? Create Your First One (No Code Required), Event Graph Basics: BeginPlay, Nodes, and Wires Explained

By the end, you'll be able to
  • Spin an Actor every frame with Event Tick and AddActorLocalRotation
  • Use Delta Seconds so motion is the same speed on every machine
  • Move an Actor smoothly with a Timeline instead of Tick
  • Recognise the equivalent C++ approach and when each one fits

From a frozen scene to a living one

Up to now your Blueprints have reacted once — something happens on BeginPlay, or when a value changes. But games feel alive because things keep moving: a coin spins, a door slides open, a platform drifts back and forth. In this lesson you'll make an Actor do exactly that, and it's genuinely a few nodes of work.

We'll cover the two everyday tools for ongoing motion. First, Event Tick — a special event that fires every single frame, perfect for a constant spin. Then a Timeline — a built-in node that animates a value smoothly over a set time, perfect for a platform that eases in and out. By the end you'll know which to reach for, and you'll see the same idea written in C++ so the words stop being mysterious.

Four terms, then we build

Tap a card to flip it

Spin an Actor with Event Tick

We'll make a simple Actor (think of a coin or a gem) rotate forever. Open or create a Blueprint Actor with a visible mesh component, then open its Event Graph. Tick off each step as you go.

  1. 1Find (or add) the Event Tick node

    In the Event Graph you'll usually already see a greyed-out 'Event Tick' node sitting near 'Event BeginPlay'. If it isn't there, right-click on empty graph space, type 'Event Tick', and add it.

    Event Tick has a white execution pin on the right and a blue 'Delta Seconds' output pin. That blue pin is the secret to smooth, frame-rate-independent motion.

    TipGreyed-out events are just unused — drag a wire out of one and it 'wakes up'. You don't add a second copy.

  2. 2Add a rotation node

    Drag a wire from Event Tick's white execution pin into empty space and let go. In the search box type 'AddActorLocalRotation' and pick it. This rotates the whole Actor relative to where it currently faces.

    The node has a 'Delta Rotation' input split into Roll, Pitch and Yaw. For a coin-style spin around the upright axis, you'll set Yaw.

    TipRight-click the 'Delta Rotation' pin and choose 'Split Struct Pin' to get separate Roll / Pitch / Yaw boxes instead of one combined input.

  3. 3Multiply your spin speed by Delta Seconds

    Drag a wire from the blue 'Delta Seconds' output and search for 'float * float' to add a Multiply node. Type a speed into the other input — try 90, meaning 90 degrees per second.

    Plug the Multiply result into the Yaw box of your rotation node. Multiplying by Delta Seconds is what turns 'per frame' into 'per second', so the spin looks identical on a slow laptop and a fast desktop.

    TipThink of it as: speed-per-second x how-much-time-passed-this-frame = the right amount to move this frame. Always do this for Tick-driven motion.

  4. 4Compile and play

    Click 'Compile' (top-left of the Blueprint editor), then 'Save'. Make sure your Actor is placed in the level, then press Play.

    Your Actor should spin smoothly and forever. Change the 90 to 360 and it whirls four times as fast; use a negative number to reverse the direction.

    TipIf it spins but jitters or speeds up when you look away, you almost certainly forgot the Delta Seconds multiply — go back and add it.

Why use AddActorLocalRotation each frame instead of just setting the rotation to a bigger number?

When Tick isn't the right tool: smooth, controlled motion

Event Tick is perfect for 'do a little, forever' — a constant spin, a hover bob. But a lot of motion has a clear start and end: a platform that slides three metres to the right and stops, a door that opens once. You could do that on Tick with extra variables and checks, but it gets fiddly fast, and easing (slow-fast-slow) is awkward.

That's exactly what a Timeline is for. A Timeline is a node you drop into the graph that, once played, marches a value along a curve you draw — from 0 to 1 over, say, 2 seconds. You read that value out and use it to drive position. Because you can shape the curve, the motion can ease gently in and out instead of starting and stopping abruptly.

Move an Actor with a Timeline

We'll slide the Actor smoothly from its start position to a target, kicked off on BeginPlay. This introduces a couple of new node ideas, so take it a step at a time.

  1. 1Add a Timeline node

    Right-click in the Event Graph, search 'Add Timeline', and add one. Give it a clear name like 'MovePlatform'. It appears as a node with a 'Play' input and an 'Update' output that fires every frame while it's running.

    Double-click the Timeline node to open its own editor. Add a 'Float Track', then add two keys: one at time 0 with value 0, and one at time 2 with value 1. Right-click the keys and choose 'Auto' interpolation for smooth easing.

    TipA value that runs 0 to 1 is called an 'alpha'. It's a handy, reusable way to mean 'how far through the motion are we' regardless of actual distances.

  2. 2Kick it off on BeginPlay

    Back in the Event Graph, drag from Event BeginPlay's execution pin into the Timeline's 'Play' input (or 'Play from Start'). Now the moment the game starts, the Timeline begins running for its two seconds.

    TipYou can trigger 'Play' from anything — an overlap, a button press — not just BeginPlay. That's covered in the overlap-and-pickup lesson.

  3. 3Lerp between a start and an end position

    Drag from the Timeline's 'Update' pin to a 'SetActorLocation' node. For the new location, add a 'Lerp (Vector)' node: set 'A' to the start location, 'B' to the target location, and plug the Timeline's float output into 'Alpha'.

    'Lerp' (linear interpolate) blends between A and B by the alpha: 0 gives you A, 1 gives you B, 0.5 the midpoint. As the Timeline drives alpha from 0 to 1, the Actor glides from start to target.

    TipCapture the start position once on BeginPlay into a Vector variable, and set B to that start plus an offset (e.g. +300 on X). Then the platform always moves relative to where you place it in the level.

  4. 4Compile, play, and shape the feel

    Compile, Save, and Play. The Actor should glide to its target over two seconds and stop.

    Reopen the Timeline and drag the curve handles to change the easing, or change the second key's time to make the move faster or slower. Tick 'Loop' on the Timeline if you want it to repeat.

    TipFor a platform that goes there-and-back-forever, enable 'Loop' and make your curve go 0 to 1 and back to 0, or play it normally then play it 'Reversed' when it finishes.

The same spin in Blueprint and in C++

Event Tick -> AddActorLocalRotation, with the Yaw fed by (SpinSpeed x Delta Seconds).

No typing, instantly visual, and easy to tweak live. This is where every beginner should start, and it's perfectly production-viable for simple motion. The Delta Seconds pin is handed to you on the Tick node.

The equivalent C++ Tick

cpp
void ASpinningActor::Tick(float DeltaTime)
{
    Super::Tick(DeltaTime);

    // 90 degrees per second around the up (Yaw) axis.
    const float SpinSpeed = 90.f;
    AddActorLocalRotation(FRotator(0.f, SpinSpeed * DeltaTime, 0.f));
}

// Reminder: enable ticking in the constructor, or Tick never runs:
// PrimaryActorTick.bCanEverTick = true;
A spinning Actor in C++. DeltaTime here is the same value as the Blueprint 'Delta Seconds' pin — note the multiply, for the same frame-rate-independence reason.

QuizCheck yourself

1Why do you multiply your spin or movement speed by Delta Seconds inside Event Tick?

2You want a platform to slide three metres and stop, with gentle easing. Best tool?

3In the C++ Tick function, the value named DeltaTime corresponds to which Blueprint pin?

ChallengeTry it yourself

Make a collectible that both spins AND gently bobs up and down — the classic floating-coin look. Use Event Tick for the spin you already built, and add a little vertical bob on top.

Hint 1

The spin is exactly what you built: Event Tick -> AddActorLocalRotation with Yaw = speed x Delta Seconds.

Hint 2

For the bob, you need a value that smoothly goes up and down over time. A Sine wave does this — search for the 'Sin (Radians)' or 'Get Game Time in Seconds' nodes and feed time into a sine.

Hint 3

Multiply the sine output (which ranges -1 to 1) by a small height like 20, and feed it into the Z of a SetActorRelativeLocation on your mesh component each frame.

You can now

Tick these off — you've earned them:

  • Wire Event Tick to AddActorLocalRotation to spin an Actor
  • Multiply movement by Delta Seconds for frame-rate-independent speed
  • Build and play a Timeline that slides an Actor smoothly with a Lerp
  • Explain when Tick fits versus when a Timeline fits
  • Read the equivalent C++ Tick snippet and recognise DeltaTime
Finished the steps?

Mark this lesson complete

We'll remember it on your Academy page and unlock the next lesson below.

Next lesson →Blueprint Functions and Keeping Your Graphs Tidy

Questions beginners ask

My Actor won't spin at all — what's the first thing to check?

Confirm the Actor is actually placed in the level (an unplaced Blueprint never runs), that you Compiled and Saved after wiring the nodes, and that you dragged a wire OUT of Event Tick rather than leaving it greyed-out and unused. Then check the rotation amount isn't zero.

Should I use Event Tick or a Timeline?

Use Event Tick for continuous, never-ending motion like a spin or a hover. Use a Timeline for motion with a clear start and end, or when you want smooth easing — like a door opening or a platform sliding to a point and stopping. Timelines also stop themselves when finished, which is kinder on performance.

Is doing this in C++ better than Blueprint?

Not for learning, and not for a handful of moving objects — Blueprint is fast to build and perfectly capable here. C++ runs faster and scales to large numbers of Actors, so a common pattern is to prototype motion in Blueprint and port only the performance-critical pieces to C++ later. Both multiply by Delta Seconds for the same reason.

Does Tick slow my game down?

A few ticking Actors are nothing to worry about, but Tick runs every frame on every enabled Actor, so it adds up across hundreds of them. Disable ticking on Actors that aren't moving (untick 'Start with Tick Enabled' or call 'Set Actor Tick Enabled'), and prefer Timelines for one-shot motion since they stop on their own.

Get the next lessons as they land

New Academy lessons, UE5 tips and tool releases — straight to your inbox. No spam, unsubscribe anytime.

Report a bug