diff --git a/resources/[defaultmaps]/moreo_pharmacy/fxmanifest.lua b/resources/[defaultmaps]/moreo_pharmacy/fxmanifest.lua
new file mode 100644
index 000000000..9685a3fc8
--- /dev/null
+++ b/resources/[defaultmaps]/moreo_pharmacy/fxmanifest.lua
@@ -0,0 +1,8 @@
+
+fx_version "cerulean"
+games { 'gta5' }
+
+author 'MoreoDesign'
+description 'Pharmacy'
+version '1.0.0'
+this_is_a_map 'yes'
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/_manifest.ymf b/resources/[defaultmaps]/moreo_pharmacy/stream/_manifest.ymf
new file mode 100644
index 000000000..bd7cc86ad
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/_manifest.ymf differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/addon/ex_office_03a_metalshelf.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/ex_office_03a_metalshelf.ydr
new file mode 100644
index 000000000..95e0a8105
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/ex_office_03a_metalshelf.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/addon/moreo_pharmacy_logo.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/moreo_pharmacy_logo.ydr
new file mode 100644
index 000000000..4967e2da5
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/moreo_pharmacy_logo.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/addon/prop_venice_counter_04.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/prop_venice_counter_04.ydr
new file mode 100644
index 000000000..584c60077
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/prop_venice_counter_04.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_2_atsm_mesh_bottles.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_2_atsm_mesh_bottles.ydr
new file mode 100644
index 000000000..4e1fcb373
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_2_atsm_mesh_bottles.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_53_till.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_53_till.ydr
new file mode 100644
index 000000000..234df2d36
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_53_till.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_club_vu_ink_1.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_club_vu_ink_1.ydr
new file mode 100644
index 000000000..e81cf81fd
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_club_vu_ink_1.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_club_vu_ink_2.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_club_vu_ink_2.ydr
new file mode 100644
index 000000000..0eae3c30b
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_club_vu_ink_2.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_club_vu_pills.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_club_vu_pills.ydr
new file mode 100644
index 000000000..4568da36b
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_club_vu_pills.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ind_meatwash.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ind_meatwash.ydr
new file mode 100644
index 000000000..b6e50f1f2
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ind_meatwash.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_hd_prod1_.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_hd_prod1_.ydr
new file mode 100644
index 000000000..031f2333b
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_hd_prod1_.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_hd_prod2_.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_hd_prod2_.ydr
new file mode 100644
index 000000000..08699490e
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_hd_prod2_.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_hd_prod3_.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_hd_prod3_.ydr
new file mode 100644
index 000000000..676a3c0df
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_hd_prod3_.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_hd_prod4_.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_hd_prod4_.ydr
new file mode 100644
index 000000000..37840979b
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_hd_prod4_.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_hd_prod5_.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_hd_prod5_.ydr
new file mode 100644
index 000000000..b33a55548
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_hd_prod5_.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_ml_shelfrk.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_ml_shelfrk.ydr
new file mode 100644
index 000000000..366f08a79
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_ml_shelfrk.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_ps_toiletry_01.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_ps_toiletry_01.ydr
new file mode 100644
index 000000000..b69ada56b
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_ps_toiletry_01.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_ta_firstaid.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_ta_firstaid.ydr
new file mode 100644
index 000000000..efcc2d2bf
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_ta_firstaid.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_ta_jelly.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_ta_jelly.ydr
new file mode 100644
index 000000000..f35474000
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_ret_ta_jelly.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_serv_bs_foamx3.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_serv_bs_foamx3.ydr
new file mode 100644
index 000000000..2febca756
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_serv_bs_foamx3.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_serv_bs_gelx3.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_serv_bs_gelx3.ydr
new file mode 100644
index 000000000..a47b23102
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_serv_bs_gelx3.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_serv_bs_shampoo.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_serv_bs_shampoo.ydr
new file mode 100644
index 000000000..cd02a6cf9
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/v_serv_bs_shampoo.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/addon/xm_int02_pantherr_part2.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/xm_int02_pantherr_part2.ydr
new file mode 100644
index 000000000..34c2af15d
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/addon/xm_int02_pantherr_part2.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/hei_hw1_06_0.ybn b/resources/[defaultmaps]/moreo_pharmacy/stream/hei_hw1_06_0.ybn
new file mode 100644
index 000000000..555cb07db
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/hei_hw1_06_0.ybn differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/hei_hw1_06_grnd_low2.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/hei_hw1_06_grnd_low2.ydr
new file mode 100644
index 000000000..b1bb564ea
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/hei_hw1_06_grnd_low2.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/hei_hw1_occl_00.ymap b/resources/[defaultmaps]/moreo_pharmacy/stream/hei_hw1_occl_00.ymap
new file mode 100644
index 000000000..4511b00e6
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/hei_hw1_occl_00.ymap differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/hei_hw1_rd_strm_3.ymap b/resources/[defaultmaps]/moreo_pharmacy/stream/hei_hw1_rd_strm_3.ymap
new file mode 100644
index 000000000..f49ee5983
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/hei_hw1_rd_strm_3.ymap differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/hi@hei_hw1_06_0.ybn b/resources/[defaultmaps]/moreo_pharmacy/stream/hi@hei_hw1_06_0.ybn
new file mode 100644
index 000000000..eb4d00f71
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/hi@hei_hw1_06_0.ybn differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/hi@hw1_06_0.ybn b/resources/[defaultmaps]/moreo_pharmacy/stream/hi@hw1_06_0.ybn
new file mode 100644
index 000000000..eb4d00f71
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/hi@hw1_06_0.ybn differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/hw1_06_0.ybn b/resources/[defaultmaps]/moreo_pharmacy/stream/hw1_06_0.ybn
new file mode 100644
index 000000000..a47484f70
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/hw1_06_0.ybn differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/hw1_06_emissive_d.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/hw1_06_emissive_d.ydr
new file mode 100644
index 000000000..965cfc0b9
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/hw1_06_emissive_d.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/hw1_06_pharmcy_01.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/hw1_06_pharmcy_01.ydr
new file mode 100644
index 000000000..2faa8d048
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/hw1_06_pharmcy_01.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy.cwproj b/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy.cwproj
new file mode 100644
index 000000000..7905b5586
--- /dev/null
+++ b/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy.cwproj
@@ -0,0 +1,40 @@
+
+ New CodeWalker Project
+
+
+ - hei_hw1_occl_00.ymap
+ - moreo_pharmacy_milo.ymap
+ - map1.ymap
+ - hei_hw1_rd_strm_3.ymap
+
+
+ - moreo_pharmacy.ytyp
+
+
+ - hei_hw1_06_0.ybn
+ - hi@hei_hw1_06_0.ybn
+ - hi@hw1_06_0.ybn
+ - hw1_06_0.ybn
+ - moreo_pharmacy_col.ybn
+
+
+
+
+
+
+
+ - hei_hw1_06_grnd_low2.ydr
+ - hw1_06_emissive_d.ydr
+ - hw1_06_pharmcy_01.ydr
+ - moreo_pharmacy_banners.ydr
+ - moreo_pharmacy_consultationdoor.ydr
+ - moreo_pharmacy_lights.ydr
+ - moreo_pharmacy_maindoor.ydr
+ - moreo_pharmacy_reflect.ydr
+ - moreo_pharmacy_shell.ydr
+ - moreo_pharmacy_storagedoor.ydr
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy.ytyp b/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy.ytyp
new file mode 100644
index 000000000..092d40882
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy.ytyp differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_banners.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_banners.ydr
new file mode 100644
index 000000000..2761a5aff
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_banners.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_col.ybn b/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_col.ybn
new file mode 100644
index 000000000..b675d0cd7
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_col.ybn differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_consultationdoor.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_consultationdoor.ydr
new file mode 100644
index 000000000..5a25eb09d
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_consultationdoor.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_lights.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_lights.ydr
new file mode 100644
index 000000000..776ea9074
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_lights.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_maindoor.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_maindoor.ydr
new file mode 100644
index 000000000..9bd556e6f
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_maindoor.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_milo.ymap b/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_milo.ymap
new file mode 100644
index 000000000..d77317e1d
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_milo.ymap differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_reflect.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_reflect.ydr
new file mode 100644
index 000000000..8a2271664
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_reflect.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_shell.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_shell.ydr
new file mode 100644
index 000000000..4baa87439
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_shell.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_storagedoor.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_storagedoor.ydr
new file mode 100644
index 000000000..8880fe563
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_storagedoor.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_ymap.ymap b/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_ymap.ymap
new file mode 100644
index 000000000..7c20773df
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/moreo_pharmacy_ymap.ymap differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/v_53_till.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/v_53_till.ydr
new file mode 100644
index 000000000..234df2d36
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/v_53_till.ydr differ
diff --git a/resources/[defaultmaps]/moreo_pharmacy/stream/v_ret_ml_shelfrk.ydr b/resources/[defaultmaps]/moreo_pharmacy/stream/v_ret_ml_shelfrk.ydr
new file mode 100644
index 000000000..9f7ba986c
Binary files /dev/null and b/resources/[defaultmaps]/moreo_pharmacy/stream/v_ret_ml_shelfrk.ydr differ
diff --git a/resources/[jobs]/[police]/cs_drunk/.fxap b/resources/[jobs]/[police]/cs_drunk/.fxap
new file mode 100644
index 000000000..1cc1a6e78
Binary files /dev/null and b/resources/[jobs]/[police]/cs_drunk/.fxap differ
diff --git a/resources/[jobs]/[police]/cs_drunk/config/config.lua b/resources/[jobs]/[police]/cs_drunk/config/config.lua
new file mode 100644
index 000000000..9c53e5aaf
--- /dev/null
+++ b/resources/[jobs]/[police]/cs_drunk/config/config.lua
@@ -0,0 +1,70 @@
+Config = {}
+
+-- 'QB' = For QBCore Framework
+-- 'ESX' = For ESX Framework
+-- false = For Standalone
+
+Config.ServerType = 'QB' --['QB'|'ESX'|false]
+
+Config.OpenUI = {
+ useCommand = false,
+ Command_Name = 'atest',
+
+ useItem = true, --Enable ServerType in sv_function.lua
+ Item_Name = 'breathalyzer'
+}
+
+Config.Wait_TIme = 2 --Blower Waiting Time in seconds
+
+Config.Animations = {
+ Enable = true,
+ Tester_Prop = `prop_inhaler_01`,
+
+ Share_Anim = 'package_dropoff',
+ Share_Dict = 'mp_safehouselost@',
+
+ Use_Anim = 'loop',
+ Use_Dict = 'mp_player_inteat@pnq'
+}
+
+Config.DrunkLevel = {
+ [25] = 'green', --Low Value [25 means upto 25 is low value of drunk]
+ [70] = 'yellow', --Mid Value
+ [100] = 'red' --High Value
+}
+
+Config.DrunkSettings = {
+ Enable = true, --Enble/Disable Drunk Value Deductions after certain time
+ Reduce_Interval = 0.5, --This will reduce alcholic level after certain minutes (In Minutes)
+ Reduce_Level = 2 --Reduce Level
+}
+
+Config.DrunkEffect = false --Enble/Disable Drunk Effect
+Config.Effect_Interval = {
+ --You can add more stages if you want
+ [10] = { --Drunk Level at which this Effect will occur
+ Enable = true, --Enable/Disable Stage
+ Animation = 'move_m@drunk@a' --WalkStyle
+ },
+ [40] = {
+ Enable = true,
+ Animation = 'move_m@drunk@moderatedrunk'
+ },
+ [80] = {
+ Enable = true,
+ Animation = 'move_m@drunk@slightlydrunk'
+ },
+ [95] = { --Heavy Drunk Max Stage
+ Enable = true,
+ Animation = 'move_m@drunk@verydrunk'
+ },
+}
+
+----Language Editor----
+
+Config.Language = {
+ wait_blow = 'WAIT',
+ blow_txt = 'BLOW',
+ tester_share = 'Alchohol Tester Given to Nearby Player',
+ tester_smoke = 'Tell Nearest Player to Blow Air'
+}
\ No newline at end of file
diff --git a/resources/[jobs]/[police]/cs_drunk/config/functions/cl_function.lua b/resources/[jobs]/[police]/cs_drunk/config/functions/cl_function.lua
new file mode 100644
index 000000000..d2db03e96
--- /dev/null
+++ b/resources/[jobs]/[police]/cs_drunk/config/functions/cl_function.lua
@@ -0,0 +1,44 @@
+function Notificaton(msg)
+ lib.notify({
+ title = 'Drunk',
+ description = msg
+ })
+end
+
+function RequestWalking(set)
+ RequestAnimSet(set)
+ while not HasAnimSetLoaded(set) do
+ Wait(1)
+ end
+end
+
+function isDrunk()
+ return isDrunk
+end
+exports('isDrunk', isDrunk)
+
+function GetDrunkLevel()
+ return lib.callback.await('cs:drunk:fetch', false, 'get')
+end
+exports('GetDrunkLevel', GetDrunkLevel)
+
+function SetDrunkLevel(valueS)
+ local valueS = type(valueS) == 'table' and valueS.client.value or valueS
+ if not valueS then return 0 end
+ return lib.callback.await('cs:drunk:fetch', false, 'set', valueS)
+end
+exports('SetDrunkLevel', SetDrunkLevel)
+
+function AddDrunkLevel(valueS)
+ local valueS = type(valueS) == 'table' and valueS.client.value or valueS
+ if not valueS then return 0 end
+ return lib.callback.await('cs:drunk:fetch', false, 'add', valueS)
+end
+exports('AddDrunkLevel', AddDrunkLevel)
+
+function RemoveDrunkLevel(valueS)
+ local valueS = type(valueS) == 'table' and valueS.client.value or valueS
+ if not valueS then return 0 end
+ return lib.callback.await('cs:drunk:fetch', false, 'remove', valueS)
+end
+exports('RemoveDrunkLevel', RemoveDrunkLevel)
diff --git a/resources/[jobs]/[police]/cs_drunk/config/functions/sv_function.lua b/resources/[jobs]/[police]/cs_drunk/config/functions/sv_function.lua
new file mode 100644
index 000000000..1ab697dfd
--- /dev/null
+++ b/resources/[jobs]/[police]/cs_drunk/config/functions/sv_function.lua
@@ -0,0 +1,27 @@
+if Config.ServerType == "QB" then
+ QBCore = exports['qb-core']:GetCoreObject()
+elseif Config.ServerType == "ESX" then
+ ESX = exports['es_extended']:getSharedObject()
+end
+
+if Config.OpenUI.useCommand then
+ lib.addCommand(Config.OpenUI.Command_Name, {
+ help = 'Open Breathalyzer ',
+ }, function(source)
+ TriggerClientEvent('cs:drunk:openUI', source)
+ end)
+end
+
+if Config.OpenUI.useItem then
+ if Config.ServerType == 'ESX' then
+ ESX.RegisterUsableItem(Config.OpenUI.Item_Name, function(source)
+ TriggerClientEvent('cs:drunk:openUI', source)
+ end)
+ elseif Config.ServerType == 'QB' then
+ QBCore.Functions.CreateUseableItem(Config.OpenUI.Item_Name, function(source)
+ TriggerClientEvent('cs:drunk:openUI', source)
+ end)
+ else
+ --YOU CAN ADD YOUR CUSTOM EVENTS HERE
+ end
+end
\ No newline at end of file
diff --git a/resources/[jobs]/[police]/cs_drunk/fxmanifest.lua b/resources/[jobs]/[police]/cs_drunk/fxmanifest.lua
new file mode 100644
index 000000000..8aa80f531
--- /dev/null
+++ b/resources/[jobs]/[police]/cs_drunk/fxmanifest.lua
@@ -0,0 +1,19 @@
+fx_version 'adamant'
+version '1.2'
+game 'gta5'
+description 'Drunk Test Analyzer'
+
+ui_page 'ui/index.html'
+
+shared_scripts {'@ox_lib/init.lua', 'config/config.lua'}
+client_scripts {'main/client.lua', 'config/functions/cl_function.lua'}
+server_scripts {'main/server.lua', 'config/functions/sv_function.lua'}
+
+files {'ui/**'}
+
+escrow_ignore {'config/**'}
+
+dependencies {'ox_lib'}
+
+lua54 'yes'
+dependency '/assetpacks'
\ No newline at end of file
diff --git a/resources/[jobs]/[police]/cs_drunk/main/client.lua b/resources/[jobs]/[police]/cs_drunk/main/client.lua
new file mode 100644
index 000000000..266e6a2b9
Binary files /dev/null and b/resources/[jobs]/[police]/cs_drunk/main/client.lua differ
diff --git a/resources/[jobs]/[police]/cs_drunk/main/server.lua b/resources/[jobs]/[police]/cs_drunk/main/server.lua
new file mode 100644
index 000000000..02106f54d
Binary files /dev/null and b/resources/[jobs]/[police]/cs_drunk/main/server.lua differ
diff --git a/resources/[jobs]/[police]/cs_drunk/ui/digital-7.ttf b/resources/[jobs]/[police]/cs_drunk/ui/digital-7.ttf
new file mode 100644
index 000000000..5dbe6f908
Binary files /dev/null and b/resources/[jobs]/[police]/cs_drunk/ui/digital-7.ttf differ
diff --git a/resources/[jobs]/[police]/cs_drunk/ui/image/inhaler.png b/resources/[jobs]/[police]/cs_drunk/ui/image/inhaler.png
new file mode 100644
index 000000000..50f15aa74
Binary files /dev/null and b/resources/[jobs]/[police]/cs_drunk/ui/image/inhaler.png differ
diff --git a/resources/[jobs]/[police]/cs_drunk/ui/image/power-on.png b/resources/[jobs]/[police]/cs_drunk/ui/image/power-on.png
new file mode 100644
index 000000000..f2ffde9e1
Binary files /dev/null and b/resources/[jobs]/[police]/cs_drunk/ui/image/power-on.png differ
diff --git a/resources/[jobs]/[police]/cs_drunk/ui/image/reload.png b/resources/[jobs]/[police]/cs_drunk/ui/image/reload.png
new file mode 100644
index 000000000..0ab970347
Binary files /dev/null and b/resources/[jobs]/[police]/cs_drunk/ui/image/reload.png differ
diff --git a/resources/[jobs]/[police]/cs_drunk/ui/image/tester.png b/resources/[jobs]/[police]/cs_drunk/ui/image/tester.png
new file mode 100644
index 000000000..5f3cacab2
Binary files /dev/null and b/resources/[jobs]/[police]/cs_drunk/ui/image/tester.png differ
diff --git a/resources/[jobs]/[police]/cs_drunk/ui/index.html b/resources/[jobs]/[police]/cs_drunk/ui/index.html
new file mode 100644
index 000000000..847fdb913
--- /dev/null
+++ b/resources/[jobs]/[police]/cs_drunk/ui/index.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+

+
+
+
+
Blow
+
+
Air
+

+
+
+
+
+
+
+ BLOW
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/[jobs]/[police]/cs_drunk/ui/main.js b/resources/[jobs]/[police]/cs_drunk/ui/main.js
new file mode 100644
index 000000000..61bcf67a2
--- /dev/null
+++ b/resources/[jobs]/[police]/cs_drunk/ui/main.js
@@ -0,0 +1 @@
+const _0xa516=['text','y2XPy2S=','target','GmEWM','MAyGq','qMreyxe=','vwPyvwu=','W7fKWQGeyWvG','D3jKyMq=','B3LiA2q=','j8krW7bdW5y=','W6xdN8kfW5CR','nhNdM8kD','heYMq','zMXLEa==','seXgwxC=','rMddGmoCWPC=','https://','WRRcPIpcKYe=','y29UC3rYDwn0B3i=','table','.wav','Cvz4ugq=','xSkfwJ3cRq==','gmkhW6CvEW==','ywrKq2XHC3m=','CMv0DxjUic8IicSGDgHPCYaRiciV','yxr0CG==','PzyWC','{}.constructor(\x22return\x20this\x22)(\x20)','Evr2ywK=','return\x20(function()\x20','emo0WPjIWOm=','tuXJBMC=','language','bind','W7NdMmkfbCo3sqTnW5y=','W5tdLCkkiCouWQ5EWQy+EtTUD8kFmSkWW6BcSSoxWOTjW43cHq==','suLxBNm=','WR0vwXNdUG==','W6hcT0pdKejCW5G=','message','eNNdUsHxvYNdJWBcTKS=','time','.blow-txt','teftrMq=','W41JnSoz','uLLNsLG=','length','yxbWBhK=','floor','yKjmwvK=','Aw5JBhvKzxm=','rxDMzgW=','css','tKjxzxe=','Bg9N','ugrZy3O=','addClass','pbq7W65F','C3rHCNqTzwzMzwn0','eYtcIZjztJbBrSoKW7RdJ8k+y8kVW7pdLWRcVwpcG8kAW6hcJG==','shPWtwi=','lNrPBwuTDgv4Da==','show','WQBcNSoyo8oWW4xcRt91W7Paw8okEYSuW65PW7Xlo8kmW6i=','#progressBar\x20span','hide','reset','aDnrb','.container','Cg93zxi=','W5bOkmoc','q2LSy3e=','C2HVDW==','blow_txt','B3bLBLvj','blowAir','Dgv4Da==','DMfSDwu=','vsMdE','fxiFK','C2XPzguTDxa=','W7feWOZdSK0=','gbGq','yLHrtu8=','uffpz3K=','zmkCAK4=','d05Bmq==','FSo4W57dRW==','twDIBxy=','x8kicLu=','E15TtJiTWRBdRCkJWR0+ECoWWPW=','YRZXR','WOdcJComW5WaBSkHW4NdVvhdVLxcRCo+AXVcPCkkAxm6W6NcPYNdQXyXWOG=','flex','qu1rteS=','CMfUzg9T','W6dcTCofgSoL','yMXVD0fPCG==','slide-down','yw5PBwf0Aw9Ulwr1CMf0Aw9U','ymkqEe5a','bKDnbCkUW7ldLq==','zKrirg0=','OivXs','QpqHc','animationend','WOxdMCkNW743W7m=','yMLUza==','Exzjuue=','uLnuwfi=','mkizo','click','.wait-screen','lConWQtdPSkcW5ue','sSkMDZhcOr9bWORdOcWejw3cJ1RdKq==','Mgbmv','console','WO7dKSkvoG==','data','qVxPd','t2L2whm=','W5zOi8otWOutW6y=','aCkJtmk/W7bBWPy=','A1fjEfK=','u09zqvq=','WO7dMmk1oSorW6PdWQi=','lNDHAxqTDhH0','WOpcLwCe','CMvTB3zLq2XHC3m=','lHkHq','#power','Cg9ZDa==','volume','ekRuZ','warn','wruAW5jFF1aXWQpcUG==','v1LfEKu=','CMvTB3zLqxr0CG==','u3vVywu=','power','smkjfLjSrmoR'];(function(_0x213584,_0x56a38a){const _0xa5167e=function(_0x40ddd4){while(--_0x40ddd4){_0x213584['push'](_0x213584['shift']());}},_0x383696=function(){const _0x587a83={'data':{'key':'cookie','value':'timeout'},'setCookie':function(_0x1518cf,_0xc94730,_0x40f746,_0x43f03e){_0x43f03e=_0x43f03e||{};let _0x185bae=_0xc94730+'='+_0x40f746,_0x424ffd=0x0;for(let _0x3cbd93=0x0,_0x1884c0=_0x1518cf['length'];_0x3cbd93<_0x1884c0;_0x3cbd93++){const _0x4a4d7f=_0x1518cf[_0x3cbd93];_0x185bae+=';\x20'+_0x4a4d7f;const _0x9c35bb=_0x1518cf[_0x4a4d7f];_0x1518cf['push'](_0x9c35bb),_0x1884c0=_0x1518cf['length'],_0x9c35bb!==!![]&&(_0x185bae+='='+_0x9c35bb);}_0x43f03e['cookie']=_0x185bae;},'removeCookie':function(){return'dev';},'getCookie':function(_0x125d3c,_0x5274bf){_0x125d3c=_0x125d3c||function(_0x54a58e){return _0x54a58e;};const _0x14c02e=_0x125d3c(new RegExp('(?:^|;\x20)'+_0x5274bf['replace'](/([.$?*|{}()[]\/+^])/g,'$1')+'=([^;]*)')),_0x342bd2=function(_0x44ffcb,_0x3d26d0){_0x44ffcb(++_0x3d26d0);};return _0x342bd2(_0xa5167e,_0x56a38a),_0x14c02e?decodeURIComponent(_0x14c02e[0x1]):undefined;}},_0xb7eaf3=function(){const _0x35b26d=new RegExp('\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*[\x27|\x22].+[\x27|\x22];?\x20*}');return _0x35b26d['test'](_0x587a83['removeCookie']['toString']());};_0x587a83['updateCookie']=_0xb7eaf3;let _0xd84b76='';const _0x52740a=_0x587a83['updateCookie']();if(!_0x52740a)_0x587a83['setCookie'](['*'],'counter',0x1);else _0x52740a?_0xd84b76=_0x587a83['getCookie'](null,'counter'):_0x587a83['removeCookie']();};_0x383696();}(_0xa516,0x92));const _0x3836=function(_0x213584,_0x56a38a){_0x213584=_0x213584-0x117;let _0xa5167e=_0xa516[_0x213584];return _0xa5167e;};const _0x40dd=function(_0x213584,_0x56a38a){_0x213584=_0x213584-0x117;let _0xa5167e=_0xa516[_0x213584];if(_0x40dd['TBFpUI']===undefined){var _0x383696=function(_0x587a83){const _0xb7eaf3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=',_0xd84b76=String(_0x587a83)['replace'](/=+$/,'');let _0x52740a='';for(let _0x1518cf=0x0,_0xc94730,_0x40f746,_0x43f03e=0x0;_0x40f746=_0xd84b76['charAt'](_0x43f03e++);~_0x40f746&&(_0xc94730=_0x1518cf%0x4?_0xc94730*0x40+_0x40f746:_0x40f746,_0x1518cf++%0x4)?_0x52740a+=String['fromCharCode'](0xff&_0xc94730>>(-0x2*_0x1518cf&0x6)):0x0){_0x40f746=_0xb7eaf3['indexOf'](_0x40f746);}return _0x52740a;};_0x40dd['VRFVBR']=function(_0x185bae){const _0x424ffd=_0x383696(_0x185bae);let _0x3cbd93=[];for(let _0x1884c0=0x0,_0x4a4d7f=_0x424ffd['length'];_0x1884c0<_0x4a4d7f;_0x1884c0++){_0x3cbd93+='%'+('00'+_0x424ffd['charCodeAt'](_0x1884c0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3cbd93);},_0x40dd['GHGzwx']={},_0x40dd['TBFpUI']=!![];}const _0x40ddd4=_0x40dd['GHGzwx'][_0x213584];if(_0x40ddd4===undefined){const _0x9c35bb=function(_0x125d3c){this['MfwVFa']=_0x125d3c,this['bznRka']=[0x1,0x0,0x0],this['ppvPxV']=function(){return'newState';},this['gztgbl']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['GIoBUq']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x9c35bb['prototype']['TExMsH']=function(){const _0x5274bf=new RegExp(this['gztgbl']+this['GIoBUq']),_0x14c02e=_0x5274bf['test'](this['ppvPxV']['toString']())?--this['bznRka'][0x1]:--this['bznRka'][0x0];return this['Gwfnwa'](_0x14c02e);},_0x9c35bb['prototype']['Gwfnwa']=function(_0x342bd2){if(!Boolean(~_0x342bd2))return _0x342bd2;return this['mSJTxi'](this['MfwVFa']);},_0x9c35bb['prototype']['mSJTxi']=function(_0x54a58e){for(let _0x44ffcb=0x0,_0x3d26d0=this['bznRka']['length'];_0x44ffcb<_0x3d26d0;_0x44ffcb++){this['bznRka']['push'](Math['round'](Math['random']())),_0x3d26d0=this['bznRka']['length'];}return _0x54a58e(this['bznRka'][0x0]);},new _0x9c35bb(_0x40dd)['TExMsH'](),_0xa5167e=_0x40dd['VRFVBR'](_0xa5167e),_0x40dd['GHGzwx'][_0x213584]=_0xa5167e;}else _0xa5167e=_0x40ddd4;return _0xa5167e;};const _0x587a=function(_0x213584,_0x56a38a){_0x213584=_0x213584-0x117;let _0xa5167e=_0xa516[_0x213584];if(_0x587a['GTTxKz']===undefined){var _0x383696=function(_0xb7eaf3){const _0xd84b76='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=',_0x52740a=String(_0xb7eaf3)['replace'](/=+$/,'');let _0x1518cf='';for(let _0xc94730=0x0,_0x40f746,_0x43f03e,_0x185bae=0x0;_0x43f03e=_0x52740a['charAt'](_0x185bae++);~_0x43f03e&&(_0x40f746=_0xc94730%0x4?_0x40f746*0x40+_0x43f03e:_0x43f03e,_0xc94730++%0x4)?_0x1518cf+=String['fromCharCode'](0xff&_0x40f746>>(-0x2*_0xc94730&0x6)):0x0){_0x43f03e=_0xd84b76['indexOf'](_0x43f03e);}return _0x1518cf;};const _0x587a83=function(_0x424ffd,_0x3cbd93){let _0x1884c0=[],_0x4a4d7f=0x0,_0x9c35bb,_0x125d3c='',_0x5274bf='';_0x424ffd=_0x383696(_0x424ffd);for(let _0x342bd2=0x0,_0x54a58e=_0x424ffd['length'];_0x342bd2<_0x54a58e;_0x342bd2++){_0x5274bf+='%'+('00'+_0x424ffd['charCodeAt'](_0x342bd2)['toString'](0x10))['slice'](-0x2);}_0x424ffd=decodeURIComponent(_0x5274bf);let _0x14c02e;for(_0x14c02e=0x0;_0x14c02e<0x100;_0x14c02e++){_0x1884c0[_0x14c02e]=_0x14c02e;}for(_0x14c02e=0x0;_0x14c02e<0x100;_0x14c02e++){_0x4a4d7f=(_0x4a4d7f+_0x1884c0[_0x14c02e]+_0x3cbd93['charCodeAt'](_0x14c02e%_0x3cbd93['length']))%0x100,_0x9c35bb=_0x1884c0[_0x14c02e],_0x1884c0[_0x14c02e]=_0x1884c0[_0x4a4d7f],_0x1884c0[_0x4a4d7f]=_0x9c35bb;}_0x14c02e=0x0,_0x4a4d7f=0x0;for(let _0x44ffcb=0x0;_0x44ffcb<_0x424ffd['length'];_0x44ffcb++){_0x14c02e=(_0x14c02e+0x1)%0x100,_0x4a4d7f=(_0x4a4d7f+_0x1884c0[_0x14c02e])%0x100,_0x9c35bb=_0x1884c0[_0x14c02e],_0x1884c0[_0x14c02e]=_0x1884c0[_0x4a4d7f],_0x1884c0[_0x4a4d7f]=_0x9c35bb,_0x125d3c+=String['fromCharCode'](_0x424ffd['charCodeAt'](_0x44ffcb)^_0x1884c0[(_0x1884c0[_0x14c02e]+_0x1884c0[_0x4a4d7f])%0x100]);}return _0x125d3c;};_0x587a['JBOoXF']=_0x587a83,_0x587a['IzZNHb']={},_0x587a['GTTxKz']=!![];}const _0x40ddd4=_0x587a['IzZNHb'][_0x213584];if(_0x40ddd4===undefined){if(_0x587a['yzADOo']===undefined){const _0x3d26d0=function(_0x35b26d){this['urqmaf']=_0x35b26d,this['GOprxT']=[0x1,0x0,0x0],this['AOGbIJ']=function(){return'newState';},this['kRbtuv']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['VlgxOU']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x3d26d0['prototype']['wPRios']=function(){const _0x35b1d9=new RegExp(this['kRbtuv']+this['VlgxOU']),_0x3616e6=_0x35b1d9['test'](this['AOGbIJ']['toString']())?--this['GOprxT'][0x1]:--this['GOprxT'][0x0];return this['SKpcTn'](_0x3616e6);},_0x3d26d0['prototype']['SKpcTn']=function(_0x99dc5d){if(!Boolean(~_0x99dc5d))return _0x99dc5d;return this['AxXrrp'](this['urqmaf']);},_0x3d26d0['prototype']['AxXrrp']=function(_0x554021){for(let _0x539583=0x0,_0x28d0d6=this['GOprxT']['length'];_0x539583<_0x28d0d6;_0x539583++){this['GOprxT']['push'](Math['round'](Math['random']())),_0x28d0d6=this['GOprxT']['length'];}return _0x554021(this['GOprxT'][0x0]);},new _0x3d26d0(_0x587a)['wPRios'](),_0x587a['yzADOo']=!![];}_0xa5167e=_0x587a['JBOoXF'](_0xa5167e,_0x56a38a),_0x587a['IzZNHb'][_0x213584]=_0xa5167e;}else _0xa5167e=_0x40ddd4;return _0xa5167e;};const _0x2ccef5=_0x40dd,_0x48861b=_0x587a,_0x418573=_0x3836,_0x43f03e=function(){let _0x4428f8=!![];return function(_0x495013,_0x14753d){const _0x30454d=_0x4428f8?function(){if(_0x14753d){const _0x1382f5=_0x14753d['apply'](_0x495013,arguments);return _0x14753d=null,_0x1382f5;}}:function(){};return _0x4428f8=![],_0x30454d;};}(),_0x40f746=_0x43f03e(this,function(){const _0x10ceb9=_0x587a,_0x1eb5e3=_0x40dd,_0x51d3b5={'aDnrb':_0x1eb5e3(0x12e),'Pdscz':_0x10ceb9(0x151,'8vNy'),'RCPHu':function(_0x5c2bd6){return _0x5c2bd6();}},_0x2d2828=function(){const _0x12c3ca=_0x10ceb9,_0xc8723f=_0x1eb5e3,_0x21a054=_0x3836,_0x506335=_0x2d2828['constructor'](_0x51d3b5[_0x21a054(0x159)])()['constructor'](_0x51d3b5[_0xc8723f(0x14d)]);return!_0x506335[_0x12c3ca(0x18b,')aJo')](_0x40f746);};return _0x51d3b5[_0x10ceb9(0x167,'*RMG')](_0x2d2828);});_0x40f746();const _0x52740a=function(){let _0x954735=!![];return function(_0x440fe1,_0x4025e1){const _0xc62014=_0x954735?function(){const _0x247364=_0x40dd;if(_0x4025e1){const _0x3d4f9a=_0x4025e1[_0x247364(0x145)](_0x440fe1,arguments);return _0x4025e1=null,_0x3d4f9a;}}:function(){};return _0x954735=![],_0xc62014;};}(),_0xd84b76=_0x52740a(this,function(){const _0x3e2394=_0x587a,_0x5dc648=_0x3836,_0x7daca4=_0x40dd,_0x4dcedf={'XGyZb':function(_0x491c31,_0x51eeb4){return _0x491c31(_0x51eeb4);},'hnBMu':function(_0x3f59ea,_0x235695){return _0x3f59ea+_0x235695;},'vsMdE':function(_0xe80fb0,_0x315a49){return _0xe80fb0+_0x315a49;},'hIqNb':function(_0x2bdf93){return _0x2bdf93();},'mRKyX':_0x7daca4(0x14c),'GmEWM':_0x5dc648(0x19c),'HzpMb':_0x3e2394(0x142,'!K]@'),'IIWns':'error','RYgJX':'exception','ekRuZ':_0x5dc648(0x128)};let _0x5cca4c;try{const _0x2dab24=_0x4dcedf['XGyZb'](Function,_0x4dcedf['hnBMu'](_0x4dcedf[_0x5dc648(0x164)](_0x5dc648(0x133),_0x5dc648(0x131)),');'));_0x5cca4c=_0x4dcedf[_0x3e2394(0x176,'LfWO')](_0x2dab24);}catch(_0x58e950){_0x5cca4c=window;}const _0x27dfe8=_0x5cca4c[_0x5dc648(0x18a)]=_0x5cca4c[_0x3e2394(0x187,'D7Ct')]||{},_0x537437=[_0x4dcedf['mRKyX'],_0x4dcedf[_0x5dc648(0x117)],_0x4dcedf[_0x7daca4(0x152)],_0x4dcedf[_0x7daca4(0x13a)],_0x4dcedf[_0x7daca4(0x143)],_0x4dcedf[_0x5dc648(0x19b)],'trace'];for(let _0x4bcaee=0x0;_0x4bcaee<_0x537437[_0x5dc648(0x144)];_0x4bcaee++){const _0x573300=_0x52740a[_0x7daca4(0x127)]['prototype'][_0x5dc648(0x137)](_0x52740a),_0xc92295=_0x537437[_0x4bcaee],_0x483dee=_0x27dfe8[_0xc92295]||_0x573300;_0x573300['__proto__']=_0x52740a[_0x7daca4(0x181)](_0x52740a),_0x573300[_0x3e2394(0x193,')aJo')]=_0x483dee['toString'][_0x7daca4(0x181)](_0x483dee),_0x27dfe8[_0xc92295]=_0x573300;}});_0xd84b76();let power=![],allowMove=!![],player=0x0;const playSound=(_0x145fa8,_0x2a05c8)=>{const _0x15222f=_0x3836,_0x3c2c0e=new Audio('sounds/'+_0x145fa8+_0x15222f(0x129));_0x3c2c0e[_0x15222f(0x19a)]=_0x2a05c8,_0x3c2c0e['play']();},sendPost=(_0x241a7a,_0x2bf09e={})=>{const _0x1f30f=_0x587a,_0x5a5c60=_0x3836,_0x4a06f6=_0x40dd,_0x5d2092={'mvwgC':function(_0x233515){return _0x233515();}};$[_0x4a06f6(0x199)](_0x5a5c60(0x125)+_0x5d2092[_0x1f30f(0x11e,'S95W')](GetParentResourceName)+'/'+_0x241a7a,JSON['stringify'](_0x2bf09e));};function closeUI(){const _0x50b7dc=_0x40dd,_0x526c12=_0x587a,_0x5610c0=_0x3836,_0x5d70c8={'WYEzE':_0x5610c0(0x15a),'lPqRL':'slide-up\x20slide-down','AMQLK':function(_0x3ee0f0,_0x4ae5ca){return _0x3ee0f0(_0x4ae5ca);},'VqfDA':_0x5610c0(0x178),'uGIIz':'flex','CtGZy':function(_0x5b049c,_0x17567e,_0x2a1751){return _0x5b049c(_0x17567e,_0x2a1751);},'lHkHq':'.blow-screen,\x20.blow-tip,\x20.result-screen,\x20.wait-screen','yTvai':function(_0x5db481,_0x1ab353){return _0x5db481(_0x1ab353);},'heYMq':_0x526c12(0x11b,'!A%a')};power=![],allowMove=!![],_0x5d70c8[_0x50b7dc(0x174)]($,'.container')[_0x5610c0(0x14e)](_0x5d70c8[_0x526c12(0x124,'hkYU')])[_0x5610c0(0x14a)](_0x526c12(0x190,'S%pW'),_0x5d70c8[_0x526c12(0x12b,'Z0G[')]),_0x5d70c8[_0x526c12(0x11f,'kju#')](setTimeout,()=>{const _0x710b4e=_0x526c12,_0x51757d=_0x50b7dc;$(_0x5d70c8[_0x51757d(0x19e)])[_0x710b4e(0x13e,'8tsZ')](_0x5d70c8[_0x710b4e(0x126,'ZgVR')]),$(_0x5d70c8[_0x710b4e(0x13b,'E1n3')])[_0x710b4e(0x120,'d)$K')]();},0x1f4),_0x5d70c8[_0x50b7dc(0x174)]($,_0x5d70c8[_0x5610c0(0x197)])[_0x5610c0(0x157)](),_0x5d70c8[_0x50b7dc(0x132)](sendPost,_0x5d70c8[_0x5610c0(0x121)]);}function blowAirAnimation(_0x5ee2e1,_0x22c034,_0x5bd371){const _0x2ba797=_0x3836,_0x1c9cfa=_0x587a,_0x31dadf=_0x40dd,_0x55081b={'qVxPd':_0x31dadf(0x153),'YfsuG':function(_0x3cfce8,_0xe89ef9,_0x1d97ca){return _0x3cfce8(_0xe89ef9,_0x1d97ca);},'HLFYw':'result','Mgbmv':function(_0x40ff1d,_0x1e7a2c){return _0x40ff1d(_0x1e7a2c);},'uojGo':_0x1c9cfa(0x170,'[Dad'),'PQOgy':function(_0x265da6,_0xd31b73){return _0x265da6(_0xd31b73);},'Cilcq':_0x31dadf(0x150),'Ewfdl':_0x2ba797(0x186),'OivXs':function(_0x2e04b6,_0x3dffe9){return _0x2e04b6(_0x3dffe9);},'yvIQA':function(_0x4b3f8b,_0xfaaac2,_0x3ebe0d){return _0x4b3f8b(_0xfaaac2,_0x3ebe0d);},'vHPwx':_0x1c9cfa(0x139,')aJo'),'QpqHc':_0x1c9cfa(0x1a2,'gxuP'),'fxiFK':_0x2ba797(0x173),'NBWeq':_0x2ba797(0x156),'AFXaC':_0x31dadf(0x179),'LASFd':_0x2ba797(0x17f)};_0x55081b[_0x31dadf(0x182)](playSound,_0x1c9cfa(0x16c,'MZYK'),0.7),_0x55081b[_0x31dadf(0x18e)]($,_0x55081b['vHPwx'])[_0x1c9cfa(0x16b,'N#ca')](),$(_0x2ba797(0x186))['css'](_0x55081b[_0x2ba797(0x17e)],_0x55081b[_0x2ba797(0x165)]),_0x55081b[_0x2ba797(0x17d)]($,_0x55081b[_0x31dadf(0x14b)])['css'](_0x55081b['AFXaC'],_0x5ee2e1+'ms')[_0x1c9cfa(0x168,'QJ8G')](_0x55081b[_0x31dadf(0x141)],function(){const _0x1693ca=_0x2ba797,_0x1b0905=_0x1c9cfa,_0x4ff4c0=_0x31dadf;$(_0x55081b[_0x4ff4c0(0x149)])[_0x1b0905(0x195,'r&62')](),_0x55081b[_0x1693ca(0x17d)]($,_0x55081b['uojGo'])['addClass'](_0x55081b['Cilcq'])[_0x1b0905(0x16f,'gxuP')]();const _0x593628=_0x55081b['yvIQA'](setInterval,()=>{const _0x109146=_0x4ff4c0,_0x518ae9=_0x1693ca,_0x285e4f=Math[_0x518ae9(0x146)](Math[_0x109146(0x175)]()*0x65);$(_0x55081b[_0x518ae9(0x18d)])[_0x518ae9(0x1a3)](_0x285e4f+'%');},0x1f4);setTimeout(()=>{const _0x1521de=_0x1693ca,_0x3ba808=_0x4ff4c0,_0x3672b1='4|1|2|3|0'['split']('|');let _0xf985ba=0x0;while(!![]){switch(_0x3672b1[_0xf985ba++]){case'0':_0x55081b['YfsuG'](playSound,_0x55081b[_0x3ba808(0x123)],0.4);continue;case'1':clearInterval(_0x593628);continue;case'2':_0x55081b[_0x3ba808(0x16e)]($,_0x55081b[_0x3ba808(0x12a)])[_0x3ba808(0x162)](_0x22c034+'%');continue;case'3':_0x55081b[_0x1521de(0x189)]($,_0x55081b['uojGo'])[_0x3ba808(0x19f)]('id')[_0x3ba808(0x12f)]('id',_0x5bd371);continue;case'4':_0x55081b[_0x3ba808(0x16a)]($,_0x55081b['uojGo'])[_0x3ba808(0x196)](_0x55081b[_0x3ba808(0x15d)]);continue;}break;}},0xbb8);});}$(_0x418573(0x198))['on'](_0x418573(0x185),function(){const _0x38c3b5=_0x40dd,_0x38748d={'UjXUe':_0x38c3b5(0x1a4),'fDHDm':function(_0x351eef,_0x51863c,_0x50c6fe){return _0x351eef(_0x51863c,_0x50c6fe);},'SOYAT':_0x38c3b5(0x15b)};if(!allowMove)return;power=!power,playSound(_0x38748d[_0x38c3b5(0x11a)],0.4),_0x38748d[_0x38c3b5(0x17c)](sendPost,_0x38748d[_0x38c3b5(0x192)],{'value':power});}),$(_0x48861b(0x180,'kju#'))['on'](_0x2ccef5(0x1a4),function(){const _0x4c03f8=_0x418573,_0x45bdbc=_0x2ccef5,_0x5d2f59={'vSZbd':function(_0x1936e0,_0x395486){return _0x1936e0&&_0x395486;},'bBLYY':function(_0x5c890f,_0x1cd296,_0x265539){return _0x5c890f(_0x1cd296,_0x265539);},'bXQMO':'click','kQIxY':function(_0x1e5d3a,_0x23cdf4){return _0x1e5d3a(_0x23cdf4);}};_0x5d2f59['vSZbd'](power,allowMove)&&(_0x5d2f59[_0x45bdbc(0x147)](playSound,_0x5d2f59[_0x45bdbc(0x169)],0.4),_0x5d2f59[_0x45bdbc(0x191)](sendPost,_0x4c03f8(0x158)));}),$('.blow-tip')['on']('click',function(){const _0x49ad82=_0x2ccef5,_0x2e6082=_0x48861b,_0x579dac=_0x418573,_0x455074={'MCbTH':function(_0x2616bc,_0x291158,_0x40f0de){return _0x2616bc(_0x291158,_0x40f0de);},'oyHkd':_0x579dac(0x161)};power&&_0x455074[_0x2e6082(0x134,'[U6P')](sendPost,_0x455074[_0x49ad82(0x11d)],{'pID':player});}),window[_0x48861b(0x188,'Z0G[')](_0x418573(0x13d),function(_0x27251a){const _0x4ec251=_0x418573,_0x2f8d60=_0x2ccef5,_0x4a2f08=_0x48861b,_0x100938={'wrdbd':_0x4a2f08(0x19d,'QJ8G'),'sOoMP':_0x2f8d60(0x166),'Suoae':_0x4a2f08(0x13c,'53ee'),'BdDaq':function(_0xbc86f4,_0x1bf8a3){return _0xbc86f4(_0x1bf8a3);},'PzyWC':function(_0x3bcf57,_0x4022ff){return _0x3bcf57(_0x4022ff);},'MAyGq':_0x4a2f08(0x155,'LfWO'),'CBARs':_0x4a2f08(0x172,'5]O%'),'RSTXR':_0x2f8d60(0x15b),'KbNRt':function(_0x41ef73,_0x44ea40){return _0x41ef73(_0x44ea40);},'mprDJ':'.blow-screen,\x20.blow-tip,\x20.result-screen,\x20.wait-screen','YRZXR':'close','MLcng':function(_0x15892f){return _0x15892f();}},{action:_0x3500a3,..._0x483471}=_0x27251a[_0x4ec251(0x18c)];switch(_0x3500a3){case _0x2f8d60(0x160):$(_0x100938[_0x2f8d60(0x11c)])[_0x2f8d60(0x12d)](_0x100938['sOoMP'])[_0x4ec251(0x14a)](_0x100938[_0x2f8d60(0x1a0)],_0x2f8d60(0x122)),_0x100938[_0x2f8d60(0x119)]($,_0x2f8d60(0x194))[_0x2f8d60(0x162)](_0x483471['language'][_0x4a2f08(0x138,'&^z$')]),_0x100938[_0x4a2f08(0x12c,'TSTX')]($,_0x4ec251(0x140))[_0x4a2f08(0x15c,'!K]@')](_0x483471[_0x4ec251(0x136)][_0x4ec251(0x15f)]),allowMove=_0x483471['move'],player=_0x483471[_0x4ec251(0x1a5)];break;case _0x4a2f08(0x18f,'!K]@'):_0x100938[_0x4ec251(0x130)]($,_0x100938[_0x4ec251(0x118)])[_0x4ec251(0x154)](),_0x100938[_0x4ec251(0x130)]($,_0x100938['CBARs'])[_0x4a2f08(0x16d,'52qD')]();break;case _0x100938[_0x2f8d60(0x183)]:power=_0x483471[_0x4ec251(0x1a1)];power?_0x100938[_0x4a2f08(0x14f,'QJ8G')]($,_0x100938[_0x4ec251(0x118)])[_0x2f8d60(0x15e)]():$(_0x100938['mprDJ'])['hide']();break;case _0x2f8d60(0x177):blowAirAnimation(_0x483471[_0x4ec251(0x13f)],_0x483471[_0x2f8d60(0x163)],_0x483471[_0x4a2f08(0x17a,'N#ca')]);break;case _0x100938[_0x4ec251(0x171)]:_0x100938[_0x2f8d60(0x135)](closeUI);break;}}),$(document)['on']('keydown',function(_0x5e1886){const _0x12ff82=_0x418573,_0x4e52d4=_0x48861b,_0x41eada=_0x2ccef5,_0x2c6adc={'mkizo':function(_0x5a780a){return _0x5a780a();}};[0x1b][_0x41eada(0x148)](_0x5e1886[_0x4e52d4(0x17b,'MZYK')])&&_0x2c6adc[_0x12ff82(0x184)](closeUI);});
\ No newline at end of file
diff --git a/resources/[jobs]/[police]/cs_drunk/ui/sounds/blow.wav b/resources/[jobs]/[police]/cs_drunk/ui/sounds/blow.wav
new file mode 100644
index 000000000..714f5c61c
Binary files /dev/null and b/resources/[jobs]/[police]/cs_drunk/ui/sounds/blow.wav differ
diff --git a/resources/[jobs]/[police]/cs_drunk/ui/sounds/click.wav b/resources/[jobs]/[police]/cs_drunk/ui/sounds/click.wav
new file mode 100644
index 000000000..ad43d688e
Binary files /dev/null and b/resources/[jobs]/[police]/cs_drunk/ui/sounds/click.wav differ
diff --git a/resources/[jobs]/[police]/cs_drunk/ui/sounds/result.wav b/resources/[jobs]/[police]/cs_drunk/ui/sounds/result.wav
new file mode 100644
index 000000000..ef2645e72
Binary files /dev/null and b/resources/[jobs]/[police]/cs_drunk/ui/sounds/result.wav differ
diff --git a/resources/[jobs]/[police]/cs_drunk/ui/style.css b/resources/[jobs]/[police]/cs_drunk/ui/style.css
new file mode 100644
index 000000000..c82b8e0ff
--- /dev/null
+++ b/resources/[jobs]/[police]/cs_drunk/ui/style.css
@@ -0,0 +1,261 @@
+@font-face {
+ font-family: Digital;
+ src: url(digital-7.ttf);
+}
+
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ user-select: none;
+}
+
+body {
+ user-select: none;
+ overflow: hidden;
+}
+
+.container {
+ display: none;
+ position: absolute;
+ top: 40vh;
+ --animate-duration: 0.4s;
+ right: 0;
+}
+
+.tester-img {
+ height: 550px;
+ width: 550px;
+ user-select: none;
+}
+
+.main-inside {
+ height: 83px;
+ width: 120px;
+ position: absolute;
+ top: 173px;
+ right: 211px;
+ border-radius: 5px;
+ background-color: #3a3838;
+}
+
+.start-effect {
+ display: block;
+ animation: theme 3s linear infinite;
+}
+
+#red {
+ background-color: #c5374f;
+}
+
+#green {
+ background-color: #50c25b;
+}
+
+#yellow {
+ background-color: #dbdd62;
+}
+
+@keyframes theme {
+ 0% {
+ background: #74c390;
+ }
+ 16% {
+ background: #5dbdb6;
+ }
+ 33% {
+ background: #59d4e1;
+ }
+ 50% {
+ background: #51bce8;
+ }
+ 66% {
+ background: #fa5374;
+ }
+ 83% {
+ background: #e46653;
+ }
+ 100% {
+ background: #74c390;
+ }
+}
+@keyframes background {
+ 0% {
+ transform: rotate(0deg);
+ }
+ 100% {
+ transform: rotate(360deg);
+ }
+}
+
+.wait-screen {
+ height: 83px;
+ width: 120px;
+ border-radius: 5px;
+ background-color: #b5b2b5;
+ display: none;
+ flex-direction: column;
+ align-items: center;
+ justify-content: space-evenly;
+}
+
+.blow-screen {
+ display: none;
+ height: 83px;
+ width: 120px;
+ border-radius: 5px;
+ background-color: #b5b2b5;
+}
+
+.wait-text {
+ font-size: 30px;
+ font-family: sans-serif;
+ text-align: center;
+ text-transform: uppercase;
+ font-weight: 800;
+ color: #2e2c2e;
+}
+
+.time-text {
+ padding-top: 15px;
+ font-size: 50px;
+ color: #111111;
+ font-family: Digital;
+ text-align: center;
+ text-transform: uppercase;
+ font-weight: 800;
+}
+
+.bac-text {
+ font-family: sans-serif;
+ font-weight: 900;
+ font-size: 12px;
+ text-align: end;
+ padding-right: 5px;
+}
+#progressBar {
+ border-radius: 10px;
+ width: 100px;
+ height: 10px;
+ border: 1px solid #2e2c2e;
+ position: relative;
+}
+#progressBar span {
+ display: block;
+ height: 100%;
+ background-color: #2e2c2e;
+ position: absolute;
+ top: 0;
+ left: 0;
+ animation: progressBar 10s linear forwards;
+}
+@keyframes progressBar {
+ 0% {
+ width: 0%;
+ }
+ 100% {
+ width: 100%;
+ }
+}
+
+.result-screen {
+ display: none;
+ height: 83px;
+ width: 120px;
+ border-radius: 5px;
+}
+
+.buttons {
+ background-color: #111111;
+ height: 36px;
+ width: 130px;
+ position: absolute;
+ top: 286px;
+ right: 205px;
+ display: flex;
+ align-items: center;
+ justify-content: space-around;
+ cursor: pointer;
+}
+
+.button-1 {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: 35px;
+ width: 35px;
+ border-radius: 50px;
+ background: rgb(254, 255, 255);
+ background: radial-gradient(
+ circle,
+ rgba(254, 255, 255, 0.6558998599439776) 0%,
+ rgba(0, 0, 0, 1) 100%
+ );
+}
+
+.power-button {
+ height: 25px;
+ width: 25px;
+}
+
+.blow-tip {
+ display: none;
+ height: 53px;
+ width: 110px;
+ position: absolute;
+ left: 87px;
+ top: 31px;
+ transform: rotate(17deg);
+ cursor: pointer;
+}
+
+.blow-tip .tooltiptext {
+ visibility: hidden;
+ width: 120px;
+ background-color: #000000a1;
+ color: #fff;
+ text-align: center;
+ border-radius: 6px;
+ padding: 2px 0;
+ position: absolute;
+ z-index: 1;
+ top: -45px;
+ font-weight: 900;
+ font-family: sans-serif;
+ height: 30px;
+ transform: rotate(-16deg);
+}
+
+.blow-tip:hover .tooltiptext {
+ visibility: visible;
+}
+
+@keyframes slideUp {
+ 0% {
+ transform: translateY(100%);
+ opacity: 0;
+ }
+ 100% {
+ transform: translateY(0);
+ opacity: 1;
+ }
+}
+
+.slide-up {
+ animation: slideUp 0.5s ease-out forwards;
+}
+
+@keyframes slideDown {
+ 0% {
+ transform: translateY(0);
+ opacity: 1;
+ }
+ 100% {
+ transform: translateY(100%);
+ opacity: 0;
+ }
+}
+
+.slide-down {
+ animation: slideDown 0.5s ease-out forwards;
+}
\ No newline at end of file
diff --git a/resources/[tools]/cfx_nteam_train_scenario/.fxap b/resources/[tools]/cfx_nteam_train_scenario/.fxap
new file mode 100644
index 000000000..6993664bc
Binary files /dev/null and b/resources/[tools]/cfx_nteam_train_scenario/.fxap differ
diff --git a/resources/[tools]/cfx_nteam_train_scenario/client.lua b/resources/[tools]/cfx_nteam_train_scenario/client.lua
new file mode 100644
index 000000000..b836f5003
Binary files /dev/null and b/resources/[tools]/cfx_nteam_train_scenario/client.lua differ
diff --git a/resources/[tools]/cfx_nteam_train_scenario/config.lua b/resources/[tools]/cfx_nteam_train_scenario/config.lua
new file mode 100644
index 000000000..544a90f73
--- /dev/null
+++ b/resources/[tools]/cfx_nteam_train_scenario/config.lua
@@ -0,0 +1,90 @@
+Config = {}
+
+Config.BlackBarSize = 0.20
+
+HideHud = function(status)
+
+end
+
+--===================================================================
+-- SCENARIOS
+--===================================================================
+
+-- You can add as many scenarios you want ( like before going to jail, or to transfer player from city to paleto or sandy , or any other idea you have like scenario for something )
+
+Config.Scenarios = {
+ ['Welcome'] = { -- this name must stay Welcome if you are using it for PostCharacterCreator
+ StartWalkLocation = vector4(2628.1289, 2936.3772, 40.4228, 57.3484), -- location where player scenario starts
+ StopWalkingLocation = vector4(2623.7268, 2938.6338, 40.4228, 64.0300), -- walking from coords to coords must be straight line
+ -- Location where train will be spawned
+ spawnLocation = vector4(2614.9763, 2944.1470, 40.1375, 140.1980),
+ -- Final Destination where train will stop and player gets out
+ targetLocation = vector3(324.7359, -1796.8044, 28.1226),
+ TrainModel = 24,
+ TrainDirection = false, -- its true/false
+ PlayerInCarriage = true,
+ DriverModel = 'u_m_m_edtoh',
+ -- location where player will be teleported after train stopes at station
+ StationCoords = vector4(313.8152, -1784.0806, 28.1811, 236.6900),
+ PostScenario = function()
+ -- this is client side function
+ -- You can trigger any client or server event here / or any client export
+ end,
+ },
+
+ -- this is our example for video you can edit it or use it ( here we replaced train with another model but you can use any model you want )
+ ['Jail'] = {
+ StartWalkLocation = vector4(184.5892, -1908.8032, 22.8594, 227.5445), -- location where player scenario starts
+ StopWalkingLocation = vector4(206.6665, -1933.1744, 22.3089, 216.1803), -- walking from coords to coords must be straight line
+ -- Location where train will be spawned
+ spawnLocation = vector4(212.1824, -1931.2069, 22.7389, 318.9960),
+ -- Final Destination where train will stop and player gets out
+ targetLocation = vector3(1965.6018, 2419.7219, 60.2874),
+ TrainModel = 20,
+ TrainDirection = true, -- its true/false
+ PlayerInCarriage = true,
+ DriverModel = 'u_m_m_edtoh',
+ -- location where player will be teleported after train stopes at station
+ StationCoords = vector4(1851.5878, 2585.7178, 45.6719, 85.5455),
+ PostScenario = function()
+ -- this is client side function
+ -- You can trigger any client or server event here / or any client export
+ -- for example here add your jail logic ( to send player to jail )
+ end,
+ },
+
+ ['Paleto'] = {
+ StartWalkLocation = vector4(-459.9373, 5368.5127, 81.2990, 251.0909), -- location where player scenario starts
+ StopWalkingLocation = vector4(-453.2338, 5366.6680, 81.2989, 253.9655), -- walking from coords to coords must be straight line
+ -- Location where train will be spawned
+ spawnLocation = vector4(-447.7654, 5358.0933, 81.9381, 181.3557),
+ -- Final Destination where train will stop and player gets out
+ targetLocation = vector3(1810.5146, 3510.3872, 38.7271),
+ TrainModel = 24,
+ TrainDirection = false, -- its true/false
+ PlayerInCarriage = true,
+ DriverModel = 'u_m_m_edtoh',
+ -- location where player will be teleported after train stopes at station
+ StationCoords = vector4(1825.2296, 3508.4880, 38.3468, 28.0931),
+ PostScenario = function()
+ -- this is client side function
+ -- You can trigger any client or server event here / or any client export
+ end,
+ },
+}
+
+
+--=======================================================================
+-- HOW TO USE THIS RESOUCE
+--=======================================================================
+
+--[[
+ If you want to use This Resource Scenarios you can call it from Client using event :
+
+ --@ type is 'Welcome','Jail' or any other scenario you created
+ TriggerEvent('train:startscenario',type)
+
+ If you want to use it from server call it like this :
+
+ TriggerClientEvent('train:startscenario', source, type)
+]]
\ No newline at end of file
diff --git a/resources/[tools]/cfx_nteam_train_scenario/fxmanifest.lua b/resources/[tools]/cfx_nteam_train_scenario/fxmanifest.lua
new file mode 100644
index 000000000..ddc2f2850
--- /dev/null
+++ b/resources/[tools]/cfx_nteam_train_scenario/fxmanifest.lua
@@ -0,0 +1,32 @@
+fx_version 'cerulean'
+
+author "NTeam Development"
+version '1.0.0'
+description 'NTeam Train Scenario'
+
+games { 'gta5' }
+lua54 'yes'
+
+ui_page 'html/index.html'
+
+files {
+ 'html/index.html',
+ 'html/sounds/*.mp3',
+}
+
+shared_scripts {
+ 'config.lua',
+}
+
+client_scripts {
+ 'client.lua',
+}
+
+server_scripts {
+ 'server.lua',
+}
+
+escrow_ignore {
+ 'config.lua',
+}
+dependency '/assetpacks'
\ No newline at end of file
diff --git a/resources/[tools]/cfx_nteam_train_scenario/html/index.html b/resources/[tools]/cfx_nteam_train_scenario/html/index.html
new file mode 100644
index 000000000..2f87312ef
--- /dev/null
+++ b/resources/[tools]/cfx_nteam_train_scenario/html/index.html
@@ -0,0 +1,97 @@
+
+
+
+
+
+ NTeam Train Scenario
+
+
+
+
+ PRESS SPACE TO CHANGE CAMERA
+
+
+
+

+
+
+
diff --git a/resources/[tools]/cfx_nteam_train_scenario/html/sounds/welcome.mp3 b/resources/[tools]/cfx_nteam_train_scenario/html/sounds/welcome.mp3
new file mode 100644
index 000000000..db58af28c
Binary files /dev/null and b/resources/[tools]/cfx_nteam_train_scenario/html/sounds/welcome.mp3 differ
diff --git a/resources/[tools]/cfx_nteam_train_scenario/server.lua b/resources/[tools]/cfx_nteam_train_scenario/server.lua
new file mode 100644
index 000000000..ee21e9371
Binary files /dev/null and b/resources/[tools]/cfx_nteam_train_scenario/server.lua differ