[RELEASE] renzu_garage - v1.8 - Advanced Garage Fivem

Renzu Garage v1.8

Whats New v1.8

  • Latest Main branch needs Ox_lib and Ox_inventory
  • Keys are now items using ox_inventory metadatas (sharable) both Vehicle Keys and Garages Keys
  • replaced all menus, notifications, textuis etc… to ox_lib interface
  • utilise ox_lib zones and static threads are disable by default if ox_lib is enable and it will be removed soon.
  • Vehicle Nicknames
  • Vehicle Disposing
  • Etc various enhancement and optimisations

Main Feature

:white_check_mark: Main Feature

  • Vehicle Public Garage (Multi Location)
  • Job Garages (police garage for example) (support default vehicles for patrol)
  • Private Garage (player owned, player can purchase) (2 cars , 5 cars, 10 cars) garages
  • Garage Inventory (Install and store Vehicle Mods inside private garage)
  • Realistic Parking ( park anywhere, /park )
  • Parking Meter
  • Housing Garages (preconfigured and optional) ( custom triggers for custom housing )
  • Helicopter Garage per job
  • Boat Garages
  • Air Garages
  • Impound Garage (Very configurable logic)
  • Restore Visual Damage and Healths
  • Vehicle Category UI
  • Key System. State Bags or item meta datas if using ox_inventory
  • item based meta datas vehicle and garage keys if using OX_inventory
  • Garage Keys Sharing - Shareable Garage System. Other player can share each other garage.
  • Vehicle Keys Sharing - Shareable Vehicle Keys other players can Keylock, park,unpark, store to public.
  • Built in Car lock
  • Built in Hotwire system
  • Configurable Lock System
  • New Impound System (with NEW UI Form)
  • GTA O Style Housing Garage (2 cars, 5, cars, 10 cars)
  • Vehicle Nicknames - change your NULL/ Blista to eg. my favorite car
  • Dispose Vehicle - Too much vehicle ? player can delete their own vehicle

:arrow_down: Download

Quick List vehicle

Quick List vehicle

Vehicle Categories

Categories

  • Using Mysql category column
Vehicle Keys

Vehicle Keys

  • Enable you to lock all local vehicles (config)
  • Enable you to not Auto Start the vehicle ( for lock picking purpose? )
  • Enable you to lockpick the vehicle (if not owned and not shared)
  • Enable you to give a copy (or a duplicate) Vehicle Keys to Other Player.
  • Built in Lock System
  • Built in Car Lock
  • Built in Hot wiring
  • Configurable Hot wiring condition
  • Mission Entity is default bypass for hot wired. (eg. bus driver script, deliveries, trucker )
  • Automatic System you dont need to Trigger to pass the vehicle keys to owner!
  • Support any Vehicle shop
  • Commands
  • /vehiclekeys
  • Select Citizen
  • Select Vehicle
  • image
  • Share Current Vehicle Keys (enable other player to lock / unlock your vehicle and bypass hotwiring system)
  • image
Garage Keys
  • Share Your Garage Keys to any player
  • Other Player can use your owned vehicles
  • Usage
  • /garagekeys give ( share garage keys to nearby citizen )
  • Select Citizen
  • Select Garage to share
  • image
  • /garagekeys manage (manage current keys)
  • Select Garage
  • Use or Delete (use Change current key), (delete removed the garage keys from your management)
  • image
Vehicle Impounds

IMPOUND

  • Advanced Impound
  • Job Owned Impound
  • Multiple Impound
  • Configurable for Lost Vehicles to Impound garage
  • Optional Player Vehicle Impound ( any player can retrieve any impound vehicles )
  • Player Infos *using firstname,lastname,phone @ users table mysql
Inside Garage

Inside Garage

  • Inside garage function (arrow right,left) for navigation
  • Choosing vehicle ( ride to the car and press E)
  • Beautiful Vehicle Infos
Private Garage

Private Garage

  • Confugured to Support Multiple Interiors (some might bob_74ipl to load other garage)
  • Currently Support : Small, Medium, Large , Modern Garages.
  • Player Owned Garage
  • Multiple Garage Location possible
  • Multiple Player Owned Garage
  • Invite Any Player inside garage
  • Using Routing Buckets to instance player safely
  • /giveaccess PLAYERID (must use inside the garage)

Garage Inventory (only for private garage)

image
image

Housing Garage

Housing Garage

  • Easy to Export using your own custom housing
  • Support Preconfigure 550+ Houses (optional in config)
  • Support Custom Event Triggers (for custom housing )
  • Quick Pick Option (Non Unique)
  • image
  • Unique Garage ( using GTA O style garages )
  • Limited Cars can be store image

Housing Exports

exports('GetHousingGarages', function() -- return housing garage coords
	return HousingGarages
end)

exports('GetHousingShellType', function(coord) -- return applicable and preconfigured housing garage shell
  if coord then
    local nearestgarage = {}
    local nearestdist = -1
    for k,v in pairs(HousingGarages) do
      local dist = #(coord - vector3(v.garage.x,v.garage.y,v.garage.z))
      if nearestdist == -1 or dist < nearestdist then
        nearestdist = dist
        nearestgarage.dist = dist
        nearestgarage.coord = v.garage
        nearestgarage.shell = v.shell
        print(nearestdist)
      end
    end
    return nearestgarage
  end
end)

RegisterCommand('getneargarage', function(source, args, rawCommand)
  local ret = exports.renzu_garage:GetHousingShellType(GetEntityCoords(PlayerPedId()))
  print(ret.dist,ret.coord,ret.shell)
end)

Housing Garage Custom Events Sample USAGE

  • Config:
Config.EnablePropertyCoordGarageCoord = false -- set to false if you will use custom exports and events
Config.HousingBlips = false
  • ADVANCED USAGE
  • Your Owned Coordinates (garage coord and spawn coords) (advanced)
  • garage id must be formatted like these ‘garage_12’ (12 is your garage id)
local ret = exports.renzu_garage:GetHousingShellType(garagecoord)
local garageID = "garage_"..garageID
if IsPedInAnyVehicle(PlayerPedId()) then -- STORE
    TriggerEvent('renzu_garage:storeprivatehouse',garageID)
else
    local var = {ret.shell, {},false,garageID,spawncoord)}
    TriggerServerEvent('renzu_garage:gotohousegarage',garageID,var)
end

Existing Event and Exports
TriggerEvent('renzu_garage:garagehousing_advanced', garageID,garagecoord,spawncoord) - (client)
exports.renzu_garage:GarageHousing_Adv(garageID,garagecoord,spawncoord)
 ex param: garageid = 55, garagecoord = vector3(coord.x,coord.y,coord.z), spawn coord vector4(spawn.x,spawn.y,spawn.z,spawn.h)
  • BASIC USAGE
  • Automatic Coordinates Fetching
  • Auto Detect Shell Type ( Basic Usage )
  • Auto Detect Garage ID
  • Auto Detect Spawn Location
  • using preconfigured garage housing (limitation is the 550+ housing itself) any custom location may have issues, but this already covered almost all housing in gta.
Existing Event and Exports (choose if event or export)

TriggerEvent('renzu_garage:garagehousing_basic') - (client)

exports.renzu_garage:GarageHousing_Basic()
Realistic Park (Auto Respawned upon server restart)
  • Park Vehicle to any parking Zone
  • Zone can be configured
  • using zone distance to 10000 literrally you can park anywhere
  • Impoundable
  • /park
  • /parkingmeter

VIDEO DEMO

More Video

renzu_garage v1.5 - YouTube

SAMPLE CONFIG

Sample Public Garage
{
        garage = "A", --LEGION
        Dist = 10, -- distance
        Blip = {color = 38, sprite = 289, scale = 0.6},
        garage_x = 241.1,
        garage_y = -757.1,
        garage_z = 34.639263153076, -- coordinates for this garage
        spawn_x = 245.59975585938,
        spawn_y = -743.73449707031,
        spawn_z = 33.954160003662,
        heading = 154.98515319824 -- Vehicle spawn location
    }

impoundcoord = {
    {
        garage = "impound", --mrpd
        job = "police",
        Dist = 10,
        Blip = {color = 2, sprite = 289, scale = 0.6},
        garage_x = 459.18936157227,
        garage_y = -1008.4532470703,
        garage_z = 28.264139175415,
        spawn_x = 443.25286865234,
        spawn_y = -1013.6952514648,
        spawn_z = 27.927909851074,
        heading = 89.990180969238
    }
}

heli = {
    -- chopper models for each jobs
    ["police"] = {
        -- job
        {plate = "PDHELI", model = "maverick"},
        {plate = "PDHELI", model = "frogger"},
        {plate = "PDHELI", model = "havoc"},
        {plate = "PDHELI", model = "polmav"},
        {plate = "PDHELI", model = "valkyrie"},
        {plate = "PDHELI", model = "akula"},
        {plate = "PDHELI", model = "buzzard"},
        {plate = "PDHELI", model = "cargobob2"}
    }
}

helispawn = {
    -- coordinates for jobs helicopters
    ["police"] = {
        [1] = {
            garage = "Police Chopper A",
            Blip = {color = 38, sprite = 43, scale = 0.6},
            coords = vector3(449.27, -981.05, 43.69),
            distance = 15
        }
    }
}

--JOB GARAGE
    {
        garage = "Police Garage", --PALETO
        job = "police",
        Type = "car",
        Dist = 10,
        Blip = {color = 38, sprite = 289, scale = 0.6},
        garage_x = 427.20556640625,
        garage_y = -1011.4292602539,
        garage_z = 28.954322814941,
        spawn_x = 432.20071411133,
        spawn_y = -1015.4301757813,
        spawn_z = 28.840564727783,
        heading = 85.93824005127
    },
Sample Private Garage
private_garage = {
    ['large'] = { -- garage id
    name = 'Power St Garage', -- custom name
    cost = 10000, -- cost for purchase
    max = 15, -- max vehicles available for this garage
    buycoords = vector4(-9.6924495697021,-829.27484130859,29.96146774292,262.73928833008), -- location of buying coords and spawn of vehicles.
    coords = vector4(239.85778808594,-1004.7095947266,-98.999862670898,88.549873352051), -- ped spawn location inside garage
    park = { -- list of parking coordinates for each vehicles
        {coord = vector4(233.80194091797,-1002.8353271484,-99.562438964844,98.076362609863), taken = false},
        {coord = vector4(233.70393371582,-999.49444580078,-99.562438964844,98.78751373291), taken = false},
        {coord = vector4(233.89929199219,-996.08715820312,-99.562713623047,102.9313659668), taken = false},
        {coord = vector4(233.82643127441,-992.74664306641,-99.562316894531,105.20411682129), taken = false},
        {coord = vector4(233.9019317627,-989.30828857422,-99.562698364258,112.15473175049), taken = false},
        {coord = vector4(233.64181518555,-986.10681152344,-99.562103271484,112.84883880615), taken = false},
        {coord = vector4(233.56895446777,-982.71539306641,-99.562477111816,119.05020141602), taken = false},
        {coord = vector4(223.47540283203,-977.2685546875,-99.413398742676,239.5002746582), taken = false},
        {coord = vector4(223.21844482422,-981.45782470703,-99.561897277832,237.03373718262), taken = false},
        {coord = vector4(223.27618408203,-985.41668701172,-99.561882019043,238.91821289062), taken = false},
        {coord = vector4(223.57893371582,-989.11114501953,-99.562232971191,242.21180725098), taken = false},
        {coord = vector4(223.39413452148,-992.62939453125,-99.561912536621,245.86999511719), taken = false},
        {coord = vector4(223.23393249512,-996.20721435547,-99.5625,245.08056640625), taken = false},
        {coord = vector4(223.26263427734,-999.97033691406,-99.562675476074,248.02851867676), taken = false},
        {coord = vector4(223.08692932129,-1003.8400268555,-99.561912536621,246.77253723145), taken = false},
    },
}
Sample Housing Garage
Config.Property = {
    [1] = {
       name = "Coopenmartha Court 24",
       coord = vector3(-1053.82, -933.09, 3.36),
     },
}

or
Manually Trigger

TriggerEvent('renzu_garage:property',"Forum Drive 11/Apt13", vector3(-1053.82, -933.09, 3.36))

Result

Sample Impound
impoundcoord = {
    {
        garage = "impound", --mrpd
        job = "police",
        Type = "car",
        Dist = 10,
        Blip = {color = 2, sprite = 289, scale = 0.6},
        garage_x = 459.18936157227,
        garage_y = -1008.4532470703,
        garage_z = 28.264139175415,
        spawn_x = 443.25286865234,
        spawn_y = -1013.6952514648,
        spawn_z = 27.927909851074,
        heading = 89.990180969238
    }
}
Sample Heli Garage
heli = {
    -- chopper models for each jobs
    ["police"] = {
        -- job
        {plate = "PDHELI", model = "maverick"},
        {plate = "PDHELI", model = "frogger"},
        {plate = "PDHELI", model = "havoc"},
        {plate = "PDHELI", model = "polmav"},
        {plate = "PDHELI", model = "valkyrie"},
        {plate = "PDHELI", model = "akula"},
        {plate = "PDHELI", model = "buzzard"},
        {plate = "PDHELI", model = "cargobob2"}
    },
    ["ambulance"] = {
        -- job
        {plate = "AMBHELI", model = "maverick"},
        {plate = "AMBHELI", model = "frogger"},
        {plate = "AMBHELI", model = "havoc"},
        {plate = "AMBHELI", model = "polmav"},
        {plate = "AMBHELI", model = "valkyrie"},
        {plate = "AMBHELI", model = "akula"},
        {plate = "AMBHELI", model = "buzzard"},
        {plate = "AMBHELI", model = "cargobob2"}
    },
}
Sample Realistic Park Config
parking = { -- list of parking zone
    {
        garage = "Public Park A", --LEGION
        Dist = 60, -- location size
        Blip = {color = 38, sprite = 289, scale = 0.9},
        garage_x = 227.09092712402,
        garage_y = -787.85180664062,
        garage_z = 30.701454162598, -- coordinates for this garage
    },

    {
        garage = "Public Park B",
        Dist = 30, -- location size
        Blip = {color = 38, sprite = 289, scale = 0.9},
        garage_x = 1028.1433105469,
        garage_y = -775.60241699219,
        garage_z = 58.039398193359, -- coordinates for this garage
    },
}

Commands

  • Impound
usage: /impound
any nearest vehicle will be impound (distance 2-3 radius)
Giveaccess to player private owned garage
- /giveaccess PLAYERID
- Open Vehicle Keys UI
- /vehiclekeys
- Open Garage Keys UI
- /garagekeys 
- /garagekeys manage
- /garagekeys give
- Park Anywhere
/park
- park to any parking meter
/parkingmeter

Dependency

  • ESX (legacy)
  • ox_lib
  • One Sync Enable
usage: /impound
any nearest vehicle will be impound (distance 2-3 radius)
Giveaccess to player private owned garage
- /giveaccess PLAYERID
- Open Vehicle Keys UI
- /vehiclekeys
- Open Garage Keys UI
- /garagekeys 
- /garagekeys manage
- /garagekeys give

Other Free resource

Vehicleshop [RELEASE] renzu_vehicleshop | Advanced Vehicle Shop
HUD UI [RELEASE] renzu_hud UI | Advanced HUD

IM NOT GIVING SUPPORT HERE!

ONLY GITHUB ISSUES

SUPPORT PAGE

43 Likes

Looks good! Nice free release!

6 Likes

thank you, if you find bugs , please submit at github

2 Likes

bro for some reason not working for me i am using esx one

did you download this

this is dependency

2 Likes

it worked sorry for not reading dependency :sweat_smile:

2 Likes

no worries, glad it worked for you

oh wait it only worked one time did i did something wrong again?

btw a lil report impound garage and police garage are not opening and i have police job also

make sure you start the garage after the esx.

also check the F8 console for any errors
Mine are working
this is tested on ESX v1 FINAL
make sure to use a job ‘police’

3 Likes

i am using 1.2 tho there is no error in f8 console or txadmin console and yes i am using job police

1 Like

normal garages working perfectly but the police one are not :confused:

did you see a popui on police garage?

i just updated the distance

that must be the issue if distance is the problem.

try opening the garage from the nearest distance

great work, that’s dope

1 Like

btw got this error after changing to what you changed

1 Like

Ill fix this in the next commit, this does not affect anything…happens only when you restart the script

1 Like

Looks insane and very good, thanks for the free release it’ll surely help me and a lot others :sweat_smile:

Hi i’m having an issue when i try to open a garage

How can you change the snail logo on the garage menu?

image

Edit: Found it on script.js line 145 if someone needs it, replace the GIF.

1 Like

Your missing a id column in your database…

Adding it will fix it.
Ill update server.lua in next few hour to avoid this