Configuration
Prescriptions is set up in the /prescriptionssetup panel.
Run /prescriptionssetup as an admin. A short guide plays the first time. Save writes everything to the database and applies it live for every player. Reset goes back to the defaults.
The panel
| Group | Pages |
|---|---|
| Shops | Shops (locations, job, stations), Supply stops, Restock prices, Shoplifting |
| Medicine | The meds, Scripts (paper), Overdose and bottling, Habits (addiction), Envious shots, Fake scripts |
| Money | The till, Insurance desks, Plans |
| Staff | Who can do what |
| Server | Extras (prompt style, test commands), Debug (what loaded) |
Stations are placed with an on-screen tool. Stand where you want the point and confirm. That covers the clock-in point, cash register, bottling bench, boss menu, panic button, and supply stops. Supply stop coordinates stay on the server and are never sent to players.
Two kinds of pharmacy
Player-run (has a job set). Staff clock in, bottle at the bench, ring customers up at the register, and order stock from the tablet. Sales go into the job's society account.
NPC (no job set). A pharmacist ped fills a script when the patient brings the paper. The ped steps aside while real staff are on duty, which you can switch off. Sales are split equally between the jobs set as NPC payout jobs.
You need to be clocked in to use the register, run supplies, or press the panic button. Bottling only needs the job and a spot at the bench.
What the settings mean
Grouped the way you will think about them.
Paper and doctors
| Setting | Plain English |
|---|---|
| Item names | The item names the script listens for: pad, paper, record, blank paper |
| Prescription pad | Whether using the pad opens the form, and the optional /prescription command |
| Prescription paper | Expiry in days (180), refills, days of supply per fill, partial fills, and the clinic header lines |
| Doctor history | How many scripts each doctor keeps in their history. Oldest are dropped past this |
| Medical jobs | Which jobs can write scripts, and from what grade |
Money
| Setting | Plain English |
|---|---|
| Pharmacy economy | Which account the patient is charged from, whether the sale goes into the society, an optional employee tip percent, and a hard cap on any single bill |
| Supply orders | The price per item on a supply run (default 50), and the max units per order (30). You can also set prices for specific items |
| Insurance | On or off, the provider, the card item, renewal days, and the plans |
Insurance providers. builtin keeps everything in this resource. m-insurance hands it to the m-Insurance resource through a bridge file. custom is a file you fill in yourself. Insurance only lowers a bill when a medication is picked at the register. A general charge is full price.
The default plans:
| Plan | Price | Patient pays |
|---|---|---|
| Basic | 1,000 | 25% |
| Premium | 2,000 | 15% |
| Platinum | 3,000 | 10% |
Crime
| Setting | Plain English |
|---|---|
| Shoplifting | Master switch, how long a shelf stays empty (2 hours), the per-player cooldown, odds of getting something, odds of police being called, and the loot pool. Each pharmacy can override any of it |
| Forgery | The underground desk. Allow altering real scripts, allow blank fakes, how convincing a fake can get (capped at 70%), the chance a blank forge fails, and whether NPC pharmacies accept unverified fakes |
Medicine and habits
| Setting | Plain English |
|---|---|
| Effects | How the overdose plays out, and the strength and dose ranges when bottling |
| Addiction | Everything about getting hooked: see below |
| Envious shots | The cough syrup shot: item names, sips, how long the high lasts, and what happens when you overdo it |
| Bottling | How many pills in the minigame, the animations, and the seal step |
| Patient history | The /mymedication chart and the sharing distance and timeouts |
Addiction in a nutshell
Each tracked use adds to a 0 to 100 score. Cross the "addicted" line (25 by default) and the player starts to feel it: hunger and thirst drain faster, they sweat, get the shakes, and have cravings. Stay clean and the score slowly drops. Go long enough without a fix while hooked and withdrawal sets in.
Use too much too fast and they overdose. By default that is four tracked uses inside three minutes. The overdose plays out in stages, with hallucinations in the late ones. Another player can bring them back with Narkhan spray, and hospital treatment and yoga also knock the score down.
Every medication in your catalog is tracked automatically. You can skip one or give it its own thresholds, and add street drugs like oxy or cokebaggy. Other scripts can read Player(src).state.ndrugaddiction.
Behaviour
| Setting | Plain English |
|---|---|
| Prompt style | How players interact: target, drawtext, or helptext |
| Debug | Extra console spam. Leave it off. With it on, the duty check is skipped |
| Test commands | Test commands. All off for a live server. See Commands |
| NPC pharmacist | Hide the NPC pharmacist while staff are on duty |
| Medication hooks | Run the stubs in resource/open/server/medication_hooks.lua |
Adding a pharmacy
Open the Shops page and add one.
- Set its location and the ped
- Give it a job to make it player-run, or leave the job empty for an NPC store
- Place the stations: clock-in, register, bottling bench, boss menu, and panic button
- Add shoplifting zones for any shelves you want players to be able to search
The ped's radius is how far away it spawns, not how close you have to be to use it.
Medications
The catalog lives on the The meds page. Each medication has a name, the number of uses per bottle, the most doses a script can be written for, a price, an icon, an effect, a duration, and a recipe made of stock-room ingredients. Adding your own is covered in Medications and effects.
Supply runs
Stops are on the Supply stops page. Each is a set of crate props at a location. They stay on the server, so players never see the coordinates. The sample stops are the Elysian Island docks, a NOOSE yard, the Cypress Flats yard, and Humane Labs. Move them anywhere you like.
Languages
Text lives in locales/en.json and loads through ox_lib. For another language, copy en.json to <code>.json, translate the values, keep every key, and set setr ox:locale "<code>" in server.cfg. A missing key shows up as raw text on screen. The web panels use the Ui.* keys.