The RollingQuest level editor is a built-in tool that lets you design levels visually without any external software. You place blocks, items, enemies, and decorations using keyboard shortcuts and mouse clicks, configure properties through menus, and test your level instantly.
Opening the Editor
From the Main Menu, click Level Editor. This loads the editor scene where you can create a new level or continue working on the current one.
Basic Controls
Navigation
Block Manipulation
Placing Elements
Blocks
- Press B to open the Blocks Pool — a grid of available block templates from the current theme.
- Select a block template from the pool.
- Navigate with WASD/EQ to position the selector cursor in 3D space.
- Press Space to place the block.
Items
- Left-click a block side to select it.
- Press I to open the Items Pool.
- Select an item template — it is automatically placed on the selected side.
Enemies
- Left-click a block side to select it.
- Press O to open the Enemies Pool.
- Select an enemy template — it is automatically placed on the selected side.
Balls
- Left-click a block side to select it.
- Press P to open the Balls Pool.
- Select a ball template — it is placed on the selected side.
Decorations
- Left-click a block side to select it.
- Press U to open the Decorations Pool.
- Select a decoration template — it is placed on the selected side.
Configuring Elements
Press V on a selected side to open the Element Properties panel. From here you can configure:
- Type — Change the element template
- Script — Attach a Lua script to this element
- Variables — Set local script variables (key-value pairs)
- Direction — Set orientation (North/East/South/West)
- Skin — For balls with multiple skins
- Order — Ball execution order
- Enemy Interactions — For enemies, configure which hazards they interact with
- Item Respawn — Enable/disable respawn and set respawn time
Level Properties
Press Escape to open the Main Menu, then select Level Properties:
- Max Time — Maximum time allowed for the level
- Initial Time — Starting time for the countdown
- Lives — Number of lives the player starts with
- Hourglass — Enable/disable the hourglass mechanic
- Infinite Lives — Give the player infinite lives
- Script — Attach a level-wide script
Scripts in the Editor
Creating Scripts
Press C to open the Script Editor. From here you can:
- Create new scripts — give each a unique name
- Edit existing scripts — modify Lua source code
- Delete scripts you no longer need
Attaching Scripts
Each element (level, block, side, item, enemy, ball, decoration) can have a script attached:
- Select the element
- Press V to open properties
- In the Script section, enter the script name or click More Scripts to browse
- Set a Script Tag to identify this specific element instance
- Configure Script Variables — key-value pairs accessible from the script
Saving and Loading
Save
- Press Escape → Save
- Enter a path like
folder/levelName
- The level is saved as a
.rqlevel file with a thumbnail
Load
- Press Escape → Load
- Browse directories and select a level
- The editor rebuilds from the saved data
Testing
Press T or use Escape → Test Level to play your level immediately. The game creates a virtual campaign with your level and lets you play it in the current editor session. Press Escape to return to the editor.
Rotating the Level
Press R to open the rotation menu. You can rotate the entire level layout by 90-degree increments. The editor rebuilds all block positions and orientations.
Score Info
The editor displays live score information based on the blocks, items, and enemies you place. This helps you balance the level’s difficulty and reward structure.
Complete Workflow Example
Here is a typical workflow for creating a simple level:
- Main Menu → Level Editor → new level
- Press B → select a floor block → press Space repeatedly to create a 5×5 floor
- Press E to move selector up → place wall blocks around the perimeter
- Left-click a side → press P → select ball template → ball is placed
- Left-click another side → press I → select key template → key is placed
- Left-click another side → press O → select enemy template → enemy is placed
- Press V on the level → Script → enter
level_main
- Press C → Create → name it
level_main → write your hooks
- Press T to test → play through → press Escape to return
- Press Escape → Save → enter path → done!
The level editor saves your work in progress automatically between sessions. When you reopen the editor, it restores the previous state including camera position, selector position, and all placed elements.