π srv-pawnshop β Pawnshop / Stolen Goods Buyer
A polished pawnshop where players turn stolen goods and drugs into cash or dirty money. Ships with its own custom NUI β live search, an "only what I own" filter, item images and inventory totals. Every sale is validated server-side: distance, job, amount and cooldown are all re-checked before a single item changes hands.
Built to drop into any setup β it auto-detects your framework, target and inventory, so there is usually nothing to configure beyond the item list.
β¨ Highlights
- π₯οΈ Custom NUI shop β live search, "only owned" filter, item images and a running inventory value
- π Auto-detects everything β framework, target and inventory are found on start; no manual wiring
- π§© Three menu styles β the built-in NUI, ox_lib context menu or qb-menu, switchable in one line
- π Unlimited locations β add as many pawnshop NPCs as you like, each with its own model, scenario and job rule
- π Per-NPC job locking β leave it empty for everyone, or restrict a spot to one job or a list of jobs
- π΅ Item, money or dirty money payouts β pay in marked bills, a custom item, or straight to cash/bank
- π Discord logging β sales and security violations (out-of-range selling, unauthorized job, invalid amounts) as clean embeds
- π Webhook via convar β keep the URL out of the files entirely with
set srv_pawnshop_webhook "..." - π Turkish & English included β plain JSON locale files, add your own language by copying one file
- π‘οΈ Server-authoritative β distance, job, stock and amount checks all run on the server
π‘οΈ Security
The sale flow was written assuming the client is hostile:
- Distance check on the server β a spoofed client cannot sell from across the map (
Config.MaxUseDistance) - Job re-validated server-side β the target menu check is convenience only, the server decides
- Amount validation & cooldown β negative, fractional and oversized amounts are rejected; a configurable cooldown sits between sales
- Rollback on failure β if the payout cannot be delivered, the sold items are returned
- Notification whitelist β the client only renders known message keys, so nothing arbitrary can be pushed to a player's screen
- Violation logging β every rejected attempt can be sent to Discord, so you can spot cheaters early
βοΈ Requirements
- FiveM server (fx_version
cerulean) - ox_lib (required β used for callbacks and notifications)
- Framework: QBox, QBCore or ESX β or run it standalone with ox_inventory
- Target: ox_target or qb-target
- Inventory: ox_inventory, qb-inventory or your framework's own inventory
A job requirement on any NPC needs a framework. With every
jobleft empty the script runs standalone.
π What Stays Open
These files are escrow-exempt and ship fully readable β configure the script without touching protected code:
config.luaβ locations, items, prices, distances, cooldown, menu styleserver/config.luaβ webhook, payout type, dirty money, limitslocales/*.jsonβ every piece of text the player sees, in plain JSON
The NUI files (
script.js,style.css,index.html) ship minified and obfuscated to protect the interface. They are not encrypted, so colour tweaks are still possible, but the UI is not intended to be rebuilt.
π Installation & Documentation
Full setup, all config options and framework notes: https://sorvia.net/dokumanlar/srv-pawnshop
π¬ Support
Stuck during setup or have a suggestion? Reach us on our Discord support server.
