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
Auto AnnotationBoosterCalibrate ESCCompile ImpostersCompile MeshesConfig List GeneratorDecal Roads EditorDependency TreeDoc CreatorExport (glTF)Follow The White RabbitForest GeneratorGround Model DebugInput System UtilsInstanced Line Render DemoJBeam StatsLog StreamsMap TilesNode Beam ExportNode StreamPhotomodePrecompile ShadersPrecompile VehiclesProcedural Track (Gymkhana Generator)Rectangle GeneratorRender Components APIResave MaterialsRich PresenceSave Dynamic DataScreenshot Creator (Vehicle Thumbnails)ShowroomSort LinesStep HandlerTerrain GeneratorTest Extension ProxiesTest JSON Files Syntaxutil/vehicleRopeDebug - Rope Physics Debug UIutil/worker - Batch Job Workerutil/wsTest - WebSocket Test Server

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 Extensionsutil

Config List Generator

Vehicle config list filtering and random selection system. Used for generating lists of vehicles that match specific criteria (e.g., for dealerships, traffic, career mode).

Vehicle config list filtering and random selection system. Used for generating lists of vehicles that match specific criteria (e.g., for dealerships, traffic, career mode).


Overview

util_configListGenerator provides filtering and weighted random selection of vehicle configurations. Supports whitelist/blacklist filters on vehicle attributes (type, year, brand, etc.) with probability-weighted selection across filter groups.

Extension path: lua/ge/extensions/util/configListGenerator.lua


Exports (M)

FunctionSignatureDescription
getEligibleVehicles(allowAuxiliary, allowLoadedTrailers)Returns filtered list of eligible vehicle configs.
getRandomVehicleInfos(filterSet, numberOfVehicles, eligibleVehicles, popAttribute)Returns N randomly selected vehicles matching filters.
doesVehiclePassFilter(vehicleInfo, filter)Tests if a vehicle passes a whitelist/blacklist filter.

Internals

Eligible Vehicle Filtering

getEligibleVehicles() excludes:

  • Props (Type.Prop, Type.PropParked, Type.PropTraffic)
  • Utility vehicles (Type.Utility)
  • Vehicles without a Value
  • Auxiliary vehicles (unless allowAuxiliaryVehicles is true)
  • Loaded trailers (unless allowLoadedTrailers is true)

Filter Structure

Filters use whitelist/blacklist with attribute matching:

local filter = {
  whiteList = {
    Type = {"Car", "Truck"},
    Years = {min = 1990, max = 2020},
    Brand = {"Gavril"}
  },
  blackList = {
    Type = {"Electric"}
  },
  probability = 5  -- Weight for random selection
}

Attribute Matching

  • Dict attributes (Brand, Type, etc.): Checked against vehicleInfo.aggregates[attr] lookup dict.
  • Years: Range-checked against aggregates.Years.min/max.
  • Numeric attributes: Range-checked with min/max.
  • Other attributes: Exact value match.

Random Selection

  1. Filters are chosen by probability weight.
  2. A random model is selected from filtered configs.
  3. A random config for that model is selected by popAttribute (default: "Population").
  4. Selection without replacement-chosen configs are removed from the pool.

How It Works

  1. Call getEligibleVehicles() to get the base vehicle pool.
  2. Call getRandomVehicleInfos(filterSet, count) with a filter set containing filter and optional subFilters.
  3. SubFilters are merged with the base filter to create aggregated filter variants.
  4. The system picks filters by probability, then picks vehicles matching that filter.

Lua Examples

-- Get all eligible vehicles
local vehicles = extensions.util_configListGenerator.getEligibleVehicles()

-- Get 10 random vehicles matching a filter set
local filterSet = {
  filter = {
    whiteList = { Type = {"Car"} }
  },
  subFilters = {
    { whiteList = { Brand = {"Gavril"} }, probability = 3 },
    { whiteList = { Brand = {"ETK"} }, probability = 2 },
  }
}
local picks = extensions.util_configListGenerator.getRandomVehicleInfos(filterSet, 10)

-- Check if a single vehicle passes a filter
local passes = extensions.util_configListGenerator.doesVehiclePassFilter(vehicleInfo, {
  whiteList = { Type = {"Truck"} }
})

Additional Exports

  • M.doesVehiclePassFilter - (undocumented)
  • M.getEligibleVehicles - (undocumented)
  • M.getRandomVehicleInfos - (undocumented)

Compile Meshes

Batch COLLADA (.dae) to compiled COLLADA (.cdae) converter for faster mesh loading. Used in build pipelines.

Decal Roads Editor

Debug visualization for AIPath objects in the world editor. Renders lane markings, widths, and directions using dynamic decals and debug drawing.

On this page

OverviewExports (M)InternalsEligible Vehicle FilteringFilter StructureAttribute MatchingRandom SelectionHow It WorksLua ExamplesAdditional Exports