AppleyAppley Docs
Docs/Learning Paths

Moving Objects

Translate objects in 3D space using the Move tool.

18 min read Beginner Updated 2026-07-01 v2.0 ~50 min to complete

Introduction

Moving objects is the most common operation in scene building. This tutorial covers the Move gizmo, snapping, and precise position entry.

Tutorial 10 of 18

This is part of the Beginner Learning Path. Estimated completion time: 50 minutes. Difficulty: Beginner.

Screenshot

Moving Objects
Moving Objects

Step-by-Step Guide

1

Select the Move tool

Press the W key, or click the Move icon (four arrows) in the top toolbar.

2

Select an object

Click any object in the viewport or hierarchy to select it.

3

Use the Move gizmo

The object shows three colored arrows (X=red, Y=green, Z=blue). Click and drag an arrow to move along that axis.

4

Move on a plane

Click and drag the small square between two arrows to move on two axes simultaneously (free movement on a plane).

5

Enable snapping

Hold Ctrl while dragging to snap to the grid. Adjust grid size in the viewport settings.

6

Enter exact position

For precision, select the object and type exact X, Y, Z values in the Inspector's Transform section.

FluxScript Example

Here is the FluxScript (Appley Scripting) code for this tutorial:

Moving Objects — FluxScript
// Move objects programmatically
on start {
  crate = scene.find("WoodenCrate")
  
  // Set absolute position
  crate.setPosition(10, 0, 5)
  
  // Move relative to current position
  crate.move(0, 2, 0)  // Move up 2 units
  
  // Smooth movement over time
  target = vec3(20, 0, 10)
}

on update(dt) {
  crate = scene.find("WoodenCrate")
  if crate != null {
    // Lerp towards target position
    current = crate.position
    newPos = math.lerp(current, target, 2 * dt)
    crate.setPosition(newPos)
  }
}

Node Script Equivalent

Prefer visual programming? Here is the same logic as a Node Script graph:

Moving Objects — Node Graph
[On Start] ──► [Find: "WoodenCrate"]
         ──► [Set Position: (10,0,5)]
         ──► [Move: (0,2,0)]  // relative

[On Update] ──► [Find: "WoodenCrate"]
            ──► [Get Position] ──► [Lerp: target, 2*dt]
            ──► [Set Position]

Pro Tip

Use the Lerp function for smooth animated movement. math.lerp(current, target, speed * dt) creates natural easing without complex animation curves.

Watch Out

Watch your snapping settings. If snapping is enabled with a large grid size, you may not be able to place objects precisely between grid lines.