**Framework auto-detection** | ESX, QBCore, Qbox, ox_core, or fully standalone. Detected once at boot, adapters live in `bridge/`.
**Schema auto-detection** | Reads `owned_vehicles` (ESX) or `player_vehicles` (QB/Qbox), column by column. Its own state lives in `silent_garage_vehicles`, so uninstalling leaves your vehicles untouched.
**Server-authoritative** | The client asks, the server decides, charges, writes and answers. Plates are locked mid-transition, entity/plate pairs are verified, and every rejection is logged.
**Condition persistence** | Body, engine, tank, per-door/window/tyre damage, dirt, fuel and a live odometer — all restored exactly as parked.
**Impound & insurance** | Officer-driven impound with custom reasons and fees, hold times, self-release or officer-only release, plus a write-off queue for totalled vehicles.
**Keys & ownership** | Share a vehicle with three access levels and optional expiry, or transfer ownership permanently, face to face.
**Valet** | Have a vehicle delivered to the nearest road node for a distance-scaled fee, with cooldowns and no-delivery zones.
**Purpose-built interface** | A left rail with search, filters, sorting and condition dials, and a glass detail card that floats over a live 3D preview of the selected car. Light and dark themes, remembered per player.
**Showroom preview** | Rotating camera preview of the highlighted vehicle, local-only so nobody else sees a ghost car.
**Garage servicing** | Repair, refuel and wash a vehicle without taking it out of the garage — priced live as you tick the boxes.
**Move between garages** | Have a parked vehicle relocated to any garage you can use, priced by the distance between them.
**Rentals** | Temporary vehicles that expire on their own and then vanish or go to the depot. Issued by other resources through one export.
**Works without ox_lib** | ox_lib is used when present. Without it there is a native fallback menu, text prompt and progress bar. Nothing is a hard dependency except oxmysql.