JopeBot is a desktop (Windows, Linux, Mac) twitch chat manager that aims to organize requests based on viewer interaction levels. It is designed to integrate with Twitch channels, and use commands from the channel chat room to function.
It uses the information you must provide in the ./config.json file to connect to your twitch and streamlabs accounts to provide a seamless, self-administering request manager.
- Providing your Streamlabs "socket API code" will allow the application to utilize your donations in real time to manage the setlist
- API SETTINGS / API TOKENS / Your API Access Token
- Tells the bot where to connect
- Tells the bot who to give admin privileges to
- Must be true or false
- If True, will only show bot messages on your desktop
- If False, will output messages to twitch channel chat room
- The value of Donations/Subs/Cheers used to auto-prioritize requests
- The value of Donations/Subs/Cheers used to move requests to the very front
- The Twitch username for the bot to use (Create a new twitch account, do not use your primary channel)
- The oauth token generated for the bot twitch username, which can be generated HERE
- Whether mods can use admin commands. If false, only the streamer will have the ability to run admin commands.
- If set to true, when a request is activated a voice will announce the song
- If set to true, and "Now Playing Voice" is enabled, will introduce requests with quotes from Tenacious D episodes (vulgar)
- Will skip null requests, playing the next request with a valid message
- Allows you to set a grace period between priority requests.
- Example --> Setting to 0 days allows users unlimited priority requests.
- Example --> Setting to 7 days makes users wait 1 week between priority requests.
- Number of tokens a priority request costs
- Number of tokens a VIP request costs
- What your tokens will be called
- Example --> "Farts" --> You need 3 Farts to obtain a VIP request
run JopeBot.exe to activate the application. You can change settings without restarting the application.
- current.txt will show the latest song activated by !playnext or !playrandom
- played.txt will show the list of songs activated by !playnext or !playrandom
- poll.txt will only show after the command !poll is activated in chat. It will outline the choices and will guide the chat.
- priority.txt will show the list of active priority users, assigned through donations, cheers, subs, or otherwise
- setlist.txt will show the number of songs in the setlist, show the currently active request, and preview the next 5 requests.
The application will automatically create "saved states" every time a ! command is issued in chat. These states are stored on the local machine, under ./backup. They are in JSON format, and can be viewed with any text editor. They can be used to set JopeBot to that state, using !restoresetlist
The application will automatically update a record of the played songs for the session every time a ! command is issued in chat. This file is located under ./history
- Adds a request for the user to the setlist
- Only 1 active request allowed per user
- Subsequent requests will overwrite the previous request without losing queue position
- Requests will go into the setlist in the order in which they are received
- Example --> !request Cirice by Ghost
- Bumps the user's request up to the end of the existing priority users' requests
- Tokens are auto-assigned by the bot for subs, re-subs, and 500 bit cheers
- Requests will get bumped up through the setlist in the order in which they are received
- Is subject to time buffers
- Example --> !priority
- Bumps the user's request up to the end of the existing VIP users' requests
- Tokens are auto-assigned by the bot for subs, re-subs, and 500 bit cheers
- Requests will get bumped up through the setlist in the order in which they are received
- Example --> !vip
- Generates a URL to a web server that returns everything you'd want to know
- Takes tokens from your stash, and places them into another's
- Is subject to time buffers
- Example --> !give @jopethemetalmessiah 5
- Refunds the amount of tokens you spent and removes your elevated request
- Vote for the active poll choices
- Only 1 vote per chat user
- see !poll for more information
- Bumps the user's request up to the end of the existing priority users' requests
- Tokens are auto-assigned by the bot for subs, re-subs, and 500 bit cheers
- Requests will get bumped up through the setlist in the order in which they are received
- Example --> !priority
- Move user's request to the very front of the setlist
- Example --> !move @jopethemetalmessiah
- Activates the first song request in the queue, and removes it from the setlist.
- Assigns the request to current request, and adds the request to the Played list for tracking
- If "skip null requests" is true, will skip empty requests and instead play the next valid request
- Activates a RANDOM request in the setlist, and removes it from the setlist.
- Ignores the priority list
- Assigns the request to current request, and adds the request to the Played list for tracking
- Removes the next unplayed request in the queue
- Mainly for use on long standing null requests
- Removes elevated requests, and refunds appropriate token amounts
- Example --> !addtokens @jopethemetalmessiah 5
- Example --> !resetcooldown @jopethemetalmessiah
- Places the last played song back into the setlist
- Grabs 2 random requests for chat users to vote on
- Ignores priority list
- The request which receives the most votes will be pushed to the very front of the
- Poll is active for 30 seconds after the command is written
- see !vote for more information
- Stops new requests from being added to the setlist
- Does not alter existing requests
- Can be undone with !unpause
- Allows new requests to be added to the setlist
- Restores the last saved state generated, which is stored on the host machine under ./backup
- Saved states are generated every time a ! command is issued in chat, keeping the saved state very close to real time
- If a file name is not specified, it will automatically restore TODAY's saved session
- Example 1 - Restore Today's Session -- !restoresetlist
- Example 2 - Restore A Specific Session -- !restoresetlist backup_10_17_2017
- returns the list of setlist commands