Customization
Every decision lives in one of two places, and which one it is depends on a single question: would it hurt if a player read it?
| Where | What is in it | Who may see it |
|---|---|---|
shared/config.lua and shared/config/*.lua | Everything about how the phone behaves | Sent to clients |
shared/server_config.lua | Keys, tokens, webhooks, certificates | Server only, never sent |
That split is not tidiness. A shared config is downloaded by every player who connects, so an upload token or a Discord webhook in one is a token and a webhook everybody has.
The files, and what each one decides
Section titled “The files, and what each one decides”shared/config.lua the item, the key, the prop, the animations, the foldingshared/config/ apps.lua which apps exist, which arrive installed, which cost money battery.lua whether the phone goes flat, and how fast boss.lua who counts as a boss, and what each rung may do calls.lua voice, video, speakerphone, the numbers that ring a whole job camera.lua photos and video, where they are uploaded, the keys cases.lua (in config.lua) the fourteen colours, and whether they are items cityid.lua which licences this city issues crypto.lua the coins, how fast they move, what the house takes device.lua phones as items: backups, and what belongs to a device garage.lua where vehicles come from mail.lua the domain, and who may write to everybody messages.lua attachments music.lua streaming, speakers, imports nearby.lua how far AirDrop reaches properties.lua housing pulse.lua jobs, events and news, and who may post radio.lua channels, and which of them a job may not have restrict.lua when the phone cannot come out services.lua the businesses in the directory social.lua the four social apps and their limits wallet.lua transfers, invoices, bills weather.lua where the weather comes from web.lua the phone on a real browserNothing has to be filled in for the phone to work. Every file ships with defaults that run.
The handful worth deciding before anybody logs in
Section titled “The handful worth deciding before anybody logs in”Is a phone a thing you can lose?
Section titled “Is a phone a thing you can lose?”Config.Device in shared/config/device.lua. Off, a phone belongs to a character and follows them forever. On, the phone is the item: a fresh one is a new phone with a new number, and one that changes hands takes everything on it with it.
It changes what an identifier means everywhere else, so it is a decision to make once rather than a switch to flip on a running city.
Which apps exist
Section titled “Which apps exist”Config.AppList in shared/config/apps.lua. Three answers per app:
phone = { How = 'installed' }, -- always thereinstapic = { How = 'store', Price = 0 }, -- downloaded from the App Storedarknet = { How = 'off' }, -- gone: not on the phone, not in the storeJobs and NotJobs narrow an app to a job; Boss = true gives it only to whoever runs a business.
When the phone cannot come out
Section titled “When the phone cannot come out”shared/config/restrict.lua. Dead, cuffed, swimming, on fire, in freefall, up a ladder — each with its own switch, and each with Close saying whether an open phone is put away or only refused.
Two numbers in there are worth knowing about because they are what keep the rule sane:
Falling = { Enabled = true, Close = true, Height = 8.0 }, -- metres of air before a fall countsClimbing = { Enabled = true, Close = true, After = 1.0 }, -- seconds before a climb countsWithout them the phone puts itself away every time somebody hops off a kerb, because the game calls that falling and calls stepping down off a wall climbing.
Does it go flat?
Section titled “Does it go flat?”shared/config/battery.lua, off by default. On, the status bar shows a level that means something, a charger item exists, and a flat phone will not open.
shared/config/wallet.lua for transfers and invoices, shared/config/crypto.lua for the market. Both take the account name your framework uses — bank, money, or whatever you called it.
The server-only file
Section titled “The server-only file”shared/server_config.lua — copy shared/server_config.example.lua over it and fill in what you use.
- Uploads — Fivemanage or a Discord webhook, for photos and voice notes.
- Webhooks — where the phone reports what it wants somebody to know about.
- HTTPS — the certificate for the browser half. See the certificate.
It is in server_scripts on purpose. A client never receives it.