Parking Markers / Rect Marker (Flowgraph Node)
- **Node Name:** `Parking Markers`
Overview
- Node Name:
Parking Markers - Category:
repeat_instant - File:
extensions/flowgraph/nodes/scene/rectMarker.lua
Creates visible corner markers for a rectangular parking spot, manages a box trigger for containment detection, and tracks vehicle parking state including alignment and stop timing.
Pin Schema
Input Pins
| Pin | Type | Description |
|---|---|---|
flow | flow | Standard inflow |
clear | flow (impulse) | Removes all markers and trigger |
vehId | number | Vehicle ID to track (defaults to player vehicle) |
position | vec3 | Parking spot position |
rotation | quat | Parking spot rotation |
scale | vec3 | Parking spot dimensions (width, depth, height) |
onlyForward | bool | (Hidden) Restrict to forward parking |
visibleMarkers | bool | (Hidden) Show corner marker meshes |
staticMarkers | bool | (Hidden) Don't align markers to terrain |
stop_timer | number | (Hidden) Seconds to consider stopped (default 1) |
color_out | color | (Hidden) Marker color when outside |
color_in | color | (Hidden) Marker color when inside |
Output Pins
| Pin | Type | Description |
|---|---|---|
inside | flow | All corners contained |
outside | flow | Not all corners contained |
partlyInside | flow | At least one corner contained |
stopped | flow | Vehicle stopped for stop_timer seconds |
stopping | flow | (Hidden) Vehicle currently counting down |
stoppedPercent | number | (Hidden) Stop timer progress |
dotAngle | number | Alignment (1 = perfect, 0 = perpendicular) |
forward | bool | Parked forward or backward |
sideDistance | number | Lateral offset from center |
forwardDistance | number | Longitudinal offset from center |
sideDistanceRelative | number | (Hidden) Side distance / scale.x |
forwardDistanceRelative | number | (Hidden) Forward distance / scale.y |
How It Works
- Trigger Creation -
manageTrigger()creates aBeamNGTrigger(Box type) at the specified position/rotation/scale. Updates dynamically if inputs change. - Marker Spawning -
createMarkers()spawns 4TSStaticcorner markers usingart/shapes/interface/position_marker.dae.updateMarkerPositions()aligns them to terrain via raycasting (unlessstaticMarkersis true). - Parking Check -
checkParking()tests all 8 OOBB corners of the vehicle against the trigger. Colors each marker green (contained) or red (not contained). Tracks alignment via dot product and stop timer via velocity check (≤ 0.075). - Cleanup -
clear()deletes trigger and all marker objects from the scene tree.
Key Dependencies
BeamNGTrigger- box trigger for containment testingTSStatic- corner marker mesh objectsveh:getSpawnWorldOOBB()- vehicle oriented bounding boxEngine.castRay()- terrain alignment for markersmap.objects[vehId]- vehicle velocity data
Additional Methods
C:_executionStarted()
Called when graph execution starts. Used for initialization/reset.
C:_executionStopped()
Called when graph execution stops. Used for cleanup.
C:_onDeserialized(res)
Called after the node is deserialized (loaded from file). Restores runtime state from saved data.
Parameters:
res
C:_onSerialize(res)
Called when the node is serialized (saved to file). Returns data to persist.
Parameters:
res
C:createCornerMarker(markerName)
Node method.
Parameters:
markerName
C:drawCustomProperties()
Custom ImGui drawing for the node's properties panel in the editor.
C:drawMiddle(builder, style)
Custom ImGui drawing in the middle section of the node in the editor.
Parameters:
builderstyle
C:init(mgr, ...)
Initializes the node, setting up pins and default properties.
Parameters:
mgr...
C:onClientEndMission()
Cleanup callback when the mission/level ends.
C:work(args)
Main work function called each frame/tick when the node is active.
Parameters:
args
See Also
- Collection Marker (Flowgraph Node) - Related reference
- Custom Lua Command (Flowgraph Node) - Related reference
- Get Object Field (Flowgraph Node) - Related reference
- FlowGraph Guide - Guide