Repository navigation
Editor Walkthrough
A practical, hands-on guide to the SparkEditor. This page covers day-to-day workflows rather than exhaustive API details. For the full panel reference, see SparkEditor.
Release boundary: SparkEditor is a required Windows authoring product in the blocked and uncertified
stable-v1profile. Panel descriptions are source-level guidance; registration, default visibility, and complete undo/gizmo behavior are separate gates. Collaboration, visual scripting, plugins, and non-Windows paths remain experimental or outside the profile.
Build with ENABLE_EDITOR=ON and launch the separate SparkEditor executable.
The runtime hosts do not currently define an F1 editor-overlay toggle.
The current factory metadata marks 6 core panels visible by default:
| Panel | Position | What it does |
|---|---|---|
| Scene View | Center | 3D viewport with editor gizmos and camera controls |
| Hierarchy | Left | Tree view of all entities in the scene |
| Inspector | Right | Property editor for the selected entity |
| Asset Browser | Bottom | Project file browser with thumbnails |
| Console | Bottom | Log output, command input, and filtering |
| Game View | Tab (center) | In-game camera preview with HUD |
Registered panels can be dragged, docked, resized, or closed. The Window menu can reopen the panels that the current editor build registers; the 65-header inventory is not a registration or release-certification count.
The Scene View is your primary 3D viewport.
| Input | Action |
|---|---|
| Right-click + drag | Orbit camera |
| Middle-click + drag | Pan camera |
| Scroll wheel | Zoom in/out |
| Click entity | Select it |
| W | Translate gizmo (implemented path) |
| E | Select rotate mode (current transform application is incomplete; EDT-210) |
| R | Select scale mode (current transform application is incomplete; EDT-210) |
The Scene View toolbar lets you switch between render modes:
- Shaded — Full PBR rendering (default)
- Wireframe — Wireframe overlay
- Unlit — No lighting, diffuse color only
- Normals — Visualize surface normals
- The grid is visible by default (toggle in Editor settings)
- Snap to grid is enabled by default with 1.0 unit spacing
- Change grid size in
settings.iniunder[Editor]:GridSize = 0.5
- Hierarchy panel → Right-click → "Create Entity"
- Or use the Object Placement panel (Window → Object Placement): Quick Place and Place Selected create real, undoable entities from the editor's entity templates. The brush/line/grid/scatter modes, align mode, and snap settings are authored in the panel but not yet read by the viewport
- Click in the Scene View to select
- Or click in the Hierarchy panel
- The selected entity highlights in the viewport and the Inspector shows its components
The Inspector panel displays all components attached to the selected entity:
- Transform — Position, rotation, scale (always present)
- MeshRenderer — 3D mesh and material
- RigidBody — Physics body settings
- Light — Point, directional, or spot light
- AudioSource — Sound emitter
- Camera — Camera parameters
- And 70+ more component types
Click Add Component at the bottom of the Inspector to attach new components.
Some scene-edit operations participate in the command stack; complete operation coverage remains blocked by EDT-210:
- Ctrl+Z — Undo
- Ctrl+Y — Redo
- Open the Undo History panel to see the full command stack and jump to any point
Open from Window → Material Editor. Edit PBR material properties:
- Albedo — Base color and texture
- Metallic / Roughness — PBR parameters with texture slots
- Normal Map — Surface detail
- Emission — Self-illumination
- AO — Ambient occlusion
Drag textures from the Asset Browser into texture slots. The live preview sphere updates in real-time.
Open from Window → Particle Editor. Configure GPU particle emitters:
- Emission — Rate, burst count, shape (point, sphere, cone, box, circle)
- Appearance — Color gradient over lifetime, size curve
- Physics — Gravity, drag, collision
- Sub-emitters — Particles that spawn particles
- Trails — Ribbon trail rendering
For 2D games:
- Sprite Editor — Configure source rects, pivots, pixels-per-unit, sorting layers
- Sprite Animation Editor — Frame-based animation with timeline, onion skinning, and sprite sheet auto-slice
- Tilemap Editor — Paint tiles with brush, fill, and rectangle tools. Supports collision tiles, layers, and auto-tiling
Open from Window → Terrain Editor. Sculpt heightmap terrain:
- Paint height with raise/lower/smooth/flatten brushes
- Paint textures with blending layers
- Integrated with the physics system for collision
Open from Window → Weapon Editor. It is a balance calculator (DPS chart and comparison table); edits are session-only -- the panel cannot save and no game module reads them:
- Damage, fire rate, magazine size, reload time
- Accuracy, range, recoil pattern
- DPS chart for quick comparison
- Side-by-side weapon comparison table
- AI Editor — Create behavior tree templates with Selector, Sequence, Action, Condition, Decorator, and Parallel nodes
- AI Debug — Live-inspect AI agents during play mode. Shows blackboard variables, BT execution trace, perception ranges, and nav paths
Open from Window → Dialogue Editor. Author branching dialogue trees:
- Create text, choice, branch, event, and end nodes
- Assign speakers, animations, and voice clips
- Set conditions on choices (requires variables set in the Condition Editor)
Open from Window → Cinematic Sequencer. Create cutscenes:
- Add tracks (camera, actor, audio, event)
- Place keyframes on the timeline
- Scrub the timeline for preview
- Export to JSON
Open from Window → Event Response. Build "When/If/Then" gameplay rules without code:
- When — Choose a trigger event type
- If — Add conditions (AND/OR groups)
- Then — Define actions to execute
Open from Window → Physics 3D. Configure the Jolt Physics world:
- Set gravity, timestep, substep count
- Toggle debug visualization (wireframes, AABBs, contacts, constraints)
- Quick-add primitive shapes (box, sphere, capsule, cylinder)
- Physics material presets
- Raycast testing tool
Open from Window → Physics 2D. For 2D physics:
- World gravity settings
- Collision layer matrix editor
- Body inspector
- Spatial hash grid visualization
Open from Window → Audio Mixer:
- Master / SFX / Music volume sliders
- Mix bus hierarchy with VU meters
- DSP effects (reverb, EQ, compressor)
- Active sound monitoring
- Sound bank browser
- Reverb zone configuration
Open from Window → Project Settings. Tabbed categories for all engine settings:
- Graphics, Rendering, Post-Processing, Audio, Controls
- Physics, AI, Player, Gameplay, Camera
- Network, Scripting, Animation, Editor, Logging
Changes apply at runtime and can be saved to settings.ini.
Open Window → Build & Cook for the current local build/staging interface. Its output is not a certified release package:
- Select build profile (Debug / Development / Release / Shipping)
- Choose target platform
- Inspect reserved texture/audio/mesh transform controls; those transforms are not implemented and content is copied unchanged
- Run the available local build/staging step with progress monitoring
Open from Window → Game Module Selector:
- Scan for available game module DLLs
- Toggle modules active/inactive
- Generate
spark.modules.jsonmanifest
Open from Window → Debug Visualizer. Toggle overlays:
- Physics (colliders, AABBs, contacts, raycasts, velocities)
- Navigation (navmesh, paths, agents)
- Audio (listener position, source ranges)
- Camera and light debug
- Performance overlays (FPS, draw calls, triangle count)
Open from Window → Scene Statistics:
- Entity counts and component breakdowns
- Rendering statistics (draw calls, triangles, batches)
- Physics body counts
- Memory usage
- Performance graphs with history
Open from Window → Event Monitor. Watch the EventBus in real-time:
- Filter by event type or category
- Color-coded by category
- Useful for debugging event-driven systems
Open from Window → Coroutine Debug. Monitor active coroutines:
- Status (running, suspended, completed, failed)
- Elapsed time and wait states
- Cancel coroutines individually
The Play Mode Toolbar (top of editor) controls simulation:
| Button | Action |
|---|---|
| Play | Start simulation |
| Pause | Freeze simulation |
| Stop | Reset to editor state |
| Step | Advance one frame |
The toolbar includes a time-scale slider with presets:
- 0.25x — Quarter speed (useful for debugging physics)
- 0.5x — Half speed
- 1x — Normal
- 2x / 4x — Fast-forward
During play mode, you can selectively enable/disable:
- Physics, AI, Audio, Animation, Scripting, Particles
This is useful for isolating bugs — disable everything except the system you are debugging.
Collaborative editing is an experimental implementation outside stable-v1; the following is development guidance rather than a release-support claim:
- Open Window → Collaboration
- One user clicks Host to start a session
- Others click Join and enter the host address
- Entity locks prevent two users from editing the same object simultaneously
- The activity log shows who is editing what
See Collaborative Editing for details.
The editor uses a customizable theme system. Default themes are applied via EditorTheme.cpp. Custom themes can override colors, spacing, and font sizes.
- Registered panels are accessible from the Window menu; the repository's
65
*Panel.hclasses are a source inventory, not a visibility guarantee - Drag panels to rearrange the layout
- Layouts persist between sessions
| Shortcut | Action |
|---|---|
| F3 | Toggle FPS stats |
| ` (Backtick) | Toggle console |
| W | Translate gizmo |
| E | Select rotate mode (transform application incomplete) |
| R | Select scale mode (transform application incomplete) |
| Ctrl+Z | Undo |
| Ctrl+Y | Redo |
| Ctrl+S | Save scene |
| Delete | Delete selected entity |
- SparkEditor — Full panel reference and architecture details
- Artist Workflow Guide — Asset creation workflows
- Quick-Start Tutorial — Your first 10 minutes
- Configuration Reference — All settings and console commands
Published from 2b03dc797148. Edit the canonical source in wiki/.
- Documentation
- Docs route
- Wiki index
- Guides
- Tutorials
- Samples
- Examples
- API Reference
- API route
- Reference
- Build Guide
- Dependencies
- FAQ
- Changelog
- Roadmap
- Contributing
- Code of Conduct
- Home
- FAQ
- Getting Started
- Quick-Start Tutorial
- Making Your First Game
- Making Your First Multiplayer Game
- Artist Workflow Guide
- Editor Walkthrough
- Migration Guide
- How SparkEngine Works
- Architecture Overview
- Engine Architecture Flowchart
- Creating a Game Module
- Game Modules (catalog)
- Entity Component System
- Rendering and Graphics
- Physics
- Cloth Simulation
- Audio
- Input System
- Camera System
- Scripting with AngelScript
- Visual Scripting
- AI and Navigation
- Animation
- 2D Systems
- Networking
- Dedicated Server
- Multiplayer Quick Start
- Area Server Architecture
- Scene Management
- Large World Support
- Collaborative Editing
- Coroutine System
- Event System
- Event Response System
- Job System
- UI System
- UI Layout Extensions
- Localization
- Dialogue System
- Destruction System
- Replay System
- Achievement System
- Loading System
- Mod System
- Content Delivery
- Tween System
- Memory Integrity
- Gameplay Systems
- Terrain and Procedural Generation
- Save System
- Persistence System
- Day Night Cycle and Weather
- Cinematic Sequencer
- Runtime Prefabs
- SparkEditor
- Editor Tutorials
- SparkConsole
- SparkDaemon
- Shader Pipeline
- Asset Pipeline
- Asset Validation
- Asset Migration
- Game Packaging
- Online Services
- DataTable System
- Loot and Crafting System
- CSG System
- Font System
- Timer Manager
- Movie Render Pipeline
- HLOD and World Partition
- Remote Debug System
- Selection Manager
- Asset Dependency Graph
- Editor Automation
- File Watcher
- Project Templates
- System Requirements
- VR Support
- Mobile Platform
- Accessibility
- Platform Input
- Platform Certification
- Cross-Compilation: Wine Testing
- RHI Abstraction Layer
- D3D11 Backend
- D3D12 Backend
- Vulkan Backend
- OpenGL Backend
- Metal Backend
- DXR Raytracing
- Hybrid Ray Tracing
- Upscaling (DLSS/FSR)
- Render Graph
- Shader Graph
- GPU Particles
- GPU-Driven Rendering
- Volumetric Fog
- Volumetric Clouds
- Global Illumination
- Virtual Texturing
- Water Rendering
- Clustered Lighting
- Material System
- Post-Processing
- Shadow System
- Particle System
- Decal System
- Sky and Atmosphere
- Foliage System
- Mesh Shaders
- Neural Rendering
- Configuration Reference
- Performance Tips
- Benchmark Framework
- Threading Model
- Fuzz Policy and Parser Security
- Memory Safety
- Memory Management Patterns
- Build System and CMake Modules
- Profiler and Debugging
- Performance Profiling Guide
- Telemetry System
- Crash Reporting
- Golden Image Testing
- Utilities
- Testing
- Fuzz Policy and Parser Security
- Codebase Statistics
- Codebase Health
- Error Handling Patterns
- Hot Reload Overview
- Troubleshooting
- Contributing
- Workflow Patterns
- Build Optimizations
- CI Reproducible Builds
- GitHub API and PR Checks
- Git Rebase Conflicts
- Clang-Format
- Code Quality Violations
- AI Bloat Pattern
- MinGW + Wine Cross-Compilation
- Live Editor Testing
- Engine & Renderer Landscape
- DuetOS Portability Catalog
- Five-Engine Analysis
- Eleven-Engine Analysis
- ThorVG / Unity Graphics Analysis
- Advanced Techniques Catalog
- Third-Party Library Evaluation
- Engine Viability Evaluation
- Engine Feature Recommendations
- Project Recommendations
- Mac Compatibility Analysis
- Codebase Observations
- Codebase Bloat Audit
- Test Suite Audit
- Documentation Coverage Audit
- ThirdParty Dependencies Audit
- Load Test Baseline
- Gameplay Systems Status
- SparkGame Module Status
- Stub and Abandoned Features
- Memory Integrity System
- Memory Safety Evaluation
- Hardware Acceleration Systems
- Jolt Physics Integration
- GPU/CPU Separation Plan
- Daemon Services Architecture
- Reflection & Polymorphism Refactoring Plan
- SparkBuild In-Tree
- Wine No-JobSystem Breakthrough
- Wine Role and Fallback Tiers