Powerful software for playing games through text, supporting remote connectivity through services such as Twitch.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

6.2 KiB


...So, what is this again?

TRBot is software that lets you play games through text. If you type "right", the character in your game will move right if configured to do so. TRBot achieves this through virtual game controllers on your operating system that simulate real controllers.

Show me what you mean by that gibberish!

View examples here.

My inputs aren't doing anything in the game!

Make sure the virtual controllers are set up properly.

If they still aren't working afterwards, make sure the game is using the virtual controllers as the input device. On emulators you can often choose the input device to use. On PC games this is more complex, as many games aren't flexible about input remapping. See more information on setting up PC games here.

My inputs are incorrect! I press "a" but the game is pressing "b" instead!

Each TRBot console has different button values for each button. Make sure you're using the correct console for your game (Ex. the N64 console for N64 games). You can view the current console and change consoles with the GetSetConsoleCommand (default: "!console").

If you're using a custom console, check your button values with the InputInfoCommand(default: "!inputs") via "!inputs myconsole a" and "!inputs myconsole b" to verify the values aren't the same or mismatched.

Why did my input not go through??

There may be several reasons:

  1. You're silenced and thus denied from making inputs. Check your abilities with the ListUserAbilitiesCommand (default: "!userabilities") and see if the silenced ability is on the list and not disabled.
  2. Inputs are restricted to access levels higher than yours. View the global input access level through the GlobalInputPermissionsCommand (default: "!inputperms") and your own access level through the LevelCommand (default: "!level").
  3. You input a dynamic macro that does not parse correctly. Make sure the arguments you entered are valid.
  4. You forgot to specify the "*" or the number of repetitions in a repeated input. "[a]*5" is valid, whereas "[a]5" and "[a]*" are not!

TRBot will sometimes output an error message if it runs into a problem while parsing, such as when an input sequence goes over the max input duration. The error messages are limited due to how TRBot parses the syntax through regex: when an input is invalid, the regex will often not pick it up at all, making it unable to determine the exact error.

How do I hold right and jump?

See the syntax walkthrough.

How do I press "a" and "b" at the same time? I need to do special combos!

Again, see the syntax walkthrough :)

When I type "a a", it holds "a" instead of pressing it twice! What gives?

This is intentional. When TRBot processes the input sequence, it does so without any delay in between. What you're seeing here is TRBot releasing the first "a" then pressing the second immediately after in the same code block.

If you want TRBot to automatically insert artificial delays between your inputs, grant yourself the usermidinputdelay ability and set the integer value to the desired delay, in milliseconds. You can do so using the UpdateUserAbilityCommand (default: "!toggleability"):

  • "!toggleability myusername usermidinputdelay true null 50 null" - Will add a 50 millisecond delay between non-blank inputs.

You can remove the delay by changing the "true" argument to "false" to disable the ability.

The streamer has "l", "s", and "ls3" inputs. When I type "l s3s" it's instead registering "ls3" then "s". Why?!

This is also intentional. TRBot removes all whitespace when parsing inputs, and it prioritizes the longest input name it can find. The alternative is choosing the shortest input name, which would make it very difficult to press certain buttons, namely "r1", "r2", and "r3" on a PS2 controller for instance.

It's unfortunate different inputs coincide here, but ultimately we had to make a choice and felt this was the best option.

Help! I was modifying the database manually, and now my bot froze!

Make sure you write or revert your changes to the database.

When you manually make changes to the database, the database application (Ex. sqlitebrowser) locks the database file, making it temporarily inaccessible to other applications to prevent data corruption. The next time TRBot needs to read or write from the database (likely soon), it will have to wait for this lock to be released before it can continue. Release the lock by writing or reverting the changes in your database application.

I WASN'T modifying the database manually, and my bot froze/crashed!

This is a bug, so please file an issue and include details about your configuration and what led to the freeze/crash. Submit any notable information from logs in the "Logs" and "CrashLogs" folder if applicable. If you can reliably reproduce the issue, it would be much easier and quicker to fix the bug!

How do I shut down the bot?

Click the X to the console window or press Ctrl + C in the window to end the process.

Can you add feature X, Y, and Z?

Please file an issue for new feature requests.

Can this run on an SBC (Single-board Computer) such as a Raspberry Pi?

Yes it can! Any GNU/Linux system with the uinput kernel module with a supported RID should work. Keep in mind that you will also need to run your game on this device to effectively use TRBot on it, so make sure it packs enough power!

See compilation instructions for more information, as you will need to compile the native virtual controller code for your architecture.