[Release][C#] FiveM Queue

FiveM Queue

A Queue system for FiveM FX Servers

05/17/2019 - Release Updated to resolve an issue with deferred players passing through playerDropped unexpectedly. This is a recommended update for any server using the resource. Thanks to Tapsu_Z and Deluix for discovering and reporting that players were using this exploit.

This resource intends to solve some problems experienced with other queue resources that are available, as well as add additional features that have been requested for queue resources. Compatibility with various frameworks such as vrp, esx, and others have not been tested so please do let me know if you run into any of these so I can document what needs to change in what resource for proper integration.

Installation Instructions

  • Download the latest release here
  • Unzip and copy the fivemqueue folder into your FX Server resources folder
  • edit the configuration.cfg to add identifier(s) for your Queue Admin(s) and change other config options that are hopefully explained clearly enough in file above each option
  • start fivemqueue in your server.cfg like any other resource
  • View source code and readme for more info on github here
  • Enjoy and please report any bugs here

Features

  • Add or remove queue priority to players while they are online or offline.
    ( 1 - 100 where 1 has the most priority and 100 the least )
  • Add or remove one of three reserved slot types to players while they are online or offline
  • Configurable number of reserved slots by type
  • Add or remove Permanent Banning
  • Kick active players from session
  • Optional white list only mode
  • Configurable reconnect grace period and loading screen time limit
  • Queue admin commands (In-Game, RCON, or console)
  • Queue admin UI panel in game to configure queue and session players
  • Queue admins are permissioned in configuration.cfg by steam or license
  • Customization options and permissions included in configuration.cfg (Defaults included)

Requirements

  • Steam and License are required for features and persistence
  • Non Steam version is planned for later release due to frequent requests

Screenshots

Queue Deferral Messages

In-Game Queue Admin Panel

RCON and Console Commands

Commands
Steam and License in examples below were randomly generated, any association with real accounts was
coincidental and not intended.

Command List
Command Paramaters Explanation
/q_session None Opens the queue admin panel displaying all players in session and providing options to configure reserved slot types, priority, and kick or ban. If run from RCON or console will display the session information in console
/exitgame None Gives players a way to give up their reconnect grace time and exit the game when finished playing
/q_addpriority Steam or License or Handle Adds priority to a player
Also available via in game UI
Example: /q_addpriority 11000050888sg23
Example: /q_addpriority 833g50qqa4e620arq2a937312rt9b5g050d2ew54
Example: /q_addpriority 66536
Example: /q_addpriority 1
/q_removepriority Steam or License or Handle Removes priority from a player
Also available via in game UI
Example: /q_removepriority 11000050888sg23
Example: /q_removepriority 833g50qqa4e620arq2a937312rt9b5g050d2ew54
Example: /q_removepriority 66536
Example: /q_removepriority 1
/q_addreserve Steam or License or Handle and 1 or 2 or 3 Add or change reserved slot type
Also available via in game UI
Example: /q_addreserve 11000050888sg23 1
Example: /q_addreserve 833g50qqa4e620arq2a937312rt9b5g050d2ew54 3
Example: /q_addreserve 66536 2
Example: /q_addreserve 1 1
/q_removereserve Steam or License or Handle Removes any reserved slot type
Also available via in game UI
Example: /q_removereserve 11000050888sg23
Example: /q_removereserve 833g50qqa4e620arq2a937312rt9b5g050d2ew54
Example: /q_removereserve 66536
Example: /q_removereserve 1
/q_offlinereserve Steam or License and 1 or 2 or 3 Assign an offline player to a reserve type. This is temporary until player joins at which time they are added to persistentance or until the server is restarted, whichever occurs first
Example: /q_offlinereserve 11000050888sg23 1
Example: /q_offlinereserve 833g50qqa4e620arq2a937312rt9b5g050d2ew54 3
/q_addban Steam or License or Handle Bans a player permanently until unbanned
Also available via in game UI
Example: /q_addban 11000050888sg23
Example: /q_addban 833g50qqa4e620arq2a937312rt9b5g050d2ew54
Example: /q_addban 66536
Example: /q_addban 1
/q_removeban Steam or License Unbans a player
Example: /q_removeban 11000050888sg23
Example: /q_removeban 833g50qqa4e620arq2a937312rt9b5g050d2ew54
/q_restart None Restarts the queue processing if needed but not recommended
Check for errors in your console before using this as they are included to help with debugging

Huge thanks to @gEE, @Skrubby, and @Smish, for your testing and feedback that helped me fine tune the queue

02/27/2019 - Release Updated to resolve issues and requests from GitHub
Existing users can copy and paste the JSON folder into the new release folder to retain reserve, priority, and ban user configurations

Update Notes - 02/27/209
  • Remove 32 player limit for onesync_enabled servers
  • Remove q_restart command, no longer necessary since deferral freezing is no longer an issue
  • Tweak logic to no longer require players to cancel and rejoin queue if their reserved or priority setting is changed while they are in queue
  • Provide ability to change the resource name and folder path allowing it to be placed in a [foldername] type folder
  • Start hardcap resource if queue resource is stopped
  • Change message for ‘Timed Out’ to ‘Exceeded server owners maximum loading time threshold’
  • Added optional feature to restrict symbols in steam/user names if server owner wants to use it
  • Only update host name if host name is already set, should resolve ‘default FXServer’ though setting hostname in server.cfg before starting this resource also resolved that issue
  • Optional configuration to remove queue state change messages in console, now disabled by default
  • Added /q_count command from console or in game
  • Added /q_changemax command to dynamically adjust the q_max_session_slots while server is running
  • Added /q_steamhexfromprofile command which accepts a steam community profile id number and will return the steam hex that can be used with other commands such as /q_addpriority
  • Added /q_reloadconfig command allowing changes to __configuration.cfg file without restarting server
  • Changed default loading time to 4 minutes to reduce instances of time out on servers with hefty asset download times (owner configurable)
  • Some other misc tweaks for both user and server performance improvements
32 Likes

Very nice, going to use this on my fivem server! :smiley:

cool thanks


+1

Judging by the description it looks great AF.

There is definitely. A version which doesn’t require steam but does use it if it’s present would be neat. :wink:

I was testing it, meanwhile turning the server on I got an error " failed to load Server_Queue.net.dll"

Make sure there isn’t a fivemqueue folder inside of the fivemqueue folder.

It should look like this when you open resources\fivemqueue:

image

2 Likes

done, thank you sir. gonna test it. I’ll post any bugs that I will find to help you out improve your script.

No problem. I went ahead and updated the release so that the .rar file does not include the fivemqueue folder in it. Hopefully this makes it easier for others that would run into the same issue.

Looking sexy ma man.

Awesome script and perfecting timing - having a community meeting now and was disappointed that the other queue didn’t work. Thank you god <3

Awesome Release
Hugeeee thumps up!

But how mutch Memory does this runs up on?
I just looked at it, and its like going from 1.05 MIB to 5.37 MIB+ and it just go higher and higher nearly every 3 seconds :frowning:

The memory cycles up and resets when garbage collection happens, same as any other resource. I wouldn’t worry about it. I am interested to hear how it performs on servers that have a lot of queued players though if any decide to use it. I have already identified a few areas that can be optimized but I really just wanted to get it out there and tested properly. There’s not much sense optimizing something that fails to perform as expected in the first place, right? :slight_smile:

1 Like

Best Release!!
but I have this problem :frowning:
Imgur

Looks amazing! (20Char)

We usually get around 30 players in our current queue, I will test it tonight and report back :wink:

1 Like

You should probably delete the fivemqueue folder and redownload the release, extract it and copy the fivemqueue folder back into your server resources folder. Might be same issue as above where you have a fivemqueue folder within the fivemqueue folder. If that doesn’t work I would suggest making sure your server is updated with at least version 757, I think that’s where I started writing it but I’m on 785 today.

Alright:) Thank you for the answare! <3

Do I need to disable hardcap?

Question

Judging by my stupidity… Im assuming to whitelist (people) I need to do it in game via /q_addreserve ?

Great, thanks @Scott_UK, looking forward to your stress test feedback!

1 Like