Features

Feature reference for retail, weapons, pawn, service shops, auctions, ownership, wholesale, and access controls.

This page explains how every part of oxide-shops works, from a server owner's point of view — what players see and do, and how the money and stock move behind the scenes.

Shop Types at a Glance

Every shop has a style that decides how it behaves and what players can do there.

StyleWhat it doesCan be player-owned?
GeneralSells everyday items (food, tools, etc.)Yes
WeaponSells firearms, armor, and melee/throwable weapons; registers weaponsYes
PawnBuys and sells items at prices that shift with demandNo (see Pawn Shop)
ClothingChange outfit garments for a priceYes
BarberChange hair, hair color, facial hair, eyebrows, eye colorYes
TattooApply and remove GTA tattoosYes
MaskBuy a maskYes
AuctionPeer-to-peer item and vehicle auctionsNo

Players open a shop by walking up to the shopkeeper (or into the store zone for clothing/mask shops) and pressing their interaction key, then choosing Browse Shop (the label changes per shop type, e.g. "Buy Weapons", "Get a Haircut").

Static vs Player-Owned Shops

Every shop is one of two types:

  • Static — a normal server-run store. Its stock is unlimited. Sales still record to the store's internal balance (its till), but for a static store that money just sits there unused — nobody withdraws it, and the till is cleared the moment a player buys the store, so a new owner always starts at $0. Newly created stores start as static.
  • Player-owned — a player has bought the shop and now runs it. Its stock is finite: it starts with a fixed amount and runs out as customers buy, until the owner restocks. Sales fill the shop's balance (its till), which the owner withdraws.

A static shop becomes player-owned when a player buys it (if you've made it purchasable). An admin can take a shop back with Reclaim, which returns it to unlimited static stock.

General Stores

General stores sell everyday items — food, drinks, medical supplies, tools, and equipment. The built-in templates include 24/7 supermarkets, LTD gas stations, Rob's Liquor stores, and hardware stores at their familiar GTA locations, ready for an admin to place from /shop admin.

How a Purchase Works

  1. The player opens the store and picks an item and quantity.
  2. The price is the item's price plus sales tax (set by Config.TaxRate, 5% by default).
  3. The item price is charged from the player's cash. If they can't carry the item or don't have enough cash, the sale is refused and nothing is charged.
  4. On a player-owned store, the stock drops and the item's price (without tax) is added to the shop's balance.
SettingDefaultWhat it controls
Config.TaxRate0.05Sales tax added on top of item purchases (0.05 = 5%). Services, pawn sales, and auctions are not taxed
Config.StartingStock25How much of each item a shop has when it first becomes player-owned

Weapon Shops

Weapon shops (Ammunation) sell firearms, armor, and melee/throwable weapons. Each weapon shows a 3D model on the display shelf so players can see what they're buying.

  • Weapon registration — Weapons bought at a legal weapon shop are automatically registered to the buyer. Players can also register firearms they're already carrying (for example ones they found): the Register Firearms button opens a list of their unregistered, serialized weapons, and they pick which ones to register. Each registered firearm costs the registration fee.
  • Weapon stats — The shop UI shows an approximate damage/accuracy/range/fire-rate rating for each weapon (for display only; these are not exact game values).
SettingDefaultWhat it controls
Config.WeaponRegistrationFee500Cash fee charged per firearm registered

Weapon items (like weapon_pistol) must be registered in your framework for a weapon shop to sell them. The default catalog matches standard GTA weapons.

Pawn Shop

The pawn shop is a two-way store: players sell items to it for quick cash, and buy items back from it. Its defining feature is dynamic pricing — prices react to how much players trade there.

  • Selling an item drops that item's sell price a little each time (the shop is "flooded"), down to a floor. Prices slowly recover over time.
  • Buying an item drives its buy price up (demand), up to a cap. This also recovers over time.
  • Each item has its own price memory, per pawn shop.

The pawn shop is deliberately not ownable by players. Its buy and sell prices ignore stock and its balance (it acts as a money source and item sink), so letting a player own it would create an unlimited money faucet.

SettingDefaultWhat it controls
Config.PawnShop.sellRatio0.5A sold item pays this fraction of its base price (50%)
Config.PawnShop.decayPerSale0.05Sell price drop per sale of the same item (−5%)
Config.PawnShop.recoveryPerMinute0.01Price recovery per minute back toward base (+1%/min)
Config.PawnShop.minSellMultiplier0.1Sell price never falls below this fraction of base (10%)
Config.PawnShop.demandMultiplier0.03Buy price rise per unit of demand (+3%)
Config.PawnShop.maxBuyMultiplier1.5Buy price is capped at this multiple of base (150%)

Clothing Stores

Clothing stores let players change outfit garments — shirt, pants, shoes, bags, accessories, armor, hats, glasses, and more. A store is a walk-in zone (no shopkeeper ped); walking into it gives the Buy Clothes option.

  • Players are billed only for the slots they actually change, using a per-slot price book.
  • The change is saved through your server's clothing/appearance resource.
  • On a player-owned store, each changed slot uses one unit of the store's fabric supply.

The default per-slot prices live in Config.ClothingShop.components and Config.ClothingShop.props (for example Shirt $200, Pants $150, Hat $80).

Barber Shops

Barber shops let players restyle hair, hair color, facial hair, eyebrows, and eye color in a seated, animated scene — the customer sits in a chair and the barber works with a scissors prop.

  • Players are billed per category they change. Changing just the hair color costs only the hair-color price.
  • The look is saved through your clothing/appearance resource.
  • On a player-owned barber, each changed category uses one unit of hair_product supply.
CategoryDefault price
Haircut (hair)35
Hair color (hairColor)25
Facial hair (beard)20
Eyebrows (eyebrows)15
Eye color (eyeColor)20

Barber shops need a clothing resource that supports full appearance. Some clothing backends only handle outfits, not hair and face detail. If yours doesn't, the barber politely refuses ("can't style hair on this server's clothing system") rather than wiping the player's look. Appearance-rich backends (for example illenium-appearance, fivem-appearance, rcore_clothing) work fully.

Tattoo Parlors

Tattoo parlors apply and remove GTA tattoos in a seated scene, with the camera framed on the body area being worked on. The parlor offers ten GTA overlay collections (Business, Hipster, Biker, Air Races, Beach Bum, Festive, Gunrunning, Import/Export, Lowrider, Lowrider II).

  • Apply a tattoo for a flat price; remove one for a (usually higher) flat price.
  • Tattoos are saved through your clothing/appearance resource, so they persist and work on every framework.
  • On a player-owned parlor, each apply or removal uses one unit of tattoo_ink supply.
ActionDefault price
Apply (apply)500
Remove (remove)750

A tattoo only appears in the shop if it has a camera set. Each tattoo needs a preview camera angle so it can be framed on the body. The default collections ship with cameras already set. If you add new tattoos, set their camera with the in-game tattoo camera editor in /shop admin — until you do, a camera-less tattoo is hidden from customers.

Mask Shops

Mask shops are a walk-in zone that sells a single service: putting on a mask. The player picks a mask style and pays the mask price. On a player-owned mask shop, each mask uses one unit of mask_blank supply.

SettingDefaultWhat it controls
Config.MaskShop.maskPrice500Default mask price (player-owned shops set their own)

Auction House

The auction house is a peer-to-peer marketplace where players list items or owned vehicles for other players to bid on. The built-in templates include one auction house in Vinewood that an admin can place from /shop admin.

Listing

  • A seller lists an item (from a chosen inventory slot) or a vehicle they own, with a starting price, an optional buy-now price, and a duration (1, 6, 12, or 24 hours by default).
  • Listing charges a listing fee (a percentage of the starting price) from the seller's cash, and holds the listed item out of their inventory.
  • Each seller may have up to Config.Auction.maxActiveListings auctions running at once (a per-player limit — there is no cap on the total number of auctions across the whole server).

Bidding & Buying

  • Bidders pay their bid amount up front from cash; if they're outbid, they're refunded automatically.
  • Each new bid must beat the current bid by a minimum increment (a flat amount and a percentage, whichever is larger).
  • A buyer can pay the buy-now price to end the auction immediately.

Completion

  • When an auction ends with a winning bid, the seller is paid the winning amount minus a completion fee, and the winner receives the item or vehicle.
  • If an auction ends with no bids, the item is returned to the seller (vehicles simply stay with the seller).
  • Everything is delivered safely even if a player is offline. Payouts, refunds, won items, returned items, and won vehicles are queued and delivered the next time that player logs in.
  • Vehicle ownership is re-checked at the moment of sale, so a seller can't sell a car they no longer own.
SettingDefaultWhat it controls
Config.Auction.listingFeePercent0.05Fee to list, as a fraction of the starting price (5%)
Config.Auction.completionFeePercent0.05Fee taken from a completed sale (5%)
Config.Auction.minBidIncrement100Smallest allowed absolute bid increase
Config.Auction.bidIncrementPercent0.05A bid must also beat the current bid by this fraction (5%)
Config.Auction.durations{ 1, 6, 12, 24 }Auction lengths (in hours) sellers can choose
Config.Auction.maxActiveListings10Most auctions one seller may have active at once (per-player, not server-wide)

Vehicle Preview Spots

Admins can add preview spots to an auction house — a marked location where a listed vehicle appears so bidders can look it over before bidding, with a saved camera angle. Preview spots are managed from /shop admin.

Owning a Shop

Players can buy shops and run them as businesses.

Buying a Shop

  1. An admin makes a static shop purchasable by setting a purchase price on it (in /shop admin).
  2. A player walks up and chooses Purchase Shop. The price is charged from their bank.
  3. The shop becomes player-owned with an empty till: its unlimited stock is converted to a finite starting amount (Config.StartingStock), and service shops are seeded with their price book and starting supply.
  4. A player can own up to Config.MaxShopsPerPlayer shops (3 by default).

Running a Shop

Owners get a Manage Shop option at their own shop, which opens the management panel:

  • Set prices on each item (or each service, for service shops).
  • Restock from wholesale, or transfer items from their own pockets into the shop.
  • Set an auto-restock target per item so the shop tops itself up automatically.
  • Deposit and withdraw money from the shop balance (withdrawals go to the owner's bank).
  • View the transaction history (recent sales, restocks, deposits, etc.).
  • List the shop for resale (if resale is enabled).

Reselling a Shop

When Config.AllowResale is on, an owner can list their shop for sale at a price. The next player to choose Purchase Shop at that shop buys it as a going concern:

  • The seller is paid the sale price minus a resale fee, plus whatever was in the shop's till.
  • The buyer takes over the shop with its stock and price book, and an empty till.
  • If the seller is offline when the shop sells, their proceeds are paid the next time they log in.
SettingDefaultWhat it controls
Config.MaxShopsPerPlayer3How many shops one player may own at once
Config.AllowResaletrueWhether owners can list shops for other players to buy
Config.ResaleFeePercent0.05Cut taken from a resale before paying the seller (5%)

Wholesale & Auto-Restock

Player-owned inventory shops (general and weapon) restock from a wholesale catalog. The owner buys stock at wholesale cost (an item's base price multiplied by Config.WholesaleMarkup) using the shop's balance, then sells it to customers at their chosen retail price for a margin.

  • Each wholesale item has a minimum and maximum order size.
  • Owners set their own retail prices, so the profit margin is up to them.

Auto-restock lets an owner set a target quantity per item. On a timer, the shop automatically tops each item back up to its target from wholesale, paying from the shop balance, and stops when the balance runs low.

SettingDefaultWhat it controls
Config.WholesaleMarkup1.5Owner's cost = item base price × this (1.5 = 150%)
Config.AutoRestock.EnabledtrueWhether the automatic restock sweep runs
Config.AutoRestock.Interval600000Time between restock sweeps, in milliseconds (10 minutes)

Access Restrictions

Any shop can be locked so it only serves certain players. This is set per shop in /shop admin:

  • Job — only players with this job name are served.
  • Minimum rank — require at least this job grade (rank number).
  • On-duty only — require the player to be on duty.

A locked shop refuses to open its browse/buy menus for players who don't qualify, showing "This store doesn't serve you". A shop with no job set serves everyone.

One thing to note about owners: the restriction applies to everyone on the customer side, including a shop's own owner. If an owner stops matching the lock (for example they change jobs), they can still open Manage Shop — managing your own shop bypasses the job lock — but they'll be refused if they try to buy from their own shop as a customer.

Map Blips

Each shop style has its own default map blip (icon, color, size, and label), all configurable. Per shop, an admin can also:

  • Hide the blip entirely, so the shop doesn't appear on the map.
  • Override the blip with a custom icon, color, size, and label, using the Map Blip editor in /shop admin. Any field you leave blank falls back to a default: the icon, color, and size fall back to the style's default, and a blank label falls back to the shop's own name (only if the shop somehow had no name would it use the style's default label).

See Configuration for the default blip of each style.

Next Steps