Properties & Features
Properties & Features
Core property, fit-out, camera, security and doorlock settings live in
shared/properties.lua. The related feature pages explain the behaviour; this
page is the config reference.
Starting defaults
New properties start with these unless overridden by block/creator settings:
Config.PropertyDefaults = {
stash = { slots = 40, weight = 200000 },
garageSlots = 2,
wardrobeSlots = 4,
}
Config.GaragePreviewVehicle = 'sultan' -- ghost shown when placing a garage pointStashes
Config.Stash = {
Mode = 'both', -- 'furniture' (props) | 'points' (markers) | 'both'
PerItemMax = false, -- false or a number capping slots per single stash
GlobalCap = { -- fallback caps when a block sets none
stashSlots = 200, stashWeight = 2000000, stashPieces = 10, wardrobeSlots = 20,
cameras = 4, motionSensors = 6, alarmTierMax = 3, doorReinforceMax = 4,
},
}→ Stashes
Feature fit-out pricing
Flat and per-slot charges applied when fitting features (0 = free).
Config.FeaturePricing = {
stash = { enable = 0, perSlot = 0 },
wardrobe = { enable = 0, perSlot = 0 },
garage = { enable = 0, perSlot = 0 },
}Wardrobe
Config.Wardrobe = { Mode = 'both', MaxPoints = 2 } -- 'furniture' | 'points' | 'both'
Config.Clothing = { Mode = 'internal', OutfitGlobalCap = 12 } -- 'internal' | 'external'→ Wardrobe
Cameras
Config.Cameras = {
enabled = true,
fov = 55.0,
pitch = -8.0,
props = { 'prop_cctv_cam_04a', 'prop_cctv_cam_01a', /* … 9 models … */ },
lensOffset = { default = 180.0 }, -- GTA CCTV props model the lens out the rear
peekRadius = 3.0,
}Security
Config.Security = {
AlarmTiers = {
[1] = { label = 'Local Alarm', price = 1500, dispatch = false },
[2] = { label = 'Monitored Alarm', price = 5000, dispatch = true },
[3] = { label = 'Reinforced Suite', price = 12000, dispatch = true },
},
MonitoredTier = 2, -- tier ≥ this auto-subscribes the 'security' service
MonitoredService = 'security',
Reinforce = {
pricePerCharge = 2500,
picksPerCharge = 1, -- extra successful picks needed per charge
breachWindow = 45, -- seconds to land the picks
raidBreachTime = 12000, -- ms breaching action for police raids
},
Motion = { radius = 6.0, velocity = 0.4, cooldown = 60, blipDuration = 30 },
Circuit = {
Enabled = true,
CutDuration = 240, -- seconds power stays cut
TamperTime = 6000, -- ms to tamper the breaker
ShockChance = 0.35,
ShockDamage = 20,
AlertOnCut = true,
Allow = 'circuit',
},
}Keys, lockpicking & physical keys
Config.PhysicalKeys = { enabled = false, item = 'property_key', requireDatabaseAccess = true }
Config.FurnitureAsItems = false
Config.EntranceMaxDistance = 5.0
Config.KeyExpiryOptions = { 0, 3600, 86400, 604800 } -- 0 = permanent
Config.LockpickItem = 'lockpick'
Config.LockpickCooldown = 300 -- secondsWalk-in doorlocks & raids
Config.Doorlocks = { MaxDoors = 8, MaxDoorDistance = 60.0, Autolock = 300 }
Config.RaidRequiresWarrant = true
Config.PoliceJobs = { police = 0 }
Config.BucketBase = 2000 -- routing bucket base for instanced interiorsMisc caps
Config.MaxAllotment = 500 -- absolute ceiling on interior allotment
Config.MaxFurniture = 60 -- max furniture pieces per property
Config.PreviewSeconds = 60 -- viewing-key / preview duration