Installation
Requirements
Section titled โRequirementsโBefore installing, make sure the required resources are running on your server:
| Dependency | Required | Purpose |
|---|---|---|
| ox_lib | โ Yes | Callbacks, dialogs, menus, and progress interactions |
| oxmysql | โ Yes | Storage persistence, logs, delivery data, and automatic migrations |
| Supported inventory | โ Yes | ox_inventory, qb-inventory, qs-inventory, or codem-inventory |
| Supported target | โ Yes | ox_target or qb-target |
| Framework | Optional | QBCore, Qbox, ESX, Standalone, or a custom bridge |
| LB Phone | Optional | Required only when using the included My Storages phone app |
Installation Steps
Section titled โInstallation Stepsโ- Extract the core resource into your serverโs
resourcesdirectory:
rs_multistorageIf you want to use the included LB Phone application, also extract:
rs_multistorage_phoners_multistorage_phone is optional. Keep the folder names unchanged when installed.
- Add the required items to your inventory. Ready-to-paste definitions are included:
| Inventory | Setup file |
|---|---|
| ox_inventory | rs_multistorage/install/items/ox_inventory.lua |
| qb-inventory / qs-inventory / codem-inventory | rs_multistorage/install/items/qb-inventory.lua |
| ESX database items | rs_multistorage/install/items/esx_items.sql |
| QB digital scanner weapon | rs_multistorage/install/weapons/qb-weapons.lua |
-
Copy the item images from
rs_multistorage/web/images/into your inventoryโs image folder. -
Add the core resource to
server.cfgin the correct order:
ensure oxmysqlensure ox_lib
# Start your framework, inventory, and target before RS Multi Storageensure rs_multistorageOnly add the following lines when using the optional LB Phone application:
ensure lb-phoneensure rs_multistorage_phone-
Restart the server. The storage and phone tables are created automatically. You do not need to import the main SQL file manually.
-
Give yourself a storage item and test placement:
/giveitem <player_id> large_safe 1Framework Detection
Section titled โFramework DetectionโThe script detects the framework, inventory, and target automatically. You can also select them manually in shared/config.lua:
Config.Framework = { type = 'auto' } -- 'qb', 'esx', 'standalone', 'custom'Config.Inventory = { type = 'auto', -- 'ox_inventory', 'qb_inventory', 'qs_inventory', 'codem_inventory', 'custom' stashIdPrefix = 'multistorage_'}Config.Target = { type = 'auto' } -- 'ox_target', 'qb_target', 'custom'The automatic priority order is:
- Framework:
qbx_coreโqb-coreโes_extendedโ Standalone - Inventory:
ox_inventoryโqb-inventoryโqs-inventoryโcodem-inventory - Target:
ox_targetโqb-target
Item List
Section titled โItem ListโThe base system uses the following items:
| Item | Purpose |
|---|---|
storage_container | Starts the NPC container delivery process |
large_safe | Places a large safe |
medium_safe | Places a medium safe |
small_safe | Places a small safe |
portable_safe | Places a portable and buryable safe |
storage_key | Metadata key connected to one storage |
shovel | Buries and recovers portable safes |
welding_tool | Police storage breaching |
repairkit | Repairs damaged storages |
The optional heist module also uses heist_welding_tool, heist_lockpick, and weapon_digiscanner.
If Config.BurySystem.giveBuriedNote remains enabled, also register the configured buried_storage_note item in your inventory.
My Storages LB Phone App
Section titled โMy Storages LB Phone AppโThe phone application is included but optional. It automatically registers itself through LB Phone when both resources are running.
ensure rs_multistorageensure lb-phoneensure rs_multistorage_phoneBy default, the app is installed on every phone. The included phone app currently resolves QBCore, Qbox, and ESX player identifiers; standalone servers require a small custom identifier adaptation in the phone resource. To make it an App Store download instead:
Config.App = { identifier = 'my_storages', name = 'My Storages', defaultApp = false, price = 500}Admin Permission
Section titled โAdmin PermissionโThe default admin command is /storageadmin. Configure framework groups or ACE permission in the main config:
Config.Admin = { command = 'storageadmin', aceGroup = 'admin', qbAdminRanks = { 'god', 'admin' }, esxGroups = { 'admin', 'superadmin' }}For standalone ACE permission, add an appropriate rule to server.cfg, for example:
add_ace group.admin admin allow