RLS Studios
ProjectsPatreonCommunityDocsAbout
Join Patreon
BeamNG Modding Docs

Guides

Reference

server/commands - Camera & Input Commandsge_utils - Game Engine Utility Functionsmain.lua - GE Lua Entry Point & Game Loopmap.lua - Navigation Graph (AI Road Map)screenshot.lua - Screenshot Systemserver/server - Level Loading & Game ServerserverConnection - Client-Server Connection Manager`setSpawnpoint` - Default Spawn Point Persistence`simTimeAuthority` - Simulation Time & Bullet Time Control`spawn` - Vehicle Spawning & Safe Placement`suspensionFrequencyTester` - Suspension Natural Frequency Analysis
ui/ambientSound - Ambient Sound Stream PlayerUI Apps ManagerUI AudioBindings LegendCamera Distance AppConsole (consoleNG)Credits MusicExternal App (WebSocket UI Server)Fade ScreenGame BlurGameplay App ContainersGrid SelectorLivery EditorMessages DebuggerMessages/Tasks App ContainersMission InfoPolice InfoTop BarUI ModsUI Navigation / MapVehicle Paint EditorVehicle Vicinity AppUI Visibility
Gameplay Selector - GeneralTile ClusteringGameplay Selector TilesTile Sorting
Campaign Tiles GeneratorLevel Tiles GeneratorMission Tiles GeneratorScenario Tiles Generator

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 ExtensionsuigameplaySelectortileGenerators

Scenario Tiles Generator

Tile generator for legacy scenario entries in the gameplay selector grid.

Tile generator for legacy scenario entries in the gameplay selector grid.


Overview

ui_gameplaySelector_tileGenerators_scenarioTiles provides tiles and detail panels for the deprecated scenario system. Scenarios are loaded from scenario_scenariosLoader and displayed in the "Scenarios (deprecated)" system group.

Extension path: lua/ge/extensions/ui/gameplaySelector/tileGenerators/scenarioTiles.lua


Exports (M)

Hook HandlerSignatureDescription
onGameplaySelectorGetTiles(items, backend)Adds scenario tiles to the items list.
onGameplaySelectorGetDetails(itemDetails, details, buttonInstance, backend)Detail panel with scenario specs and start button.

Internals

Tile Structure

{
  name = translate(scenario.name),
  system = "Scenarios (deprecated)",
  type = "Scenario (deprecated)",
  level = translate(core_levels.getLevelTitle(scenario.levelName)),
  isLegacy = true,
  key = "scenario_<sourceFile>",
  order = -tonumber(scenario.date),
  validBackends = {gameplaySelector = true},
}

Detail Panel Specifications

Includes: difficulty, authors, creation date, map, multiplayer info, goals list, and a legacy notice ("Scenario system is outdated").

Tags

  • Official (beamNG icon), Auxiliary (bug icon), Mod info (puzzle icon)

Start Button

buttonInstance.addButton(function()
  backend.trackRecent(itemDetails.key)
  scenario_scenariosLoader.start(scenario)
end, {
  label = "Start Scenario",
  primary = true,
  isDoubleClickAction = true,
  waitForLoadingScreen = true,
})

How It Works

  1. Hook collects scenarios from scenario_scenariosLoader.getList(nil, false, true)
  2. Each scenario produces a tile with level/system metadata
  3. Scenarios are clustered by level in automatic mode
  4. Detail panel loads full scenario data and displays specs
  5. "Start Scenario" button launches the scenario and tracks recent usage

Additional Exports

The following exports are available but not yet documented in detail:

  • M.onGameplaySelectorGetDetails
  • M.onGameplaySelectorGetTiles

Mission Tiles Generator

Tile generator for mission/challenge entries in the gameplay selector grid.

Button Module

Factory module for managing detail panel buttons with callback registration and execution by ID.

On this page

OverviewExports (M)InternalsTile StructureDetail Panel SpecificationsTagsStart ButtonHow It WorksAdditional Exports