All documentation

Paid scripts

Auction House

A player market for RedM. Players list goods at auction houses around the map, bid or buy them out, order raw goods from a supply catalogue and post buy orders, and collect everything from a mailbox.

  • poggy_auctionv1.3.3
  • FrameworksVORP Core, RSG Core, QBCore RedM
  • Updated5 Oct 2026

Overview#

Auction House gives your players a market they run themselves. They walk up to an auctioneer in town, list goods from their satchel, and other players bid on them or buy them out. Everything a player wins, earns or gets back lands in a mailbox they collect from at any auction house.

Next to the auctions there is a supply catalogue, where players order raw goods that arrive after a delivery time, and a want-request board, where players post buy orders that others fill.

  • Four auction houses out of the box: Valentine, Blackwater, Saint Denis and Armadillo, each with an auctioneer and a map blip.
  • Bidding with a minimum step, optional buy-now prices, and a choice of listing lengths.
  • A listing deposit and a sales tax, both adjustable, to keep the market from flooding.
  • A mailbox that works for offline players: sales, winnings, refunds and returned items wait there.
  • A supply catalogue with six suppliers and prices that move a little each time it opens.
  • Want requests with the money held up front, filled in full or in part.
  • Optional delivery of catalogue orders straight into a Poggy Markets shop.
  • Staff tables in /poggy to cancel, extend or refund live auctions, orders and requests.
  • Optional Discord logging.

Requirements#

ResourceNeeded?Notes
A RedM frameworkYesVORP Core, RSG Core or QBCore RedM.
poggy_core 0.17.0 or newerYesFree. It connects the script to your framework. Use the latest version: the staff tables in /poggy and the Poggy theme need a recent one. See Poggy Core.
oxmysqlYesFor the database.
poggy_marketsNoLets catalogue orders go straight into a shop's storage.

Installation#

  1. Download Auction House from your Cfx.re account (Keymaster) and unzip it.
  2. Put the poggy_auction folder in your server's resources folder.
  3. In server.cfg, add ensure poggy_auction below oxmysql and poggy_core, and below poggy_markets if you use it.
  4. Start the server.
ensure oxmysql
ensure poggy_core
ensure poggy_markets   # optional
ensure poggy_auction

The database tables are created for you the first time the script starts. You do not need to import anything.

If you prefer to manage tables yourself, turn off automatic installs in poggy_core's config (PoggyCoreConfig.Sql.AutoInstall = false) and import the script's sql/install.sql by hand.

Configuration#

Every setting can be changed in game in /poggy → Auction House. You can also edit config.lua and translations.lua by hand. Restart the script after a change to its settings.

The hub's tabs are: Locations, Auctions, Supply catalogue, Want requests, Notifications & Discord, Text & language, and Advanced.

Auction houses

Each auction house is one row in Locations → Auction houses (Config.Locations): a name, a position, the auctioneer's model and pose, and a map blip you can turn off. To add one, stand where the auctioneer should stand, press Add auction house, then use my position. Listings and mailboxes are shared by every auction house, so removing one loses nothing.

SettingDefaultWhat it does
Prompt distance2.5 mHow close a player must stand to the auctioneer to see the open prompt.
NPC spawn distance50 mThe auctioneer appears when a player comes this close and is removed when they leave.
Open keyGThe key that opens the auction house (Config.Interaction.Key, a RedM control hash).

Auctions

SettingDefaultWhat it does
Listing durations2 h (5%), 8 h (10%), 24 h (15%), 48 h (20%)The lengths a seller can pick, each with its deposit percent.
Charge a listing depositOnThe seller pays the duration's deposit percent of the starting price when they list. It is not refunded, even if the item sells or the listing is cancelled.
Sales tax5%Taken from the seller's money when a listing sells. 0 lets sellers keep everything.
Lowest starting bid$0.50The smallest starting price allowed.
Highest starting bid$100,000The largest starting price allowed.
Highest buyout price$500,000The largest buy-now price allowed. A buyout must also be higher than the starting price.
Minimum bid step$0.50A new bid must beat the current one by at least this much, or by the bid step percent, whichever is bigger.
Bid step percent5%The percent version of the bid step. 0 uses only the dollar step.
Listings per player20How many listings one character may have running at once.
Mailbox limit50A character with this many uncollected mailbox entries cannot list anything new until they collect. Sales, refunds and deliveries still reach the mailbox.
Allow cancelling with bidsOffWhen off, a listing that has received any bid must run to the end.
Expiry check interval60 sHow often finished listings are settled. A listing can end up to this long after its timer shows zero.
Items that cannot be listedid_card, weapon_licenseItem names that can never be auctioned or requested.

Browse categories

The Browse tab's category filter is built from your framework's item list. Each item has a group: on VORP it is the item's group number (stock 1 to 11, already set up); on RSG it is the item's category word, such as weapon_revolver. Auctions → Browse categories says which groups land in each category, and a word ending in * matches every group that starts with it (weapon_* covers every weapon). A group you have not listed still shows, as a category of its own.

  • Icons for unlisted groups gives such a group an icon without a full row.
  • Item category overrides moves one item into a category: the key is the item name, the value a category key such as ammo.
  • QBCore RedM items carry no group, so on QBCore RedM every item lands in Default unless you move it with an override.

A listing remembers its category key. If you rename a key, listings already running stop showing under it.

Supply catalogue

Players order raw goods from six suppliers: lumberjacking, mining, farming, hunting, fishing and crafted. Add or change items in Supply catalogue → Catalogue items and suppliers in Suppliers. A catalogue item only shows when its item name exists on your server, so items you do not have are simply left out. A few of the shipped entries are not stock items and come from other scripts; config.lua lists them.

SettingDefaultWhat it does
Shipping fee12%Added on top of every order, as a percent of its price.
Open orders per player10Undelivered orders one character may have at once.
Largest order50The most units of one item a single order may ask for.
Price swing5%Prices move up or down by up to this much each time the catalogue opens. 0 keeps them fixed.
Deliver to Poggy Markets shopsOnWith poggy_markets running, lets players send an order into a shop's storage. Off sends every order to the mailbox.
Processing5 to 15 minFirst stage. The player can cancel for a full refund.
In transit5 to 15 minSecond stage. No cancelling.
Out for delivery5 to 10 minLast stage, then the goods arrive.
Stage check interval60 sHow often orders move to their next stage.

Each stage takes a random number of whole minutes between its shortest and longest time. Keep each shortest time at or below its longest.

Allow cancelling while processing (Config.Shipment.AllowCancelProcessing) is not used: players can always cancel an order while it is still Processing.

Want requests

SettingDefaultWhat it does
Seller tax8%Taken from the pay of a player who fills a request.
Open requests per player10How many requests one character may have open.
Lowest pay per unit$0.01The smallest price per unit a request may offer.
Highest pay per unit$50,000The largest price per unit a request may offer.
Largest request500The most units one request may ask for.
Request durations4 h, 12 h, 24 h, 72 h, PersistentThe lengths a player can pick. A row with 0 hours (Persistent) never expires.
Expiry check interval120 sHow often expired requests are closed and their unused money refunded.

Notifications and Discord

SettingDefaultWhat it does
Notification time5000 msHow long auction messages stay on screen.
Discord loggingOffPosts auction events to a Discord channel. Nothing is sent while the webhook is still YOUR DISCORD WEBHOOK HERE.
Webhook URL(placeholder)Create a webhook in the channel's settings under Integrations and paste its URL.
Bot name, Bot avatar, Embed colourAuction House, empty, amberHow the messages look. The colour is a decimal number, not hex.
Events to postAll onNew listings, sales, bids, expired listings and cancelled listings, each on or off. Busy servers may want bids off.

Text and language

Every message and every word in the auction house window lives in translations.lua. English ships; to add a language, copy the English table, give it a new name and set Language to it. Missing lines fall back to English.

Commands#

CommandWhoWhat it does
/auctionrefreshAdmins, server consoleSettles every listing whose time has run out, now, instead of waiting for the next check.
/auctionpurgeAdmins, server consoleCancels every active listing on the server. The items in them are not returned to anyone. To cancel one listing and give its item back, use Live auctions in /poggy.
/auctiondiscordAdmins, server consoleSends a test message to the Discord webhook. Discord logging and the "New listings" event must be on.
G at an auctioneerEveryoneOpens the auction house. Change the key with Open key.

/auctionpurge cannot be undone and destroys the listed items. Use it only to wipe the market.

Permissions#

Players need no permission. Anyone can open an auction house, list, bid, order and post requests.

The admin commands are for characters whose group is exactly admin, superadmin or god. This list is fixed in the script, and every command also works from the server console.

  • VORP: the character's group in VORP.
  • RSG Core and QBCore RedM: the player's highest permission level, granted with ACE in server.cfg. It must be admin or god. On RSG, a player whose highest level is developer or headadmin does not count as an admin here.

The staff tables and settings in /poggy follow poggy_core's hub roles: whoever may edit Auction House in the hub can use them. See Poggy Core.

Shop delivery is decided by Poggy Markets: a shop's owner, and staff whose role lets them deposit items, may send orders into its storage.

Using it in game#

Walk up to an auctioneer and press G. The window has these tabs:

TabWhat it does
BrowseEvery live auction from every auction house. Filter by category, search and sort. Bid, or buy it now when the seller set a buyout price.
SellList an item from your satchel. Set a starting price, an optional buyout and how long it runs. Longer listings take a bigger deposit.
My Auctions / My BidsYour own listings, and whether you are winning or outbid.
MailboxWinnings, sale money, outbid refunds, returned items and deliveries. Collect one at a time, or all at once.
Order CatalogueOrder raw goods. Each order goes through Processing, In Transit and Out for Delivery, then arrives in the mailbox or a Poggy Markets shop.
Want RequestsPost a buy order, or fill someone else's.

Selling

  1. Open Sell and pick an item from your satchel.
  2. Set a starting price, a buyout if you want one, and a duration. The deposit is taken in cash when you list, and the item leaves your satchel.
  3. When the time runs out, the highest bidder wins. The item goes to their mailbox and the money, minus the sales tax, goes to yours.
  4. If nobody bid, the item comes back to your mailbox.

You can cancel your own listing while it has no bids (or at any time, if the server allows cancelling with bids). The item comes back to your mailbox; the deposit does not.

Bidding and buying

Bids and buyouts are paid in cash, straight away. When someone outbids you, your money goes back to your mailbox at that moment. A buyout ends the listing at once and the item goes to the buyer's mailbox.

The mailbox

Everything comes through the mailbox, even while you are offline. If your satchel is full, an item stays in the mailbox until you make room. Keep it emptied: when it holds too many entries (50 by default) you cannot list anything new.

Ordering supplies

  1. Open Order Catalogue, pick a supplier and an item, and set the quantity.
  2. The price is the unit price times the quantity, moved by the price swing, plus the shipping fee. It is paid in cash.
  3. With Poggy Markets running, you may type a shop's ID in Deliver to Shop ID (the ID is shown at the top of the shop's manager). Leave it empty for the mailbox. If the shop is full when the order arrives, it goes to your mailbox instead.
  4. While the order is still Processing you can cancel it for a full refund.

Want requests

  1. Post a request: the item, how many, the price per unit and how long it stays open. The full amount is taken from your cash and held.
  2. Other players fill it, all at once or a few at a time. They are paid in cash as they hand items over, minus the seller tax, and the items go to your mailbox.
  3. When the request ends or you cancel it, any money not spent comes back to your mailbox.

Staff tools in /poggy

Open /poggy → Auction House. Three tables show what players are doing right now. Changes apply at once, with no restart, and money and items go where the game would send them: the player's mailbox. Players who are online get a message.

TableTabWhat you can do
Live auctionsAuctionsCancel a listing and return its item to the seller (the leading bid goes back to its bidder; the deposit is kept). Extend a listing by 1 to 720 hours. Open a listing to see its bids and remove one.
Shipment ordersSupply catalogueCancel and refund, while the order is still Processing. Deliver now, which skips the remaining stages.
Want requestsWant requestsOpen a request to see who filled it. Cancel and refund the unspent money to the requester.
  • Only the leading bid holds money. Removing it refunds that bidder, and the listing has no bid. Removing an older bid only tidies the history; no money moves.
  • A row tinted yellow has run out of time and will be settled at the next check, or run /auctionrefresh.
  • Every change is saved in the hub's History and printed in the server console. Cancelling a listing and removing a leading bid also go to the Discord log when it is on.
  • If a player acts on the same row at the same moment, the hub refuses your change and asks you to refresh. Nothing is paid twice.

Troubleshooting#

The auction house opens with no categories, or says a table does not exist.

Update poggy_core. The categories come from poggy_core's item list.

A catalogue item is missing.

Its item name does not exist on your server. Add the item to your framework, or change the catalogue entry to an item you have.

Discord messages do not arrive.

Turn on Discord logging and paste a real webhook URL. Test with /auctiondiscord; it posts as a "New listings" event, so keep that event on.

A listing's timer reached zero but it has not ended.

Listings are settled every Expiry check interval (60 seconds by default). Run /auctionrefresh to settle them now.

Players cannot list anything.

Check they are under Listings per player (20) and under the Mailbox limit (50 uncollected entries). Ask them to collect their mailbox. Also check the item is not in Items that cannot be listed.

A seller cannot cancel their listing.

It has had a bid. With Allow cancelling with bids off, it must run to the end. Staff can still cancel it from Live auctions in /poggy.

An admin gets "No permission." from the commands.

The commands only accept the groups admin, superadmin and god. On RSG Core and QBCore RedM the player's highest ACE level must be admin or god. Use the server console if needed.

"Shop delivery is not available" or "You don't have storage access".

Shop delivery needs poggy_markets running and Deliver to Poggy Markets shops on, and the player must be the shop's owner or staff allowed to deposit items. Leave the shop box empty to use the mailbox.

Updating#

Auction House updates through poggy_core's updater, which keeps your settings and translations. See Updating Poggy scripts.

New database columns are added automatically when the script starts. Version 1.3.3 needs nothing extra; for the Poggy theme on the auction house window, use poggy_core 0.23.0 or newer.

Join the Discord Discord