Skip to content

Configuration

Buyer settings live in the open config/ folder, while integration adapters live in the open custom/ folder. Restart the resource (ensure lx-busjob) after changes.

File Contents
config/shared.lua Integrations, depot location, vehicle defaults, doors, passengers, driving score
custom/fuel/*.lua Open fuel adapters, including a custom template
custom/keys/*.lua Open vehicle-key adapters, including a custom template
custom/target/*.lua Open target adapters, including a custom template
config/vehicles.lua Fleet catalog — add or remove depot vehicles
config/contracts.lua Economy: pay scale, contract bonuses, daily board, objectives
config/routes.lua Routes and stop lists (pay derives automatically from route length)
locales/*.json All player-facing text

Core defaults such as integration detection order, map projection, route construction, path-bake thresholds, passenger stream radius, and career compatibility live in encrypted shared/internals.lua. They are intentionally not buyer settings.

Config.Debug = false

Enables verbose console logging. Leave false in production.

Config.Integrations = {
fuel = 'auto',
keys = 'auto',
target = 'auto',
}

Each slot accepts auto, custom, none, or an exact resource name. See Integrations for supported resources and buyer-editable adapters.

Config.Depot = {
coords = vec4(456.63, -633.42, 28.5, 216.87),
pedModel = `s_m_m_gentransport`,
scenario = 'WORLD_HUMAN_CLIPBOARD',
blip = { sprite = 513, colour = 38, scale = 0.75, label = 'Bus Depot', shortRange = true },
}
Config.BusSpawn = vec4(463.5, -628.51, 27.47, 172.24)
Config.ReturnZone = {
coords = vec3(463.5, -628.51, 27.47),
radius = 8.0,
passengerDisperse = vec3(454.8, -618.4, 28.5),
}

Move the depot anywhere: update Depot.coords (NPC), BusSpawn (vehicle spawn point + heading), and ReturnZone (shift end). passengerDisperse is where final passengers walk after alighting at the depot.

Config.Vehicle = {
model = `bus`,
platePrefix = 'LXBUS',
spawnFuel = 100.0,
}
Option Default Meaning
Config.StopRadius 12.0 Radius (m) around a shelter that counts as “at the stop”
Config.DoorOpenMaxSpeed 2.2 Max speed (m/s) at which doors may be opened
Config.Doors board={1}, exit={3,1} Fallback door routing for vehicles without a doors table
Config.Passengers = {
min = 2, -- min boarders per stop
max = 4, -- max boarders per stop
exitChance = 40, -- % chance a rider wants off at each stop
maxExitPerStop = 2,
models = { `a_f_y_hipster_01`, --[[ ... ]] },
}

Add any ped models you like to models. Fine-grained timing (door hold, queue spacing, exit timing) lives in shared/passenger_tuning.lua internals, but any key can be overridden by adding it to Config.Passengers — for example Config.Passengers.boardDoorHoldMs = 600.

Config.Score = {
baseScore = 100,
speedLimit = 22.0, -- m/s (~79 km/h) before speeding penalties
crashPenalty = 25,
speedingPenalty = 8,
doorWhileMovingPenalty = 30,
improperStopPenalty = 15,
}

The final score scales tips at every drop-off. Raise penalties for stricter servers, lower them for casual ones.

shared/internals.lua, shared/passenger_tuning.lua, and the path-bake implementation are not buyer configuration surfaces. Existing Config.Passengers keys can still override named passenger timing values when LX support specifically recommends one, but these are advanced compatibility overrides rather than stable public settings.