Configuration
This section includes all configurable files for the selected script. Most settings are configured automatically, but each config.lua file contains a header comment explaining the purpose and usage of every configuration type. Be sure to read the header of each file carefully to fully understand how to customize and adapt the system for QBCORE, ESX, or standalone environments, ensuring seamless integration with your server.
qs-spooky-missions/shared/config.lua
Config = {}
Locales = Locales or {}
--[[
███████╗██████╗░░█████╗░███╗░░░███╗███████╗░██╗░░░░░░░██╗░█████╗░██████╗░██╗░░██╗
██╔════╝██╔══██╗██╔══██╗████╗░████║██╔════╝░██║░░██╗░░██║██╔══██╗██╔══██╗██║░██╔╝
█████╗░░██████╔╝███████║██╔████╔██║█████╗░░░╚██╗████╗██╔╝██║░░██║██████╔╝█████═╝░
██╔══╝░░██╔══██╗██╔══██║██║╚██╔╝██║██╔══╝░░░░████╔═████║░██║░░██║██╔══██╗██╔═██╗░
██║░░░░░██║░░██║██║░░██║██║░╚═╝░██║███████╗░░╚██╔╝░╚██╔╝░╚█████╔╝██║░░██║██║░╚██╗
╚═╝░░░░░╚═╝░░╚═╝╚═╝░░╚═╝╚═╝░░░░░╚═╝╚══════╝░░░╚═╝░░░╚═╝░░░╚════╝░╚═╝░░╚═╝╚═╝░░╚═╝
Framework configuration and tools of your server!
Please read the usable options carefully, in case they
are not here you can add more or modify the default ones
in the client/custom/* and server/custom/* directories.
Please choose from the following options:
Framework:
'esx'
'qb'
]]
local esxHas = GetResourceState('es_extended') == 'started'
local qbHas = GetResourceState('qb-core') == 'started'
Config.framework = {}
Config.framework.name = esxHas and 'ESX' or qbHas and 'QB' or 'ESX'
Config.framework.resource = esxHas and 'es_extended' or qbHas and 'qb-core' or 'es_extended'
--[[
██╗░░░░░░█████╗░███╗░░██╗░██████╗░██╗░░░██╗░█████╗░░██████╗░███████╗
██║░░░░░██╔══██╗████╗░██║██╔════╝░██║░░░██║██╔══██╗██╔════╝░██╔════╝
██║░░░░░███████║██╔██╗██║██║░░██╗░██║░░░██║███████║██║░░██╗░█████╗░░
██║░░░░░██╔══██║██║╚████║██║░░╚██╗██║░░░██║██╔══██║██║░░╚██╗██╔══╝░░
███████╗██║░░██║██║░╚███║╚██████╔╝╚██████╔╝██║░░██║╚██████╔╝███████╗
╚══════╝╚═╝░░╚═╝╚═╝░░╚══╝░╚═════╝░░╚═════╝░╚═╝░░╚═╝░╚═════╝░╚══════╝
The first thing will be to choose our main language, here you can choose
between the default languages that you will find within locales/*,
if yours is not there, feel free to create it!
Languages available by default:
'ar'
'bg'
'ca'
'da'
'de'
'en'
'es'
'fa'
'fr'
'he'
'hi'
'it'
'jp'
'ko'
'pt'
'ru'
'tr'
'zh'
]]
Config.Language = 'en' -- 'en' or 'es' by default (you can create more)
Config.targetType = 'default' -- 'default' / 'ox' / 'q' / 'qb'
Config.target = 40 -- Total decorations to be done
Config.dailyLimit = 100 -- Number of decorations each person can do per day
Config.reward = 500 -- Money paid for completing decorations
Config.npc = {}
Config.npc.location = vector4(202.0629, -999.9989, 30.0919, 24.0660) -- Location of the NPC
Config.npc.model = 's_m_m_highsec_02' -- Model of the NPC
Config.viewDistance = 500.0 -- View distance for decorations
Config.models = {
['birdpumpkin_01'] = {
offset = vector4(0.0, 0.0, -1.0, 0.0)
},
['giftpumpkin_01'] = {
offset = vector4(0.0, 0.0, -1.0, 0.0)
},
['pumpkin_01'] = {
offset = vector4(0.0, 0.0, -1.0, 0.0)
},
['pumpkincandybucket_01'] = {
offset = vector4(0.0, 0.0, -1.0, 0.0)
},
['witchpumpkin_01'] = {
offset = vector4(0.0, 0.0, -1.0, 0.0)
},
['evo_bat'] = {
offset = vector4(0.0, 0.0, -1.0, 0.0)
},
['evo_skeleton'] = {
offset = vector4(0.0, 0.0, -1.0, 0.0)
},
['evo_lantern'] = {
offset = vector4(0.0, 0.0, -1.0, 0.0)
},
['evo_spider'] = {
offset = vector4(0.0, 0.0, -1.0, 0.0)
}
}
Config.itemNames = {
'birdpumpkin_01',
'giftpumpkin_01',
'pumpkin_01',
'pumpkincandybucket_01',
'witchpumpkin_01',
'evo_skeleton',
'evo_lantern',
'evo_spider',
}
Config.items = {
['birdpumpkin_01'] = {
model = 'birdpumpkin_01',
offest = vector3(0.1, 0.0, 0.0),
rotation = vector3(0.0, 30.0, 30.0),
animation = {
pickup = 'anim@heists@load_box lift_box',
hold = 'anim@heists@box_carry@ idle',
place = 'anim@heists@load_box load_box_2'
},
place = {
type = "ground_01",
offset = vector4(0.0, 0.0, 0.0, 0.0)
}
},
['giftpumpkin_01'] = {
model = 'giftpumpkin_01',
offest = vector3(0.1, 0.0, 0.13),
rotation = vector3(0.0, 54.0, 30.0),
animation = {
pickup = 'anim@heists@load_box lift_box',
hold = 'anim@heists@box_carry@ idle',
place = 'anim@heists@load_box load_box_2'
},
place = {
type = "ground_01",
offset = vector4(0.0, 0.0, 0.0, 0.0)
}
},
['pumpkin_01'] = {
model = 'pumpkin_01',
offest = vector3(0.1, 0.0, 0.13),
rotation = vector3(-180.0, 206.0, 10.0),
animation = {
pickup = 'anim@heists@load_box lift_box',
hold = 'anim@heists@box_carry@ idle',
place = 'anim@heists@load_box load_box_2'
},
place = {
type = "ground_01",
offset = vector4(0.0, 0.0, 0.0, 0.0)
}
},
['pumpkincandybucket_01'] = {
model = 'pumpkincandybucket_01',
offest = vector3(0.1, 0.0, 0.0),
rotation = vector3(0.0, 30.0, 30.0),
animation = {
pickup = 'anim@heists@load_box lift_box',
hold = 'anim@heists@box_carry@ idle',
place = 'anim@heists@load_box load_box_2'
},
place = {
type = "ground_01",
offset = vector4(0.0, 0.0, 0.0, 0.0)
}
},
['witchpumpkin_01'] = {
model = 'witchpumpkin_01',
offest = vector3(0.2, 0.0, 0.03),
rotation = vector3(-190.0, 176.0, -60.0),
animation = {
pickup = 'anim@heists@load_box lift_box',
hold = 'anim@heists@box_carry@ idle',
place = 'anim@heists@load_box load_box_2'
},
place = {
type = "ground_01",
offset = vector4(0.0, 0.0, 0.0, 0.0)
}
},
['evo_skeleton'] = {
model = 'evo_skeleton',
offest = vector3(0.0, 0.1, 0.0),
rotation = vector3(10.0, 20.0, 0.0),
animation = {
pickup = 'anim@heists@load_box lift_box',
hold = 'anim@heists@box_carry@ idle',
place = 'anim@heists@load_box load_box_2'
},
place = {
type = "ground_01",
offset = vector4(0.0, 0.0, 0.0, 0.0)
}
},
['evo_spider'] = {
model = 'evo_spider',
offest = vector3(0.1, 0.0, 0.3),
rotation = vector3(-70.0, 110.0, -20.0),
animation = {
pickup = 'anim@heists@load_box lift_box',
hold = 'anim@heists@box_carry@ idle',
place = 'anim@heists@load_box load_box_2'
},
place = {
type = "ground_01",
offset = vector4(0.0, 0.0, 0.0, 0.0)
}
},
['evo_lantern'] = {
model = 'evo_lantern',
offest = vector3(0.0, -0.5, 0.5),
rotation = vector3(-60.0, 110.0, 0.0),
animation = {
pickup = 'anim@heists@load_box lift_box',
hold = 'anim@heists@box_carry@ idle',
place = 'anim@heists@load_box load_box_2'
},
place = {
type = "wall_01",
offset = vector4(0.0, 0.0, 0.0, 0.0)
}
}
}
Config.decorate = {
{
location = vector4(211.3816, -931.6426, 34.4415, 325.5090),
radius = 150.0,
locations = {
{
position = vector4(203.5629, -946.4273, 30.7001, 37.8375),
decorate = vector4(203.5629, -946.4273, 30.7001, 37.8375),
type = "ground_01"
},
{
position = vector4(226.84, -910.64, 30.68, 70.0),
decorate = vector4(226.84, -910.64, 30.68, 70.0),
type = "ground_01"
},
{
position = vector4(229.2, -907.12, 30.68, 70.0),
decorate = vector4(229.2, -907.12, 30.68, 70.0),
type = "ground_01"
},
{
position = vector4(231.76, -903.52, 30.68, 70.0),
decorate = vector4(231.76, -903.52, 30.68, 70.0),
type = "ground_01"
},
{
position = vector4(234.28, -899.8, 30.68, 70.0),
decorate = vector4(234.28, -899.8, 30.68, 70.0),
type = "ground_01"
},
{
position = vector4(236.12, -897.16, 30.68, 70.0),
decorate = vector4(236.12, -897.16, 30.68, 70.0),
type = "ground_01"
},
{
position = vector4(214.68, -896.4, 30.68, 239.04),
decorate = vector4(214.68, -896.4, 30.68, 239.04),
type = "ground_01"
},
{
position = vector4(216.68, -892.8, 30.68, 239.04),
decorate = vector4(216.68, -892.8, 30.68, 239.04),
type = "ground_01"
},
{
position = vector4(218.16, -888.96, 30.68, 239.04),
decorate = vector4(218.16, -888.96, 30.68, 239.04),
type = "ground_01"
},
{
position = vector4(219.16, -884.2, 30.68, 263.6),
decorate = vector4(219.16, -884.2, 30.68, 263.6),
type = "ground_01"
},
{
position = vector4(219.24, -880.08, 30.48, 277.04),
decorate = vector4(219.24, -880.08, 30.48,277.04),
type = "ground_01"
},
{
position = vector4(218.4, -874.96, 30.48, 289.92),
decorate = vector4(218.4, -874.96, 30.48, 289.92),
type = "ground_01"
},
{
position = vector4(216.36, -870.76, 30.48, 262.28),
decorate = vector4(216.36, -870.76, 30.48, 262.28),
type = "ground_01"
},
{
position = vector4(217.76, -866.08, 30.48, 248.32),
decorate = vector4(217.76, -866.08, 30.48, 248.32),
type = "ground_01"
},
{
position = vector4(200.04, -855.2, 30.88, 65.72),
decorate = vector4(200.04, -855.2, 30.88, 65.72),
type = "ground_01"
},
{
position = vector4(198.88, -857.88, 31.08, 82.96),
decorate = vector4(198.88, -857.88, 31.08, 82.96),
type = "ground_01"
},
{
position = vector4(197.8, -861.52, 31.24, 44.96),
decorate = vector4(197.8, -861.52, 31.24, 44.96),
type = "ground_01"
},
{
position = vector4(178.84, -871.16, 31.96, 51.44),
decorate = vector4(178.84, -871.16, 30.96, 51.44),
type = "ground_01"
},
{
position = vector4(172.52, -885.48, 31.88, 329.72),
decorate = vector4(172.52, -885.48, 30.88, 329.72),
type = "ground_01"
},
{
position = vector4(169.2, -911.56, 31.68, 170.32),
decorate = vector4(169.2, -911.56, 30.68, 170.32),
type = "ground_01"
},
{
position = vector4(165.8, -920.76, 30.68, 343.68),
decorate = vector4(165.8, -920.76, 30.68, 343.68),
type = "ground_01"
},
{
position = vector4(223.64, -947.4, 30.08, 145.16),
decorate = vector4(223.64, -947.4, 30.08, 145.16),
type = "ground_01"
},
{
position = vector4(217.76, -956.0, 30.08, 325.92),
decorate = vector4(217.76, -956.0, 30.08, 325.92),
type = "ground_01"
},
{
position = vector4(209.52, -937.6, 30.68, 146.28),
decorate = vector4(209.52, -937.6, 30.68, 146.28),
type = "ground_01"
},
{
position = vector4(151.56, -986.52, 30.08, 219.52),
decorate = vector4(151.56, -986.52, 30.08, 219.52),
type = "ground_01"
},
{
position = vector4(170.68, -993.24, 30.08, 75.0),
decorate = vector4(170.68, -993.24, 30.08, 75.0),
type = "ground_01"
},
{
position = vector4(217.76, -866.08, 30.48, 248.32), --
decorate = vector4(217.76, -866.08, 30.48, 248.32),
type = "ground_01"
},
{
position = vector4(217.76, -866.08, 30.48, 248.32), --
decorate = vector4(217.76, -866.08, 30.48, 248.32),
type = "ground_01"
},
{
position = vector4(217.76, -866.08, 30.48, 248.32), --
decorate = vector4(217.76, -866.08, 30.48, 248.32),
type = "ground_01"
},
{
position = vector4(217.76, -866.08, 30.48, 248.32), --
decorate = vector4(217.76, -866.08, 30.48, 248.32),
type = "ground_01"
},
{
position = vector4(234.44, -902.64, 34.2, 47.84),
decorate = vector4(234.44, -902.64, 31.2, 47.84),
type = "wall_01"
},
{
position = vector4(184.5831, -875.4664, 34.9970, 154.5592),
decorate = vector4(184.5831, -875.4664, 34.9970, 154.5592),
type = "wall_01"
},
}
},
{
location = vector4(189.3151, -665.9584, 45.7675, 4.5990),
radius = 150.0,
locations = {
{
position = vector4(174.6028, -657.7134, 43.1345, 348.9343),
decorate = vector4(174.6028, -657.7134, 43.1345, 348.9343),
type = "ground_01"
},
{
position = vector4(179.1692, -652.0758, 43.1343, 335.4995),
decorate = vector4(179.1692, -652.0758, 43.1343, 335.4995),
type = "ground_01"
},
}
}
}