Skip to main content

Configuration

All Wasabi Scripts contain various editable and unobscured files containing, exports, client and server functions, configuration methods and more. This is the full configuration file for wasabi_mdt.


View Config
-----------------For support, scripts, and more----------------
--------------- https://discord.gg/wasabiscripts -------------
---------------------------------------------------------------

Config = {}
Config.Departments = {}
-- Department configurations are loaded from config/departments/*.lua
**
**-- Locale Options are
-- 'en' (English)
-- 'fr' (French)
-- 'cn' (Chinese Simplified)
-- 'tw' (Chinese Traditional)
-- 'de' (German)
-- 'it' (Italian)
-- 'jp' (Japanese)
-- 'ko' (Korean)
-- 'pl' (Polish)
-- 'pt' (Portuguese)
-- 'es' (Spanish)
-- 'hi' (Hindi)
-- 'nl' (Dutch)
-- 'da' (Danish)
-- 'cs' (Czech)
-- If you would like us to add a language, join our discord and create a ticket!
-- All locale strings can be found in /locales/
Config.Locale = 'en'
Config.ImgDirectory = 'ox_inventory/web/images/' -- The directory where the images are stored.

Config.OpenMDT = {
item = {
enabled = true,
name = 'mdt_tablet', -- Name of the item to use to open the panel
},
command = {
enabled = true, -- Enable/disable both command & keybind
cmd = 'mdt', -- /mdt | Open the MDT panel
keybind = false, -- F4 | Open the MDT panel | Remove or set to false to disable
},
}

Config.Announcements = {
maxAnnouncements = 10, -- Maximum number of active announcements
defaultExpireDays = 7, -- Default days until announcement expires
}

Config.DispatchKeybinds = {
panicButton = {
enabled = true,
key = 'F9',
device = 'keyboard', -- keyboard, mouse, pad
description = 'Activate Panic Button'
},
toggleDispatchHud = {
enabled = true,
key = 'F11',
device = 'keyboard',
description = 'Toggle Dispatch HUD'
},
toggleDispatchFocus = {
enabled = true,
key = 'Z',
device = 'keyboard',
description = 'Toggle Dispatch HUD Focus'
}
}

Config.Cameras = {
spawnDistance = 40.0, -- Distance at which cameras spawn/despawn
checkInterval = 1000, -- How often to check distance (ms)
models = { -- Available camera models with labels and view offsets
{
model = 'prop_cctv_cam_01a',
label = 'Standard CCTV Camera',
viewOffset = { x = 0, y = 0, z = -0.1 }, -- Position offset for camera view
rotationOffset = { x = -10.0, y = 0, z = 180.0 } -- Rotation offset for camera view
},
{
model = 'prop_cctv_cam_01b',
label = 'Standard CCTV Camera B',
viewOffset = { x = 0, y = 0, z = -0.1 },
rotationOffset = { x = -10.0, y = 0, z = 180.0 }
},
{
model = 'prop_cctv_cam_02a',
label = 'Wall-mounted Camera',
viewOffset = { x = 0, y = 0, z = -0.15 }, -- Different offset for wall-mounted
rotationOffset = { x = -10.0, y = 0, z = 180.0 }
},
{
model = 'prop_cctv_cam_03a',
label = 'Dome Camera',
viewOffset = { x = 0, y = 0, z = -0.2 }, -- Lower for dome cameras
rotationOffset = { x = -15.0, y = 0, z = 180.0 } -- More downward tilt
},
{
model = 'prop_cctv_cam_04a',
label = 'Modern Security Camera',
viewOffset = { x = 0, y = 0, z = -0.1 },
rotationOffset = { x = -10.0, y = 0, z = 180.0 }
},
{
model = 'prop_cctv_cam_04b',
label = 'Modern Security Camera B',
viewOffset = { x = 0, y = 0, z = -0.1 },
rotationOffset = { x = -10.0, y = 0, z = 180.0 }
},
{
model = 'prop_cctv_cam_04c',
label = 'Modern Security Camera C',
viewOffset = { x = 0, y = 0, z = -0.1 },
rotationOffset = { x = -10.0, y = 0, z = 180.0 }
},
{
model = 'prop_cctv_cam_05a',
label = 'PTZ Camera',
viewOffset = { x = 0, y = 0, z = -0.1 },
rotationOffset = { x = -10.0, y = 0, z = 180.0 }
},
{
model = 'prop_cctv_cam_06a',
label = 'Outdoor Camera',
viewOffset = { x = 0, y = 0, z = -0.1 },
rotationOffset = { x = -10.0, y = 0, z = 180.0 }
},
{
model = 'prop_cctv_cam_07a',
label = 'High Security Camera',
viewOffset = { x = 0, y = 0, z = -0.1 },
rotationOffset = { x = -10.0, y = 0, z = 180.0 }
},
{
model = 'hei_prop_bank_cctv_01',
label = 'Bank CCTV Camera',
viewOffset = { x = 0, y = 0, z = -0.15 },
rotationOffset = { x = -10.0, y = 0, z = 180.0 }
},
{
model = 'hei_prop_bank_cctv_02',
label = 'Bank Dome Camera',
viewOffset = { x = 0, y = 0, z = -0.2 },
rotationOffset = { x = -15.0, y = 0, z = 180.0 }
}
}
}

Config.IgnoredJobs = { -- Jobs that will not be shown in the MDT
"taxi",
"bloods",
"ballas",
"vagos",
}

Config.DispatchTypes = {
-- Each dispatch type has a label, default priority, and icon
-- See available icons at: https://primevue.org/icons
['traffic_stop'] = { label = 'Traffic Stop', icon = 'car' },
['disturbance'] = { label = 'Disturbance', icon = 'volume-up' },
['theft'] = { label = 'Theft', icon = 'shopping-bag' },
['assault'] = { label = 'Assault', icon = 'user-minus' },
['robbery'] = { label = 'Robbery', icon = 'dollar' },
['shooting'] = { label = 'Shots Fired', icon = 'exclamation-triangle' },
['officer_down'] = { label = 'Officer Down', icon = 'shield' },
['panic'] = { label = 'Panic Button', icon = 'exclamation-circle' }
}

Config.PremadeDispatches = {
-- Premade dispatch templates that can be triggered via exports
-- Each template can be customized by server owners
['store_robbery'] = {
type = 'robbery',
title = 'Store Robbery in Progress',
description = 'Suspect(s) robbing convenience store, weapon may be involved',
priority = 4,
location = 'Store Location', -- Can be overridden when calling
},
['bank_robbery'] = {
type = 'robbery',
title = 'Bank Robbery in Progress',
description = 'Multiple suspects robbing bank, armed and dangerous',
priority = 5,
location = 'Bank Location',
},
['vehicle_theft'] = {
type = 'theft',
title = 'Vehicle Theft in Progress',
description = 'Suspect stealing vehicle',
priority = 3,
location = 'Vehicle Location',
},
['house_alarm'] = {
type = 'disturbance',
title = 'House Alarm Triggered',
description = 'Residential alarm activated, possible break-in',
priority = 2,
location = 'Residence',
},
['shots_fired'] = {
type = 'shooting',
title = 'Shots Fired',
description = 'Multiple gunshots reported in area',
priority = 5,
location = 'Unknown',
},
['drug_deal'] = {
type = 'disturbance',
title = 'Suspicious Activity',
description = 'Possible drug transaction in progress',
priority = 2,
location = 'Street Corner',
},
['street_race'] = {
type = 'traffic_stop',
title = 'Illegal Street Racing',
description = 'Multiple vehicles racing, reckless driving reported',
priority = 3,
location = 'Highway',
},
['assault_report'] = {
type = 'assault',
title = 'Assault in Progress',
description = 'Physical altercation between multiple individuals',
priority = 3,
location = 'Public Area',
},
['vandalism'] = {
type = 'disturbance',
title = 'Vandalism in Progress',
description = 'Property damage being reported',
priority = 1,
location = 'Business/Property',
},
['hostage_situation'] = {
type = 'officer_down',
title = 'Hostage Situation',
description = 'Armed suspect(s) with hostages, requesting immediate backup',
priority = 5,
location = 'Building',
}
}

Config.PropertyTypes = { -- icons from https://primevue.org/icons/#list
{ type = 'house', label = 'House', icon = 'home' },
{ type = 'apartment', label = 'Apartment', icon = 'building' },
{ type = 'business', label = 'Business', icon = 'briefcase' },
{ type = 'warehouse', label = 'Warehouse', icon = 'box' },
{ type = 'garage', label = 'Garage', icon = 'car' },
{ type = 'office', label = 'Office', icon = 'sitemap' },
{ type = 'store', label = 'Store', icon = 'shopping-cart' },
{ type = 'industrial', label = 'Industrial', icon = 'cog' },
{ type = 'land', label = 'Land/Lot', icon = 'map' },
{ type = 'other', label = 'Other', icon = 'question-circle' },
}

Config.EvidenceTypes = { -- icons from https://primevue.org/icons/#list
{ type = 'photo_video', label = 'Photo/Video', icon = 'camera' },
{ type = 'document', label = 'Document', icon = 'file' },
{ type = 'physical_item', label = 'Physical Item', icon = 'box' },
{ type = 'biological', label = 'Biological', icon = 'heart' },
{ type = 'digital', label = 'Digital', icon = 'desktop' },
{ type = 'weapon', label = 'Weapon', icon = 'shield' },
{ type = 'drugs', label = 'Drugs', icon = 'filter' },
{ type = 'other', label = 'Other', icon = 'question-circle' },
}

--[[
YOU CAN USE ACE PERMISSIONS TO ALLOW CERTAIN PLAYERS/GROUPS TO ACCESS THE STAFF PANEL
EXAMPLE:
add_ace group.admin mdt.staff allow
add_ace identifier.fivem:1432744 mdt.staff allow #Rejox

OR YOU CAN USE THE STAFF GROUPS BELOW
--]]
Config.StaffGroups = {
'superadmin',
'admin',
'god',
'mod',
}

Config.UI = {
color = { -- Default colors, departments will override these
primary = { -- The number are shades, 50 is the lightest and 950 is the darkest
[50] = "#EBF5FF",
[100] = "#D6EBFF",
[200] = "#ADD6FF",
[300] = "#85C1FF",
[400] = "#5CACFF",
[500] = "#3B82F6",
[600] = "#2563EB",
[700] = "#1D4ED8",
[800] = "#1E40AF",
[900] = "#1E3A8A",
[950] = "#172554",
},
}
}

Config.Weapons = {
{ name = 'weapon_pistol', label = 'Pistol' },
{ name = 'weapon_pistol_mk2', label = 'Pistol Mk II' },
{ name = 'weapon_combatpistol', label = 'Combat Pistol' },
{ name = 'weapon_appistol', label = 'AP Pistol' },
{ name = 'weapon_pistol50', label = 'Pistol .50' },
{ name = 'weapon_snspistol', label = 'SNS Pistol' },
{ name = 'weapon_snspistol_mk2', label = 'SNS Pistol Mk II' },
{ name = 'weapon_heavypistol', label = 'Heavy Pistol' },
{ name = 'weapon_vintagepistol', label = 'Vintage Pistol' },
{ name = 'weapon_marksmanpistol', label = 'Marksman Pistol' },
{ name = 'weapon_revolver', label = 'Heavy Revolver' },
{ name = 'weapon_revolver_mk2', label = 'Heavy Revolver Mk II' },
{ name = 'weapon_doubleaction', label = 'Double Action Revolver' },
{ name = 'weapon_ceramicpistol', label = 'Ceramic Pistol' },
{ name = 'weapon_navyrevolver', label = 'Navy Revolver' },
{ name = 'weapon_gadgetpistol', label = 'Perico Pistol' },
-- SMGs
{ name = 'weapon_microsmg', label = 'Micro SMG' },
{ name = 'weapon_smg', label = 'SMG' },
{ name = 'weapon_smg_mk2', label = 'SMG Mk II' },
{ name = 'weapon_assaultsmg', label = 'Assault SMG' },
{ name = 'weapon_combatpdw', label = 'Combat PDW' },
{ name = 'weapon_machinepistol', label = 'Machine Pistol' },
{ name = 'weapon_minismg', label = 'Mini SMG' },
-- Shotguns
{ name = 'weapon_pumpshotgun', label = 'Pump Shotgun' },
{ name = 'weapon_pumpshotgun_mk2', label = 'Pump Shotgun Mk II' },
{ name = 'weapon_sawnoffshotgun', label = 'Sawed-Off Shotgun' },
{ name = 'weapon_assaultshotgun', label = 'Assault Shotgun' },
{ name = 'weapon_bullpupshotgun', label = 'Bullpup Shotgun' },
{ name = 'weapon_musket', label = 'Musket' },
{ name = 'weapon_heavyshotgun', label = 'Heavy Shotgun' },
{ name = 'weapon_dbshotgun', label = 'Double Barrel Shotgun' },
{ name = 'weapon_autoshotgun', label = 'Sweeper Shotgun' },
{ name = 'weapon_combatshotgun', label = 'Combat Shotgun' },
-- Assault Rifles
{ name = 'weapon_assaultrifle', label = 'Assault Rifle' },
{ name = 'weapon_assaultrifle_mk2', label = 'Assault Rifle Mk II' },
{ name = 'weapon_carbinerifle', label = 'Carbine Rifle' },
{ name = 'weapon_carbinerifle_mk2', label = 'Carbine Rifle Mk II' },
{ name = 'weapon_advancedrifle', label = 'Advanced Rifle' },
{ name = 'weapon_specialcarbine', label = 'Special Carbine' },
{ name = 'weapon_specialcarbine_mk2', label = 'Special Carbine Mk II' },
{ name = 'weapon_bullpuprifle', label = 'Bullpup Rifle' },
{ name = 'weapon_bullpuprifle_mk2', label = 'Bullpup Rifle Mk II' },
{ name = 'weapon_compactrifle', label = 'Compact Rifle' },
{ name = 'weapon_militaryrifle', label = 'Military Rifle' },
{ name = 'weapon_heavyrifle', label = 'Heavy Rifle' },
-- Snipers
{ name = 'weapon_sniperrifle', label = 'Sniper Rifle' },
{ name = 'weapon_heavysniper', label = 'Heavy Sniper' },
{ name = 'weapon_heavysniper_mk2', label = 'Heavy Sniper Mk II' },
{ name = 'weapon_marksmanrifle', label = 'Marksman Rifle' },
{ name = 'weapon_marksmanrifle_mk2', label = 'Marksman Rifle Mk II' },
-- Melee
{ name = 'weapon_knife', label = 'Knife' },
{ name = 'weapon_nightstick', label = 'Nightstick' },
{ name = 'weapon_hammer', label = 'Hammer' },
{ name = 'weapon_bat', label = 'Baseball Bat' },
{ name = 'weapon_crowbar', label = 'Crowbar' },
{ name = 'weapon_golfclub', label = 'Golf Club' },
{ name = 'weapon_bottle', label = 'Bottle' },
{ name = 'weapon_dagger', label = 'Dagger' },
{ name = 'weapon_hatchet', label = 'Hatchet' },
{ name = 'weapon_knuckle', label = 'Knuckle Dusters' },
{ name = 'weapon_machete', label = 'Machete' },
{ name = 'weapon_flashlight', label = 'Flashlight' },
{ name = 'weapon_switchblade', label = 'Switchblade' },
{ name = 'weapon_poolcue', label = 'Pool Cue' },
{ name = 'weapon_wrench', label = 'Wrench' },
{ name = 'weapon_battleaxe', label = 'Battle Axe' },
}

Config.VehicleTypes = {
{ type = "car", label = "Car", icon = "car" },
{ type = "motorcycle", label = "Motorcycle", icon = "car" },
{ type = "truck", label = "Truck", icon = "truck" },
{ type = "suv", label = "SUV", icon = "truck" },
{ type = "van", label = "Van", icon = "truck" },
{ type = "emergency", label = "Emergency", icon = "truck" },
{ type = "helicopter", label = "Helicopter", icon = "car" },
{ type = "plane", label = "Plane", icon = "car" },
{ type = "boat", label = "Boat", icon = "car" },
{ type = "bicycle", label = "Bicycle", icon = "car" },
{ type = "off_road", label = "Off-Road", icon = "truck" },
{ type = "sports", label = "Sports", icon = "car" },
{ type = "super", label = "Super", icon = "car" },
{ type = "sedan", label = "Sedan", icon = "car" },
{ type = "coupe", label = "Coupe", icon = "car" },
{ type = "muscle", label = "Muscle", icon = "car" },
{ type = "sports_classic", label = "Sports Classic", icon = "car" },
{ type = "compact", label = "Compact", icon = "car" },
{ type = "utility", label = "Utility", icon = "truck" },
{ type = "industrial", label = "Industrial", icon = "truck" },
{ type = "service", label = "Service", icon = "truck" },
{ type = "military", label = "Military", icon = "truck" },
{ type = "commercial", label = "Commercial", icon = "truck" },
}

--[[
ONLY CHANGE THIS PART IF YOU HAVE RENAMED SCRIPTS SUCH AS FRAMEWORK, TARGET, INVENTORY ETC
RENAME THE SCRIPT NAME TO THE NEW NAME
--]]
---@type table Only change these if you have changed the name of a resource
Resources = {
SCREENBASIC = { name = 'screenshot-basic', export = 'all' },
OBJECTGIZMO = { name = 'object_gizmo', export = 'all' },
}
IgnoreScriptFoundLogs = false
ShowDebugPrints = false