๐ŸŽŸ๏ธ FourTwenty Queue System - Advanced Priority Queue for ESX & QBCore

:tickets: FourTwenty Queue System - Advanced Priority Queue for ESX & QBCore

Introduction

Hey FiveM Community! :wave:
Weโ€™re FourTwenty, and weโ€™re excited to present our brand-new Advanced Queue System โ€“ made for serious servers looking to provide a fair, optimized, and priority-based entry system. Whether youโ€™re using ESX, QBCore, or a custom setup โ€“ this one fits all.

:link: Links

:rocket: Core Features

Real-Time Priority Handling :brain:

  • Dynamically adjust player queue positions based on roles like staff, donators, or custom ranks
  • Built-in priority levels with full database persistence
  • Easily modify or extend with your own levels

Fair & Transparent Queue System :balance_scale:

  • Realtime updates on player position and ETA
  • Clear, customizable messages for users
  • Guaranteed fairness without performance trade-offs

Performance Optimized :bulb:

  • Designed to run lean with minimal resource usage
  • Queue refresh interval and max player limit configurable

Inactivity Handling :mute:

  • Auto-kick inactive users after X minutes
  • Ensures the queue always keeps moving
  • Custom timeout duration

Framework & Database Support :electric_plug:

  • Works with ESX, QBCore, or standalone
  • oxmysql powered โ€“ persistent priority storage
  • Full command set to manage player priority

:gear: Configuration Example

config.lua

Config.MaxPlayers = 64
Config.RefreshTime = 5000
Config.AutoKickTime = 300
Config.ServerName = "Your Server Name"
Config.SavePriority = true

Priority Levels

Config.PriorityLevels = {
    ["owner"] = 100,
    ["admin"] = 75,
    ["moderator"] = 50,
    ["donator"] = 25,
    ["regular"] = 10,
    ["default"] = 0
}

Queue Messages

Config.Messages = {
    connecting = "Connecting to %s",
    position = "You are in position %d of %d in queue",
    estimatedTime = "Estimated time: %s",
    joining = "You are being connected to the server...",
    connected = "Connected to server!",
    kicked = "You were kicked from the queue due to inactivity",
    priority = "Priority: %s"
}

:closed_lock_with_key: Permissions & Commands

Commands

/addpriority [id] [level]
/removepriority [id]
/checkpriority [id]
/refreshqueue

Permissions

add_ace group.admin queue.manage allow
add_ace group.admin queue.refresh allow
add_ace group.mod queue.refresh allow

:jigsaw: Developer Exports

GetQueueInfo()

Returns queue state:

local info = exports['ft_queue']:GetQueueInfo()

SetQueueActive(state)

Enable/disable system:

exports['ft_queue']:SetQueueActive(true)

AddPlayerPriority(identifier, level, by)

exports['ft_queue']:AddPlayerPriority("steam:xyz", 75, "Console")

RemovePlayerPriority(identifier)

exports['ft_queue']:RemovePlayerPriority("steam:xyz")

:package: Installation

  1. Drop the folder into your resources directory
  2. Add ensure ft_queue before your framework
  3. Configure config.lua to fit your server
  4. Ensure oxmysql is installed
  5. Restart server

:link: Links


:hammer_and_wrench: Support & Updates

  • Actively maintained
  • Discord support
  • Feature suggestions welcome
  • MIT licensed โ€“ free to use & extend

Technical Details

Feature Value
Code is accessible Yes
Subscription-based No
Framework Support ESX, QBCore, Standalone
Database oxmysql
Performance 0.00ms idle / lightweight
Support Yes
License MIT
Version 1.0.0

:pushpin: Tags

queue priority esx qbcore framework realtime opensource optimized

Made with :green_heart: by FourTwentyDev


2 Likes