# Installation

## 1. Download Resource

Download the purchased resource from [**CFX Portal**](https://portal.cfx.re/assets/granted-assets) - the official site of FiveM with purchased resources.

***

## 2. Import Database Tables

This is a very important step - without it, the script will not work properly.\
**Paste the SQL code into your database**.

{% hint style="warning" %}

## Not sure how to do it?

No worries - we've prepared a short guide that shows you step by step how to import an SQL file into your database:\
👉 [**Click here to view the tutorial.**](/helpful/basic-server-knowledge/how-to-import-sql-to-database.md)
{% endhint %}

{% hint style="warning" %}
If you currently have an owned\_vehicles table in your database, maybe your legacy garage system is compatible with vms\_garagesv2 [Broken mention](broken://pages/5FHx5EwVt1z9DN8iGAoM) system.
{% endhint %}

<details>

<summary>owned_vehicles</summary>

If you want to create a new table:

```sql
CREATE TABLE IF NOT EXISTS `owned_vehicles` (
  `owner` varchar(80) DEFAULT NULL,
  `company` varchar(50) DEFAULT NULL,
  `gang` varchar(50) DEFAULT NULL,
  `plate` varchar(8) DEFAULT NULL,
  `vin` varchar(17) DEFAULT NULL,
  `netid` int(11) DEFAULT NULL,
  `milage` int(11) DEFAULT NULL,
  `vehicle` longtext DEFAULT NULL,
  `type` varchar(50) NOT NULL DEFAULT 'vehicle',
  `position` longtext DEFAULT NULL,
  `garage` varchar(50) DEFAULT NULL,
  `garageSpotID` int(11) DEFAULT NULL,
  `parking_date` int(11) DEFAULT NULL,
  `impound_date` int(11) DEFAULT NULL,
  `impound_data` longtext DEFAULT NULL,
  `insurance` longtext DEFAULT NULL,
  `tuning_data` longtext DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
```

If you want to add the required columns to the current table:

```sql
ALTER TABLE `owned_vehicles`
    ADD COLUMN `type` varchar(50) NOT NULL DEFAULT 'vehicle',
    ADD COLUMN `company` varchar(50) DEFAULT NULL,
    ADD COLUMN `gang` varchar(50) DEFAULT NULL,
    ADD COLUMN `vin` varchar(17) DEFAULT NULL,
    ADD COLUMN `netid` int(11) DEFAULT NULL,
    ADD COLUMN `milage` int(11) DEFAULT NULL,
    ADD COLUMN `position` longtext DEFAULT NULL,
    ADD COLUMN `garage` varchar(50) DEFAULT NULL,
    ADD COLUMN `garageSpotID` int(11) DEFAULT NULL,
    ADD COLUMN `parking_date` int(11) DEFAULT NULL,
    ADD COLUMN `impound_date` int(11) DEFAULT NULL,
    ADD COLUMN `impound_data` longtext DEFAULT NULL,
    ADD COLUMN `insurance` longtext DEFAULT NULL
;
```

</details>

<details>

<summary>parkings</summary>

```sql
CREATE TABLE IF NOT EXISTS `parkings` (
  `owner` varchar(100) DEFAULT NULL,
  `ownerName` varchar(220) DEFAULT NULL,
  `parking` varchar(200) NOT NULL,
  `space` int(11) NOT NULL DEFAULT 0,
  `time` bigint(20) NOT NULL DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
```

</details>

<details>

<summary>vms_business</summary>

**if you are not using vms\_stores/vms\_tuning/vms\_vehicleshopv2, you should create this table:**

```sql
CREATE TABLE IF NOT EXISTS `vms_business` (
  `id` varchar(50) NOT NULL DEFAULT '',
  `type` varchar(50) NOT NULL DEFAULT '',
  `owner` mediumtext DEFAULT NULL,
  `employees` longtext DEFAULT '{}',
  `stock` longtext DEFAULT '{}',
  `data` longtext DEFAULT '{}',
  `announcements` longtext DEFAULT '{}',
  `orders` longtext DEFAULT '{}',
  `history` longtext DEFAULT '{}'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
```

#### If you already have vms\_business table, but you don't have history column in your table, you have to import it using this query:

```sql
ALTER TABLE `vms_business` ADD COLUMN `history` longtext DEFAULT '{}';
```

</details>

***

## 3. Environment Requirements

{% stepper %}
{% step %}

### Gamebuild

Ensure your game build is at least 3095 for compatibility and optimal resource functionality.

Go to your **server.cfg** and then enter the following line, or if you already have lower game build, set this one.

```clike
sv_enforceGameBuild 3095
```

{% endstep %}
{% endstepper %}

***

## 4. Start Resource

To start a resource in your `server.cfg`, ensure that it begins after your framework has been initiated. For instance, if you are using a framework like `es_extended`, you should start resource after it, like so:

```python
start [core] # For example, here is your framework (esx/qb-core)

# Here you run your other resources like esx_policejob etc.

# VMS Resources
start vms_garagesv2
```

Ensure there are no syntax errors or incorrect paths in your `server.cfg`.


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.vames-store.com/assets/vms_garagesv2/installation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
