Installation
Installation
- OX Library
- PS Dispatch
Download latest version from their github repo.
https://github.com/overextended/ox_lib/releases
By default N-StoreRobberies using ps-dispatch, if you use other dispatch skip this and implement the config to your desired dispatch (get help on discord).
https://github.com/Project-Sloth/ps-dispatch/releases
- QB Ready
- ESX Ready
- QB-OX Ready
- ESX-OX Ready
Add this above.
Config = {}
Config.Options = {
devMode = false, -- helps you restarting the resource.
checkVersion = true, -- checking latest version for updates
lang = "en",
framework = "qb", -- "qb", "esx", "custom"
inventory = "qb", -- "qb", "qs", "lj", "ox", "mf", "core", "custom"
target = "qb", -- "qb", "q", "ox" | (ox supports both qb-target/q-target)
notify = "default", -- "default", "qb", "esx", "ox", "ps-ui", "okok", "custom" | (default = will use default framework notify) (custom = you have to impliment at shared/client/custom.lua)
dispatch = "ps", -- "ps", "custom" | (ps-dispatch is plug and play currently)
events = {
playerLoaded = "QBCore:Client:OnPlayerLoaded",
playerUnloaded = "QBCore:Client:OnPlayerUnload",
},
robbery = {
job = "police", -- cop job
requiredCops = 0, -- how much cops should be online to be able to rob the store.
timers = {
cooldown = 20, -- minutes, how long will take the store to reset
general = false, -- minutes / false, how long will be global cooldown active if a robbery just started (false to disable). (general = all stores cooldown if one has been activated, cound"t use the .cooldown (above) option)
checker = 60, -- seconds, lower = poor performance (will cause server lag) / higher = best option(1 minutes), anything bigger than 1 (EG: 2, you"ll need to use *2 coooldown timer.)
registerCollection = 5, -- in seconds, how long will take to collect the cash regisster
safeCollection = 5, -- in seconds, how long will take to collect the safe
},
safeKey = 'labkey'
},
blip = { -- currently not a feature.
enabled = false, -- true/false for blips (just location of robbable stores, will use .center of each store)
sprite = 0,
color = 0,
size = 0,
label = "general.blip_name" -- it takes default name from Translations/en.lua > general > blip_name
},
}
Config.Stores = {
{
center = vector3(28.92, -1346.16, 29.5), -- center of the store, mostly for Dispatch & Blip(if enabled)
camId = 7, -- Camera id, used for ps-mdt/qb annd other stuff.
zone = {
vec3(34.15, -1348.90, 29.0),
vec3(34.50, -1341.90, 29.0),
vec3(31.70, -1341.70, 29.0),
vec3(31.60, -1338.70, 29.0),
vec3(23.60, -1338.20, 29.0),
vec3(23.90, -1349.00, 29.0),
},
registers = { -- resource wont spawn any object.
{ -- you can use multiple cash registers
items = {
{name = "oxy", amount = {min = 5, max = 15}, chance = 100},
{name = "rolling_paper", amount = {min = 1, max = 1}, chance = 50},
},
coords = vec3(24.95, -1344.95, 29.61) -- cash register coords
},
{
items = {
{name = "oxy", amount = {min = 5, max = 15}, chance = 100},
{name = "rolling_paper", amount = {min = 1, max = 1}, chance = 50},
},
coords = vec3(24.95, -1347.29, 29.61) -- cash register coords
},
},
safe = {
{ -- you can use multiple safes
items = {
{name = "oxy", amount = {min = 5, max = 15}, chance = 100},
{name = "rolling_paper", amount = {min = 1, max = 1}, chance = 50},
},
coords = vec3(28.12, -1338.41, 28.9) -- cash register coords
},
}
},
}
Add this above.
Config = {}
Config.Options = {
devMode = false, -- helps you restarting the resource.
checkVersion = true, -- checking latest version for updates
lang = "en",
framework = "esx", -- "qb", "esx", "custom"
inventory = "ox", -- "qb", "qs", "lj", "ox", "mf", "core", "custom"
target = "q", -- "qb", "q", "ox" | (ox supports both qb-target/q-target)
notify = "default", -- "default", "qb", "esx", "ox", "ps-ui", "okok", "custom" | (default = will use default framework notify) (custom = you have to impliment at shared/client/custom.lua)
dispatch = "ps", -- "ps", "custom" | (ps-dispatch is plug and play currently)
events = {
playerLoaded = "esx:playerLoaded",
playerUnloaded = "esx:onPlayerLogout",
},
robbery = {
job = "police", -- cop job
requiredCops = 0, -- how much cops should be online to be able to rob the store.
timers = {
cooldown = 20, -- minutes, how long will take the store to reset
general = false, -- minutes / false, how long will be global cooldown active if a robbery just started (false to disable). (general = all stores cooldown if one has been activated, cound"t use the .cooldown (above) option)
checker = 60, -- seconds, lower = poor performance (will cause server lag) / higher = best option(1 minutes), anything bigger than 1 (EG: 2, you"ll need to use *2 coooldown timer.)
registerCollection = 5, -- in seconds, how long will take to collect the cash regisster
safeCollection = 5, -- in seconds, how long will take to collect the safe
},
safeKey = 'labkey'
},
blip = { -- currently not a feature.
enabled = false, -- true/false for blips (just location of robbable stores, will use .center of each store)
sprite = 0,
color = 0,
size = 0,
label = "general.blip_name" -- it takes default name from Translations/en.lua > general > blip_name
},
}
Config.Stores = {
{
center = vector3(28.92, -1346.16, 29.5), -- center of the store, mostly for Dispatch & Blip(if enabled)
camId = 7, -- Camera id, used for ps-mdt/qb annd other stuff.
zone = {
vec3(34.15, -1348.90, 29.0),
vec3(34.50, -1341.90, 29.0),
vec3(31.70, -1341.70, 29.0),
vec3(31.60, -1338.70, 29.0),
vec3(23.60, -1338.20, 29.0),
vec3(23.90, -1349.00, 29.0),
},
registers = { -- resource wont spawn any object.
{ -- you can use multiple cash registers
items = {
{name = "oxy", amount = {min = 5, max = 15}, chance = 100},
{name = "rolling_paper", amount = {min = 1, max = 1}, chance = 50},
},
coords = vec3(24.95, -1344.95, 29.61) -- cash register coords
},
{
items = {
{name = "oxy", amount = {min = 5, max = 15}, chance = 100},
{name = "rolling_paper", amount = {min = 1, max = 1}, chance = 50},
},
coords = vec3(24.95, -1347.29, 29.61) -- cash register coords
},
},
safe = {
{ -- you can use multiple safes
items = {
{name = "oxy", amount = {min = 5, max = 15}, chance = 100},
{name = "rolling_paper", amount = {min = 1, max = 1}, chance = 50},
},
coords = vec3(28.12, -1338.41, 28.9) -- cash register coords
},
}
},
}
Add this above.
Config = {}
Config.Options = {
devMode = false, -- helps you restarting the resource.
checkVersion = true, -- checking latest version for updates
lang = "en",
framework = "qb", -- "qb", "esx", "custom"
inventory = "ox", -- "qb", "qs", "lj", "ox", "mf", "core", "custom"
target = "ox", -- "qb", "q", "ox" | (ox supports both qb-target/q-target)
notify = "ox", -- "default", "qb", "esx", "ox", "ps-ui", "okok", "custom" | (default = will use default framework notify) (custom = you have to impliment at shared/client/custom.lua)
dispatch = "ps", -- "ps", "custom" | (ps-dispatch is plug and play currently)
events = {
playerLoaded = "QBCore:Client:OnPlayerLoaded",
playerUnloaded = "QBCore:Client:OnPlayerUnload",
},
robbery = {
job = "police", -- cop job
requiredCops = 0, -- how much cops should be online to be able to rob the store.
timers = {
cooldown = 20, -- minutes, how long will take the store to reset
general = false, -- minutes / false, how long will be global cooldown active if a robbery just started (false to disable). (general = all stores cooldown if one has been activated, cound"t use the .cooldown (above) option)
checker = 60, -- seconds, lower = poor performance (will cause server lag) / higher = best option(1 minutes), anything bigger than 1 (EG: 2, you"ll need to use *2 coooldown timer.)
registerCollection = 5, -- in seconds, how long will take to collect the cash regisster
safeCollection = 5, -- in seconds, how long will take to collect the safe
},
safeKey = 'labkey'
},
blip = { -- currently not a feature.
enabled = false, -- true/false for blips (just location of robbable stores, will use .center of each store)
sprite = 0,
color = 0,
size = 0,
label = "general.blip_name" -- it takes default name from Translations/en.lua > general > blip_name
},
}
Config.Stores = {
{
center = vector3(28.92, -1346.16, 29.5), -- center of the store, mostly for Dispatch & Blip(if enabled)
camId = 7, -- Camera id, used for ps-mdt/qb annd other stuff.
zone = {
vec3(34.15, -1348.90, 29.0),
vec3(34.50, -1341.90, 29.0),
vec3(31.70, -1341.70, 29.0),
vec3(31.60, -1338.70, 29.0),
vec3(23.60, -1338.20, 29.0),
vec3(23.90, -1349.00, 29.0),
},
registers = { -- resource wont spawn any object.
{ -- you can use multiple cash registers
items = {
{name = "oxy", amount = {min = 5, max = 15}, chance = 100},
{name = "rolling_paper", amount = {min = 1, max = 1}, chance = 50},
},
coords = vec3(24.95, -1344.95, 29.61) -- cash register coords
},
{
items = {
{name = "oxy", amount = {min = 5, max = 15}, chance = 100},
{name = "rolling_paper", amount = {min = 1, max = 1}, chance = 50},
},
coords = vec3(24.95, -1347.29, 29.61) -- cash register coords
},
},
safe = {
{ -- you can use multiple safes
items = {
{name = "oxy", amount = {min = 5, max = 15}, chance = 100},
{name = "rolling_paper", amount = {min = 1, max = 1}, chance = 50},
},
coords = vec3(28.12, -1338.41, 28.9) -- cash register coords
},
}
},
}
Add this above.
Config = {}
Config.Options = {
devMode = false, -- helps you restarting the resource.
checkVersion = true, -- checking latest version for updates
lang = "en",
framework = "esx", -- "qb", "esx", "custom"
inventory = "ox", -- "qb", "qs", "lj", "ox", "mf", "core", "custom"
target = "ox", -- "qb", "q", "ox" | (ox supports both qb-target/q-target)
notify = "ox", -- "default", "qb", "esx", "ox", "ps-ui", "okok", "custom" | (default = will use default framework notify) (custom = you have to impliment at shared/client/custom.lua)
dispatch = "ps", -- "ps", "custom" | (ps-dispatch is plug and play currently)
events = {
playerLoaded = "esx:playerLoaded",
playerUnloaded = "esx:onPlayerLogout",
},
robbery = {
job = "police", -- cop job
requiredCops = 0, -- how much cops should be online to be able to rob the store.
timers = {
cooldown = 20, -- minutes, how long will take the store to reset
general = false, -- minutes / false, how long will be global cooldown active if a robbery just started (false to disable). (general = all stores cooldown if one has been activated, cound"t use the .cooldown (above) option)
checker = 60, -- seconds, lower = poor performance (will cause server lag) / higher = best option(1 minutes), anything bigger than 1 (EG: 2, you"ll need to use *2 coooldown timer.)
registerCollection = 5, -- in seconds, how long will take to collect the cash regisster
safeCollection = 5, -- in seconds, how long will take to collect the safe
},
safeKey = 'labkey'
},
blip = { -- currently not a feature.
enabled = false, -- true/false for blips (just location of robbable stores, will use .center of each store)
sprite = 0,
color = 0,
size = 0,
label = "general.blip_name" -- it takes default name from Translations/en.lua > general > blip_name
},
}
Config.Stores = {
{
center = vector3(28.92, -1346.16, 29.5), -- center of the store, mostly for Dispatch & Blip(if enabled)
camId = 7, -- Camera id, used for ps-mdt/qb annd other stuff.
zone = {
vec3(34.15, -1348.90, 29.0),
vec3(34.50, -1341.90, 29.0),
vec3(31.70, -1341.70, 29.0),
vec3(31.60, -1338.70, 29.0),
vec3(23.60, -1338.20, 29.0),
vec3(23.90, -1349.00, 29.0),
},
registers = { -- resource wont spawn any object.
{ -- you can use multiple cash registers
items = {
{name = "oxy", amount = {min = 5, max = 15}, chance = 100},
{name = "rolling_paper", amount = {min = 1, max = 1}, chance = 50},
},
coords = vec3(24.95, -1344.95, 29.61) -- cash register coords
},
{
items = {
{name = "oxy", amount = {min = 5, max = 15}, chance = 100},
{name = "rolling_paper", amount = {min = 1, max = 1}, chance = 50},
},
coords = vec3(24.95, -1347.29, 29.61) -- cash register coords
},
},
safe = {
{ -- you can use multiple safes
items = {
{name = "oxy", amount = {min = 5, max = 15}, chance = 100},
{name = "rolling_paper", amount = {min = 1, max = 1}, chance = 50},
},
coords = vec3(28.12, -1338.41, 28.9) -- cash register coords
},
}
},
}
server.cfg
ensure ox_lib
ensure ps-dispatch #or your dispatch
ensure n_storerobberies