RLS Studios
ProjectsPatreonCommunityDocsAbout
Join Patreon
BeamNG Modding Docs

Guides

Reference

Server CommandsGE UtilitiesGame Engine MainNavigation GraphScreenshot CaptureServerServer ConnectionSpawnpoint ManagerSimulation TimeVehicle SpawningSuspension Frequency Tester
Bus DriverDamage GoalDemolition DerbyDistance GoalDrift GoalFinish Race GoalNo-Move GoalPosition GoalQuick RaceQuick Race LoaderRace MarkersRace DebugRace Goals ManagerRace UIScenario HelperScenario EngineScenarios LoaderSpeed GoalTime Limit GoalWaypoint ActionScenario Waypoints

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 Extensionsscenario

No-Move Goal

A scenario goal that fails if a vehicle moves from its starting position. Used for parking/brake scenarios where a vehicle must remain stationary.

A scenario goal that fails if a vehicle moves from its starting position. Used for parking/brake scenarios where a vehicle must remain stationary.


Internal State

FieldTypeDescription
M.instancesvariesAssigned as {}

Public API

FunctionSignatureDescription
M.init(scenario)Records start positions for all nomove goal vehicles
M.processState(scenario, state, stateData)Checks if vehicle moved > 0.1 units from start
M.updateFinalStatus(scenario, instance)Reports final goal status to statistics system

Goal JSON Schema

{
  "goal": {
    "nomove": {
      "msg": "scenarios.parking.youMoved",
      "triggerEndOnly": false
    }
  }
}
FieldTypeDefaultDescription
msglocalizedStringrequiredFailure message
triggerEndOnlybooleanfalseIf true, only triggers scenario end (doesn't set fail status)

How It Works

  1. init finds all goals with id == "nomove" and records each vehicle's position
  2. On onCountdownEnded, refreshes start positions (for scenarios with countdowns)
  3. Each onRaceTick and onRaceResult:
    • Calculates distance from start position
    • If distance > 0.1 units:
      • Normal mode: Sets result = "failed" and finishes scenario
      • triggerEndOnly mode: Calls scenario_scenarios.endScenario(0.25) without setting status
    • If within threshold: Sets result = "passed"

Usage Examples

-- Parking brake test: AI vehicle must not move
{
  "vehicles": {
    "parked_car": {
      "goal": {
        "nomove": {
          "msg": "scenarios.parking.carRolled"
        }
      }
    }
  }
}

-- End scenario silently if vehicle moves
{
  "nomove": {
    "triggerEndOnly": true
  }
}

Key Notes

  • Movement threshold is 0.1 world units (very sensitive)
  • In triggerEndOnly mode, goal status is not set - used for side-effect scenarios
  • Reports to both the vehicle's own stats and the player vehicle stats
  • Logs a warning if the vehicle object is missing, with a one-time flag to prevent spam
  • Start position is updated on countdown end (not just init) for countdown scenarios

See Also

  • Scenario Bus Driver - Bus Route Scenario Logic - Related reference
  • Scenario Damage Goal - Damage-Based Win/Fail Condition - Related reference
  • Scenario Demolition Derby - Last Vehicle Moving Wins - Related reference
  • Scenario System Guide - Guide

Finish Race Goal

A scenario goal that tracks whether a vehicle finishes a race. Supports both "must finish" and "must win" modes.

Position Goal

A scenario goal that checks if a vehicle is within range of a target scene object at race end. Used for parking/braking scenarios.

On this page

Internal StatePublic APIGoal JSON SchemaHow It WorksUsage ExamplesKey NotesSee Also