Vehicle Filter Utility
Vehicle filter editor for missions/quests - provides a UI for base filters (whitelist/blacklist), probability-weighted sub-filters, manual additions/removals, and vehicle selection using configListGen
Vehicle filter editor for missions/quests - provides a UI for base filters (whitelist/blacklist), probability-weighted sub-filters, manual additions/removals, and vehicle selection using configListGenerator.
Class: C (returned by factory function)
| Method | Signature | Description |
|---|---|---|
C:init(element) | element: table | Stores the element reference; ensures configListGenerator is loaded |
C:initialize() | - | Scans all vehicle models/configs to build available filter properties and UI data |
C:setContainer(ctd, container) | - | Restores filter settings from mission type data; handles old→new format migration |
C:draw(ctd, container, labelFn) | - | Renders full filter UI: eligibility toggles, base filter, probability settings, config list, manual add |
Module-Level Functions (exposed for constructor use)
| Function | Description |
|---|---|
generateVehicleOptionsFromProbabilitySettings(...) | Generates vehicle options array from base filter + probability settings |
convertBaseFilterToConfigListFormat(baseFilter, filterByProp) | Converts UI filter format to configListGenerator whitelist/blacklist |
doesVehiclePassFilterObject(vehicleInfo, filterObj) | Tests a vehicle against a filter object (OR within whitelist, exclude on blacklist match) |
cleanBaseFilter(baseFilter) | Removes empty/false filter entries for clean serialisation |
cleanProbabilitySettings(probabilitySettings) | Cleans probability settings for serialisation |
Filter Data Structure
-- Saved in missionTypeData[fieldName]:
{
baseFilter = {
whiteList = { {propName="Drivetrain", type="set", values={AWD=true}} },
blackList = { {propName="Type", type="set", values={Trailer=true}} }
},
probabilitySettings = {
{ weight = 2.0, whiteList = {...}, blackList = {...} },
{ weight = 1.0, whiteList = {...}, blackList = {...} }
},
manualAdditions = { {model="vivace", config="Base", name="Cherrier Vivace Base"} },
manualRemovals = { ["etk800/Base"] = true },
maxVehicles = 10, -- 0 = all matching
popAttribute = "Population",
allowAuxiliaryVehicles = false,
allowLoadedTrailers = false
}Available Filter Properties
Range filters: Value, Weight, Top Speed, 0-100 km/h, 0-60 mph, Power, Torque, Weight/Power, Off-Road Score, Years
Set filters: Drivetrain, Config Type, Body Style, Transmission, Brand, Country, Region, Source, Type, Derby Class, Performance Class, Propulsion, Fuel Type, Induction Type, Commercial Class
Usage Example
-- Vehicle filter is typically used via editorElementHelper:
local helper = require('/lua/ge/extensions/editor/util/editorElementHelper')({}, 'mission')
helper:addVehicleFilter("Traffic Vehicles", "vehicleFilters")
helper:setContainer(missionContainer)
helper:draw()
-- Direct usage of the utility:
local vehicleFilterUtil = require('/lua/ge/extensions/editor/util/vehicleFilterUtil')
local element = {
fieldName = "vehicleFilters",
_id = 1,
baseFilter = {},
probabilitySettings = {},
manualAdditions = {},
manualRemovals = {},
maxVehicles = 5,
popAttribute = "Population",
allowAuxiliaryVehicles = false,
allowLoadedTrailers = false,
}
local filter = vehicleFilterUtil(element)
filter:initialize()
-- The filter scans all installed vehicle models and configs
-- to determine available filter properties and their ranges/options.
-- Results are cached for performance; caches invalidate on filter changes.
-- Filter evaluation uses OR logic within arrays:
-- A vehicle must match ANY filter in the whiteList
-- A vehicle must NOT match ANY filter in the blackList
-- Base filter is inherited by all probability settingsSee Also
- Editor Element Helper - Related reference
- Plot Helper Utility - Related reference
- Search Utility - Related reference
- World Editor Guide - Guide
Transform Utility
Reusable position/rotation/scale editor widget with axis gizmo integration, helper buttons (down-to-terrain, focus, move-to-camera, align-with-terrain), and shift+click quick placement.
Vehicle Select Utility
Vehicle model/config/paint selector widget for ImGui - provides dropdowns for vehicle type, model, config, paint layers, and optional custom config paths.