Configuration
The whole config.lua, covering the four coord points, surcharge, auto-void radius and grace, and the poll interval.
The addon has a single config file, config/config.lua, and it is short. Everything else it needs (job name, prices, recipes, banking, notifications) comes from the base script's config.
Coordinates
Config.DriveThru holds four points. Each takes coords and, for the target zone, size.
Config.DriveThru = {
speaker = { coords = vec3(-1205.75, -900.96, 13.21), size = vec3(2.0, 2.0, 2.5) },
window = { coords = vec3(-1202.57, -904.15, 13.39), size = vec3(2.0, 2.0, 2.5) },
cookServe = { coords = vec3(-1198.87, -902.09, 13.99), size = vec3(1.0, 1.0, 2.0) },
autoVoid = {
center = vec3(-1203.80, -903.71, 13.33),
radius = 200.0,
graceMs = 30 * 1000,
},
}| Point | Trigger | Gated on |
|---|---|---|
speaker | Text prompt within 3.5m | In a driver's seat, and no open drive-thru order |
window | Text prompt within 6.0m | In a driver's seat, and holding an open drive-thru order |
cookServe | ox_target box | On the BurgerShot job and clocked in |
autoVoid | Server-side distance poll | Any tracked drive-thru order |
The speaker and window are proximity prompts, not target zones, because ox_target cannot be used from inside a vehicle. Their
sizevalues are carried for consistency, the radii above are what actually decide when the prompt shows.
Pricing
| Option | Default | Description |
|---|---|---|
Config.DriveThruSurcharge | 10 | Percentage markup applied to the order subtotal. 0 matches walk-in pricing. |
The markup is passed to the base script as surchargePct when the order is created, so the base handles the arithmetic, the receipt, and the society deposit. Tips are unaffected, they are still outside the subtotal and still go entirely to the assigned cook.
Auto-void
An in-flight drive-thru order is cancelled on either of two triggers.
Disconnect. The customer drops, the order voids immediately.
Left the area. Every Config.AutoVoidPollMs the server measures each tracked customer's distance from autoVoid.center. Outside autoVoid.radius continuously for longer than autoVoid.graceMs and the order voids. Coming back inside the radius resets the timer, so a quick trip round the block is fine.
| Option | Default | Description |
|---|---|---|
Config.DriveThru.autoVoid.radius | 200.0 | Metres the customer may stray from the lane. |
Config.DriveThru.autoVoid.graceMs | 30000 | How long they must be outside before the void fires. |
Config.AutoVoidPollMs | 10000 | How often the server checks. |
Raise the radius on a server with a long approach road. Lowering the poll interval below a few seconds gains you nothing, the grace period is what decides the outcome.
Auto-void is what stops the lane filling with abandoned tickets from players who ordered and drove off. The base script's own
Config.AutoVoidAfterMsstill applies as a backstop on top of this.
Debug
| Option | Default | Description |
|---|---|---|
Config.Debug | false | Draws the cook serve target box. Turn it on while placing coords. |
What is not configured here
The job name, grades, menu, prices, recipes, station coords, tip caps, XP, banking, and Discord webhook all live in the base script's config. The addon reads the customer's job and duty state through the base script's client exports rather than keeping its own copy, so there is nothing to keep in sync by hand.
One exception worth knowing: the addon hardcodes burgershot as the job name it checks for the cook serve prompt. If you renamed Config.JobName in the base script, change the JOB_NAME local at the top of client/main.lua to match. That file is escrowed, so ask support for a build with your job name if you cannot edit it.
