SleepyCode Garages V2 - Full Installation & Configuration Guide
Complete setup guide for SleepyCode Garages V2 on FiveM (ESX, QBCore, QBox, Standalone) - dependencies, config, impound, insurance and admin panel.
Garages V2 is SleepyCode's flagship garage resource for FiveM. It supports ESX, QBCore, QBox, and Standalone frameworks with auto-detection, a React-based UI, impound system, insurance tiers, police tow, showroom previews, and a full admin panel - all with no manual SQL import required.
Requirements
- FiveM server with OneSync enabled
- oxmysql - database bridge
- ox_lib - UI and utility library
- PolyZone - zone detection
- A supported framework: qbx_core, qb-core, or es_extended (or standalone with ACE permissions)
Installation
1. Place the resource
resources/
[sleepycode]/
sc_garages/
fxmanifest.lua
shared/
ConfigClient.lua
ConfigServer.lua
client/
server/
locales/2. server.cfg
ensure oxmysql
ensure PolyZone
ensure ox_lib
ensure es_extended # or qb-core / qbx_core
ensure sc_garagesPolyZone must start before sc_garages. The resource auto-detects your framework - no manual setting required.
3. Database
No SQL import needed. On first startup Garages V2 automatically adds the required columns to your existing vehicles table:
- insurance
- last_used
- impound_name
- impounded_at
- police_hold_until
- impound_reason
- co_owner
- parking
A separate vehicle_history table is also created automatically.
The script reads your table via the database config (defaults match standard ESX/QB schemas):
Config.Database.Tables.OwnedVehicles = "owned_vehicles"
Config.Database.Tables.VehicleHistory = "vehicle_history"
Config.Database.Tables.Users = "users"
Config.Database.Tables.Jobs = "jobs"Column mapping defaults (change if your schema differs):
Config.Database.Columns.Owner = "owner"
Config.Database.Columns.Plate = "plate"
Config.Database.Columns.VehicleData = "vehicle"
Config.Database.Columns.Stored = "stored"Key Configuration Options
Target system (ConfigClient.lua)
Config.UseTarget = true
Config.Target.Resource = "" -- leave empty for auto-detection
-- Supported: ox_target, qb-target, qtarget, interactSet Config.UseTarget = false to use markers with key bindings instead.
Marker appearance (fallback when target is off)
Config.Marker.Type = 23
Config.Marker.Size = vec3(1.2, 1.2, 0.5)
Config.Marker.Color = {r=30, g=144, b=255, a=180}
Config.Marker.DrawDistance = 8.0Impound fees
Config.ImpoundPrice.Account = "money"
Config.ImpoundPrice.Price = 5000Police tow system
Config.PoliceTow.Enabled = true
Config.PoliceTow.ImpoundName = "police_impound"
Config.PoliceTow.MaxHoldHours = 72
Config.PoliceTow.DefaultHold = 24
Config.PoliceTow.RequiredJobs = {"police", "sheriff"}
Config.PoliceTow.NotifyPlayer = trueCommands:
/impoundpolice - Police tow UI (police/sheriff jobs only)
/odholuj - Mass-tow nearby vehicles (admin only)Insurance tiers
Three configurable tiers (Basic, Standard, Premium). Each tier supports:
{
label = "Basic",
price = 500,
account = "money",
days = 7,
freeImpound = false,
impoundDiscount = 0.25, -- 25% off impound fee
freeRepair = false,
protectDelete = false,
}Toggle insurance features globally:
Config.Insurance.Features.FreeRepair = true
Config.Insurance.Features.ImpoundDiscount = true
Config.Insurance.Features.ProtectDelete = truePlate customisation
Config.ChangePlate.Command = "plate"
Config.ChangePlate.Price = 5000
Config.ChangePlate.Account = "money"
Config.ChangePlate.PlateLength.Min = 6
Config.ChangePlate.PlateLength.Max = 8
Config.ChangePlate.BlackListedWords = {}Admin panel
Config.AdminPanel.Command = "garagesadmin"
Config.AdminPanel.Shortcut.Enabled = true
Config.AdminPanel.Shortcut.HoldKey = 21 -- SHIFT
Config.AdminPanel.Shortcut.PressKey = 29 -- BOpen with /garagesadmin or SHIFT+B (configurable). From the admin panel you can create garages, impounds, and showrooms by placing spawn points at your current coordinates.
Server-side (ConfigServer.lua)
ConfigServer.Webhook = "" -- Discord webhook URL
ConfigServer.SteamAPIKey = "" -- Steam API key for avatar display
ConfigServer.Security.EnableAntiExploitBan = true
ConfigServer.Security.BanReasonPrefix = "[sc_garages anti-exploit] "Creating Garages In-Game
After installation, use /garagesadmin to open the admin panel. You can:
- Create garage zones (vehicle, aircraft, boat)
- Create impound locations
- Create showroom previews
- Set spawn and entry points by walking to the desired location
No JSON editing required - everything is managed through the UI.
Troubleshooting
Garage zones do not work - Ensure PolyZone starts before sc_garages. Enable Config.Debug = true and check the server console.
Vehicles do not spawn - Clear the spawn point of obstacles. Blocked spawn points are automatically skipped.
Target system not working - Start your target resource before sc_garages. Leave Config.Target.Resource = "" for auto-detection.
Admin panel won't open - Check your ESX admin group matches Bridge.Config.ESX.AdminGroups (defaults: admin, superadmin, owner).
Database errors - Confirm oxmysql is connected. Check that Config.Database.Tables.OwnedVehicles matches your actual table name.
Webhooks not sending - Validate the Discord webhook URL in ConfigServer.Webhook. Check the server console for HTTP errors.
Need help? Join discord.gg/qCDt8u7Efgdiscord.gg/qCDt8u7Efghttps://discord.gg/qCDt8u7Efg - include your framework version and server console output for fastest support.