Package & Share · Easy · 14 min

Performance Basics: Stat Commands and Scalability

Open the console, read your real frame rate with the stat commands, find out whether the CPU or GPU is the bottleneck, and use Engine Scalability and draw-call awareness to make your game run smoother — without guessing.

LevelEasy Time~14 min EngineUE 5.4+ Hands-on15 checkpoints

Before this: Press Play and Test Your Level for the First Time, Package Your Game for Windows: Make a Real .exe, Step by Step

By the end, you'll be able to
  • Open the Unreal console with the backtick key and run a command
  • Read your real frame rate and timings with stat fps and stat unit
  • Tell whether the CPU (Game) or the GPU is your bottleneck
  • Use Engine Scalability and basic draw-call awareness as your first optimisation moves

Why "it feels slow" isn't enough

At some point every project starts to stutter — the camera judders, the editor feels heavy, or a packaged build runs worse than you hoped. The instinct is to start changing things at random and hope it helps. That almost never works, because you can't fix a problem you can't see.

Unreal gives you a built-in dashboard of live performance numbers, and getting at them is a one-key trick. In this lesson you'll open the console, put a frame-rate counter on screen, and — most importantly — learn to tell whether your computer's processor (the CPU) or its graphics card (the GPU) is the part holding you back. That single answer decides what you should optimise first. We'll finish with the Engine Scalability settings and a couple of honest, beginner-safe tips. No magic numbers, no guesswork — just measuring before you touch anything.

The vocabulary you'll keep meeting

Tap a card to flip it

Put your real numbers on screen

Press Play (or Alt+P) to start your level, then follow along. Each stat command is a toggle: type it once to show the overlay, type the same command again to hide it. Tick each step as you go.

  1. 1Open the console

    With the game running in the viewport, press the backtick key (`). A console text bar appears, usually along the bottom or top of the play window.

    This is where you type commands. You don't need to remember exact spelling — as you type, Unreal suggests matching commands you can click.

    TipIf the backtick does nothing, click once inside the running game window so it has keyboard focus, then try again.

  2. 2Show the frame rate with stat fps

    Type stat fps and press Enter. A small overlay appears showing your current frames per second and how many milliseconds each frame is taking.

    Watch it as you move around. The number will rise and fall depending on what's on screen — that's normal. You're looking for where it drops, not a single perfect figure.

    TipRun the same command again — stat fps — to turn the overlay off. Every stat command works this way as an on/off toggle.

  3. 3See the breakdown with stat unit

    Type stat unit and press Enter. This is the most useful one. It shows several timings side by side: Frame (the total), Game (your CPU/gameplay time), Draw (the CPU time spent preparing what to render), and GPU (the graphics card's time).

    All numbers are in milliseconds — lower is better. The key habit: look at which of Game, Draw and GPU is the biggest. That's your bottleneck.

    TipFrame time roughly tracks the largest of the others, because the slowest part gates the frame. If Game is the biggest number, you're CPU-bound; if GPU is biggest, you're GPU-bound.

  4. 4Dig into the CPU side with stat game

    If Game was your biggest number, type stat game. This expands the CPU/gameplay time into categories so you can see what's eating it — ticking actors, your Blueprint logic, physics and so on.

    You don't need to understand every line. You're scanning for one or two rows that are far larger than the rest — those point at what to investigate.

    Tipstat game shows a lot at once. Read it like a leaderboard: ignore the small entries and chase the one big one.

  5. 5Dig into the graphics side with stat GPU

    If GPU was your biggest number, type stat GPU. This breaks the graphics card's frame time into passes — things like lighting, shadows, post-processing and translucency.

    Again, look for the single largest pass. If, say, shadows or a post-process effect dominates, that's your clue about where the cost is coming from.

    TipGPU cost usually rises with screen resolution and visual quality, so this is the side most affected by the Scalability settings you'll meet next.

  6. 6Close everything down

    Toggle each overlay back off by retyping its command, or just stop playing. Stat overlays only show while you're testing — they don't appear in a shipped build unless you deliberately enable them.

    Make a habit of glancing at stat unit whenever something feels slow. Measuring takes ten seconds and saves you hours of guessing.

The commands, in one place

console
stat fps      ; live frames-per-second + total frame time
stat unit     ; the big one: Frame / Game / Draw / GPU side by side
stat game     ; expand the CPU 'Game' time into gameplay categories
stat GPU      ; expand the graphics-card time into render passes
stat none     ; clear all on-screen stat overlays at once
Press the backtick key (`) while playing, type one of these, and hit Enter. Run the same command again to toggle the overlay off.

stat unit shows GPU as your biggest number by far. Should you go and optimise your Blueprints?

Engine Scalability: the quality dial

Unreal groups its heavy visual features — things like shadows, global illumination, reflections, view distance, anti-aliasing and post-processing — into a set of quality levels you can change all at once. This is the Engine Scalability menu, and it's both a player-facing setting (Low to Epic, or Cinematic) and your single fastest diagnostic tool.

Find it from the editor's Settings dropdown in the main toolbar — open 'Engine Scalability Settings' and you'll get sliders for each group plus quick presets. Drop everything to Low, play, and watch stat unit: if your GPU time falls off a cliff and FPS shoots up, you were GPU-bound and now you know which features cost the most. Then nudge individual groups back up until you find the balance of looks and speed you're happy with. It's a deliberately reversible experiment, so it's a safe place for a beginner to start.

CPU-bound vs GPU-bound: where to look first

Your gameplay/logic thread is the limit. Common beginner causes: too many actors all ticking every frame, expensive Blueprint logic running on Tick instead of on events, and a high draw-call count from many separate objects.

First moves: use stat game to find the heavy category, turn off Tick on actors that don't need it, move work out of Event Tick into one-off events, and reduce the number of distinct objects on screen. Changing visual quality won't help much here.

QuizCheck yourself

1Which single command gives you the Frame / Game / Draw / GPU breakdown to find your bottleneck?

2In stat unit, the 'Game' number is by far the largest. What does that tell you?

3What is a draw call, and why does it matter to a beginner?

ChallengeTry it yourself

Open any level you've built. Play it, press the backtick key, and turn on stat unit. Write down the Frame, Game, Draw and GPU numbers. Decide: are you CPU-bound or GPU-bound? Then open Engine Scalability, drop everything to Low, play again, and compare the same four numbers.

Hint 1

Backtick (`) opens the console; type stat unit and press Enter. Retype it to toggle off.

Hint 2

The biggest of Game, Draw and GPU is your bottleneck. Game biggest = CPU-bound; GPU biggest = GPU-bound.

Hint 3

Engine Scalability lives under the editor's Settings dropdown in the main toolbar; pick the Low preset, then play and re-read stat unit.

Hint 4

Compare like with like — look at the same spot in your level both times, since the numbers change with what's on screen.

You can now

Tick off what you've got under your belt:

  • Open and close the Unreal console with the backtick key
  • Show your frame rate with stat fps and the full breakdown with stat unit
  • Tell whether you're CPU-bound (Game biggest) or GPU-bound (GPU biggest)
  • Drill into the heavy side with stat game or stat GPU
  • Use Engine Scalability to confirm a GPU bottleneck and dial quality up or down
  • Optimise the honest way: measure, change one thing, measure again

Keys worth keeping

  • ` Open / close the Unreal console (the key above Tab, shared with ~)
  • Alt P Start Play-In-Editor to begin testing
  • Esc Stop playing and return to editing
Finished the steps?

Mark this lesson complete

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

Next lesson →Reduce Your Package Size and Fix Common Packaging Errors

Questions beginners ask

My backtick key doesn't open the console — what's wrong?

Two common causes. First, the game window probably doesn't have keyboard focus: click once inside it, then press the backtick. Second, on some non-US keyboard layouts the key in that position isn't a backtick; you can rebind the console key under Project Settings → Engine → Input → Console Keys, or use the tilde (~) which is often mapped too.

What's the difference between being 'CPU-bound' and 'GPU-bound'?

Each frame, the CPU does gameplay and rendering-preparation work while the GPU draws the image. Whichever takes longer sets your frame time — that's your bottleneck. If the 'Game' line in stat unit is biggest you're CPU-bound (look at logic, ticking actors and draw calls); if 'GPU' is biggest you're GPU-bound (look at resolution, lighting, shadows and post-processing). Optimising the part that already has time to spare won't speed you up.

Should I just lower the Engine Scalability to make everything faster?

It's the fastest way to test whether you're GPU-bound, and it's a legitimate option to give players on weaker machines. But it only helps GPU-bound problems — if your CPU/Game thread is the limit, dropping visual quality changes little. Always check stat unit first so you're treating the real bottleneck rather than the easiest dial to reach.

Do I need to optimise this early in learning?

Not heavily. While you're learning, build first and worry about speed when something actually feels slow. What's worth doing from day one is the habit in this lesson: glance at stat unit when performance dips so you understand what's happening, rather than developing a fear of it. Knowing how to measure is more valuable than memorising fixes.

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