There's a Twitch Among Us

Inspiration

We created this mod with heavy inspiration from the GTA V Chaos mod, where Twitch Chat users can interact with what occurs in GTA V. We love playing Among Us with our friends, and thought something like this would be really fun to try making.

What it does

By using Twitch Channel Points, Twitch viewers can redeem these points to interact with the broadcaster's game of Among Us. With enough points, determined by the broadcaster, viewers can kill a random player in the game, or swap all the positions of all the living players.

How we built it

For the Twitch side of things we used both the Twitch API and the TwitchLib C# library. The program uses the Twitch API and the Twitch PubSub system to instantly receive any reward redemptions and fulfill them in real-time.

For the Among Us side of things we used the open source frameworks called Reactor, Harmony and BepInEx to create our own custom mod/code inside the game. We also used a community made tool called Impostor to create our own private server to play the game.

To communicate between the two, we used a simple Pipe server/client architecture.

Challenges we ran into

For the Twitch side of things, there weren't too many challenges. Using the Twitch API references page, we were able to make requests pretty quickly. We created each of the CRUD API functions ourselves which took some time, and got everything working. We later discovered that TwitchLib API had most of those done for us, so we transitioned to using that library instead.

For the Among Us side of things, the biggest initial challenge was learning how to even make a mod for the game. Luckily, with the help of Github and the Among Us modding community on Discord, we were able to figure out how to get things working.

After that, the biggest hurdle for us was getting Twitch and Among Us to communicate with each other. Among Us was very finicky when it came to this, but many crashed games later we found a way to get things working. We're still trying to find ways to improve how the two communicate, but we're still really happy that it's working.

Accomplishments that we're proud of

The first big accomplishment we're proud of is that fact that this thing actually works. This is the first time either of us have created anything like this and it's really cool to see that we managed to pull it off.

The other thing is that it's actually really fun!!! We were worried the Twitch kills/interactions would be annoying for players, but it turned out to be so much more fun than we thought it'd be. The first time we tested we played a lot longer than we had planned because of how much fun our friends/Twitch chat/and us were having!

What we learned

We learned a lot about the Twitch API and how cool it can be when you get a little creative with it! What we made can basically work for any game on the Twitch/server side of things, you'd just have to change what the server messages are. Realizing that, the possibilities really are endless.

We also learned how to make mods in Among Us! This was something we had never done before and it was such a cool feeling seeing our first successful code run.

We also learned how to get a game to talk with Twitch! Now that we've learned one, we can't help but be curious about the possibilities for other games.

What's next for There's a Twitch Among Us

At the time of submission we already have a lot more ideas/improvements for this creation. For one, we've already gotten a lot of ideas/feedback for other ways Twitch can interact with the game and hope to implement them soon!

We also want to find a way to streamline the installation process a little more for future broadcasters. The goal is to make a single exe for everything at some point, but we'll see if/when we have time for something like this.

Other than that, the biggest thing we're looking forward to is making our code public. There are a lot of programmers out there that could probably do a lot of awesome things with what we've made and we look forward to seeing what those things are.

Built With

  • bepinex
  • c#
  • reactor
  • twitchapi
  • twitchlib
Share this project:

Updates