mh-parking icon indicating copy to clipboard operation
mh-parking copied to clipboard

QBCore Advanced Parking System Created by MaDHouSe79

Hi 👋, I'm MaDHouSe

A passionate allround developer

🙈 Youtube

mh-parking

  • An Advanced Parking System build by MaDHouSe79.
  • when you park, befor you hit F5 turn your steel and lock it at that position when parked.

subscribe to my channel It helps the channel grow Youtube

🎥 Video 👊😁👍

Watch the video1 Watch the video1

💪 Dependencies

💪 Optional

🙏 How to install and do not forget anything, or it will not work, or give many errors.

  • 👉 Step 1: First stop your server. 😁
  • 👉 Step 2: Copy the directory mh-parking to resources/[mh]/
  • 👉 Step 3: Read this file! (the database will install automaticly)
  • 👉 Step 4: Start your server.
  • 👉 Step 5: Add your self or other as vip, you can use the command: /park-addvip [id]
  • 👉 Step 6: Most important step -> Enjoy 👊😎👍

🎮 Commands

  • 👉 Typ "/park" to park or drive your vehicle where you are at that moment. (Users and Admins)
  • 👉 Typ "/park-names if you want to display the names ontop of the vehicle that is parked. (Users and Admins)
  • 👉 Typ "/park-lotnames if you want to display the names of the parking lots. (Users and Admins)
  • 👉 Typ "/park-cmenu" to create a new parking space (Admin only)
  • 👉 Typ "/park-bmode" to go in to build mode (Admin only)
  • 👉 Typ "/park-system" if you want to turn on or off the system. (Admin Only)
  • 👉 Typ "/park-usevip" to turn on and of the vip system
  • 👉 Typ "/park-addvip [id]" if you want to add a vip. (Admin Only)
  • 👉 Typ "/park-removevip [id]" if you want to remove a vip. (Admin Only)
  • 👉 If you want to use the F5 button, you must add it to your /binds and add on F5 the word "park"

👉 NOTE DONT FORGET TO ADD YOUR SELF AS VIP

💯 What i recommend for using this mod

  • 👉 I recommend to use this mod only for vip players or for players who are most online on you server.
  • 👉 Try not to spawn too many vehicles in world space, this can cause issues and hiccups.
  • 👉 It is also recommended to have a good computer/server to use this mod, cause you will need it.
  • 👉 To keep the server nice and clean for everyody, use this system only for vip players.

💯 I tested this mod on a computer/server with the following settings

  • ✅ Prossessor: I7 12xCore
  • ✅ Memory: 16 gig memory
  • ✅ Graphics: GTX 1050 TI 4GB

Unpark trigger event (use this server side)

  • this only unpark the vehicle, it does not delete the entity from the gameworld.
  • use this trigger in qb-policejob/server/main.lua, replace it with this (around line 888)
RegisterNetEvent('police:server:Impound', function(plate, fullImpound, price, body, engine, fuel)
    local src = source
    price = price and price or 0
    if IsVehicleOwned(plate) then
        TriggerEvent('mh-parking:server:unpark', plate) -- <----- OR ADD THIS TRIGGER HERE (mh-parking)
        if not fullImpound then
            MySQL.query('UPDATE player_vehicles SET state = ?, depotprice = ?, body = ?, engine = ?, fuel = ? WHERE plate = ?', {0, price, body, engine, fuel, plate})
            TriggerClientEvent('QBCore:Notify', src, Lang:t("info.vehicle_taken_depot", {price = price}))
        else
            MySQL.query(
                'UPDATE player_vehicles SET state = ?, body = ?, engine = ?, fuel = ? WHERE plate = ?',
                {2, body, engine, fuel, plate})
            TriggerClientEvent('QBCore:Notify', src, Lang:t("info.vehicle_seized"))
        end
    end
end)

Optional qb-garages integration, this part is also for the phone app

  • you need to find this in your qb-garages server and client file
if v.state == 0 then
    v.state = Lang:t("status.out")
elseif v.state == 1 then
    v.state = Lang:t("status.garaged")
elseif v.state == 2 then
    v.state = Lang:t("status.impound")
end

Example qb-garages integration, this part is also for the phone app

  • you need to add a state 3
if v.state == 0 then
    v.state = Lang:t("status.out")
elseif v.state == 1 then
    v.state = Lang:t("status.garaged")
elseif v.state == 2 then
    v.state = Lang:t("status.impound")
elseif v.state == 3 then                 -- <--- ADD HERE
    v.state = "Parked outside"
end
  • if you get this error
  • script:qb-core] SCRIPT ERROR: citizen:/scripting/lua/scheduler.lua:741: SCRIPT ERROR: @qb-phone/server/main.lua:233: attempt to index a nil value (field 'Garages')

Check the config file from qb-phone

  • check if you have this
Config.Garages = Garages

👇 To keep things nice and clean for the qb-core system and database.

  • ✅ Go to resources[qb]/qb-core/server/player.lua around line 506, and find, local playertables = {}.
  • ✅ This is, if we want to delete a character, we also want to delete the parked vehicles in the database,
  • ✅ Place the line below at the bottom in playertables (there are more insite), so place this one at the bottom.
{ table = 'player_parking' },
{ table = 'player_parking_vips' },

Contributers

😎 Special thanks for helping me with testing 👊😉👍

  • 💪 GUS
  • 💪 Jazerra
  • 💪 ameN
  • 💪 MulGirtab
  • 💪 DannyJ
  • 💪 MasonJason310
  • 💪 Enxsistanz
  • 💪 !ExiledVibe!
  • 💪 FARRUKO

LICENSE

GPL LICENSE
© MaDHouSe79