I got sick of having to push the "Join Event" button so I spent some time figuring out how to automatically join the events and wrote up these instructions.
DIRECT LINK TO THIS GUIDE: http://bit.ly/BL3AutoJoinChestEvents
These instructions reference the Dev Tools in Chrome, but you can do this in any browser! You just need to do the same process but in your browser's developer tools.
Refer to the next section for images/visual instructions
You have to follow these instructions EVERY TIME you join a new stream! If your stream ends and you are raid joined to another stream, you'll have to follow the instructions again.
-
Install and set up the Twitch ECHOcast extension
-
Wait for a rare chest event to start
-
Right-click the "JOIN EVENT" button and click "Inspect" to open Chrome Dev Tools
- This is VERY important! If you open Chrome Dev Tools any other way there is a good chance it won't work.
-
If Dev Tools opened on the side or bottom of your browser:
- Click the three vertical dots on the top-right of the Dev Tools window to open the menu
- Click the icon that looks like a square sitting on top of another square
- This will detach Dev Tools into a separate/bigger window
- Maximize/resize the window as needed
-
In Chrome Dev Tools go to the "Sources" tab
-
Scroll down to where you see
index.html
a bunch of times -
Expand each one until you find a child node named
video_overlay.html
and expand it -
Look for a child node named
<hash>.ext-twitch.tv
and expand it -
Expand the child node that is a big hash string
-
Look for a file named
VideoOverlay-<hash>.bundle.js
and double-click it -
Search for:
_createClass(DialogButton, [{
(it should be around line2166
) -
Look for the line that begins
var type = this.props.isDisabled ? ...
-
Insert this code snippet right below that line:
// BEGIN AUTO-JOIN CODE // VideoOverlay-<hash>.bundle.js line ~1100 // inside "_createClass(DialogButton, [{ ..." if (this.props.onClick.name == 'onJoin') { // save the onClick handler to window so that we can call it from the console window.joinEvent = this.props.onClick; } // END AUTO-JOIN CODE
-
Save your changes by pressing
Cmd+S
(macOS) orCtrl+S
(Windows, Linux, etc.) -
In Chrome Dev Tools go to the "Console" tab
-
Paste the following code in the console and press
<enter>
:var clickButton = function () { if (window.eventTimer) { clearTimeout(window.eventTimer); } // check for the "JOIN EVENT" button and join the event automatically when it is present if (document.querySelector('.button-inner') && window.joinEvent) { window.joinEvent(); window.joinEvent = null; } window.eventTimer = setTimeout(clickButton, 1000); }; clickButton();
-
Wait for another event to occur and you should automatically join it
-
You still have to pick the item that you want to receive when you win (or just let it pick a random one for you)
-
You can close Chrome Dev Tools and it will continue to work
Refer to the previous section for complete step-by-step instructions
-
Paste the first code block (it's around line 2166 now, not 1100)
-
You can close Chrome Dev Tools and it will continue to work
For some added fun, open up the same Twitch stream in both regular mode and incognito mode (private browsing mode, etc.) and follow the instructions for both streams. Double rewards!
You can also join different streams in different browser tabs and follow the instructions for each one.
If you join a bunch of streams so that you can auto-join the events but you aren't actively watching them, click the gear in the bottom right of the stream and turn the quality way down (360p, 160p, etc.). No point in wasting your bandwidth!
-
Right-click somewhere in the main Twitch window (somewhere in chat makes it easy) and click "Inspect"
-
The Dev Tools window will open
-
Go to the "Console" tab
-
Paste the following code in the console and press
<enter>
:// automatically claim bonus points whenever the redeem button shows up below the stream chat // javascript context MUST be "top" for this to work! var checkForBonusPoints = function () { var bonusIcon = document.querySelector('div.chat-input div.chat-input__buttons-container button .claimable-bonus__icon'); if (bonusIcon && bonusIcon.parentElement.parentElement.click) { try { console.log('Automatically redeeming bonus points...'); } catch (e) { } bonusIcon.parentElement.parentElement.click(); } setTimeout(checkForBonusPoints, 5000); }; checkForBonusPoints();
-
Whenever a button shows up to redeem bonus channel points it will automatically be clicked for you
-
You can close Chrome Dev Tools and it will continue to work
IT WORKS! Thank you! I wonder if you could make this into a Chrome extension or bookmarklet.