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

Level Tiles Generator

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

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


Overview

ui_gameplaySelector_tileGenerators_levelTiles provides per-spawnpoint tiles for each level. Each spawnpoint appears as a separate tile in the Freeroam system group, with detail panels showing level specifications and freeroam/configuration buttons.

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


Exports (M)

Hook/FunctionSignatureDescription
onGameplaySelectorGetTiles(items)Adds spawnpoint tiles from all levels.
onGameplaySelectorGetDetails(itemDetails, details, buttonInstance, backend)Detail panel with level specs and buttons.
onFilterCustomLevelTiles(item, searchText, result)Extended search across biome, features, roads, country.
setAlwaysShowDialogue(backendName, newValue)Toggles default freeroam action between start/configure.
openLevelConfigurationPopup(levelData)Opens the level configuration popup for a given level.
onFreeroamSelectorOpenedWithItemDetails(...)Hook - handles freeroam selector opened with item details.

Internals

Tile Structure

Each spawnpoint produces a tile:

{
  name = "Spawn Name (Level Title)",
  system = "Freeroam",
  type = "Freeroam Spawnpoint",
  levelName = level.levelName,
  isDefaultSpawnPoint = true/false,
  validBackends = {freeroamSelector = true, gameplaySelector = false},
  key = "spawnPoint_<levelName>_<objectName>",
  filterHook = "onFilterCustomLevelTiles",
}

Note: Level tiles set gameplaySelector = false by default - they're primarily for the freeroam selector.

Detail Panel

Includes:

  • Specifications: size (metric/imperial), biome, roads, suitability, features, country
  • Tags: official, Camshaft Software, auxiliary, mod info
  • Buttons: "Start Freeroam" and "Configure" - primary action depends on defaultFreeroamAction display setting
-- Start button calls:
freeroam_freeroam.startFreeroamByName(levelName, spawnPointObjectName)

-- Configure button opens:
freeroam_freeroamConfigurator.setLevel(levelName, spawnPointObjectName)
guihooks.trigger("ChangeState", "menu.freeroamconfigurator")

Custom Search

The onFilterCustomLevelTiles hook extends text search to check level biome, suitability, features, roads, and country fields.


How It Works

  1. onGameplaySelectorGetTiles iterates all levels and their spawnpoints
  2. Each spawnpoint becomes a tile with the default spawnpoint flagged
  3. Tiles are typically clustered by level name in the gameplay selector
  4. Detail panel shows level info with Start/Configure buttons
  5. Custom search hook enables filtering by level metadata beyond just name

Additional Exports

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

  • M.onFilterCustomLevelTiles
  • M.onFreeroamSelectorOpenedWithItemDetails
  • M.onGameplaySelectorGetDetails
  • M.onGameplaySelectorGetTiles
  • M.openLevelConfigurationPopup
  • M.setAlwaysShowDialogue

Campaign Tiles Generator

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

Mission Tiles Generator

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

On this page

OverviewExports (M)InternalsTile StructureDetail PanelCustom SearchHow It WorksAdditional Exports