A script for Bizhawk to allow Twitch chat to shuffle the current ROM
Note this has only been tested with Bizhawk 2.9.1.
-
Install a 2.9.x version of BizHawk.
-
Download the latest release of this project bizhawk-crowd-shuffler.
-
Create a folder called
bizhawk-crowd-shuffler
where the BizHawk is installed in from step 1 and unzip the release file from step 2 inside of the newly created folder. -
Open the
bizhawk-crowd-shuffler
folder and copy any roms that you want shuffled into thesessions/default/CurrentROMs
folder -
Edit the
bizhawk-crowd-shuffler-win.bat
(for Windows) orbizhawk-crowd-shuffler-win.sh
(for Linux) to fill in theCHANNEL
with your Twitch channel name.
Note: You may have a popup saying "Windows protected your PC". Click more info and click "Run anyway"
Note: You may have a popup about the "Windows Firewall". You will need to allow access for the applications to work.
If you would like the shuffler to be able to respond with the next rom in chat and/or users to use reward redemptions to swap you will need to do aquire an OAuth Token.
-
Navtivate to https://dev.twitch.tv/console/apps/create
-
Enter a name for the application (e.g. MyUserNameRomShuffler)
-
Enter
https://twitchapps.com/tokengen/
for the OAuth Redirect URLs field -
Click create
-
Click manage next to your newly created application
-
Copy the value in the clientID field
-
Navigate to https://twitchapps.com/tokengen/
-
Enter your clientID from step 6
-
Enter the following scopes string in to the scopes field
channel:manage:redemptions channel:read:redemptions user:read:email chat:edit chat:read
Note: Treat the token like a password and do not share that with anyone.
-
Copy the OAuth token into the
bizhawk-crowd-shuffler-win.bat
(for Windows) orbizhawk-crowd-shuffler-win.sh
(for Linux) file in theTWITCH_TOKEN
field -
Create redemption named "swap"
The shuffler can be configured by adding a config.json
file (an example is provided)
Configures the swap chat command (e.g !swap) to respond to. Set to
null
to disable (default: ^swap$)
Suppresses the chat messages in twitch chat (default: false)
Configures the list chat command (e.g !list) to respond to (default: ^list$)
Filter out certain files in the current roms folder from being listed and used
Configures the redpemption name to respond to (default: ^swap$)
Ignore any user filter and just uses a random rom
Choose a random rom if there is no match rather than ignore the command
Global chat cooldown (default: 60000)
User chat cooldown (default: 60000)
Text that is used for a random game via redemption (default: ^rng$)
timer options
Note: Set this null to disable the timer
timer minimum
timer maximum