legacy-garages
Installation
Dependencies and setup steps to get legacy-garages running.
Installation
Dependencies
Required (declared in the manifest):
legacy-libox_liboxmysql
Optional / soft integrations (not declared as manifest dependencies, but read at runtime via GetResourceState/exports if present):
jg-dealerships— required forConfig.Finance(vehicle finance payments/payoff).jg-vehiclemileage— mileage unit display; must be ensured after legacy-garages inserver.cfg.ox_target— required ifConfig.UseTargetistrue(usesConfig.Target, default'ox_target').qbx_vehiclekeys(or another vehicle keys resource) — used byConfig.VehicleKeys.rcore_fuel(or another fuel resource) — used byConfig.FuelSystem.legacy-blipmanager— optional blip category/mode management.ox_inventory— required if you usetrunkLoadout/gloveboxLoadouton spawner job garages; item ids are validated at boot.legacy-sadot(or similar) — optional external impound-release handler, viaConfig.ImpoundReleaseExternal.
Steps
- Disable jg-advancedgarages. Move it to
resources-disabledor otherwise ensure it does not start. Two resources cannot bothprovide()the same resource name (jg-advancedgarages) — starting both will conflict. - Start dependencies first. Ensure
legacy-lib,ox_libandoxmysqlare started beforelegacy-garagesin yourserver.cfg. - Import the SQL schema. Run
sql/loadouts.sqlagainst your database (viamysql, HeidiSQL, phpMyAdmin, etc.) to create thelegacy_garages_loadoutstable. This is aCREATE TABLE IF NOT EXISTS— it is not auto-applied, so do this before first launch orlegacy-garages:saveLoadoutwill error. - Start legacy-garages. Because it provides
jg-advancedgaragesin its manifest,GetResourceState('jg-advancedgarages')will report'started'andexports['jg-advancedgarages']will resolve to this resource automatically. - (Optional) Build/develop the UI. The NUI is a separate React/Vite project in
web/:
cd web
npm install
npm run dev # http://localhost:3006 — preview with mock data
npm run build # regenerate web/dist (what the game actually serves)
web/dist is what the resource serves as its NUI page — you must run npm run build after any UI change, the dev server output is not used in-game.
Load-order notes
- If you use
jg-vehiclemileage, ensure it starts after legacy-garages. - If
Config.UseTargetistrue, ensure the resource named inConfig.Targetstarts before legacy-garages.