RLS Studios
ProjectsPatreonCommunityDocsAbout
Join Patreon
BeamNG Modding Docs

Guides

Reference

Server CommandsGE UtilitiesGame Engine MainNavigation GraphScreenshot CaptureServerServer ConnectionSpawnpoint ManagerSimulation TimeVehicle SpawningSuspension Frequency Tester
Auto AnnotationBoosterCalibrate ESCCompile ImpostersCompile MeshesConfig List GeneratorDecal Roads EditorDependency TreeDoc CreatorVehicle ExporterFollow The White RabbitForest GeneratorGround Model DebugInput System UtilsInstanced Line Render DemoJBeam StatsLog StreamsMap TilesNode Beam ExportNode StreamPhotomodePrecompile ShadersPrecompile VehiclesProcedural Track GeneratorRectangle GeneratorRender Components APIResave MaterialsRich PresenceSave Dynamic DataScreenshot CreatorShowroomSort LinesStep HandlerTerrain GeneratorTest Extension ProxiesTest JSON Files SyntaxVehicle Rope DebugBatch WorkerWebSocket Test

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)

See Also

  • Auto Annotation - Related reference
  • Booster - Related reference
  • Calibrate ESC - Related reference
  • Game Engine Overview - Guide

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 ExportsSee Also