Hazel

Your First Project

Let's make something move on screen. In this guide you'll create a project, drop an object into your scene, give it a quick script, and press Play — all inside the editor, no setup gymnastics required.

Open the editor

You can get Renzora two ways: grab a prebuilt build from renzora.com/download, or install the command-line tool with cargo install renzora. Either way, the next step is the same — open the editor. (The Installation guide has the exact commands for your platform.)

When the editor starts you'll land on a project picker. Click New Project, type a name, and choose a folder on your computer. That's it — the editor builds the project and opens its starting scene, ready to go.

The first-run walkthrough

The very first time you open the editor after installing it, a small card appears in the corner and walks you through the basics — orbit, zoom and fly the camera, find your way home with Home, select the glowing cube, move it with the gizmo, then a tour of the workspace tabs, panels, Settings and themes.

Steps aren't a slideshow: each one asks you to actually do the thing, and the editor notices when you have. The ones that point at editor chrome glow the target and float a green arrow at it, so you can't miss which button they mean. Once you've done it, a green Continue button appears — you move on when you're ready, not the instant you finish the gesture. Drag the card by its header if it's ever sitting on top of what you need.

There's more than one chapter. Finish the first and Help → Getting Started Tutorial reopens at the chapter list:

ChapterWhat it covers
Getting StartedCamera, selection, gizmos, panels, Settings, themes
Building a SceneThe shape library, lights, duplicating and deleting, editing components
ScriptingWriting Lua, attaching it to an entity, running it in Simulate
MaterialsThe node graph, previewing, saving a material
Your WorkspaceWorkspaces, docking panels, rearranging the toolbar, rebinding keys
The MarketplaceFinding, installing and re-using assets from renzora.com
Play ModePlay vs Simulate, play targets, and what Export does

Chapters unlock in order: finishing one opens the next, so you're never staring at seven titles wondering which to open. Finished ones get a green tick.

Progress is tracked per user, not per project — it lives in ~/.renzora/editor.toml alongside your other editor preferences. The walkthrough teaches the editor, so once you've done it (or skipped it) every project you make afterwards opens straight into the editor. To run it again, use Help → Getting Started Tutorial.

Skip moves past a single step you can't do right now — no model to import, no marketplace account — without losing the chapter. The X in the header closes the tutorial entirely, and counts as "seen" so it won't auto-open again.

What's inside a new project

A fresh project is just a few files on disk:

my-game/
├── project.toml      # your game's settings
├── scenes/
│   └── main.ron      # the scene that loads first (empty to start)
└── plugins/          # optional drop-in plugins

You'll add more folders as you grow — assets/ for models, textures, and sounds, and scripts/ for your .lua files. Your starting scene, scenes/main.ron, is valid but empty:

(
  resources: {},
  entities: {},
)

You usually never touch project.toml by hand — the editor's Settings panel manages it for you. If you do peek inside, just three keys really matter:

name = "My Game"
version = "0.1.0"
main_scene = "scenes/main.ron"   # the scene that loads at startup

There's a [window] section for size and an optional autoload list and more. You can leave all of that alone for now and let the editor's Settings panel manage it.

Add your first object

Your new scene is empty, so let's put something in it.

In the Hierarchy panel, click + Add Entity at the top. A search overlay pops up with everything you can drop into a scene — basic shapes like Cube and Sphere, lights, cameras, and more — sorted into categories down the left.

The Add Entity overlay: search or browse categories like Lighting and Camera to drop shapes, lights, and cameras into your scene.

Pick Cube. It appears in the middle of your scene and is selected automatically. Then click + Add Entity again and add a Directional Light so your cube isn't sitting in the dark.

See it in the viewport

The big window in the center is the viewport — your live 3D view of the scene. Your new cube is sitting at the center.

With the cube selected, a colored handle (a "gizmo") appears on it. Drag the arrows to move it, and use the toolbar to switch between the Move, Rotate, and Scale tools. Made a mistake? Ctrl+Z undoes it.

An object selected in the viewport, with the colored gizmo you drag to move it around the scene.

Find it in the Hierarchy

Every object you add shows up in the Hierarchy panel as a list. This is your scene's table of contents — click any entry to select that object, and objects can be nested inside others to keep things tidy.

The Hierarchy panel lists everything in the scene, with the + Add Entity button at the top.

Tweak it in the Inspector

Select your cube and look at the Inspector panel. This is where you change an object's properties.

At the top you'll see the entity header — the cube's icon, its ID, its label colour and an eye to hide it — and below that a Transform section with Position, Rotation and Scale, plus a section for each component the object has. Type new numbers into the Transform fields and watch the cube update in the viewport instantly.

The Inspector showing a selected object's properties: name, transform (position, rotation, scale), and component settings.

Make it move

A little script will make the cube spin. Scripts are plain text files, and Renzora picks the language by the file extension — .lua runs Lua, .rs compiles a Rust script.

Create a file at scripts/spin.lua:

-- Spins the entity continuously.
function props()
    return {
        speed = { value = 45.0, hint = "degrees per second" },
    }
end

function on_update()
    rotate(0, speed * delta, 0)   -- spin around the Y axis
end

Two friendly things to know:

  • Anything you return from props() shows up in the Inspector, so you can tweak it without editing code. Here, speed becomes a slider-friendly value you can change live.
  • on_update() runs every frame. delta is the time since the last frame, which keeps the spin smooth at any frame rate.

To attach the script: select the cube, find the Scripts section in the Inspector, and point it at scripts/spin.lua. The full list of functions you can call (moving, input, audio, and more) lives in the Scripting API.

Press Play

Hit F5 to play. The viewport switches to your game and the cube starts spinning. Press F5 again to stop and go back to editing.

While it's running, change speed in the Inspector — the spinning cube picks up the new value right away.

Save your work

Press Ctrl+S to save. Your scene is written to a .ron file in the scenes/ folder. Renzora only saves what you actually authored (not temporary runtime data), so scene files stay small and easy to read.

What's next?