API ReferenceGE ExtensionseditorcrawlEditor
Crawl Editor Starting Positions
Class-based starting position editor for the Crawl Editor. Manages area transform (position, rotation, radius), icon position, and placement with Ctrl-drag rotation.
Class-based starting position editor for the Crawl Editor. Manages area transform (position, rotation, radius), icon position, and placement with Ctrl-drag rotation.
Constructor
local SP = require('editor/crawlEditor/startingPositions')
local spEditor = SP()Class Methods
| Method | Signature | Description |
|---|---|---|
C:init() | Initialize state (snapToTerrain enabled) | |
C:setStartingPosition(sp) | Set the active starting position | |
C:setFields(sp) | Populate ImGui field buffers from starting position | |
C:clearSelection() | Clear the current transform selection | |
C:drawStartingPositionsList(allSPs, selection) | Render selectable list with Add/Delete | |
C:drawStartingPositionDetail(sp) | Render name, filename, description, position, rotation, radius, icon | |
C:getNewStartingPosition() | → table | Create default starting position template |
C:input(mouseInfo) | Handle Shift-click (place icon), Ctrl-drag (place+rotate area), click (select area/icon) | |
C:draw(mouseInfo) | Process input, draw rotation preview, manage gizmo | |
C:drawStartingPositionIndicators(mouseInfo) | Debug-draw area sphere, center point, icon sphere, direction arrow, labels | |
C:dropToTerrain(pos) | → vec3, bool | Snap position to terrain |
Starting Position Structure
{
name = "Start",
description = "...",
transform = {
position = vec3(0, 0, 0),
rotation = quat(1, 0, 0, 0),
radius = 4.0
},
iconPosition = vec3(0, 0, 0),
metadata = { created = "...", version = "1.0" }
}Interaction Modes
| Input | Action |
|---|---|
| Shift + Click | Place icon position at mouse hit point |
| Ctrl + Click & Drag | Place area position, drag to set rotation facing |
| Click | Select area or icon transform for gizmo |
Notes
- Two selectable transforms:
"area"(position/rotation/radius) and"icon"(position only) - Gizmo supports translate and rotate for area, translate-only for icon
- Selection radius scales with camera distance for consistent picking
- Undo/redo via
editor.history:commitActionwithsetTransformUndo/RedoandsetFieldUndo/Redo - Direction arrow drawn using Y-forward convention (BeamNG standard)
All Class Methods
| Method | Signature | Description |
|---|---|---|
C:init() | Initialize state | |
C:setFields(startingPosition) | Populate ImGui buffers from starting position | |
C:setStartingPosition(sp) | Set the active starting position | |
C:clearSelection() | Clear current transform selection | |
C:drawStartingPositionsList(allSPs, selection) | Render selectable list with Add/Delete | |
C:drawStartingPositionDetail(sp) | Full detail: name, file rename, description, transform, icon position | |
C:getNewStartingPosition() | → table | Create default starting position template |
C:input(mouseInfo) | Handle Shift-click (icon), Ctrl-drag (place+rotate), click (select) | |
C:updateTransform() | Set gizmo transform from area or icon position | |
C:beginDrag() | Capture pre-drag state | |
C:dragging() | Handle translate/rotate gizmo interaction | |
C:dropToTerrain(pos) | → vec3, bool | Snap position to terrain height |
C:endDragging() | Commit undo action | |
C:draw(mouseInfo) | Process input, draw rotation preview, manage gizmo | |
C:drawStartingPositionIndicators(mouseInfo) | Debug-draw area sphere, icon, direction arrow, labels |
See Also
- Crawl Editor - Boundaries - Related reference
- Crawl Editor Input - Related reference
- Crawl Editor Mission Port Tool - Related reference
- World Editor Guide - Guide
Crawl Editor Presets
Class-based preset and component management for the Crawl Editor. Handles save/load/delete of trails, boundaries, and pathnode presets, plus component-level persistence via `gameplay_crawl_saveSystem`
Crawl Editor Trails
Class-based trail editor for the Crawl Editor. Trails are the top-level objects that link paths, boundaries, starting positions, and prefabs together.