[Release][Standalone] xd_locksystem V2 | Vehicle Key System!

For everyone who use H-Vshop,
you can do the following:

Add this export after line 16 in client/testDrive.lua:

exports['xd_locksystem']:SetVehicleKey(GetVehicleNumberPlateText(vehicle))

Add this line after line 24 in server/callbacks.lua:

TriggerServerEvent('xd_locksystem:givekey', GetVehicleNumberPlateText(vehicle), source)

let me know if there is any issues.

@porterslug @AdvancedTeam

1 Like

Hey, i put all inside the right place, but still dont work

This is so cool! Thanks for sharing :grinning:

2 Likes

Hey, i can’t add the trigger addkey to my car dealer job, can you help me here is my code for the car delaer job :

RageUI.Separator(“~r~↓ Vendre le vĂ©hicule au joueur le plus proche ↓”)

                        RageUI.ButtonWithStyle("Vendre le vĂ©hicule", nil, {RightLabel = "→"}, true, function(Hovered, Active, Selected)
                            if (Selected) then    
                                    ESX.TriggerServerCallback('fellow_concess:verifsousconcess', function(suffisantsous)
                                    if suffisantsous then
                    
                                    local closestPlayer, closestDistance = ESX.Game.GetClosestPlayer()
                    
                                    if closestPlayer == -1 or closestDistance > 3.0 then
                                    ESX.ShowNotification('Personne autour')
                                    else
                                    supprimervehiculeconcess()
                                    chargementvoiture(modelevoiture)
                    
                                    ESX.Game.SpawnVehicle(modelevoiture, {x = Concess.pos.spawnvoiture.position.x, y = Concess.pos.spawnvoiture.position.y, z = Concess.pos.spawnvoiture.position.z}, Concess.pos.spawnvoiture.position.h, function (vehicle)
                                    table.insert(sortirvoitureacheter, vehicle)
                                    FreezeEntityPosition(vehicle, true)
                                    TaskWarpPedIntoVehicle(playerPed, vehicle, -1)
                                    SetModelAsNoLongerNeeded(modelevoiture)
                                    local plaque     = GeneratePlate()
                                    local vehicleProps = ESX.Game.GetVehicleProperties(sortirvoitureacheter[#sortirvoitureacheter])
                                    vehicleProps.plate = plaque
                                    SetVehicleNumberPlateText(sortirvoitureacheter[#sortirvoitureacheter], plaque)
                                    FreezeEntityPosition(sortirvoitureacheter[#sortirvoitureacheter], false)
                    
                                    TriggerServerEvent('fellow_concess:vendrevoiturejoueur', GetPlayerServerId(closestPlayer), vehicleProps, prixvoiture, nomvoiture)
                                    ESX.ShowNotification('Le véhicule '..nomvoiture..' avec la plaque '..vehicleProps.plate..' a été vendu à '..GetPlayerName(closestPlayer))
                                    TriggerServerEvent('esx_vehiclelock:registerkey', vehicleProps.plate, GetPlayerServerId(closestPlayer))
                                    end)
                                    end
                                    else
                                        ESX.ShowNotification('La société n\'as pas assez d\'argent pour ce véhicule!')
                                    end
                    
                                end, prixvoiture)
                                    end
                                end)

                                RageUI.Separator("~b~↓ Acheter le vĂ©hicule avec l'argent de la societĂ© ↓")

                                RageUI.ButtonWithStyle("Acheter le vĂ©hicule", nil, {RightLabel = "→"}, true, function(Hovered, Active, Selected)
                                    if (Selected) then   
                                        ESX.TriggerServerCallback('fellow_concess:verifsousconcess', function(suffisantsous)
                                        if suffisantsous then
                                        supprimervehiculeconcess()
                                        chargementvoiture(modelevoiture)
  			    ESX.Game.SpawnVehicle(modelevoiture, {x = Concess.pos.spawnvoiture.position.x, y = Concess.pos.spawnvoiture.position.y, z = Concess.pos.spawnvoiture.position.z}, Concess.pos.spawnvoiture.position.h, function (vehicle)                                            table.insert(sortirvoitureacheter, vehicle)
                                        FreezeEntityPosition(vehicle, true)
                                        TaskWarpPedIntoVehicle(playerPed, vehicle, -1)
                                        SetModelAsNoLongerNeeded(modelevoiture)
                                        local plaque     = GeneratePlate()
                                        local vehicleProps = ESX.Game.GetVehicleProperties(sortirvoitureacheter[#sortirvoitureacheter])
                                        vehicleProps.plate = plaque
                                        SetVehicleNumberPlateText(sortirvoitureacheter[#sortirvoitureacheter], plaque)
                                        FreezeEntityPosition(sortirvoitureacheter[#sortirvoitureacheter], false)
                    
                                        TriggerServerEvent('shop:vehicule', vehicleProps, prixvoiture, nomvoiture)
                                        ESX.ShowNotification('Le véhicule '..nomvoiture..' avec la plaque '..vehicleProps.plate..' a été vendu à '..GetPlayerName(PlayerId()))
                                        TriggerServerEvent('esx_vehiclelock:registerkey', vehicleProps.plate, GetPlayerServerId(closestPlayer))
                                        end)
                    
                                        else
                                            ESX.ShowNotification('La société n\'as pas assez d\'argent pour ce véhicule!')
                                        end
                        
                                    end, prixvoiture)
                                        end
                                    end)

                    end, function()
                    end)

if you want the script name it’s fConcess

You can put it after the function

ESX.ShowNotification

how put to give keys when spawn a admin car ?

car shop rcore how to make the car belong to the owner, because when you buy it, the car does not belong to the owner

You can clearly see I explained above that you need to place this export

exports['xd_locksystem']:SetVehicleKey(plate)

in all your scripts that spawn vehicles.

Does this work without ESX or QBcore?

Yes it is.

How do I set it up with vmenu Because every vehicle I spawn in I cant set as my personal vehicle to have keys for and what not?

Hey, could you help me merge my old vehicle lock system with this one? I need my old system so that our vehicle shop and garage work properly. If the items weren’t purchased, I would have already replaced it directly.