Store / Pin Protected Backpack Storage [ESX]
PIN protected backpack with persistent ox_inventory storage
Give your players a backpack that's actually secure. Every bag gets its own 4-digit PIN, its own persistent stash and automatic backups, so nothing gets lost.
Features
- PIN protected storage: each backpack is locked behind a personal 4-digit PIN, salted and hashed, never stored in plain text
- Persistent ox_inventory stash: contents are saved per backpack and survive restarts
- Remember this device: players can skip the PIN on their own device, with a configurable lifetime
- Owner lock (optional): only the first owner can unlock and open a bag
- Backpack rules: limit players to one backpack and block backpacks inside backpacks
- Automatic backups: on open, on a timer and on resource stop
- Discord logging: created, PIN set, unlock success or fail and denied attempts, each toggleable
- Backpack prop: shown on the player's back while they carry the item
- Modern PIN menu: clean NUI with animations
Fully configurable from one file
Everything is in config.lua:
- All UI text: titles, labels, buttons, footer and error messages
- All UI colours: change one hex value and the whole menu follows
- UI image: drop in your own PNG and set its name in the config
- Item, stash size and weight, prop, security, backups, logs and notification messages
Requirements
- ox_lib
- ox_inventory
- oxmysql
Installation
- Put
peysoh_backpackin your resources folder - Add the item to
ox_inventory/data/items.lua(snippet in the README) - Copy the included item icon into
ox_inventory/web/images/ - Add
ensure peysoh_backpackto yourserver.cfgafter ox_lib, oxmysql and ox_inventory - Restart. The database tables are created automatically, so there's no SQL to import.
Details
| Framework | Standalone (ox_inventory based) |
| Database | Auto-created (oxmysql) |
| Config | Open config.lua |
| Code | Escrow protected (Cfx.re Asset Escrow) |
| Item icon | Included |
| Documentation | README with full setup |



