Create new routes
Add your own bus routes with their stops, rider spots, level, seats and pay.
Every route lives in gg_busjob/config/shared/routeData.lua, inside the cfg.routeData table. A new route shows up on the Jobs page after you restart gg_busjob.
What a route looks like
{
label = "La Mesa",
area = "Los Santos",
level = 1,
seats_required = 6,
rewards = {
money = 275,
experience = 450,
},
stops = {
{
stop_coord = vector3(1147.33, -1426.07, 33.53),
npc_positions = {
vector4(1146.37, -1423.95, 34.69, 181.03),
vector4(1148.33, -1423.11, 34.67, 181.03),
vector4(1145.30, -1423.27, 34.68, 181.03),
vector4(1149.48, -1423.40, 34.64, 181.03),
}
},
-- more stops
{
stop_coord = vector3(1316.66, -1635.02, 52.13),
npc_positions = {}
},
},
},
| Field | What it does |
|---|---|
label | The route name on the Jobs page |
area | The area shown under the name, for example "Los Santos" or "Blaine County" |
level | The job level needed to start the route |
seats_required | How many riders the route picks up. The selected bus needs at least this many seats |
rewards.money | Cash paid at the end of the route, before the level bonus |
rewards.experience | XP given at the end of the route, before the level bonus |
stops | The stops in driving order |
stop_coord | Where the bus stops: a point on the road at the bus stop |
npc_positions | Where riders wait at this stop, as vector4(x, y, z, heading) on the pavement |
How the stops work
- The bus has to stop within 10 metres of
stop_coordand come to a full stop before riders get on and off. Putstop_coordin the lane next to the stop, with room for a bus, not on the pavement. - Riders appear when the bus is within 100 metres of the stop (
defaults.renderinsettings.lua). - The job pools the
npc_positionsof every stop except the last and picksseats_requiredof them at random. A stop can get several riders or none. - Each rider gets off at a random stop after the one where they boarded. The last stop only drops riders off, so its
npc_positionsare never used. Leave them empty. - If there are fewer positions in the pool than
seats_required, the route picks up fewer riders. Give the route at least as many positions asseats_required.
Add a route
- Plan the route in game. Pick the stops in driving order and end it at a stop where riders only get off.
- At each stop, park the bus where it should stop and, from the driver seat, copy your position as a
vector3. That is thestop_coord. - Stand on each spot where a rider should wait, facing the road, and copy your position and heading as a
vector4. Four spots a stop is what the shipped routes use. Use the coordinates your character stands at; the job places the ped on the ground. - Open
config/shared/routeData.luaand paste a new route block insidecfg.routeData, after the last route's closing},. - Fill in
label,area,level,seats_requiredandrewards, then your stops in order. - Save and restart
gg_busjob. The route shows on Jobs for players at its level. - Drive it once from start to finish to check every stop.
Note Keep
seats_requiredat or below the seats of the bus players will drive. With the shipped buses, 8 works on every bus and 9 to 14 needs the Bus or the Air Bus.
Change or remove a route
- Change the pay, level or seats of a shipped route in its block, then restart.
- To remove a route, delete its whole block, from its
{to its},. Players see the change after the restart.
Community route tool
New Age Studios makes a community route recorder for this job, Bus Route Creator. It is not made or supported by GG Studio. If you use it, check that its output matches the format above before you paste it in.
