RLS Studios
ProjectsPatreonCommunityDocsAbout
Join Patreon
BeamNG Modding Docs

Guides

Reference

Server CommandsGE UtilitiesGame Engine MainNavigation GraphScreenshot CaptureServerServer ConnectionSpawnpoint ManagerSimulation TimeVehicle SpawningSuspension Frequency Tester
Gameplay AchievementGameplay CityDiscoverForce FieldGarage ModeMarker InteractionParking SystemGameplay Playmode MarkersGameplay PoliceGameplay RallyGameplay Rally LoopGameplay Raw POIsGameplay Skidpad TestSpeed Trap LeaderboardsSpeed Traps and CamerasGameplay StatisticsTaxi Ride SystemTraffic SystemVehicle PerformanceWalking
Crawl BoundariesCrawl Flowgraph BridgeCrawl DebugCrawl UI DisplayCrawl Flowgraph BridgeCrawl SystemCrawl Save SystemCrawl Engine

UI

Resources

BeamNG Game Engine Lua Cheat SheetGE Developer RecipesMCP Server Setup

// RLS.STUDIOS=true

Premium Mods for BeamNG.drive. Career systems, custom vehicles, and immersive gameplay experiences.

Index

HomeProjectsPatreon

Socials

DiscordPatreon (RLS)Patreon (Vehicles)

© 2026 RLS Studios. All rights reserved.

Modding since 2024

API ReferenceGE Extensionsgameplaycrawl

Crawl UI Display

Reference for `gameplay_crawl_display`, which provides UI message functions for the crawl (rock crawling) system. Handles all player-facing notifications during crawl gameplay.

Reference for gameplay_crawl_display, which provides UI message functions for the crawl (rock crawling) system. Handles all player-facing notifications during crawl gameplay.


Overview

A thin UI layer that sends localized ui_message notifications for crawl events - penalties, checkpoints, completion, disqualification, and more. Also manages the crawl-specific UI layout state.


Exports

FunctionDescription
onCrawlStarted()Switch to crawl UI layout
onCrawlComplete()Restore default UI layout
onCrawlResultsShown()Hook for results display (currently empty)
onExtensionLoaded()Initialization hook (currently empty)
onExtensionUnloaded()Restore default UI layout
showPointsMessage(points)Display current penalty points
clearPointsMessage()Clear the points message
showCrawlCompletedMessage(time, points)Show completion with time and points
showSkippedCheckpointsMessage(skippedCount)Warn about skipped checkpoints
showGateReachedMessage()Notify gate/checkpoint reached
showStartedCrawlMessage()Show crawl started notification
showDisqualifiedMessage()Show disqualification notice
showDrivingBackwardsMessage()Warn about driving backwards penalty
showVehicleFlippedUprightMessage()Notify flip-upright penalty
showVehicleResetMessage()Notify vehicle reset penalty
showBoundaryViolationMessage()Warn about boundary violation
showBonusCheckpointMessage(penaltyPoints)Show bonus checkpoint reached
showGateClearedMessage(penaltyPoints)Show gate cleared with point reduction
showDNFMessage()Show DNF (Did Not Finish) message

How It Works

All messages use the ui_message function with localization keys from ui.crawl.*:

-- Show penalty points
gameplay_crawl_display.showPointsMessage(25)

-- Show completion results
gameplay_crawl_display.showCrawlCompletedMessage(142.567, 15)

-- Show boundary violation with penalty context
gameplay_crawl_display.showBoundaryViolationMessage()
-- Displays: "Boundary violation! +10 penalty points"

Message Channels

Each message type uses a unique channel string to prevent overlapping:

ChannelMessage Type
"points"Current penalty points
"crawlCompleted"Completion results
"skippedCheckpoints"Skipped checkpoint warnings
"gateReached"Gate reached notification
"startedCrawl"Crawl started
"disqualified"Disqualification
"drivingBackwards"Backwards driving penalty
"boundaryViolation"Boundary violation
"bonusCheckpoint"Bonus checkpoint reached
"gateCleared"Gate cleared notification
"dnf"Did Not Finish
M.clearPointsMessage()
M.onCrawlComplete()
M.onCrawlResultsShown()
M.onCrawlStarted()
M.onExtensionLoaded()
M.onExtensionUnloaded()
M.showBonusCheckpointMessage(penaltyPoints)
M.showBoundaryViolationMessage()
M.showCrawlCompletedMessage(time, points)
M.showDNFMessage()
M.showDisqualifiedMessage()
M.showDrivingBackwardsMessage()
M.showGateClearedMessage(penaltyPoints)
M.showGateReachedMessage()
M.showPointsMessage(points)
M.showSkippedCheckpointsMessage(skippedCount)
M.showStartedCrawlMessage()
M.showVehicleFlippedUprightMessage()
M.showVehicleResetMessage()

Key Behaviors

  • Penalty point values are sourced from gameplay_crawl_utils.infractionPoints
  • Messages use context tables for localized string interpolation
  • The crawl UI layout switching is currently commented out in the source
  • clearPointsMessage() sends an empty string to the "points" channel

See Also

  • crawl/boundary - Crawl Boundary System - Related reference
  • crawl/crawlFlowgraphBridge - Crawl Flowgraph Bridge (Legacy) - Related reference
  • crawl/debug - Crawl Debug Window - Related reference
  • Gameplay Systems Guide - Guide

Crawl Debug

Reference for `gameplay_crawl_debug`, which provides an ImGui debug window displaying real-time crawl state information including trail data, vehicle info, penalty system, infraction data, path nodes,

Crawl Flowgraph Bridge

Reference for `gameplay_crawl_flowgraphBridge`, the current bridge between the crawl system and flowgraph nodes. Exposes crawl lifecycle operations for mission flowgraphs.

On this page

OverviewExportsHow It WorksMessage ChannelsKey BehaviorsSee Also