# Queues and priority for full FiveM servers

> How FiveM connection queues work: holding players in deferrals, showing position and wait time, priority by identifier or Discord role, reserved staff slots, handling reconnects and crashes, fairness rules, and what to check when the queue gets stuck.

Source: https://fam-tools.com/guides/fivem-connect-queue-priority · FAM Tools · published 2026-09-11 · updated 2026-09-11 · about 10 min

**Short answer.** A queue resource holds players in `playerConnecting` deferrals, sorts them by priority and join time, updates each one’s position every few seconds with `deferrals.update`, and admits the first player whenever the online count drops below `sv_maxclients`. Priority comes from identifiers, Discord roles or database flags. Give crashed players a short grace period, keep a slot or two for staff, and publish your priority rules.

## Key points

- Queues live in deferrals; the player waits on the connecting screen.
- Order by priority, then by join time.
- Update position every few seconds with `deferrals.update`.
- Grace period for crashed/disconnected players.
- Transparent priority rules prevent drama.

When a server is full at peak time, players either give up or wait. A queue turns “Server is full” into “You are 12th in line, about 4 minutes” — and a priority system lets staff, long-time members or supporters skip ahead. Done badly, it becomes the most-hated part of a server.

## How a queue works

1. Player connects → the queue calls `deferrals.defer()` and adds them to a list with their priority and join time.
2. A loop sorts the list and sends each player `deferrals.update('Position 5/23 – about 3 min')`.
3. When the number of players online is below `sv_maxclients`, the first entry gets `deferrals.done()`.
4. Players who cancel are removed when their deferral is dropped.

Deferral basics: [deferrals](https://fam-tools.com/guides/fivem-deferrals-connecting-cards).

## Where priority comes from

| Source | Example |
| --- | --- |
| Identifier list | Staff licences in a config file |
| Discord roles | A bot checks roles; each role maps to a priority value |
| Database | Priority stored per player, set by staff or purchases |
| Time-based | Players who crashed in the last few minutes get back in first |

> **Selling priority** — If you sell queue priority, follow the platform’s monetisation rules and keep it cosmetic in feel — a paid lane should never make the queue unusable for everyone else.

## Fairness rules that work

- Cap priority levels (for example 3) so the top tier cannot starve the rest.
- Show the reason: “Priority: Staff” or “Priority: Reconnect”.
- Give a 3–5 minute reconnect grace after a crash.
- Keep one or two slots for staff so moderation is always possible.

## When the queue gets stuck

| Symptom | Check |
| --- | --- |
| Queue never moves | Player count includes ghosts — compare with `GetNumPlayerIndices()` |
| Players join then drop instantly | Another resource refuses them later in the deferral chain |
| Positions jump around | Priority recalculated each loop from slow API calls — cache it |
| Queue works, players stuck on Connecting | A deferral path without `done` |

## Questions

### How do FiveM queues work?

A resource holds connecting players in deferrals, orders them by priority and join time, and admits one whenever a slot frees up.

### How do I give Discord roles queue priority?

Look up the player’s roles with a Discord bot during connecting and map each role to a priority value in the queue.

### Can I reserve slots for staff?

Yes — most queue resources can admit staff when the server is full or keep slots free for them.

### Why does my queue not move?

Usually the online count is wrong or another resource refuses players. Check the player count and the deferral chain.

## Related

- https://fam-tools.com/guides/fivem-deferrals-connecting-cards
- https://fam-tools.com/guides/fivem-adaptive-cards-deferrals
- https://fam-tools.com/guides/fivem-server-list-ranking-visibility
- https://fam-tools.com/guides/grow-fivem-server-players
