Skip to main content
Everything lives in nexdev_queue/config.lua. It’s split into five sections:
  1. Config.Server — bot token, IDs, timings
  2. Config.Interface — branding, theme, button row
  3. Config.Tiers — Discord role → tier label
  4. Config.Whitelist — optional role-gated access
  5. Config.Permissions — bypass roles + priority points
Restart nexdev_queue after editing (restart nexdev_queue in the console) so changes take effect.

Config.Server — runtime

You do not set the player cap here. NEX Queue reads sv_maxclients directly from your server.cfg. ReservedSlots only carves slots off the top of that number for staff bypass.

Config.Interface — branding

The card the player sees while they wait.

Text

Images

Use a CDN or r2.fivemanage.com — Discord-hosted images may rate-limit.

Theme

One of: classic, banner, factset, boardingpass, compactbar, minimal, centered, cards. See Themes for previews.

Buttons

The action-row at the bottom of every theme. Two shapes:
You can have up to 3. Use Buttons = {} to hide them.

Config.Tiers — Discord role → tier label

Sets what label shows under the player’s name (Diamond, Gold, etc.). Order matters — the first tier whose role the player holds wins. Put your highest tier on top.
This is display only — it doesn’t affect ordering. Ordering comes from Config.Permissions.PriorityLevels below.

Config.Whitelist

Flip Enabled = true to refuse anyone who doesn’t hold one of Roles. Bypass roles still get in. See Whitelist & priority for details.

Config.Permissions

  • BypassRoles — anyone in any of these roles skips the queue entirely (and the whitelist).
  • PriorityLevelsroleId → points. A player’s effective priority is the sum of points across all matching roles they hold. Higher = served first.
Full breakdown in Whitelist & priority.

Persistence — how the queue survives restarts

The queue is held in memory and a snapshot is written to KVP every SaveFrequency ms. On boot, snapshots older than DataExpiry seconds are thrown away, so a player who disconnected hours ago won’t magically reappear at the front. You don’t manage any files — there’s nothing to back up.

Restart vs. hot-reload

Runtime exports

You can read queue state from your other scripts. All exports are namespaced to nexdev_queue. Useful for things like an in-game /online command, a dashboard widget, or wiring tier info into your hud.