301 releases · 35 resources

Changelog

What changed in every Oxide Studios resource, release by release. Read these before you update: migration steps and database changes are listed with each version.

Showing 126–150 of 301 releases

Oxide Chatv2.0.0

Major

Added

  • Custom chat channels: build your own slash-command channels (job radios, staff chat, gang chat) with per-channel styling, aliases, scope (members / global / broadcast / proximity), job or admin restriction, minimum grade, on-duty requirement, and cooldown — all in Config.ChatChannels or live in-game
  • In-game server settings editor (/chat settings, admin only): configuration is now edited live and saved to the database, no file edits or restarts needed after setup
  • Friends & block list: /friend add [id] / /friend remove [id] plus a friends panel in the chat UI with requests, online status, and blocking; blocking stops private messages in both directions
  • Inline images & GIFs: pasted image links embed in any message type (allowed hosts set via Config.ImageHosts), plus a Discord-style GIF picker powered by Giphy (add set oxide:chat:giphy_key your-key to server.cfg); images have their own cooldown and optional job/admin restriction
  • @mentions: type @ to autocomplete online player names; mentions are highlighted, including your own name when someone mentions you
  • Chat category tabs above the message list (All / Local / Global / Job / PMs by default), fully configurable via Config.Categories; players can hide the tab bar
  • Automatic announcements: a rotating list of server-wide broadcasts on a timer (Config.AutoBroadcasts), in order or random, skipped while the server is empty, toggled live with /chat autobroadcast on|off
  • Announcements support an optional heading with Title | Body syntax
  • 10 chat style presets (Bubbles, Discord, Timeline, Masonry, Compact, Cards, Float, Panel, Retro, Glass) plus new appearance options: chat height, 12/24-hour timestamps, message density, and a private-message color
  • Integration API for other resources: read or change any chat setting at runtime (GetSetting / SetSetting) and query or manage the friends & block list from your own scripts — see docs/EXPORTS.md

Changed

  • BREAKING: new required dependencies o-link and oxmysql — update your server.cfg start order (see docs/INSTALLATION.md)
  • BREAKING: Config.ChatTypes was replaced by Config.ChatChannels, one list that styles the built-in message types and defines custom channels; the default job radios (/lspd, /medic, /mechanic) are now ordinary channel rows you can edit, remove, or copy
  • Admin commands consolidated under /chat: /announce → /chat announce, /clearchat → /chat clear, /testchat → /chat test; player customization opens with /chat customize
  • Admin commands now use the standard framework admin check, so stock QBCore/QBX/ESX admin setups work without extra ACE configuration
  • Chat position and size are now per-player settings (the fixed Config.UI position/width/height options were removed)

Fixed

  • Sending while on cooldown now tells you how long to wait instead of silently dropping the message
  • Command suggestions correctly mark optional vs required arguments and refresh reliably when other resources start

Migration Guide

  1. In server.cfg, make sure oxmysql and o-link start before oxide-chat.
  2. Database tables are created automatically on first start. To import them manually instead, run sql/install.sql (fresh install) or sql/migrations/0001_friends_and_blocks.sql + sql/migrations/0002_settings.sql (existing install).
  3. If you had customized Config.ChatTypes, re-apply those styles as rows in Config.ChatChannels — or just edit them in-game via /chat settings.
  4. After the first start, settings live in the database; change them with /chat settings in-game. config/main.lua only supplies defaults for keys the database doesn't have yet.
  5. Players who used a removed style preset are automatically switched to the new Bubbles preset.

Oxide Policev1.8.0

Minor

Added

  • Edit settings in-game with /police settings. Admins can now change nearly every setting from an in-game menu — radar, speed cameras, bodycam, evidence, custody, MDT, interactions, and more — and changes apply immediately, with no file edits and no restart. Settings are stored in the database (a shared oxide_settings table, created automatically). On the first start after updating, your current config-file values — including your customizations — are imported, so nothing changes by itself. From then on the database is the source of truth: the config files only act as factory defaults for the menu's reset buttons and for new settings added by future updates, so editing a file no longer changes a running server. A few keys stay file-only by design (command names and the hook functions — see Notes).

Changed

  • Every command now lives under one /police command. The old scattered commands are gone and chat autocomplete now lists every subcommand with its arguments: /padmin → /police admin, /phire → /police hire, /pfire → /police fire, /mdt → /police mdt, /duty → /police duty, /jail → /police jail, /unjail → /police unjail, /addtime → /police addtime, /setsentence → /police setsentence, /purgeevidence → /police purgeevidence, /bodycams → /police bodycams, /cameras → /police cameras, and /speedcam_create / /speedcam_remove → /police speedcam create / /police speedcam remove. Running /police alone lists what's available. All permission rules are unchanged.
  • The police radio is now the bundled radio resource. Police no longer ships a radio of its own — the in-car/on-foot radio panel, the police_radio item, and the radio-channel editors in the admin panel and boss menu have been removed. The bundled radio resource owns the radio item, the panel, and the channel list; set up your police channels there (/radio settings → Channels), separated per department job name. When it is installed, police still puts officers on their department's channel at clock-on and shows badge numbers and downed officers on the channel roster. Without it there is no police radio; the megaphone is unaffected. The police_radio inventory item is no longer used by this resource and can be removed from your inventory config.

Database

  • Existing radio channels convert automatically. On the first start after updating — with the bundled radio resource installed and running — your department radio channels are copied into that resource's channel list (labels, department, minimum rank, and clock-on default are kept), and the old police_radio_channels table is renamed to police_radio_channels_migrated as a backup. This runs once and never again. If the radio resource is not running at that start, nothing is lost: a console warning is printed and the conversion runs on a later restart once it is. Fresh installs simply no longer create the radio table. No SQL to run by hand — the settings table and the conversion are both automatic.

Notes

  • If you use customized copies of the config files, a few keys moved — copy your custom values to the new names. The old names are no longer read: Config.Evidence.IsDropExempt → Config.Hooks.EvidenceIsDropExempt, Config.Evidence.CheckPlayerGloves → Config.Hooks.EvidenceCheckPlayerGloves, Config.Mugshot.BuildEmbed → Config.Hooks.MugshotBuildEmbed, Config.Mugshot.SendPhoto → Config.Hooks.MugshotSendPhoto, and Config.Evidence.Weapons → Config.EvidenceWeapons. Also Config.Custody.RemoveAfterRelease is now a plain list ({ 'prison_bread' } instead of { ['prison_bread'] = true }), and each entry in Config.SpeedCam.Models is now { label = '...' } instead of a bare label string. Keeping an old customized evidence.lua without these updates will break evidence drops.
  • Changing your server language later needs one extra step. The labels inside SpeedCam, FleetCatalog, and PlaceableObjects are stored in the database in whatever language the server used on first start. If you change ox:locale afterwards, delete those three rows from oxide_settings and restart — the exact SQL is in docs/CONFIGURATION.md (this also discards saved menu edits to those three sections).

Oxide Roadside Assistancev1.4.1

Patch

Fixed

  • Safety cones could not be placed — taking a cone off the truck never showed the placement preview, and the worker could be left stuck carrying the cone. Placement works again in both tow truck and flatbed modes.
  • Flatbed: returning a cone to the truck put it at the tow truck's storage spot on the chassis instead of the flatbed's cone stack. Returned cones now sit on the bed and ride along when it raises or lowers.

Oxide EMSv1.0.0

Major

First release.

Added

  • EMS department builder. Departments, facilities, grades, garages, uniforms, radio channels and the supply shop are all created in-game through /ems admin and stored in the database — there is no list of hospitals to edit in a config file. A department's internal name is the framework job name, so hiring a medic sets their job the way your framework expects.
  • Two facility types. Hospitals handle emergencies: beds, hospital respawn, x-ray machines and operating tables. Doctor's offices handle walk-ins: a reception bell that pages on-duty staff, plus lockers, a supply shop and clock-in. Both types share clock-in, personal lockers, the management desk and the supply shop.
  • Interaction points are placed in-world. Every clock-in spot, bed, locker, management desk, supply counter, reception desk, x-ray machine and operating table is placed by walking to it and picking the spot. Beds show a preview patient lying in place, and x-ray screens and surgery monitors show a live preview quad you can resize with the arrow keys before you save.
  • Field care pipeline. Examine a patient to open a diagnosis overlay with a scripted camera, seven clickable body regions and the patient's vitals. Badly hurt patients cannot be revived on the street — they have to be stabilized, transported and revived at a hospital bed.
  • Stabilize, then transport. Stabilizing pauses the patient's bleedout timer. Bleeding wounds must be treated before a stabilization takes. A stabilized patient can be loaded into an ambulance seat or wheeled on the stretcher, and can climb out of a stopped vehicle themselves if their medic disconnects.
  • Stretcher. Take the stretcher out of the back of an ambulance, drag it to the patient, load them, wheel them back and load the stretcher with the patient still on it.
  • Treatment as a surgery minigame. Every treatment — in the field, at the clinic and on the operating table — runs a timed keypress sequence. The result is graded: a clean run cures the condition, a middling run cures it but leaves a complication, and a bad run fails and can make things worse. The sequence and the score are both generated and re-checked on the server.
  • X-ray machines. Place a machine, position a patient on it, run a scan and the result appears on an in-world screen for everyone standing nearby — a skeleton highlight plus a findings list of fractures and retained bullets.
  • Operating tables with a live monitor. Place a patient on the table and the in-world monitor shows their name, blood type, condition list and an ECG driven by their real pulse — flatlining when it should.
  • Hospital beds. Beds heal to full over a configurable time. A medic can check a downed patient in as the revive; with nobody on duty, patients (or a bystander) can check them in themselves, subject to a fee and a stabilization requirement.
  • Hospital respawn. Place a respawn point at any hospital and players who give up and respawn wake up at the nearest one, behind a fade-out cutscene. Works on every framework.
  • Duty, payroll and treasury. Clock in at a facility, draw a salary on an interval, and let a department boss run the roster, treasury, back pay and fleet from a desktop-style management panel. Salaries can come out of the department treasury or straight from the framework.
  • Department fleet. Vehicles are individual, persistent rows. Checked-out vehicles survive a server restart, keep their fuel and damage, and re-link to the medic when they clock back in. Bosses buy new vehicles and recover wrecks from the treasury.
  • Uniforms. Bosses and admins build uniforms in-game from what they are currently wearing, choosing exactly which clothing slots the uniform owns. Everything outside those slots stays the medic's own clothes, and uniforms revert automatically on clock-out.
  • Supply shop. A department-scoped catalog. Rows with no rank requirement are public self-service; rows with one require an on-duty medic at that rank or above. Sales go to the department treasury.
  • Dispatch alerts. Automatic alerts when a player goes down or dies, a distress keybind (G) for downed players, /911e for anyone, a clinic reception page and a bed-request alert when a patient tries to check in while EMS is staffed.
  • Radio channels. Departments own numbered channels with a rank requirement and an optional duty requirement. Medics are tuned to their department's default channel automatically at clock-in.
  • Medical bag. A usable kit item that unpacks into field supplies.
  • Station markers. Hold H to see in-world cards pointing at the nearest interaction points that are useful to you — reception desks if you are a civilian, clock-in points if you are a medic.
  • In-game settings editor. /ems settings opens a searchable editor for every setting in the resource. Changes are stored in the database and take effect without a restart.
  • Runs on QBCore, ESX and Qbox. oxide-ems replaces qb-ambulancejob, esx_ambulancejob and qbx_ambulancejob, and keeps the surfaces third-party resources depend on working: the hospital:* events radial menus and police "officer down" relays use, the stock medical items, the stock admin commands, and the QBCore doctor-count callback. On Qbox, qbx_medical stays in charge of the death loop; on QBCore and ESX, oxide-ems runs it.
  • Multi-department support. With AllowMultiDepartment on, one character can be enrolled in several EMS departments at once, each with its own rank and badge, following whichever job they currently have active. Mirrors into g-multijob when it is installed.

Notes

  • Run sql/install.sql before first start.
  • Register the four EMS items (medical_bag, medical_bandage, medical_splint, medical_surgical_kit) in your inventory and copy the images from itemimages/. See Installation.
  • The stretcher prop is streamed from the resource, which means a full server restart after installing — restart oxide-ems is not enough for the prop to load.
  • Disable the ambulance job that shipped with your framework before starting oxide-ems.

Oxide Medicalv1.0.0

Major

First release.

Added

  • A persistent medical record per character. Blood type, a DNA hash, an immune stat and the full list of active injuries and illnesses, stored in the database and reloaded on login. Untreated conditions survive a disconnect and a server restart.
  • Four kinds of condition. Fractures (13 types across the body), wounds (gunshot, laceration, retained bullet), diseases (influenza, wound infection, pneumonia, hepatitis) and sicknesses (nausea, fever, dizziness, dehydration, food poisoning, cardiac arrest) — each with its own severity, effects, cure and catalog entry you can edit.
  • Injuries come from what actually hit you. The game's own damage events are classified by weapon and by the bone that was struck: a shotgun to the leg is a different injury from a knife to the arm. Repeated hits on the same spot make the existing injury worse rather than stacking up duplicates, and bullet wounds roll for a retained bullet that only a surgeon can take out.
  • Injuries you can feel. Broken legs make you limp and slow you down, broken arms make your aim drift, bleeding wounds leave blood on the ground behind you, and illnesses make you cough, retch and sway. Everything is driven off the condition list, so it clears the moment you are treated.
  • A vitals simulation. Pulse, blood pressure and blood oxygen are derived every couple of seconds from the injuries a player is carrying and a blood-volume model that drains while they bleed and recovers while they are on their feet. Severe blood loss collapses the pulse; a collapsed pulse becomes cardiac arrest, which drops the player and can only be brought back by a medic.
  • Diseases that get worse over time. Each disease moves through timed stages, growing in severity and picking up new symptoms as it goes. Curing one grants a temporary immunity window so a player isn't reinfected the moment they recover.
  • Diseases that spread. Contagious diseases pass to players standing nearby, with masks on either side cutting the chance and a healthy immune system resisting it.
  • Ways to get ill without being shot. Standing out in the rain can give you a cold; a dirty wound can turn septic; going hungry or staying stressed erodes your immunity until something takes hold; low thirst brings on dehydration that clears when you drink.
  • Vague symptom notifications. Players are told something is wrong, never what — "your chest aches with every breath", not "you have fractured ribs". Working out the diagnosis is the medic's job. Every line is in a config file you can rewrite.
  • Self-treatment for the simple things. Bandages stop bleeding, splints set an arm, antibiotics and antivirals cure illnesses. The serious injuries — a broken spine, a cracked skull, a retained bullet, pneumonia — are marked medic-only and refuse to be self-treated, which is what gives a hospital something to do.
  • Damage over time from untreated injuries. Severe conditions drain health on a tick until they are treated, applied so that reaching zero routes through your server's normal death handling.
  • Godmode-aware. The whole system suspends for a player in godmode automatically, with no dependency on the admin resource that sets it, and resumes the moment it is turned off. Any resource can suspend it deliberately too.
  • A full admin toolkit under /med: inspect a record, list conditions, add, treat, remove and clear them, read and set the immune stat, inspect and manipulate vitals, list catalog types, fire a notification, hand out a cure, and run eleven end-to-end scenario simulations.
  • A built-in self-test. /med test exercises the whole export surface against a live player — records, conditions, expiry, treatment, offline reads, vitals and cardiac arrest — and reports pass/fail per check.
  • A complete integration surface for other resources: fifteen server exports, two client exports, an o-link medical namespace, a replicated statebag view of every player's condition, a separate vitals statebag, and events for every condition change.
  • Blood evidence handoff. Bleeding from falls, fire, blades and animal attacks emits an event carrying the character's DNA, which a police resource can turn into forensic evidence. Firearm blood is deliberately left alone so it isn't dropped twice.
  • Runs on QBCore, ESX and Qbox through o-link, with no direct calls to any framework.

Notes

  • Run sql/install.sql before first start.
  • Register the three cure items (antacid, antibiotics, antiviral) in your inventory, plus medical_bandage and medical_splint if you are not already installing oxide-ems. See Installation.
  • oxide-medical has no configuration UI and no database-backed settings — everything is tuned in shared/config.lua and shared/config/, and changes need a resource restart.

Oxide Radiov1.0.0

Major

Added

  • One handheld radio for the whole server, built on top of pma-voice: a single radio item (Config.Item, Config.RequireItem) opens the radio for every player, with access to restricted channels decided by job rather than by a special item
  • Open (civilian) frequencies: any whole number in the Config.MinFrequency–Config.MaxFrequency range (1–9999 by default) is tunable by anyone holding a radio
  • Restricted job channels (Config.JobChannels): frequencies reserved for specific jobs, gated by case-sensitive job name, minimum grade (minRank), and an optional on-duty requirement (dutyOnly); restricted channels may sit on any frequency, not just the open dial range
  • Runtime channel registration for other resources through the RegisterChannel / UnregisterChannel exports (used by oxide-police and oxide-ems): owner-scoped, shadow any config channel on the same frequency, and released automatically when the owning resource stops
  • Server-authoritative access control, enforced at the pma-voice layer so a modded client cannot force itself onto a restricted or encrypted channel; access is re-checked on job change, duty change, and on a periodic sweep (Config.RevalidateInterval), removing players who lose access
  • Channel encryption: any open frequency can be password-locked by a player tuned to it; passwords are 6–32 characters, stored salted and hashed server-side, and never sent to other clients. Five wrong attempts triggers a five-minute lockout tracked per character that survives reconnect. The lock creator or a server admin can change or remove the lock
  • TeamSpeak-style channel browser inside the panel showing every active channel and its members, scoped to the viewer — restricted channels reveal members only to qualifying jobs, encrypted channels hide members until unlocked
  • On-screen roster overlay of who is on your current channel, with Discord-style live speaking indicators, badge tags, and a downed indicator; toggled with a rebindable keybind (Config.OverlayKey, default U), shown only when Config.ShowRoster is on, and repositionable from the panel
  • Per-character radio display names (stored in radio_prefs), shown on rosters in place of the character name
  • Per-client radio preferences: mic-click sound (Default / On / Off, driving pma-voice's own setting), starred favorite frequencies, and remembered encryption passwords
  • Roster tags for integrators via the SetMemberTag export (oxide-police feeds officer badge numbers) and a downed flag via the SetRadioDead export or automatically through o-link death events — no hard dependency on any death or police resource
  • Automatic integration with oxide-police / oxide-ems: when installed, their department channels register themselves and officers auto-join their default channel at clock-on with their badge on the roster
  • Admin commands under /radio: /radio settings opens the live settings menu, /radio unlock <frequency> force-removes encryption from a frequency
  • Live database-backed configuration through /radio settings — after the first start, settings are edited in-game with no file edits or restarts; the transmit and hold animations remain config-only in shared/config.lua
  • Server exports for integrators: RegisterChannel, UnregisterChannel, GetChannels, GetPlayerChannel, JoinChannel, LeaveChannel, SetRadioDead, SetMemberTag, GetSetting, SetSetting
  • Framework-agnostic through o-link (QBCore / QBX / ESX / Oxide Core) and localizable via locales/*.json
  • Graceful behavior without pma-voice: the radio UI still works, but no voice is transmitted and players see a "voice unavailable" banner; voice availability also respects the voice_enableRadios convar

Oxide Policev1.7.0

Minor

Added

  • Take a seated suspect out of a vehicle by third-eyeing the vehicle. With the vehicle action enabled in Config.OfficerTargetMenu.Actions (shared/config/interactions.lua), "Take Out of Vehicle" now also appears when aiming at a vehicle that has a restrained occupant inside. Before, the option was attached only to the suspect themselves — and aiming at someone seated in a car hits the vehicle's body or glass, so the option never showed and the F2 action menu was the only reliable way to get them out. The on-player option is unchanged, the same duty rules apply, and with several restrained occupants each use takes out the next one. Works with zip-tied suspects too, so the civilian requireDuty = false setup behaves the same.

Documentation

  • The upgrade steps in BUILDING-A-DEPARTMENT.md now list all six migration files (001 through 006), and mentions of bodycam video-resolution and CCTV recording/thermal settings that don't exist in the config were removed.

Notes

  • No database changes — existing servers update in place. Nothing new to configure: the vehicle option follows your existing Actions.vehicle setting, which is off by default.

Oxide Blackmarketv1.7.1

Patch

Fixed

  • Numbers and dealer locations saved in /blackmarket settings are now validated more strictly: corrupt values can no longer be saved or persist in the database, and previously saved settings are re-checked and repaired automatically at each restart.

Oxide Methv1.5.0

Minor

Added

  • Gas mask for female characters — new Female drawable and Female texture fields in the Gas mask section of /meth settings (Config.GasMask.femaleDrawable / femaleTexture). Clothing packs often number female masks differently than male ones; set these to your pack's female numbers. Left at -1, female characters use the same numbers as everyone else — nothing changes.

Fixed

  • Saving the Breaking or Bagging section in /meth settings broke that scene's camera — an extremely zoomed-in, empty-looking view — and it stayed broken until the setting row was deleted from the database. Numbers you save now keep their exact values, previously saved settings repair themselves automatically on the next server restart, and a corrupt value can no longer be saved at all. All four scene cameras (cooking, drying, breaking, bagging) are covered.
  • Placed equipment with corrupt coordinates in the database is skipped with a logged warning instead of silently breaking the scenes anchored to it.

Documentation

  • docs/CONFIGURATION.md and docs/TROUBLESHOOTING.md: new guidance for masks that show on one gender but not the other with custom clothing packs.

Migration Guide

  • No SQL to run. Restart the server once after updating — previously saved settings repair themselves automatically at boot. If your break/bag camera was broken, it fixes itself on that restart; no database edits needed.

Oxide Weedv1.4.1

Patch

Fixed

  • Saving a settings section in /weed settings could break that scene's camera — the brick press, freeze dryer and drying rack views turned extremely zoomed-in or empty and stayed broken until the setting row was deleted from the database. Numbers you save now keep their exact values, previously saved settings repair themselves automatically on the next server restart, and a corrupt value can no longer be saved at all.

Oxide Landscapingv1.4.0

Minor

Added

  • Live in-game settings editor — /landscaping settings — nearly every setting now lives in the database and is editable in-game by admins, applying live with no restart: pay, levels, timers, crew, complaints, vehicles and the mower, locations, NPCs and blips, markers, uniforms, props, animations and tutorials. Values are checked before saving and bad ones rejected with a reason. Yards themselves stay in /moweryard (they're too large for live sync); the menu says so.
  • Model swaps — new Compatibility section (Config.ModelSwaps): replace any prop, ped or vehicle model with one from your own packs. Saving a swap rebuilds standing yard grass and obstacles live. If a player's game build is missing a model, the server now warns once naming the model and pointing at the settings menu — nothing is silently substituted.
  • New /landscaping command: /landscaping settings (admin), /landscaping tutorials, /landscaping tutorialreset. The old commands still work.

Changed

  • Config files are now factory defaults. On the first start after updating, everything in the config files — including your customizations — is imported into the database automatically. From then on the database is the source of truth: editing the config files does nothing on an existing install; use /landscaping settings.
  • A model missing from a player's game build is skipped instantly with a named warning instead of freezing the load and rendering nothing. Yard rendering in particular no longer stalls several seconds per grass patch when a model is unavailable.

Fixed

  • Changing a setting could break the clock-in menu camera (an extremely zoomed-in or empty view). Saved numbers now keep their exact values and previously saved settings repair themselves automatically on the next restart.

Migration Guide

  • No SQL to run — the settings table is created automatically on first start and your existing config values are imported. Restart the server fully once after updating (new files and a rebuilt UI).

Oxide Roadside Assistancev1.4.0

Minor

Added

  • Model swaps — new Compatibility section in /roadside settings (Config.ModelSwaps): replace any prop, ped or vehicle model with one from your own packs — including server-spawned ones like the tow truck and stranded vehicles. If a player's game build is missing a model, the server warns once naming the model; the bundled flatbed models get their own "install is incomplete" message instead (Config.ModelHints).

Changed

  • A model missing from a player's game build is skipped instantly with a named warning instead of freezing the load. A missing ped in the stranded-driver pool no longer randomly leaves a call with a driverless car.

Fixed

  • Settings added by resource updates now appear on existing installs automatically — previously a new setting could silently not exist until the whole section was reset.
  • Changing a setting could break the dispatcher menu camera (an extremely zoomed-in or empty view). Saved numbers now keep their exact values and previously saved settings repair themselves automatically on the next restart.

Migration Guide

  • No SQL to run. Restart the server fully once after updating.

Oxide Animal Controlv1.3.0

Minor

Added

  • Live in-game settings editor — /animalcontrol settings — nearly every setting now lives in the database and is editable in-game by admins, applying live with no restart: calls and dispatch, the full event catalog (with in-world scene placement), animals, the tranquilizer, stealth and behavior, delivery points, NPCs and blips, props, animations and tutorials. Values are checked before saving and bad ones rejected with a reason.
  • Model swaps — new Compatibility section (Config.ModelSwaps): replace any prop, ped or animal model with one from your own packs. If a player's game build is missing a model, the server warns once naming the model — the bundled dart gun and the add-on kennel get their own clearer messages (Config.ModelHints).
  • Animals can carry a display label (Config.Animals[].label) so near-identical models are distinguishable in the event builder's picker.
  • New /animalcontrol command: /animalcontrol settings (admin), /animalcontrol tutorials, /animalcontrol tutorialreset. The old commands still work.

Changed

  • Config files are now factory defaults. On the first start after updating, everything in the config files — including your customizations — is imported into the database automatically. From then on the database is the source of truth: editing the config files does nothing on an existing install; use /animalcontrol settings.
  • Config.Tranquilizer.weaponHash is now weaponName (a weapon name string). Changing the tranq weapon now also updates player-vs-player dart detection, which previously stayed locked to the default dart gun.
  • A model missing from a player's game build is skipped instantly with a named warning instead of freezing the load. A missing ped in the reporting-NPC pool no longer randomly leaves a call with nobody to report it.

Fixed

  • Every dispatched call was an aggressive-animal call. A debug value shipped enabled and silently restricted the call mix; all four call types now appear again. The option is still available as "Force call type" in settings for testing.
  • Changing a setting could break the clock-in menu camera (an extremely zoomed-in or empty view). Saved numbers now keep their exact values and previously saved settings repair themselves automatically on the next restart.

Documentation

  • docs/CONFIGURATION.md, docs/INSTALLATION.md, docs/TROUBLESHOOTING.md: updated for the weaponName rename.

Migration Guide

  • No SQL to run — the settings table is created automatically on first start and your existing config values are imported. Restart the server fully once after updating.
  • If you customized Config.Tranquilizer.weaponHash, move the value to weaponName as a weapon name string (e.g. 'WEAPON_G2') before your first start on this version.

Oxide GoPostalv1.3.0

Minor

Added

  • Live in-game settings editor — /postaljob settings — nearly every setting now lives in the database and is editable in-game by admins, applying live with no restart: pay, levels, timers, crew, complaints, vehicles, locations (with in-world placement previews), NPCs and blips, delivery markers, uniforms, props, animations and tutorials. Values are checked before saving and bad ones rejected with a reason.
  • Model swaps — new Compatibility section (Config.ModelSwaps): replace any prop, ped or vehicle model with one from your own packs. If a player's game build is missing a model, the server warns once naming the model and pointing at the settings menu.
  • Custom mailbox models — new Config.PostBoxModels and Config.LetterBoxModels lists: maps that replace the stock mailboxes can register their own props so the route builder's scanner finds them.
  • New /postaljob command: /postaljob settings (admin), /postaljob tutorials, /postaljob tutorialreset. The old commands still work.

Changed

  • Config files are now factory defaults. On the first start after updating, everything in the config files — including your customizations — is imported into the database automatically. From then on the database is the source of truth: editing the config files does nothing on an existing install; use /postaljob settings.
  • A model missing from a player's game build is skipped instantly with a named warning instead of freezing the load. The delivery-customer ped pool no longer burns a long timeout per missing ped, and a missing van model cleanly cancels the spawn instead of erroring mid-shift.

Fixed

  • Changing a setting could break the clock-in menu camera (an extremely zoomed-in or empty view). Saved numbers now keep their exact values and previously saved settings repair themselves automatically on the next restart.

Migration Guide

  • No SQL to run — the settings table is created automatically on first start and your existing config values are imported. Restart the server fully once after updating.

Oxide Pizza Jobv1.3.0

Minor

Added

  • Live in-game settings editor — /pizza settings — nearly every setting now lives in the database and is editable in-game by admins, applying live with no restart: pay, levels, timers, complaints, random events, vehicles, shop and delivery locations (with in-world placement previews), NPCs and blips, customer peds and reactions, uniforms, the pizza prop, animations and tutorials. Values are checked before saving and bad ones rejected with a reason.
  • Model swaps — new Compatibility section (Config.ModelSwaps): replace any prop, ped or vehicle model with one from your own packs. If a player's game build is missing a model, the server warns once naming the model and pointing at the settings menu.
  • New /pizza command: /pizza settings (admin), /pizza tutorials, /pizza tutorialreset. The old commands still work.

Changed

  • Config files are now factory defaults. On the first start after updating, everything in the config files — including your customizations — is imported into the database automatically. From then on the database is the source of truth: editing the config files does nothing on an existing install; use /pizza settings.
  • A model missing from a player's game build is skipped instantly with a named warning instead of freezing the load. The delivery-customer ped pool no longer burns a long timeout per missing ped.

Fixed

  • Changing a setting could break the shift menu camera (an extremely zoomed-in or empty view). Saved numbers now keep their exact values and previously saved settings repair themselves automatically on the next restart.

Migration Guide

  • No SQL to run — the settings table is created automatically on first start and your existing config values are imported. Restart the server fully once after updating.

Oxide Cocainev1.2.1

Patch

Fixed

  • Saving a settings section in /cocaine settings could break the cooking or packaging scene camera — an extremely zoomed-in or empty view that stayed broken until the setting row was deleted from the database. Numbers you save now keep their exact values, previously saved settings repair themselves automatically on the next server restart, and a corrupt value can no longer be saved at all.

Oxide Newspaperv1.2.0

Minor

Added

  • Live in-game settings editor — /newspaper settings — nearly every setting now lives in the database and is editable in-game by admins, applying live with no restart: pay, levels, timers, throwing, supplies, the bike, depots and houses (with in-world placement previews), NPCs and blips, uniforms, the paper bag, animations and tutorials. Values are checked before saving and bad ones rejected with a reason.
  • Model swaps — new Compatibility section (Config.ModelSwaps): replace any prop, ped or vehicle model with one from your own packs. If a player's game build is missing a model, the server warns once naming the model and pointing at the settings menu.
  • New /newspaper command: /newspaper settings (admin), /newspaper tutorials, /newspaper tutorialreset. The old commands still work.

Changed

  • Config files are now factory defaults. On the first start after updating, everything in the config files — including your customizations — is imported into the database automatically. From then on the database is the source of truth: editing the config files does nothing on an existing install; use /newspaper settings.
  • The throwable paper is configured as Config.Throw.weaponName (default 'WEAPON_ACIDPACKAGE', needs game build 2802+). On older builds the route now runs normally with a clear owner-facing warning instead of erroring — throws simply don't register until the weapon exists or is swapped. Unused keys pollInterval, maxPollTime and minThrowCooldown were removed.
  • A model missing from a player's game build is skipped instantly with a named warning instead of freezing the load. A missing bike model now cleanly cancels clocking in instead of aborting mid-way and leaving the player half clocked in.

Fixed

  • Changing a setting could break the shift menu camera (an extremely zoomed-in or empty view). Saved numbers now keep their exact values and previously saved settings repair themselves automatically on the next restart.

Documentation

  • docs/CONFIGURATION.md: Config.Throw updated for weaponName and the removed keys.

Migration Guide

  • No SQL to run — the settings table is created automatically on first start and your existing config values are imported. Restart the server fully once after updating.
  • If you customized Config.Throw.weaponHash, move the value to weaponName as a weapon name string.

Oxide Shopsv1.0.2

Patch

Fixed

  • The barber shop scene camera and admin-saved vehicle preview cameras (auction house spots) could open extremely zoomed-in or empty after their settings were saved. Saved camera values now apply correctly, and previously saved settings repair themselves automatically on the next server restart.
  • Emptying a list in /shop settings no longer breaks the editor.
  • Numbers saved in /shop settings are now validated more strictly: corrupt values can no longer be saved or persist in the database.

Documentation

  • README.md and docs/INSTALLATION.md: accuracy fixes from the docs review.

Oxide Multicharv2.0.3

Patch

Fixed

  • Some players landed on a character selection screen with no characters on it, or with characters missing. A slow-loading model or animation would stop the screen from finishing building. Characters now load one at a time, so a single slow model no longer takes the whole screen down with it.
  • Raised how long the resource waits for a character model to load from 5 seconds to 30. Heavily modded servers were running out of time on the shorter limit.
  • The mouse cursor did not appear on the character selection screen, leaving players unable to click anything. The loading screen was still holding on to the mouse; it is now dismissed first.
  • Characters whose saved position was recorded incorrectly spawned in the open ocean. Those positions are now ignored — the character spawns at Config.Spawn.new instead, and "Last location" is no longer offered in the spawn picker for them.
  • If anything went wrong while placing a character in the world, players were left on a permanent black screen with a frozen character and had to reconnect. The screen now always fades in and releases the character.
  • Reopening character selection while the map spawn picker was on screen broke the camera. It is now ignored until the spawn picker is finished.

Documentation

  • docs/CONFIGURATION.md: corrected several settings that were documented as working but are not currently applied by the resource — Config.Spawn.fallback, the three Config.Camera.selection settings, and Config.Logout.holdDuration / Config.Logout.fadeInDuration. Each is now marked as such, with a note on what actually happens instead.

Oxide Landscapingv1.3.0

Minor

Added

  • Cancel Current Yard: while mowing, the crew leader — or a solo worker — can cancel the current yard from the office menu or by targeting the work van. The yard is forfeited (it can't be restarted that shift), the rest of the round continues, and if it was the last yard the worker is sent back to the office. Yards already finished still pay at clock-out. Crew members can't cancel; they clock out to leave, exactly as before
  • Config.Cancel.cooldownSeconds in shared/config/job.lua (default 60) — how long the crew waits before starting the next yard after cancelling; applies to both crew members; set 0 to disable

Changed

  • Docs: the cancel feature is documented; location and yard configuration now have full field tables, plus an "adding a second office" guide that explains yards are a shared pool — a new office needs yards authored nearby to give local work

Oxide Roadside Assistancev1.3.0

Minor

Added

  • Cancel Current Task: while on an accepted call, the crew leader — or a solo worker — can cancel it from the dispatcher menu or by targeting the work truck. The scene (stranded vehicle, driver, cones) cleans up for both crew members, the winch stows, a lowered flatbed bed raises itself, and the truck stays; the worker goes back to waiting for calls. Cancelling doesn't count as a missed call, and calls already completed still pay at clock-out. Crew members can't cancel; they clock out to leave, exactly as before
  • Config.Calls.cancelCooldownSeconds (default 60) — the next call is dispatched only after this wait. Also editable live in /roadside settings under Calls & Dispatch → "Cancel cooldown"; set 0 to disable

Changed

  • Docs: the cancel feature is documented, and the "add a tow yard" instructions now describe the correct path — tow yards are added live in-game through /roadside settings (editing the config file on a live server has no effect once settings live in the database)

Oxide Animal Controlv1.2.0

Minor

Added

  • Cancel Current Task: while on an accepted call, the crew leader — or a solo worker — can cancel it from the office menu or by targeting the truck. The whole scene (animal, reporting civilian, bait, remains) cleans up for both crew members, the truck stays, and the worker goes back to waiting for calls. Cancelling doesn't count as a missed call, and calls already completed still pay at clock-out. Crew members can't cancel; they clock out to leave, exactly as before
  • Config.Calls.cancelCooldownSeconds in shared/config/job.lua (default 60) — the next call is dispatched only after this wait; the wait follows the crew if leadership changes; set 0 to disable
  • All new text ships translated in both included languages (English and Bosnian)

Changed

  • Docs: the cancel feature is documented; office configuration now has full field tables plus an "adding a second office" guide (call scenes are shared across offices — a second office needs no scene list of its own)

Oxide GoPostalv1.2.0

Minor

Added

  • Cancel Current Round (crew-aware): while loading or delivering, the crew leader — or a solo worker — can cancel the round from the supervisor menu or by targeting the van. Both crew members return to the clocked-in state, the pickup pallet is cleaned up for everyone, and the van stays. Deliveries already completed still pay at clock-out. Crew members can't cancel; they clock out to leave, exactly as before
  • Config.Cancel.cooldownSeconds in shared/config/job.lua (default 60) — how long the crew waits before starting a new round (or clocking in fresh) after cancelling. Tied to the character, so relogging doesn't skip it; set 0 to disable

Changed

  • Docs: the cancel feature is documented; a new "adding a second depot" guide with full field tables for depots, letter boxes and delivery zones; new troubleshooting entries; assorted corrections from the docs review

Oxide Pizza Jobv1.2.0

Minor

Added

  • Cancel Current Task: while on deliveries, cancel from the shift menu or by targeting the delivery vehicle — a confirmation prompt appears, the remaining orders are forfeited, and you stay clocked in with your vehicle. Deliveries already completed still pay at clock-out
  • Config.Cancel.cooldownSeconds in shared/config/job.lua (default 60) — how long a player waits before requesting new orders after cancelling. Tied to the character, so relogging doesn't skip it; set 0 to disable

Fixed

  • A customer walking up for a pizza handoff could be left standing at the door if the delivery was interrupted at the wrong moment — they are now always cleaned up

Changed

  • Docs: the cancel feature is documented; shop location configuration now has full field tables and an "adding another shop" walkthrough; new troubleshooting entries for stuck deliveries and the cancel cooldown