Skip to content

Economy & Contracts

All economy tuning lives in config/contracts.lua. Values are read live by the server and pushed to the Schedule UI — restart lx-busjob after changes.

Route pay derives automatically from route length, so long hauls pay more without per-route tuning:

Config.PayScale = {
stopPayBase = 18, -- stopPay = floor(base + length / divisor)
stopPayDivisor = 450,
tipMaxBase = 10, -- tipMax = floor(base + length / divisor)
tipMaxDivisor = 700,
completionBase = 80, -- completionBonus = floor(base + length / divisor)
completionDivisor = 80,
}
  • Raise stopPayBase / lower stopPayDivisor → higher wages overall
  • tipMax is the per-drop-off tip ceiling; the driver’s score decides how much of it they actually get
Config.Contracts = {
enabled = true,
allowFreeplay = true, -- false = assignments only
offerCount = 6, -- assignments on the daily board
resetHour = 5, -- local server hour when the board rolls over
bonusMultiplier = 0.35, -- per-assignment bonus as fraction of estimated wage
bonusFloor = 75, -- minimum bonus dollars per assignment
boardClearBonus = 250, -- flat cash for clearing the whole board (0 = off)
freeplayBoost = 0.05, -- freeplay wage boost after board clear (+5%)
freeplayBoostMax = 0.10,
}

Contract bonus formula:

bonus = max(bonusFloor, floor(estimatedShiftWage × bonusMultiplier))
estimatedShiftWage ≈ (stopPay × stops) + completionBonus

Quick recipes:

Goal Change
Quieter economy bonusMultiplier = 0.20
Disable per-route bonuses bonusMultiplier = 0, bonusFloor = 0
No board-clear reward boardClearBonus = 0
No post-clear boost freeplayBoost = 0

freeplayBoostMax is a safety clamp — the server always applies min(boost, max), so a typo cannot inflate your economy.

Daily assignments can roll bonus objectives (freeplay ignores these):

Config.Objectives = {
enabled = true,
pickCount = 1, -- objectives per assignment
catalog = {
{ id = 'no_crash', label = 'Clean run', bonus = 80 },
{ id = 'no_speeding', label = 'Legal pace', bonus = 65 },
{ id = 'door_discipline', label = 'Door discipline', bonus = 55 },
},
}

Bonuses stack when all rolled objectives are met. Set enabled = false to turn the system off, or raise pickCount to roll more per assignment.