Skip to content

Configuration

The main settings are located in rs_multistorage/shared/config.lua. Container delivery, optional heists, and the phone app each have their own configuration file.

Auto-detection works for the supported systems, or each bridge can be selected manually:

shared/config.lua
Config.Framework = { type = 'auto' }
Config.Inventory = {
type = 'auto',
stashIdPrefix = 'multistorage_'
}
Config.Target = { type = 'auto' }

Each storage type has independent capacity, access, placement, breach, repair, and burial settings:

shared/config.lua
Config.StorageTypes = {
large_safe = {
label = 'Large Safe',
placementItem = 'large_safe',
slots = 120,
maxWeight = 600000,
accessMode = 'key_or_password',
playerPlaceable = true,
ownerCanRemove = true,
policeBreachable = true,
canBeBuried = false,
canBeRepaired = true
}
}

The included types are container, large_safe, medium_safe, small_safe, and portable_safe.

Configure access security, failed attempts, and the number of keys created with a new storage:

shared/config.lua
Config.Password = {
minLength = 4,
maxLength = 12,
allowAlphanumeric = true,
maxWrongAttempts = 5,
cooldownDuration = 300000,
hashPasswords = true
}
Config.Keys = {
item = 'storage_key',
initialKeyAmount = 4,
stackableKeys = true,
ownerCanCreate = true,
ownerCanCopy = true,
ownerCanRevoke = true
}

Control placement distance, surface restrictions, collision checks, and portable-safe burial:

shared/config.lua
Config.Placement = {
maxGroundAngle = 30.0,
maxPlacementDistance = 6.0,
forbidWater = true,
forbidInterior = false,
forbidRoads = true,
collisionEnabled = true,
preventStacking = true
}
Config.BurySystem = {
enabled = true,
shovelItem = 'shovel',
maxBuriedPerPlayer = 5,
burialDuration = 8000,
digoutDuration = 8000,
blockWater = true,
blockIndoor = true,
blockRoads = true,
requireSoftGround = true
}

Allowed and blocked burial surfaces can be edited in shared/bury_materials.lua.

Large containers can use the included NPC delivery sequence:

shared/container_delivery_config.lua
Config.ContainerDelivery = {
enabled = true,
deliveryTime = 20 * 1000,
removeItemOnOrder = true,
maxPendingPerPlayer = 1,
disconnectBehavior = 'cancel',
npc = {
enabled = true,
model = 's_m_m_dockwork_01',
spawnDistance = 25.0,
leadTime = 10000
}
}

Use this file to customize the delivery NPC, timing, notifications, animations, and disconnect/refund behavior.

shared/config.lua
Config.PoliceBreach = {
enabled = true,
item = 'welding_tool',
allowedJobs = { 'police', 'sheriff' },
maxDistance = 3.0
}
Config.Repair = {
item = 'repairkit',
allowedJobs = { 'mechanic' },
ownerCanRepair = true,
brokenAllowsOpen = true,
policeOnlyWhenBroken = true
}
Config.Alarm = {
enabled = true,
triggerOnWrongPassword = true,
triggerOnUnauthorizedAccess = true,
triggerOnBreach = true,
notifyJobs = { 'police' }
}

The entire heist module is disabled by default and does not affect the normal storage system:

shared/heist_config.lua
Config.Heist = {
enabled = false,
RequiredPolice = {
enabled = true,
jobs = { police = true, sheriff = true }
},
Cooldown = {
target = 3600,
player = 7200,
global = 1800,
failedCooldown = 900
}
}

Before enabling heists, configure the target locations, quest NPC coordinates, buried-safe spawn points, required items, dispatch option, and loot tables.

The included app can be customized from rs_multistorage_phone/shared/config.lua:

rs_multistorage_phone/shared/config.lua
Config.App = {
identifier = 'my_storages',
name = 'My Storages',
defaultApp = true,
price = 0
}
Config.Features = {
allowWaypoint = true,
allowRename = true,
allowNotes = true,
allowCancelDelivery = true,
showFillPercent = true,
showDistance = true,
showZoneName = true,
showLastAccess = true
}
Config.ActivityLogs = {
enabled = true,
maxLogsPerStorage = 20
}

Notification types, titles, messages, stored alert limits, rename limits, notes, and buried-location privacy can also be changed in the same file.