Vehicle Scripts

ds-advancedgarage

DS Advanced Garage 2.0 Huge Update!!!

A full-featured garage resource for FiveM: store and retrieve vehicles at configurable locations, impound, private and house garages, vehicle transfer, optional walk-in interiors (showroom), parking meters, and support for QB-Core, Qbox, ESX, and standalone. Current resource version: 2.0 (see CHANGELOG.md for release notes).

Features

  • Multiple frameworks — QB-Core, Qbox, ESX, or standalone (auto-detect)

  • Garage locations — Public, job, gang, impound; NPC or marker interaction (E key, ox_target, or qb-target)

  • Impound — Police can impound vehicles; owners pay a fee at impound lots to release

  • Private garages — Owner-only garages (e.g. real estate); optional interiors and billing (buyer accept/deny offers)

  • House garages — Preset/buyable house garage slots, maker command for coords export, owner tracking (framework SQL)

  • Walk-in garage interiors — Showroom-style interiors from the garage UI; optional music playlist, stash (many inventories), paid stash upgrades, player invites, floating NUI labels over vehicles

  • Parking meters — Paid timed parking at configured props (ParkingConfig in shared/parkingconfig.lua)

  • Job vehicle spawner — Helper for job fleet workflows (see config / locations)

  • Vehicle transfer — Move stored vehicles between garages (optional fee)

  • Shared garages — Take any stored vehicle from any garage, or restrict by storage location

  • Integrations — Fuel, keys, banking, gangs; notifications: default framework, builtin toasts, ds-notifications, ox_lib, okokNotify, ps-ui

  • Locales — en, de, es, fr, it, pt, nl, pl, ru, tr

Dependencies

  • ox_lib (required — shared_scripts includes @ox_lib/init.lua)

  • oxmysql (required, server)

  • PolyZone (required, client) — garage zones

Your framework (QB-Core, Qbox, or ESX) and optional integrations (fuel, keys, banking, inventory for interior stash) as configured in shared/config.lua.

Installation

  1. Dependencies

Ensure ox_lib, oxmysql, and PolyZone are installed and start before this resource.

  1. Database — framework base

Run the SQL for your stack under sql//:

  • QB-Core: sql/qb/player_vehicles.sql (plus impound extras in that folder if you use impound)

  • Qbox: sql/qbox/player_vehicles.sql (and impound extras if needed)

  • ESX: sql/esx/owned_vehicles.sql, sql/esx/dsag_impounds.sql, and other files in sql/esx/ as needed

  1. Database — DS Advanced Garage tables
  • Private garages: sql/qb/dsag_private_garages.sql, sql/qbox/dsag_private_garages.sql, or sql/esx/dsag_private_garages.sql (pick one matching your framework).

  • House garage owners (buyable/preset house garages): sql/qb/dsag_house_garage_owners.sql, sql/qbox/dsag_house_garage_owners.sql, or sql/esx/dsag_house_garage_owners.sql.

  1. Database — migrations (sql/migrations/)

Run only what you enable; typical files:

  • dsag_private_garages_add_interior_key.sql / dsag_private_garages_add_interior_props.sql — private garage showroom columns

  • dsag_interior_stash.sql — interior stash upgrades

  • dsag_showroom_music_playlist.sql — showroom music persistence

  • dsag_vehicle_nicknames.sql — optional vehicle nicknames

  • dsag_house_garage_allowed.sql — house garage allow-list support

  1. Configure

Edit shared/config.lua, shared/parkingconfig.lua, shared/locations/locations_config.lua, and shared/locations/garagespropsconfig.lua (interior props) for your server.

  1. Start

Add ensure ds-advancedgarage (or your folder name) after dependencies and your framework.

Upgrading from an older bundle: see CHANGELOG.md (section for 2.0).

Configuration overview

Main config (shared/config.lua)

| Option | Description |

|--------|-------------|

| Config.Framework | 'auto', 'qbcore', 'qbox', 'esx', or 'standalone' |

| Config.Locale | Language code (see Features list) |

| Config.Notifications | 'default', 'builtin', 'ds-notifications' , 'okokNotify', 'ox_lib', 'ps-ui' |

| Config.BuiltinNotify.duration | Toast time in ms when using builtin |

| Config.FuelSystem | Your fuel script or 'none' |

| Config.VehicleKeys | Keys script or 'none' |

| Config.Banking | Banking resource for fees / impound |

| Config.Garagesresources | Alias name (e.g. 'qb-garages') so other scripts call this resource |

| Config.SaveVehiclePropsOnInsert | First sync can write mods when DB row has empty mods |

| Config.CheckVehicleModel | Extra check that spawned model matches stored vehicle |

Garage NPC (Config.GarageNPC)

  • enabled — Uses spots in shared/locations/locations_config.lua

  • useNPC — Ped vs marker-only

  • interaction — 'e', 'ox_target', 'qb-target', 'auto'

  • distance, key, marker — Interaction range and marker look; marker drawDistance also clamps private interior decorator range

Garages and locations

  • shared/locations/locations_config.lua — Location coords + garage keys; Config.Garages for spawn points, blips, type, categories.

  • Each location references a key defined in Config.Garages (e.g. legionsquare, impounda).

Walk-in interiors / showroom

  • Config.GarageEnableInteriors, Config.GarageInteriorAccess — 'both' | 'nui' | 'command' | 'none' (command default documented in config).

  • Config.GarageInteriorShowroomVehicleUi — Floating labels near vehicles in showroom.

  • Config.GarageInteriorStash — Stash in showroom; set inventory or 'auto' and run sql/migrations/dsag_interior_stash.sql if you use upgrades.

  • Config.GarageInteriorUpgrades — Paid stash tiers / rename (NUI).

  • Config.GarageInteriorInvite — Invite another player into your session showroom.

  • Interior definitions live in config / shared/locations as documented next to Config.GarageInteriors in shared/config.lua.

Parking meters (shared/parkingconfig.lua)

  • ParkingConfig.Enabled — Toggle system.

  • Prices, account type, timer, prop hashes, and optional override keys for 1h / 10h actions.

Impound

  • Config.UseImpound, Config.Impound — Jobs, impound garage keys, fees.

  • Run the impound-related SQL for your framework from sql//.

Private garages

  • Config.PrivGarageCreateCommand, Config.PrivGarageCreateJobRestriction, Config.PrivGarageBlip

  • Config.PrivGarageEnableInteriors, Config.PrivGarageBilling — Interiors and paid offers to buyers

  • Framework file: sql//dsag_private_garages.sql plus migrations if you use interiors.

House garages

  • Config.HouseGarageCreateCommand / Config.HouseGarageCreateJobRestriction — Maker command (exports snippet for your houses config).

  • Config.HouseGaragePurchase — Buyable house garage flow; requires owner SQL for your framework.

  • Data helper: housegaragesdata/housegarages.txt (see config comments).

Other options

  • Config.AutoRespawn, Config.VisuallyDamageCars, Config.SharedGarages, Config.ClassSystem, Config.Warp, Config.AllowSpawnWhenOccupied

  • Config.TransferToGarageFee, Config.ShowVehiclesOutCount, Config.ShowWaypointToNearestGarage

  • Config.ShowWatermark / Config.ShowBrand — UI toggles

  • Admin-style commands (ACE dsag.admin or group.admin): names in config for job/gang garage vehicles, plate change, DB delete, vehicle return (see shared/config.lua)

Commands / usage

  • Garage — Interact at a garage NPC or marker (or target) to open the UI; store the current vehicle or retrieve a stored one.

  • Transfer — From the garage UI, transfer a vehicle to another garage (fee from config).

  • Impound — Jobs in Config.Impound.jobs use the impound command (e.g. /impound) at a vehicle; owner pays at the configured impound garage.

  • Private garage — Command from Config.PrivGarageCreateCommand (e.g. /privategarage) if your job is allowed; manage access from the UI.

  • House garage maker — Command from Config.HouseGarageCreateCommand (e.g. /createhousegarage) for authorized jobs; paste exported data into your house garage config and restart as documented in config.

  • Showroom / interior — Access mode from Config.GarageInteriorAccess (NUI button and/or command such as /garageinterior when enabled in config).

← Back to Docs