2.4.0 is finally released! Lots of new improvements, such as an event dispatcher, new features, the usual performance improvements and bug fixes.


There are some breaking changes with custom commands and routines, which the documentation covers. Fortunately it's not much work to convert them.

I have been doing a lot of refactoring for to utilize dependency injection more. This will really clean up some of the code and make writing tests so much easier. There's more work to be done, but it's in a much better state already 馃榾. For now I am using manual injection. I plan to switch to an IoC container at some point.

Take a look at the 2.4 release progress: codeberg.org/kimimaru/TRBot/pr

Currently, I'm juggling my time between three projects: TRBot's 2.4 release, chiptune music, and a WIP game prototype.

I hope to show off the game in the near future. It's made in Godot, which I'm still learning - and enjoying!

version 2.4 is coming along nicely - take a look at the Kanban board: codeberg.org/kimimaru/TRBot/pr

New features include comments in the input syntax, greatly improved performance, and a WebSocket event dispatcher to allow external applications to read TRBot events.

TRBot 2.3.1 has just been released!


This release contains numerous refinements and fixes. Better custom code support (including routines), fixed virtual controller axes handling - especially with vJoy, Linux virtual controllers rewritten in evdev, markov chain text generator to make funny sentences, and much more!

TwitchPlaysPaperMario is live with a rotation of 5 retro games: Super Mario World, The Legend of Zelda: Link's Awakening DX, Ristar, Crash Bandicoot 2, and Kirby's Dream Land 3!

The game changes every hour, achieved through TRBot's latest custom bot routine feature. Consider tuning in if you're a fan of any these games.


TRBot's GitHub repository is officially being deleted on August 1: github.com/teamradish/TRTwitch

Going forwards, the Codeberg remote, the main repository, will be the only one available until further notice: codeberg.org/kimimaru/TRBot

I refuse to allow GitHub Copilot to steal my code and profit off of it without respecting the license. This is exploitation of free software at its worst. I also encourage others to migrate their projects away from GitHub.

TRBot 2.3 introduced WebSocket connections as a means of playing games through text. Here's a proof of concept on a simple website via Django Channels.

I've finished refactoring the input macro parser for , and it passes all the unit tests I throw at it. There were a few remaining issues that I had to tweak the regex further to fix.

Here's a look at benchmarks comparing the old and new input macro parsers. It may not seem like much at a glance, but this difference is huge for more active streams with 30+ players. The less delay between entering text in chat and having the character move = happier players :)

I've been refactoring the input macro parsing code for to be more performant and fix a few outstanding bugs. I'm 90% of the way there, with nested dynamic macros remaining. Track progress here: codeberg.org/kimimaru/TRBot/is

After this, I'm going to work on WebSockets as a client service, making it possible to control TRBot from a website's input form, for instance. This will greatly expand its capabilities and reach, making it viable for even more uses!

Starting May 1, TRBot's primary development will be moved to the Codeberg repository (codeberg.org/kimimaru/TRBot).

The GitHub repository will still be available and updated, but new issues and PRs won't be addressed.

Someone noted a regression in TRBot 2.2 after the parser rewrite. It turns out I forgot to lower all the text right before parsing.

This doesn't affect the parser itself, as the regex it uses is case insensitive, but since the game console definitions look for exact matches, they wouldn't be able to find a button if the case is off. I've since fixed this on develop.

Very excited to announce that on May 8, my channel, TwitchPlaysPaperMario, will be running a Pokemon Red/Green/Blue race against TwitchPlaysPokemon and TwitchPlaysSpeedruns!

We will be running Pokemon Blue, TPP is running Green, and TPS is running Red. Should be a great time overall! TPPM and TPS will be using TRBot as per usual.

TRBot 2.2 is finally out, featuring a full rewrite of the input parser, syntax additions, and various other improvements!


Finally finished wrapping up the code side of TRBot 2.2. There'll be a few nice syntax improvements to boot! The final task is updating the documentation.

I made an effort starting with the 2.0 release to actually maintain documentation. It's not my favorite task, but TRBot is such a complex piece of software now that documentation is mandatory if anyone wants to use it. So far, it's been great: if someone has a question, I just link to the documentation :D

The new parser for TRBot allows for new input names and vastly improved tests.

ParserComponents have their own named regex sequences. The order of these components determines the syntax.

For compatibility with the current syntax, the StandardParser is designed to handle specific named regex groups - like "hold", "input", "percent" - but another parser can handle anything. Parsers implement a common interface so the details aren't important to the main application.

I've been working on refactoring TRBot's parser, and it's finally in a state where it can be properly unit-tested. The previous tests were no good because there was just too much prep work required before the parser was ready to parse the message.

This refactor will allow for a custom syntax too! The original goal was to have mouse and touchscreen inputs, but that's been scaled back because the input handler and virtual controller API would also need refactoring.

TRBot 2.1 has been released, featuring Democracy mode and several other improvements!


If you are a game developer and would like to run/support a twitch plays of your game, feel free to reach out and I can help get you set up!

Show older
Gamedev Mastodon

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!