> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nexdev.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Installation

> NEX Queue is a server-only, drag-and-drop resource. There is no client UI to build and no database to migrate.

NEX Queue is a **server-only, drag-and-drop** resource. There is no client UI to build and no database to migrate.

## Requirements

* FiveM server (any artifact build from the last 12 months)
* `lua54 'yes'` support (already declared in the resource — your server just needs to allow it)
* A **Discord bot** you control, invited to your guild
* Discord **Developer Mode** turned on in your own Discord client (so you can copy IDs)

There is **no framework requirement**. NEX Queue works on QBCore, Qbox, ESX, Ox Core, or a bare-bones FiveM server — it runs entirely server-side and does not touch your framework.

## Step 1 — Drop the resource in

1. Unzip the resource so the folder is named exactly `nex_queue`.
2. Place it in your `resources` directory. Most people use:
   ```
   resources/[nex]/nex_queue/
   ```
3. Make sure the folder name stays `nex_queue` — exports are namespaced to it.

## Step 2 — Add it to server.cfg

Add this **after** anything you want it to load alongside (it has no hard dependencies, but loading it late means console output is easier to read):

```
ensure nex_queue
```

<Warning>
  Do **not** also start a second queue resource (e.g. `connectqueue`, `qb-queue`, etc.). Two queues fighting over the same connection deferral will kick everyone.
</Warning>

## Step 3 — Set up your Discord bot

This is the bit you can't skip — the queue uses Discord roles to decide priority, tier, whitelist, and bypass. Walk through the full bot setup here:

➡️ **[Discord setup](/nex_queue/discord-setup)**

You'll come back with a bot **token**, your **guild (server) ID**, and (optionally) a **channel ID** for the live waitlist embed.

## Step 4 — Fill in `config.lua`

Open `nex_queue/config.lua` and paste in the IDs you collected:

| Field                                                 | What goes here                                       |
| ----------------------------------------------------- | ---------------------------------------------------- |
| `Config.Server.DiscordServerID`                       | Your Discord **guild** ID                            |
| `Config.Server.DiscordBotToken`                       | Your bot's **token**                                 |
| `Config.Server.LiveFeedChannelID`                     | *(optional)* channel ID for the live waitlist embed  |
| `Config.Whitelist.Enabled` / `Config.Whitelist.Roles` | *(optional)* lock the server to specific roles       |
| `Config.Permissions.BypassRoles`                      | Staff/owner role IDs that skip the queue             |
| `Config.Permissions.PriorityLevels`                   | `["roleId"] = points` — controls queue ordering      |
| `Config.Tiers`                                        | Maps Discord roles to tier labels (Diamond, Gold, …) |

The full walkthrough is in [Configuration](/nex_queue/configuration).

## Step 5 — Restart

Restart the server (or `refresh; ensure nex_queue` from the console). On boot you should see something like:

```
[nex_queue] Boot OK — guild "Your Server" loaded, theme: compactbar
```

If you see errors instead, see [Troubleshooting](/nex_queue/troubleshooting).

## Updating

1. Replace the resource files with the new version.
2. **Keep your `config.lua`** — copy your existing one over the new one (or merge any new keys in).
3. Restart the server.

There is no database to migrate. The in-memory queue snapshot is rebuilt on boot.

<Info>
  `config.lua` is `escrow_ignore`d, so it's always editable and is preserved when you swap the resource — your token and IDs stay where you put them.
</Info>
