diff --git a/resources/24sodur_ht/Templates/21DURANGO TEMPLATE.png b/resources/24sodur_ht/Templates/21DURANGO TEMPLATE.png
deleted file mode 100644
index 88fa9bd85..000000000
Binary files a/resources/24sodur_ht/Templates/21DURANGO TEMPLATE.png and /dev/null differ
diff --git a/resources/24sodur_ht/Templates/21DURANGO_AO.png b/resources/24sodur_ht/Templates/21DURANGO_AO.png
deleted file mode 100644
index 3e4a97414..000000000
Binary files a/resources/24sodur_ht/Templates/21DURANGO_AO.png and /dev/null differ
diff --git a/resources/24sodur_ht/__resource.lua b/resources/24sodur_ht/__resource.lua
deleted file mode 100644
index 8a8e37e1f..000000000
--- a/resources/24sodur_ht/__resource.lua
+++ /dev/null
@@ -1,13 +0,0 @@
-resource_manifest_version '44febabe-d386-4d18-afbe-5e627f4af937'
-
-
-files {
- 'vehicles.meta',
- 'carcols.meta',
- 'carvariations.meta',
- 'handling.meta'
-}
-data_file 'VEHICLE_METADATA_FILE' 'vehicles.meta'
-data_file 'CARCOLS_FILE' 'carcols.meta'
-data_file 'VEHICLE_VARIATION_FILE' 'carvariations.meta'
-data_file 'HANDLING_FILE' 'data/handling.meta'
diff --git a/resources/24sodur_ht/carcols.meta b/resources/24sodur_ht/carcols.meta
deleted file mode 100644
index cea13acb9..000000000
--- a/resources/24sodur_ht/carcols.meta
+++ /dev/null
@@ -1,1404 +0,0 @@
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- VehicleLight_car_LED1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 24sodur_ht
-
-
-
-
- -
-
-
-
- 24sodur_ht
-
-
-
-
-
-
-
- VehicleLight_sirenlight
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/resources/24sodur_ht/carvariations.meta b/resources/24sodur_ht/carvariations.meta
deleted file mode 100644
index fe48bc2b5..000000000
--- a/resources/24sodur_ht/carvariations.meta
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
-
-
- -
- 24sodur_ht
-
-
-
-
- 0
- 0
- 0
- 0
- 5
- 0
-
-
-
-
-
- -
-
- 0
- 0
- 0
- 0
- 5
- 0
-
-
-
-
-
- -
-
- 0
- 0
- 0
- 0
- 5
- 0
-
-
-
-
-
- -
-
- 0
- 0
- 0
- 0
- 5
- 0
-
-
-
-
-
-
-
- - 0_default_modkit
-
-
-
-
- -
- Police guv plate
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/resources/24sodur_ht/handling.meta b/resources/24sodur_ht/handling.meta
deleted file mode 100644
index 58150e3d3..000000000
--- a/resources/24sodur_ht/handling.meta
+++ /dev/null
@@ -1,67 +0,0 @@
-
-
-
-
- -
- 24DURANGO
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 440010
- 0
- 0
- AVERAGE
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/resources/24sodur_ht/stream/24sodur_ht+hi.ytd b/resources/24sodur_ht/stream/24sodur_ht+hi.ytd
deleted file mode 100644
index e61c67d91..000000000
--- a/resources/24sodur_ht/stream/24sodur_ht+hi.ytd
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0817b57fd972f6c721a4318872d85d98c853c3789207c252567ec72e9d3cd442
-size 3871288
diff --git a/resources/24sodur_ht/stream/24sodur_ht.yft b/resources/24sodur_ht/stream/24sodur_ht.yft
deleted file mode 100644
index 54159b355..000000000
--- a/resources/24sodur_ht/stream/24sodur_ht.yft
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3a6b5908764c279409448665733c989a57fbdb66455e6e4c91906be02def9606
-size 2762289
diff --git a/resources/24sodur_ht/stream/24sodur_ht.ytd b/resources/24sodur_ht/stream/24sodur_ht.ytd
deleted file mode 100644
index 569e1128f..000000000
--- a/resources/24sodur_ht/stream/24sodur_ht.ytd
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a0e9f7bd162c80aaf8bd141d6eebaeb25adc794704824683029ef74b36b109f3
-size 6213962
diff --git a/resources/24sodur_ht/stream/24sodur_ht_hi.yft b/resources/24sodur_ht/stream/24sodur_ht_hi.yft
deleted file mode 100644
index a3343be36..000000000
--- a/resources/24sodur_ht/stream/24sodur_ht_hi.yft
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:010998608b4c6dc983b55e95c06f336e51f0afb17c6847b39ce56ce7feeca47c
-size 7182852
diff --git a/resources/24sodur_ht/ulc.lua b/resources/24sodur_ht/ulc.lua
deleted file mode 100644
index e953fda59..000000000
--- a/resources/24sodur_ht/ulc.lua
+++ /dev/null
@@ -1,58 +0,0 @@
-
---[[
- Ultimate Lighting Controller Config
- the ULC resource is required to use this configuration
- get the resource here: https://github.com/Flohhhhh/ultimate-lighting-controller/releases/latest
- To learn how to setup and use ULC visit here: https://docs.dwnstr.com/ulc/overview
-]]
-
-return {names = {"24sodur_ht"},
- steadyBurnConfig = {
- forceOn = false, useTime = false,
- disableWithLights = false,
- sbExtras = {}
- },
- parkConfig = {
- usePark = true,
- useSync = false,
- syncWith = {},
- pExtras = {5,6,7,8,9,10,11},
- dExtras = {1,2,3,4}
- },
- hornConfig = {
- useHorn = false,
- hornExtras = {},
- disableExtras = {}
- },
- brakeConfig = {
- useBrakes = false,
- speedThreshold = 3,
- brakeExtras = {},
- disableExtras = {}
- },
- reverseConfig = {
- useReverse = false,
- reverseExtras = {},
- disableExtras = {}
- },
- doorConfig = {
- useDoors = true,
- driverSide = {enable = {}, disable = {6}},
- passSide = {enable = {}, disable = {7}},
- trunk = {enable ={}, disable = {}}
- },
- buttons = {
- {label = "STAGE 2", key = 1, color = "green", extra = 5, linkedExtras = {6,7,8,9,10,11}, oppositeExtras = {1,2,3,4}, offExtras = {}, repair = false},
- {label = "STAGE 3", key = 2, color = "green", extra = 1, linkedExtras = {4,3,2}, oppositeExtras = {}, offExtras = {}, repair = false},
- {label = "FNT CUT", key = 3, color = "green", extra = 5, linkedExtras = {}, oppositeExtras = {}, offExtras = {}, repair = false}
- },
- stages = {
- useStages = false,
- stageKeys = {},
- },
- defaultStages = {
- useDefaults = false,
- enableKeys = {},
- disableKeys = {}
- }
-}
\ No newline at end of file
diff --git a/resources/24sodur_ht/vehicles.meta b/resources/24sodur_ht/vehicles.meta
deleted file mode 100644
index 3d035b5b7..000000000
--- a/resources/24sodur_ht/vehicles.meta
+++ /dev/null
@@ -1,134 +0,0 @@
-
-
- vehshare
-
-
- -
- 24sodur_ht
- 24sodur_ht
- 24DURANGO
- 24sodur_ht
- 21DODGE
- null
- null
- null
- null
-
- null
- str392m
- LAYOUT_STD_HIGHWINDOW
- GRESLEY_COVER_OFFSET_INFO
- EXPLOSION_INFO_DEFAULT
-
- DEFAULT_FOLLOW_VEHICLE_CAMERA
- DEFAULT_THIRD_PERSON_VEHICLE_AIM_CAMERA
- VEHICLE_BONNET_CAMERA_MID_NEAR
- DEFAULT_POV_CAMERA_LOOKAROUND
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- VFXVEHICLEINFO_CAR_GENERIC
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 20.000000
- 60.000000
- 100.000000
- 125.000000
- 500.000000
- 500.000000
-
-
-
-
-
-
-
-
-
-
- SWANKNESS_1
-
- FLAG_USE_INTERIOR_RED_LIGHT FLAG_HAS_LIVERY FLAG_HAS_INTERIOR_EXTRAS FLAG_LAW_ENFORCEMENT FLAG_EMERGENCY_SERVICE FLAG_ALLOW_HATS_NO_ROOF
- VEHICLE_TYPE_CAR
- VPT_FRONT_AND_BACK_PLATES
- VDT_SPEEDO
- VC_EMERGENCY
- VWT_SPORT
-
-
-
-
-
-
-
-
-
-
-
- - WHEEL_FRONT_RIGHT_CAMERA
- - WHEEL_FRONT_LEFT_CAMERA
- - WHEEL_REAR_RIGHT_CAMERA
- - WHEEL_REAR_LEFT_CAMERA
-
-
-
-
-
-
- - RANGER_CAVALCADE_FRONT_LEFT
- - RANGER_FRONT_RIGHT
- - RANGER_PRANGER_REAR_LEFT
- - RANGER_PRANGER_REAR_RIGHT
-
-
-
-
- -
- vehicles_speedo_interior
- 24sodur_ht
-
-
-
\ No newline at end of file
diff --git a/resources/chp18chargst/stream/chp18chargst+hi.ytd b/resources/chp18chargst/stream/chp18chargst+hi.ytd
index a48cf0e30..1749895e4 100644
--- a/resources/chp18chargst/stream/chp18chargst+hi.ytd
+++ b/resources/chp18chargst/stream/chp18chargst+hi.ytd
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e5a18adde2d9c96c3a9a4b8fe09555a322f145c4ac9b633d271617834afc51ac
-size 2253276
+oid sha256:e55f3c5d4a6b83d42b0d47f8d7285713de1c36447543518982abb361914e776e
+size 2699264
diff --git a/resources/chp18chargst/stream/chp18chargst.ytd b/resources/chp18chargst/stream/chp18chargst.ytd
index 50ac1175c..38dd4a78f 100644
--- a/resources/chp18chargst/stream/chp18chargst.ytd
+++ b/resources/chp18chargst/stream/chp18chargst.ytd
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:caa7e549cf368f5206d24848dd81ee2d757b2208a9170f76175aeeaefca99acf
-size 7456346
+oid sha256:dbef6b921bd1289745f27861a2df599e7ab3de9dcb9116fabcf580c49cf38ccc
+size 7906218
diff --git a/resources/stretcher/__resource.lua b/resources/stretcher/__resource.lua
deleted file mode 100644
index ca6708038..000000000
--- a/resources/stretcher/__resource.lua
+++ /dev/null
@@ -1,18 +0,0 @@
-resource_manifest_version '77731fab-63ca-442c-a67b-abc70f28dfa5'
-
--- Leaked By: Leaking Hub | Joshua Y. | https://discord.gg/aXWXXst
-
-files {
- 'vehicles.meta',
- 'carvariations.meta',
- 'carcols.meta',
- 'handling.meta',
- 'vehiclelayouts.meta',
- 'vehiclelayouts.meta',
-}
-
-data_file 'HANDLING_FILE' 'handling.meta'
-data_file 'VEHICLE_METADATA_FILE' 'vehicles.meta'
-data_file 'CARCOLS_FILE' 'carcols.meta'
-data_file 'VEHICLE_VARIATION_FILE' 'carvariations.meta'
-data_file 'VEHICLE_LAYOUTS_FILE' 'vehiclelayouts.meta'
diff --git a/resources/stretcher/stream/stretcher.yft b/resources/stretcher/stream/stretcher.yft
deleted file mode 100644
index 1f5e6cd82..000000000
--- a/resources/stretcher/stream/stretcher.yft
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:aa25eb463f170b0da8d872249781e33863d0a5f20534ff6acb1e1556f59ea1bf
-size 1015267
diff --git a/resources/stretcher/stream/stretcher.ytd b/resources/stretcher/stream/stretcher.ytd
deleted file mode 100644
index 22b8e9557..000000000
--- a/resources/stretcher/stream/stretcher.ytd
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5735eefc8762661f4aec7332beeb589b068d6d24aee878007958ac28976fd69e
-size 28035
diff --git a/resources/stretcher/stream/stretcher_hi.yft b/resources/stretcher/stream/stretcher_hi.yft
deleted file mode 100644
index a5ab53099..000000000
--- a/resources/stretcher/stream/stretcher_hi.yft
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:be6c6a925d0adec96ed0bb0969a0b0ec43302c21e3a5fa505dfbd4d4f48d0b90
-size 1015281
diff --git a/resources/stretcher/vehicles.meta b/resources/stretcher/vehicles.meta
deleted file mode 100644
index cb15af048..000000000
--- a/resources/stretcher/vehicles.meta
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
- vehshare
-
-
- -
- stretcher
- stretcher
- RUMPO
- stretcher
- BRAVADO
- null
- null
- null
- null
-
- null
-
- LAYOUT_VAN
- RUMPO_COVER_OFFSET_INFO
- EXPLOSION_INFO_DEFAULT
-
- DEFAULT_FOLLOW_VEHICLE_CAMERA
- DEFAULT_THIRD_PERSON_VEHICLE_AIM_CAMERA
- VEHICLE_BONNET_CAMERA_LOW
- DEFAULT_POV_CAMERA_LOOKAROUND_MID
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- VFXVEHICLEINFO_CAR_GENERIC
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 15.000000
- 35.000000
- 70.000000
- 140.000000
- 500.000000
- 500.000000
-
-
-
-
-
-
-
-
-
-
- SWANKNESS_1
-
- FLAG_SMALL_WORKER FLAG_IS_VAN FLAG_DELIVERY FLAG_EXTRAS_ALL FLAG_AVERAGE_CAR FLAG_POOR_CAR FLAG_IS_BULKY
- VEHICLE_TYPE_CAR
- VPT_BACK_PLATES
- VDT_TRUCK
- VC_VAN
- VWT_MUSCLE
-
-
-
-
-
-
-
-
-
-
-
-
- WHEEL_FRONT_RIGHT_CAMERA
- - WHEEL_FRONT_LEFT_CAMERA
- - WHEEL_REAR_RIGHT_CAMERA
- - WHEEL_REAR_LEFT_CAMERA
-
-
-
-
-
-
- - RANGER_RANCHERXL_FRONT_LEFT
- - VAN_RUMPO_FRONT_RIGHT
-
-
-
-
-
diff --git a/resources/stretcherscript/client/main.lua b/resources/stretcherscript/client/main.lua
deleted file mode 100644
index 70dfebe09..000000000
--- a/resources/stretcherscript/client/main.lua
+++ /dev/null
@@ -1,297 +0,0 @@
-local lit_1 = {
- {anim = "savecouch@",lib = "t_sleep_loop_couch",name = Config.Language.anim.lie_back, x = 0, y = 0, z = 1.1, r = 180.0},
- {anim = "amb@prop_human_seat_chair_food@male@base",lib = "base",name = Config.Language.anim.sit_right, x = 0.0, y = -0.2, z =0.55, r = -90.0},
- {anim = "amb@prop_human_seat_chair_food@male@base",lib = "base",name = Config.Language.anim.sit_left, x = 0.0, y = -0.2, z =0.55, r = 90.0},
- -- {anim = "missheistfbi3b_ig8_2",lib = "cpr_loop_victim",name = Config.Language.anim.convulse, x = 0.0, y = 0.0, z = 1.5, r = 175.0},
- {anim = "amb@world_human_bum_slumped@male@laying_on_right_side@base",lib = "base",name = Config.Language.anim.pls, x = 0.2, y = 0.1, z = 1.6, r = 100.0},
-}
-
-local labels = {
- { "REDNECK_AMBO_HELP", "Press ~INPUT_CONTEXT~ to open/close back doors.~n~Press ~INPUT_HUD_SPECIAL~ to extend power-load." },
- { "REDNECK_AMBO_HELP2", "Press ~INPUT_CONTEXT~ to open/close back doors.~n~Press ~INPUT_DETONATE~ to take stretcher.~n~Press ~INPUT_HUD_SPECIAL~ to extend power-load." },
- { "REDNECK_AMBO_HELP3", "Press ~INPUT_CONTEXT~ to open/close back doors.~n~Press ~INPUT_DETONATE~ to stow stretcher.~n~Press ~INPUT_HUD_SPECIAL~ to extend power-load." }
-}
-
-local lit = {
- {lit = "stretcher", distance_stop = 2.4, name = lit_1, title = Config.Language.lit_1}
-}
-
-prop_amb = false
-veh_detect = 0
-
-Citizen.CreateThread(function()
-
- for i = 1, #labels do
- AddTextEntry(labels[i][1], labels[i][2])
- end
-
- WarMenu.CreateMenu('hopital', ' ')
- WarMenu.SetTitleColor('hopital', 255, 255, 255, 255)
- WarMenu.SetMenuTextColor('hopital', 255, 255, 255, 255)
- WarMenu.SetMenuSubTextColor('hopital', 255, 255, 255, 255)
- WarMenu.SetMenuFocusColor('hopital', 255, 255, 255, 255)
- WarMenu.SetTitleBackgroundSprite('hopital', 'redneckmods', 'banner')
- while true do
- local sleep = 2000
- local pedCoords = GetEntityCoords(PlayerPedId())
- for _,i in pairs(lit) do
- local closestObject = GetClosestVehicle(pedCoords, 3.0, GetHashKey("stretcher"), 70)
-
- if DoesEntityExist(closestObject) then
- sleep = 5
- local propCoords = GetEntityCoords(closestObject)
- local propForward = GetEntityForwardVector(closestObject)
- local litCoords = (propCoords + propForward)
- local sitCoords = (propCoords + propForward * 0.1)
- local pickupCoords = (propCoords + propForward * 1.2)
- local pickupCoords2 = (propCoords + propForward * - 1.2)
-
- if GetDistanceBetweenCoords(pedCoords, litCoords, true) <= 5.0 then
- if GetDistanceBetweenCoords(pedCoords, sitCoords, true) <= 2.0 and not IsEntityPlayingAnim(PlayerPedId(), 'anim@heists@box_carry@', 'idle', 3) then
- hintToDisplay(Config.Language.do_action)
- if IsControlJustPressed(0, Config.Press.do_action) then
- WarMenu.OpenMenu('hopital')
- end
- elseif IsEntityAttachedToEntity(closestObject, PlayerPedId()) == false and not IsEntityPlayingAnim(PlayerPedId(), 'anim@heists@box_carry@', 'idle', 3) then
- if GetDistanceBetweenCoords(pedCoords, pickupCoords, true) <= 2.0 then
- hintToDisplay(Config.Language.take_bed)
- -- DrawText3D(0,0,0, Config.language.take_bed, -- waaaaaaa)
- if IsControlJustPressed(0, Config.Press.take_bed) then
- SetVehicleExtra(closestObject, 1, 0)
- SetVehicleExtra(closestObject, 2, 1)
- prendre(closestObject)
- end
- end
-
- if GetDistanceBetweenCoords(pedCoords, pickupCoords2, true) <= 1.5 and prop_amb == true then
- CancelEvent()
- else
- hintToDisplay(Config.Language.take_bed)
- if IsControlJustPressed(0, Config.Press.take_bed) then
- SetVehicleExtra(closestObject, 1, 0)
- SetVehicleExtra(closestObject, 2, 1)
- prendre(closestObject)
- end
- end
- end
- end
-
- if WarMenu.IsMenuOpened('hopital') then
- for _,k in pairs(i.name) do
- if WarMenu.Button(k.name) then
- LoadAnim(k.anim)
- AttachEntityToEntity(PlayerPedId(), closestObject, PlayerPedId(), k.x, k.y, k.z, 0.0, 0.0, k.r, 0.0, false, false, false, false, 2, true)
- TaskPlayAnim(PlayerPedId(), k.anim, k.lib, 8.0, 8.0, -1, 1, 0, false, false, false)
- end
- end
-
- if WarMenu.Button(Config.Language.toggle_seat) then
- if IsVehicleDoorFullyOpen(closestObject, 4) == false then
- SetVehicleDoorOpen(closestObject, 4, false)
- else
- SetVehicleDoorShut(closestObject, 4, false)
- end
- end
-
- if WarMenu.Button(Config.Language.go_out_bed) then
- DetachEntity(PlayerPedId(), true, true)
- local x, y, z = table.unpack(GetEntityCoords(closestObject) + GetEntityForwardVector(closestObject) * - i.distance_stop)
- SetEntityCoords(PlayerPedId(), x, y, z)
- end
-
- if WarMenu.Button('Close Menu') then
- WarMenu.CloseMenu('hopital')
- end
- WarMenu.Display()
- end
- end
- end
- Citizen.Wait(sleep)
- end
-end)
-
--- Leaked By: Leaking Hub | Joshua Y. | https://discord.gg/aXWXXst
-
-Citizen.CreateThread(function()
- prop_exist = 0
- while true do
- for _,g in pairs(Config.Hash) do
- local closestObject = GetClosestVehicle(GetEntityCoords(PlayerPedId()), 7.0, GetHashKey(g.hash), 18)
- if closestObject ~= 0 then
- veh_detect = closestObject
- veh_detection = g.detection
- prop_depth = g.depth
- prop_height = g.height
- end
- end
- if prop_amb == false then
- if GetVehiclePedIsIn(PlayerPedId()) == 0 then
- if DoesEntityExist(veh_detect) then
- local coords = GetEntityCoords(veh_detect) + GetEntityForwardVector(veh_detect) * - veh_detection
- local coords_spawn = GetEntityCoords(veh_detect) + GetEntityForwardVector(veh_detect) * - (veh_detection + 4.0)
- if GetDistanceBetweenCoords(GetEntityCoords(PlayerPedId()), coords.x , coords.y, coords.z, true) <= 5.0 then
- if not IsEntityPlayingAnim(PlayerPedId(), 'anim@heists@box_carry@', 'idle', 3) and not IsEntityAttachedToAnyVehicle(PlayerPedId()) then
- BeginTextCommandDisplayHelp(labels[1][1])
- EndTextCommandDisplayHelp(0, 0, 1, -1)
- for _,m in pairs(lit) do
- local prop = GetClosestObjectOfType(GetEntityCoords(PlayerPedId()), 4.0, GetHashKey(m.lit))
- if prop ~= 0 then
- prop_exist = prop
- end
- end
- if IsEntityAttachedToEntity(prop, PlayerPedId()) ~= 0 or prop ~= 0 then
- if IsControlJustPressed(0, Config.Press.out_vehicle_bed) then
- if IsVehicleDoorFullyOpen(veh_detect, 5) then
- SetVehicleDoorShut(veh_detect, 5, false)
- else
- SetVehicleDoorOpen(veh_detect, 5, false)
- end
- end
- if IsControlJustPressed(0, Config.Press.extend_powerload) then
- if IsVehicleDoorFullyOpen(veh_detect, 4) then
- SetVehicleDoorShut(veh_detect, 4, false)
- else
- SetVehicleDoorOpen(veh_detect, 4, false)
- end
- end
- end
- end
- end
- end
- end
- end
- Citizen.Wait(0)
- end
-end)
-
-function prendre(propObject, hash)
- NetworkRequestControlOfEntity(propObject)
-
- LoadAnim("anim@heists@box_carry@")
-
- AttachEntityToEntity(propObject, PlayerPedId(), PlayerPedId(), -0.05, 1.3, -0.4 , 180.0, 180.0, 180.0, 0.0, false, false, false, false, 2, true)
-
- while IsEntityAttachedToEntity(propObject, PlayerPedId()) do
-
- Citizen.Wait(5)
-
- if not IsEntityPlayingAnim(PlayerPedId(), 'anim@heists@box_carry@', 'idle', 3) then
- TaskPlayAnim(PlayerPedId(), 'anim@heists@box_carry@', 'idle', 8.0, 8.0, -1, 50, 0, false, false, false)
- end
-
- if IsPedDeadOrDying(PlayerPedId()) then
- ClearPedTasksImmediately(PlayerPedId())
- SetVehicleExtra(propObject, 1, 1)
- SetVehicleExtra(propObject, 2, 0)
- DetachEntity(propObject, true, true)
- end
- if GetDistanceBetweenCoords(GetEntityCoords(PlayerPedId()), GetEntityCoords(veh_detect), true) <= 9.0 then
- --hintToDisplay(Config.Language.in_vehicle_bed)
- BeginTextCommandDisplayHelp(labels[3][1])
- EndTextCommandDisplayHelp(0, 0, 1, -1)
- if IsControlJustPressed(0, 47) then
- ClearPedTasksImmediately(PlayerPedId())
- SetVehicleExtra(propObject, 1, 1)
- SetVehicleExtra(propObject, 2, 0)
- DetachEntity(propObject, true, true)
- prop_amb = true
- in_ambulance(propObject, veh_detect, prop_depth, prop_height)
- end
- if IsControlJustPressed(0, Config.Press.open_close_doors) then
- if IsVehicleDoorFullyOpen(veh_detect, 5) then
- SetVehicleDoorShut(veh_detect, 5, false)
- else
- SetVehicleDoorOpen(veh_detect, 5, false)
- end
- end
- if IsControlJustPressed(0, Config.Press.extend_powerload) then
- if IsVehicleDoorFullyOpen(veh_detect, 4) then
- SetVehicleDoorShut(veh_detect, 4, false)
- else
- SetVehicleDoorOpen(veh_detect, 4, false)
- end
- end
- else
- hintToDisplay(Config.Language.release_bed)
- end
-
- if IsControlJustPressed(0, Config.Press.release_bed) then
- ClearPedTasksImmediately(PlayerPedId())
- SetVehicleExtra(propObject, 1, 1)
- SetVehicleExtra(propObject, 2, 0)
- DetachEntity(propObject, true, false)
- SetVehicleOnGroundProperly(propObject)
- end
-
- end
-end
-
-function in_ambulance(propObject, amb, depth, height)
- veh_detect = 0
- NetworkRequestControlOfEntity(amb)
-
- AttachEntityToEntity(propObject, amb, GetEntityBoneIndexByName(amb, "bonnet"), 0.0, depth, height, 0.0, 0.0, 0.0, 0.0, false, false, true, false, 2, true)
-
- while IsEntityAttachedToEntity(propObject, amb) do
- Citizen.Wait(5)
-
- if GetVehiclePedIsIn(PlayerPedId()) == 0 then
- if GetDistanceBetweenCoords(GetEntityCoords(PlayerPedId()), GetEntityCoords(amb), true) <= 7.0 then
- BeginTextCommandDisplayHelp(labels[2][1])
- EndTextCommandDisplayHelp(0, 0, 1, -1)
- if IsControlJustPressed(0, Config.Press.take_stow_stretcher) then
- DetachEntity(propObject, true, true)
- prop_amb = false
- SetEntityHeading(PlayerPedId(), GetEntityHeading(PlayerPedId()) - 180.0)
- SetVehicleExtra(propObject, 1, 0)
- SetVehicleExtra(propObject, 2, 1)
- prendre(propObject)
- end
- if IsControlJustPressed(0, Config.Press.out_vehicle_bed) then
- if IsVehicleDoorFullyOpen(amb, 5) then
- SetVehicleDoorShut(amb, 5, false)
- else
- SetVehicleDoorOpen(amb, 5, false)
- end
- end
- if IsControlJustPressed(0, Config.Press.extend_powerload) then
- if IsVehicleDoorFullyOpen(amb, 4) then
- SetVehicleDoorShut(amb, 4, false)
- else
- SetVehicleDoorOpen(amb, 4, false)
- end
- end
- end
- end
- end
-end
-
-function LoadAnim(dict)
- while not HasAnimDictLoaded(dict) do
- RequestAnimDict(dict)
- Citizen.Wait(1)
- end
-end
-
-function hintToDisplay(text)
- BeginTextCommandDisplayHelp("STRING")
- AddTextComponentString(text)
- DisplayHelpTextFromStringLabel(0, 0, 1, -1)
-end
-
-function DrawText3D(coords, text, size)
-
- local onScreen,_x,_y=World3dToScreen2d(coords.x,coords.y,coords.z + 1.0)
- local px,py,pz=table.unpack(GetGameplayCamCoords())
-
- SetTextScale(0.35, 0.35)
- SetTextFont(4)
- SetTextProportional(1)
- SetTextColour(255, 255, 255, 215)
- SetTextEntry("STRING")
- SetTextCentre(1)
- AddTextComponentString(text)
- DrawText(_x,_y)
- local factor = (string.len(text)) / 370
- DrawRect(_x,_y+0.0125, 0.015+ factor, 0.03, 41, 11, 41, 68)
-end
\ No newline at end of file
diff --git a/resources/stretcherscript/config.lua b/resources/stretcherscript/config.lua
deleted file mode 100644
index a81e9fc6c..000000000
--- a/resources/stretcherscript/config.lua
+++ /dev/null
@@ -1,109 +0,0 @@
-local Keys = {
- ["ESC"] = 322, ["F1"] = 288, ["F2"] = 289, ["F3"] = 170, ["F5"] = 166, ["F6"] = 167, ["F7"] = 168, ["F8"] = 169, ["F9"] = 56, ["F10"] = 57,
- ["~"] = 243, ["1"] = 157, ["2"] = 158, ["3"] = 160, ["4"] = 164, ["5"] = 165, ["6"] = 159, ["7"] = 161, ["8"] = 162, ["9"] = 163, ["-"] = 84, ["="] = 83, ["BACKSPACE"] = 177,
- ["TAB"] = 37, ["Q"] = 44, ["W"] = 32, ["E"] = 38, ["R"] = 45, ["T"] = 245, ["Y"] = 246, ["U"] = 303, ["P"] = 199, ["["] = 39, ["]"] = 40, ["ENTER"] = 18,
- ["CAPS"] = 137, ["A"] = 34, ["S"] = 8, ["D"] = 9, ["F"] = 23, ["G"] = 47, ["H"] = 74, ["K"] = 311, ["L"] = 182,
- ["LEFTSHIFT"] = 21, ["Z"] = 20, ["X"] = 73, ["C"] = 26, ["V"] = 0, ["B"] = 29, ["N"] = 249, ["M"] = 244, [","] = 82, ["."] = 81,
- ["LEFTCTRL"] = 36, ["LEFTALT"] = 19, ["SPACE"] = 22, ["RIGHTCTRL"] = 70,
- ["HOME"] = 213, ["PAGEUP"] = 10, ["PAGEDOWN"] = 11, ["DELETE"] = 178,
- ["LEFT"] = 174, ["RIGHT"] = 175, ["TOP"] = 27, ["DOWN"] = 173,
- ["NENTER"] = 201, ["N4"] = 108, ["N5"] = 60, ["N6"] = 107, ["N+"] = 96, ["N-"] = 97, ["N7"] = 117, ["N8"] = 61, ["N9"] = 118
-}
-
-Config = {}
-Config.OpenMenuSpawn= {x = 266.62, y = -1354.23, z = 24.53}
-
-Config.Hash = {
- {hash = "e450ambo", detection = 2.4, depth = -1.0, height = 0.0},
-
- {
- hash = 'e350vanb', position = -5.0, positionRange = 2.0,
- preconfig = 'yes', depth = -2.5, height = -0.25, offset = 0.0, yrot = 0.0,
- doors = {2, 3}
- },
- {
- hash = '24ramambo', position = -5.0, positionRange = 2.0,
- preconfig = 'yes', depth = -2.5, height = -0.25, offset = 0.0, yrot = 0.0,
- doors = {2, 3}
- },
- {
- hash = 'ALSrescue1', position = -5.0, positionRange = 2.0,
- preconfig = 'yes', depth = -2.5, height = -0.25, offset = 0.0, yrot = 0.0,
- doors = {2, 3}
- },
- {
- hash = 'amrvan', position = -5.0, positionRange = 2.0,
- preconfig = 'yes', depth = -2.5, height = -0.25, offset = 0.0, yrot = 0.0,
- doors = {2, 3}
- },
- {
- hash = 'CAMBO', position = -5.0, positionRange = 2.0,
- preconfig = 'yes', depth = -2.5, height = -0.25, offset = 0.0, yrot = 0.0,
- doors = {2, 3}
- },
- {
- hash = 'f250ambo', position = -5.0, positionRange = 2.0,
- preconfig = 'yes', depth = -2.5, height = -0.25, offset = 0.0, yrot = 0.0,
- doors = {2, 3}
- },
- {
- hash = 'medic22', position = -5.0, positionRange = 2.0,
- preconfig = 'yes', depth = -2.5, height = -0.25, offset = 0.0, yrot = 0.0,
- doors = {2, 3}
- },
- {
- hash = 'medic1a', position = -5.0, positionRange = 2.0,
- preconfig = 'yes', depth = -2.5, height = -0.25, offset = 0.0, yrot = 0.0,
- doors = {2, 3}
- },
- {
- hash = 'medic1b', position = -5.0, positionRange = 2.0,
- preconfig = 'yes', depth = -2.5, height = -0.25, offset = 0.0, yrot = 0.0,
- doors = {2, 3}
- },
- {
- hash = 'csfdmedic3', position = -5.0, positionRange = 2.0,
- preconfig = 'yes', depth = -2.5, height = -0.25, offset = 0.0, yrot = 0.0,
- doors = {2, 3}
- },
-
-
-
-}
-
-Config.Press = {
- open_menu = Keys["Y"],
- take_bed = Keys["E"],
- do_action = Keys["E"],
- out_vehicle_bed = Keys["E"],
- release_bed = Keys["B"],
- in_vehicle_bed = Keys["E"],
- go_out_bed = Keys["E"],
- open_close_doors = Keys["E"],
- extend_powerload = Keys["Z"],
- take_stow_stretcher = Keys["G"],
-}
-
-
-Config.Language = {
- name_hospital = 'Stretcher',
- open_menu = 'Press ~b~E',
- do_action = 'Press ~INPUT_CONTEXT~ to interact with stretcher',
- take_bed = "Press ~INPUT_CONTEXT~ to take stretcher",
- release_bed = "Press ~INPUT_SPECIAL_ABILITY_SECONDARY~ to drop stretcher",
- in_vehicle_bed = "Press ~INPUT_CONTEXT~ to stow stretcher",
- out_vehicle_bed = "Press ~INPUT_CONTEXT~ to retrieve stretcher",
- go_out_bed = "Get Out of Bed",
- delete_bed = "Remove Bed",
- toggle_backboard = "Toggle Backboard",
- toggle_seat = "Toggle Headrest",
- lit_1 = "Bed without matela",
- anim = {
- spawn_command = "Litter",
- lie_back = "Lie on back",
- sit_right = "Sit on the right side",
- sit_left = "Sit on left side",
- convulse = "Recieve CPR",
- pls = "Lay sideways",
- }
-}
\ No newline at end of file
diff --git a/resources/stretcherscript/fxmanifest.lua b/resources/stretcherscript/fxmanifest.lua
deleted file mode 100644
index da639ff49..000000000
--- a/resources/stretcherscript/fxmanifest.lua
+++ /dev/null
@@ -1,10 +0,0 @@
-fx_version 'adamant'
-game 'gta5'
-
--- Leaked By: Leaking Hub | Joshua Y. | https://discord.gg/aXWXXst
-
-client_scripts {
- 'warmenu.lua',
- 'config.lua',
- 'client/main.lua'
-}
diff --git a/resources/stretcherscript/stream/redneckmods.ytd b/resources/stretcherscript/stream/redneckmods.ytd
deleted file mode 100644
index abb2deae4..000000000
--- a/resources/stretcherscript/stream/redneckmods.ytd
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:59b2c261c2f2e5962806f9de39041fae9f31726be032f5908399e67e70822051
-size 9623
diff --git a/resources/stretcherscript/warmenu.lua b/resources/stretcherscript/warmenu.lua
deleted file mode 100644
index cea5f3b90..000000000
--- a/resources/stretcherscript/warmenu.lua
+++ /dev/null
@@ -1,523 +0,0 @@
-WarMenu = { }
-
-WarMenu.debug = false
-
-
-local menus = { }
-local keys = { up = 188, down = 187, left = 189, right = 190, select = 201, back = 202 }
-local optionCount = 0
-
-local currentKey = nil
-local currentMenu = nil
-
-local titleHeight = 0.11
-local titleYOffset = 0.03
-local titleScale = 1.0
-
-local buttonHeight = 0.038
-local buttonFont = 0
-local buttonScale = 0.365
-local buttonTextXOffset = 0.005
-local buttonTextYOffset = 0.005
-
-
-local function debugPrint(text)
- if WarMenu.debug then
- Citizen.Trace('[WarMenu] '..tostring(text))
- end
-end
-
-
-local function setMenuProperty(id, property, value)
- if id and menus[id] then
- menus[id][property] = value
- debugPrint(id..' menu property changed: { '..tostring(property)..', '..tostring(value)..' }')
- end
-end
-
-
-local function isMenuVisible(id)
- if id and menus[id] then
- return menus[id].visible
- else
- return false
- end
-end
-
-
-local function setMenuVisible(id, visible, holdCurrent)
- if id and menus[id] then
- setMenuProperty(id, 'visible', visible)
-
- if not holdCurrent and menus[id] then
- setMenuProperty(id, 'currentOption', 1)
- end
-
- if visible then
- if id ~= currentMenu and isMenuVisible(currentMenu) then
- setMenuVisible(currentMenu, false)
- end
-
- currentMenu = id
- end
- end
-end
-
-
-local function drawText(text, x, y, font, color, scale, center, shadow, alignRight)
- SetTextColour(color.r, color.g, color.b, color.a)
- SetTextFont(font)
- SetTextScale(scale, scale)
-
- if shadow then
- SetTextDropShadow(2, 2, 0, 0, 0)
- end
-
- local menu = menus[currentMenu]
- if menu then
- if center then
- SetTextCentre(center)
- elseif alignRight then
- SetTextWrap(menu.x, menu.x + menu.width - buttonTextXOffset)
- SetTextRightJustify(true)
- end
- end
-
- BeginTextCommandDisplayText("STRING")
- AddTextComponentSubstringPlayerName(tostring(text))
- EndTextCommandDisplayText(x, y)
-end
-
-
-local function drawRect(x, y, width, height, color)
- DrawRect(x, y, width, height, color.r, color.g, color.b, color.a)
-end
-
-
-local function drawTitle()
- local menu = menus[currentMenu]
- if menu then
- local x = menu.x + menu.width / 2
- local y = menu.y + titleHeight / 2
-
- if menu.titleBackgroundSprite then
- DrawSprite(menu.titleBackgroundSprite.dict, menu.titleBackgroundSprite.name, x, y, menu.width, titleHeight, 0., 255, 255, 255, 255)
- else
- drawRect(x, y, menu.width, titleHeight, menu.titleBackgroundColor)
- end
-
- drawText(menu.title, x, y - titleHeight / 2 + titleYOffset, menu.titleFont, menu.titleColor, titleScale, true)
- end
-end
-
-
-local function drawSubTitle()
- local menu = menus[currentMenu]
- if menu then
- local x = menu.x + menu.width / 2
- local y = menu.y + titleHeight + buttonHeight / 2
-
- local subTitleColor = { r = menu.titleBackgroundColor.r, g = menu.titleBackgroundColor.g, b = menu.titleBackgroundColor.b, a = 255 }
-
- drawRect(x, y, menu.width, buttonHeight, menu.subTitleBackgroundColor)
- drawText(menu.subTitle, menu.x + buttonTextXOffset, y - buttonHeight / 2 + buttonTextYOffset, buttonFont, subTitleColor, buttonScale, false)
-
- if optionCount > menu.maxOptionCount then
- drawText(tostring(menu.currentOption)..' / '..tostring(optionCount), menu.x + menu.width, y - buttonHeight / 2 + buttonTextYOffset, buttonFont, subTitleColor, buttonScale, false, false, true)
- end
- end
-end
-
-
-local function drawButton(text, subText)
- local menu = menus[currentMenu]
-
- local x = menu.x + menu.width / 2
- local multiplier = nil
-
- if menu.currentOption <= menu.maxOptionCount and optionCount <= menu.maxOptionCount then
- multiplier = optionCount
- elseif optionCount > menu.currentOption - menu.maxOptionCount and optionCount <= menu.currentOption then
- multiplier = optionCount - (menu.currentOption - menu.maxOptionCount)
- end
-
- if multiplier then
- local y = menu.y + titleHeight + buttonHeight + (buttonHeight * multiplier) - buttonHeight / 2
- local backgroundColor = nil
- local textColor = nil
- local subTextColor = nil
- local shadow = false
-
- if menu.currentOption == optionCount then
- backgroundColor = menu.menuFocusBackgroundColor
- textColor = menu.menuFocusTextColor
- subTextColor = menu.menuFocusTextColor
- else
- backgroundColor = menu.menuBackgroundColor
- textColor = menu.menuTextColor
- subTextColor = menu.menuSubTextColor
- shadow = true
- end
-
- drawRect(x, y, menu.width, buttonHeight, backgroundColor)
- drawText(text, menu.x + buttonTextXOffset, y - (buttonHeight / 2) + buttonTextYOffset, buttonFont, textColor, buttonScale, false, shadow)
-
- if subText then
- drawText(subText, menu.x + buttonTextXOffset, y - buttonHeight / 2 + buttonTextYOffset, buttonFont, subTextColor, buttonScale, false, shadow, true)
- end
- end
-end
-
-
-function WarMenu.CreateMenu(id, title)
- -- Default settings
- menus[id] = { }
- menus[id].title = title
- menus[id].subTitle = 'Select an option.'
-
- menus[id].visible = false
-
- menus[id].previousMenu = nil
-
- menus[id].aboutToBeClosed = false
-
- menus[id].x = 0.0175
- menus[id].y = 0.280
- menus[id].width = 0.23
-
- menus[id].currentOption = 1
- menus[id].maxOptionCount = 10
-
- menus[id].titleFont = 1
- menus[id].titleColor = { r = 0, g = 0, b = 0, a = 255 }
- menus[id].titleBackgroundColor = { r = 255, g = 255, b = 255, a = 255 }
- menus[id].titleBackgroundSprite = nil
-
- menus[id].menuTextColor = { r = 255, g = 255, b = 255, a = 255 }
- menus[id].menuSubTextColor = { r = 255, g = 255, b = 255, a = 255 }
- menus[id].menuFocusTextColor = { r = 0, g = 0, b = 0, a = 255 }
- menus[id].menuFocusBackgroundColor = { r = 245, g = 245, b = 245, a = 255 }
- menus[id].menuBackgroundColor = { r = 0, g = 0, b = 0, a = 160 }
-
- menus[id].subTitleBackgroundColor = { r = menus[id].menuBackgroundColor.r, g = menus[id].menuBackgroundColor.g, b = menus[id].menuBackgroundColor.b, a = 255 }
-
- menus[id].buttonPressedSound = { name = "SELECT", set = "HUD_FRONTEND_DEFAULT_SOUNDSET" } --https://pastebin.com/0neZdsZ5
-
- debugPrint(tostring(id)..' menu created')
-end
-
-
-function WarMenu.CreateSubMenu(id, parent, subTitle)
- if menus[parent] then
- WarMenu.CreateMenu(id, menus[parent].title)
-
- if subTitle then
- setMenuProperty(id, 'subTitle', string.upper(subTitle))
- else
- setMenuProperty(id, 'subTitle', string.upper(menus[parent].subTitle))
- end
-
- setMenuProperty(id, 'previousMenu', parent)
-
- setMenuProperty(id, 'x', menus[parent].x)
- setMenuProperty(id, 'y', menus[parent].y)
- setMenuProperty(id, 'maxOptionCount', menus[parent].maxOptionCount)
- setMenuProperty(id, 'titleFont', menus[parent].titleFont)
- setMenuProperty(id, 'titleColor', menus[parent].titleColor)
- setMenuProperty(id, 'titleBackgroundColor', menus[parent].titleBackgroundColor)
- setMenuProperty(id, 'titleBackgroundSprite', menus[parent].titleBackgroundSprite)
- setMenuProperty(id, 'menuTextColor', menus[parent].menuTextColor)
- setMenuProperty(id, 'menuSubTextColor', menus[parent].menuSubTextColor)
- setMenuProperty(id, 'menuFocusTextColor', menus[parent].menuFocusTextColor)
- setMenuProperty(id, 'menuFocusBackgroundColor', menus[parent].menuFocusBackgroundColor)
- setMenuProperty(id, 'menuBackgroundColor', menus[parent].menuBackgroundColor)
- setMenuProperty(id, 'subTitleBackgroundColor', menus[parent].subTitleBackgroundColor)
- else
- debugPrint('Failed to create '..tostring(id)..' submenu: '..tostring(parent)..' parent menu doesn\'t exist')
- end
-end
-
-
-function WarMenu.CurrentMenu()
- return currentMenu
-end
-
-
-function WarMenu.OpenMenu(id)
- if id and menus[id] then
- PlaySoundFrontend(-1, "SELECT", "HUD_FRONTEND_DEFAULT_SOUNDSET", true)
- setMenuVisible(id, true)
- debugPrint(tostring(id)..' menu opened')
- else
- debugPrint('Failed to open '..tostring(id)..' menu: it doesn\'t exist')
- end
-end
-
-
-function WarMenu.IsMenuOpened(id)
- return isMenuVisible(id)
-end
-
-
-function WarMenu.IsAnyMenuOpened()
- for id, _ in pairs(menus) do
- if isMenuVisible(id) then return true end
- end
-
- return false
-end
-
-
-function WarMenu.IsMenuAboutToBeClosed()
- local menu = menus[currentMenu]
- if menu then
- return menu.aboutToBeClosed
- else
- return false
- end
-end
-
-
-function WarMenu.CloseMenu()
- local menu = menus[currentMenu]
- if menu then
- if menu.aboutToBeClosed then
- menu.aboutToBeClosed = false
- setMenuVisible(currentMenu, false)
- debugPrint(tostring(currentMenu)..' menu closed')
- PlaySoundFrontend(-1, "QUIT", "HUD_FRONTEND_DEFAULT_SOUNDSET", true)
- optionCount = 0
- currentMenu = nil
- currentKey = nil
- else
- menu.aboutToBeClosed = true
- debugPrint(tostring(currentMenu)..' menu about to be closed')
- end
- end
-end
-
-
-function WarMenu.Button(text, subText)
- local buttonText = text
- if subText then
- buttonText = '{ '..tostring(buttonText)..', '..tostring(subText)..' }'
- end
-
- local menu = menus[currentMenu]
- if menu then
- optionCount = optionCount + 1
-
- local isCurrent = menu.currentOption == optionCount
-
- drawButton(text, subText)
-
- if isCurrent then
- if currentKey == keys.select then
- PlaySoundFrontend(-1, menu.buttonPressedSound.name, menu.buttonPressedSound.set, true)
- debugPrint(buttonText..' button pressed')
- return true
- elseif currentKey == keys.left or currentKey == keys.right then
- PlaySoundFrontend(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET", true)
- end
- end
-
- return false
- else
- debugPrint('Failed to create '..buttonText..' button: '..tostring(currentMenu)..' menu doesn\'t exist')
-
- return false
- end
-end
-
-
-function WarMenu.MenuButton(text, id, subText)
- if menus[id] then
- if WarMenu.Button(text, subText) then
- setMenuVisible(currentMenu, false)
- setMenuVisible(id, true, true)
-
- return true
- end
- else
- debugPrint('Failed to create '..tostring(text)..' menu button: '..tostring(id)..' submenu doesn\'t exist')
- end
-
- return false
-end
-
-
-function WarMenu.CheckBox(text, checked, callback)
- if WarMenu.Button(text, checked and 'On' or 'Off') then
- checked = not checked
- debugPrint(tostring(text)..' checkbox changed to '..tostring(checked))
- if callback then callback(checked) end
-
- return true
- end
-
- return false
-end
-
-
-function WarMenu.ComboBox(text, items, currentIndex, selectedIndex, callback)
- local itemsCount = #items
- local selectedItem = items[currentIndex]
- local isCurrent = menus[currentMenu].currentOption == (optionCount + 1)
-
- if itemsCount > 1 and isCurrent then
- selectedItem = '← '..tostring(selectedItem)..' →'
- end
-
- if WarMenu.Button(text, selectedItem) then
- selectedIndex = currentIndex
- callback(currentIndex, selectedIndex)
- return true
- elseif isCurrent then
- if currentKey == keys.left then
- if currentIndex > 1 then currentIndex = currentIndex - 1 else currentIndex = itemsCount end
- elseif currentKey == keys.right then
- if currentIndex < itemsCount then currentIndex = currentIndex + 1 else currentIndex = 1 end
- end
- else
- currentIndex = selectedIndex
- end
-
- callback(currentIndex, selectedIndex)
- return false
-end
-
-
-function WarMenu.Display()
- if isMenuVisible(currentMenu) then
- DisableControlAction(0, keys.left, true)
- DisableControlAction(0, keys.up, true)
- DisableControlAction(0, keys.down, true)
- DisableControlAction(0, keys.right, true)
- DisableControlAction(0, keys.back, true)
- DisableControlAction(0, keys.select, true)
-
- local menu = menus[currentMenu]
-
- if menu.aboutToBeClosed then
- WarMenu.CloseMenu()
- else
- ClearAllHelpMessages()
-
- drawTitle()
- drawSubTitle()
-
- currentKey = nil
-
- if IsDisabledControlJustReleased(0, keys.down) then
- PlaySoundFrontend(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET", true)
-
- if menu.currentOption < optionCount then
- menu.currentOption = menu.currentOption + 1
- else
- menu.currentOption = 1
- end
- elseif IsDisabledControlJustReleased(0, keys.up) then
- PlaySoundFrontend(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET", true)
-
- if menu.currentOption > 1 then
- menu.currentOption = menu.currentOption - 1
- else
- menu.currentOption = optionCount
- end
- elseif IsDisabledControlJustReleased(0, keys.left) then
- currentKey = keys.left
- elseif IsDisabledControlJustReleased(0, keys.right) then
- currentKey = keys.right
- elseif IsDisabledControlJustReleased(0, keys.select) then
- currentKey = keys.select
- elseif IsDisabledControlJustReleased(0, keys.back) then
- if menus[menu.previousMenu] then
- PlaySoundFrontend(-1, "BACK", "HUD_FRONTEND_DEFAULT_SOUNDSET", true)
- setMenuVisible(menu.previousMenu, true)
- else
- WarMenu.CloseMenu()
- end
- end
-
- optionCount = 0
- end
- end
-end
-
-
-function WarMenu.CurrentOption()
- if currentMenu and optionCount ~= 0 and menus[currentMenu] then
- return menus[currentMenu].currentOption
- end
-
- return nil
-end
-
-
-function WarMenu.SetMenuWidth(id, width)
- setMenuProperty(id, 'width', width)
-end
-
-
-function WarMenu.SetMenuX(id, x)
- setMenuProperty(id, 'x', x)
-end
-
-
-function WarMenu.SetMenuY(id, y)
- setMenuProperty(id, 'y', y)
-end
-
-
-function WarMenu.SetMenuMaxOptionCountOnScreen(id, count)
- setMenuProperty(id, 'maxOptionCount', count)
-end
-
-
-function WarMenu.SetTitle(id, title)
- setMenuProperty(id, 'title', title)
-end
-
-
-function WarMenu.SetTitleColor(id, r, g, b, a)
- setMenuProperty(id, 'titleColor', { ['r'] = r, ['g'] = g, ['b'] = b, ['a'] = a or menus[id].titleColor.a })
-end
-
-
-function WarMenu.SetTitleBackgroundColor(id, r, g, b, a)
- setMenuProperty(id, 'titleBackgroundColor', { ['r'] = r, ['g'] = g, ['b'] = b, ['a'] = a or menus[id].titleBackgroundColor.a })
-end
-
-
-function WarMenu.SetTitleBackgroundSprite(id, textureDict, textureName)
- RequestStreamedTextureDict(textureDict)
- setMenuProperty(id, 'titleBackgroundSprite', { dict = textureDict, name = textureName })
-end
-
-
-function WarMenu.SetSubTitle(id, text)
- setMenuProperty(id, 'subTitle', string.upper(text))
-end
-
-
-function WarMenu.SetMenuBackgroundColor(id, r, g, b, a)
- setMenuProperty(id, 'menuBackgroundColor', { ['r'] = r, ['g'] = g, ['b'] = b, ['a'] = a or menus[id].menuBackgroundColor.a })
-end
-
-
-function WarMenu.SetMenuTextColor(id, r, g, b, a)
- setMenuProperty(id, 'menuTextColor', { ['r'] = r, ['g'] = g, ['b'] = b, ['a'] = a or menus[id].menuTextColor.a })
-end
-
-function WarMenu.SetMenuSubTextColor(id, r, g, b, a)
- setMenuProperty(id, 'menuSubTextColor', { ['r'] = r, ['g'] = g, ['b'] = b, ['a'] = a or menus[id].menuSubTextColor.a })
-end
-
-function WarMenu.SetMenuFocusColor(id, r, g, b, a)
- setMenuProperty(id, 'menuFocusColor', { ['r'] = r, ['g'] = g, ['b'] = b, ['a'] = a or menus[id].menuFocusColor.a })
-end
-
-
-function WarMenu.SetMenuButtonPressedSound(id, name, set)
- setMenuProperty(id, 'buttonPressedSound', { ['name'] = name, ['set'] = set })
-end
diff --git a/resources/vMenu/config/addons.json b/resources/vMenu/config/addons.json
index 8e76de0ed..7bdb5ea32 100644
--- a/resources/vMenu/config/addons.json
+++ b/resources/vMenu/config/addons.json
@@ -2,22 +2,9 @@
"vehicles": [
"rrst",
"24sodur_ht",
- "montereyparkpd25dura_180",
"sbcsd21durango",
- "18charg",
- "21ppv3",
- "21ppvHCSO",
- "23f150",
- "23hoe",
- "25legacyrango1",
- "233ppv",
- "BCSO21ppv",
- "fs23hoe",
- "leg21tahoeht_rb",
- "MPD21ppv",
- "sos23hoe",
- "sbcsdcharger",
- "sbcsdcharger2",
+ "sbcsdcharger",
+ "sbcsdcharger2",
"LAPD",
"lapd09charger1",
"lapd09charger2",