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 176–200 of 301 releases

Oxide Pizza Jobv1.1.0

Minor

Added

  • Per-level vehicle liveries and extras: each level in shared/config/levels.lua now supports vehicleLivery and vehicleExtras for the company vehicle
  • Payment routing options in shared/config/job.lua: payoutAccount, tipAccount and fineAccount choose which account (bank or cash) shift payouts, tips and fines use — defaults match the old behavior
  • Config, locale and SQL files are now viewable in escrowed builds
  • The delivery waypoint distance text and keybind label are now translatable (nui.dist_km, nui.dist_m, keymap.show_waypoint in locales/en.json)

Changed

  • The welcome email now arrives with your first order batch and names your first delivery destination (translators: email.welcome gained a %s placeholder)
  • The vehicle-destruction fine can no longer take more money than the player has; notifications now report the amount actually charged
  • Builder commands (/pizzacreate, /pizzavehicle, /pizzadeliv, /pizzaexport, /pizzacancel) now use the standard admin permission — the old admin.pizzajob permission is no longer needed
  • Stronger server-side checks against spoofed delivery completions and fake vehicle-destroyed reports

Fixed

  • Complaint suspension timers could be misread after a server restart on newer database library versions; they now count down correctly
  • Exiting a vehicle while carrying a pizza now correctly restores the Store Pizza prompt and re-blocks vehicle entry until stored
  • Restarting the resource mid-session now reliably restores the pizzeria NPC

Oxide Cocainev1.0.1

Patch

Fixed

  • Players whose game instance changed after loading (character select screens, instanced interiors) could miss all placed equipment — pools, extractors, cook tables, presses — until relog; the server now detects the change and refreshes them automatically
  • Joining during server boot no longer produces a half-empty equipment snapshot

Documentation

  • docs/ADMIN.md now lists the correct /cokekit contents (4x Baking Soda plus 5x each of the other seven cutting agents)

Oxide Blackmarketv1.6.1

Patch

Fixed

  • Shop item edits not taking effect after a restart - editing a dealer's buy catalog in the settings menu updated the shop's appearance, but purchases still handed out the items from before the edit until the next time you saved in-game. Your saved catalog now loads correctly on every start, so what a player buys always matches what the shop shows.
  • Resetting a setting now applies immediately - resetting the shop inventory or dealer spawn settings to default from the settings menu takes effect right away instead of waiting for a restart.

Oxide Policev1.4.7

Patch

Changed

  • Patrol vehicles now stay in the world. A checked-out fleet vehicle no longer disappears when the officer clocks out, disconnects, or the server restarts — it stays parked wherever it was left and, after a restart, comes back in the same spot. Before, clocking out or a restart made the car vanish, and the vehicle count was quietly returned to the pool. Cars now have to be physically brought back to a garage before they count as available again.
  • Any on-duty officer can return a department vehicle. Returning is now a physical act: bring any of your department's vehicles to one of that department's garage bays and use the return option. It no longer has to be the car you personally checked out — handy when a colleague left a unit sitting in the field. To return a vehicle it must be parked at a garage bay; trying to return it anywhere else, or returning another department's vehicle, now tells you why.
  • A busy garage now says so. If every bay at a garage is occupied, checking out another vehicle is refused with a clear "return a vehicle first" message instead of spawning it on top of an existing car.

Added

  • Bosses can tow back lost units. The Fleet screen in the boss menu has a new Tow button next to each vehicle type that has units out in the field. It opens a list of every unit that is out — showing its plate, who checked it out, whether that officer is currently online, and the street it was last seen on — so you can pick exactly which vehicle to bring back. Towing returns the unit to the garage without anyone driving it, useful when the officer who took it is long offline. Each tow charges the department treasury Config.FleetRecoveryFee (in shared/config.lua, default 750; set it to 0 to make towing free).

Fixed

  • Firearm registration now works with ox_inventory. On servers using ox_inventory, the firearm registration desk always said "You have no unregistered firearms to register" even when the player was carrying weapons with serial numbers. Two causes: ox_inventory names weapons in capital letters, which the desk did not recognize, and ox_inventory marks every weapon it creates with its own "registered" note, which the desk mistook for a completed police registration. The desk now recognizes ox_inventory weapons and only treats a weapon as registered when it was actually registered at a police desk (or bought from a licensed weapon shop). Illegally printed "ghost guns" still cannot be registered.
  • Seized weapons are recorded on ox_inventory servers. For the same capital-letters reason, weapons submitted as evidence on ox_inventory servers were not being accepted as evidence items and their serials were not being logged in the MDT weapon registry. Both now work.
  • Works on servers running state bag strict mode. All synced player and vehicle state is now written by the server instead of by players' game clients. If your server has strict mode turned on (a FiveM setting that rejects client-written state), everything — cuffing with ESX inventories, fleet vehicle damage tracking, and the megaphone — now works correctly. Nothing changes on servers without strict mode.

Database

  • When upgrading, run the new file in sql/migrations/ (006_server_fleet_persistence.sql) once. It corrects the stored vehicle type on any boat and helicopter fleet vehicles so they spawn correctly with the new persistent-vehicle system. Fresh installs already include it, and it is safe to run on an existing database.

Notes

  • Nothing to turn on — persistent patrol vehicles and physical returns are the standard behavior now.
  • The one new setting, Config.FleetRecoveryFee, lives in shared/config.lua. If you use a customized copy of that file, copy the addition over to get it — fresh installs already include it.

Oxide Dispatchv1.3.4

Patch

Fixed

  • Dispatch map blips and panic alert cards now stay correct when a responder goes on duty, goes off duty, or switches department. Before this fix a responder's on-screen alerts could drift out of sync with what they were supposed to see — clocking in after an alert had already gone out wouldn't show that alert's blip, and going off duty or changing department could leave old blips and panic cards stuck on screen. Now, every time a responder's job or duty status changes, their alert display is rebuilt from scratch to match exactly the alerts they currently qualify for.

Notes

  • Existing servers can update in place — no SQL changes required for the 1.3.4 release.
  • No configuration changes are required. This fix applies automatically to every responder group (police, EMS, fire, and any custom groups).

Oxide Blackmarketv1.6.0

Minor

Added

  • Multiple dealers at once - the map now hosts several dealers at the same time (3 by default, Config.DealerCount). Each dealer has his own spot, his own stock, and moves on his own timer, so buying one dealer out doesn't empty the others.
  • In-game settings menu - /blackmarket settings (admin only) opens a full settings editor: change almost any setting live, add or move dealer spawn points and arrest drop-offs by placing them in the world, and edit the buy/sell catalogs with a searchable item picker. Changes save to the database and apply immediately - no restart needed.
  • Settings stored in the database - configuration now lives in a shared oxide_settings table (created automatically on first start; sql/install.sql is included for manual setups). shared/config.lua and shared/items.lua are now the factory defaults: they are imported on the first start and fill in new settings after updates. Set them up before your first start, then manage settings in-game or in the database.
  • Living economy:
    • Sell prices react to supply - flooding the market with an item drops its sell price for everyone, and the price recovers over time (Config.Market).
    • Dealers restock toward their maximum stock on a timer (Config.RestockEnabled, Config.RestockInterval, Config.RestockPercent).
    • Optional per-player daily sell caps to curb money printing (Config.DailySellCap, off by default).
  • Optional oxide-police integration - with Config.ArrestPoliceIntegration = true, the department cut from an arrest is paid into the arresting officer's real oxide-police department treasury. Everything works without oxide-police installed.
  • Shop categories and search - the buy and sell lists are grouped under category headings and have a search box. Every entry in shared/items.lua now has a category field.
  • Startup catalog check - on start the resource checks every item name in your buy/sell catalogs (and your dirty-money item) against your inventory system and warns about any name it doesn't recognize, so typos surface immediately instead of failing silently at the counter.

Changed

  • Arresting a dealer is now a transport job - instead of an instant arrest, the officer cuffs the surrendered dealer, escorts him on foot, loads him into a vehicle, and drives him to a drop-off point (Config.ArrestDropOffs) to collect the reward. The dealer breaks free if the officer wanders off (Config.EscortBreakFreeDistance) or the transport takes too long (Config.EscortMaxDuration). Who gets paid on delivery is configurable (Config.ArrestRewardRecipient: officer, society, or both).
  • Pager intel reworked - the reply now covers the nearest dealer and arrives as an anonymous phone email whose precision scales with reputation (Config.PagerIntel): general area at Tier 2, street and district at Tier 3, street plus a GPS waypoint at Tier 4. The player plays a texting animation with a progress bar while waiting, and the reply delay is configurable (Config.PagerResponseDelay).
  • Admin commands consolidated - the old commands are replaced by /blackmarket subcommands: /blackmarket relocate (moves all dealers), /blackmarket status, /blackmarket goto (teleports to the nearest dealer), /blackmarket setrep, /blackmarket checkrep, and the new /blackmarket settings.
  • Shop UI rebuilt with a new look - same buy/sell flow as before.
  • A surrendered dealer now waits 15 seconds (was 10) before trying to break free, and no longer tries once he's been cuffed.
  • New required dependency: oxmysql - add ensure oxmysql before this resource.

Removed

  • /relocatedealer, /dealerstatus, /godealer, /setblackmarketrep, /checkblackmarketrep - replaced by the /blackmarket subcommands above. Update any admin macros or documentation that used the old names.

Oxide Policev1.4.6

Patch

Added

  • Open the MDT from a tablet item. You can now make the Mobile Data Terminal open by using an inventory item instead of typing the /mdt command. Turn it on with Config.MDT.useItem = true in shared/config/mdt.lua — when on, officers open the MDT by using a police_tablet item and the /mdt command is switched off. The item name can be changed with Config.MDT.itemName. This is off by default, so /mdt keeps working unless you turn it on. If you run a non-Oxide framework, add the police_tablet item to your inventory first — see the "Register items" step in docs/INSTALLATION.md.
  • Use the MDT while off duty. A new setting lets hired officers open and use the MDT without clocking in. Turn it on with Config.MDT.allowOffDuty = true in shared/config/mdt.lua. Off by default, so the MDT still requires being on duty unless you turn it on. The minimum-rank setting for opening the MDT still applies either way.
  • Smoother on-screen speed radar. A new Config.Radar.Overlay.updateInterval setting in shared/config.lua lets you limit how often the floating speed readout above a vehicle refreshes, in milliseconds. Left at the default 0 it updates every frame, exactly as before.

Fixed

  • Admin commands use your server's standard admin permission. The admin panel (/padmin) and admin commands are gated by your server's normal admin permission. An old, unused setting that pointed to a custom oxide.police.admin permission has been removed, and the guides have been corrected. Before, the guides told you to grant a permission the resource no longer checks, so admin tools could appear to "do nothing" for staff who only had that custom permission. Grant your admins the standard admin permission — the same one used elsewhere on your server.
  • Boss menu actions no longer confirm twice. Hiring, firing, promoting and demoting officers, buying and managing fleet vehicles, and treasury deposits, withdrawals and payroll settlement now show a single confirmation message instead of two.
  • Breathalyzer color thresholds now follow your config. The "over the limit" and "caution" readings on the breathalyzer screen now use Config.Breathalyzer.overLimit and Config.Breathalyzer.cautionLimit in shared/config/breathalyzer.lua. Before, the screen always used the built-in 80 / 50 values no matter what you set.
  • Tackle cooldown and on/off switch now work. Config.Tackle.Cooldown is now enforced between tackles, and setting Config.Tackle.Enable = false now fully turns tackling off (the keybind is no longer registered). Both live in shared/config/interactions.lua. Before, these settings were ignored.
  • Speed radar range follows your config. The front and rear radar detection distances now use Config.Radar.OffsetFront and Config.Radar.OffsetRear in shared/config.lua. Before, the radar always used fixed distances and ignored those settings.
  • CCTV cameras can see into the distance. Camera feeds now draw far-away buildings and objects out to Config.Cctv.viewerMaxDistance in shared/config/cctv.lua. Before, distant scenery could be missing from the feed.
  • Zip-tie duty requirement now applies. If you set Config.FieldActions.Ziptie.requireDuty = true in shared/config/field_actions.lua, only on-duty officers can apply zip ties. Before, this setting had no effect.
  • Admin panel pop-ups appear on top. Confirmation boxes, input boxes, and notifications inside the admin panel now display above the panel instead of being hidden behind it.

Notes

  • The new and corrected settings live in shared/config/mdt.lua, shared/config.lua, shared/config/breathalyzer.lua, shared/config/cctv.lua, shared/config/interactions.lua, and shared/config/field_actions.lua. If you use customized copies of any of these files, copy the additions over to get them — fresh installs already include them.

Oxide Dispatchv1.3.3

Patch

Fixed

  • Panic alert cards could get stuck on a responder's screen and never go away. They now clear in three cases that previously left them pinned: when the responder logs out or switches characters, when the panic is closed but the responder had changed job/department or gone off duty since it fired, and — as a final safety net — automatically after a short grace period if the close signal is ever missed. The safety timer follows your Config.AutoExpire settings, and is turned off (cards stay until manually closed) when Config.AutoExpire.enabled = false.
  • The responder callsign popup now uses the standard input dialog so it looks and behaves consistently across all supported frameworks.

Changed

  • The default AI dispatch police channel (911) now points at the police job out of the box (it previously used a placeholder job name), so the example config works on a fresh install without editing. This only affects new installs — your existing shared/config/ai_dispatch.lua is untouched.

Notes

  • Existing servers can update in place — no SQL changes required for the 1.3.3 release.
  • Security reminder: the OpenAI key convar must use set oxide:ai-dispatch:openai_key sk-..., never setr. setr copies the value to every connecting player and exposes your key. If your server.cfg currently uses setr for this convar, change it to set.
  • The unused Config.Debug line was removed from shared/config.lua. It did nothing, so no action is needed.

Oxide Drugsellingv1.1.2

Patch

Added

  • Cocaine, crack baggies, and pressed cocaine bricks can now be sold through the street selling system, priced by purity (Pure, High, Mid, Low, and Dirty grades). Selling them rewards experience in oxide-cocaine, the same way selling weed and meth ties into their own resources.
  • New Config.OnDrugSold hook in shared/config.lua that runs after every completed sale. Drop in your own code (trigger an event, call another resource, send a webhook, hand out rewards) — leave it empty to do nothing.
  • New oxide-drugselling:drugSold server event that fires after every sale, for server owners who would rather react from their own resource than edit the config. Both give you the same sale details: who sold, the drug and item, the quantity, the final price, and the payout mode.

Fixed

  • The background task that clears out abandoned sell sessions now reports problems instead of failing silently, so cleanup keeps running reliably.

Oxide Cocainev1.0.0

Major

Added

  • Full cocaine production pipeline: harvest, stomp, soak, cook, bag, press
  • Wild coca bush harvesting across configurable polygon zones with per-bush yield and respawn timers
  • Free-walking pool stomp minigame with alkali and water pours and a four-stage leaf prop
  • Passive soak extractor with restart-safe timers persisted to the database
  • Interactive stove cook with a 6-key cycling temperature minigame and optimal-range purity scoring
  • Overheat-explosion and cold-ruin failure states on the cook
  • Crack as a second cook ("stepping on it") from powder cocaine
  • Cutting agents on the crack cook: every batch takes one or two cuts that stretch it into more product at the cost of purity
  • Eight configurable, level-gated cutting agents (baking soda, cornstarch, baby laxative, creatine, caffeine powder, benzocaine, lidocaine, levamisole)
  • Live in-world preview of the selected cut floating above the stove while picking
  • 5 purity grades (Pure, High, Mid, Low, Dirty) carried through every stage via item metadata
  • Spoon-and-baggy bagging minigame with per-grade and mixed-grade (lowest-grade) bagging
  • Brick press for compressing bulk cocaine into pressed kilos, gated to level 5
  • Usable bagged cocaine and crack with sniff/smoke styles, purity-scaled stimulant effects, stress relief, and comedown
  • 10-level progression with XP rewards for all production activities; leveling reduces the cook purity penalty and unlocks the brick press
  • In-game illustrated cocaine manual that teaches the full system
  • Four placeable stations (Coca Pool, Coca Extractor, Cook Table, Brick Press) with equipment ownership enforcement
  • Safe-zone polygon system blocking equipment placement, and vehicle-use restriction
  • Server exports: GetPlayerLevel, GetPlayerProgression, AddXP, AddSold
  • Admin commands /cokekit and /setcokelvl, and the player command /cokestats
  • Rate limiting on all server callbacks and events, session locking, and routing-bucket support
  • Shared drugs_progression and drug_equipment tables compatible with other Oxide drug resources
  • Custom streamed props for the kiddie pool, its leaf stages, and the seven cutting agents
  • Full localization support via locales/en.json
  • QBCore, QBX, and ESX support through o-link

Oxide Policev1.4.5

Patch

Added

  • Officers can belong to more than one department. A character can now be hired into several departments at once — for example the city police and the sheriff's office — each keeping its own badge number, callsign, rank, and pay. The department they count as "working" at any moment is whichever police job they currently have selected; duty, the boss menu, the MDT, and field tools all follow that active department. This is off by default. Turn it on with Config.AllowMultiDepartment = true in shared/config.lua. With it off, hiring someone into a second department still moves them out of the first, exactly as before.
  • Works with g-multijob. Oxide Police now plugs into the g-multijob multi-job menu, so officers can switch between their police job and their other jobs from that menu. Hiring or firing an officer automatically adds or removes their police job in the menu, and switching to a non-police job takes them off police duty until they switch back. It turns on by itself when g-multijob is installed (Config.Compatibility['g-multijob'] in shared/config/compat.lua) and needs Config.AllowMultiDepartment = true. Full setup steps are in the g-multijob section of docs/ESX_INSTALL.md.

Changed

  • /pfire can target one department. When a player belongs to more than one department, you can now fire them from a single department and leave the others untouched: /pfire <serverID> <departmentName>. Without a department name it still fires them from the department they are currently working.

Fixed

  • Station no longer thinks you're on duty when you're not. If you were taken off duty by something other than clocking out yourself — being fired or moved while on duty, or switching to another job — the station's clock-in point could still treat you as on duty and refuse to let you clock back in. It now always matches your real duty status.

Database

  • When upgrading, run the new file in sql/migrations/ (005_multi_department.sql) once. It lets a character be stored in more than one department. Fresh installs already include it, and it is safe to run on an existing database.

Notes

  • Both new features stay off until you turn them on. If you change nothing, the resource behaves exactly as it did before.
  • The new settings live in shared/config.lua (Config.AllowMultiDepartment) and shared/config/compat.lua (the g-multijob block). If you use customized copies of those files, copy the additions over to get them — fresh installs already include them.

Oxide Dealershipsv1.0.3

Patch

Fixed

  • Test drive vehicles now spawn reliably. On some servers a test drive would announce it started but no car would appear — sometimes even showing a "test drives are disabled here" message while they were switched on. The test drive car now spawns dependably and puts the player behind the wheel.
  • Purchased vehicles spawn more dependably. Cars bought from a dealership now appear reliably across different server setups; on some configurations a purchase could go through without the vehicle spawning in.

Oxide Policev1.4.4

Patch

Added

  • Turn off bullet casings for on-duty officers. A new setting lets you stop on-duty officers from leaving bullet casing evidence when they fire — so range training or a duty firefight doesn't litter the area with collectable casings. It is off by default, meaning officers leave casings just like everyone else until you turn it on. Set Config.Evidence.OfficersDropBullets = false in shared/config/evidence.lua. Off-duty officers and civilians always leave casings.
  • Skip evidence drops during your own minigames or modes. A new check lets you stop a player from leaving any evidence — bullet casings, blood, and vehicle fingerprints — while they are in a state you control, such as a paintball or laser-tag minigame. You write the check using your other resource's export. See Config.Evidence.IsDropExempt in shared/config/evidence.lua and the "Excluding players from evidence drops" section in docs/CONFIGURATION.md.

Notes

  • Both new settings live in shared/config/evidence.lua. If you use a customized copy of that file, copy the additions over to get them; fresh installs already include them.

Oxide Dealershipsv1.0.2

Patch

Fixed

  • Turning off test drives now actually disables them. Setting a shop's test drives to "off" (from the admin dashboard or the /dealership testdrive <shopId> off command) previously left them switched on if they were already enabled. The off setting now takes effect and the greeter hides the Test Drive button as expected.

Oxide Blackmarketv1.5.1

Patch

Fixed

  • Blueprint USBs selling the wrong product - shop entries that share an item name (the printer USB blueprints) were treated as one product: buying any USB charged the SNS Pistol USB price, delivered the SNS Pistol blueprint, and all USBs drew from one stock pool. Each shop entry now has its own price, stock, and item data.
  • Loot bag items now keep their item data - looted weapons stay serial-free and looted blueprint USBs keep their blueprint.

Changed

  • Admin commands (relocatedealer, dealerstatus, godealer, setblackmarketrep, checkblackmarketrep) now use the standard admin check instead of a restricted ACE, so they work for your framework's admins and tell a non-admin they lack permission instead of silently doing nothing.
  • setblackmarketrep now ignores negative or fractional values - reputation can only be set to a whole number of zero or more.
  • Config.Debug now ships disabled. Turn it on while setting up or troubleshooting.

Oxide Multicharv2.0.2

Patch

Fixed

  • When two or more players were at the character selection or creation screen at the same time, they could see each other's characters standing in the scene. Each player is now kept in their own private copy of the scene, so they only ever see their own characters.

Oxide Policev1.4.3

Patch

Fixed

  • MDT rank requirements now actually apply. The minimum-rank settings for the Mobile Data Terminal — opening the MDT, processing an arrest, and issuing a fine — are now enforced. Before, these settings were ignored, so any on-duty officer could do all three no matter what minimum rank you set. Officers below the rank you choose are now turned away. The defaults allow every rank, so nothing changes unless you raise these values in shared/config/mdt.lua.
  • Jail sentences from the MDT use your server's month length. Sentences handed down through the MDT now use the same month length as the /jail command (Config.Custody.SecondsPerMonth in shared/config/custody.lua). Before, MDT sentences were always locked to 60 seconds per month, so if you had changed the month length, an MDT arrest and the /jail command could give different sentence lengths. At the default setting nothing changes.
  • Escorting a suspect into a vehicle. Putting a suspect you are escorting into a vehicle now properly ends the escort hold on the officer, instead of occasionally leaving the officer stuck in the escort animation.

Notes

  • An unused permission setting (manageCatalog) was removed from shared/config/mdt.lua. If you use a customized copy of that file, you can leave the line in or delete it — it has no effect either way.

Oxide Dealershipsv1.0.1

Patch

Fixed

  • Greeter appearance now saves when you move it. Picking a new greeter character or idle animation in the admin dashboard and then repositioning the greeter now applies your choice in the same step.
  • Corrected the "Used Car Dealer" greeter option. This appearance choice pointed at an invalid character; it now shows the right one.

Oxide GoPostalv1.1.3

Patch

Changed

  • Builder and crew invite dialogs now open through your server's configured input UI instead of always using ox_lib
  • Documentation rewritten in plainer language for server owners

Removed

  • Removed config entries that had no effect in-game: Config.CustomerReactions, Config.Animations.pickup, and the unused letterbox scan settings in Config.Letter

Oxide Multicharv2.0.1

Patch

Fixed

  • Config.AllowDelete = false now hides the delete button and blocks deletion server-side.
  • Config.RequireDeleteConfirmation = false now skips the delete confirmation prompt.
  • ESX: the esx_multicharacter folder can now be deleted entirely — oxide-multichar announces itself under that name so ESX stays in multi-character mode.

Oxide Methv1.2.1

Patch

Fixed

  • Variant baggies produced through bagging now give their variant's own effects when used — previously they used the standard Crystal effects
  • Using meth now reduces stress on frameworks with a stress system (QBCore/QBX)
  • Shards and baggies now carry their variant in item metadata

Oxide Policev1.4.2

Patch

Fixed

  • Officer actions now lock you in place properly. Restraining or releasing a suspect with zip-ties, searching a suspect, clamping or unclamping a tire, applying or removing mouth tape or a tracking band, and impounding a vehicle now correctly play the action animation and stop you from moving or fighting until the progress bar finishes. Previously, on some setups, the animation could be skipped and you could still move during the action.
  • Rank-restricted radio channels. Radio channels with a minimum rank now correctly recognize each officer's rank. Previously every officer was treated as the lowest rank, so restricted channels (such as a command channel) were unavailable to everyone — including officers who should have access.

Documentation

  • New setup guide for media uploads. The documentation now includes a full step-by-step walkthrough for setting up FiveManage — the free service that stores mugshot photos, bodycam clips, and bait car dashcam clips. See "Setting up FiveManage media uploads" in docs/CONFIGURATION.md; the installation and troubleshooting guides now link to it too.

Oxide Dealershipsv1.0.0

Major

Added

  • NPC and player-owned dealerships. Four NPC dealerships (cars, boats, aircraft, trucks) are ready on install, and players can buy and run for-sale lots themselves.
  • 3D browsing catalog. Customers browse the lineup at the greeter, rotate each vehicle in a cinematic preview, and try preset paint colors before buying.
  • Test drives. Players take a vehicle for a timed spin and it returns automatically when the timer ends or they step out.
  • Flexible payment methods. Buy with cash, bank, or any custom currency a lot chooses to accept, including inventory items such as a VIP token.
  • In-house financing. Put money down and pay off the rest over time, with payments pulled automatically from the bank, missed-payment tracking, and repossession after repeated misses.
  • My Contracts panel. /myloans lets players see active loans, make a payment, or pay one off in full.
  • Vehicle trade-ins. Customers hand over a vehicle for instant value, taken as cash or applied toward a new purchase.
  • Used inventory. Repossessed and traded vehicles re-list on the used lot keeping their real plate.
  • Management tablet. Owners and staff open a windowed dashboard (/managedealership) at the lot to run the business in-game.
  • Stock and pricing. Owners list models, order stock at wholesale, and set their own retail prices.
  • Employees and commission. Owners hire managers and salespeople who earn a commission cut on sales they close while on the lot.
  • In-person contract sales. A salesperson picks a vehicle and a nearby customer, sets the terms, and sends a contract the buyer signs.
  • Promo codes. Admins create global or shop-scoped discount codes; owners can optionally run their own.
  • Showroom displays. Display vehicles can slowly rotate on a turntable, and a hold-key card shows a car's stats, price, and finance teaser.
  • Job-restricted lots. Limit a dealership's self-serve greeter to specific jobs.
  • In-character emails. Receipts, finance agreements, employment notices, and financing reminders arrive as phone emails when a phone resource is connected.
  • Admin dashboard and commands. A full in-game admin panel (/dealership admin) plus 19 /dealership commands create and manage every dealership without editing config files.
  • Optional credit-based financing. With oxide-banking connected, interest rates follow a player's credit score and a missed-payment invoice is sent on default.
  • IsCatalogOpen client export. Other resources (such as a custom HUD) can check whether a player has the browsing catalog open, for example to hide the HUD while browsing.

Oxide Policev1.4.1

Patch

Fixed

  • Department member counts. The admin panel now shows the correct number of officers in each department instead of always showing 0.
  • On-screen text. Fixed placeholder and incorrect wording in several screens — the evidence terminal, the boss menu, the admin panel, and the electrical repair minigames now show proper labels and text.

Notes

  • The wording fixes are in the language file (locales/en.json). If you use a customized language file, copy the updated lines over to get the corrected text.

Oxide Policev1.4.0

Minor

Added

  • Firearm registration desk. Civilians can register the guns they carry at a station for a small fee, which is paid into the department's funds. Only legal, serial-numbered guns that haven't been registered before can be registered — illegal guns can't. You add these desks from the admin menu, under a station's services.
  • Weapon registry and a new Weapons tab in the MDT. Every registered gun is tracked by its serial number, so officers always have a record of who it belongs to — even after the gun is sold or destroyed. Officers can search by serial number or owner name and mark a gun as stolen, seized, or revoked. The registry fills up on its own from the registration desk and from guns booked into evidence.
  • More than one of each point per station. Clock-in, armory, boss menu, evidence locker, evidence lab, and personal locker can each be placed more than once at the same station.
  • Prisoner sentence commands. /addtime adds or removes time from a prisoner's sentence, and /setsentence sets it to a specific length. Both work even when the prisoner is offline, and release the prisoner if the time reaches zero. Usable by admins, or by officers of a high enough rank.
  • New developer exports for the weapon registry, for third-party integrations. See docs/EXPORTS.md.

Changed

  • Evidence lockers now work per case. Each case has its own evidence locker instead of one shared locker per station. Officers pick a case before opening, processing, or logging evidence.
  • Officers go on and off duty at a station by default. The duty command and shortcut are turned off in favor of clocking in at a station. You can switch this back if you prefer (see Notes).
  • Automatic hiring from job changes. Setting a player's job to one of your departments now hires them, transfers them, or updates their rank automatically. Switching a player to a different, unrelated job no longer removes them as an officer, so multi-job setups work cleanly.
  • Per-action duty rules. Each officer interaction can now be set to require being on duty, or not, on its own. This lets you allow certain actions (such as restraining with zip-ties) for off-duty or civilian players while keeping the rest for on-duty officers.
  • Impounding unowned vehicles. If you allow impounding vehicles that nobody owns, they are now simply removed instead of causing an error.

Fixed

  • Evidence screen title. The top of the evidence screen showed placeholder text instead of a proper title.
  • Dispatch alerts. Alerts on the MDT dispatch screen no longer flicker while the list refreshes.

Database

  • When upgrading, run the new file in sql/migrations/ (004_weapon_registry.sql). It adds the weapon registry and the firearm registration desk. Fresh installs already include it. Run it once.

Notes

  • Important — existing evidence. Because evidence lockers now work per case, anything left in the old per-station lockers will no longer be reachable in game after updating. The items are not deleted, but there is no automatic move and no in-game way to reach them. If you have evidence stored at stations, take it out before updating.
  • These updates add a few new settings. If you use customized config files, review the additions below — fresh installs already include them.
  • Station-only duty is now on by default in shared/config.lua. To let officers toggle duty from anywhere instead, set:
    Config.RequireStationClockIn = false
    
  • Add the firearm registration settings in shared/config/field_actions.lua, in the station services section:
    firearmRegistrationEnabled = true,
    firearmRegistrationFee = 250, -- taken per gun, paid into the department's funds