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

Mission Tiles Generator

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

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


Overview

ui_gameplaySelector_tileGenerators_missionTiles provides tiles and detail panels for gameplay missions (the "Challenges" system). Missions are loaded from gameplay_missions_missions and include support for career-only content filtering.

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


Exports (M)

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

Internals

Tile Structure

{
  name = translate(mission.name),
  system = "Challenges",
  type = translate(mission.missionTypeLabel),   -- e.g. "Drift Zone", "Time Trial"
  level = translate(core_levels.getLevelTitle(mission.startTrigger.level)),
  isCareerOnly = true/false,                    -- career-only missions can be filtered
  key = "mission_<missionId>",
  sourceIcons = {},   -- beamNG, bug, cup (career-only)
  validBackends = {gameplaySelector = true},
}

Career-Only Filtering

Missions with careerSetup.showInCareer = true and showInFreeroam = false are flagged as isCareerOnly. The gameplay selector respects the showCareerContent display option.

Detail Panel Specifications

Two specification groups:

  1. General: mission type, difficulty, vehicle, author, date, map, custom attributes
  2. Career: skill/branch info, career-only availability notice

Tags

  • Official (beamNG icon)
  • Auxiliary/dev mission (bug icon)
  • Career Only (cup icon)
  • Mod info (puzzle icon)
  • Mission type label

Start Button

buttonInstance.addButton(function()
  backend.trackRecent(itemDetails.key)
  gameplay_missions_missionManager.startWithLoadingLevel(mission)
end, {
  label = "Start Mission",
  primary = true,
  isDoubleClickAction = true,
  waitForLoadingScreen = true,
})

How It Works

  1. Hook collects all missions from gameplay_missions_missions.get()
  2. Each mission is mapped to a tile with type/level/system metadata
  3. Career-only missions get a cup source icon and isCareerOnly flag
  4. Detail panel generates specifications from mission attributes
  5. "Start Mission" button launches with level loading via startWithLoadingLevel

Additional Exports

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

  • M.onGameplaySelectorGetDetails
  • M.onGameplaySelectorGetTiles

Level Tiles Generator

Tile generator for freeroam level/spawnpoint entries in the gameplay selector grid.

Scenario Tiles Generator

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

On this page

OverviewExports (M)InternalsTile StructureCareer-Only FilteringDetail Panel SpecificationsTagsStart ButtonHow It WorksAdditional Exports