Kartik Scripts

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 point

Stashes

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,
}

→ CCTV Cameras

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',
    },
}

→ Security Subsystem

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 -- seconds

→ Items · Renting & Leases

Walk-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 interiors

→ Property Types

Misc caps

Config.MaxAllotment = 500   -- absolute ceiling on interior allotment
Config.MaxFurniture = 60    -- max furniture pieces per property
Config.PreviewSeconds = 60  -- viewing-key / preview duration

On this page