> For the complete documentation index, see [llms.txt](https://bros-development.gitbook.io/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bros-development.gitbook.io/documentation/free-scripts/editor/installation.md).

# 📦 Installation

### ⚙️ Installation Guide

Follow these steps to install **BrosDev Billboards Creator** properly on your FiveM server.

***

#### 📦 1. Download the Resource

Download the latest version from your **Bros Development Tebex store**.

After downloading, extract the folder and ensure it is not nested inside another directory.

***

#### 📁 2. Place in Resources Folder

Move the resource into your server `resources` directory:

```bash
resources/[standalone]/BrosDev-BillboardsCreator
```

> You can place it anywhere, but keep the folder name unchanged for proper script detection.

***

#### 🔧 3. Install Dependencies

Make sure required dependencies are running before the script:

```cfg
ensure ox_lib
```

Optional (only if using MySQL storage):

```cfg
ensure oxmysql
```

***

#### ⚙️ 4. Add to server.cfg

Add the resource start line:

```cfg
ensure BrosDev-BillboardsCreator
```

Make sure **ox\_lib is started before it**.

***

#### 🧠 5. Configure Permissions System

This version includes a **completely rebuilt permission system** designed for maximum flexibility and security.

You can control access using multiple layers:

* Framework-based permissions (ESX / QBCore / QBX)
* Ace permissions (group.admin style)
* Custom identifier whitelist (fully independent mode)
* Discord, Steam, Rockstar license, FiveM IDs
* Group-based access control per framework

***

#### 🔐 Advanced Permission Features (IMPORTANT UPDATE)

This system has been fully upgraded to support modern multi-layer security:

* ✔ Fully supports **license, license2, discord, steam, fivem, xbl, live identifiers**
* ✔ Add permanent whitelist access using **Config.AllowedIdentifiers**
* ✔ Configure ace-style access groups using **Config.AllowedGroups**
* ✔ Separate admin group control for **QBCore / QBX**
* ✔ Separate admin group control for **ESX**
* ✔ New **custom-only mode** (no framework dependency at all)
* ✔ AllowedIdentifiers always checked FIRST (highest priority bypass)
* ✔ Framework calls protected with safety wrappers to prevent crashes
* ✔ Improved QBX detection using native admin & permission exports
* ✔ Debug system shows exactly which identifier or group granted access

***

#### 🛡️ Permission Behavior Order (IMPORTANT)

When a player tries to access the system:

1. **AllowedIdentifiers check (ALWAYS FIRST)**\
   → If matched, access is instantly granted
2. **Ace Groups check**\
   → Checks configured admin groups
3. **Framework check (if enabled)**\
   → ESX / QBCore / QBX detection
4. **Fallback / deny access**

***

#### ⚙️ 6. Storage Setup

Choose your storage method:

* **JSON (Recommended for small/medium servers)**
  * No database required
  * Easy setup
* **MySQL (Recommended for large servers)**
  * Requires oxmysql
  * Better scalability

***

#### 🎮 7. Start the Resource

After setup is complete:

```bash
restart BrosDev-BillboardsCreator
```

Or fully restart the server for first-time setup.

***

#### 🔑 8. Grant Admin Access

To access the creator menu, you must have permission via one of the following:

* Ace permissions (recommended for servers using permissions system)
* Framework admin group (ESX / QBCore / QBX)
* AllowedIdentifiers (instant permanent access method)

Example Ace setup:

```cfg
add_principal identifier.license:YOUR_LICENSE_HERE group.admin
```

***

#### 🎬 9. Verify Installation In-Game

Once inside the server:

* Run:

```bash
/billboardcreator
```

* If the menu opens → installation is successful
* If not → check permissions and ensure ox\_lib is running

***

#### ⚠️ Common Issues

**Nothing opens when using command**

* Check permissions system
* Ensure your identifier is added or admin group is correct

**Billboards not loading**

* Ensure `ox_lib` is started first
* Check F8 console for errors

**Media not displaying**

* Verify supported formats (mp4, png, youtube, etc.)
* Ensure internet access for external links
