# ποΈ AndreStorageLockers | Purchasable PIN-Protected Storage Lockers | QBCore
> A fully featured purchasable storage locker system with PIN code protection. Admins place and configure lockers in-world via a live placement tool. Players buy, PIN-protect, and access their own persistent storage β no job required.
---
## β¨ Features
-
π **Purchasable Lockers** β Players buy unclaimed lockers directly in-world for a configurable price.
-
π’ **PIN Code Protection** β After purchase, players set a 4-digit PIN. Required every time they open their locker.
-
π **Change PIN** β Players can update their PIN at any time from the locker menu.
-
π **Live In-World Placement** β Admins use `/createlocker` to open a panel, configure the locker, and place it via a crosshair raycast marker. Live immediately β no restart needed.
-
βοΈ **Per-Locker Configuration** β Each locker has its own name, price, slot count, max weight, raidable toggle, and for-sale toggle β all set at placement time.
-
ποΈ **ox_inventory Stash Storage** β Persistent storage per player. Items save between sessions.
-
π― **ox_target Interaction** β Clean third-eye interaction to buy, open, or change PIN.
-
π οΈ **Admin Commands** β `/createlocker`, `/deletelocker`, `/reloadlockers`
-
π **Notification Support** β Compatible with `ox_lib`, `qb-notify`, and `esx_notify`.
-
βοΈ **Simple Config** β Interaction distance, slot defaults, admin groups, and notification style all in one `config.lua`.
---
## π Requirements
| Dependency | Notes |
|---|---|
| `qb-core` | Core framework |
| `oxmysql` | Database |
| `ox_lib` | UI, zones, notifications |
| `ox_target` | Third-eye interaction |
| `ox_inventory` | Locker stash storage |
---
## π¦ Installation
1. Drop `AndreStorageLockers` into your `resources` folder
2. Run `andre_storage_lockers.sql` in your database (or let the resource auto-create tables on first start)
3. Add to `server.cfg`:
```
add_ace qbcore.admin AndreStorageLockers.admin allow
ensure oxmysql
ensure ox_lib
ensure ox_target
ensure ox_inventory
ensure qb-core
ensure AndreStorageLockers
```
4. Configure `config.lua` to your liking
5. Use `/createlocker` in-game to place and configure lockers
---
## π¬ Support
Join our Discord for installation help: Click here >Β Discord
---
*Escrowed resource β core logic is protected. `config.lua` remains fully open for customisation.*