Routes & Fleet
Routes (config/routes.lua)
Section titled “Routes (config/routes.lua)”Routes are lists of stops at real Los Santos Transit shelter props. Each stop is a vec4(x, y, z, heading) where the heading matches the shelter’s rotation:
local metroStops = { vec4(303.927, -765.241, 28.315, 71.695), vec4(115.483, -781.340, 30.419, -20.000), -- ...}Key facts:
- Pay is automatic — stop pay, tip ceiling, and completion bonus derive from total path length via
Config.PayScale. Add a route and its pay is already balanced. - Difficulty is automatic — route length classifies the route as
LOCAL,REGIONAL, orEXPRESS. - Each route starts at a distinct shelter, so shifts leave the depot toward different map regions.
- Stops should be placed at
prop_busstop_*shelter props so passenger queueing and curb-door alignment look right. Heading matters — it orients the queue along the curb.
Adding a route
Section titled “Adding a route”- Collect shelter coordinates (
vec4with shelter heading) along your desired path - Add a stops table
- Add a
Config.BuildRouteentry toConfig.Routes - Restart
lx-busjob— the terminal map bakes the new route trail on demand
local myRouteStops = { vec4(303.927, -765.241, 28.315, 71.695), vec4(115.483, -781.340, 30.419, -20.000),}
Config.Routes = { -- existing routes... Config.BuildRoute( 'my_route', -- unique ID / route-art filename 'My Route', -- terminal label 'Short customer description.', 'Longer operations brief shown in the terminal.', myRouteStops ),}Config.BuildRoute calculates map points, total length, stop pay, tip ceiling, completion bonus, stop count, and difficulty. The route ID should match ui/dist/route-art/<id>.jpg if you add custom route artwork.
Fleet (config/vehicles.lua)
Section titled “Fleet (config/vehicles.lua)”The depot fleet is pack-owned — you never edit your framework’s vehicles.lua. Default fleet:
| ID | Model | Label |
|---|---|---|
bus |
bus |
Transit Bus |
coach |
coach |
Coach |
rentalbus |
rentalbus |
Tour Shuttle |
airbus |
airbus |
Airport Coach |
Adding a vehicle
Section titled “Adding a vehicle”{ id = 'mybus', model = 'mybus', -- any spawnable GTA/addon model label = 'My Bus', brand = 'Brute', description = 'Shown in the Depot tab.', minGrade = 0, doors = { board = { 1 }, -- door indices opened for boarding exit = { 3, 1 }, -- alighting doors (first preferred) firstSeat = 0, -- lowest passenger seat index peds may take },},Door indices: 0 front-left (driver), 1 front-right, 2 rear-left, 3 rear-right. Passenger doors never include 0.
board— the curb entry door(s) passengers walk toexit— doors used for alighting, in preference orderfirstSeat— skip cab or co-driver seats so nobody sits next to the driver (e.g.firstSeat = 1on the Tour Shuttle keeps the co-driver bench clear)
Vehicles without a doors table fall back to Config.Doors in config/shared.lua.