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
Vehicle Selector – Details InteractionVehicle Selector – GeneralVehicle Selector – Tile ClusteringVehicle Selector – Tile GroupingVehicle Selector – TilesVehicle Selector – Tile SortingVehicle Selector – Vehicle OperationsVehicle Selector – Vehicle Specifications

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 ExtensionsuivehicleSelector

Vehicle Selector – Tile Grouping

Assigns vehicle configs to display groups (Type, Brand, Country, Value, Years, etc.).

Assigns vehicle configs to display groups (Type, Brand, Country, Value, Years, etc.).


Overview

ui_vehicleSelector_tileGrouping determines which visual group(s) a vehicle config belongs to in the selector grid. Supports categorical groups (Type, Brand, Country, etc.) and range-based groups (Years, Value). Also inserts configs into special Favourites/Recent groups.

Extension path: lua/ge/extensions/ui/vehicleSelector/tileGrouping.lua


Exports (M)

FunctionSignatureDescription
getGroupsForConfig(config, groupMode, displayData) → group[]Returns groups a config belongs to.
isRangeGroupMode(groupMode) → boolWhether this group mode uses range buckets.
getGroupModeFunction(groupMode) → fnReturns the grouping function.
getRangeGroupingFunction(groupMode) → fnReturns the range bucketing function.
getConfigOrModelPropValue(config, prop) → valueGets property from config, falling back to model.

Data Fields

FieldDescription
M.groupModeFunctionsTable mapping group mode names to their grouping functions.

Internals

Type Ordering

Car           → "Cars and Trucks"    (10)
Truck         → "Cars and Trucks"    (20)
Heavy Machinery → "Heavy Machinery"  (30)
Trailer       → "Trailers"           (80)
Prop          → "Props"              (90)

Group Mode Functions

ModeGroups By
TypeVehicle type → merged category name
BrandBrand name
CountryCountry of origin
Config TypeFactory / Race / Drift / etc.
Derby ClassDerby class
Body StyleBody style
SourceContent source

Range Groups

ModeBuckets
YearsDecade-based: "1990s", "2000s", etc.
ValuePrice tiers: "$0-$10k", "$10k-$20k", ..., "$1M+"

Special Groups

If favourites/recent display is enabled, configs are also added to Favourites (order -1) and Recent (order -2) groups.


How It Works

  1. getGroupsForConfig reads the relevant property from the config (or model fallback).
  2. For categorical modes, calls the group function to get a {groupName, groupOrder}.
  3. For range modes, calls the range function to get one or more bucket groups.
  4. Appends Favourites/Recent groups if the config qualifies and display settings allow it.

Lua Examples

local tileGrouping = require('/lua/ge/extensions/ui/vehicleSelector/tileGrouping')

-- Get groups for a config
local groups = tileGrouping.getGroupsForConfig(config, "Type", displayData)
-- → {{groupName = "Cars and Trucks", groupOrder = 10}}

-- Check if a mode is range-based
local isRange = tileGrouping.isRangeGroupMode("Value")  -- true

Additional Exports

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

  • M.getConfigOrModelPropValue
  • M.getGroupModeFunction
  • M.getGroupsForConfig
  • M.getRangeGroupingFunction
  • M.isRange
  • M.isRangeGroupMode

Vehicle Selector – Tile Clustering

Groups vehicle configurations into clustered tiles by brand/model or model key.

Vehicle Selector – Tiles

Generates the grouped, clustered, and sorted tile grid for the vehicle selector.

On this page

OverviewExports (M)Data FieldsInternalsType OrderingGroup Mode FunctionsRange GroupsSpecial GroupsHow It WorksLua ExamplesAdditional Exports