diff --git a/resources/[Developer]/[Nordi]/kq_towing2-20250610T154151Z-1-001.zip b/resources/[Developer]/[Nordi]/kq_towing2-20250610T154151Z-1-001.zip
deleted file mode 100644
index 44bdbb7ba..000000000
Binary files a/resources/[Developer]/[Nordi]/kq_towing2-20250610T154151Z-1-001.zip and /dev/null differ
diff --git a/resources/[carscripts]/kq_towing2/.fxap b/resources/[carscripts]/kq_towing2/.fxap
new file mode 100644
index 000000000..45a6c3bbb
Binary files /dev/null and b/resources/[carscripts]/kq_towing2/.fxap differ
diff --git a/resources/[carscripts]/kq_towing2/_installation_/INSTALLATION.md b/resources/[carscripts]/kq_towing2/_installation_/INSTALLATION.md
new file mode 100644
index 000000000..ed32ae630
--- /dev/null
+++ b/resources/[carscripts]/kq_towing2/_installation_/INSTALLATION.md
@@ -0,0 +1,34 @@
+# KQ_TOWING2 INSTALLATION GUIDE
+
+This guide will provide step-by-step instructions on how to install and set up the KQ_TOWING2 script for FiveM.
+
+## Step 1:
+After downloading the script, unzip the folder and place it in the `resources` directory on your FiveM server.
+
+## Step 2:
+Add the script to your `server.cfg` file. Make sure that it's added **after** the framework of choice if using any.
+
+## Step 3:
+Open the `config.lua` file in the script folder and make sure that the correct framework is enabled. (If using ESX or QBCore)
+
+## Framework specific setup
+
+### ESX
+- Import the SQL file located inside the `/esx` folder to your database to add the items or change the item names in the config to match existing items.
+
+### QBCore
+- Add the items located in the `/qb` folder to your qb-core shared.lua file `qb-core/shared/items.lua` or `qb-core/shared.lua` or change the item names in the config to match existing items.
+
+### QBOX / OX_INVENTORY (When not using ESX or QBCore)
+- Add the items located in the `/ox` folder to your ox_inventory items list, and make sure that `kq_towing2` starts BEFORE ox_inventory
+
+### Extra
+- If using an anti-cheat make sure to whitelist a prop: `prop_roadpole_01a`. This prop is required for the rope to work properly
+
+## Done
+Enjoy the script
+
+
+- https://kuzquality.com/
+- https://discord.gg/fZsyam7Rvz
+- https://www.youtube.com/@KuzQuality
diff --git a/resources/[carscripts]/kq_towing2/_installation_/esx/kq_towing2.sql b/resources/[carscripts]/kq_towing2/_installation_/esx/kq_towing2.sql
new file mode 100644
index 000000000..4cdccb4fa
--- /dev/null
+++ b/resources/[carscripts]/kq_towing2/_installation_/esx/kq_towing2.sql
@@ -0,0 +1,2 @@
+INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES ('kq_tow_rope', 'Towing rope', 2, 0, 1);
+INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES ('kq_winch', 'Car winch', 4, 0, 1);
\ No newline at end of file
diff --git a/resources/[carscripts]/kq_towing2/_installation_/item icons/kq_tow_rope.png b/resources/[carscripts]/kq_towing2/_installation_/item icons/kq_tow_rope.png
new file mode 100644
index 000000000..b4df4f461
Binary files /dev/null and b/resources/[carscripts]/kq_towing2/_installation_/item icons/kq_tow_rope.png differ
diff --git a/resources/[carscripts]/kq_towing2/_installation_/item icons/kq_winch.png b/resources/[carscripts]/kq_towing2/_installation_/item icons/kq_winch.png
new file mode 100644
index 000000000..f97131cec
Binary files /dev/null and b/resources/[carscripts]/kq_towing2/_installation_/item icons/kq_winch.png differ
diff --git a/resources/[carscripts]/kq_towing2/_installation_/ox/items.txt b/resources/[carscripts]/kq_towing2/_installation_/ox/items.txt
new file mode 100644
index 000000000..3ed99d61e
--- /dev/null
+++ b/resources/[carscripts]/kq_towing2/_installation_/ox/items.txt
@@ -0,0 +1,22 @@
+
+ ["kq_tow_rope"] = {
+ label = "Towing rope",
+ weight = 2000,
+ stack = true,
+ close = true,
+ consume = 0,
+ server = {
+ export = 'kq_towing2.UseTowRope',
+ },
+ },
+
+ ["kq_winch"] = {
+ label = "Car winch",
+ weight = 4000,
+ stack = true,
+ close = true,
+ consume = 0,
+ server = {
+ export = 'kq_towing2.UseWinch',
+ },
+ },
diff --git a/resources/[carscripts]/kq_towing2/_installation_/qb/items.txt b/resources/[carscripts]/kq_towing2/_installation_/qb/items.txt
new file mode 100644
index 000000000..822ef7810
--- /dev/null
+++ b/resources/[carscripts]/kq_towing2/_installation_/qb/items.txt
@@ -0,0 +1,3 @@
+
+ ["kq_tow_rope"] = {["name"] = "kq_tow_rope", ["label"] = "Towing rope", ["weight"] = 2000, ["type"] = "item", ["image"] = "kq_tow_rope.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Rope used for towing vehicles"},
+ ["kq_winch"] = {["name"] = "kq_winch", ["label"] = "Car winch", ["weight"] = 4000, ["type"] = "item", ["image"] = "kq_winch.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Car winch made to winch heavy vehicles"},
diff --git a/resources/[carscripts]/kq_towing2/client/cache.lua b/resources/[carscripts]/kq_towing2/client/cache.lua
new file mode 100644
index 000000000..74030c16f
Binary files /dev/null and b/resources/[carscripts]/kq_towing2/client/cache.lua differ
diff --git a/resources/[carscripts]/kq_towing2/client/client.lua b/resources/[carscripts]/kq_towing2/client/client.lua
new file mode 100644
index 000000000..150179d43
Binary files /dev/null and b/resources/[carscripts]/kq_towing2/client/client.lua differ
diff --git a/resources/[carscripts]/kq_towing2/client/editable/editable.lua b/resources/[carscripts]/kq_towing2/client/editable/editable.lua
new file mode 100644
index 000000000..f9eab52ce
--- /dev/null
+++ b/resources/[carscripts]/kq_towing2/client/editable/editable.lua
@@ -0,0 +1,131 @@
+-- This function is responsible for drawing all the 3d texts ('Press [E] to take off the wheel' e.g)
+function Draw3DText(coords, textInput, scaleX)
+ scaleX = scaleX * Config.textScale
+ local px, py, pz = table.unpack(GetGameplayCamCoords())
+ local dist = GetDistanceBetweenCoords(px, py, pz, coords, true)
+ local scale = (1 / dist) * 20
+ local fov = (1 / GetGameplayCamFov()) * 100
+ scale = scale * fov
+
+ SetTextScale(scaleX * scale, scaleX * scale)
+ SetTextFont(Config.textFont or 4)
+ SetTextProportional(1)
+ SetTextDropshadow(1, 1, 1, 1, 255)
+ SetTextEdge(2, 0, 0, 0, 150)
+ SetTextDropShadow()
+ SetTextOutline()
+ SetTextEntry("STRING")
+ SetTextCentre(1)
+ AddTextComponentString(textInput)
+ SetDrawOrigin(coords, 0)
+ DrawText(0.0, 0.0)
+ ClearDrawOrigin()
+end
+
+function KeybindTip(message)
+ SetTextComponentFormat("STRING")
+ AddTextComponentString(message)
+ EndTextCommandDisplayHelp(0, 0, 0, 200)
+end
+
+function IsPlayerUnreachable()
+ local playerPed = PlayerPedId()
+ return IsPedInAnyVehicle(playerPed) or IsPedRagdoll(playerPed) or IsEntityDead(playerPed)
+end
+
+function RemoveHandWeapons()
+ SetCurrentPedWeapon(PlayerPedId(), -1569615261, true)
+end
+
+function DisableInputs()
+ -- https://docs.fivem.net/docs/game-references/controls/#controls
+ local inputs = {14, 15, 16, 17, 23, 24, 25, 44, 45, 140, 141, 142, 143, 261, 262, 263, 264}
+
+ for k, input in pairs(inputs) do
+ DisableControlAction(0, input, true)
+ end
+end
+
+function IsVehicleLocked(entity)
+ if not IsEntityAVehicle(entity) then
+ return false
+ end
+
+ local lockStatus = GetVehicleDoorLockStatus(entity)
+ return lockStatus == 2 or lockStatus == 3 or lockStatus == 4 or lockStatus == 10
+end
+
+function PlayAnim(dict, anim, flag, duration)
+ Citizen.CreateThread(function()
+ RequestAnimDict(dict)
+ local timeout = 0
+ while not HasAnimDictLoaded(dict) do
+ Citizen.Wait(50)
+ timeout = timeout + 1
+ if timeout > 100 then
+ return
+ end
+ end
+ TaskPlayAnim(PlayerPedId(), dict, anim, 1.5, 1.0, duration or -1, flag or 1, 0, false, false, false)
+ RemoveAnimDict(dict)
+ end)
+end
+
+
+function ShowTooltip(message)
+ SetTextComponentFormat("STRING")
+ AddTextComponentString(message)
+ EndTextCommandDisplayHelp(0, 0, 1, -1)
+end
+
+
+CURRENT_KEYBIND_TIP = nil
+
+function SetKeybindTip(message)
+ if CURRENT_KEYBIND_TIP == message then
+ return
+ end
+ CURRENT_KEYBIND_TIP = message
+
+ Citizen.CreateThread(function()
+ while CURRENT_KEYBIND_TIP == message do
+ local sleep = 100
+ if CURRENT_KEYBIND_TIP then
+ sleep = 1
+ ShowKeybindTip(CURRENT_KEYBIND_TIP)
+ end
+ Citizen.Wait(sleep)
+ end
+ end)
+end
+
+function ResetKeybindTip()
+ if CURRENT_KEYBIND_TIP ~= nil then
+ CURRENT_KEYBIND_TIP = nil
+ end
+end
+
+function ShowKeybindTip(message)
+ SetTextComponentFormat("STRING")
+ AddTextComponentString(message)
+
+ EndTextCommandDisplayHelp(0, 0, 0, -1)
+end
+
+RegisterNetEvent('kq_towing:client:notify')
+AddEventHandler('kq_towing:client:notify', function(message)
+ Notify(message)
+end)
+
+function Notify(message)
+ SetTextComponentFormat("STRING")
+ AddTextComponentString(message)
+ EndTextCommandDisplayHelp(0, 0, 0, 2000)
+end
+
+-- Call this event to cancel the placement of a rope
+RegisterNetEvent('kq_towing:client:cancelPlacement')
+AddEventHandler('kq_towing:client:cancelPlacement', function()
+ PLACING_ROPE = false
+end)
+
diff --git a/resources/[carscripts]/kq_towing2/client/functions.lua b/resources/[carscripts]/kq_towing2/client/functions.lua
new file mode 100644
index 000000000..dfc3d2b56
Binary files /dev/null and b/resources/[carscripts]/kq_towing2/client/functions.lua differ
diff --git a/resources/[carscripts]/kq_towing2/client/inputs.lua b/resources/[carscripts]/kq_towing2/client/inputs.lua
new file mode 100644
index 000000000..b9135c2b5
Binary files /dev/null and b/resources/[carscripts]/kq_towing2/client/inputs.lua differ
diff --git a/resources/[carscripts]/kq_towing2/client/raycast.lua b/resources/[carscripts]/kq_towing2/client/raycast.lua
new file mode 100644
index 000000000..29103825d
Binary files /dev/null and b/resources/[carscripts]/kq_towing2/client/raycast.lua differ
diff --git a/resources/[carscripts]/kq_towing2/client/removing.lua b/resources/[carscripts]/kq_towing2/client/removing.lua
new file mode 100644
index 000000000..931a5b5f7
Binary files /dev/null and b/resources/[carscripts]/kq_towing2/client/removing.lua differ
diff --git a/resources/[carscripts]/kq_towing2/client/ropes.lua b/resources/[carscripts]/kq_towing2/client/ropes.lua
new file mode 100644
index 000000000..b42e237a7
Binary files /dev/null and b/resources/[carscripts]/kq_towing2/client/ropes.lua differ
diff --git a/resources/[carscripts]/kq_towing2/client/towing.lua b/resources/[carscripts]/kq_towing2/client/towing.lua
new file mode 100644
index 000000000..af95c7628
Binary files /dev/null and b/resources/[carscripts]/kq_towing2/client/towing.lua differ
diff --git a/resources/[carscripts]/kq_towing2/client/winch.lua b/resources/[carscripts]/kq_towing2/client/winch.lua
new file mode 100644
index 000000000..7ac1ea4b6
Binary files /dev/null and b/resources/[carscripts]/kq_towing2/client/winch.lua differ
diff --git a/resources/[carscripts]/kq_towing2/config.lua b/resources/[carscripts]/kq_towing2/config.lua
new file mode 100644
index 000000000..816380e6b
--- /dev/null
+++ b/resources/[carscripts]/kq_towing2/config.lua
@@ -0,0 +1,176 @@
+Config = {}
+
+Config.debug = false
+
+-------------------------------------------------
+--- FRAMEWORK SETTINGS
+-------------------------------------------------
+Config.esxSettings = {
+ enabled = false,
+ -- Whether or not to use the new ESX export method
+ useNewESXExport = true,
+
+ -- Enable this if you're using a very old version of ESX
+ oldEsx = false,
+}
+
+Config.qbSettings = {
+ enabled = false,
+ -- Whether or not to use the new QBCore export method
+ useNewQBExport = true,
+}
+
+-- Only enable when NOT using ESX or QBCore
+Config.oxInventory = {
+ enabled = false,
+}
+
+-- Item config
+Config.items = {
+ towingRope = 'kq_tow_rope',
+ winch = 'kq_winch',
+}
+
+-- Commands used to trigger rope placements
+Config.commands = {
+ towing = {
+ enabled = true,
+ command = 'towrope',
+ },
+ winch = {
+ enabled = true,
+ command = 'winch',
+ }
+}
+
+-- Max speed (in MPH) of vehicles which are towing or being towed (set to -1 to disable speed limiting)
+Config.maxTowingSpeed = 50
+
+-- Time between each rope refreshing
+-- Time in seconds
+Config.ropeRefreshTime = 10
+
+-- Makes towing a vehicle with no player in the back easier. The car will steer and brake automatically when towed
+Config.toweeAutopilot = true
+
+-- If script is used in standalone mode. Make sure to disable all the job whitelists!
+-- Job whitelist
+Config.jobWhitelist = {
+ towing = {
+ enabled = false,
+ jobs = {
+ 'mechanic',
+ 'police',
+ 'marshal',
+
+
+ },
+ },
+ winch = {
+ enabled = false,
+ jobs = {
+ 'mechanic',
+ 'police',
+ 'marshal',
+ },
+ },
+}
+
+-- Whether to disallow attaching ropes to vehicles which are locked
+Config.disallowLockedVehicles = false
+
+-- The MAXIMUM length of a tow rope
+Config.ropeLength = 10.0
+
+-- The MAXIMUM length of a winch
+Config.winchLength = 16.0
+
+
+-- Props which will be visible in players hands upon usage of the rope/winch item (or command)
+Config.ropeProps = {
+ towing = {
+ prop = 'prop_rope_family_3',
+ bone = 4089,
+ offset = vector3(0.26, -0.11, 0.0),
+ rotation = vector3(0.0, -7.0, 200.0),
+ },
+ winch = {
+ prop = 'prop_stag_do_rope',
+ bone = 4089,
+ offset = vector3(0.24, -0.11, 0.0),
+ rotation = vector3(0.0, -7.0, 200.0),
+ }
+}
+
+-- '3d-text', 'top-left', 'help-text'
+Config.inputType = '3d-text'
+
+-- Scale of the 3d text
+Config.textScale = 1
+
+-- Font used for the 3d text
+Config.textFont = 4
+
+-- Scale used for the 3d text
+Config.textScale = 1.0
+
+-- https://docs.fivem.net/docs/game-references/controls/
+-- Use the input index for the "input" value
+Config.keybinds = {
+ confirm = {
+ label = 'E',
+ name = 'INPUT_PICKUP',
+ input = 38,
+ },
+ winch = {
+ label = 'Left Shift',
+ name = 'INPUT_SPRINT',
+ input = 21,
+ },
+ remove = {
+ label = 'E',
+ name = 'INPUT_PICKUP',
+ input = 38,
+ duration = 3000,
+ },
+ cancel = {
+ label = 'X',
+ name = 'INPUT_VEH_DUCK',
+ input = 73,
+ },
+}
+
+-- Classes of which vehicles may not be towed or tow another vehicle
+Config.blacklistedClasses = {
+ 8, -- Motorcycles
+ 13, -- Cycles
+ 14, -- Boats
+ 15, -- Helicopters
+ 16, -- Planes
+ 21, -- Trains
+}
+
+--[[ All vehicle classes
+ 0: Compacts
+ 1: Sedans
+ 2: SUVs
+ 3: Coupes
+ 4: Muscle
+ 5: Sports Classics
+ 6: Sports
+ 7: Super
+ 8: Motorcycles
+ 9: Off-road
+ 10: Industrial
+ 11: Utility
+ 12: Vans
+ 13: Cycles
+ 14: Boats
+ 15: Helicopters
+ 16: Planes
+ 17: Service
+ 18: Emergency
+ 19: Military
+ 20: Commercial
+ 21: Trains
+]]
diff --git a/resources/[carscripts]/kq_towing2/fxmanifest.lua b/resources/[carscripts]/kq_towing2/fxmanifest.lua
new file mode 100644
index 000000000..e9bb809c0
--- /dev/null
+++ b/resources/[carscripts]/kq_towing2/fxmanifest.lua
@@ -0,0 +1,52 @@
+fx_version 'cerulean'
+games { 'gta5' }
+lua54 'yes'
+
+author 'KuzQuality | Kuzkay'
+description 'Towing & winching made by KuzQuality'
+version '2.3.2'
+
+
+--
+-- Server
+--
+
+server_scripts {
+ 'locale.lua',
+ 'mixed/constants.lua',
+ 'config.lua',
+ 'server/server.lua',
+ 'server/editable/esx.lua',
+ 'server/editable/qb.lua',
+ 'server/editable/ox.lua',
+ 'server/editable/editable.lua',
+}
+
+--
+-- Client
+--
+
+client_scripts {
+ 'config.lua',
+ 'locale.lua',
+ 'mixed/constants.lua',
+ 'client/editable/editable.lua',
+ 'client/cache.lua',
+ 'client/inputs.lua',
+ 'client/removing.lua',
+ 'client/functions.lua',
+ 'client/raycast.lua',
+ 'client/client.lua',
+ 'client/ropes.lua',
+ 'client/winch.lua',
+ 'client/towing.lua',
+}
+
+escrow_ignore {
+ 'config.lua',
+ 'locale.lua',
+ 'client/editable/*.lua',
+ 'server/editable/*.lua',
+}
+
+dependency '/assetpacks'
\ No newline at end of file
diff --git a/resources/[carscripts]/kq_towing2/locale.lua b/resources/[carscripts]/kq_towing2/locale.lua
new file mode 100644
index 000000000..2af56611a
--- /dev/null
+++ b/resources/[carscripts]/kq_towing2/locale.lua
@@ -0,0 +1,24 @@
+-- Only edit the value on the right. Leave the value between the square brackets as is.
+
+Locale = {
+ ['~w~Press ~g~[~w~{INPUT}~g~]~w~ to attach the rope'] = '~w~Press ~g~[~w~{INPUT}~g~]~w~ to attach the rope',
+ ['~w~Press ~{INPUT}~ to attach the rope'] = '~w~Press ~{INPUT}~ to attach the rope',
+
+ ['~w~Press ~g~[~w~{INPUT}~g~]~w~ to tie the rope'] = '~w~Press ~g~[~w~{INPUT}~g~]~w~ to tie the rope',
+ ['~w~Press ~{INPUT}~ to tie the rope'] = '~w~Press ~{INPUT}~ to tie the rope',
+
+ ['Press ~{INPUT}~ to cancel'] = 'Press ~{INPUT}~ to cancel',
+
+ ['~r~Too far'] = '~r~Too far',
+ ['~y~You can not tie the rope to the ground'] = '~y~You can not tie the rope to the ground',
+ ['~r~This vehicle can not be towed'] = '~r~This vehicle can not be towed',
+
+ ['~w~Hold ~r~[~w~{INPUT}~r~]~w~ to detach the rope'] = '~w~Hold ~r~[~w~{INPUT}~r~]~w~ to detach the rope',
+ ['~w~Hold ~{INPUT}~ to detach the rope'] = '~w~Hold ~{INPUT}~ to detach the rope',
+
+ ['~w~Hold ~{INPUT}~ to winch'] = '~w~Hold ~{INPUT}~ to winch',
+ ['~w~Release ~{INPUT}~ to stop winching'] = '~w~Release ~{INPUT}~ to stop winching',
+
+ ['~r~You may not use this item'] = '~r~You may not use this item',
+
+}
diff --git a/resources/[carscripts]/kq_towing2/mixed/constants.lua b/resources/[carscripts]/kq_towing2/mixed/constants.lua
new file mode 100644
index 000000000..50eb5dd0c
Binary files /dev/null and b/resources/[carscripts]/kq_towing2/mixed/constants.lua differ
diff --git a/resources/[carscripts]/kq_towing2/server/editable/editable.lua b/resources/[carscripts]/kq_towing2/server/editable/editable.lua
new file mode 100644
index 000000000..4fd67eb36
--- /dev/null
+++ b/resources/[carscripts]/kq_towing2/server/editable/editable.lua
@@ -0,0 +1,22 @@
+
+if Config.commands.towing.enabled then
+ RegisterCommand(Config.commands.towing.command, function(source)
+ if Config.jobWhitelist.towing.enabled then
+ if not IsPlayerJobWhitelisted(source, Config.jobWhitelist.towing.jobs) then
+ return TriggerClientEvent('kq_towing:client:notify', source, L('~r~You may not use this item'))
+ end
+ end
+ TriggerClientEvent('kq_towing:client:startRope', source, false, false)
+ end)
+end
+
+if Config.commands.winch.enabled then
+ RegisterCommand(Config.commands.winch.command, function(source)
+ if Config.jobWhitelist.winch.enabled then
+ if not IsPlayerJobWhitelisted(source, Config.jobWhitelist.winch.jobs) then
+ return TriggerClientEvent('kq_towing:client:notify', source, L('~r~You may not use this item'))
+ end
+ end
+ TriggerClientEvent('kq_towing:client:startRope', source, true, false)
+ end)
+end
diff --git a/resources/[carscripts]/kq_towing2/server/editable/esx.lua b/resources/[carscripts]/kq_towing2/server/editable/esx.lua
new file mode 100644
index 000000000..ce592e1c3
--- /dev/null
+++ b/resources/[carscripts]/kq_towing2/server/editable/esx.lua
@@ -0,0 +1,85 @@
+if Config.esxSettings.enabled then
+ ESX = nil
+
+ if Config.esxSettings.useNewESXExport then
+ ESX = exports['es_extended']:getSharedObject()
+ else
+ TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
+ end
+
+ ESX.RegisterUsableItem(Config.items.towingRope, function(source)
+ if Config.jobWhitelist.towing.enabled then
+ if not IsPlayerJobWhitelisted(source, Config.jobWhitelist.towing.jobs) then
+ return TriggerClientEvent('kq_towing:client:notify', source, L('~r~You may not use this item'))
+ end
+ end
+ TriggerClientEvent('kq_towing:client:startRope', source, false, true)
+ end)
+
+ ESX.RegisterUsableItem(Config.items.winch, function(source)
+ if Config.jobWhitelist.winch.enabled then
+ if not IsPlayerJobWhitelisted(source, Config.jobWhitelist.winch.jobs) then
+ return TriggerClientEvent('kq_towing:client:notify', source, L('~r~You may not use this item'))
+ end
+ end
+ TriggerClientEvent('kq_towing:client:startRope', source, true, true)
+ end)
+
+ function IsPlayerJobWhitelisted(player, jobs)
+ local xPlayer = ESX.GetPlayerFromId(player)
+ if not xPlayer then
+ return false
+ end
+ local job = xPlayer.getJob()
+
+ return Contains(jobs, job.name)
+ end
+
+ function GetPlayerItemData(player, item)
+ local xPlayer = ESX.GetPlayerFromId(player)
+
+ return xPlayer.getInventoryItem(item)
+ end
+
+ function GetPlayerItemCount(player, item)
+ local data = GetPlayerItemData(player, item)
+ if not data then
+ return 0
+ end
+ return data.count or data.amount or 0
+ end
+
+ function RemovePlayerItem(player, item, amount)
+ if GetPlayerItemCount(player, item) < amount then
+ return false
+ end
+
+ local xPlayer = ESX.GetPlayerFromId(player)
+ xPlayer.removeInventoryItem(item, amount or 1)
+
+ return true
+ end
+
+ function AddPlayerItem(player, item, amount)
+ local xPlayer = ESX.GetPlayerFromId(tonumber(player))
+
+ -- Support for old esx which didn't use weight for inventory size but rather item limit per item type
+ if Config.esxSettings.oldEsx then
+ local esxItem = xPlayer.getInventoryItem(item)
+
+ if esxItem.limit == -1 or (esxItem.count + amount) <= esxItem.limit then
+ xPlayer.addInventoryItem(item, amount or 1)
+ return true
+ else
+ return false
+ end
+ else
+ if xPlayer.canCarryItem(item, amount or 1) then
+ xPlayer.addInventoryItem(item, amount or 1)
+ return true
+ else
+ return false
+ end
+ end
+ end
+end
diff --git a/resources/[carscripts]/kq_towing2/server/editable/ox.lua b/resources/[carscripts]/kq_towing2/server/editable/ox.lua
new file mode 100644
index 000000000..e3b07ee49
--- /dev/null
+++ b/resources/[carscripts]/kq_towing2/server/editable/ox.lua
@@ -0,0 +1,35 @@
+if Config.oxInventory.enabled then
+
+ -- Usable items
+ -- Export used for ox_inventory
+ exports('UseTowRope', function(event, item, inventory)
+ if event == 'usingItem' then
+ local player = inventory.id
+ TriggerClientEvent('kq_towing:client:startRope', player, false, true)
+ return true
+ end
+ end)
+
+ exports('UseWinch', function(event, item, inventory)
+ if event == 'usingItem' then
+ local player = inventory.id
+ TriggerClientEvent('kq_towing:client:startRope', player, true, true)
+ return true
+ end
+ end)
+
+
+ function IsPlayerJobWhitelisted(player, jobs)
+ return true
+ end
+
+ function AddPlayerItem(player, item, amount, meta)
+ local success, response = exports['ox_inventory']:AddItem(player, item, amount or 1, meta)
+ return success
+ end
+
+ function RemovePlayerItem(player, item, amount)
+ local success, response = exports['ox_inventory']:RemoveItem(player, item, amount or 1)
+ return success
+ end
+end
diff --git a/resources/[carscripts]/kq_towing2/server/editable/qb.lua b/resources/[carscripts]/kq_towing2/server/editable/qb.lua
new file mode 100644
index 000000000..d11fe470a
--- /dev/null
+++ b/resources/[carscripts]/kq_towing2/server/editable/qb.lua
@@ -0,0 +1,46 @@
+if Config.qbSettings.enabled then
+
+ if Config.qbSettings.useNewQBExport then
+ QBCore = exports['qb-core']:GetCoreObject()
+ end
+
+ QBCore.Functions.CreateUseableItem(Config.items.towingRope, function(source)
+ if Config.jobWhitelist.towing.enabled then
+ if not IsPlayerJobWhitelisted(source, Config.jobWhitelist.towing.jobs) then
+ return TriggerClientEvent('kq_towing:client:notify', source, L('~r~You may not use this item'))
+ end
+ end
+ TriggerClientEvent('kq_towing:client:startRope', source, false, true)
+ end)
+
+ QBCore.Functions.CreateUseableItem(Config.items.winch, function(source)
+ if Config.jobWhitelist.winch.enabled then
+ if not IsPlayerJobWhitelisted(source, Config.jobWhitelist.winch.jobs) then
+ return TriggerClientEvent('kq_towing:client:notify', source, L('~r~You may not use this item'))
+ end
+ end
+ TriggerClientEvent('kq_towing:client:startRope', source, true, true)
+ end)
+
+
+ function IsPlayerJobWhitelisted(player, jobs)
+ local xPlayer = QBCore.Functions.GetPlayer(player)
+ if not xPlayer then
+ return false
+ end
+
+ local job = xPlayer.PlayerData.job
+
+ return Contains(jobs, job.name)
+ end
+
+ function RemovePlayerItem(player, item, amount)
+ local xPlayer = QBCore.Functions.GetPlayer(tonumber(player))
+ return xPlayer.Functions.RemoveItem(item, amount or 1)
+ end
+
+ function AddPlayerItem(player, item, amount)
+ local xPlayer = QBCore.Functions.GetPlayer(tonumber(player))
+ return xPlayer.Functions.AddItem(item, amount or 1)
+ end
+end
diff --git a/resources/[carscripts]/kq_towing2/server/server.lua b/resources/[carscripts]/kq_towing2/server/server.lua
new file mode 100644
index 000000000..f0db4a61b
Binary files /dev/null and b/resources/[carscripts]/kq_towing2/server/server.lua differ
diff --git a/resources/[carscripts]/rtx_vehiclemenu/.fxap b/resources/[carscripts]/rtx_vehiclemenu/.fxap
deleted file mode 100644
index f0e641440..000000000
Binary files a/resources/[carscripts]/rtx_vehiclemenu/.fxap and /dev/null differ
diff --git a/resources/[carscripts]/rtx_vehiclemenu/Readme.txt b/resources/[carscripts]/rtx_vehiclemenu/Readme.txt
deleted file mode 100644
index c268a92db..000000000
--- a/resources/[carscripts]/rtx_vehiclemenu/Readme.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-Thank you for purchasing rtx_vehiclemenu we're grateful for your support. If you'd ever have a question and / or need our help, please reach out to us by sending an email or go ahead and create a ticket on our discord: https://discord.gg/P6KdaDpgAk
-
-
-Install instructions:
-1. Put rtx_vehiclemenu folder to your resources
-2. Open config.lua file
-3. Configure your config.lua to your preferences
-4. Put rtx_vehiclemenu to the server.cfg
-
-License agreement / Terms of Service
-1. Any purchase is non-refundable.
-2. Each product is to be used on a singular server, with the exception of a test server.
-3. Any form of redistribution of our content is considered copyright infringement.
-4. If any of these rules are broken, legal actions can be taken.
-© 2024 RTX Development, all rights reserved.
\ No newline at end of file
diff --git a/resources/[carscripts]/rtx_vehiclemenu/client/main.lua b/resources/[carscripts]/rtx_vehiclemenu/client/main.lua
deleted file mode 100644
index 3f768da58..000000000
Binary files a/resources/[carscripts]/rtx_vehiclemenu/client/main.lua and /dev/null differ
diff --git a/resources/[carscripts]/rtx_vehiclemenu/config.lua b/resources/[carscripts]/rtx_vehiclemenu/config.lua
deleted file mode 100644
index a4b687c0c..000000000
--- a/resources/[carscripts]/rtx_vehiclemenu/config.lua
+++ /dev/null
@@ -1,112 +0,0 @@
-Config = {}
-
-Config.Language = "German"
-
-Config.VehicleMenuResetSettingsCommand = "vehiclemenureset" -- command for reset vehicle menu settings
-
-Config.VehicleMenuOpenViaBind = true -- this will enable vehicle menu show via bind
-
-Config.VehicleMenuOpenViaBindKey = "O" -- vehicle menu show key, only work if you enable Config.VehicleMenuOpenViaBind
-
-Config.VehicleMenuOpenViaCommand = true -- this will enable vehicle menu show via commad
-
-Config.VehicleMenuOpenViaCommandName = "vehiclemenu" -- vehicle menu show command, only work if you enable Config.VehicleMenuOpenViaCommand
-
-Config.VehicleMenuOpenViaEvent = false -- this will enable vehicle menu show via event for show vehicle menu TriggerEvent("rtx_vehiclemenu:ShowVehicleMenu", true) for hide vehicle menu TriggerEvent("rtx_vehiclemenu:ShowVehicleMenu", false)
-
-Config.VehicleMenuOpenViaEventName = "rtx_vehiclemenu:ShowVehicleMenu" -- vehicle menu show event, only work if you enable Config.VehicleMenuOpenViaEvent
-
-Config.VehicleMenuForEveryVehicle = true -- if you enable this, vehicle menu will work on every vehicles, if its disabled, it will work only in vehicle menu which is writed in Config.VehicleMenuVehicles.
-
-Config.VehicleMenuVehicleBlacklist = false -- if you enable this, vehicle menu will work not for vehicles which is in blacklisted config, you need put vehicles in Config.VehicleMenuBlacklistedVehicles.
-
-Config.VehicleMenuForOnlySpecifiedTypeOfVehicle = false --- if you enable this, vehicle menu will work only for specified vehicle (Vehicle Class) you need enable class in Config.VehicleMenuVehiclesClasses
-
-Config.VehicleMenuEnableVehicleDriveWhenPlayerIsInMenu = true -- enable this if you want to be able to still drive the vehicle while you are in the menu
-
-Config.VehicleMenuEnableVehicleDriveWhenPlayerIsInMenuDisableCamera = true --turn this on if you want to disable camera movement when the player has the menu open
-
-Config.DefaultVehicleMenuSettings = {color = "#ff66ff", scale = 1.0, position = {top = 50, left = 70}} --scale for default settings min is 0.5, max is 1.5
-
-Config.VehicleMenuWaterDuration = 5000 -- duration of vehicle water
-
-Config.VehicleMenuDisableExtrasMenu = false -- enable this feature if you don't want the player to be able to switch extras
-
-Config.VehicleMenuDisableSeatsChangeMenu = false -- enable this feature if you don't want the player to be able to switch seats
-
-Config.VehicleMenuVehicles = {
- {
- vehiclename = "bullet", -- vehicle name
- },
- {
- vehiclename = "infernus", -- vehicle name
- },
-}
-
-Config.VehicleMenuBlacklistedVehicles = {
- {
- vehiclename = "rhino", -- vehicle name
- },
- {
- vehiclename = "thruster", -- vehicle name
- },
-}
-
-Config.VehicleMenuVehiclesClasses = {
- [0] = true,
- [1] = true,
- [2] = true,
- [3] = true,
- [4] = true,
- [5] = true,
- [6] = true,
- [7] = true,
- [8] = true,
- [9] = true,
- [10] = true,
- [11] = true,
- [12] = true,
- [13] = false,
- [14] = false,
- [15] = false,
- [16] = false,
- [17] = true,
- [18] = true,
- [19] = true,
- [20] = true,
- [21] = true,
- [22] = true,
-}
-
-function Notify(text)
- exports["rtx_notify"]:Notify("Vehicle", text, 5000, "info") -- if you get error in this line its because you dont use our notify system buy it here https://rtx.tebex.io/package/5402098 or you can use some other notify system just replace this notify line with your notify system
- --exports["mythic_notify"]:SendAlert("inform", text, 5000)
-end
-
-function VehicleBindAction(vehicle)
- -- here you can insert your own action what happens when the player presses the bind button in the vehicle menu. (for close menu use CloseVehicleMenu function)
- CloseVehicleMenu()
- TriggerEvent("rtx_radio:ShowRadio", true)
-end
-
-function VehicleLockAction(vehicle)
- -- here you can insert your own vehicle lock function if you use your own lock system.
- if GetVehicleDoorLockStatus(vehicle) == 1 then
- SetVehicleDoorsLocked(vehicle, 2)
- Notify(Language[Config.Language]["vehiclelocked"])
- else
- SetVehicleDoorsLocked(vehicle, 1)
- Notify(Language[Config.Language]["vehicleunlocked"])
- end
-end
-
-function VehicleEngineAction(vehicle)
- -- here you can insert your own vehicle engine function.
- if GetIsVehicleEngineRunning(vehicle) then
- SetVehicleEngineOn(vehicle, false, true, true)
- Notify(Language[Config.Language]["engineonoff"])
- else
- SetVehicleEngineOn(vehicle, true, true, true)
- Notify(Language[Config.Language]["engineon"])
- end
-end
\ No newline at end of file
diff --git a/resources/[carscripts]/rtx_vehiclemenu/fxmanifest.lua b/resources/[carscripts]/rtx_vehiclemenu/fxmanifest.lua
deleted file mode 100644
index c342e7025..000000000
--- a/resources/[carscripts]/rtx_vehiclemenu/fxmanifest.lua
+++ /dev/null
@@ -1,38 +0,0 @@
-fx_version 'cerulean'
-
-game 'gta5'
-
-description 'RTX VEHICLE MENU'
-
-version '10.0'
-
-server_scripts {
- 'config.lua',
- 'language/main.lua',
- 'server/main.lua'
-}
-
-client_scripts {
- 'config.lua',
- 'language/main.lua',
- 'client/main.lua'
-}
-
-files {
- 'html/ui.html',
- 'html/styles.css',
- 'html/scripts.js',
- 'html/BebasNeueBold.ttf',
- 'html/img/*.svg'
-}
-
-ui_page 'html/ui.html'
-
-
-lua54 'yes'
-
-escrow_ignore {
- 'config.lua',
- 'language/main.lua'
-}
-dependency '/assetpacks'
\ No newline at end of file
diff --git a/resources/[carscripts]/rtx_vehiclemenu/html/BebasNeueBold.ttf b/resources/[carscripts]/rtx_vehiclemenu/html/BebasNeueBold.ttf
deleted file mode 100644
index 45268ef03..000000000
Binary files a/resources/[carscripts]/rtx_vehiclemenu/html/BebasNeueBold.ttf and /dev/null differ
diff --git a/resources/[carscripts]/rtx_vehiclemenu/html/debounce.min.js b/resources/[carscripts]/rtx_vehiclemenu/html/debounce.min.js
deleted file mode 100644
index 648fe5d3c..000000000
--- a/resources/[carscripts]/rtx_vehiclemenu/html/debounce.min.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/*
- * jQuery throttle / debounce - v1.1 - 3/7/2010
- * http://benalman.com/projects/jquery-throttle-debounce-plugin/
- *
- * Copyright (c) 2010 "Cowboy" Ben Alman
- * Dual licensed under the MIT and GPL licenses.
- * http://benalman.com/about/license/
- */
-(function(b,c){var $=b.jQuery||b.Cowboy||(b.Cowboy={}),a;$.throttle=a=function(e,f,j,i){var h,d=0;if(typeof f!=="boolean"){i=j;j=f;f=c}function g(){var o=this,m=+new Date()-d,n=arguments;function l(){d=+new Date();j.apply(o,n)}function k(){h=c}if(i&&!h){l()}h&&clearTimeout(h);if(i===c&&m>e){l()}else{if(f!==true){h=setTimeout(i?k:l,i===c?e-m:e)}}}if($.guid){g.guid=j.guid=j.guid||$.guid++}return g};$.debounce=function(d,e,f){return f===c?a(d,e,false):a(d,f,e!==false)}})(this);
diff --git a/resources/[carscripts]/rtx_vehiclemenu/html/img/close.svg b/resources/[carscripts]/rtx_vehiclemenu/html/img/close.svg
deleted file mode 100644
index da3608259..000000000
--- a/resources/[carscripts]/rtx_vehiclemenu/html/img/close.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/resources/[carscripts]/rtx_vehiclemenu/html/img/doors.svg b/resources/[carscripts]/rtx_vehiclemenu/html/img/doors.svg
deleted file mode 100644
index 8768015e7..000000000
--- a/resources/[carscripts]/rtx_vehiclemenu/html/img/doors.svg
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
\ No newline at end of file
diff --git a/resources/[carscripts]/rtx_vehiclemenu/html/img/lights.svg b/resources/[carscripts]/rtx_vehiclemenu/html/img/lights.svg
deleted file mode 100644
index 7f8a9ed19..000000000
--- a/resources/[carscripts]/rtx_vehiclemenu/html/img/lights.svg
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
\ No newline at end of file
diff --git a/resources/[carscripts]/rtx_vehiclemenu/html/img/lightsh.svg b/resources/[carscripts]/rtx_vehiclemenu/html/img/lightsh.svg
deleted file mode 100644
index 73635a3d1..000000000
--- a/resources/[carscripts]/rtx_vehiclemenu/html/img/lightsh.svg
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
\ No newline at end of file
diff --git a/resources/[carscripts]/rtx_vehiclemenu/html/img/seats.svg b/resources/[carscripts]/rtx_vehiclemenu/html/img/seats.svg
deleted file mode 100644
index a24cd1592..000000000
--- a/resources/[carscripts]/rtx_vehiclemenu/html/img/seats.svg
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
\ No newline at end of file
diff --git a/resources/[carscripts]/rtx_vehiclemenu/html/img/settings.svg b/resources/[carscripts]/rtx_vehiclemenu/html/img/settings.svg
deleted file mode 100644
index 8d3c2258d..000000000
--- a/resources/[carscripts]/rtx_vehiclemenu/html/img/settings.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/resources/[carscripts]/rtx_vehiclemenu/html/img/water.svg b/resources/[carscripts]/rtx_vehiclemenu/html/img/water.svg
deleted file mode 100644
index e146e12b4..000000000
--- a/resources/[carscripts]/rtx_vehiclemenu/html/img/water.svg
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
\ No newline at end of file
diff --git a/resources/[carscripts]/rtx_vehiclemenu/html/img/windows.svg b/resources/[carscripts]/rtx_vehiclemenu/html/img/windows.svg
deleted file mode 100644
index c72df78a6..000000000
--- a/resources/[carscripts]/rtx_vehiclemenu/html/img/windows.svg
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
\ No newline at end of file
diff --git a/resources/[carscripts]/rtx_vehiclemenu/html/scripts.js b/resources/[carscripts]/rtx_vehiclemenu/html/scripts.js
deleted file mode 100644
index 36004eb6f..000000000
--- a/resources/[carscripts]/rtx_vehiclemenu/html/scripts.js
+++ /dev/null
@@ -1,466 +0,0 @@
-var vehiclemenuresourcename = "rtx_vehiclemenu";
-
-var ineditmenu = "false";
-
-$(function () {
- var currentscale = 1.0;
- if (localStorage.default == "false") {
- } else {
- localStorage.scale = 1.0;
- localStorage.color = "#ff66ff";
- }
-
- let defaultValues = {vehiclemenutop: "50", vehiclemenuleft: "70", scale: "1.0", color: "#ff66ff",};
-
- var scaleslider = document.getElementById("scalesliderdata");
-
- function closeMain() {
- $("body").css("display", "none");
- }
-
- function openMain() {
- $("body").css("display", "block");
- }
-
- $(".vehiclemenusettingsbuttonexit").click(function(){
- if ($(".vehiclemenu-container").data('draggable')) {
- ChangeVehicleMenu();
- $(".vehiclemenu-container").draggable("destroy");
- }
- ineditmenu = "false";
- $("#vehiclemenusettingsshow").hide();
- $.post('https://'+vehiclemenuresourcename+'/quit', JSON.stringify({}));
- });
-
- function draggableElements() {
- $(".vehiclemenu-container").draggable({
- scroll: false,
- axis: "x, y",
- cursor: "move"
- });
- $(".vehiclemenu-container").css("transform", "scale(" + localStorage.scale + ")");
- };
-
- function currentsliderdata() {
- if (localStorage.default === "true") {
- if (defaultValues.scale == 0.5) {
- return 5;
- } else if (defaultValues.scale == 0.6) {
- return 6;
- } else if (defaultValues.scale == 0.7) {
- return 7;
- } else if (defaultValues.scale == 0.8) {
- return 8;
- } else if (defaultValues.scale == 0.9) {
- return 9;
- } else if (defaultValues.scale == 1.0) {
- return 10;
- } else if (defaultValues.scale == 1.0) {
- return 10;
- } else if (defaultValues.scale == 1.1) {
- return 11;
- } else if (defaultValues.scale == 1.2) {
- return 12;
- } else if (defaultValues.scale == 1.3) {
- return 13;
- } else if (defaultValues.scale == 1.4) {
- return 14;
- } else if (defaultValues.scale == 1.5) {
- return 15;
- }
- } else {
- if (localStorage.scale == 0.5) {
- return 5;
- } else if (localStorage.scale == 0.6) {
- return 6;
- } else if (localStorage.scale == 0.7) {
- return 7;
- } else if (localStorage.scale == 0.8) {
- return 8;
- } else if (localStorage.scale == 0.9) {
- return 9;
- } else if (localStorage.scale == 1.0) {
- return 10;
- } else if (localStorage.scale == 1.0) {
- return 10;
- } else if (localStorage.scale == 1.1) {
- return 11;
- } else if (localStorage.scale == 1.2) {
- return 12;
- } else if (localStorage.scale == 1.3) {
- return 13;
- } else if (localStorage.scale == 1.4) {
- return 14;
- } else if (localStorage.scale == 1.5) {
- return 15;
- }
- }
- }
-
- function ChangeVehicleMenu() {
- if (localStorage.default === "true") {
- let root = document.documentElement;
- var vehiclemenutop = defaultValues.vehiclemenutop + "%";
- var vehiclemenuleft = defaultValues.vehiclemenuleft + '%';
- $('.vehiclemenu-container').css({
- position:'absolute',
- top:vehiclemenutop,
- left:vehiclemenuleft
- });
- localStorage.scale = defaultValues.scale;
- localStorage.color = defaultValues.color;
- scaleslider.value = currentsliderdata();
- currentscale = defaultValues.scale;
- root.style.setProperty('--color', defaultValues.color);
- $("#color-picker").spectrum("set", defaultValues.color);
- $(".vehiclemenu-container").css("transform", "scale(" + defaultValues.scale + ")");
- } else {
- let root = document.documentElement;
- var vehiclemenutop = localStorage.vehiclemenutop + 'px';
- var vehiclemenuleft = localStorage.vehiclemenuleft + 'px';
- var scaledata = localStorage.scale;
- var color = localStorage.color;
- $('.vehiclemenu-container').css({
- position:'absolute',
- top:vehiclemenutop,
- left:vehiclemenuleft
- });
- $("#color-picker").spectrum("set", localStorage.color);
- scaleslider.value = currentsliderdata();
- root.style.setProperty('--color', color);
- $(".vehiclemenu-container").css("transform", "scale(" + scaledata + ")");
- }
- };
-
- function ResetVehicleMenuToDefault() {
- let root = document.documentElement;
- var vehiclemenutop = defaultValues.vehiclemenutop + "%";
- var vehiclemenuleft = defaultValues.vehiclemenuleft + '%';
- $('.vehiclemenu-container').css({
- position:'absolute',
- top:vehiclemenutop,
- left:vehiclemenuleft
- });
- localStorage.scale = defaultValues.scale;
- localStorage.color = defaultValues.color;
- scaleslider.value = currentsliderdata();
- currentscale = defaultValues.scale;
- root.style.setProperty('--color', defaultValues.color);
- $("#color-picker").spectrum("set", defaultValues.color);
- $(".vehiclemenu-container").css("transform", "scale(" + defaultValues.scale + ")");
- };
-
- window.addEventListener('message', function (event) {
-
- var item = event.data;
-
- if (item.message == "vehiclemenushow") {
- openMain();
- document.getElementsByClassName("vehiclemenusettingsbuttonvehiclename1text")[0].innerHTML = item.vehiclenametext1data;
- document.getElementsByClassName("vehiclemenusettingsbuttonvehiclename2text")[0].innerHTML= item.vehiclenametext2data;
- document.getElementsByClassName("vehiclemenusettingsbuttonvehicleplatetext")[0].innerHTML = item.vehicleplatedata;
- $('.vehiclemenufuelmaincontainerdata').css("height", item.vehiclefueldata+"%")
- $("#vehiclemenusettingsshow").hide();
- $("#vehiclemenusettingswindowshow").hide();
- $("#vehiclemenusettingsseatshow").hide();
- $("#vehiclemenusettingsextrasshow").hide();
- $("#vehiclemenusettingsdoorshow").show();
- $("#vehiclemenushow").show();
- }
-
- if (item.message == "addseat"){
- $( ".vehiclemenusettingsseatlist" ).append('
' +
- '
' + item.vehicleseattext + '
' +
- '
');
- }
-
- if (item.message == "addextra"){
- $( ".vehiclemenusettingsextraslist" ).append('');
- }
-
- if (item.message == "vehiclemenusettingsloadfirst") {
- vehiclemenuresourcename = item.vehiclemenuresourcenamedata;
- defaultValues.vehiclemenutop = item.vehiclemenupositiontopdata;
- defaultValues.vehiclemenuleft = item.vehiclemenupositionleftdata;
- defaultValues.scale = item.vehiclemenuscaledata;
- defaultValues.color = item.vehiclemenucolordata;
- if (localStorage.default == "false") {
- } else {
- localStorage.default = "true";
- }
- ChangeVehicleMenu();
- }
-
- if (item.message == "vehiclemenusettingsload") {
- vehiclemenuresourcename = item.vehiclemenuresourcenamedata;
- defaultValues.vehiclemenutop = item.vehiclemenupositiontopdata;
- defaultValues.vehiclemenuleft = item.vehiclemenupositionleftdata;
- defaultValues.scale = item.vehiclemenuscaledata;
- defaultValues.color = item.vehiclemenucolordata;
- if (localStorage.default == "false") {
- } else {
- localStorage.default = "true";
- if (ineditmenu == "false") {
- ResetVehicleMenuToDefault();
- }
- }
- }
-
- if (item.message == "vehiclemenureset") {
- localStorage.default = "true";
- ChangeVehicleMenu();
- }
-
- if (item.message == "hide") {
- closeMain();
- }
-
- document.onkeyup = function (data) {
- if (open) {
- if (data.which == 27) {
- if ($(".vehiclemenu-container").data('draggable')) {
- ChangeVehicleMenu();
- $(".vehiclemenu-container").draggable("destroy");
- }
- ineditmenu = "false";
- $("#vehiclemenusettingsshow").hide();
- $.post('https://'+vehiclemenuresourcename+'/quit', JSON.stringify({}));
- }
- }
- };
- });
-
- $(".vehiclemenusettingsbuttonwarning").click(function () {
- $.post('https://'+vehiclemenuresourcename+'/vehiclewarning', JSON.stringify({}));
- });
-
- $(".vehiclemenusettingsbuttonlight").click(function () {
- $.post('https://'+vehiclemenuresourcename+'/vehiclelightinterior', JSON.stringify({}));
- });
-
- $(".vehiclemenusettingsbuttonlighth").click(function () {
- $.post('https://'+vehiclemenuresourcename+'/vehiclelight', JSON.stringify({}));
- });
-
- $(".vehiclemenusettingsbuttonengine").click(function () {
- $.post('https://'+vehiclemenuresourcename+'/vehicleengine', JSON.stringify({}));
- });
-
- $(".vehiclemenusettingsbuttonbind").click(function () {
- $.post('https://'+vehiclemenuresourcename+'/vehiclebind', JSON.stringify({}));
- });
-
- $(".vehiclemenusettingsbuttonlock").click(function () {
- $.post('https://'+vehiclemenuresourcename+'/vehiclelock', JSON.stringify({}));
- });
-
- $(".vehiclemenusettingsbuttonwater").click(function () {
- $.post('https://'+vehiclemenuresourcename+'/vehiclewater', JSON.stringify({}));
- });
-
- $(".vehiclemenusettingsbuttonselect1").click(function () {
- $("#vehiclemenusettingswindowshow").hide();
- $("#vehiclemenusettingsseatshow").hide();
- $("#vehiclemenusettingsextrasshow").hide();
- $("#vehiclemenusettingsdoorshow").show();
- });
-
- $(".vehiclemenusettingsbuttonselect2").click(function () {
- $("#vehiclemenusettingsdoorshow").hide();
- $("#vehiclemenusettingsseatshow").hide();
- $("#vehiclemenusettingsextrasshow").hide();
- $("#vehiclemenusettingswindowshow").show();
- });
-
- $(".vehiclemenusettingsbuttonselect3").click(function () {
- $( ".vehiclemenusettingsseatlist" ).empty()
- $("#vehiclemenusettingsdoorshow").hide();
- $("#vehiclemenusettingswindowshow").hide();
- $("#vehiclemenusettingsextrasshow").hide();
- $("#vehiclemenusettingsseatshow").show();
- $.post('https://'+vehiclemenuresourcename+'/vehicleseats', JSON.stringify({}));
- });
-
- $(".vehiclemenusettingsbuttonselect4").click(function () {
- $( ".vehiclemenusettingsextraslist" ).empty()
- $("#vehiclemenusettingsdoorshow").hide();
- $("#vehiclemenusettingswindowshow").hide();
- $("#vehiclemenusettingsseatshow").hide();
- $("#vehiclemenusettingsextrasshow").show();
- $.post('https://'+vehiclemenuresourcename+'/vehicleextras', JSON.stringify({}));
- });
-
- $(".vehiclemenusettingsdoormain1").click(function () {
- $.post('https://'+vehiclemenuresourcename+'/changedoor', JSON.stringify({
- dooriddata: 4,
- }));
- });
-
- $(".vehiclemenusettingsdoormain2").click(function () {
- $.post('https://'+vehiclemenuresourcename+'/changedoor', JSON.stringify({
- dooriddata: 5,
- }));
- });
-
- $(".vehiclemenusettingsdoormain3").click(function () {
- $.post('https://'+vehiclemenuresourcename+'/changedoor', JSON.stringify({
- dooriddata: 0,
- }));
- });
-
- $(".vehiclemenusettingsdoormain4").click(function () {
- $.post('https://'+vehiclemenuresourcename+'/changedoor', JSON.stringify({
- dooriddata: 1,
- }));
- });
-
- $(".vehiclemenusettingsdoormain5").click(function () {
- $.post('https://'+vehiclemenuresourcename+'/changedoor', JSON.stringify({
- dooriddata: 2,
- }));
- });
-
- $(".vehiclemenusettingsdoormain6").click(function () {
- $.post('https://'+vehiclemenuresourcename+'/changedoor', JSON.stringify({
- dooriddata: 3,
- }));
- });
-
- $(".vehiclemenusettingswindowmain1").click(function () {
- $.post('https://'+vehiclemenuresourcename+'/changewindow', JSON.stringify({
- windowiddata: 0,
- }));
- });
-
- $(".vehiclemenusettingswindowmain2").click(function () {
- $.post('https://'+vehiclemenuresourcename+'/changewindow', JSON.stringify({
- windowiddata: 1,
- }));
- });
-
- $(".vehiclemenusettingswindowmain3").click(function () {
- $.post('https://'+vehiclemenuresourcename+'/changewindow', JSON.stringify({
- windowiddata: 2,
- }));
- });
-
- $(".vehiclemenusettingswindowmain4").click(function () {
- $.post('https://'+vehiclemenuresourcename+'/changewindow', JSON.stringify({
- windowiddata: 3,
- }));
- });
-
- $(".vehiclemenusettingsseatlist").on("click", ".vehicleseat", function() {
- var $vehicleseathandler = $(this);
- var $vehicleseatiddata = $vehicleseathandler.attr('seatid')
- $.post('https://'+vehiclemenuresourcename+'/changeseat', JSON.stringify({
- vehicleseatiddata: $vehicleseatiddata,
- }));
- });
-
- $(".vehiclemenusettingsextraslist").on("click", ".vehicleextras", function() {
- var $vehicleextrahandler = $(this);
- var $vehicleextraiddata = $vehicleextrahandler.attr('extraid')
- $.post('https://'+vehiclemenuresourcename+'/changeextra', JSON.stringify({
- vehicleextraiddata: $vehicleextraiddata,
- }));
- });
-
- $(".closevehiclemenusettings").click(function(){
- ChangeVehicleMenu();
- ineditmenu = "false";
- $(".vehiclemenu-container").draggable("destroy");
- $("#vehiclemenusettingsshow").hide();
- });
-
- $(".vehiclemenusettingsbuttonsettings").click(function(){
- draggableElements();
- ineditmenu = "true";
- $("#vehiclemenusettingsshow").show();
- });
-
- $(".buttonvehiclemenusettingsreset").click(function(){
- localStorage.default = "true";
- ChangeVehicleMenu();
- });
-
- $(".buttonvehiclemenusettingssave").click(function(){
- $(".vehiclemenu-container").draggable("disable")
- localStorage.default = "false";
- var vehiclemenupos = $(".vehiclemenu-container").position();
- localStorage.vehiclemenutop = vehiclemenupos.top;
- localStorage.vehiclemenuleft = vehiclemenupos.left;
- localStorage.scale = currentscale;
- localStorage.color = $("#color-picker").spectrum("get");
- ChangeVehicleMenu();
- $(".vehiclemenu-container").draggable("destroy");
- ineditmenu = "false";
- $("#vehiclemenusettingsshow").hide();
- });
-
- $(document).ready(function() {
- $(".sp-container").on({
- click: function(){
- let root = document.documentElement;
- var value = $("#color-picker").val();
- var hexstring = $("#color-picker").spectrum("get");
- root.style.setProperty('--color', hexstring);
- localStorage.color = hexstring;
- },
- change: function(){
- let root = document.documentElement;
- var value = $("#color-picker").val();
- root.style.setProperty('--color', hexstring);
- var hexstring = $("#color-picker").spectrum("get");
- localStorage.color = hexstring;
- }
- });
-
- });
- scaleslider.oninput = function() {
- if (this.value == 5) {
- $(".vehiclemenu-container").css("transform", "scale(0.5)");
- currentscale = 0.5;
- } else if (this.value == 6) {
- $(".vehiclemenu-container").css("transform", "scale(0.6)");
- currentscale = 0.6;
- } else if (this.value == 7) {
- $(".vehiclemenu-container").css("transform", "scale(0.7)");
- currentscale = 0.7;
- } else if (this.value == 8) {
- $(".vehiclemenu-container").css("transform", "scale(0.8)");
- currentscale = 0.8;
- } else if (this.value == 9) {
- $(".vehiclemenu-container").css("transform", "scale(0.9)");
- currentscale = 0.9;
- } else if (this.value == 10) {
- $(".vehiclemenu-container").css("transform", "scale(1.0)");
- currentscale = 1.0;
- } else if (this.value == 11) {
- $(".vehiclemenu-container").css("transform", "scale(1.1)");
- currentscale = 1.1;
- } else if (this.value == 12) {
- $(".vehiclemenu-container").css("transform", "scale(1.2)");
- currentscale = 1.2;
- } else if (this.value == 13) {
- $(".vehiclemenu-container").css("transform", "scale(1.3)");
- currentscale = 1.3;
- } else if (this.value == 14) {
- $(".vehiclemenu-container").css("transform", "scale(1.4)");
- currentscale = 1.4;
- } else if (this.value == 15) {
- $(".vehiclemenu-container").css("transform", "scale(1.5)");
- currentscale = 1.5;
- }
- }
- $('#color-picker').spectrum({
- preferredFormat: "rgb",
- showInput: true,
- showPalette: false,
- allowEmpty:false,
- showAlpha: false,
- showButtons: false
- });
-})
\ No newline at end of file
diff --git a/resources/[carscripts]/rtx_vehiclemenu/html/styles.css b/resources/[carscripts]/rtx_vehiclemenu/html/styles.css
deleted file mode 100644
index dc2a0aad1..000000000
--- a/resources/[carscripts]/rtx_vehiclemenu/html/styles.css
+++ /dev/null
@@ -1,1571 +0,0 @@
-:root {
- --color: #ff66ff;
-}
-
-@import url('https://kit-pro.fontawesome.com/releases/v6.2.0/css/pro.min.css');
-
-@font-face {
- font-family: BebasNeueBold;
- src: url(BebasNeueBold.ttf);
-}
-
-*{
- user-select: none; /* supported by Chrome and Opera */
- -webkit-user-select: none; /* Safari */
- -khtml-user-select: none; /* Konqueror HTML */
- -moz-user-select: none; /* Firefox */
- -ms-user-select: none; /* Internet Explorer/Edge */
-}
-
-html {
- overflow: hidden;
- font-family: 'Open Sans', sans-serif;
-}
-
-body{
- display: none;
- color: #a8a8aa;
-}
-
-::-webkit-scrollbar
-{
- width: 4px;
-}
-
-::-webkit-scrollbar-thumb
-{
- background-color: rgba(0, 0, 0, 0.0);
-}
-
-.vehiclemenu-container {
- width: 22%;
- height: 39%;
- background-color: rgba(0, 0, 0, 0.0);
- margin: 0;
- position: absolute;
- top: 68%;
- left: 81.5%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999;
- display: none;
-}
-
-.vehiclemenumain {
- width: 100%;
- height: 75%;
- background-color: rgba(255, 0, 0, 0.0);
- margin: 0;
- position: absolute;
- top: 62.5%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
-}
-
-.vehiclemenufuelmain {
- width: 6%;
- height: 100%;
- margin: 0;
- position: absolute;
- top: 50%;
- left: 97%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
-}
-
-.vehiclemenusettingsdoor {
- width: 93%;
- height: 100%;
- background-color: rgba(0, 0, 0, 0.70);
- margin: 0;
- position: absolute;
- left: 46.8%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
- display: none;
-}
-
-.vehiclemenusettingswindow {
- width: 93%;
- height: 100%;
- background-color: rgba(0, 0, 0, 0.70);
- margin: 0;
- position: absolute;
- left: 46.8%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
- display: none;
-}
-
-.vehiclemenusettingsseat {
- width: 93%;
- height: 100%;
- background-color: rgba(0, 0, 0, 0.70);
- margin: 0;
- position: absolute;
- left: 46.8%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
- display: none;
-}
-
-.vehiclemenusettingsextras {
- width: 93%;
- height: 100%;
- background-color: rgba(0, 0, 0, 0.70);
- margin: 0;
- position: absolute;
- left: 46.8%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
-}
-
-
-.vehiclemenusettingsbuttonwarning {
- width: 42%;
- height: 22%;
- background-color: rgba(0, 0, 0, 1.0);
- margin: 0;
- position: absolute;
- top: 89%;
- left: 46.5%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
- clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
-}
-
-.vehiclemenusettingsbuttonwarning:hover {
- background-color: var(--color);
-}
-
-.vehiclemenusettingsbuttonlight {
- width: 45.7%;
- height: 48%;
- background-color: rgba(0, 0, 0, 1.0);
- margin: 0;
- position: absolute;
- top: 76%;
- left: 23%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
- clip-path: polygon(100% 2%, 100% 49%, 49% 100%, 0 100%);
-}
-
-.vehiclemenusettingsbuttonlight:hover {
- background-color: var(--color);
-}
-
-.vehiclemenusettingsbuttonlighth {
- width: 45.7%;
- height: 48%;
- background-color: rgba(0, 0, 0, 1.0);
- margin: 0;
- position: absolute;
- top: 76%;
- left: 70.1%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
- clip-path: polygon(0 49%, 0 2%, 100% 100%, 49% 100%);
-}
-
-.vehiclemenusettingsbuttonlighth:hover {
- background-color: var(--color);
-}
-
-.vehiclemenusettingsbuttonengine {
- width: 21%;
- height: 44%;
- background-color: rgba(0, 0, 0, 1.0);
- margin: 0;
- position: absolute;
- top: 76%;
- left: 10.8%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
- clip-path: polygon(0 0, 0% 100%, 100% 50%);
-}
-
-.vehiclemenusettingsbuttonengine:hover {
- background-color: var(--color);
-}
-
-.vehiclemenusettingsbuttonbind {
- width: 21%;
- height: 44%;
- background-color: rgba(0, 0, 0, 1.0);
- margin: 0;
- position: absolute;
- top: 76%;
- left: 82.6%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
- clip-path: polygon(100% 0, 100% 100%, 0 50%);
-}
-
-.vehiclemenusettingsbuttonbind:hover {
- background-color: var(--color);
-}
-
-.vehiclemenusettingsbuttonlock {
- width: 45%;
- height: 23%;
- background-color: rgba(0, 0, 0, 1.0);
- margin: 0;
- position: absolute;
- top: 63%;
- left: 22.7%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
- clip-path: polygon(100% 0, 50% 100%, 0 0);
-}
-
-.vehiclemenusettingsbuttonlock:hover {
- background-color: var(--color);
-}
-
-.vehiclemenusettingsbuttonwater {
- width: 45%;
- height: 23%;
- background-color: rgba(0, 0, 0, 1.0);
- margin: 0;
- position: absolute;
- top: 63%;
- left: 70.6%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
- clip-path: polygon(100% 0, 50% 100%, 0 0);
-}
-
-.vehiclemenusettingsbuttonwater:hover {
- background-color: var(--color);
-}
-
-.vehiclemenusettingsbuttonvehiclename {
- width: 66%;
- height: 12%;
- background-color: rgba(0, 0, 0, 1.0);
- margin: 0;
- position: absolute;
- top: 18.4%;
- left: 34%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
- clip-path: polygon(18% 0, 100% 0%, 80% 100%, 0% 100%);
-}
-
-.vehiclemenusettingsbuttonvehicleplate {
- width: 46%;
- height: 12%;
- background-color: rgba(0, 0, 0, 1.0);
- margin: 0;
- position: absolute;
- top: 18.4%;
- left: 79%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
- clip-path: polygon(28% 0, 100% 0%, 100% 100%, 0% 100%);
-}
-
-.vehiclemenusettingsbuttonsettings {
- width: 21.5%;
- height: 23%;
- background-color: var(--color);
- margin: 0;
- position: absolute;
- top: 12%;
- left: 11%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
- clip-path: polygon(0 0, 0% 100%, 100% 0);
-}
-
-.vehiclemenusettingsbuttonsettingsicon {
- position: absolute;
- margin: 0;
- text-decoration: none;
- text-align: center;
- top: 30%;
- left: 30%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 1.5vw;
- color: #000000;
- text-align:center;
- font-family: BebasNeueBold;
- z-index: 9999999;
-}
-
-.vehiclemenusettingsbuttonsettings:hover > .vehiclemenusettingsbuttonsettingsicon {
- filter: invert(96%) sepia(4%) saturate(14%) hue-rotate(135deg) brightness(104%) contrast(105%);
-}
-
-.vehiclemenusettingsbuttonexit {
- width: 16%;
- height: 11%;
- background-color: var(--color);
- margin: 0;
- position: absolute;
- top: 6%;
- left: 92%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
- clip-path: polygon(58% 0, 100% 0%, 100% 100%, 0% 100%);
-}
-
-.vehiclemenusettingsbuttonexiticon {
- position: absolute;
- margin: 0;
- text-decoration: none;
- text-align: center;
- top: 50%;
- left: 70%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 1.8626929217668973vw;
- color: #ffffff;
- text-align:center;
- font-family: BebasNeueBold;
- z-index: 9999999;
- width: 1.0vw;
- height: 1.0vw
-}
-
-.vehiclemenusettingsbuttonexit:hover > .vehiclemenusettingsbuttonexiticon {
- filter: invert(96%) sepia(4%) saturate(14%) hue-rotate(135deg) brightness(104%) contrast(105%);
-}
-
-.vehiclemenusettingsbuttonselect1 {
- width: 26%;
- height: 10%;
- background-color: rgba(0, 0, 0, 1.0);
- border-bottom: 2px solid var(--color);
- margin: 0;
- position: absolute;
- top: 6%;
- left: 27%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
- clip-path: polygon(40% 0, 100% 0, 60% 100%, 0% 100%);
-}
-
-.vehiclemenusettingsbuttonselect1:hover {
- background-color: var(--color);
-}
-
-.vehiclemenusettingsbuttonselect2 {
- width: 26%;
- height: 10%;
- background-color: rgba(0, 0, 0, 1.0);
- border-bottom: 2px solid var(--color);
- margin: 0;
- position: absolute;
- top: 6%;
- left: 44.5%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
- clip-path: polygon(40% 0, 100% 0, 60% 100%, 0% 100%);
-
-}
-
-.vehiclemenusettingsbuttonselect2:hover {
- background-color: var(--color);
-}
-
-.vehiclemenusettingsbuttonselect3 {
- width: 26%;
- height: 10%;
- background-color: rgba(0, 0, 0, 1.0);
- border-bottom: 2px solid var(--color);
- margin: 0;
- position: absolute;
- top: 6%;
- left: 62%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
- clip-path: polygon(40% 0, 100% 0, 60% 100%, 0% 100%);
-}
-
-.vehiclemenusettingsbuttonselect3:hover {
- background-color: var(--color);
-}
-
-.vehiclemenusettingsbuttonselect4 {
- width: 26%;
- height: 10%;
- background-color: rgba(0, 0, 0, 1.0);
- border-bottom: 2px solid var(--color);
- margin: 0;
- position: absolute;
- top: 6%;
- left: 79.5%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
- clip-path: polygon(40% 0, 96% 0, 60% 100%, 0% 100%);
-
-}
-
-.vehiclemenusettingsbuttonselect4:hover {
- background-color: var(--color);
-}
-
-.vehiclemenusettingsbuttonwarningicon {
- position: absolute;
- margin: 0;
- text-decoration: none;
- text-align: center;
- top: 60%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 1.8626929217668973vw;
- color: #ffffff;
- text-align:center;
- font-family: BebasNeueBold;
- z-index: 9999999;
-}
-
-.vehiclemenusettingsbuttonlighticon {
- position: absolute;
- margin: 0;
- text-decoration: none;
- text-align: center;
- top: 60%;
- left: 64%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 1.8626929217668973vw;
- color: #ffffff;
- text-align:center;
- font-family: BebasNeueBold;
- z-index: 9999999;
-}
-
-.vehiclemenusettingsbuttonlighthicon {
- position: absolute;
- margin: 0;
- text-decoration: none;
- text-align: center;
- top: 60%;
- left: 36%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 1.8626929217668973vw;
- color: #ffffff;
- text-align:center;
- font-family: BebasNeueBold;
- z-index: 9999999;
- width: 1.8626929217668973vw;
- height: 1.8626929217668973vw;
-}
-
-.vehiclemenusettingsbuttonengineicon {
- position: absolute;
- margin: 0;
- text-decoration: none;
- text-align: center;
- top: 50%;
- left: 36.5%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 1.8626929217668973vw;
- color: #ffffff;
- text-align:center;
- font-family: BebasNeueBold;
- z-index: 9999999;
-}
-
-.vehiclemenusettingsbuttonengineicon {
- position: absolute;
- margin: 0;
- text-decoration: none;
- text-align: center;
- top: 50%;
- left: 36.5%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 1.8626929217668973vw;
- color: #ffffff;
- text-align:center;
- font-family: BebasNeueBold;
- z-index: 9999999;
-}
-
-.vehiclemenusettingsbuttonbindicon {
- position: absolute;
- margin: 0;
- text-decoration: none;
- text-align: center;
- top: 50%;
- left: 63.5%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 1.8626929217668973vw;
- color: #ffffff;
- text-align:center;
- font-family: BebasNeueBold;
- z-index: 9999999;
-}
-
-.vehiclemenusettingsbuttonlockicon {
- position: absolute;
- margin: 0;
- text-decoration: none;
- text-align: center;
- top: 40%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 1.8626929217668973vw;
- color: #ffffff;
- text-align:center;
- font-family: BebasNeueBold;
- z-index: 9999999;
-}
-
-.vehiclemenusettingsbuttonwatericon {
- position: absolute;
- margin: 0;
- text-decoration: none;
- text-align: center;
- top: 40%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 1.8626929217668973vw;
- color: #ffffff;
- text-align:center;
- font-family: BebasNeueBold;
- z-index: 9999999;
- width: 1.8626929217668973vw;
- height: 1.8626929217668973vw;
-}
-
-.vehiclemenufuelicon {
- position: absolute;
- margin: 0;
- text-decoration: none;
- text-align: center;
- top: 95%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 0.95vw;
- color: #000000;
- text-align:center;
- font-family: BebasNeueBold;
- z-index: 999999999;
-}
-
-.vehiclemenufuelmaincontainer {
- width: 150%;
- height: 100%;
- background-color: rgba(0, 0, 0, 0.70);
- margin: 0;
- position: absolute;
- top: 50%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 99999999;
-}
-
-.vehiclemenufuelmaincontainerdata {
- outline: none;
- position: absolute;
- width: 100%;
- height: 100%;
- background-color: var(--color);
- object-fit: cover;
- z-index: 9999999;
- bottom: 0;
-}
-.vehiclemenusettingsbuttonvehiclename1 {
- width: 68%;
- height: 50%;
- background-color: rgba(255, 0, 255, 0.0);
- margin: 0;
- position: absolute;
- top: 32%;
- left: 49%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
- padding-left: 2%;
-}
-
-.vehiclemenusettingsbuttonvehiclename1text {
- margin: 0;
- color: #ffffff;
- font-size: 0.90vw;
- padding-left: 7px;
- padding-right: 7px;
- text-decoration: none;
- text-align: center;
- float: left;
- overflow: hidden;
- z-index: 99999999;
- font-family: Bahnschrift;
- font-weight: bold;
- border: none;
-}
-
-.vehiclemenusettingsbuttonvehiclename2 {
- width: 68%;
- height: 50%;
- background-color: rgba(0, 0, 0, 0.0);
- margin: 0;
- position: absolute;
- top: 72%;
- left: 47%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
- padding-left: 2%;
-}
-
-.vehiclemenusettingsbuttonvehiclename2text {
- margin: 0;
- color: #ffffff;
- font-size: 0.90vw;
- padding-left: 7px;
- padding-right: 7px;
- text-decoration: none;
- text-align: center;
- float: right;
- overflow: hidden;
- z-index: 99999999;
- font-family: Bahnschrift;
- font-weight: bold;
- border: none;
-}
-
-
-.vehiclemenusettingsbuttonvehicleplatetext {
- position: absolute;
- margin: 0;
- text-decoration: none;
- top: 50%;
- left: 57%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 1.1vw;
- color: #ffffff;
- text-align:center;
- font-family: Bahnschrift;
- font-weight: bold;
-}
-
-.vehiclemenusettingsbuttonselectcategory1 {
- position: absolute;
- margin: 0;
- text-decoration: none;
- text-align: center;
- top: 50%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- color: #ffffff;
- text-align:center;
- font-family: BebasNeueBold;
- z-index: 9999999;
- width: 1.2vw;
- height: 1.2vw
-}
-
-.vehiclemenusettingsbuttonselect1icon {
- position: absolute;
- margin: 0;
- text-decoration: none;
- text-align: center;
- top: 50%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- color: #ffffff;
- text-align:center;
- font-family: BebasNeueBold;
- z-index: 9999999;
- width: 1.0vw;
- height: 1.0vw
-}
-
-
-
-.vehiclemenusettingsbuttonselectcategory1text {
- position: absolute;
- margin: 0;
- text-decoration: none;
- top: 52%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 1.1vw;
- color: #ffffff;
- text-align:center;
- font-family: Bahnschrift;
- font-weight: bold;
-}
-
-.vehiclemenusettingsbuttonselect2icon {
- position: absolute;
- margin: 0;
- text-decoration: none;
- text-align: center;
- top: 50%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- color: #ffffff;
- text-align:center;
- font-family: BebasNeueBold;
- z-index: 9999999;
- width: 1.2vw;
- height: 1.2vw
-}
-
-
-.vehiclemenusettingsbuttonselectcategory2text {
- position: absolute;
- margin: 0;
- text-decoration: none;
- top: 52%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 1.1vw;
- color: #ffffff;
- text-align:center;
- font-family: Bahnschrift;
- font-weight: bold;
-}
-
-.vehiclemenusettingsbuttonselect3icon {
- position: absolute;
- margin: 0;
- text-decoration: none;
- text-align: center;
- top: 50%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 1.1vw;
- color: #ffffff;
- text-align:center;
- font-family: BebasNeueBold;
- z-index: 9999999;
-}
-
-.vehiclemenusettingsbuttonselectcategory3text {
- position: absolute;
- margin: 0;
- text-decoration: none;
- top: 52%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 1.1vw;
- color: #ffffff;
- text-align:center;
- font-family: Bahnschrift;
- font-weight: bold;
-}
-
-.vehiclemenusettingsbuttonselect4icon {
- position: absolute;
- margin: 0;
- text-decoration: none;
- text-align: center;
- top: 50%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 1.0vw;
- color: #ffffff;
- text-align:center;
- font-family: BebasNeueBold;
- z-index: 9999999;
-}
-
-.vehiclemenusettingsdoormain {
- width: 100%;
- height: 49.5%;
- background-color: rgba(0, 0, 0, 0.0);
- margin: 0;
- position: absolute;
- top: 75%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 99999999;
- overflow-x: hidden;
- overflow-y: scroll;
- display: block;
-}
-
-.vehiclemenusettingswindowmain {
- width: 100%;
- height: 49.5%;
- background-color: rgba(0, 0, 0, 0.0);
- margin: 0;
- position: absolute;
- top: 75%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 99999999;
- overflow-x: hidden;
- overflow-y: scroll;
- display: block;
-}
-
-.vehiclemenusettingsseatmain {
- width: 100%;
- height: 49.5%;
- background-color: rgba(0, 0, 0, 0.0);
- margin: 0;
- position: absolute;
- top: 75%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 99999999;
- overflow-x: hidden;
- overflow-y: scroll;
- display: block;
-}
-
-.vehiclemenusettingsseatlist {
- width: 100%;
- height: 100%;
- left: 50%;
- overflow: auto;
- display: flex;
- flex-wrap: wrap;
- align-content: flex-start;
-}
-
-.vehicleseat {
- position: relative;
- width: 42%;
- height: 30%;
- background-color: rgba(0, 0, 0, 1.0);
- text-align:center;
- margin-top: 2%;
- margin-bottom: 1%;
- margin-right: 1%;
- margin-left: 5%;
- z-index: 999999999;
-}
-
-.vehicleseat:hover {
- background-color: var(--color);
-}
-
-.vehicleseattext {
- position: absolute;
- margin: 0;
- text-decoration: none;
- top: 50%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 0.9vw;
- color: #ffffff;
- text-align:center;
- font-family: Bahnschrift;
- font-weight: bold;
-}
-
-.vehiclemenusettingsextrasmain {
- width: 100%;
- height: 49.5%;
- background-color: rgba(0, 0, 0, 0.0);
- margin: 0;
- position: absolute;
- top: 75%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 99999999;
- overflow-x: hidden;
- overflow-y: scroll;
- display: block;
-}
-
-.vehiclemenusettingsextraslist {
- width: 100%;
- height: 100%;
- left: 50%;
- overflow: auto;
- display: flex;
- flex-wrap: wrap;
- align-content: flex-start;
-}
-
-.vehicleextras {
- position: relative;
- width: 42%;
- height: 30%;
- background-color: rgba(0, 0, 0, 1.0);
- text-align:center;
- margin-top: 2%;
- margin-bottom: 1%;
- margin-right: 1%;
- margin-left: 5%;
- z-index: 999999999;
-}
-
-.vehicleextras:hover {
- background-color: var(--color);
-}
-
-.vehicleextrastext {
- position: absolute;
- margin: 0;
- text-decoration: none;
- top: 50%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 0.9vw;
- color: #ffffff;
- text-align:center;
- font-family: Bahnschrift;
- font-weight: bold;
-}
-
-.vehiclemenusettingsdoormain1 {
- width: 42%;
- height: 25%;
- background-color: rgba(0, 0, 0, 1.0);
- margin: 0;
- position: absolute;
- top: 20%;
- left: 26%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
-}
-
-.vehiclemenusettingsdoormain1:hover {
- background-color: var(--color);
-}
-
-.vehiclemenusettingsdoormain1text {
- position: absolute;
- margin: 0;
- text-decoration: none;
- top: 50%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 0.9vw;
- color: #ffffff;
- text-align:center;
- font-family: Bahnschrift;
- font-weight: bold;
-}
-
-.vehiclemenusettingsdoormain2 {
- width: 42%;
- height: 25%;
- background-color: rgba(0, 0, 0, 1.0);
- margin: 0;
- position: absolute;
- top: 20%;
- left: 74%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
-}
-
-.vehiclemenusettingsdoormain2:hover {
- background-color: var(--color);
-}
-
-
-.vehiclemenusettingsdoormain2text {
- position: absolute;
- margin: 0;
- text-decoration: none;
- top: 50%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 0.9vw;
- color: #ffffff;
- text-align:center;
- font-family: Bahnschrift;
- font-weight: bold;
-}
-
-.vehiclemenusettingsdoormain3 {
- width: 42%;
- height: 25%;
- background-color: rgba(0, 0, 0, 1.0);
- margin: 0;
- position: absolute;
- top: 50%;
- left: 26%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
-}
-
-.vehiclemenusettingsdoormain3:hover {
- background-color: var(--color);
-}
-
-.vehiclemenusettingsdoormain3text {
- position: absolute;
- margin: 0;
- text-decoration: none;
- top: 50%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 0.9vw;
- color: #ffffff;
- text-align:center;
- font-family: Bahnschrift;
- font-weight: bold;
-}
-
-.vehiclemenusettingsdoormain4 {
- width: 42%;
- height: 25%;
- background-color: rgba(0, 0, 0, 1.0);
- margin: 0;
- position: absolute;
- top: 50%;
- left: 74%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
-}
-
-.vehiclemenusettingsdoormain4:hover {
- background-color: var(--color);
-}
-
-.vehiclemenusettingsdoormain4text {
- position: absolute;
- margin: 0;
- text-decoration: none;
- top: 50%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 0.9vw;
- color: #ffffff;
- text-align:center;
- font-family: Bahnschrift;
- font-weight: bold;
-}
-
-.vehiclemenusettingsdoormain5 {
- width: 42%;
- height: 25%;
- background-color: rgba(0, 0, 0, 1.0);
- margin: 0;
- position: absolute;
- top: 80%;
- left: 26%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
-}
-
-.vehiclemenusettingsdoormain5:hover {
- background-color: var(--color);
-}
-
-.vehiclemenusettingsdoormain5text {
- position: absolute;
- margin: 0;
- text-decoration: none;
- top: 50%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 0.9vw;
- color: #ffffff;
- text-align:center;
- font-family: Bahnschrift;
- font-weight: bold;
-}
-
-.vehiclemenusettingsdoormain6 {
- width: 42%;
- height: 25%;
- background-color: rgba(0, 0, 0, 1.0);
- margin: 0;
- position: absolute;
- top: 80%;
- left: 74%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
-}
-
-.vehiclemenusettingsdoormain6:hover {
- background-color: var(--color);
-}
-
-.vehiclemenusettingsdoormain6text {
- position: absolute;
- margin: 0;
- text-decoration: none;
- top: 50%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 0.9vw;
- color: #ffffff;
- text-align:center;
- font-family: Bahnschrift;
- font-weight: bold;
-}
-
-.vehiclemenusettingswindowmain1 {
- width: 42%;
- height: 30%;
- background-color: rgba(0, 0, 0, 1.0);
- margin: 0;
- position: absolute;
- top: 30%;
- left: 26%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
-}
-
-.vehiclemenusettingswindowmain1:hover {
- background-color: var(--color);
-}
-
-.vehiclemenusettingswindowmain1text {
- position: absolute;
- margin: 0;
- text-decoration: none;
- top: 50%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 0.9vw;
- color: #ffffff;
- text-align:center;
- font-family: Bahnschrift;
- font-weight: bold;
-}
-
-.vehiclemenusettingswindowmain2 {
- width: 42%;
- height: 30%;
- background-color: rgba(0, 0, 0, 1.0);
- margin: 0;
- position: absolute;
- top: 30%;
- left: 74%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
-}
-
-.vehiclemenusettingswindowmain2:hover {
- background-color: var(--color);
-}
-
-
-.vehiclemenusettingswindowmain2text {
- position: absolute;
- margin: 0;
- text-decoration: none;
- top: 50%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 0.9vw;
- color: #ffffff;
- text-align:center;
- font-family: Bahnschrift;
- font-weight: bold;
-}
-
-.vehiclemenusettingswindowmain3 {
- width: 42%;
- height: 30%;
- background-color: rgba(0, 0, 0, 1.0);
- margin: 0;
- position: absolute;
- top: 70%;
- left: 26%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
-}
-
-.vehiclemenusettingswindowmain3:hover {
- background-color: var(--color);
-}
-
-.vehiclemenusettingswindowmain3text {
- position: absolute;
- margin: 0;
- text-decoration: none;
- top: 50%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 0.9vw;
- color: #ffffff;
- text-align:center;
- font-family: Bahnschrift;
- font-weight: bold;
-}
-
-.vehiclemenusettingswindowmain4 {
- width: 42%;
- height: 30%;
- background-color: rgba(0, 0, 0, 1.0);
- margin: 0;
- position: absolute;
- top: 70%;
- left: 74%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 9999999;
-}
-
-.vehiclemenusettingswindowmain4:hover {
- background-color: var(--color);
-}
-
-.vehiclemenusettingswindowmain4text {
- position: absolute;
- margin: 0;
- text-decoration: none;
- top: 50%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 0.9vw;
- color: #ffffff;
- text-align:center;
- font-family: Bahnschrift;
- font-weight: bold;
-}
-
-.vehiclemenusettings-container {
- width: 25%;
- height: 25%;
- background-color: rgba(0, 0, 0, 0.7);
- margin: 0;
- position: absolute;
- top: 50%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 99999;
- display: none;
- border-bottom: 3px solid var(--color);
-}
-
-.closevehiclemenusettings {
- position: absolute;
- margin: 0;
- text-decoration: none;
- text-align: center;
- top: 8%;
- left: 95%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 1.8626929217668973vw;
- color: #ffffff;
- text-align:center;
- font-family: BebasNeueBold;
- z-index: 999999999;
- width: 1.0vw;
- height: 1.0vw;
- filter: invert(96%) sepia(4%) saturate(14%) hue-rotate(135deg) brightness(104%) contrast(105%);
-}
-
-.vehiclemenusettingsmaintext {
- position: absolute;
- margin: 0;
- text-decoration: none;
- text-align: center;
- top: 10%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 20px;
- color: var(--color);
- text-align:center;
- font-family: Bahnschrift;
- font-weight: bold;
-}
-
-.vehiclemenusettingsmainscaletext {
- position: absolute;
- margin: 0;
- text-decoration: none;
- text-align: center;
- top: 25%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- font-size: 18px;
- color: #ffffff;
- text-align:center;
- font-family: Bahnschrift;
- font-weight: bold;
-}
-
-.scaleslidercontainer {
- position: absolute;
- margin: 0;
- background-color: rgba(0, 0, 0, 1.0);
- border-bottom: 3px solid var(--color);
- color: #ffffff;
- font-size: 35px;
- text-decoration: none;
- text-align: center;
- top: 40%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 999999;
- width: 60%;
- height: 12%;
- font-family: BebasNeueBold;
-}
-
-.scaleslider {
- -webkit-appearance: none;
- appearance: none;
- position: absolute;
- margin: 0;
- background-color: rgba(255, 255, 255, 0.0);
- color: #ffffff;
- font-size: 35px;
- text-decoration: none;
- text-align: center;
- top: 50%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 999999;
- width: 85%;
- height: 40%;
- font-family: BebasNeueBold;
- outline: none;
-}
-
-.scaleslideline {
- -webkit-appearance: none;
- appearance: none;
- position: absolute;
- margin: 0;
- background-color: rgba(255, 255, 255, 1.0);
- color: #ffffff;
- font-size: 35px;
- text-decoration: none;
- text-align: center;
- top: 50%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 999999;
- width: 85%;
- height: 6%;
- font-family: BebasNeueBold;
- outline: none;
-}
-
-.scaleslider::-webkit-slider-thumb {
- -webkit-appearance: none;
- appearance: none;
- width: 15px;
- height: 15px;
- cursor: pointer;
- background-color: var(--color);
-}
-
-.scaleslider::-moz-range-thumb {
- width: 15px;
- height: 15px;
- cursor: pointer;
- background-color: var(--color);
-}
-
-input[type=range]:focus {
- outline: none;
-}
-
-#color-picker {
- font-family: BebasNeueBold;
- background-color: rgba(0, 0, 0, 1.0);
- color: #ffffff;
- font-size: 20px;
- text-decoration: none;
- text-align: center;
- outline: none;
- border: none;
- border-bottom: 2px solid var(--color);
- z-index: 999999;
-}
-
-.colorchanger {
- position: absolute;
- color: white;
- top: 60%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- background-color: rgba(0, 0, 0, 1.0);
- overflow: hidden;
- z-index: 999999;
- font-family: Bahnschrift;
- font-weight: bold;
- color: #ffffff;
- font-size: 50px;
- text-decoration: none;
- text-align: center;
- outline: none;
- border: none;
-}
-
-.buttonvehiclemenusettingsreset {
- position: absolute;
- margin: 0;
- background-color: rgba(0, 0, 0, 1.0);
- border-bottom: 3px solid var(--color);
- color: #ffffff;
- font-size: 15px;
- padding-top: 10px;
- padding-bottom: 10px;
- padding-left: 5px;
- padding-right: 5px;
- text-decoration: none;
- text-align: center;
- top: 80%;
- left: 30%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 99999999;
- width: 35%;
- font-family: Bahnschrift;
- font-weight: bold;
-}
-
-.buttonvehiclemenusettingsreset:hover {
- background: var(--color);
- text-decoration: none;
-}
-
-.buttonvehiclemenusettingssave {
- position: absolute;
- margin: 0;
- background-color: rgba(0, 0, 0, 1.0);
- border-bottom: 3px solid var(--color);
- color: #ffffff;
- font-size: 15px;
- padding-top: 10px;
- padding-bottom: 10px;
- padding-left: 5px;
- padding-right: 5px;
- text-decoration: none;
- text-align: center;
- top: 80%;
- left: 70%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- overflow: hidden;
- z-index: 99999999;
- width: 35%;
- font-family: Bahnschrift;
- font-weight: bold;
-}
-
-.buttonvehiclemenusettingssave:hover {
- background: var(--color);
- text-decoration: none;
-}
-
-.full-screen {
- width: 100%;
- height:100%;
- display: flex;
- align-items: center;
-}
-
-*{
- font-family: BebasNeueBold;
-}
diff --git a/resources/[carscripts]/rtx_vehiclemenu/html/ui.html b/resources/[carscripts]/rtx_vehiclemenu/html/ui.html
deleted file mode 100644
index 41a91461a..000000000
--- a/resources/[carscripts]/rtx_vehiclemenu/html/ui.html
+++ /dev/null
@@ -1,141 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/resources/[carscripts]/rtx_vehiclemenu/language/main.lua b/resources/[carscripts]/rtx_vehiclemenu/language/main.lua
deleted file mode 100644
index 31565d640..000000000
--- a/resources/[carscripts]/rtx_vehiclemenu/language/main.lua
+++ /dev/null
@@ -1,19 +0,0 @@
-Language = {
-["German"] = {
- ["vehiclelocked"] = "Du hast das Fahrzeug abgeschlossen",
- ["vehicleunlocked"] = "Du hast das Fahrzeug aufgeschlossen",
- ["seatoccupied"] = "Dieser Sitz ist besetzt",
- ["novehicle"] = "Du bist nicht im Fahrzeug",
- ["sprinklersenabled"] = "Du hast die Scheibenwischer des Fahrzeugs eingeschaltet",
- ["alreadyenabled"] = "Die Scheibenwischer sind bereits eingeschaltet",
- ["hazardlightson"] = "Du hast die Warnblinkanlage eingeschaltet",
- ["hazardlightsoff"] = "Du hast die Warnblinkanlage ausgeschaltet",
- ["interiorlightson"] = "Du hast das Innenlicht eingeschaltet",
- ["interiorlightsoff"] = "Du hast das Innenlicht ausgeschaltet",
- ["engineon"] = "Du hast den Motor gestartet",
- ["engineonoff"] = "Du hast den Motor ausgeschaltet",
- ["vehiclemenubind"] = "Fahrzeugmenü",
- ["seat"] = "Sitz",
- ["extra"] = "Extra",
- },
-}
\ No newline at end of file
diff --git a/resources/[carscripts]/rtx_vehiclemenu/server/main.lua b/resources/[carscripts]/rtx_vehiclemenu/server/main.lua
deleted file mode 100644
index bc5f512e4..000000000
Binary files a/resources/[carscripts]/rtx_vehiclemenu/server/main.lua and /dev/null differ
diff --git a/resources/[inventory]/cs_shops/config/config.lua b/resources/[inventory]/cs_shops/config/config.lua
index 329c4f050..4d32cf3f7 100644
--- a/resources/[inventory]/cs_shops/config/config.lua
+++ b/resources/[inventory]/cs_shops/config/config.lua
@@ -1287,7 +1287,24 @@ CodeStudio.Products = {
itemStock = 150,
itemPrice = 50,
itemInfo = "",
- },
+ },
+ ['kq_tow_rope'] = {
+ itemName = "Abschleppseil",
+ itemStock = 150,
+ itemPrice = 50,
+ itemInfo = "",
+ },
+ ['kq_winch'] = {
+ itemName = "Seilwinden Ferndedinung",
+ itemStock = 150,
+ itemPrice = 50,
+ itemInfo = "",
+ },
+
+
+
+
+
}
},
['police_weapons'] = {
@@ -2697,10 +2714,28 @@ CodeStudio.Products = {
itemInfo = "",
},
}
- }
-
-
+ },
+ ['tools'] = {
+ categoryName = "Items",
+ categoryLogo = "fa-shopping-basket",
+ items = {
+ ['kq_tow_rope'] = {
+ itemName = "Abschleppseil",
+ itemStock = 150,
+ itemPrice = 50,
+ itemInfo = "",
+ },
+ ['kq_winch'] = {
+ itemName = "Seilwinden Ferndedinung",
+ itemStock = 150,
+ itemPrice = 50,
+ itemInfo = "",
+ },
+
+ }
+ },
+
} -- Schließende Klammer für CodeStudio.Products
@@ -2830,6 +2865,7 @@ CodeStudio.Shops = {
[2] = 'kayas',
[3] = 'odinsbar',
[4] = 'cute',
+ [5] = 'tools',
},
diff --git a/resources/[inventory]/cs_shops/ui/image/kq_tow_rope.png b/resources/[inventory]/cs_shops/ui/image/kq_tow_rope.png
new file mode 100644
index 000000000..b4df4f461
Binary files /dev/null and b/resources/[inventory]/cs_shops/ui/image/kq_tow_rope.png differ
diff --git a/resources/[inventory]/cs_shops/ui/image/kq_winch.png b/resources/[inventory]/cs_shops/ui/image/kq_winch.png
new file mode 100644
index 000000000..9ebc80129
Binary files /dev/null and b/resources/[inventory]/cs_shops/ui/image/kq_winch.png differ
diff --git a/resources/[inventory]/inventory_images/images/kq_tow_rope.png b/resources/[inventory]/inventory_images/images/kq_tow_rope.png
new file mode 100644
index 000000000..b4df4f461
Binary files /dev/null and b/resources/[inventory]/inventory_images/images/kq_tow_rope.png differ
diff --git a/resources/[inventory]/inventory_images/images/kq_winch.png b/resources/[inventory]/inventory_images/images/kq_winch.png
new file mode 100644
index 000000000..9ebc80129
Binary files /dev/null and b/resources/[inventory]/inventory_images/images/kq_winch.png differ
diff --git a/resources/[inventory]/tgiann-inventory/items/items.lua b/resources/[inventory]/tgiann-inventory/items/items.lua
index d965fbc50..cd48aa669 100644
--- a/resources/[inventory]/tgiann-inventory/items/items.lua
+++ b/resources/[inventory]/tgiann-inventory/items/items.lua
@@ -10379,6 +10379,27 @@ itemsData = {
image = 'dynamite.png',
name = 'dynamite',
},
-
+ kq_tow_rope = {
+ shouldClose = true,
+ type = 'item',
+ description = '',
+ weight = 2000,
+ label = 'Abschleppseil',
+ unique = true,
+ useable = true,
+ image = 'kq_tow_rope.png',
+ name = 'kq_tow_rope',
+ },
+ kq_winch = {
+ shouldClose = true,
+ type = 'item',
+ description = '',
+ weight = 4000,
+ label = 'Seilwinden Steuerung',
+ unique = true,
+ useable = true,
+ image = 'kq_winch.png',
+ name = 'kq_winch',
+ },
}