Skip to main content

config/config.lua

Main Settings

debug
boolean
default:"false"
Shows polyzones created inside the game. Useful for testing zone placement.
TestingMode
boolean
default:"false"
Disables all minigames. Useful for testing the full heist flow without completing minigame challenges.
ResetHeist
number
default:"180"
Time in minutes before the heist resets and becomes available to rob again after a completed robbery.
DrawtextButton
number
default:"38"
The key code used to trigger drawtext interactions. 38 is [E] by default.
DrawTextZoneSize
vector3
default:"vec3(0.8, 0.8, 2)"
The size of the drawtext interaction zone.
DrawTextRotation
number
default:"70.0"
The rotation of the drawtext interaction zone.
DisableLoudApproach
boolean
default:"false"
Disables the loud approach path entirely.
DisableSilentApproach
boolean
default:"false"
Disables the silent approach path entirely.
DisableParticles
boolean
default:"false"
Disables all particle effects during the robbery.
DisableExplosions
boolean
default:"true"
Disables client-side explosions. Set to false only if your anticheat allows explosion events.
DisableLaserDamage
boolean
default:"false"
Disables damage dealt by lasers in the vault area.
DisableRemovingWeapons
boolean
default:"false"
Disables weapon removal during the robbery. Only enable this if you use a weapon wheel resource.
UnlockAllEntrances
table
default:"{}"
Door indices from Config.DoorList to unlock after the robbery starts, adding extra entry/exit options for criminals and police.
UnlockAllEntrances = {1, 2, 3}
SpawnNetworkedPropsServerSide
boolean
default:"true"
Spawns networked props server side. Set to false to spawn them client side instead.
SpawnNetworkedPedsServerSide
boolean
default:"true"
Spawns networked peds server side. Set to false to spawn them client side instead.
RequireBag
boolean
default:"true"
Requires players to have a bag item in order to loot the trolleys.
MinimumPolice
number
default:"0"
Minimum number of police required online before the robbery can be started. Set to 0 to disable.
PoliceJobs
table
default:"{\"police\"}"
The jobs that count as police for the MinimumPolice check and dispatch alerts.
PoliceJobs = {"police", "fbi"}
RequiredPlayersNearby
table
Requires a minimum number of players nearby to start the robbery.
RequiredPlayersNearby = {amount = 0, radius = 20.0}
Set amount to 0 or false to disable.

Cooldowns & Limits

Cooldown.PlayerCooldown
number
default:"0"
Per-player cooldown in minutes after completing a robbery. Set to 0 to disable.
Limits.TotalRobberiesPerRestart
number
default:"0"
Maximum number of total robberies allowed per server restart. Set to 0 to disable.
Limits.RobberiesPerPlayer
number
default:"0"
Maximum number of robberies a single player can complete per server restart. Set to 0 to disable.

Strike System

TotalTrollys
number
default:"3"
Maximum number of trolleys that can spawn. Actual count depends on the strike system and approach used.
Strikes
number
default:"3"
Number of strikes players can accumulate before their reward is cut.
StrikeAmount
number
default:"2"
(Silent Approach only) Number of trolleys removed from the reward when the strike limit is reached.
StrikeLoud
number
default:"2"
(Loud Approach only) Number of trolleys that spawn during a loud approach.
TotalCrates
number
default:"2"
Maximum number of weapon crates that can spawn.
CrateStrikeAmount
number
default:"1"
(Silent Approach only) Number of crates removed when the strike limit is reached.
CrateStrikeLoud
number
default:"1"
(Loud Approach only) Number of crates that spawn during a loud approach.

Skill System

SkillSystem
boolean
default:"false"
Requires players to meet a minimum level from an integrated XP/skill system before starting the heist. Must have an XP system configured in the bridge.
MinimumLevel
number
default:"20"
Minimum level required to initiate the heist. Only applies when SkillSystem is true.

Dispatch

Dispatch.Title
string
default:"\"Bobcat Robbery\""
Title shown in the dispatch alert.
Dispatch.Message
string
default:"\"Bobcat is being robbed\""
Message body shown in the dispatch alert.
Dispatch.Code
string
default:"\"10-70\""
Radio code shown in the dispatch alert.
Dispatch.Time
number
default:"5"
Time in seconds the dispatch alert remains visible. Not all dispatch systems support this.
Dispatch.Blip
table
Blip settings for the dispatch map marker.
Blip = {
    Text = 'Bobcat Robbery',
    Color = 1,
    Sprite = 41,
    Scale = 0.8
}
DispatchLocation
table
Controls which step triggers the dispatch alert. Only one should be enabled at a time (excluding Loud and Silent).
DispatchLocation = {
    ["Loud"] = true,
    ["Silent"] = false,
    ["SecurityFingerprint"] = false,
    ["ComputerDesk"] = false,
    ["MainKeypad"] = true,
}

Computer Password

ComputerPassword.Password
table
default:"{min = 10000, max = 99999}"
Random code range for the main computer password prompt.
ComputerPassword.Password2
table
default:"{min = 100, max = 999}"
Random code range for the first half of the split password.
ComputerPassword.Password3
table
default:"{min = 100, max = 999}"
Random code range for the second half of the split password.

Bonus Items

Bonus.Status
boolean
default:"false"
Enables or disables bonus item drops at the end of the heist.
Bonus.BonusChance
number
default:"15"
Percentage chance that any bonus item is given at all.
Bonus.ItemCount
number
default:"1"
Number of items that can be given from the bonus items table.
Bonus.Items
table
Table of possible bonus items. Each entry has a Name, Chance (%), and Amount range.
Items = {
    {Name = "x_device", Chance = 30, Amount = {min = 1, max = 1}},
    {Name = "x_phone", Chance = 50, Amount = {min = 1, max = 1}},
    {Name = "x_stethoscope", Chance = 20, Amount = {min = 1, max = 1}},
}

Evidence & Stress

Evidence.Status
boolean
default:"true"
Enables fingerprint evidence drops at the crime scene.
Evidence.Chance
number
default:"50"
Percentage chance that fingerprint evidence is left behind.
Stress.Status
boolean
default:"true"
Enables the stress system. Stress is only applied when a minigame is failed.
Stress.Chance
number
default:"90"
Percentage chance that stress is applied on a minigame fail.
Stress.Amount
table
default:"{min = 1, max = 3}"
The minimum and maximum amount of stress applied per failure.

Items & Break Chance

Item names used throughout the heist are mapped in Config.Items. Break chances on use are set in Config.ItemsBreak.
Config.Items = {
    ["C4"] = "weapon_stickybomb",
    ["Pliers"] = "pliers",
    ["Device"] = "x_device",
    ["Phone"] = "x_phone",
    ["Bag"] = "bag",
    ["Keycard"] = "bobcatcard",
    ["Keycard2"] = "bobcatcard2",
}

Rewards

Trolley rewards (Config.Rewardcash, Config.Rewardgold, Config.Rewarddiamond) follow the same format as other Project X heists. Crate weapon rewards are configured in Config.CrateRewards with Config.CrateItemCount controlling how many items drop per crate.
ObtainPerPickup
boolean
default:"true"
If true, items are given per individual pickup from the trolley. If false, the reward is given at the end of the full trolley animation.
Cash
boolean
default:"true"
Set to true to give money directly. Set to false to give a cash item instead.
Item
string
default:"'markedbills'"
The item name used when Cash is false.
StackAmount
table
default:"{min = 115, max = 265}"
The minimum and maximum cash or item amount per pickup or per trolley completion.

Security Guards

SecurityGuards
table
List of armed guard peds spawned during the heist. Each entry supports Status, Model, Coords, Weapon, and Ammo.
SecurityOptions
table
Global combat settings applied to all security guard peds (MaxHealth, Health, Armour, Accuracy, etc.).

Sounds

Sounds.AlarmLocation
vector3
World position where the alarm sound plays.
Sounds.AlarmDuration
number
default:"15"
How long the alarm lasts, in minutes.

Logs

Configured in config/logs.lua.
Enable
boolean
default:"false"
Enables or disables the logging system.
APIKey
string
default:"\"\""
Your Discord webhook URL, or your Fivemerr/Fivemanage API key.
FivemanageDataset
string
default:"\"default\""
The Fivemanage dataset to log activity to. Leave as "default" unless you have a specific dataset configured.