> For the complete documentation index, see [llms.txt](https://docs.noctrastore.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.noctrastore.net/noctra-garage/installation.md).

# Installation

Install Noctra Garage and prepare its database for your framework.

## Requirements

* A recent FiveM server with OneSync enabled
* `oxmysql`
* ESX, QBCore, Qbox, or a completed custom framework bridge

{% hint style="warning" %}
Back up your server files and database before replacing an existing garage system.
{% endhint %}

## Setup

{% stepper %}
{% step %}

### Remove the old garage resource

Stop and remove your previous garage script, then remove its `ensure` line from `server.cfg`. Two garage resources should not manage the same vehicles at the same time.

Do not delete your existing owned-vehicle table or vehicle records.
{% endstep %}

{% step %}

### Add Noctra Garage

Place the downloaded folder in your resources directory and keep its name as:

```
noctra_garage
```

{% endstep %}

{% step %}

### Import the database file

Open the `sql` folder and import **one** file matching your framework.

{% tabs %}
{% tab title="ESX" %}
Import:

```
sql/esx.sql
```

{% endtab %}

{% tab title="QBCore" %}
Import:

```
sql/qbcore.sql
```

{% endtab %}

{% tab title="Qbox" %}
Import:

```
sql/qbox.sql
```

{% endtab %}

{% tab title="Custom" %}
Import:

```
sql/custom.sql
```

Then adapt the vehicle table mapping and framework functions described in [Custom framework](/noctra-garage/custom-framework.md).
{% endtab %}
{% endtabs %}

The SQL file creates the garage, shared-key, and persistent-vehicle tables. It also adds the fields Noctra Garage needs to the framework vehicle table.

{% hint style="danger" %}
Do not import multiple framework SQL files. Choose only the file for the framework used by your server.
{% endhint %}
{% endstep %}

{% step %}

### Review the configuration

Open `config.lua` and confirm the detected framework, language, permissions, persistence setting, interactions, and integrations.

Framework detection is automatic when the framework resource starts before Noctra Garage. You can set `Config.Framework` manually if your setup needs it.
{% endstep %}

{% step %}

### Set permissions

The garage creator uses `noctra_garage.creator` by default. The mass impound command uses `noctra_garage.admin` when the framework bridge relies on ACE permissions.

Add the required permissions to `server.cfg`:

```cfg
add_ace identifier.license:YOUR_LICENSE noctra_garage.creator allow
add_ace identifier.license:YOUR_LICENSE noctra_garage.admin allow
```

Replace `YOUR_LICENSE` with the identifier that should receive access. Framework permission checks can also be configured in the matching files under `custom/server/framework`.
{% endstep %}

{% step %}

### Start the resource

Load the database and framework before Noctra Garage.

{% tabs %}
{% tab title="ESX" %}

```cfg
ensure oxmysql
ensure es_extended
ensure noctra_garage
```

{% endtab %}

{% tab title="QBCore" %}

```cfg
ensure oxmysql
ensure qb-core
ensure noctra_garage
```

{% endtab %}

{% tab title="Qbox" %}

```cfg
ensure oxmysql
ensure qbx_core
ensure noctra_garage
```

{% endtab %}

{% tab title="Custom" %}

```cfg
ensure oxmysql
ensure your_framework
ensure noctra_garage
```

{% endtab %}
{% endtabs %}
{% endstep %}

{% step %}

### Create and test a garage

Join the server, run `/opencreator`, and create a basic owned garage. Before opening the server to players, test storage, retrieval, fees, impound release, and a server restart.
{% endstep %}
{% endstepper %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.noctrastore.net/noctra-garage/installation.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
