Hello. I want to implement vehicle lock (close/open) and engine status (on/off) so it’s gonna show these when you are sitting in a car. Here’s a code:

client.lua

Citizen.CreateThread(function()
	while true do
		Citizen.Wait(0)
		TriggerEvent('es:setMoneyDisplay', 0.0)
		ESX.UI.HUD.SetDisplay(0.0)
		if isTalking == false then
			if NetworkIsPlayerTalking(PlayerId()) then
				isTalking = true
				SendNUIMessage({action = "setTalking", value = true})
			end
		else
			if NetworkIsPlayerTalking(PlayerId()) == false then
				isTalking = false
				SendNUIMessage({action = "setTalking", value = false})
			end
		end

		if inVehicle == false then
			if IsPedInAnyVehicle(GetPlayerPed(-1)) and GetPedInVehicleSeat(GetVehiclePedIsIn(GetPlayerPed(-1)), -1) == GetPlayerPed(-1) then
				inVehicle = true
				SendNUIMessage({action = "toggleCar", show = true})
			end
		else
			if IsPedInAnyVehicle(GetPlayerPed(-1)) and GetPedInVehicleSeat(GetVehiclePedIsIn(GetPlayerPed(-1)), -1) == GetPlayerPed(-1) then
				local MyPedVeh = GetVehiclePedIsIn(GetPlayerPed(-1),false)
				local VehEngineHP = GetVehicleEngineHealth(MyPedVeh) 
				local VehBodyHP = GetVehicleBodyHealth(MyPedVeh)
				local VehDoorStatus = GetVehicleDoorLockStatus(MyPedVeh)
				local VehEngineRun = GetIsVehicleEngineRunning(MyPedVeh)
				SendNUIMessage({action = "updateCarStatus", status = status})
				SendNUIMessage({
					show = IsPauseMenuActive(),
					damage = VehEngineHP,
					lock = VehDoorStatus,
					engine = VehEngineRun
				})
			else
				inVehicle = false
				SendNUIMessage({action = "toggleCar", show = false})
			end
		end
	end
end)

main.js

$(function(){
	window.addEventListener('message', function(event) {
		$('#health .bg').css('height', event.data.health+'%')
		$('#armor .bg').css('height', event.data.armor+'%')

		if (event.data.action == "setValue"){
			if (event.data.key == "job"){
				setJobIcon(event.data.icon)
			}
			setValue(event.data.key, event.data.value)

		}else if (event.data.action == "updateStatus"){
			updateStatus(event.data.status)
		}else if (event.data.action == "setTalking"){

			setTalking(event.data.value)
		}else if (event.data.action == "setProximity"){
			setProximity(event.data.value)
		}else if (event.data.action == "toggle"){
			if (event.data.show){
				$('#ui').show();
			} else{
				$('#ui').hide();
			}
		} else if (event.data.action == "toggleCar"){
			if (event.data.show){
				$('.carStats').show();
			} else{
				$('.carStats').hide();
			}
		}else if (event.data.action == "updateCarStatus"){
			updateCarStatus(event.data.status)
		}else if (event.data.action == "updateWeight"){
			updateWeight(event.data.weight)
		}
	});

});

function updateCarStatus(status){
	var fuel = status[0]
	var damage = status[1]
	var lock = status[2]
	var engine = status[3]
	$('#fuel .bg').css('height', fuel.percent+'%')
	$('#damage .bg').css('height', damage.percent+'%')
	$('#lock .bg').css('height', lock.status)
	if (lock.status == 0){
		color = "#f44336";
	}else{
		color = "#d65600";
	}
	$('#engine .bg').css('height', engine.status)
	if (engine.status == 0){
		color = "#f44336";
	}else{
		color = "#d65600";
	}
}

It doesn’t recognize status for vehicle at all, because it keeps saying in the console:

It went pretty well with catching HP and Armor on the UI, but I can’t get this to work :confused: