MultiTwitchBot is an IRC based multi-room raffle bot developed to operate with the Twitch network.
- Raffles across multiple rooms
- Invite bot to additional rooms - Authorizations required to comply with twitch bot ToS
- Magic happens
- Allow single entries per person, or multiple - one for each room they enter from
- Internal Mods list (possible future option for any channel mod to perform -some- actions)
- Good Luck Protection - Host Selectable winner exclude system - exclude X previous winners from draw
- Sub Luck
- Bad Luck Protection
- Roll method is: 1-1000 (streamer selectable) with luck increasing the minimum roll number
- eg: Sub with 30% bonus plus 20% BLP would roll 501-1000
- fresh non-sub would roll 1-1000
- More features to be added by demand...
MultiTwitchBot is python based, run from cloud based virtual hosting in the US. Access on demand to the web console provided by Wolfric83
It is recommended (but not required) to grant mod permission to the bot to prevent dropped messages.
Streamer invites additional hosts with !invitehost -TwitchName-
Additional participating streamers accept with !acceptinvite (Must be the most recently invited host)
Participating streamer types !startraffle
Viewers on any stream type <Keyword>
... time passes as viewers enter (Bot continues to send notices to channel - these are not new raffles)
Participating streamer types !closeraffle (optional)
Participating streamer types !draw
Bot announces winner into streams
Rinse and Repeat from !startraffle
- !reportme - Outputs multipliers applied to -your- rolls
- !announcerooms - Outputs URLs to participating streams
- !resetrafflebot - Leaves all rooms, and resets raffle bot to listen to only default user's commands
- Notifies all rooms
- !invitehost -TwitchName- - posts message to current channel requesting response to invite the bot to -TwitchName-
- !acceptinvite - Required by additional hosts to bring bot into their channel.
- !raffleleave - Asks RaffleBot to leave your channel
- !startraffle - Resets the current Raffle list, listens for saved keyword for entry to raffle
- !startraffle -NewKeyWord- - Resets the current Raffle list, changes keyword and listens for entries to raffle
- !closeraffle - Stops listening for raffle keywords. saves everything to DB
- !draw - Stops listening for raffle keywords. saves everything to DB. Draws one winner and reports to all chats.
!clearsession - Resets session list and past winners list- !undo - Undos the last !draw, reverting the BLP for the last drawn winner.
- !redraw - Combines !undo and !draw. reverts previous winners BLP, removes that entry from draw, and Draws one winner and reports to all chats.
- !reopenraffle - starts accepting additional entries when typed after a !draw.
- !changekeyword -Keyword- - Changes raffle keyword to -Keyword-
- !changenotice -NoticeText- - Change the Notice text (what is being raffled)
- Example: !changenotice Free Gift Sub
- changes repeating notice to: Now Raffling: Free Gift Sub. Enter by typing: -Keyword-
- will send initial notice: Next raffle draw: Free Gift Sub. by -yourname-
- !singleraffle - Turn on Single Entry mode
- !multiraffle - Turn on Multi entory mode (one per User/Channel combination)
- !raffleannounceon - Turn on periodic Raffle announcements
- !raffleannounceoff - Turn off periodic Raffle announcements
- !enableblp - enables Bad Luck Protection
- !disableblp - disables Bad Luck Protection
- !enablesubluck - enables Sub Luck
- !disablesubluck - disables Sub Luck
- !setsubluck - Sets subluck to
- !setblp - Sets Bad Luck Protection bonus to per loss
- !addblp - Adds Bad Luck Protection the the specified Twitch user
- !checkblp - Outputs the Base BLP value for a given Twitch user. Does not include Sub Luck.
- !wolfricversion - Outputs the version number of the currently running instance of WolfricKeystonBot
- !enableblpoverflow - Enables BLP Overflow - When someone wins with BLP adding up to more than 100, overflow is re-added to them.
- !disableblpoverflow - Disables BLP Overflow
- !pastwinnersexclude -Number- - exclude -number- past winners from draws
- !noticetime -Number- - change notice timeout to -Number- seconds (Minimum 30, default 30)
- !reportsettings - Outputs to chat configured settings (BLP, Subluck, Max Roll, Notice Time, Past winner exclude settings)
- !quitrafflebot - Terminates bot completely
- !savevarstosql - Saves modified settings (Notice Text, keyword, notice time etc.) to database
- Channel list: Wolfric83 (Will be updated to Zatcharygaming when ready for proper use)
- Additional hosts must be invited by an existing owner of a channel the bot is currently in by !invitehost
- Keyword: "metime"
- Entry Type: Multi Entry Mode (each user can enter once from each channel)
- Past Winners Ignored: 5
- Notice Text: testing raffle system
- Notice Time: 30 seconds
- Draw type: Roll
- Starting roll: 1-1000
- BLP: +1% (added to minumum)
- SubLuck: 30% (added to minimum)
change to Rolls instead of random pickReroll on draw
option to add BLP to roll each time someone doesn't win --- in testing- RaffleGroups - ability to have multiple raffle groups (far future)
Long term storage of BLP (future)Sub Luck --- in testing- startup UI?
- SingleChannel Mode?
- Change Defaults
- Roll type Picking
- Sub luck on
- past winners ignored 5
- Multi-Entry Mode
- BLP Mode
Base random roll starts at 1000 --- in testing Optional BLP Factor - Selectable percentage (or add?) - default 1%? Optional Sub Factor - Selectable percentage (or add?) - default 25%?
BLP and Sub factor combine? (5 missed wins for subscriber = 30% added to max roll number?)