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

Lua
{
    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 = {}
        },
    },
},
FieldWhat it does
labelThe route name on the Jobs page
areaThe area shown under the name, for example "Los Santos" or "Blaine County"
levelThe job level needed to start the route
seats_requiredHow many riders the route picks up. The selected bus needs at least this many seats
rewards.moneyCash paid at the end of the route, before the level bonus
rewards.experienceXP given at the end of the route, before the level bonus
stopsThe stops in driving order
stop_coordWhere the bus stops: a point on the road at the bus stop
npc_positionsWhere 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_coord and come to a full stop before riders get on and off. Put stop_coord in 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.render in settings.lua).
  • The job pools the npc_positions of every stop except the last and picks seats_required of 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_positions are 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 as seats_required.

Add a route

  1. Plan the route in game. Pick the stops in driving order and end it at a stop where riders only get off.
  2. At each stop, park the bus where it should stop and, from the driver seat, copy your position as a vector3. That is the stop_coord.
  3. 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.
  4. Open config/shared/routeData.lua and paste a new route block inside cfg.routeData, after the last route's closing },.
  5. Fill in label, area, level, seats_required and rewards, then your stops in order.
  6. Save and restart gg_busjob. The route shows on Jobs for players at its level.
  7. Drive it once from start to finish to check every stop.

Note Keep seats_required at 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.

Support

Questions before you buy?

Ask the team in our Discord before you pay a thing. Setup help, update notes, giveaways and discount codes, all in one place.

831 online now2,241 members