Scripts/resources/[standalone]/connectqueue/README.md

95 lines
2.7 KiB
Markdown
Raw Permalink Normal View History

2024-12-29 20:02:20 +00:00
# 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](https://forum.fivem.net/t/alpha-connectqueue-a-server-queue-system-fxs/22228) or through [GitHub](https://github.com/Nick78111/ConnectQueue/issues).**
## 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.
```Lua
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...
```Lua
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.
```Lua
-- 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.
```Lua
Queue.RemovePriority("STEAM_0:1:33459672")
```
## IsReady
Will return whether or not the queue's exports are ready to be called.
```Lua
print(Queue.IsReady())
```
## Other Queue Functions
You can call every queue function within sh_queue.lua.
```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...
```