Skip to content

Re2team/connectqueue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ConnectQueue


Easy to use queue system for FiveM with:

  • Simple API
  • Priority System
  • Config
    • Ability for whitelist only
    • Require steam
    • Language options

Please report any bugs on the release thread Here or through GitHub.

How to install


  • Drop the folder inside your resources folder.
  • Add start connectqueue inside your server.cfg. - Preferrably at the top
  • Set convars to your liking.
  • Open connectqueue/server/sv_queue_config.lua and edit to your liking.
  • Renaming the resource may cause problems.

ConVars


set sv_debugqueue true # prints debug messages to console
set sv_displayqueue true # shows queue count in the server name '[count] server name'

How to use / Examples


To use the API add server_script "@connectqueue/connectqueue.lua" at the top of the __resource.lua file in question. I would also suggest adding dependency "connectqueue" to it aswell. You may now use any of the functions below, anywhere in that resource.

OnReady

This is called when the queue functions are ready to be used.

    Queue.OnReady(function() 
        print("HI")
    end)

All of the functions below must be called AFTER the queue is ready.

OnJoin

This is called when a player tries to join the server. Calling allow with no arguments will let them through. Calling allow with a string will prevent them from joining with the given message. allow must be called or the player will hang on connecting...

Queue.OnJoin(function(source, allow)
    allow("No, you can't join")
end)

AddPriority

Call this to add an identifier to the priority list. The integer is how much power they have over other users with priority. This function can take a table of ids or individually.

-- individual
Queue.AddPriority("STEAM_0:1:33459672", 100)
Queue.AddPriority("steam:110000103fd1bb1", 10)
Queue.AddPriority("ip:127.0.0.1", 25)

-- table
local prioritize = {
    ["STEAM_0:1:33459672"] = 100,
    ["steam:110000103fd1bb1"] = 10,
    ["ip:127.0.0.1"] = 25,
}
Queue.AddPriority(prioritize)

RemovePriority

Removes priority from a user.

Queue.RemovePriority("STEAM_0:1:33459672")

IsReady

Will return whether or not the queue's exports are ready to be called.

print(Queue.IsReady())

Other Queue Functions

You can call every queue function within sh_queue.lua.

local ids = Queue.Exports:GetIds(src)

-- sets the player to position 1 in queue
Queue.Exports:SetPos(ids, 1)
-- returns whether or not the player has any priority
Queue.Exports:IsPriority(ids)
--- returns size of queue
Queue.Exports:GetSize()
-- plus many more...

Discord Whitelist And Role Priority

To Enable Discord Whitelist You need to Update server -> sv_queue_config.lua line 71 To 85

Config.enableDiscordWhitelist = false -- For Enable Whitelist System
Config.discordServerGuild = "" -- Discord Server ID to check it if player is in the server
Config.discordBotToken = ""  -- Discord Token Bot - You Can Create at https://discord.com/developers/applications


Config.Roles = {
	member = {
		roleID = "", --Role ID
		point = 15,  -- any bigger point can push player on the first row of queue
	},
    vip = {
		roleID = "", --Role ID
		point = 20,  -- any bigger point can push player on the first row of queue
	},

}