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.
Pay scale
Section titled “Pay scale”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/ lowerstopPayDivisor→ higher wages overall tipMaxis the per-drop-off tip ceiling; the driver’s score decides how much of it they actually get
Daily contract board
Section titled “Daily contract board”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) + completionBonusQuick 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.
Optional objectives
Section titled “Optional objectives”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.