Beam interactive streaming – how to set it up!

Warning: You should be somewhat of a technical person before proceeding - at the very least, have streamed before; preferably with OBS.

This guide should assist you on your “100 people playing at the same time” quest for interactive streaming! If you need additional help, message me in my Beam chat – or hit me up on Twitter! =D

Please note that this information is only valid from the date of post; obviously anything can change because we’re using third-party software on a service that’s still in beta (along with a FTL protocol.)

These instructions were made to work on a Windows 10 Pro 64-bit machine, so prerequisites may differ based on your setup.

Another good source of interactive information is Beam’s own FAQ – be sure to check that out here.

And be sure to click the the section markers located in parenthesis (x.x) as they reference certain parts of the video. ;]

install (0.0)

Here is everything you need installed in order to get your interactive Beam stream up and running! Though of course, what’s not listed here is the app or game you want to stream. =D

Microsoft Visual C++ 2015 (0.1)
info | download

Git (0.2)
info | download

Node.js (0.3)
info | download

OBS-FTL (0.4)
info | download

Tachyon (0.5)
info | download

Although Tachyon currently offers the lowest latency, it isn’t supported by Beam’s support team anymore – it’s recommenced to just use OBS-FTL.

Tachyon had an issue when capturing 32-bit games, which required copying certain files from OBS; this problem got resolved in v1.2.14!

Files needed to resolve Tachyon’s game capture issue (0.6)
Get to ..\obs-studio\data\obs-plugins\win-capture
Copy get-graphics-offsets32, graphics-hook32 & inject-helper32
Paste in ..\Tachyon\data\obs-plugins\win-capture

cmd (1.0)

If you are unable to do any of the below, then you might have altered something during the installation of Node.js or Git.

Open Node.js command prompt (1.1)
Type cd / hit enter
Type mkdir beam hit enter
Type cd beam hit enter

Type git clone https://github.com/ProbablePrime/interactive-keyboard.git hit enter (1.2)

Type cd interactive-keyboard hit enter (1.3)
Type npm install hit enter

Type npm install robot-js hit enter (1.4)
Type npm install robotjs hit enter
Type npm install kbm-robot hit enter

Do not close Node.js command prompt

json files (2.0)

Auth & Game default JSON files
info | download

Open folder ..\interactive-keyboard\config (2.1)
Copy json files – auth & snes.zip and extract contents

Open auth.json in Notepad (2.2)
Add your username & password inside the quotations

Open snes.json in Notepad (2.3)

developer lab (3.0)

Go to Beam’s Developer Lab (3.1)

Click CREATE A GAME (3.2)
Click the + to the right of My Games
Name it and click CREATE GAME

Click the Share Version button (3.3)
Click Anyone with version ID and right code can play your game.

Copy the version’s ID and paste it in tacos.json (3.4)
Copy the SHARE CODE and paste it in tacos.json, then save

Click NEW under the CONTROLS section (3.5)
Expand Not Placed and check Holding & Frequency
Add keys to KEYBOARD TRIGGER, BUTTON TEXT & HELP TEXT

Move buttons onto Large grid, Medium grid & Small grid (3.6)
Click SAVE

setup stream (4.0)

Go to MANAGE CHANNEL (4.1)

Click SETUP STREAM (4.2)
Click USE FTL
Copy STREAM KEY
Remember CLOSEST INGEST server

Open Tachyon (4.3)
Click Settings, click Output
Select Ingest Location, paste Stream Key

Click Video (4.4)
Adjust Base Resolution & Output Resolution hit OK
[if unsure, do 1280×720 at 30 FPS to start]

testing (5.0)

Be sure to test the controls before every stream and remember that you don’t actually have to be streaming to test it – as long as you have your json file loaded and active using node.js, you’ll be set!

Go back to Node.js command prompt (5.1)
Ensure you’re in ..\interactive-keyboard
Type node index.js ./config/snes.json hit enter
If successful, you should see Connected to Interactive

Open Notepad and keep it focused (5.2)
Go on another computer or harass Grandma
Go to your channel and start pressing buttons / keys
In Node.js command prompt & channel you should see button activity
In Notepad, you should see random text or the text cursor moving

choose your game (6.0)

Keep in mind that not every game will work with this – but at least you can point blame at the game if you know it worked in Notepad, right? 😛

Open game (6.1)
Open Tachyon
Under Sources, hit the + and select Game Capture
Uncheck Capture Any fullscreen application [unless you need to]
Select the game on the Window dropdown and hit OK

Map the keys correctly in the game
Adjust keys & buttons in Developer Lab if need be

Try keys on host computer, ensure game reacts to input
Try keys on another computer that’s viewing your channel

Lastly, hit the Start Streaming button and GET IT STARTED!!!!!!!!

Ah we’re done, so go have some damn coffee on me; with your credit card

troubleshooting (7.0)

Interactive-Keyboard – GitHub
Beam – Contact page | Forums | Development | Lab

Reasons why it would work in Notepad but not your game:
Game is not correctly key-mapped
Game uses an API not compatible with Interactive-Keyboard
Game treats it as a hack and blocks it
Handler not compatible, head here on how to change it
You funked up because you never tested it in Notepad

Maybe there is a solution?
I’ve used AutoHotKey to have enter emulate a mouse click for No Man’s Sky to work. It however, did not resolve my N++ input issue as the movement was very choppy, making the Ninja unable to run; which makes the game impossible (researching fix.)

I’ve also used mouseemu to emulate a mouse, which offers a good amount of settings to tweak the movement right.

Stuck keys?
Either reload the json file, or try hitting the key that’s stuck a few times.
It would be wise to have a bot be able to reload the script from chat.

Troll, spammer or !@#$%^&*?
As of right now, there is no way to know who’s hitting what keys. You can only assume by observing the chat and seeing who goes in and out [and that’s not a guarantee at all]. This is a feature they are working on, so in the meantime – you can pause the controls and take over, or kick / timeout the person if you really do know who it is.

that should be it (8.0)

Don’t forget – this is currently in beta, so expect problems; don’t hesitate to ask me any questions on getting you up and running!

stay friendly (9.0)

Beam is a happy place – a place where other people host each other.
If you’re not actively streaming, be sure to host someone else. =D

See you on Beam.pro! (And don’t forget to follow!)
sorryaboutyourcats