• Stable 2.3.1 0b7ef5e400

    2.3.1 Release

    kimimaru released this 3 months ago | 0 commits to master since this release

    TRBot v2.3.1, featuring custom routines, critical bug fixes, and numerous refinements.

    Summary of changes:

    • Fixed insecure WebSockets failing to connect.
    • Fixed macros being case-sensitive.
    • uinput controllers on GNU/Linux have been rewritten in evdev. The default raw minimum axes values on the controllers have also been changed from -32767 to 0.
    • Added configuring routines via a new RoutineData table in the database. Custom routines are supported as well, similarly to custom commands.
    • Virtual controller axes handling is fixed for vJoy and axes handling in general has been made consistent across the board.
    • Supported decimal values for the MinAxisVal and MaxAxisVal columns in the Inputs table in the database. These values are now restricted in the range of 0.0 to 1.0.
    • Added a DefaultAxisVal column in the Inputs table. This determines the at rest value of the axis when it's released and allows for better adapting each axis for its intended purpose.
    • A new message_prefix setting is available in the database. If not empty, the bot will prepend the ValueStr of this prefix to each message it sends.
    • Added a new UserSimulateCommand to simulate a user. This utilizes a markov chain text generator to create a sentence based on what the user typed in chat, excluding inputs and commands. This is an opt-in feature via the UserSimulateManageCommand.
    • Improved the performance of the UpdateEveryoneAbilitiesCommand by roughly 50x!
    • Custom commands and routines can be written in a more robust and efficient way that uses far less memory.
    • ChatterBot integration has been adjusted to be cross-platform.
    • Fixed many outstanding issues with input exercises. They no longer fail on input sequences that look correct.
    • Added an InputLeaderboardCommand to show a leaderboard regarding users' valid input count.
    • All predefined GameConsoles have had their inputs revised for consistency, making it seamless to switch among them.

    To run the main application, locate the TRBot.Main binary for your platform and execute it.

    Please read the wiki for your use-case.

    IMPORTANT for those upgrading from 2.3:

    • All predefined GameConsoles now use different default button and axes values. The easiest way to use these is to close TRBot, delete all predefined consoles in the database, set the first_launch and force_init_default settings to 1, then restart TRBot.
    • Changes in the MinAxisVal and MaxAxisVal ranges may cause your axes to behave incorrectly. You will need to change these values on each axis to fix the problem. Please consult the documentation here to learn how to define your axes values.
    • Consult the updated custom commands documentation to learn how to rewrite your custom commands in the more robust, efficient way.

    IMPORTANT for those upgrading from 1.x releases: Please read the migration guide and download the TRBotDataMigrationTool if you're upgrading from 1.8!

    To learn how to manage data in the SQLite database, please read the guide for managing data.

    Please file an issue if you encounter any bugs so we can address them as soon as possible.

    Downloads
     
  • Stable 2.3 36dd876f3c

    2.3 Release

    kimimaru released this 4 months ago | 43 commits to master since this release

    TRBot v2.3, featuring WebSocket support, LibreTranslate integration, and vastly improved macro parsing.

    Summary of changes:

    • The macro preparser has been rewritten from scratch to fix bugs and improve performance. Recursive macros are now parsed in-place, yielding better accuracy. Performance has been improved by roughly 2x, memory usage has been reduced by roughly 2x, and there are no longer limits on dynamic macro arguments!
    • A new WebSocket client service is available by setting the ValueInt of the client_service_type setting to 2. TRBot can now connect to a WebSocket server and read inputs from its responses! This also supports secure WebSockets.
    • LibreTranslate integration! Translate text through TRBot!
    • Fixed integer overflows when parsing inputs, causing them to have negative durations.
    • Fixed the total duration of input sequences being calculated incorrectly.
    • Addd a separate permission for starting input mode votes.
    • Updated Json.Net from 12.0.3 to 13.0.1.

    To run the main application, locate the TRBot.Main binary for your platform and execute it.

    Please read the wiki for your use-case.

    IMPORTANT: Please read the migration guide and download the TRBotDataMigrationTool if you're upgrading from 1.8!

    To learn how to manage data in the SQLite database, please read the guide for managing data.

    Please file an issue if you encounter any bugs so we can address them as soon as possible.

    Downloads
     
  • Stable 2.2.1 18b5e12c03

    2.2.1 Release

    kimimaru released this 6 months ago | 81 commits to master since this release

    TRBot v2.2.1, featuring bug fixes, quality of life changes, and LiveSplitOne integration.

    Summary of changes:

    • The license has been changed from AGPL 3.0 or later to AGPL 3.0 only.
    • LiveSplitOne integration! Control your speedrun timer directly through TRBot!
    • Added a built-in Game Boy Color console.
    • Added a LowercasePreparser to fix regressions with text casing preventing inputs from being executed.
    • Added convenient new moderation commands for silencing, unsilencing, and listing silenced users.
    • Fixed an oversight in ParsedInput equality checks, fixing input exercises.
    • Improved exception handling for executing arbitrary code with the ExecCommand or ExecFromFileCommand. Exceptions with arbitrary code will no longer take down the entire bot.
    • Added the ability to have a set of periodic messages the bot rotates among.
    • Added permissions to add/remove input macros, input synonyms, and memes.
    • Added a permission for stopping all inputs.
    • External files, such as the game message, bingo pipe, and chatbot pipe, now read paths relative to the executable location instead of the Data folder if absolute paths are not in use. In the database, this means "GameMessage.txt" turns to "Data/GameMessage.txt".
    • The bingo and chatbot pipes are now by default created in the OS temp folder. This prevents them persisting in the data folder, fixing issues copying/pasting the folder.
    • Updated TwitchLib from 3.1.0 to 3.2.0.

    To run the main application, locate the TRBot.Main binary for your platform and execute it.

    Please read the wiki for your use-case.

    IMPORTANT: Please read the migration guide and download the TRBotDataMigrationTool if you're upgrading from 1.8!

    To learn how to manage data in the SQLite database, please read the guide for managing data.

    Please file an issue if you encounter any bugs so we can address them as soon as possible.

    NOTE: Due to an open bug in Gitea, this release has duplicate binary downloads. The files are identical, so there's no issue downloading one over the other.

    Downloads
     
  • Stable 2.0 2ddc8a6356

    2.0 Release

    tdeeb released this 11 months ago | 188 commits to master since this release

    TRBot v2.0, a major rewrite and refactoring of the entire codebase.

    There are far too many changes to list. The most notable changes are:

    • The codebase has been split into separate projects designed for specific purposes.
    • The codebase has been cleaned up tremendously with better programming practices. This includes more emphasis on dependency injection and SOLID principles.
    • All data is now in a SQLite database. This allows most data to be changed at runtime, makes the data far more scalable, and allows easily searching and filtering through data.
    • Consoles are flexible - you can add and remove inputs from them, and even create entirely new consoles on the fly.
    • Enhanced permissions system - user abilities determine who can do what. Enable or disable an ability on a user indefinitely or for a specific amount of time.
    • MANY new bot features - periodic inputs, teams mode, custom commands, mid-input delays, and more!

    To run the main application, locate the TRBot.Main binary for your platform and execute it.

    Please read the wiki for your use-case.

    IMPORTANT: Please read the migration guide and download the TRBotDataMigrationTool if you're upgrading from 1.8!

    To learn how to manage data in the SQLite database, please read the guide for managing data.

    This is TRBot's largest release yet, and with so many changes, there are bound to be issues. Please file an issue so we can address it as soon as possible.

    Downloads
     
  • Stable 1.8 cafd06d5d0

    1.8 Release

    tdeeb released this 1 year ago | 403 commits to master since this release

    TRBot v1.8.

    • Fixed InputHandler releasing already released inputs, causing problems with specific axis inputs.
    • Fixed memes breaking valid inputs.
    • Dynamic macros can now take in hold ("_"), release ("-"), simultaneous ("+"), and port-specific ("&") inputs as arguments.
    • Fixed the macro parser list not being updated when reloading bot data.
    • Made input exercises give greater credit rewards and prevented inputs the user doesn't have permission to perform from showing up in them.
    • ValidInputsCommand no longer displays inputs a user doesn't have access to.
    • Fixed being able to set a user's level to your own with SetLevelCommand.
    • Macros are now sorted alphabetically.
    • MacrosCommand and MemesCommand have been renamed to ListMacrosCommand and ListMemesCommand, respectively.
    • Refactored console button and axes definitions to use InputButton and InputAxes structs, and simplified the axes code.
    • No longer check for the presence of savestate buttons when attempting to view savestate information.
    • The chatbot has been rewritten to use sockets and pipes. It is now much more responsive.
    • A new VIP access level has been added between Whitelisted and Moderator.
    • More commands:
      • ReverseInputCommand allows you to easily view inputs in a natural sentence.
      • NumRunningInputsCommand lets you view how many concurrent input sequences are running.
      • CmdAccessLevelCommand lets you view the access level required to perform another command.
      • UptimeCommand gets the bot's uptime.
    Downloads
     
  • Stable 1.7.1 256d80974f

    1.7.1 Release

    tdeeb released this 1 year ago | 439 commits to master since this release

    TRBot v1.7.1. If you're on 1.7, it's highly recommended to upgrade to this version.

    • Fixed macros failing to parse due to changes in the RegexOptions used.
    • Added a new TerminalClientService and TerminalEventHandler, which allow TRBot to be used through the console window it runs in.
    • Added a ClientSettings field in Settings.txt. The ClientType field determines whether TRBot will use the Terminal or connect to Twitch chat (0 and 1, respectively). Changes to this setting apply only once the bot is restarted.
    • Updated the tutorial link in TutorialCommand.

    Please see the Getting Started wiki page for setting up TRBot.

    Downloads
     
  • Stable 1.7 f7ad64e134

    1.7 Release

    tdeeb released this 1 year ago | 443 commits to master since this release

    TRBot v1.7.

    • New multi-controller input syntax: "&1right &2left" will press "right" on player 1's controller followed by "left" on player 2's controller.
    • Virtual controllers now have an accurate input tracker telling which input names, buttons, and axes are pressed/released, making it easy to get more information about their states. This fixes incorrect input callback execution times (now properly invoked on UpdateController).
    • Greatly improved the performance of expanding repeated inputs, and allowed repetition for triple digits (Ex. "[a]*999").
    • Fixed the bot freezing entirely if an unhandled exception is thrown while running a command.
    • More configuration options:
      • All existing bot messages and message settings moved to a MsgSettings field in Settings.txt.
        • Existing messages are migrated to this new structure on startup.
      • Messages displayed upon being hosted, users subscribing, the bot reconnecting, and welcoming a new user are now configurable and can be turned off by setting them to empty strings ("").
    • More commands:
      • ListPressedInputsCommand will list the currently pressed buttons and axes on a given virtual controller port.
    • Allowed whitespace in input synonyms.

    Please see the Getting Started wiki page for setting up TRBot.

    Downloads
     
  • Stable 1.6 2bac598b86

    1.6 Release

    tdeeb released this 1 year ago | 460 commits to master since this release

    TRBot v1.6.

    • Upgraded project from .NET Core 2.1 to 3.1.
    • ChatterBot integration implemented via ChatCommand.
    • More input options:
      • Globally restrict inputs based on access level.
      • Console-specific input synonyms are defined in BotData.txt.
        • Add one with AddInputSynoynmCommand, remove one with RemoveInputSynonymCommand, and list them with ListInputSynonymCommand.
      • Added input callbacks (Ex. logging when state 1 was saved when "ss1" is pressed).
    • More configuration options:
      • The bot's character message limit can be defined in Settings.txt.
      • The bot's periodic message can be defined in Settings.txt.
    • More commands:
      • ReverseCommand reverses the viewer's message.
      • ExerciseCommand gives the viewer an input exercise to solve for credits.
      • ClearGameLogsCommand clears all game logs.
      • ExportBotDataCommand exports a copy of all bot data files into a sub-folder of the Data folder.
    • Code refactoring:
      • Abstracted client integrations into an IClientService interface, and implemented one for Twitch.
      • Added a service-agnostic event handler base, IEventHandler, and implemented one for Twitch.
      • Decoupled message sending and routine updates by moving them to separate classes.
      • All external file operatings are protected under a single locked object, with the exception of chat bot prompt and response files (due to the interaction with the Python script).
    • Fixed thread-safety issues by replacing many Dictionaries with ConcurrentDictionary.
    • Let viewers opt out of bot stats and clear their stats.
      • OptStatsCommand toggles opting out of stats, and ClearStatsCommand clears stats.
    • Renamed "group duel" to "group bet" and fixed GroupBetRoutine ending before the specified time.
    • Fixed the working directory not always pointing to where TRBot is launched from.
    • Added license notice to the top of each source file.

    Please read the wiki for information on getting started.

    Downloads
     
  • Stable 1.5 1968a4e26f

    1.5 Release

    tdeeb released this 2 years ago | 500 commits to master since this release

    TRBot v1.5.

    • Updated license to AGPL-3.0.
    • TwitchLib updated from 3.0.1 to 3.1.0.
    • Linux virtual controller support via uinput.
    • Abstracted virtual controller API with switchable virtual controllers at runtime.
    • ~1000x faster input parser, and several parser bug fixes.
    • Improved performance of macro population.
    • Assignable invalid button combos (Ex. prevent the a+b+start+select soft reset on GB/GBC).
    • Reconnection attempts on disconnect.
    • Savestates are now normal inputs that can be used in command strings.
    • Experimental PC game support via xdotool on Linux.
    • More configuration options:
      • Configurable bot connection message.
      • Restrict specific inputs based on user access level.
      • Adjustable sleep time to use less CPU (previous calculation was broken and didn't sleep at all).

    Please read the wiki for information on getting started.

    Downloads
     
  • Stable 1.0 1d00cab9d0

    1.0 Release

    tdeeb released this 2 years ago | 560 commits to master since this release

    Initial TRBot release, providing Twitch connection, vJoy integration for controller input, and more.

    Please read the wiki for getting started.

    Downloads