Skip to main content
MonetizationCluster guide · 9 min read

FiveM Priority Queue Setup: VIP Done Right

A priority queue is one of the safest perks you can sell in FiveM. Here is how to build one with connect deferrals, grant it from a Tebex package by license identifier, and balance slots so paying members skip the line without locking normal players out.

FiveM Priority Queue Setup: VIP Done Right
Quick answer

A FiveM priority queue moves paying members ahead of others in the connection line when the server is full, without giving any in-game advantage. You build it with a queue resource that hooks the connecting deferrals event, assign each supporter a priority weight stored against their license or Cfx identifier, and grant that weight from a Tebex package using the player identifier. Because skipping a line is convenience and not power, Cfx treats priority queue as an acceptable perk to sell.

On this page

What a priority queue actually is

When your FiveM server hits its sv_maxClients limit, new players cannot join. They sit in a connection queue and wait for a slot to free up. By default that queue is first come, first served. A priority queue changes the order: it lets certain players, usually your paying supporters, jump ahead of the regular line so they wait less or not at all.

The critical thing to understand is what a priority queue is not. It does not give the player more money, better cars, faster vehicles, extra health, or any edge once they are in the game. It only affects how long they wait at the door. That distinction is the entire reason this perk is safe to sell, and we will come back to why Cfx cares about it.

A queue only matters on a server that actually fills up. If you have 64 slots and rarely see 30 players, nobody waits and a priority queue does nothing. The perk has real value precisely on busy servers, which is also where the temptation to oversell it is strongest.

It also helps to separate two things players often confuse: a queue and a slot reservation. A reservation holds a specific seat open so a named player always has somewhere to land. A priority queue does not reserve anything; it only reorders the waiting line. Most servers want the queue model for paid perks because it scales with demand, and they keep a small handful of true reservations for staff. Mixing the two without thinking is how operators accidentally lock out their own community.

The mechanism: connect deferrals

The technical foundation of every FiveM queue is the playerConnecting event combined with deferrals. When a player tries to connect, the server fires playerConnecting before they finish joining. Deferrals let your resource pause that connection, show the player a status message, and decide when, or whether, to let them through.

A queue resource works like this. It listens for playerConnecting, reads the connecting player's identifiers, and instead of letting them straight in it calls deferrals.defer() to take control. It then places the player in an ordered list. Each loop it updates the player with a message like "You are position 7 of 23 in queue" using deferrals.update(). When a real slot opens and the player reaches the front, it calls deferrals.done() to release them into the server.

Priority is just sorting. Every player in the list has a weight. A supporter with a higher weight gets inserted ahead of players with lower weight, so they climb the list faster. A regular player has weight zero. This is the whole trick: the queue is a sorted list, and priority is a number that decides where you land in it.

Two details make a queue feel good rather than broken. The first is a grace period. If a connected player crashes or has a brief network drop, a good queue holds their place for a short window so they reconnect straight back in rather than starting at the back. The second is honest messaging. Because the connection is paused by deferrals, the player sees only what you send them. Without a clear position and total, a paused connection looks identical to a dead server, and impatient players leave. A queue that tells you "position 4 of 19, estimated wait 2 minutes" keeps people calm and in line.

Queue resources you can use

You do not have to write the deferrals logic yourself, though understanding it helps you debug.

txAdmin ships with FiveM and includes a built-in player queue. It is the simplest starting point and handles the connection deferral and the join messages for you. Its priority handling is basic, so many servers outgrow it once they want fine-grained tiers.

Open source queue scripts such as the long-standing connectqueue resource give you a configurable, code-level queue. You define priority by identifier in a config table or through exports, set queue messages, and control grace periods for reconnects. Because it is open source you can read exactly how it sorts and adapt it.

Paid queue scripts on Tebex marketplaces and similar stores add convenience: web dashboards, database-backed priority, automatic expiry, and tier management without editing Lua. These are worth it if you sell several tiers and do not want to maintain the plumbing.

Whatever you pick, the contract is the same. The resource needs a way to look up a connecting player's priority weight, and you need a way to set that weight when someone buys.

Granting priority from a Tebex package

Tebex is the standard, Cfx-sanctioned way to take payments for FiveM servers. The flow for selling priority queue is:

  1. Create a package in Tebex, for example "VIP Priority" priced monthly.
  2. Attach a command or a webstore variable that captures the buyer's identifier. Tebex can require the buyer to enter their in-game ID or pull it from a linked account, and it can run a server command on purchase through the Tebex plugin.
  3. On purchase, write that player's priority weight and tier into your store: a database row, a JSON file, or the queue script's own table, keyed by a stable identifier.

The identifier matters. FiveM gives you several: license:, discord:, steam:, fivem:, and others. For priority queue, the FiveM license identifier (license: or the newer license2:) is the most reliable because it ties to the player's Rockstar/Cfx account and does not require Steam or Discord to be running. Store the supporter's license, and in your playerConnecting handler match the connecting player's license against your priority list.

A clean grant looks like: buyer pays on Tebex, Tebex runs setpriority license:xxxxx 25 30 through the server, the queue script saves weight 25 with a 30 day expiry against that license. Next time the player connects, the queue reads weight 25 and slots them near the front.

Two operational habits make this robust. First, make grants idempotent and renewable. If a member rebuys or renews, the command should refresh their expiry rather than stack a second entry, so you never end up with duplicate or conflicting weights for one license. Second, plan for revokes. Tebex can fire a command on chargeback, refund, or subscription cancellation just as it does on purchase. Wire that to remove or zero the player's priority. If you only ever grant and never revoke, refunded buyers keep a perk they no longer pay for, and over months your priority list fills with people who should not be on it.

Why Cfx is fine with selling priority

The Cfx.re platform agreement is strict about monetization. The core rule is that you may sell things that do not affect gameplay or grant an unfair advantage. You cannot sell in-game money, items, weapons, levels, or anything that changes a player's power or progression relative to others.

A priority queue passes this test cleanly. It does not touch gameplay at all. Two players, one paying and one not, who are both standing in the same spot in the game are completely equal. The only difference happened before either of them loaded in: one waited less to connect. Skipping a line is a convenience, like priority boarding on a flight. The seat you get is the same.

This is why priority queue, alongside cosmetic-only items, custom Discord roles, and supporter tags, is one of the few perks experienced FiveM operators recommend without hesitation. It generates recurring revenue, it is genuinely useful on a busy server, and it will not get your server in trouble for pay to win.

Balancing slots so you do not gate normal players

Here is the failure mode that turns a fair perk into a broken one. If you sell so many priority slots that the queue is always full of supporters, regular players never get in. At that point you have effectively made your server pay to play, and the experience for non-paying players, the people who make your server feel alive, collapses.

The fix is to cap priority as a fraction of capacity, not an open tap. Treat priority slots as a budget. On a 64 slot server you might decide priority members should never occupy more than, say, a quarter to a third of the live population during a rush, so that there is always meaningful throughput for the regular line.

In practice this means two levers. First, limit how many priority memberships you sell relative to your real peak concurrent players, not your max slots, because not everyone is online at once. Second, use tiered weights so a small number of top supporters jump highest while most priority members get a modest bump rather than a guaranteed instant join. The goal is that a supporter reliably waits less, while a regular player on a busy night still gets in within a reasonable time. If your non-paying players are quitting because they can never connect, you have oversold, full stop.

Checklist
  • Confirm your server actually fills to sv_maxClients often enough that a queue has value
  • Choose a queue resource: txAdmin built-in, connectqueue, or a paid script
  • Verify the resource hooks playerConnecting with deferrals and shows position updates
  • Decide your identifier: use the FiveM license identifier for reliable matching
  • Create a Tebex package for priority and set the price and billing cycle
  • Wire the purchase to capture the buyer identifier and run a grant command
  • Store priority weight, tier, and an expiry date keyed by identifier
  • Add automatic expiry so lapsed supporters lose priority
  • Set tiered weights so only a few top supporters jump highest
  • Cap total priority against peak concurrent players, not max slots
  • Test by filling the server and confirming a supporter beats a regular player in line
  • Monitor whether non-paying players still connect on busy nights
Tier Priority weight Example monthly price Behavior on a full 64-slot server
Regular (no purchase) 0 Free Joins in normal first-come order
Supporter 10 5 USD Modest bump, waits noticeably less
VIP 25 10 USD Jumps near the front of the line
Elite 50 20 USD Effectively skips the queue when slots free up
Staff / reserved 100+ Not sold Reserved access, never counted against the sold budget
Common mistakes
  1. Selling too many priority slots. If supporters fill the queue, regular players never connect and your server becomes pay to play. Fix: cap total priority against peak concurrent players, not max slots, and use tiered weights so most members get a modest bump.
  2. No expiry on priority. Granting priority forever means a one-time buyer keeps the perk indefinitely and your recurring revenue and your slot budget both erode. Fix: store an expiry date and have the queue ignore weights past it.
  3. Identifier mismatch. Storing priority against a Steam or Discord ID that the player is not running at connect time means the queue never matches them and they get no perk despite paying. Fix: key priority on the FiveM license identifier, which is present for every connecting player.
  4. Treating max slots as the priority budget. Sizing priority to sv_maxClients ignores that not everyone is online at once, so you oversell relative to real peak load. Fix: budget against actual peak concurrent players.
  5. No position feedback in the queue. A queue with no deferrals.update messages looks like a frozen connection, so players assume the server is down and leave. Fix: send a clear position and total count each loop.
  6. Granting in-game advantages alongside the queue. Bundling money, items, or stats into the VIP package breaks the Cfx platform agreement even though the queue itself is fine. Fix: keep paid perks to convenience and cosmetics only.
The Quasar take

Priority queue is the cleanest recurring revenue in FiveM because it is honest: the buyer waits less, nobody gets stronger. The operators who get burned are the ones who quietly oversell it until the free players who built the community can no longer get in. Sell priority as a courtesy, cap it hard against real peak load, and it funds your server for years without a single pay-to-win complaint.

Is selling a priority queue allowed on FiveM?
Yes. The Cfx.re platform agreement forbids selling anything that affects gameplay or grants an unfair advantage, but a priority queue only changes how long a player waits to connect. It gives no in-game power, so it is one of the safest perks to sell, alongside cosmetics and Discord roles.
How does a FiveM priority queue work technically?
A queue resource hooks the playerConnecting event and uses deferrals to pause the connection. It places each player in a sorted list ordered by a priority weight, sends position updates with deferrals.update, and releases the front player with deferrals.done when a slot opens. Higher weight means a position closer to the front.
Which identifier should I use to grant priority?
Use the FiveM license identifier (license or license2). It is tied to the player's Cfx account and is present for every connection without needing Steam or Discord running, which makes matching reliable. Storing priority against a Steam or Discord ID often fails to match at connect time.
How do I grant priority after a Tebex purchase?
Create a Tebex package, capture the buyer's identifier on purchase, and run a server command through the Tebex plugin that writes their priority weight, tier, and expiry into your queue store keyed by license. The next time they connect, the queue reads that weight and slots them ahead.
How many priority slots should I sell?
Budget priority against your real peak concurrent players, not your max slot count, since not everyone is online at once. A common approach is to keep priority members below roughly a quarter to a third of the live population during a rush so regular players still connect in reasonable time.
Can I use txAdmin for a priority queue?
Yes. txAdmin ships with FiveM and includes a built-in player queue that handles the connection deferral and join messages. Its priority handling is basic, so servers that want multiple tiers or database-backed expiry often move to connectqueue or a paid queue script.

Ready for the next step?

Stop guessing. Get a concrete plan for your server and move with confidence.

Written by
Kishi · FiveM Coach
Part of the FiveM Coach by Quasar team. We help server owners launch, fix, grow, and monetize stable RP cities.