Coordinate System
Every object in your HELIX world has a position, and that position is described with three numbers: X, Y, and Z. Before you move, spawn, or place anything, you need to know how space works in Unreal Engine.
The Axes
- X — Forward/backward (red arrow in HELIX Studio)
- Y — Left/right (green arrow)
- Z — Up/down (blue arrow) — Z is up in Unreal Engine
The unit of measurement is centimeters. A value of 100 means 100 cm, or 1 meter. A doorway is roughly 200 units (2m) tall. A character stands about 180 units.
Vectors — Position and Direction
A Vector (FVector) holds three floats: X, Y, Z. Use it for positions, directions, velocities, and scales. FVector(0, 0, 100) points straight up, one meter.
Rotators — Orientation
A Rotator (FRotator) describes orientation using three angles in degrees:
| Component | Axis | What it does |
|---|---|---|
| Pitch | Y | Tilts up/down (nodding your head) |
| Yaw | Z | Turns left/right (shaking your head) |
| Roll | X | Tilts sideways (tilting your head to your shoulder) |
FRotator(0, 90, 0) means no pitch, rotated 90 degrees to the right, no roll.
Transforms — The Full Package
A Transform (FTransform) bundles position + rotation + scale into one structure. Every Actor in the world has a transform. It fully describes where an object is, which way it's facing, and how big it is.
Code Examples
- Blueprint
- Lua
- JavaScript
// In Blueprints, use "Make Vector" and "Set Actor Location" nodes
// Use "Make Rotator" and "Set Actor Rotation" for facing direction
// C++ equivalent:
FVector NewPosition(500.0f, 200.0f, 100.0f);
SetActorLocation(NewPosition);
FRotator NewRotation(0.0f, 90.0f, 0.0f); // Face right
SetActorRotation(NewRotation);
// Get distance between two actors
float Distance = FVector::Dist(ActorA->GetActorLocation(), ActorB->GetActorLocation());
-- Create a vector and move an actor
local new_position = Vector(500, 200, 100)
self:K2_SetActorLocation(new_position, false, nil, true)
local new_rotation = Rotator(0, 90, 0) -- Face right
self:K2_SetActorRotation(new_rotation, true)
-- Get distance between two actors
local dist = self:GetDistanceTo(other_actor)
// Create a vector and move an actor
let newPosition = new Vector(500, 200, 100);
this.K2_SetActorLocation(newPosition, false, undefined, true);
let newRotation = new Rotator(0, 90, 0); // Face right
this.K2_SetActorRotation(newRotation, true);
// Get distance between two actors
let dist = this.GetDistanceTo(otherActor);
Quick Reference
| Real-world thing | Approximate size in UE units |
|---|---|
| A coin | 2-3 cm |
| A door | 100 x 200 cm |
| A character | ~180 cm tall |
| A car | ~450 cm long |
| A football field | ~10,000 cm |
When something looks off — an object floating, clipping through the floor, or wildly oversized — check your units. A misplaced decimal can turn a coffee cup into a building.