A fully-featured, comprehensive queue system, designed to power community streams.
For easy-to-read setup instructions, click here.
| ||string||A valid queue action. Supported actions include |
| ||string||A 16 character string. This must be kept secret. It is strongly recommended to use the |
| ||string||The name of the user. In the case of the |
| ||string||If |
Optional Query String Parameters
| ||string||A context-dependent query to make to the queue action. Should be URL-encoded.|
| ||boolean||Can be specified as |
| ||integer||The maximum number of characters allowed for the |
Fully inactive queues may be removed after three months, but interacting with the queue in any way will reset this period. If a queue is removed, a new token does not need to regenerated, and the same, previous token can be re-used. The queue ID will be regenerated, however.
This will walk you through the process of setting up the queue system for your channel. Currently, the easiest bot to use with the system is StreamElements.
Visit the setup page to generate the required links.
Visit your commands dashboard and click + New Command. Name the command appropriately, ensuring it does not conflict with any existing commands. Although recommended command names are given, any word can be used. Copy and paste the corresponding customapi link into the response field.
KEEP IN MIND
You may add a usage cost to the command, but keep in mind that the cost is associated with the command's usage and bears no relevance to the queue itself. For example, you may place a cost of 25 points on the !join command, so that when a user uses it, they spend 25 points.
However, if they were to then use the command again, they would spend another 25 points and the response would be 'User is already position #1 in the queue!'. To prevent users incurring additional costs, it would be recommended to place a user cooldown on the command and instruct users to check their position in the queue before attempting to join, in the event they have already joined. Placing a cooldown on the !position command would then also be necessary.
Set the appropriate permission level of the command. Ensure that the moderator permission is set for the !queue command. This command is responsible for managing the queue. Save the command and repeat the step above for each of the other commands.
Occasionally, you may find yourself using one queue sub-option more than others. For example,
!queue next. You can create an alias command and reduce this to simply
!next. To do this, follow the format below (for convenience, the setup page has an alias command selector, but make sure to replace the token with your own).
OPTION with the queue sub-option, for example,
next and replace
TOKEN as necessary. Ensure that the alias command's permission is set to moderator!
The queue is now fully set up and ready to be used. Below is a closer look at each of the queue actions and available options.
There are six core queue actions:
queue. Of the six, only
queue requires moderator permissions. In the example below, each of the commands will assume the original command name is used.
Allows a user to join a queue, if it is currently open.
| ||thefyrewire has joined the queue! Position: #1||If multi-join is enabled, the current highest position that the user holds will also be given.|
| ||thefyrewire has joined the queue! Position: #1||This message is recalled when the user is selected later. The optional parameter |
| ||thefyrewire has joined the queue with priority! Position: #1||The optional parameter |
Allows a user to leave a queue, even if it is currently closed. If the user has joined multiple times in the same queue, all of their positions will be removed. If the user only wishes to remove their highest position and leave their other places intact, they should ask a moderator to use the
| ||thefyrewire has left the queue!|
Allows a user to see their position in the queue, find another user's position, see the next N users in the queue or which user is in a specific position. If the user has joined multiple times in the same queue, the number of other positions they hold in the queue is also given.
| ||thefyrewire is in position #1!|
| ||AndrewOscarDelta is in position #2!|
| ||Next 3 users: #1. thefyrewire, #2. AndrewOscarDelta, #3. Albastter|
| ||AsahiZuru is in position #5!|
Returns information about the queue. If multi-join is enabled, the number of permitted joins per user is also shown.
| ||Current queue: default [OPEN] - Users currently in queue: 1|
Allows a user to leave a queue, even if it is currently closed.
| ||https://thefyrewire.com/pog/q/thefyrewire||Associates the queue with the Queue Viewer webpage. This command must be used at least once to generate the queue page.|
| ||Queues: default||Returns a list of the queues in chat.|
A variety of options allows the broadcaster and moderators to manage the queue:
id. Each of the options here can be made into alias commands for convenience.
Opens the queue and allows users to join. Multi-joins can be enabled to allow users to join multiple times.
| ||The queue has been opened!||Returns an error if the queue is already opened.|
| ||The queue has been opened! Each user can join up to 5 times.||If |
| ||The queue has been opened! Each user can join up to 10 times.||If a number is specified after |
Closes the queue, but users are still able to leave. Multi-joins will be reset to false. If the queue is re-opened, the multi-join amount will need to be specified again. Closing the queue only prevents users from joining. All other queue options remain functional.
| ||The queue has been closed!|
Clears the current queue. If the queue is currently open, it will remain open.
| ||The queue has been cleared!|
Creates a new, custom-named queue. The active queue will be switched to this new queue. A maximum of 5 custom queues can be created. The queue name has a limit of 50 characters. To later modify the capitalisation of the queue name, use the rename option.
| ||My awesome queue has been created. Current queue switched.|
Deletes a custom-named queue. This will remove all users in that queue and the active queue will be switched back to the default queue. The default queue cannot be removed. The query is not case-sensitive.
| ||My awesome queue has been deleted!|
Renames the current queue. Can be used to change the capitalisation of the queue name or can be used to rename the queue to something entirely different. The default queue cannot be renamed. The queue name has a limit of 50 characters.
| ||My awesome queue has been renamed to MY AWESOME QUEUE.|
Sets the active queue. By default, the queue that is switched to will be closed. The query is not case-sensitive.
| ||The active queue has been switched to MY AWESOME QUEUE!|
Selects the user(s) from the queue. The selected users are subsequently removed from the queue. If the user has attached a message, it will also be shown when they are selected.
This may be especially useful as an independent alias command.
| ||Selected next: thefyrewire||Returns the next user in the queue.|
| ||Selected next: #1. thefyrewire, #2. Cazzler, #3. Scribbleh||Returns the next 3 users in the queue.|
| ||Selected random: #3. Scribbleh||Returns a random user from the queue.|
| ||Selected next: #2. Cazzler, #3. Scribbleh, #1. thefyrewire||Returns 3 random users from the queue.|
| ||Selected next priority: thefyrewire||Returns the next priority user in the queue.|
| ||Selected next priority: #1. thefyrewire, #2. Cazzler, #3. Scribbleh||Returns the next 3 priority users from the priority stack.|
| ||Selected random priority: #2. Cazzler||Returns a random priority user from the priority stack.|
| ||Selected next priority: #1. thefyrewire, #3. Scribbleh, #2. Cazzler||Returns 3 random priority users from the priority stack.|
priority for selection, an error will be returned if there aren't enough priority users. Useful for indicating when the end of the priority stack has been reached. For instance, if there are two subscribers at the top of the queue, doing
!queue next 3 priority will return an error. The broadcaster could then attempt to find another subscriber/VIP to join the stack before asking other regular viewers.
If the last selected user was sequential, then they may be stashed. This stores the user back at the top of the queue and automatically returns the next user.
This may be useful where the newly selected user may be AFK or otherwise unresponsive. They can then be safely and temporarily stashed at the top of the queue while another user is selected.
| ||Stashed thefyrewire and selected next: AndrewOscarDelta|
This option is experimental and its functionality may change or break without notice.
Adds a user to the active queue, even if it's currently closed. The user will be inserted at the back of the queue. An optional position can be specified to add them at a specific place.
| ||thefyrewire was added to the queue! Position: #5|
| ||AndrewOscarDelta was added to the queue! Position: #1|
Removes a user (or their highest position) from the queue. If the user has other positions in the queue, the number of remaining positions will also be given.
| ||#1. thefyrewire has been removed from the queue.|
Purges all of a user's positions from the active queue.
| ||thefyrewire has been purged from the queue! (Positions #1, #2)|
Purges all of a user's positions from all queues. The equivalent of a Thanos snap.
| ||thefyrewire has been purged from all queues: default (#1, #2), my awesome queue (#1)|
Boosts a user to the top of the queue. Does not work for users who have joined multiple times. The promoted user will take precedence over priority users.
| ||thefyrewire has been promoted to the front of the queue!|
Sends a user to the back of the queue. Does not work for users who have joined multiple times.
| ||thefyrewire has been demoted to the back of the queue!|
Returns the queue ID.
| ||Queue ID:|