Configuration
Every config file is escrow-ignored, so you can edit it directly. Set these for your server before going live.
Config file reference
| File | Controls |
|---|---|
config/shared/tiers.lua | Per-tier loot, required tools, rewards, owner/pet/vehicle spawns, alarm, lasers, and all three minigames. |
config/shared/properties.lua | Street properties per tier (coords + interior). |
config/shared/interiors.lua, furniture.lua | Interior definitions and furniture spots. |
config/shared/trader.lua | Trader ped placement/model and the sell list/prices. |
config/shared/tablet.lua | Tablet branding (name, suffix, default accent) and open-method flags. |
config/shared/skills.lua, milestones.lua | Standalone XP curve and milestone rewards, used whenever jj-perks integration is off. |
config/server/perks.lua | enabled switches between jj-perks integration and standalone milestones mode. |
config/server/dispatch.lua | Dispatch system (defaults to auto), enabled, codes, blip, loot-noise weights. |
config/server/phone.lua | Phone push notifications: enabled, system, the phone app, and per-event toggles. |
config/server/access.lua | Allowlist toggle and robbery cooldown (default 5 min). |
config/server/groups.lua | Crew system (tablet/phone), phoneResource, max crew, reward splits, leader bonus, lookout XP. |
config/server/profile.lua | Starting coins (default 1000) and the photo-host allowlist. |
config/server/market.lua, queue.lua, contracts.lua, store.lua | Marketplace, queue, contracts and the in-tablet store. |
config/client/*.lua | Blips, noise bar, progress bars, safe and UI visuals, minigame backends. |
Required tools per tier
Door tools are defined per tier in config/shared/tiers.lua under each tier's requiredItems.list. By default every tier requires advancedlockpick.
advancedlockpick is a standard item in most economies. The store (config/server/store.lua) stocks both lockpick and advancedlockpick as examples — swap the required tool per tier if you want cheaper tiers to use a basic lockpick.
jj-perks pairing, or standalone milestones
Only applies if you install and enable jj-perks. Without it (or with enabled = false), house-robbery XP/leveling runs standalone via config/shared/milestones.lua. The tablet's Milestones tab replaces the perks progression view, and the admin tablet's Rank/XP controls write straight to the player's own profile.
Wired and enabled by default:
enabled = true,
resource = 'jj-perks',
category = 'houserobbery',Loot, contract and XP bonuses scale with the player's jjhr_r* perks. Tier gating: medium = 'jjhr_r3', garage/office = 'jjhr_r5', hard = 'jjhr_r6', extreme = 'jjhr_r10'. Edit perkBonuses / tierUnlocks to change what each perk grants.
Tablet customisation
Owner-side branding (resource name, suffix, default accent colour) lives in config/shared/tablet.lua. Each player sets their own accent on the Profile tab.
The same file has keybind and command blocks (both disabled by default) for extra ways to open the tablet, on top of the jj_robbery_tablet item.
Translation
Every player-facing string lives in locales/en.json (ox_lib format, flat snake_case keys). The file is escrow-ignored.
To translate, copy en.json to your language key and edit the values:
locales/en.json -> locales/de.jsonox_lib picks the file up from its own language setting (setr ox:locale "de"), falling back to en for any key you leave out. Keys with %s / %d are format slots — keep them, in the same order.
Database tables
| Table | Purpose |
|---|---|
jj_houserobbery_profiles | Per-character coins, XP, level, counters, tablet name/photo/accent. |
jj_houserobbery_history | Completed/failed contract log (tablet history feed). |
jj_houserobbery_editor | In-game editor placements. |
jj_houserobbery_market | Contract marketplace listings. |
jj_houserobbery_allowlist | Robbery access gate. |
jj_houserobbery_meta | Internal key/value store. |
Discord logging
Configured in config/server/logging.lua. Each event has its own webhook. Paste a URL to enable it, leave it "" to skip.
Events covered: break-ins, security disabled, completions, abandons, fence sales, marketplace list/buy, admin panel actions, runtime config edits, allowlist changes, and anti-exploit flags.
Run /jjlogs (admin/console) to post a test embed to every webhook you've set and list any still empty.