Drag Race Editor - Drag Settings
Manages drag race settings files (`.dragSettings.json`). Handles loading/saving, UI rendering for settings details, phases, prefabs, and validation.
Manages drag race settings files (.dragSettings.json). Handles loading/saving, UI rendering for settings details, phases, prefabs, and validation.
Public API
| Function | Signature | Description |
|---|---|---|
M.loadAllSettings() | Scans level and mission directories for settings files | |
M.getAllSettings() | → table | Returns all discovered settings files |
M.getSelectedSettingsIndex() | → number | Current selection index |
M.setSelectedSettingsIndex(idx) | Set selection index | |
M.getSelectedSettings() | → table/nil | Returns selected settings file info |
M.selectSettings(idx) | Select and load a settings file | |
M.getDragSettings() | → table | Returns current in-memory settings |
M.setDragSettings(settings) | Replace current settings | |
M.loadDragSettings(filePath) | → bool | Load settings from JSON file |
M.saveDragSettings(filePath) | → bool | Save settings to JSON (with validation) |
M.validateDragSettings(settings) | → bool, string | Validates required fields |
M.drawSettingsList() | Renders settings file list with Add/Remove/Save/Refresh | |
M.drawSettingsDetails() | Renders full settings inspector | |
M.drawDragSettingsSection() | Compact settings section (reset, teleport, context, type, IDs) | |
M.drawPrefabsSection() | Prefab toggles with file loading | |
M.drawPhasesSection() | Phase list with add/remove/reorder |
Settings Structure
{
canBeReseted = true,
canBeTeleported = true,
context = "activity", -- "freeroam" | "activity"
dragType = "headsUpRace", -- "headsUpRace" | "bracketRace" | "dragPracticeRace"
facilityId = "",
stripId = "",
phases = {
{ name = "stage", dependency = true, startedOffset = 0 },
{ name = "countdown", dependency = false, startedOffset = 0 },
...
},
prefabs = {
christmasTree = { isUsed = false, treeType = ".500", prefabPath = "" },
displaySign = { isUsed = false, prefabPath = "" },
paths = { isUsed = false, prefabPath = "" },
decorations = { isUsed = false, prefabPath = "" }
}
}File Discovery
Scans these locations for .dragSettings.json:
/levels/<level>/dragstrips//gameplay/missions/<level>/dragStripRace//gameplay/missions/<level>/dragStripAPM/
Tries multiple level name formats (original, lowercase, underscored).
Notes
- Validation requires
dragType,facilityId, andstripIdto be non-empty - Settings selection clears facility and strip selections
- Uses
state.getSearch()for searchable combo boxes
See Also
- Drag Race Editor Constants - Related reference
- Drag Race Editor - Facilities - Related reference
- Drag Race Editor - Lanes - Related reference
- World Editor Guide - Guide
Drag Race Editor Constants
Centralized constants for the Drag Race Editor. Defines window settings, drag race types, phase names, tree types, context types, default transforms, UI dimensions, and debug colors.
Drag Race Editor - Facilities
Manages drag racing facilities (venues containing strips). Provides CRUD operations, ImGui list/detail rendering, and 3D preview drawing.