πŸ”₯All scripts on our website are 50% off!πŸ”₯
Logo

Features

Public Garages

BIT-Garage includes 18 pre-configured public garage locations across the map:

Car Garages (16 locations)

  1. Central - vector3(212.55, -797.68, 30.86)
  2. El Burro - vector3(1179.36, -1540.98, 39.38)
  3. Mirror Park - vector3(1038.87, -770.18, 58.00)
  4. Tataviam - vector3(2588.67, 420.30, 108.44)
  5. Los Santos Airport - vector3(-1038.13, -2667.13, 13.82)
  6. Vespucci Beach - vector3(-1186.91, -1505.10, 4.37)
  7. Center - vector3(-352.20, -690.10, 32.60)
  8. Alta - vector3(271.92, -342.50, 44.91)
  9. Vinewood West - vector3(-202.21, 306.72, 96.93)
  10. Rockford Hills - vector3(-938.62, -171.79, 41.86)
  11. Galileo - vector3(-415.2, 1199.61, 325.63)
  12. Grand Senora - vector3(1118.96, 2653.41, 37.99)
  13. Sandy Airport - vector3(1728.59, 3297.15, 41.22)
  14. Sandy - vector3(1714.35, 3767.18, 34.43)
  15. Grapeseed - vector3(2154.00, 4796.13, 41.17)
  16. Paleto - vector3(87.15, 6370.60, 31.23)

Boat Garage (1 location)

  1. La Puerta - vector3(-905.52, -1469.1, 1.63)

Plane Garage (1 location)

  1. Los Santos Airport - vector3(-1635.9, -3140.4, 13.99)

Each garage includes:

  • Spawn coordinates with proper heading
  • Camera position and rotation for preview
  • Save car coordinates
  • Garage type identification (car/boat/plane)
  • No-delete radius (200 units)

Custom Functions

The script provides several customizable functions in the functions.lua file:

Client Side Functions

-- Hide UI elements when garage opens
function hideElements()
    DisplayRadar(false)
end

-- Show UI elements when garage closes
function showElements()
    DisplayRadar(true)
end

-- Spawn vehicle with model loading
function spawnVehicle(model, actualGarage)
    -- Complete vehicle spawning logic with type checks
end

-- Teleport user to vehicle
function teportUser(playerPED, vehicle)
    TaskEnterVehicle(playerPED, vehicle, 15000, -1, 2.0, 1, 0)
end

-- Give keys to player (customize for your key system)
function giveKeys(playerID, plate, vehicle)
    -- Example for QB-Core:
    TriggerEvent("vehiclekeys:client:SetOwner", QBCore.Functions.GetPlate(vehicle))
end

-- Pay taxes function
function payTaxes(source, typetax, amount)
    TriggerServerEvent('bit-garage:payTax', source, typetax, amount)
end

-- Custom police notification for radars
function customPoliceNotification(speed, coords)
    -- Add your police notification system here
end

-- Send bill to player
function sendBill(playerID, amount)
    -- Add your billing system here
end

-- Radar image handling
function radarImage(image)
    -- Custom radar image processing
end

-- Spawn impounded vehicle
function impounedVehicleSpawn(model, coord, heading)
    -- Vehicle spawning for impound system
end

Server Side Functions

-- Remove money for impound
function removeMoneyImpound(xPlayer, price)
    if Config.Framework == "esx" then
        xPlayer.removeAccountMoney('bank', price)
    elseif Config.Framework == "qb" then
        xPlayer.Functions.RemoveMoney('bank', price, "impound-retrieved")
    end
end

-- Make lockpick item usable
function lockPickItem()
    -- ESX example:
    ESX.RegisterUsableItem(Config.lockpickItem, function(source)
        TriggerClientEvent('bit-garage:startlockpicking', source)
    end)
    
    -- QB example:
    QBCore.Functions.CreateUseableItem(Config.lockpickItem, function(source)
        TriggerClientEvent('bit-garage:startlockpicking', source)
    end)
end

-- Make fake plate items usable
function fakePlateItems()
    -- Register fake plate and original plate items
end

-- Get player gang (QB-Core only)
function GetPlayerGang(playerID)
    if Config.Framework == "qb" then
        if QBCore.Functions.GetPlayerData().gang ~= nil then
            return QBCore.Functions.GetPlayerData().gang.name
        end
    end
end

Custom Alerts

-- Custom alerts for garage interactions
useCustomAlerts = false

function customAlert(alertType, status)
    if alertType == "alert" then
        if status then
            -- Show "Press E to enter the garage" prompt
        else
            -- Hide prompt
        end
    elseif alertType == "alertsave" then
        if status then
            -- Show "Press E to save vehicle" prompt
        else
            -- Hide prompt
        end
    elseif alertType == "alertimpound" then
        if status then
            -- Show "Press E to access" prompt
        else
            -- Hide prompt
        end
    end
end

Open Functions

-- CLIENT SIDE
-- Function executed just after declaring the ESX or QBCore variable
function openClient()
    -- Add your custom client-side initialization here
end

-- SERVER SIDE
-- Function executed just after declaring the ESX or QBCore variable
function openServer()
    -- Add your custom server-side initialization here
end

Admin Commands

The script includes several administrator commands:

/creategarage

Create custom garages for jobs or users

  • Usage: /creategarage
  • Requires: Admin permissions
  • Opens creation menu to set:
    • Garage name
    • Parking coordinates
    • Spawn coordinates
    • Save car coordinates
    • Job assignment (optional)
    • User assignment (optional)

/dvv [plate]

Delete vehicle and send to Central garage (alternative to /dv)

  • Usage: /dvv or /dvv PLATE123
  • Requires: Admin permissions
  • Without plate: deletes nearest vehicle
  • With plate: deletes specific vehicle

/dvi

Delete nearest vehicle and impound it

  • Usage: /dvi
  • Requires: Admin permissions
  • Sets impound price: Config.adminDVIAmount
  • Vehicle can be retrieved from impound

/givecar [userid]

Deliver a vehicle to a user

  • Usage: /givecar 1
  • Requires: Admin permissions
  • Steps:
    1. Spawn the vehicle
    2. Get inside it
    3. Execute the command with target user ID
    4. Vehicle ownership is transferred

/deletecar [plate]

Delete a vehicle from user account

  • Usage: /deletecar ABC123
  • Requires: Admin permissions
  • Permanently removes vehicle from database

/crane

Manually trigger massive vehicle delete

  • Usage: /crane
  • Requires: Admin permissions
  • Removes all unattended vehicles
  • Can impound or store vehicles based on config

/garageInstall

Send all vehicles to Central garage and remove impounds

  • Usage: /garageInstall
  • Requires: Admin permissions
  • Recommended for clean installation
  • Resets all vehicle locations

Player Commands

/carkey

Open vehicle key menu

  • Alternative: Press L key (configurable)
  • Usage: /carkey
  • Options:
    • Lock/Unlock vehicle
    • Give key to nearby player
    • Remove key from player

/givekey [id]

Give vehicle key to another player

  • Usage: /givekey 2
  • Must be owner of the vehicle
  • Target player receives key access

/removekey

Remove key from another player

  • Usage: /removekey
  • Opens menu to select player
  • Only owner can remove keys

Events & Triggers

Client Events

-- Open garage menu
TriggerEvent("bit-garage:open", garageName)

-- Start lockpicking mini-game
TriggerEvent('bit-garage:startlockpicking', source)

-- Apply new plate
TriggerEvent('bit-garage:newPlate', source)

-- Restore old plate
TriggerEvent('bit-garage:oldPlate', source)

-- Show error notification
TriggerEvent("bit-garage:errors", source, message)

Server Events

-- Police notification for radar
TriggerEvent("bit-garage:NotifyPolice", coords, speed)

-- Pay taxes
TriggerServerEvent('bit-garage:payTax', source, typetax, amount)

Impound System

Authorized Jobs

Only specific jobs can impound vehicles:

Config.authorizedJobs = {
    ["police"] = true,
    ["sheriff"] = true,
    ["mechanic"] = true,
}

Impound Locations

The script includes 2 pre-configured impound locations:

  1. Police Impound - 409.18, -1624.44, 29.29

    • Blip: 67 (impound icon)
    • Color: 17 (orange)
    • Ped: Female cop (s_f_y_cop_01)
  2. City Impound - 490.67, -1318.1, 29.24

    • Blip: 67 (impound icon)
    • Color: 17 (orange)
    • Ped: Garbage worker (s_m_y_garbage)

Impound Features

  • Vehicle information display
  • Owner details
  • Impound timestamp
  • Officer information
  • Caution payment system
  • Vehicle preview with camera
  • Retrieval with payment

Radar System

Radar Management

Create and manage speed cameras in-game:

  1. Place Radar

    • Use admin menu to place radar prop
    • Set speed limit
    • Set fine amount
    • Configure detection radius
    • Set heading/rotation
  2. Radar Triggers

    • Automatic detection when speeding
    • Screenshot capture
    • Discord webhook notification
    • Police notification (if enabled)
    • Bill sending (if enabled)
  3. Radar Data

    • Vehicle model
    • Driver name
    • Speed (KMH/MPH)
    • Location coordinates
    • Timestamp
    • Screenshot

Discord Webhooks

Configure webhooks for:

  • Radar images: Config.radarWebhook
  • Fake plate changes: Config.fakePlateWebhook

Taxes System

Automatic vehicle tax collection:

  • Scheduled execution (daily at configured time)
  • Per-vehicle pricing
  • Bank account deduction
  • Notification to player
  • Calculation: total_vehicles Γ— Config.taxesPrice

Example:

  • Player has 5 vehicles
  • Tax per vehicle: $1,500
  • Total tax: $7,500

Massive Delete System

Automated cleanup of unattended vehicles:

Configuration

Config.massiveDeleteSchedule = {
    {h = 10, m = 00},  -- 10:00 AM
    {h = 12, m = 00},  -- 12:00 PM
    {h = 14, m = 00},  -- 2:00 PM
    {h = 16, m = 00},  -- 4:00 PM
    {h = 18, m = 24},  -- 6:24 PM
    {h = 20, m = 00},  -- 8:00 PM
    {h = 22, m = 00},  -- 10:00 PM
}

Features

  • Warning notification before deletion (2 minutes by default)
  • Skips vehicles in garage areas
  • Option to impound or store vehicles
  • Manual trigger with /crane command
  • Configurable impound price

Vehicle Health

The script preserves vehicle health and damage:

  • Stored in database on save
  • Restored on vehicle spawn
  • Includes:
    • Body damage
    • Engine health
    • Tank health
    • Dirt level
    • Deformation