FRAMEWORKS
Frameworks

How to Set Up a Job or Gang Garage With Rank-Locked Vehicles in QBCore

November 1, 2023 · 4 min read

Setting up a job or gang garage with rank-locked vehicles in QBCore can significantly enhance the dynamics of your FiveM server. Whether you are creating a criminal organization or establishing a law enforcement agency, having vehicles that players can access based on their rank adds a layer of realism and depth to the roleplay experience. In this article, we will walk you through the step-by-step process of implementing this feature using QBCore.

Understanding the Basics of QBCore

Before diving into the specific steps, it’s important to understand what QBCore is and how it operates. QBCore is a popular framework used in FiveM for creating roleplay servers. Its modular architecture allows for customization and integration of various features, including job systems and vehicle management. Here are a few key points to keep in mind:

  • Modular Framework: QBCore allows you to create various jobs, gangs, and their related functionalities like garages.
  • Resource Management: Vehicles, jobs, and various resources are handled in separate files for easy customization.
  • Rank System: QBCore incorporates a rank system whereby players can be assigned different ranks, allowing for permissions related to jobs and vehicles.

Setting Up Your Vehicle Garage Resource

Step 1: Create Your Garage Resource

To get started, you need to create a new resource for your garage. This will contain the configuration for the vehicles and the rank requirements.

  1. Create a New Folder: Navigate to your resources folder (usually located at resources/[your_resource_folder]) and create a new folder named job_garage.
  2. Create Essential Files: Inside the job_garage folder, create the following files:
    • fxmanifest.lua
    • config.lua
    • server.lua
    • client.lua

Step 2: Configuring fxmanifest.lua

This file is crucial for defining your resource to the server. Here’s a basic setup:

fx_version 'cerulean'
game 'gta5'

author 'Your Name'
description 'Job Garage with Rank Locked Vehicles'
version '1.0.0'

client_scripts {
    'client.lua'
}

server_scripts {
    '@qb-core/shared/locale.lua',
    'config.lua',
    'server.lua'
}

Step 3: Define Your Vehicle Configurations

In the config.lua file, you will define the vehicles that are rank-locked. Here’s a simple example:

Config.Vehicles = {
    [1] = {model = 'police', rank = 1},
    [2] = {model = 'sheriff', rank = 2},
    [3] = {model = 'swat', rank = 3},
}

In this example, vehicles are assigned different ranks, indicating which rank can access them.

Creating the Server Logic

Step 4: Server-Side Logic

In server.lua, you will handle the spawning logic for the vehicles based on the player’s rank.

RegisterNetEvent('job_garage:getVehicle')
AddEventHandler('job_garage:getVehicle', function(vehicleModel)
    local src = source
    local Player = QBCore.Functions.GetPlayer(src)
    local vehicleRank = Config.Vehicles[vehicleModel].rank

    if Player.PlayerData.job.grade.level >= vehicleRank then
        -- Code to spawn vehicle
        TriggerClientEvent('qb-garage:spawnVehicle', src, vehicleModel)
    else
        -- Notify player they don’t have permission
        TriggerClientEvent('QBCore:Notify', src, 'You do not have access to this vehicle.', 'error')
    end
end)

Step 5: Client-Side Logic

Lastly, in client.lua, you will implement the logic to trigger the server event when a player requests a vehicle.

RegisterCommand('getvehicle', function(source, args)
    local vehicleModel = args[1]
    TriggerServerEvent('job_garage:getVehicle', vehicleModel)
end, false)

Testing Your Setup

After you have implemented the scripts, it’s time to test your garage:

  1. Start Your Server: Ensure that your server.cfg is loading your job_garage resource.
  2. Join Your Server: Log into your FiveM server and check the rank of your player character.
  3. Spawn Vehicle: Use the command defined in client.lua to request a vehicle you’ve set up. Ensure to test access with various ranks.

Troubleshooting Common Issues

If you encounter problems while setting up your job or gang garage, consider the following:

  • Script Not Loading: Check your server.cfg for the correct start command for your resource.
  • Rank Misconfiguration: Ensure that the rank levels in your vehicle configuration match player ranks in QBCore.
  • Notification Errors: If notifications aren’t appearing, verify that you have QBCore properly set up and the event names are correct.

Frequently Asked Questions

How can I add more vehicles to my garage?

You can add more vehicles by simply increasing the configs in your config.lua file, allocating each one a unique index and setting its required rank.

Can I set up garages for multiple jobs?

Yes, you can create different garage resources for various jobs or modify the existing one to include multiple job configurations based on rank.

How do I customize vehicle models?

For each vehicle in your config.lua, replace the model value with the desired model name that is available in your FiveM server.

What if players can access vehicles they shouldn’t?

Double-check your rank assignments in the config.lua and confirm they align with your players’ ranks in QBCore.

By following these guidelines, you can effectively set up a job or gang garage with rank-locked vehicles in QBCore, enhancing the immersive experience of your FiveM roleplay server. If you’re looking for more tools to customize your server, check out our scripts or vehicles sections for additional resources.

#fivem#qbc#roleplay#gamedev#scripting

Keep reading