
A complete, server-authoritative garage and impound system for ESX with a modern React UI and a security-first backend.
MSK Garage is a garage and impound system for ESX Legacy, built on top of msk_core. It handles cars, boats and aircraft, gives players an impound to get their lost vehicles back, and lets you share job vehicles across a whole society. Everything is validated on the server, and the UI is React-based and runs completely offline.
The big change in v5.0.0: you barely touch the config files anymore. Garages, impounds and all the settings now live in the database, and you manage them from an in-game admin panel. So no more editing Lua and restarting the server every time you want to move a garage or tweak a fee.
Type /garageadmin in-game and you get a full panel to manage the whole script. On the first start your existing config is imported into the database once, and from then on the dashboard is where you do everything. Changes apply live, no restart needed.
What you can do in there:
Create, edit and delete garages and impounds. Coordinates are grabbed with a “use my current position” button, so you don’t have to copy them from anywhere. You can add as many entrances and park-out spots as you want.
Set up a proper permission system. There are separate rights for viewing, creating, editing and deleting garages and impounds, plus rights for the settings and the permissions themselves. group.admin always has full access and can’t be locked out, and group.user can never open the panel. It works with your server.cfg ACE groups as well as your framework groups (for example an ESX admin group from the database).
Restrict a garage to a job and pick the exact ranks that are allowed, not just a minimum grade. You choose the job from a dropdown of every job on your server and tick the ranks you want.
Change every setting from the UI: language, parking mode, the default garages per category (land / sea / air), the target and vehicle-key script, the command name itself, and more.
A quick note first: you can drop your own vehicle-key adapter into /server/keys/, but I only give support for the scripts listed under Optional further down.
The basics:
As many garages and impounds as you like, each with its own ped, blip, 3D text, marker and park-out spots.
Proper vehicle categories (car, truck, bike, boat, submarine, helicopter, aircraft, trailer, train) so a boat doesn’t show up in a car garage.
Job and society garages. Vehicles can belong to the individual player or to the whole society, and access can be limited to specific ranks.
An impound for vehicles that got lost after a crash, a death or a restart. Players pay a fee you set, and there’s a track button that puts a waypoint on the car.
Key holders can park in and out too, not just the owner. Works with msk_vehiclekeys, VehicleKeyChain and vehicles_keys.
Vehicle condition is kept. Engine, body and tank health, dirt and even the visual dents come back on park-out (dents need the optional VehicleDeformation resource).
Players can favourite their vehicles and rename them.
About the UI:
The interface is written in React + Vite + TypeScript in the MSK dark/green style. It’s fully offline, so all fonts and icons ship with the script. There are no Google Fonts, no FontAwesome CDN and no outside requests at runtime. You get live search, a type filter, fuel bars and vehicle-class icons, and it comes in 7 languages out of the box: EN, DE, HU, FR, ES, PT and PL.
On the security side:
Everything important runs through the server. Park-in, park-out and every action in the admin panel are checked server-side, so a modified client can’t inject a garage, a plate, a fee or a permission. There are per-plate spawn locks and a claim/rollback flow to stop duplicates even when someone’s connection hiccups, custom garages from other resources have to be registered server-side so their coordinates and fees can’t be faked, and if an impound payment goes through but the spawn fails for any reason, the fee is refunded automatically.
A few things you can configure:
Let players park out anywhere, or only at the garage where the vehicle was stored.
Use your own fuel script. The default reads the state bag, and if msk_fuel is running it’s picked up automatically and shows the real tank volume (like 50 / 65 L).
Use the built-in TextUI, plug in your own (okokTextUI for example), or switch to ox_target. The target script is a dropdown in the dashboard.
AdvancedParking is supported and detected automatically, there’s no flag to toggle.
Custom plates, configurable blips, and client/server exports plus park-in/park-out events if you want to hook into it from another resource.
ESX Legacy · msk_core · oxmysql
Optional: AdvancedParking · VehicleDeformation · MSK VehicleKeys · VehicleKeyChain · Jaksam Vehicle Key
Incl. VAT · Instant delivery
Login with your CFX.re account to purchase