Configuration
Everything lives in config.lua, which stays editable in both the Open and Encrypted variant. There are no framework, money or notification options - those are handled by vns-core.
General
| Option | Default | What it does |
|---|---|---|
Config.UseOnly3DText |
false |
true hides the orange start marker and leaves only the floating text at the start point. |
Config.Cooldown |
5 |
Minutes a player has to wait between starting two delivery runs. Checked on the client and again on the server. |
Config.MaxDelivery |
3 |
Deliveries per run. After this many hand-overs the run ends and the player starts a new one at the marker. |
Pay and tips
| Option | Default | What it does |
|---|---|---|
Config.MoneyType |
'cash' |
Account pay and tips go to: 'cash' or 'bank'. |
Config.DeliveryMoney |
{min = 430, max = 510} |
Random amount paid for every delivery. |
Config.DeliveryMoneyTip |
{min = 120, max = 200} |
Random tip added when the tip roll succeeds. |
Config.DeliveryTip |
30 |
Percentage chance of a tip on each delivery. 0 = never, 100 = always. |
Pay is handed out per delivery, the moment the order is handed over. There is no payout at the end of the run.
Jobs
Config.Jobs maps job name → start point. The key must match the job's name in your framework exactly:
Config.Jobs = {
cofisland = {
Marker = vector3( -634.83, 250.95, 81.47), -- where the run starts
},
burgershot = {
Marker = vector3(-1183.45, -878.38, 13.50),
},
}
Copy an entry, set the key to your job name and Marker to where employees should start the run. Players only see the marker of their own current job. The server re-checks the job when paying, so switching jobs mid-run stops the pay.
There is no grade or on-duty requirement - any player holding the job can deliver.
Allowed vehicles
Config.DeliveryVehs = {`faggio`, `faggio2`, `faggio3`, `blista`}
Orders are taken from about 2.5 m behind the vehicle the player last drove, and only these models count. Both backtick hashes (`faggio`) and plain model names ('faggio') are accepted. The list is shared by all jobs, and the vehicle doesn't need to be owned.
Drop points
Config.DeliveryPos is a numbered list of drop coordinates (86 by default):
Config.DeliveryPos = {
[1] = vector3( 346.18, -866.70, 29.22),
[2] = vector3( 419.72, -950.06, 29.24),
-- ...
}
The server picks a random entry for every delivery and never the same point twice in a row. The pool is shared by all jobs. Keep the indices contiguous ([1], [2], ...).
Place drops where players can walk up to them: the hand-over prompt appears within 1.5 m of the coordinate. With OneSync the server also refuses payment if the player is more than 15 m from the drop.
Texts
All player-facing texts are in Config.Lang:
| Key | Default | Shown |
|---|---|---|
StartText / StartPrompt |
"Delivery" / "~g~E~w~ - Delivery" |
At the start marker (near / close enough to press E). |
PickUpText / PickUpPrompt |
"Pick up the order" / "~g~E~w~ - Pick up the order" |
Behind the vehicle. |
DeliverText / DeliverPrompt |
"Delivery order" / "~g~E~w~ - Delivery order" |
At the drop point. |
BlipLabel |
"Delivery" |
Drop point blip name. |
TakingOrder / DeliveringOrder |
"Taking the order" / "Delivering the order" |
Progress bar labels. |
DeliveryStarted |
"Delivery started, follow your GPS" |
Run started. |
CooldownActive |
"You have to wait %s minutes" |
Cooldown still running (%s = Config.Cooldown). |
DeliveryCanceled |
"Delivery Canceled." |
Run cancelled at the start marker. |
NextDelivery |
"Follow your GPS for the next delivery" |
Next drop assigned. |
NoMoreOrders |
"There are no other orders." |
Run finished. |
Canceled |
"Canceled" |
Progress bar cancelled. |
OrderDelivered |
"Order delivered." |
Delivery paid. |
OrderPay / TipPay |
"+%s$ from order." / "+%s$ from tips." |
Pay and tip amounts. |
Open files
| File | Functions |
|---|---|
client/client_open.lua |
Bridge.Notify, Bridge.GetPlayerJob, Bridge.Progressbar, Bridge.OnOrderPickedUp (default: box emote via dpemotes/rpemotes), Bridge.OnOrderHandOver (default: cancels the emote) |
server/server_open.lua |
Bridge.GetJobName, Bridge.AddMoney, Bridge.Notify, Bridge.OnDeliveryPaid(source, pay, tip) - empty hook called after every paid delivery, e.g. for logs or society money |