Threw Hud UI

Hello, by chance someone like me can exhibit at the Threw Hud ui that you don’t fly out of the car. Sorry for my English I use google translate

Take a look inside config.lua it’s all clearly explained there. Hope that finds a fix to your issue

This is the Config

This is the client

local ESX = nil

– ESX
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent(‘esx:getSharedObject’, function(obj) ESX = obj end)
Citizen.Wait(0)
end

while ESX.GetPlayerData().job == nil do
	Citizen.Wait(10)
end

ESX.PlayerData = ESX.GetPlayerData()

end)

local zones = { [‘AIRP’] = “Los Santos International Airport”, [‘ALAMO’] = “Alamo Sea”, [‘ALTA’] = “Alta”, [‘ARMYB’] = “Fort Zancudo”, [‘BANHAMC’] = “Banham Canyon Dr”, [‘BANNING’] = “Banning”, [‘BEACH’] = “Vespucci Beach”, [‘BHAMCA’] = “Banham Canyon”, [‘BRADP’] = “Braddock Pass”, [‘BRADT’] = “Braddock Tunnel”, [‘BURTON’] = “Burton”, [‘CALAFB’] = “Calafia Bridge”, [‘CANNY’] = “Raton Canyon”, [‘CCREAK’] = “Cassidy Creek”, [‘CHAMH’] = “Chamberlain Hills”, [‘CHIL’] = “Vinewood Hills”, [‘CHU’] = “Chumash”, [‘CMSW’] = “Chiliad Mountain State Wilderness”, [‘CYPRE’] = “Cypress Flats”, [‘DAVIS’] = “Davis”, [‘DELBE’] = “Del Perro Beach”, [‘DELPE’] = “Del Perro”, [‘DELSOL’] = “La Puerta”, [‘DESRT’] = “Grand Senora Desert”, [‘DOWNT’] = “Downtown”, [‘DTVINE’] = “Downtown Vinewood”, [‘EAST_V’] = “East Vinewood”, [‘EBURO’] = “El Burro Heights”, [‘ELGORL’] = “El Gordo Lighthouse”, [‘ELYSIAN’] = “Elysian Island”, [‘GALFISH’] = “Galilee”, [‘GOLF’] = “GWC and Golfing Society”, [‘GRAPES’] = “Grapeseed”, [‘GREATC’] = “Great Chaparral”, [‘HARMO’] = “Harmony”, [‘HAWICK’] = “Hawick”, [‘HORS’] = “Vinewood Racetrack”, [‘HUMLAB’] = “Humane Labs and Research”, [‘JAIL’] = “Bolingbroke Penitentiary”, [‘KOREAT’] = “Little Seoul”, [‘LACT’] = “Land Act Reservoir”, [‘LAGO’] = “Lago Zancudo”, [‘LDAM’] = “Land Act Dam”, [‘LEGSQU’] = “Legion Square”, [‘LMESA’] = “La Mesa”, [‘LOSPUER’] = “La Puerta”, [‘MIRR’] = “Mirror Park”, [‘MORN’] = “Morningwood”, [‘MOVIE’] = “Richards Majestic”, [‘MTCHIL’] = “Mount Chiliad”, [‘MTGORDO’] = “Mount Gordo”, [‘MTJOSE’] = “Mount Josiah”, [‘MURRI’] = “Murrieta Heights”, [‘NCHU’] = “North Chumash”, [‘NOOSE’] = “N.O.O.S.E”, [‘OCEANA’] = “Pacific Ocean”, [‘PALCOV’] = “Paleto Cove”, [‘PALETO’] = “Paleto Bay”, [‘PALFOR’] = “Paleto Forest”, [‘PALHIGH’] = “Palomino Highlands”, [‘PALMPOW’] = “Palmer-Taylor Power Station”, [‘PBLUFF’] = “Pacific Bluffs”, [‘PBOX’] = “Pillbox Hill”, [‘PROCOB’] = “Procopio Beach”, [‘RANCHO’] = “Rancho”, [‘RGLEN’] = “Richman Glen”, [‘RICHM’] = “Richman”, [‘ROCKF’] = “Rockford Hills”, [‘RTRAK’] = “Redwood Lights Track”, [‘SANAND’] = “San Andreas”, [‘SANCHIA’] = “San Chianski Mountain Range”, [‘SANDY’] = “Sandy Shores”, [‘SKID’] = “Mission Row”, [‘SLAB’] = “Stab City”, [‘STAD’] = “Maze Bank Arena”, [‘STRAW’] = “Strawberry”, [‘TATAMO’] = “Tataviam Mountains”, [‘TERMINA’] = “Terminal”, [‘TEXTI’] = “Textile City”, [‘TONGVAH’] = “Tongva Hills”, [‘TONGVAV’] = “Tongva Valley”, [‘VCANA’] = “Vespucci Canals”, [‘VESP’] = “Vespucci”, [‘VINE’] = “Vinewood”, [‘WINDF’] = “Ron Alternates Wind Farm”, [‘WVINE’] = “West Vinewood”, [‘ZANCUDO’] = “Zancudo River”, [‘ZP_ORT’] = “Port of South Los Santos”, [‘ZQ_UAR’] = “Davis Quartz” }

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
}

local AllWeapons = json.decode(’{“melee”:{“dagger”:“0x92A27487”,“bat”:“0x958A4A8F”,“bottle”:“0xF9E6AA4B”,“crowbar”:“0x84BD7BFD”,“unarmed”:“0xA2719263”,“flashlight”:“0x8BB05FD7”,“golfclub”:“0x440E4788”,“hammer”:“0x4E875F73”,“hatchet”:“0xF9DCBF2D”,“knuckle”:“0xD8DF3C3C”,“knife”:“0x99B507EA”,“machete”:“0xDD5DF8D9”,“switchblade”:“0xDFE37640”,“nightstick”:“0x678B81B1”,“wrench”:“0x19044EE0”,“battleaxe”:“0xCD274149”,“poolcue”:“0x94117305”,“stone_hatchet”:“0x3813FC08”},“handguns”:{“pistol”:“0x1B06D571”,“pistol_mk2”:“0xBFE256D4”,“combatpistol”:“0x5EF9FEC4”,“appistol”:“0x22D8FE39”,“stungun”:“0x3656C8C1”,“pistol50”:“0x99AEEB3B”,“snspistol”:“0xBFD21232”,“snspistol_mk2”:“0x88374054”,“heavypistol”:“0xD205520E”,“vintagepistol”:“0x83839C4”,“flaregun”:“0x47757124”,“marksmanpistol”:“0xDC4DB296”,“revolver”:“0xC1B3C3D1”,“revolver_mk2”:“0xCB96392F”,“doubleaction”:“0x97EA20B8”,“raypistol”:“0xAF3696A1”},“smg”:{“microsmg”:“0x13532244”,“smg”:“0x2BE6766B”,“smg_mk2”:“0x78A97CD0”,“assaultsmg”:“0xEFE7E2DF”,“combatpdw”:“0xA3D4D34”,“machinepistol”:“0xDB1AA450”,“minismg”:“0xBD248B55”,“raycarbine”:“0x476BF155”},“shotguns”:{“pumpshotgun”:“0x1D073A89”,“pumpshotgun_mk2”:“0x555AF99A”,“sawnoffshotgun”:“0x7846A318”,“assaultshotgun”:“0xE284C527”,“bullpupshotgun”:“0x9D61E50F”,“musket”:“0xA89CB99E”,“heavyshotgun”:“0x3AABBBAA”,“dbshotgun”:“0xEF951FBB”,“autoshotgun”:“0x12E82D3D”},“assault_rifles”:{“assaultrifle”:“0xBFEFFF6D”,“assaultrifle_mk2”:“0x394F415C”,“carbinerifle”:“0x83BF0278”,“carbinerifle_mk2”:“0xFAD1F1C9”,“advancedrifle”:“0xAF113F99”,“specialcarbine”:“0xC0A3098D”,“specialcarbine_mk2”:“0x969C3D67”,“bullpuprifle”:“0x7F229F94”,“bullpuprifle_mk2”:“0x84D6FAFD”,“compactrifle”:“0x624FE830”},“machine_guns”:{“mg”:“0x9D07F764”,“combatmg”:“0x7FD62962”,“combatmg_mk2”:“0xDBBD7280”,“gusenberg”:“0x61012683”},“sniper_rifles”:{“sniperrifle”:“0x5FC3C11”,“heavysniper”:“0xC472FE2”,“heavysniper_mk2”:“0xA914799”,“marksmanrifle”:“0xC734385A”,“marksmanrifle_mk2”:“0x6A6C02E0”},“heavy_weapons”:{“rpg”:“0xB1CA77B1”,“grenadelauncher”:“0xA284510B”,“grenadelauncher_smoke”:“0x4DD2DC56”,“minigun”:“0x42BF8A85”,“firework”:“0x7F7497E5”,“railgun”:“0x6D544C99”,“hominglauncher”:“0x63AB0442”,“compactlauncher”:“0x781FE4A”,“rayminigun”:“0xB62D1F67”},“throwables”:{“grenade”:“0x93E220BD”,“bzgas”:“0xA0973D5E”,“smokegrenade”:“0xFDBC8A50”,“flare”:“0x497FACC3”,“molotov”:“0x24B17070”,“stickybomb”:“0x2C3731D9”,“proxmine”:“0xAB564B93”,“snowball”:“0x787F0BB”,“pipebomb”:“0xBA45E8B8”,“ball”:“0x23C9F95C”},“misc”:{“petrolcan”:“0x34A67B97”,“fireextinguisher”:“0x60EC506”,“parachute”:“0xFBAB5776”}}’)

local vehiclesCars = {0,1,2,3,4,5,6,7,8,9,10,11,12,17,18,19,20};

– Hides TREW UI when it’s on Pause Menu
Citizen.CreateThread(function()

local isPauseMenu = false

while true do
	Citizen.Wait(0)

	if IsPauseMenuActive() then -- ESC Key
		if not isPauseMenu then
			isPauseMenu = not isPauseMenu
			SendNUIMessage({ action = 'toggleUi', value = false })
		end
	else
		if isPauseMenu then
			isPauseMenu = not isPauseMenu
			SendNUIMessage({ action = 'toggleUi', value = true })
		end

		HideHudComponentThisFrame(1)  -- Wanted Stars
		HideHudComponentThisFrame(2)  -- Weapon Icon
		HideHudComponentThisFrame(3)  -- Cash
		HideHudComponentThisFrame(4)  -- MP Cash
		HideHudComponentThisFrame(6)  -- Vehicle Name
		HideHudComponentThisFrame(7)  -- Area Name
		HideHudComponentThisFrame(8)  -- Vehicle Class
		HideHudComponentThisFrame(9)  -- Street Name
		HideHudComponentThisFrame(13) -- Cash Change
		HideHudComponentThisFrame(17) -- Save Game
		HideHudComponentThisFrame(20) -- Weapon Stats
	end


end

end)

– Date and time update
Citizen.CreateThread(function()
while true do
Citizen.Wait(1000)
if Config.ui.showDate == true then
SendNUIMessage({ action = ‘setText’, id = ‘date’, value = trewDate() })
end
end
end)

– Location update
Citizen.CreateThread(function()

while true do
	Citizen.Wait(100)

	local player = GetPlayerPed(-1)

	local position = GetEntityCoords(player)

	if Config.ui.showLocation == true then
		local zoneNameFull = zones[GetNameOfZone(position.x, position.y, position.z)]
		local streetName = GetStreetNameFromHashKey(GetStreetNameAtCoord(position.x, position.y, position.z))

		local locationMessage = nil

		if zoneNameFull then 
			locationMessage = streetName .. ', ' .. zoneNameFull
		else
			locationMessage = streetName
		end

		locationMessage = string.format(
			Locales[Config.Locale]['you_are_on_location'],
			locationMessage
		)

		SendNUIMessage({ action = 'setText', id = 'location', value = locationMessage })
	end
end

end)

– Vehicle Info
local vehicleCruiser
local vehicleSignalIndicator = ‘off’
local seatbeltEjectSpeed = 45.0
local seatbeltEjectAccel = 100.0
local seatbeltIsOn = false
local currSpeed = 0.0
local prevVelocity = {x = 0.0, y = 0.0, z = 0.0}

Citizen.CreateThread(function()

while true do

	Citizen.Wait(100)

	local player = GetPlayerPed(-1)
	local vehicle = GetVehiclePedIsIn(player, false)
	local position = GetEntityCoords(player)
	local vehicleIsOn = GetIsVehicleEngineRunning(vehicle)
	local vehicleInfo

	if IsPedInAnyVehicle(player, false) and vehicleIsOn then


		local vehicleClass = GetVehicleClass(vehicle)


		if Config.ui.showMinimap == false then
			DisplayRadar(true)
		end

		-- Vehicle Speed
		local vehicleSpeedSource = GetEntitySpeed(vehicle)
		local vehicleSpeed
		if Config.vehicle.speedUnit == 'MPH' then
			vehicleSpeed = math.ceil(vehicleSpeedSource * 2.237)
		else
			vehicleSpeed = math.ceil(vehicleSpeedSource * 3.6)
		end

		-- Vehicle Gradient Speed
		local vehicleNailSpeed

		if vehicleSpeed > Config.vehicle.maxSpeed then
			vehicleNailSpeed = math.ceil(  280 - math.ceil( math.ceil(Config.vehicle.maxSpeed * 205) / Config.vehicle.maxSpeed) )
		else
			vehicleNailSpeed = math.ceil(  280 - math.ceil( math.ceil(vehicleSpeed * 205) / Config.vehicle.maxSpeed) )
		end


		
		-- Vehicle Fuel and Gear
		local vehicleFuel
		vehicleFuel = GetVehicleFuelLevel(vehicle)

		local vehicleGear = GetVehicleCurrentGear(vehicle)

		if (vehicleSpeed == 0 and vehicleGear == 0) or (vehicleSpeed == 0 and vehicleGear == 1) then
			vehicleGear = 'N'
		elseif vehicleSpeed > 0 and vehicleGear == 0 then
			vehicleGear = 'R'
		end

		-- Vehicle Lights
		local vehicleVal,vehicleLights,vehicleHighlights  = GetVehicleLightsState(vehicle)
		local vehicleIsLightsOn
		if vehicleLights == 1 and vehicleHighlights == 0 then
			vehicleIsLightsOn = 'normal'
		elseif (vehicleLights == 1 and vehicleHighlights == 1) or (vehicleLights == 0 and vehicleHighlights == 1) then
			vehicleIsLightsOn = 'high'
		else
			vehicleIsLightsOn = 'off'
		end






		-- Vehicle Siren
		local vehicleSiren

		if IsVehicleSirenOn(vehicle) then
			vehicleSiren = true
		else
			vehicleSiren = false
		end






		-- Vehicle Seatbelt
		if has_value(vehiclesCars, vehicleClass) == true and vehicleClass ~= 8 then

			local prevSpeed = currSpeed
            currSpeed = vehicleSpeedSource

            SetPedConfigFlag(PlayerPedId(), 32, true)

            if not seatbeltIsOn then
            	local vehIsMovingFwd = GetEntitySpeedVector(vehicle, true).y > 1.0
                local vehAcc = (prevSpeed - currSpeed) / GetFrameTime()
                if (vehIsMovingFwd and (prevSpeed > (seatbeltEjectSpeed/2.237)) and (vehAcc > (seatbeltEjectAccel*9.81))) then

                    SetEntityCoords(player, position.x, position.y, position.z - 0.47, true, true, true)
                    SetEntityVelocity(player, prevVelocity.x, prevVelocity.y, prevVelocity.z)
                    SetPedToRagdoll(player, 1000, 1000, 0, 0, 0, 0)
                else
                    -- Update previous velocity for ejecting player
                    prevVelocity = GetEntityVelocity(vehicle)
                end

            else

            	DisableControlAction(0, 75)

            end



		end

		

		vehicleInfo = {
			action = 'updateVehicle',

			status = true,
			speed = vehicleSpeed,
			nail = vehicleNailSpeed,
			gear = vehicleGear,
			fuel = vehicleFuel,
			lights = vehicleIsLightsOn,
			signals = vehicleSignalIndicator,
			cruiser = vehicleCruiser,
			type = vehicleClass,
			siren = vehicleSiren,
			seatbelt = {},

			config = {
				speedUnit = Config.vehicle.speedUnit,
				maxSpeed = Config.vehicle.maxSpeed
			}
		}

		vehicleInfo['seatbelt']['status'] = seatbeltIsOn
	else

		
		vehicleCruiser = false
		vehicleNailSpeed = 0
		vehicleSignalIndicator = 'off'

        seatbeltIsOn = false

		vehicleInfo = {
			action = 'updateVehicle',

			status = false,
			nail = vehicleNailSpeed,
			seatbelt = { status = seatbeltIsOn },
			cruiser = vehicleCruiser,
			signals = vehicleSignalIndicator,
			type = 0,
		}

		if Config.ui.showMinimap == false then
			DisplayRadar(false)
		end

	end

	SendNUIMessage(vehicleInfo)





end

end)

– Player status
Citizen.CreateThread(function()

while true do
	Citizen.Wait(1000)

	local playerStatus 
	local showPlayerStatus = 0
	playerStatus = { action = 'setStatus', status = {} }

	if Config.ui.showHealth == true then
		showPlayerStatus = (showPlayerStatus+1)

		playerStatus['isdead'] = false

		playerStatus['status'][showPlayerStatus] = {
			name = 'health',
			value = GetEntityHealth(GetPlayerPed(-1)) - 100
		}

		if IsEntityDead(GetPlayerPed(-1)) then
			playerStatus.isdead = true
		end
	end

	if Config.ui.showArmor == true then
		showPlayerStatus = (showPlayerStatus+1)

		playerStatus['status'][showPlayerStatus] = {
			name = 'armor',
			value = GetPedArmour(GetPlayerPed(-1)),
		}
	end

	if Config.ui.showStamina == true then
		showPlayerStatus = (showPlayerStatus+1)

		playerStatus['status'][showPlayerStatus] = {
			name = 'stamina',
			value = 100 - GetPlayerSprintStaminaRemaining(PlayerId()),
		}
	end

	TriggerServerEvent('trew_hud_ui:getServerInfo')

	if showPlayerStatus > 0 then
		SendNUIMessage(playerStatus)
	end

end

end)

– Overall Info
RegisterNetEvent(‘trew_hud_ui:setInfo’)
AddEventHandler(‘trew_hud_ui:setInfo’, function(info)

SendNUIMessage({ action = 'setText', id = 'job', value = info['job'] })
SendNUIMessage({ action = 'setMoney', id = 'wallet', value = info['money'] })
SendNUIMessage({ action = 'setMoney', id = 'bank', value = info['bankMoney'] })
SendNUIMessage({ action = 'setMoney', id = 'blackMoney', value = info['blackMoney'] })

TriggerEvent('esx:getSharedObject', function(obj)
	ESX = obj
	ESX.PlayerData = ESX.GetPlayerData()
end)

if ESX.PlayerData.job ~= nil then
	if ESX.PlayerData.job.grade_name ~= nil and ESX.PlayerData.job.grade_name == 'boss' then
		if (Config.ui.showSocietyMoney == true) then
			SendNUIMessage({ action = 'element', task = 'enable', value = 'society' })
		end
		ESX.TriggerServerCallback('esx_society:getSocietyMoney', function(money)
			SendNUIMessage({ action = 'setMoney', id = 'society', value = money })
		end, ESX.PlayerData.job.name)
	else
		SendNUIMessage({ action = 'element', task = 'disable', value = 'society' })
	end
end

local playerStatus 
local showPlayerStatus = 0
playerStatus = { action = 'setStatus', status = {} }


if Config.ui.showHunger == true then
	showPlayerStatus = (showPlayerStatus+1)

	TriggerEvent('esx_status:getStatus', 'hunger', function(status)
		playerStatus['status'][showPlayerStatus] = {
			name = 'hunger',
			value = math.floor(100-status.getPercent())
		}
	end)

end

if Config.ui.showThirst == true then
	showPlayerStatus = (showPlayerStatus+1)

	TriggerEvent('esx_status:getStatus', 'thirst', function(status)
		playerStatus['status'][showPlayerStatus] = {
			name = 'thirst',
			value = math.floor(100-status.getPercent())
		}
	end)
end

if showPlayerStatus > 0 then
	SendNUIMessage(playerStatus)
end

end)

– Voice detection and distance
Citizen.CreateThread(function()

if Config.ui.showVoice == true then

    RequestAnimDict('facials@gen_male@variations@normal')
    RequestAnimDict('mp_facial')

    while true do
        Citizen.Wait(300)
        local playerID = PlayerId()

        for _,player in ipairs(GetActivePlayers()) do
            local boolTalking = NetworkIsPlayerTalking(player)

            if player ~= playerID then
                if boolTalking then
                    PlayFacialAnim(GetPlayerPed(player), 'mic_chatter', 'mp_facial')
                elseif not boolTalking then
                    PlayFacialAnim(GetPlayerPed(player), 'mood_normal_1', 'facials@gen_male@variations@normal')
                end
            end
        end
    end

end

end)

Citizen.CreateThread(function()
if Config.ui.showVoice == true then

	local isTalking = false
	local voiceDistance = nil

	while true do
		Citizen.Wait(1)




		if NetworkIsPlayerTalking(PlayerId()) and not isTalking then 
			isTalking = not isTalking
			SendNUIMessage({ action = 'isTalking', value = isTalking })
		elseif not NetworkIsPlayerTalking(PlayerId()) and isTalking then 
			isTalking = not isTalking
			SendNUIMessage({ action = 'isTalking', value = isTalking })
		end



		if IsControlJustPressed(1, Keys[Config.voice.keys.distance]) then

			Config.voice.levels.current = (Config.voice.levels.current + 1) % 3

			if Config.voice.levels.current == 0 then
				NetworkSetTalkerProximity(Config.voice.levels.default)
				voiceDistance = 'normal'
			elseif Config.voice.levels.current == 1 then
				NetworkSetTalkerProximity(Config.voice.levels.shout)
				voiceDistance = 'shout'
			elseif Config.voice.levels.current == 2 then
				NetworkSetTalkerProximity(Config.voice.levels.whisper)
				voiceDistance = 'whisper'
			end

			SendNUIMessage({ action = 'setVoiceDistance', value = voiceDistance })
		end

		if Config.voice.levels.current == 0 then
			voiceDistance = 'normal'
		elseif Config.voice.levels.current == 1 then
			voiceDistance = 'shout'
		elseif Config.voice.levels.current == 2 then
			voiceDistance = 'whisper'
		end


	end





end

end)

– Weapons
Citizen.CreateThread(function()
if Config.ui.showWeapons == true then
while true do
Citizen.Wait(100)

		local player = GetPlayerPed(-1)
		local status = {}

		if IsPedArmed(player, 7) then

			local weapon = GetSelectedPedWeapon(player)
			local ammoTotal = GetAmmoInPedWeapon(player,weapon)
			local bool,ammoClip = GetAmmoInClip(player,weapon)
			local ammoRemaining = math.floor(ammoTotal - ammoClip)
			
			status['armed'] = true

			for key,value in pairs(AllWeapons) do

				for keyTwo,valueTwo in pairs(AllWeapons[key]) do
					if weapon == GetHashKey('weapon_'..keyTwo) then
						status['weapon'] = keyTwo


						if key == 'melee' then
							SendNUIMessage({ action = 'element', task = 'disable', value = 'weapon_bullets' })
							SendNUIMessage({ action = 'element', task = 'disable', value = 'bullets' })
						else
							if keyTwo == 'stungun' then
								SendNUIMessage({ action = 'element', task = 'disable', value = 'weapon_bullets' })
								SendNUIMessage({ action = 'element', task = 'disable', value = 'bullets' })
							else
								SendNUIMessage({ action = 'element', task = 'enable', value = 'weapon_bullets' })
								SendNUIMessage({ action = 'element', task = 'enable', value = 'bullets' })
							end
						end

					end
				end

			end

			SendNUIMessage({ action = 'setText', id = 'weapon_clip', value = ammoClip })
			SendNUIMessage({ action = 'setText', id = 'weapon_ammo', value = ammoRemaining })

		else
			status['armed'] = false	
		end

		SendNUIMessage({ action = 'updateWeapon', status = status })

	end
end

end)

– Everything that neededs to be at WAIT 0
Citizen.CreateThread(function()

while true do
	Citizen.Wait(0)

	local player = GetPlayerPed(-1)
	local vehicle = GetVehiclePedIsIn(player, false)
	local vehicleClass = GetVehicleClass(vehicle)

	-- Vehicle Seatbelt
	if IsPedInAnyVehicle(player, false) and GetIsVehicleEngineRunning(vehicle) then
		if IsControlJustReleased(0, Keys[Config.vehicle.keys.seatbelt]) and (has_value(vehiclesCars, vehicleClass) == true and vehicleClass ~= 8) then
			seatbeltIsOn = not seatbeltIsOn
		end
	end

	-- Vehicle Cruiser
	if IsControlJustPressed(1, Keys[Config.vehicle.keys.cruiser]) and GetPedInVehicleSeat(vehicle, -1) == player and (has_value(vehiclesCars, vehicleClass) == true) then
		
		local vehicleSpeedSource = GetEntitySpeed(vehicle)

		if vehicleCruiser == 'on' then
			vehicleCruiser = 'off'
			SetEntityMaxSpeed(vehicle, GetVehicleHandlingFloat(vehicle,"CHandlingData","fInitialDriveMaxFlatVel"))
			
		else
			vehicleCruiser = 'on'
			SetEntityMaxSpeed(vehicle, vehicleSpeedSource)
		end
	end





	-- Vehicle Signal Lights
	if IsControlJustPressed(1, Keys[Config.vehicle.keys.signalLeft]) and (has_value(vehiclesCars, vehicleClass) == true) then
		if vehicleSignalIndicator == 'off' then
			vehicleSignalIndicator = 'left'
		else
			vehicleSignalIndicator = 'off'
		end

		TriggerEvent('trew_hud_ui:setCarSignalLights', vehicleSignalIndicator)
	end

	if IsControlJustPressed(1, Keys[Config.vehicle.keys.signalRight]) and (has_value(vehiclesCars, vehicleClass) == true) then
		if vehicleSignalIndicator == 'off' then
			vehicleSignalIndicator = 'right'
		else
			vehicleSignalIndicator = 'off'
		end

		TriggerEvent('trew_hud_ui:setCarSignalLights', vehicleSignalIndicator)
	end

	if IsControlJustPressed(1, Keys[Config.vehicle.keys.signalBoth]) and (has_value(vehiclesCars, vehicleClass) == true) then
		if vehicleSignalIndicator == 'off' then
			vehicleSignalIndicator = 'both'
		else
			vehicleSignalIndicator = 'off'
		end

		TriggerEvent('trew_hud_ui:setCarSignalLights', vehicleSignalIndicator)
	end


end

end)

AddEventHandler(‘onClientMapStart’, function()

SendNUIMessage({ action = 'ui', config = Config.ui })
SendNUIMessage({ action = 'setFont', url = Config.font.url, name = Config.font.name })
SendNUIMessage({ action = 'setLogo', value = Config.serverLogo })

if Config.ui.showVoice == true then
	if Config.voice.levels.current == 0 then
		NetworkSetTalkerProximity(Config.voice.levels.default)
	elseif Config.voice.levels.current == 1 then
		NetworkSetTalkerProximity(Config.voice.levels.shout)
	elseif Config.voice.levels.current == 2 then
		NetworkSetTalkerProximity(Config.voice.levels.whisper)
	end
end

end)

AddEventHandler(‘playerSpawned’, function()
if Config.ui.showVoice == true then
NetworkSetTalkerProximity(5.0)
end

HideHudComponentThisFrame(7) -- Area
HideHudComponentThisFrame(9) -- Street
HideHudComponentThisFrame(6) -- Vehicle
HideHudComponentThisFrame(3) -- SP Cash
HideHudComponentThisFrame(4) -- MP Cash
HideHudComponentThisFrame(13) -- Cash changes!

end)

AddEventHandler(‘trew_hud_ui:setCarSignalLights’, function(status)
local driver = GetVehiclePedIsIn(GetPlayerPed(-1), false)
local hasTrailer,vehicleTrailer = GetVehicleTrailerVehicle(driver,vehicleTrailer)
local leftLight
local rightLight

if status == 'left' then
	leftLight = false
	rightLight = true
	if hasTrailer then driver = vehicleTrailer end

elseif status == 'right' then
	leftLight = true
	rightLight = false
	if hasTrailer then driver = vehicleTrailer end

elseif status == 'both' then
	leftLight = true
	rightLight = true
	if hasTrailer then driver = vehicleTrailer end

else
	leftLight = false
	rightLight = false
	if hasTrailer then driver = vehicleTrailer end

end

TriggerServerEvent('trew_hud_ui:syncCarLights', status)

SetVehicleIndicatorLights(driver, 0, leftLight)
SetVehicleIndicatorLights(driver, 1, rightLight)

end)

RegisterNetEvent(‘trew_hud_ui:syncCarLights’)
AddEventHandler(‘trew_hud_ui:syncCarLights’, function(driver, status)

if GetPlayerFromServerId(driver) ~= PlayerId() then
	local driver = GetVehiclePedIsIn(GetPlayerPed(GetPlayerFromServerId(driver)), false)

	if status == 'left' then
		leftLight = false
		rightLight = true

	elseif status == 'right' then
		leftLight = true
		rightLight = false

	elseif status == 'both' then
		leftLight = true
		rightLight = true

	else
		leftLight = false
		rightLight = false
	end

	SetVehicleIndicatorLights(driver, 0, leftLight)
	SetVehicleIndicatorLights(driver, 1, rightLight)

end

end)

function trewDate()
local timeString = nil

local day = _U('day_' .. GetClockDayOfMonth())
local weekDay = _U('weekDay_' .. GetClockDayOfWeek())
local month = _U('month_' .. GetClockMonth())
local day = _U('day_' .. GetClockDayOfMonth())
local year = GetClockYear()


local hour = GetClockHours()
local minutes = GetClockMinutes()
local time = nil
local AmPm = ''


if Config.date.AmPm == true then

	if hour >= 13 and hour <= 24 then
		hour = hour - 12
		AmPm = 'PM'
	else
		if hour == 0 or hour == 24 then
			hour = 12
		end
		AmPm = 'AM'
	end

end

if hour <= 9 then
	hour = '0' .. hour
end
if minutes <= 9 then
	minutes = '0' .. minutes
end

time = hour .. ':' .. minutes .. ' ' .. AmPm




local date_format = Locales[Config.Locale]['date_format'][Config.date.format]

if Config.date.format == 'default' then
	timeString = string.format(
		date_format,
		day, month, year
	)
elseif Config.date.format == 'simple' then
	timeString = string.format(
		date_format,
		day, month
	)

elseif Config.date.format == 'simpleWithHours' then
	timeString = string.format(
		date_format,
		time, day, month
	)	
elseif Config.date.format == 'withWeekday' then
	timeString = string.format(
		date_format,
		weekDay, day, month, year
	)
elseif Config.date.format == 'withHours' then
	timeString = string.format(
		date_format,
		time, day, month, year
	)
elseif Config.date.format == 'withWeekdayAndHours' then
	timeString = string.format(
		date_format,
		time, weekDay, day, month, year
	)
end




return timeString

end

function has_value(tab, val)
for index, value in ipairs(tab) do
if value == val then
return true
end
end

return false

end

local toggleui = false
RegisterCommand(‘toggleui’, function()
if not toggleui then
SendNUIMessage({ action = ‘element’, task = ‘disable’, value = ‘job’ })
SendNUIMessage({ action = ‘element’, task = ‘disable’, value = ‘society’ })
SendNUIMessage({ action = ‘element’, task = ‘disable’, value = ‘bank’ })
SendNUIMessage({ action = ‘element’, task = ‘disable’, value = ‘blackMoney’ })
SendNUIMessage({ action = ‘element’, task = ‘disable’, value = ‘wallet’ })
else
if (Config.ui.showJob == true) then
SendNUIMessage({ action = ‘element’, task = ‘enable’, value = ‘job’ })
end
if (Config.ui.showSocietyMoney == true) then
SendNUIMessage({ action = ‘element’, task = ‘enable’, value = ‘society’ })
end
if (Config.ui.showBankMoney == true) then
SendNUIMessage({ action = ‘element’, task = ‘enable’, value = ‘bank’ })
end
if (Config.ui.showBlackMoney == true) then
SendNUIMessage({ action = ‘element’, task = ‘enable’, value = ‘blackMoney’ })
end
if (Config.ui.showWalletMoney == true) then
SendNUIMessage({ action = ‘element’, task = ‘enable’, value = ‘wallet’ })
end
end

toggleui = not toggleui

end)

exports(‘createStatus’, function(args)
local statusCreation = { action = ‘createStatus’, status = args[‘status’], color = args[‘color’], icon = args[‘icon’] }
SendNUIMessage(statusCreation)
end)

exports(‘setStatus’, function(args)
local playerStatus = { action = ‘setStatus’, status = {
{ name = args[‘name’], value = args[‘value’] }
}}
SendNUIMessage(playerStatus)
end)

Hello, take a look in README and search a tutorial on youtube.
Good luck!