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-deathmatch/config.lua
--──────────────────────────────────────────────────────────────────────────────
--  Quasar Store · Configuration Guidelines
--──────────────────────────────────────────────────────────────────────────────
--  This configuration file defines all adjustable parameters for the script.
--  Comments are standardized to help you identify which sections you can safely edit.
--
--  • [EDIT] – Safe for users to modify. Adjust these values as needed.
--  • [INFO] – Informational note describing what the variable or block does.
--  • [ADV]  – Advanced settings. Change only if you understand the logic behind it.
--  • [CORE] – Core functionality. Do not modify unless you are a developer.
--  • [AUTO] – Automatically handled by the system. Never edit manually.
--
--  Always make a backup before editing configuration files.
--  Incorrect changes in [CORE] or [AUTO] sections can break the resource.
--──────────────────────────────────────────────────────────────────────────────

Config           = Config or {} -- [CORE]
Locales          = Locales or {} -- [CORE]

--──────────────────────────────────────────────────────────────────────────────
-- Language Selection                                                          [EDIT]
--──────────────────────────────────────────────────────────────────────────────
-- [INFO] Main language for the asset. Locales are under locales/* — add yours if missing.
-- [INFO] The list below reflects files commonly shipped in locales/*. Your repo decides availability.
-- [INFO] Note: Some ISO codes differ across packs (e.g., Japanese often 'ja', here 'jp'; Chinese split 'zh-CN'/'zh-TW' vs 'zh'). Keep aligned with your locales folder.
--──────────────────────────────────────────────────────────────────────────────
--  'ar','bg','ca','cs','da','de','el','en','es','fa','fr','he','hi','hu','it',
--  'jp','ko','nl','no','pl','pt','ro','ru','sl','sv','th','tk','tr','zh'
Config.Language  = 'en' -- [EDIT]

--──────────────────────────────────────────────────────────────────────────────
-- Framework Detection                                                         [AUTO]
--──────────────────────────────────────────────────────────────────────────────
-- [INFO] Auto-detects ESX/QBCore/QBX. If you renamed resources, set manually and
--        adapt the framework files inside this resource.
--──────────────────────────────────────────────────────────────────────────────
local frameworks = { -- [CORE]
	['es_extended'] = 'esx',
	['qb-core']     = 'qb',
	['qbx_core']    = 'qb',
}

local function dependencyCheck(data) -- [CORE]
	for k, v in pairs(data) do
		if GetResourceState(k) == 'started' then
			return v
		end
	end
	return false
end

Config.Framework = dependencyCheck(frameworks) or 'standalone' -- [AUTO]
Config.FiveGuard = false                                       -- [EDIT] Your FiveGuard script name or false if not used.

--──────────────────────────────────────────────────────────────────────────────
-- Ambulance System Detection                                                  [AUTO]
--──────────────────────────────────────────────────────────────────────────────
-- [INFO] Used to hook death/medical flows automatically if a supported resource is running.
--──────────────────────────────────────────────────────────────────────────────
local ambulances = { -- [CORE]
	['qb-ambulancejob']      = 'qb',
	['esx_ambulancejob']     = 'esx',
	['wasabi_ambulance']     = 'wasabi',
	['ars_ambulancejob']     = 'ars',
	['qbx_medical']          = 'qbx',
	['p_ambulancejob']       = 'piotreq',
	['qs-hospital-creator']  = 'qs',
	['ak47_qb_ambulancejob'] = 'ak47qb',
	['ak47_ambulancejob']    = 'ak47',
}
Config.Ambulance = dependencyCheck(ambulances) -- [AUTO]

--──────────────────────────────────────────────────────────────────────────────
-- Inventory Lock (Deathmatch)                                                 [EDIT]
--──────────────────────────────────────────────────────────────────────────────
-- [INFO] Controls inventory locking while in Deathmatch. Requires events from your inventory system.
-- [INFO] To support another inventory, mirror the hook in client/custom/inventory/*.
-- [ADV]  Only recommended to edit for 'ox_inventory' unless you know your hooks.
--──────────────────────────────────────────────────────────────────────────────
local inventories = { -- [CORE]
	['ox_inventory'] = 'ox',
	['qs-inventory'] = 'qs',
}
Config.Inventory = dependencyCheck(inventories) -- [AUTO]

--──────────────────────────────────────────────────────────────────────────────
-- Entrance Spot / Marker & Blip                                               [EDIT]
--──────────────────────────────────────────────────────────────────────────────
-- [INFO] If you disable the static spot, use your own command/trigger to open the menu.
-- [INFO] Example provided in the original comments for ExecuteCommand("dmopen").
--──────────────────────────────────────────────────────────────────────────────
Config.SpotEnable = true -- [EDIT]

Config.Marker = {        -- [EDIT]
	DrawDistance = 10,
	Pos          = vector3(478.443970, -3369.969238, 4.660791),
	Type         = 1,
	Size         = vector3(5.5, 5.5, 1.5),
	Color        = { r = 255, g = 255, b = 255 },
}

Config.Blip = { -- [EDIT]
	Enable        = true,
	SetBlipSprite = 437,
	SetBlipScale  = 0.6,
	SetBlipColour = 36,
}

--──────────────────────────────────────────────────────────────────────────────
-- Pre-Match Showcase (Peds / Camera / Anims)                                  [EDIT]
--──────────────────────────────────────────────────────────────────────────────
-- [INFO] Controls pre-match cinematic: invisible spawn, ped lineup, camera, and idle anims.
--──────────────────────────────────────────────────────────────────────────────
Config.InvisibleSpawnCoords = vec3(1170.10, -1264.40, 20.25) -- [EDIT]

Config.PedSpawnLocs = {                                      -- [EDIT]
	[1] = vec4(1127.20, -1263.80, 19.60, 44.13),
	[2] = vec4(1129.10, -1263.40, 19.65, 44.13),
	[3] = vec4(1127.10, -1264.90, 19.60, 44.13),
	[4] = vec4(1128.30, -1263.70, 19.75, 44.13),
	[5] = vec4(1126.80, -1265.90, 19.60, 44.13),
}

Config.CamPos = vec3(1126.08, -1262.42, 21.0) -- [EDIT]

Config.Anims = {                              -- [EDIT]
	{ dict = 'anim@amb@nightclub@peds@',                              name = 'rcmme_amanda1_stand_loop_cop' },
	{ dict = 'mp_player_int_uppergang_sign_a',                        name = 'mp_player_int_gang_sign_a' },
	{ dict = 'amb@world_human_leaning@male@wall@back@foot_up@idle_a', name = 'idle_a' },
	{ dict = 'amb@world_human_stupor@male@idle_a',                    name = 'idle_a' },
	{ dict = 'anim@mp_player_intupperslow_clap',                      name = 'idle_a' },
	{ dict = 'rcmbarry',                                              name = 'base' },
	{ dict = 'anim@mp_player_intupperthumbs_up',                      name = 'idle_a' },
	{ dict = 'rcmnigel1a',                                            name = 'base' },
}

--──────────────────────────────────────────────────────────────────────────────
-- Maps / Spawns / Playable Areas                                              [EDIT]
--──────────────────────────────────────────────────────────────────────────────
-- [INFO] Define spawn points for both teams & enemies plus the playable area.
-- [INFO] To expose new maps in UI, also update html/js/config/* (maps array & images).
--──────────────────────────────────────────────────────────────────────────────
Config.Timer = 420 -- [EDIT] Match duration in seconds

Config.MapData = { -- [EDIT]
	['bank'] = {
		['team1']  = { x = 244.43, y = 202.98, z = 105.21, h = 73.86 },
		['team2']  = { x = 254.34, y = 225.39, z = 106.29, h = 163.04 },
		['eteam1'] = { x = 222.06, y = 210.99, z = 105.55, h = 158.26 },
		['eteam2'] = { x = 220.76, y = 206.79, z = 105.47, h = 340.43 },
		['area']   = {
			['Pos']  = { x = 249.33, y = 217.76, z = 100.29 },
			['Size'] = { x = 80.0, y = 80.0, z = 10.0 },
		},
	},
	['bimeh'] = {
		['team1']  = { x = -1085.06, y = -256.12, z = 37.76, h = 301.06 },
		['team2']  = { x = -1057.03, y = -239.54, z = 44.02, h = 115.0 },
		['eteam1'] = { x = -1088.07, y = -257.55, z = 37.76, h = 301.6 },
		['eteam2'] = { x = -1077.77, y = -247.37, z = 37.76, h = 112.74 },
		['area']   = {
			['Pos']  = { x = -1075.87, y = -243.6, z = 30.02 },
			['Size'] = { x = 90.0, y = 90.0, z = 20.0 },
		},
	},
	['cargo'] = {
		['team1']  = { x = -1022.21, y = 4937.08, z = 200.93, h = 143.32 },
		['team2']  = { x = -1093.72, y = 4942.15, z = 218.33, h = 158.38 },
		['eteam1'] = { x = -1096.51, y = 4906.76, z = 215.31, h = 331.95 },
		['eteam2'] = { x = -1093.16, y = 4914.79, z = 215.2, h = 156.72 },
		['area']   = {
			['Pos']  = { x = -1076.06, y = 4912.23, z = 150.97 },
			['Size'] = { x = 135.0, y = 135.0, z = 200.0 },
		},
	},
	['skyscraper'] = {
		['team1']  = { x = -168.86, y = -1011.97, z = 254.13, h = 341.67 },
		['team2']  = { x = -139.52, y = -952.93, z = 254.13, h = 159.49 },
		['eteam1'] = { x = -161.05, y = -995.09, z = 254.13, h = 340.75 },
		['eteam2'] = { x = -158.08, y = -988.08, z = 254.13, h = 157.8 },
	},
	['vangelico'] = {
		['team1']  = { x = -657.12, y = -224.75, z = 37.73, h = 239.59 },
		['team2']  = { x = -624.62, y = -232.57, z = 38.06, h = 127.25 },
		['eteam1'] = { x = -642.56, y = -234.65, z = 37.86, h = 214.79 },
		['eteam2'] = { x = -634.0, y = -244.53, z = 38.28, h = 41.4 },
		['area']   = {
			['Pos']  = { x = -623.36, y = -231.63, z = 30.06 },
			['Size'] = { x = 80.0, y = 80.0, z = 40.0 },
		},
	},
	['shop1'] = {
		['team1']  = { x = 15.45, y = -1337.38, z = 30.28, h = 184.14 },
		['team2']  = { x = 26.56, y = -1344.42, z = 30.5, h = 176.61 },
		['eteam1'] = { x = 21.08, y = -1359.66, z = 30.34, h = 266.82 },
		['eteam2'] = { x = 36.08, y = -1359.75, z = 30.32, h = 88.62 },
		['area']   = {
			['Pos']  = { x = 28.88, y = -1345.42, z = 20.5 },
			['Size'] = { x = 32.0, y = 32.0, z = 50.0 },
		},
	},
	['shop2'] = {
		['team1']  = { x = -1212.56, y = -889.79, z = 13.86, h = 122.04 },
		['team2']  = { x = -1224.69, y = -906.18, z = 12.33, h = 30.27 },
		['eteam1'] = { x = -1224.24, y = -891.71, z = 13.43, h = 119.16 },
		['eteam2'] = { x = -1236.63, y = -898.79, z = 13.02, h = 300.62 },
		['area']   = {
			['Pos']  = { x = -1221.6, y = -911.33, z = 5.33 },
			['Size'] = { x = 70.0, y = 70.0, z = 50.0 },
		},
	},
	['1v1'] = {
		['team1']  = { x = -2100.9, y = 3095.54, z = 32.81, h = 332.33 },
		['team2']  = { x = -2074.5, y = 3141.4, z = 32.81, h = 148.7 },
		['eteam1'] = { x = -2100.78, y = 3095.96, z = 33.81, h = 327.91 },
		['eteam2'] = { x = -2096.8, y = 3102.9, z = 33.81, h = 158.88 },
		['area']   = {
			['Pos']  = { x = -2087.34, y = 3118.99, z = 15.71 },
			['Size'] = { x = 70.0, y = 70.0, z = 60.0 },
		},
	},
}

--──────────────────────────────────────────────────────────────────────────────
-- Debug Options                                                               [EDIT]
--──────────────────────────────────────────────────────────────────────────────
-- [INFO] Only enable for admins/developers. Adds verbose messages and helpers.
--──────────────────────────────────────────────────────────────────────────────
Config.Debug = true -- [EDIT]