NullSect
Systems nominal

Docs / House Robbery / Configuration

Configuration — ns-houserobbery

Everything is in config.lua (left readable by the escrow). Chances are 0.0 .. 1.0, times are in the unit the key name says (Ms, Seconds, Minutes, Hours), money is whole dollars.

General

KeyDefaultMeaning
Config.Framework'auto''qbox' / 'qbcore' / 'esx' / 'standalone'
Config.Locale'en''en' or 'tr' (add locales/<code>.lua for more)
Config.Debugfalsedebug log + /hrcontract, /hrtest for admins
Config.UseOxLib, Config.UseOxTarget, Config.Inventorywhich optional resources are used
Config.Features.*all trueLockpick, Crowbar, Alarm, Residents, Safe, Pickups, Unplug, Crew, Fence, Progression, PoliceEntry, OpenHouse
Config.Jobrequired = falseoptional job lock for burglars
Config.Police.jobs{ 'police' }who counts as police (alerts, minimum on duty)
Config.Police.minOnDutylow 0, mid 1, high 2police on duty needed per house type

Items

KeyDefaultMeaning
Config.Items.lockpick / advancedLockpicklockpick / advancedlockpickdoor items (advanced is used first)
Config.Items.crowbar'ns_hr_crowbar'crowbar item, false = no crowbar
Config.Items.listenUseEvent'lockpicks:UseLockpick'server event other resources fire when a lockpick is used
Config.Items.lootstolen goods: price (fence base price), big = true + prop for carried items, optional carry = { bone, offset, rotation }
Config.LootPoolsdrawer, wardrobe, kitchen, desk, safeweighted tables: { item, weight, min, max }

Contracts

KeyDefaultMeaning
hours21 → 5game hours the informant gives jobs (wraps midnight)
travelMinutes30time to open the door before the job expires
lootMinutes15time inside after the door is open (then the job ends: completed with loot, expired without)
leaveDistance60.0the job also ends once the whole crew is out of the house, this many metres from the door and not carrying a big item (completed with loot, off without). false = only the door option and lootMinutes
leaveCheckMs3000how often the server checks that while a house is open
houseCooldownMinutes60a house is not given out again for this long
playerCooldownMinutes20every member waits this long after a job ends (also after a cancel)
informant, informantModel, informantDistancewhere the informant stands

House types (Config.Tiers.low / mid / high)

Keylow / mid / highMeaning
minLevel1 / 5 / 12burglar level that unlocks the type
xp, safeXp20 / 40 / 75, 0 / 15 / 30XP for every member who went inside a completed job, extra XP for cracking the safe
lockpickpins 1 / 2 / 3 …pins, toleranceDeg, falloffDeg, pickHealth, timeMs
crowbarMs6000 / 7500 / 9000crowbar time
panel3 / 4 / 5 digitsdigits, attempts, timeMs, repeatChance (chance a digit repeats an earlier one)
safe2 / 3 / 4 numbersnumbers, tolerance, falloff, timeMs, cash = { min, max } (timeMs is per attempt: the set numbers stay on the safe, a new attempt gets a new clock; the noise of every listen is what limits trying)
alarmChance, safeChance0.25 / 0.6 / 0.9, 0 / 0.4 / 0.85chance a house has an armed alarm / a safe (needs the point)
residents0–1 / 1–2 / 1–3sleeping residents (needs bed points)
noiseWake70 / 60 / 50noise level that wakes them
searchItems1–2 / 1–3 / 2–3loot picks per searched spot
illegalMinLevel0 / 5 / 10ns-illegal career level that unlocks the type while ns-illegal runs (instead of minLevel)
KeyDefaultMeaning
illegal'auto''auto': while ns-illegal is started, its career level counts (tiers, minigame bonus), its house contacts give contracts and completed contracts are reported for career XP (house_robbery by house tier, house_safe for the safe cracker; the amounts live in ns-illegal). false: never. The burglar XP keeps counting either way.
unregisteredLowOnlytruelinked, but the player has no Dark Tablet name: only the cheapest type and no career XP (false: their local burglar level counts)

Lock, noise, residents

KeyDefaultMeaning
Config.LockpickmaxDistance, minTurnMs, stressDamage, advanced = { toleranceMul, healthMul }, breakRemovesItem, retryCooldown
Config.Noise.max / decayPerSecond100 / 3scale and how fast it calms down
Config.Noise.sampleMs500how often the server measures moving burglars (only while a house is open)
Config.Noise.walkSpeed / walkPerSecond0.5 / 0.5walking: almost silent
Config.Noise.jogSpeed / jogPerSecond2.5 / 4the normal pace (W): quiet, adds up next to a bed
Config.Noise.sprintSpeed / sprintPerSecond5.8 / 22sprinting (Shift): very loud
Config.Noise.landingSpeed / landing4.0 / 8landing after a jump or a fall
Config.Noise.near / far / farMul4.0 / 14.0 / 0.2a resident hears a noise fully up to near m, farMul of it from far m on
Config.Noise.floorHeight / floorMul2.5 / 0.5a noise from another floor counts half
Config.Noise.stirShare / settleShare / stirMul0.6 / 0.3 / 1.5a sleeper stirs at 60 % of the tier's noiseWake, falls asleep again below 30 %, hears 1.5x while stirring
Config.Noise.wakeShout45noise a resident makes at their bed when they wake up
Config.Noise.safeProbe / panelWrong / pickupDrop / crowbarEntry3 / 5 / 15 / 35noise per action
Config.Residents.behaviour[tier]weights of flee, call, fight
Config.Residents.weaponChance[tier], weapons, modelsarmed residents and their looks
Config.Residents.watchMs500client: how often a player inside checks the resident peds it shows (only inside)
Config.Alarm.sirentruea triggered alarm sounds until the job ends (false = silent: only the police alert and the LED)
Config.Alarm.volume0.6siren volume inside the house (0..1); outside it fades with the distance to the door
Config.Alarm.doorRadius35.0metres around the street door where players outside hear it
Config.Alarm.wakeNoise100the siren's noise, heard in the whole house: 100 (Config.Noise.max) wakes everyone, 0 nobody
Config.Alarm.checkMs1500how often the server looks for players near a sounding door (only while one sounds)

Police reports

KeyDefaultMeaning
Config.Dispatch.provider'auto'ps-dispatch, cd_dispatch, rcore_dispatch, core_dispatch, builtin, custom, none
witness.lockpick[tier] / witness.crowbar[tier]0.05–0.15 / 0.4–0.6a neighbour sees the break-in
alarm1.0chance the silent alarm reaches the police
resident[behaviour]flee 1, call 1, fight 0.5chance a woken resident calls (once per house)
alertOffset, alertBlipSeconds15–50 m, 90police get the area, not the door
customfunction(coords, kind, message) return true end with provider = 'custom'

Once a house is reported, on-duty Config.Instance.serviceJobs see its door (Features.PoliceEntry).

With Features.OpenHouse anyone may walk into a house whose door a crew has opened. Guests keep what they find (search, safe, big items) but get no XP, no share of the job and no ns-illegal career XP. Set it to false to keep houses for the crew (and the police) only.

Safe, search, big items

KeyDefaultMeaning
Config.SafeminProbeMs 400, cashAccount 'cash', pool 'safe'listen rate, where safe cash goes, loot table
Config.Search.timeMs[type]60000–75000the spot types (drawer, wardrobe, kitchen, desk) and how long the search window may stay open
Config.Search.quietMs[type] / rushNoise[type]3000–4000 / 12–22taking something sooner than quietMs after opening is a rush and makes rushNoise
Config.Search.minTakeGapMs300time between two items taken
Config.Search.noisecreak 6, slam 12, rattle 5, clink 8, drop 10, paper 1, lid 8noise of fast moves in the search window (× how fast, 0..1)
Config.Search.noiseCapPerOpen / maxPulses60 / 16most noise one opening can add / noise reports per message
Config.Search.minMsShare0.85the crowbar: the server accepts it after this share of crowbarMs
Config.PickupsloadDistance, pickupDistance, loadControl (E), dropControl (X), carry
Config.Pickups.dropReach1.5metres: a dropped item lands on the floor this close in front of the player
Config.Unplug.rigs[item]TV, microwave, speaker, PC, paintingbig items with cables: scene (tv, microwave, speaker, pc, painting), always cables, extraCount min..max more from extra. An item without a rig is taken at once
Config.Unplug.cables[kind]how, quietMs 700–2000how: pull / latch (press the tab first) / screw (turn it loose first) / lift (off a hook); a cable pulled sooner than quietMs after the previous one is a rush
Config.Unplug.timeMs / rushNoise / minPullGapMs45000 / 8 / 250how long the window may stay open / noise of a rushed cable / time between two cables
Config.Unplug.noiseyank 10, rattle 6, clatter 8, scrape 3noise of fast moves in the unplug window (× how fast, 0..1); clatter = pulling another device's plug
Config.Unplug.noiseCapPerOpen / maxPulses45 / 16most noise one opening can add / noise reports per message

Editor (/hredit)

KeyDefaultMeaning
Config.Editor.range40.0metres: points must stay this close to the interior entry (the camera may fly 5 m further)
Config.Editor.camerafov 60, speed 3.0, fast 4.0, slow 0.25, look 0.25free camera: field of view, m/s, Shift / Alt factors, degrees per pixel
Config.Editor.models[item / kind]TVs, microwaves, paintings, speakers, PCs, keypads, safesprop choices shown in the editor per big item (ns_hr_tv ...) and for panel, safe, search; any other model name can be typed in

Fence

KeyDefaultMeaning
locations3 exampleswhere the buyer may stand (vector4)
hours22 → 6game hours he is there
rotateHours6real hours between moves (prices change with it)
variance0.15prices ±15 % around Config.Items.loot[item].price
dailyLimit25000money per character per real day (server date, kept in the database across restarts), 0 = no limit
account, hintMinutes, model, distancepayout account, GPS hint time after a job

Crew, progression, instance, clock

KeyDefaultMeaning
Config.CrewmaxSize 4, inviteSeconds 30, inviteDistance 5.0
Config.ProgressionxpPerLevel 100, maxLevel 30, maxBonusLevels 20+ per-level minigame help: toleranceDegPerLevel, panelMsPerLevel, safeTolerancePerLevel
Config.Instance.bucketBase7300routing buckets bucketBase + n are used for open houses
Config.Instance.serviceJobspolice, ambulancemay enter a reported house
Config.Instance.fallbackSpawnLegion Squarecrash recovery when a house no longer exists
Config.Clock.provider'auto''auto' / 'renewed' / 'globalstate' / 'real'

Interiors and houses

Config.Interiors.<name> = { tier, entry = vector4, search = { { coords, type } }, pickups = { { coords, heading, item } }, panel = {}, safe = {}, beds = {} }; every point but a bed may add model = '<prop>' (spawned there during a job). Place and move points in game with the editor, /hredit (see INSTALLATION): its changes are saved in the database and override the config entries, the file itself is never written. Config.Houses = { key, tier, interior, door = vector4 }; more with /hrhouse add.

Look and feel

Config.Anims (lockpick, crowbar, search, panel, safe, carry, unplug, sleep, stir, phone), Config.Blips, Config.Ui (volume, showLevel), Config.Notifications, Config.Target.

Cart

Your cart is empty.