• forcebot-rs-2.0

    1 Open
    1 Closed

    Twitch bot written in rust

    High Level Acceptance Criteria


    • For Streamers, an easy way to setup & control bot functionality
    • For Channel Chatters, play bot games and interact with the bot with easy intuitive CLI-like commands
    • For Custom Module Developers , Custom Module API and guidelines are provided to add custom functionality

    Requirements Details


    Streamers & Bot administrators should be able to easily deploy the chat bot with some built in functionality

    Command responses can be customized based on the target chatter's role. Elevated chat commands should require special channel roles to run.

    Custom Module API is provided for Custom Module Developers so they're not required to check on twitch api rate limits for bot responses. Custom Module API should provide a way to access & modify module level persistent variables

    Some Built in Custom Modules can be included

    Example Custom Modules #todo


    • Pyramid Indicator #todo
    • Target Pyramid Builder #todo
    • OnLive indicator #todo

    Specification #todo


    Elevated commands require special channel roles to run. In general, roles from most privileged to least are :

    • Bot Admin
      • the admin must work with the bot in the chat to be recognized as having a temporary channel role
    • Broadcaster
    • MOD
    • VIP

    Guest Badges can be given temporarily by those of the same role level or higher

    The bot could be set to Silent mode by a MOD, Broadcaster, or Admin chatter. The bot should be Silent on live stream automatically

    Bot Responses stay within twitch rate limits, but are generally queued if the bot faces a rate limit.

    The bot continually loops through chat responses until applicable bot action can be done

    Bot responses should be adjusted so it doesn't trigger other bot prefixes

    Bot Modules


    Bot Objects are grouped into Modules that can be disabled / enabled by channel by Moderators, Broadcasters, or Bot Admins . By default, loaded modules are enabled by default

    Bot Objects #todo


    Bot Objects are loaded into the bot and are used during the life of the bot

    Bot Objects must be loaded as part of a package

    Listeners

    Specify conditions to listen within a channel for including

    • sender name
    • sender badge
    • custom conditions given msg content or info

    Users can define a callback function for the listener to execute using chatter or bot data

    Commands

    Commands are a type of listener that trigger from a prefix character or phrase and for a min badge role

    Special AdminOnly commands can be defined

    Routines #todo

    Implementation


    The bot will be written in rust. If data persistence is required, postgres db might be used

    Future Enhancements


    Enhancements left for future projects

    • Port forcebot_rs & original modulatingforcebot functionality
    • StreamElements points to Bot Gamba Stocks
    • dynamically load custom crates or package crates (binaries w a library)?