Skip to content

Customization

One file decides everything you can change: config.lua. The rest is the app’s screens and the escrowed logic.


FileWhat it decidesOpen to edit
config.luaFramework, image path, expiry, payments, the pawn shop location, marker, blip, clerk, blacklist, every notification text, the app’s nameYes
pawnshop.sqlThe three tables, imported onceYes
web/index.html, web/styles.css, web/script.jsThe app’s screens, layout and labels—
web/assets/pawn.pngThe app iconYes
web/assets/fries.pngThe picture shown when an item has no imageYes
client/main.lua, server/main.luaThe logicEscrowed

There is no bridge folder and no locales folder: the framework is one option below, and the text lives in config.lua.


OptionWhat it doesDefault
Config.Framework"esx" or "qb", lower case. On QBox, use "qb" — QBox runs QBCore resources through its compatibility layer"esx"
Config.InventoryImagePathThe folder item pictures are read from, as resource/folder/. For qb-inventory, "qb-inventory/html/images/""ox_inventory/web/images/"
Config.ExpireDays an offer stays up. Changing an offer’s price starts the count again7

OptionWhat it doesDefault
Config.Banktrue: buyers pay from their bank and sellers cash out to their bank. false: both use the item in Config.Moneytrue
Config.MoneyThe inventory item used as money when Bank is off — money, black_money or your own"money"

With Bank off, the money has to be an inventory item, which is how ox_inventory keeps cash. On ESX’s own inventory and on QBCore, cash is an account rather than an item, so keep Config.Bank = true there.

Money from a sale does not reach the seller directly. It is added to their Pending balance in the app, and they move it out with the transfer button.


OptionWhat it doesDefault
Config.RequireLocationtrue: creating and buying offers has to be finished at the pawn shopfalse
Config.PawnShopLocationWhere the pawn shop is: x, y, z and the clerk’s heading412.17, 315.11, 103.13, heading 194.62
Config.InteractionDistanceHow close, in metres, the player must be to press E. The server checks it too1.0
Config.MarkerThe marker at the door: Type, Scale (x, y, z) and Color (r, g, b, a)Type 20, dark blue-grey
Config.BlipThe route blip: Sprite, Color, Scale480, 32, 1
Config.NPCThe clerk’s ped Model and the hand-off animation (Dict and Name)a_m_m_business_01, mp_common / givetake1_a

How it plays with RequireLocation on: the player fills in the offer or taps buy, the phone sets a route to the pawn shop, and the marker appears when they are within 20 metres. Pressing E at the marker brings the clerk out for the hand-off, and the trade goes through.

The blip and marker only exist while a player has something to finish there; there is no permanent blip on the map. With RequireLocation off, none of this is used.

Config.Blip.Name is not used for the blip’s label — that comes from Config.Messages.blip_name.


Config.BlackList is a list of item names that can never be listed. They are left out of the item picker, refused by the server, and any existing offer for one is removed from the board — with its items — the next time someone opens the app. Shipped with burger and weapon_appistol as examples.


There is no locales folder. All the text you can change is in config.lua, in English:

OptionWhat it holds
Config.locales.en.app_nameThe app’s name on the phone, and the title of its notifications
Config.locales.en.app_descriptionThe line under it in the App Store
Config.MessagesEvery notification: offer created, purchased and deleted, missing fields, failures, “go to the pawn shop”, the E prompt and the blip name

To play in another language, translate those strings in place. A few server answers — “Insufficient items”, “Inventory full”, “This item cannot be listed for sale”, “You do not own this offer” and similar — are fixed in the escrowed server file and stay in English.

On ESX, notifications arrive as lb-phone notifications from the app. On QBCore they use the framework’s own notification.


The app shows each item as <Config.InventoryImagePath><item name>.png, read directly from your inventory resource. If a picture is missing, web/assets/fries.png is shown instead; replace that file to change the fallback.