Skip to content

Editor

Hotkeys

Global

These global hotkeys can be activated no matter where the mouse cursor is located. For all other hotkeys, the mouse cursor must be inside the specific panel.

  • Escape Exit play-in-editor
  • Alt + P Play/pause play-in-editor.
  • Ctrl + Alt + P Release cursor capture during play-in-editor (click Game Preview to recapture)
  • F8 Eject from game camera during play-in-editor
  • F10 Step one frame forward when the game is paused during play-in-editor
  • Ctrl + P Open project
  • Ctrl + Shift + P Create new project
  • Ctrl + S Save currently opened scene
  • Ctrl + Shift + S Save all assets
  • Shift + S Save selected asset
  • Ctrl + O Open scene
  • Ctrl + I Import asset
  • Ctrl + R Refresh & Compile All Scripts
  • Ctrl + Shift + Z Redo action
  • Ctrl + Z Undo action
  • Alt + R or Ctrl + R Reload all scripts (Note: If not working, this hotkey may conflict with AMD/Nvidia overlays.)
  • Ctrl + 1 Switch to "Scene" editor mode
  • Ctrl + 2 Switch to "2D" editor mode
  • Ctrl + 3 Switch to "3D" editor mode
  • Ctrl + 4 Switch to "3D + Vertex Paint" editor mode
  • Ctrl + 5 Switch to "3D + Instance Paint" editor mode
  • T Toggle left pane (Scene + Assets)
  • N Toggle right pane (Properties)
  • Alt + Z Toggle editor interface

Viewport

  • Right Click Hold to pilot viewport camera
  • W/A/S/D Move viewport camera while piloting
  • MouseWheel Scroll while piloting viewport camera to adjust move speed
  • Mouse3 Hold to orbit viewport camera
  • Shift + Mouse3 Hold to pan viewport camera
  • G Translate selected nodes
  • Space + G Switch to theSwitch to the Translate gizmo on the selected nodes
  • R Rotate selected nodes
  • Space + R Switch to the Rotation gizmo on the selected nodes
  • S Scale selected nodes
  • Space + S Switch to the Scale gizmo on the selected nodes
  • X Lock transformation to X axis (when Translating/Rotating/Scaling)
  • Y Lock transformation to Y axis (when Translating/Rotating/Scaling)
  • Z Lock transformation to Z axis (when Translating/Rotating/Scaling)
  • Shift + X Lock transformation to Y/Z plane (when Translating/Rotating/Scaling)
  • Shift + Y Lock transformation to X/Z plane (when Translating/Rotating/Scaling)
  • Shift + Z Lock transformation to X/Y plane (when Translating/Rotating/Scaling)
  • F or Decimal Focus on selected node
  • Ctrl + D Duplicate selected nodes
  • Delete Delete selected nodes
  • Alt + A Deselect all nodes
  • Ctrl + A Select all nodes
  • Z Toggle wireframe
  • K Toggle collision debug rendering
  • P Toggle proxy rendering
  • Alt + L Toggle path tracing mode (Experimental, will probably crash, avoid this)
  • B Cycle through bounds rendering mode
  • Ctrl + G Toggle grid
  • Ctrl + T Toggle transform mode (Local vs Pivot)
  • Numpad5 Switch between orthographic and perspective projection
  • Numpad1 Front view
  • Numpad3 Right view
  • Numpad7 Top view
  • Ctrl + Numpad1 Back view
  • Ctrl + Numpad3 Left view
  • Ctrl + Numpad7 Bottom view
  • Shift + A Spawn node (as a child of the root node)
  • Shift + Q Quick spawn 3D node (as a child of the root node)
  • Alt + 1 Spawn StaticMesh3D node
  • Alt + 2 Spawn PointLight3D node
  • Alt + 3 Spawn Node3D node
  • Alt + 4 Spawn DirectionalLight3D node
  • Alt + 5 Spawn SkeletalMesh3D node
  • Alt + 6 Spawn Box3D node
  • Alt + 7 Spawn Sphere3D node
  • Alt + 8 Spawn Particle3D node
  • Alt + 9 Spawn Audio3D node
  • Alt + 0 Instantiate selected Scene
  • End Drop 3D node onto surface below (double tap to align to surface normal)
  • Insert Move selected node to where mouse is hovering (double tap to align to surface normal)
  • Numpad0 Position selected node at current viewport camera location
  • E (Paint Instances) Toggle erase mode
  • F (Paint Colors / Instances) Adjust size of brush
  • Shift + F (Paint Colors) Adjust opacity of brush

Scene Panel

  • Minus Move node up in child list
  • Plus Move node down in child list
  • Delete Delete the selected nodes
  • Ctrl + D Duplicate node (opens name input popup for single selection, auto-names for multi-selection)
  • F2 Rename selected node

Assets Panel

  • Ctrl + N Create new Scene asset
  • Ctrl + M Create new Material asset
  • Ctrl + P Create new Particle asset
  • Ctrl + D Duplicate selected asset (opens name input popup)
  • F2 Rename selected asset
  • Delete Delete selected asset(s)

Properties Panel

  • L Lock the inspected object
  • Mouse4 Inspect previous object
  • Mouse5 Inspect next object

Headless Mode

Headless mode allows the editor to run without a graphical interface for automated asset compilation and game building. This is useful for CI/CD pipelines and Docker-based build environments.

Requirements

Headless mode requires both the -headless flag AND a -project path to be specified.

Command Line Arguments

Argument Description Example
-headless Enables headless mode -headless
-project Path to project file (.octp) -project MyGame/MyGame.octp
-build Target platform for compilation -build Linux
embedded Embed assets into the executable (optional, follows -build) -build Linux embedded

Supported Build Platforms

  • Linux - Builds a Linux executable (.elf)
  • Windows - Builds a Windows executable
  • GameCube - Builds a GameCube DOL file
  • Wii - Builds a Wii DOL file
  • 3DS - Builds a Nintendo 3DS ROM
  • Android - Builds an Android APK

Usage Examples

Build a Linux game with embedded assets:

./PolyphaseEditor.elf -headless -project "/path/to/MyGame.octp" -build Linux embedded

Build a GameCube game:

./PolyphaseEditor.elf -headless -project "/path/to/MyGame.octp" -build GameCube embedded

Build a 3DS ROM:

./PolyphaseEditor.elf -headless -project "/path/to/MyGame.octp" -build 3DS embedded

Build Process

When building in headless mode, the following steps are performed:

  1. Asset Cooking - All assets are converted to platform-specific formats (.oct files) and saved to a Packaged/ directory
  2. Asset Registry - An AssetRegistry.txt is generated listing all packaged assets
  3. Asset Embedding - When using the embedded flag, assets are compiled into C++ source files (EmbeddedAssets.h and EmbeddedAssets.cpp)
  4. Script Processing - Lua scripts are either embedded as C++ code or copied to the output directory
  5. Shader Compilation - For Vulkan platforms, GLSL shaders are compiled to SPIR-V
  6. Game Compilation - The final executable/ROM is compiled using platform-specific toolchains

Docker Integration

Headless mode is designed to work with Docker for reproducible builds. See Docker.md for information on using the Docker build system.