All Projects → hzoo → Twitchplaysx

hzoo / Twitchplaysx

Licence: mit
🎮 Connect to IRC to send inputs to any program, Twitch Plays Pokemon style. (Windows, Linux, OSX)

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Twitchplaysx

Touch Dnd
Advanced touch-compatible Drag and Drop library providing Draggable, Droppable and Sortable for Zepto.js and jQuery
Stars: ✭ 104 (-54.19%)
Mutual labels:  unmaintained
Pyad
Python Active Directory Tools | *Not actively maintained*
Stars: ✭ 136 (-40.09%)
Mutual labels:  unmaintained
Escomplex
UNMAINTAINED
Stars: ✭ 175 (-22.91%)
Mutual labels:  unmaintained
Ticons Cli
Command-Line version of TiCons for generating icons and splash screens for Titanium & Alloy projects.
Stars: ✭ 109 (-51.98%)
Mutual labels:  unmaintained
Ruby Filemagic
Ruby bindings to the magic(4) library, revised.
Stars: ✭ 129 (-43.17%)
Mutual labels:  unmaintained
Chandler
[unmaintained] chandler syncs your CHANGELOG entries to GitHub's release notes
Stars: ✭ 157 (-30.84%)
Mutual labels:  unmaintained
Stargus
Importer and scripts for Starcraft
Stars: ✭ 94 (-58.59%)
Mutual labels:  unmaintained
Wpthumb
⚠️ UNMAINTAINED ⚠️ On demand image resizing for WordPress
Stars: ✭ 181 (-20.26%)
Mutual labels:  unmaintained
Nvidia Vbios Vfio Patcher
A Python script to patch NVIDIA vBIOS dumps into a format compatible with VFIO passthrough
Stars: ✭ 134 (-40.97%)
Mutual labels:  unmaintained
Jquery Jsonrpc
[Unmaintained] JSON-RPC 2.0 client for jQuery.
Stars: ✭ 174 (-23.35%)
Mutual labels:  unmaintained
Ostel
Open Secure Telephony platform (no longer maintained)
Stars: ✭ 115 (-49.34%)
Mutual labels:  unmaintained
Capistrano Mb
[unmaintained] Capistrano tasks for deploying Rails from scratch to Ubuntu 16.04 and 18.04
Stars: ✭ 117 (-48.46%)
Mutual labels:  unmaintained
Jquery Counter
jQuery.counter (javascript + css3)
Stars: ✭ 165 (-27.31%)
Mutual labels:  unmaintained
Tgcameraviewcontroller
Custom camera with AVFoundation. Beautiful, light and easy to integrate with iOS projects.
Stars: ✭ 1,432 (+530.84%)
Mutual labels:  unmaintained
Gaia
DEPRECATED - Gaia is a HTML5-based Phone UI for the Boot 2 Gecko Project. NOTE: For details of what branches are used for what releases, see
Stars: ✭ 2,091 (+821.15%)
Mutual labels:  unmaintained
Splendidbacon
Project Management for hackers
Stars: ✭ 102 (-55.07%)
Mutual labels:  unmaintained
Malgraph4
MALgraph: statistics service for MyAnimeList.net users.
Stars: ✭ 143 (-37%)
Mutual labels:  unmaintained
Json File Store
A simple JSON store for Node.js
Stars: ✭ 186 (-18.06%)
Mutual labels:  unmaintained
Mozdef
DEPRECATED - MozDef: Mozilla Enterprise Defense Platform
Stars: ✭ 2,164 (+853.3%)
Mutual labels:  unmaintained
Cudlr
⛔️ [DEPRECATED] Console for Unity Debugging and Logging Remotely
Stars: ✭ 167 (-26.43%)
Mutual labels:  unmaintained

Twitch Plays X

(inspired by TwitchPlaysPokemon)

Connect to Twitch's messaging service, (TMI) via tmi.js (previously using IRC) to send inputs to a program and stream it, TwitchPlaysPokemon style. Should support linux/windows/mac.

In Action

Pokemon on Windows

Pokemon Red running in a Ubuntu 13.10 VM

Caveats

On Windows, the program has to be focused in order to send keyboard inputs so you won't be able to use your computer at the same time (unless you run the program in a virtual machine).

Installation

  • Install Node.js (check that you can run node/npm)
  • Clone the repo: git clone https://github.com/hzoo/TwitchPlaysX.git
  • Install node_modules in the created folder: npm install
  • If Linux: install xdotool: apt-get install xdotool
  • If Windows: install python and python win32 (with corresponding versions)

Setup

  • Start the program you are going to be sending keys to: (VisualBoyAdvance, Notepad)
  • Append environment variables or modify config.js if you need to change the options: TWITCH_CHANNEL=mychannelhere npm start
  • Run the server with npm start

Config

  • CONFIG_PROGRAM_NAME: Find out the title of the window that you will be sending key inputs to (may need to check Task Manager to find out)
    • Example: VisualBoyAdvance, Desmume
      • For notepad.exe it would be "Notepad" or "Untitled - Notepad".
      • If you want to test that the key's are sending correctly, run npm test with Notepad opened to see if it sends a key to it.
  • TWITCH_CHANNEL: the Twitch channel you want to listen for messages on (twitchplayspokemon)
  • Depending on the program, you may need to change the controls (in defaultKeyMap in keyHandler.js, keys.py for windows)

Misc

https://github.com/hzoo/ChatPlays/ used MutationObservers in the browser

Using IRC lets you get all the messages; you can't always get all messages through the browser (quickly or consistently) so this is a better approach overall as others have done.

Method

  • Connect to IRC
  • Use regex to match for certain commands
  • Print out username/message
  • Hook up to a program/emulator
    • if on windows: probably uses the win32 api (window has to take focus)
    • otherwise: xdotool
  • Stream it with OBS

Contributions

Feel free to give suggestions or report bugs!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].