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.
EscapeExit play-in-editorAlt + PPlay/pause play-in-editor.Ctrl + Alt + PRelease cursor capture during play-in-editor (click Game Preview to recapture)F8Eject from game camera during play-in-editorF10Step one frame forward when the game is paused during play-in-editorCtrl + POpen projectCtrl + Shift + PCreate new projectCtrl + SSave currently opened sceneCtrl + Shift + SSave all assetsShift + SSave selected assetCtrl + OOpen sceneCtrl + IImport assetCtrl + RRefresh & Compile All ScriptsCtrl + Shift + ZRedo actionCtrl + ZUndo actionAlt + RorCtrl + RReload all scripts (Note: If not working, this hotkey may conflict with AMD/Nvidia overlays.)Ctrl + 1Switch to "Scene" editor modeCtrl + 2Switch to "2D" editor modeCtrl + 3Switch to "3D" editor modeCtrl + 4Switch to "3D + Vertex Paint" editor modeCtrl + 5Switch to "3D + Instance Paint" editor modeTToggle left pane (Scene + Assets)NToggle right pane (Properties)Alt + ZToggle editor interface
Viewport
Right ClickHold to pilot viewport cameraW/A/S/DMove viewport camera while pilotingMouseWheelScroll while piloting viewport camera to adjust move speedMouse3Hold to orbit viewport cameraShift + Mouse3Hold to pan viewport cameraGTranslate selected nodesSpace + GSwitch to theSwitch to the Translate gizmo on the selected nodesRRotate selected nodesSpace + RSwitch to the Rotation gizmo on the selected nodesSScale selected nodesSpace + SSwitch to the Scale gizmo on the selected nodesXLock transformation to X axis (when Translating/Rotating/Scaling)YLock transformation to Y axis (when Translating/Rotating/Scaling)ZLock transformation to Z axis (when Translating/Rotating/Scaling)Shift + XLock transformation to Y/Z plane (when Translating/Rotating/Scaling)Shift + YLock transformation to X/Z plane (when Translating/Rotating/Scaling)Shift + ZLock transformation to X/Y plane (when Translating/Rotating/Scaling)ForDecimalFocus on selected nodeCtrl + DDuplicate selected nodesDeleteDelete selected nodesAlt + ADeselect all nodesCtrl + ASelect all nodesZToggle wireframeKToggle collision debug renderingPToggle proxy renderingAlt + LToggle path tracing mode (Experimental, will probably crash, avoid this)BCycle through bounds rendering modeCtrl + GToggle gridCtrl + TToggle transform mode (Local vs Pivot)Numpad5Switch between orthographic and perspective projectionNumpad1Front viewNumpad3Right viewNumpad7Top viewCtrl + Numpad1Back viewCtrl + Numpad3Left viewCtrl + Numpad7Bottom viewShift + ASpawn node (as a child of the root node)Shift + QQuick spawn 3D node (as a child of the root node)Alt + 1Spawn StaticMesh3D nodeAlt + 2Spawn PointLight3D nodeAlt + 3Spawn Node3D nodeAlt + 4Spawn DirectionalLight3D nodeAlt + 5Spawn SkeletalMesh3D nodeAlt + 6Spawn Box3D nodeAlt + 7Spawn Sphere3D nodeAlt + 8Spawn Particle3D nodeAlt + 9Spawn Audio3D nodeAlt + 0Instantiate selected SceneEndDrop 3D node onto surface below (double tap to align to surface normal)InsertMove selected node to where mouse is hovering (double tap to align to surface normal)Numpad0Position selected node at current viewport camera locationE(Paint Instances) Toggle erase modeF(Paint Colors / Instances) Adjust size of brushShift + F(Paint Colors) Adjust opacity of brush
Scene Panel
MinusMove node up in child listPlusMove node down in child listDeleteDelete the selected nodesCtrl + DDuplicate node (opens name input popup for single selection, auto-names for multi-selection)F2Rename selected node
Assets Panel
Ctrl + NCreate new Scene assetCtrl + MCreate new Material assetCtrl + PCreate new Particle assetCtrl + DDuplicate selected asset (opens name input popup)F2Rename selected assetDeleteDelete selected asset(s)
Properties Panel
LLock the inspected objectMouse4Inspect previous objectMouse5Inspect 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 executableGameCube- Builds a GameCube DOL fileWii- Builds a Wii DOL file3DS- Builds a Nintendo 3DS ROMAndroid- 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:
- Asset Cooking - All assets are converted to platform-specific formats (.oct files) and saved to a
Packaged/directory - Asset Registry - An
AssetRegistry.txtis generated listing all packaged assets - Asset Embedding - When using the
embeddedflag, assets are compiled into C++ source files (EmbeddedAssets.handEmbeddedAssets.cpp) - Script Processing - Lua scripts are either embedded as C++ code or copied to the output directory
- Shader Compilation - For Vulkan platforms, GLSL shaders are compiled to SPIR-V
- 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.