GIFBot is a Twitch chat bot created by fiercekittenz (yours truly), which monitors chat and plays sound effects paired with animated gifs on-screen while streaming. It creates a unique, interactive experience for viewers! The bot runs as a standalone Windows application to provide a higher level of control than a cloud-based bot. The main window can be resized to cover the entire streaming surface and window captured + filtered with a chroma key in popular broadcasting programs such as OBS or XSplit! This bot is completely free!
GIFBot – C# Version
The C# version is the latest and greatest version of GIFBot. It allows us to do so much more than the previous iteration of GIFBot.
3/24/17 – NOTE: Some users are experiencing virus scanning issues with the released/stable version 4.2 previously linked here. Some virus scanners are saying it’s malware, and although I assure you that it is NOT, I fully understand people being freaked out. I’ve removed the link to v4.2 for now and am putting the link to the test version below. I believe it to be related to a combination of updated virus definitions by AV companies and outdated libraries I use for GIFBot.
I’m actively working on getting this ironed out! Thank you for the reports and your patience. The current test version has a lot of new features and does NOT trigger virus alerts. If you want to use the current test version, please feel free to download here, but bear in mind it is a test version and may have some bugs:
Please feel free to join my Discord here to report any bugs or suggestions: discord.gg/fiercekittenz
New features with the C# version:
- Ability to play videos!
- Use MP3s for audio clips!
- No need to provide a specially formatted GIF file!
- Easier to navigate GUI!
- Trigger Board
- More flexible GIF management
- Trivia Game (configurable!)
- MORE!!! OMG SO MUCH MOAR!
Features in the Test Version (see full notes below):
- GIFBot Currency
- Battle Game
- Captions on GIFs
- Animation variants
- Various bug fixes…
Note About Windows Defender and Antivirus Software:
GIFBot uses a connection to Twitch’s IRC servers to read and write chat messages. As such, antivirus software will sometimes raise a false positive on GIFBot. It will quarantine GIFBot.exe and treat it like a Trojan. This is a false positive (bold italic underline for emphasis, because I’m super annoyed by this). You will need to add an exception on GIFBot to use it if you have this problem and want to use it. At this time, VirusTotal.com only flags Kaspersky and ZoneAlarm. All other 55 AV software suites are happy with GIFBot.
If you still feel leery about using the application, I completely understand. You may always reach out to me on Twitter or my Discord server where we have a GIFBot room: discord.gg/fiercekittenz
If you’d like to advertise that you’re using GIFBot on your stream, below is an image you can use in your panels:
TEST VERSION v4.4l (4/8/17):
- Fixed a bug with the Battle Game such that it wouldn’t use Ankhbot currency correctly.
- Fixed a bug where the Battle Game settings weren’t correctly displaying saved values.
- Added a hotkey and button for stopping all animations and going into streamer-only mode. You can trigger animations, but no one else can while this is on. The hotkey is Shift+Control+End. Super helpful if you have long animations.
- Added User Groups to the GIF Manager. You can grant access to use animation commands specifically to any users in one of these groups.
TEST VERSION v4.4k (3/24/17):
- Setting the QA Game to accept the first correct answer will now end the game immediately.
- !gifs will now also work to show the available commands.
- A volume control for the TTS option is in the QA Game (Default: 100%).
- Cleaned up the !gif output.
- Added a viewers panel to the Bot Settings dialog. You may now view who is in your database and their status. This allows for viewer management as I add more database-centric features in the future.
- Fixed a bug where several cheer-capable animations would queue up if they all met the requirements. Instead, it will now choose the highest qualified animation (e.g. a cheer500 won’t trigger cheer100 AND cheer250 AND cheer500).
- Animations can now have variants. They use the same settings as the primary animation (cooldown, positioning, etc). You can vary the animation file and/or sounds. If one or the other isn’t present, it will use the default. You can use the same animation, but vary the sounds or vice-versa.
- Animations now have a subscriber cost field. Note: This is for Ankhbot integration only. If you’re using another bot, you’re responsible for the costs on your own commands there.
- The streamer’s oauth field has been added back as an optional bot setting. If you are partnered, this allows GIFBot to retrieve subscribers. It is not necessary unless you use the new GIFBot currency option, want subscribers to gain currency at a higher rate, AND are partnered.
- Added caption options to animations.
- Introducing GIFBot Currency (default: !gifbits). If you are using a whisper-capable bot and have found the spam to be a bit too much, now you can manage your own currency within GIFBot. This will allow us greater flexibility later to add more games and currency-rich features.
- Adding currency (mod only): !gifbits add [viewer] [amount] (viewer can be +viewers if you want to add to all in the channel)
- Gifting currency: !gifbits gift [viewer] [amount]
- Trading currency to another, primary bot (idea courtesy of Danimalsounds): !gifbits trade [amount] – Note that you can restrict trading to the main currency bot to subscribers only.
- Checking your currency: !gifbits
- Note: Please don’t be silly and name your gifbot currency the same as another bot command 🙂 It will cause problems.
- Fixed a bug where the channel name was doing a case-sensitive comparison and causing crashes on individuals who didn’t have lowercase channel names in their bot’s settings.
- Fixed a bug where profiles would not reconnect to Twitch servers when loaded.
- Added a way to export and import animations. You can export to an XML file that only has the animation data. When you import, you can choose to overwrite or add on to your existing animations. Bear in mind this will save to your currently loaded profile after importing.
- Added a helper button above visual placement to let you automatically center an animation to the main window.
- Added the ability to toggle the visibility of the Control Panel. If you right-click on the main window, you can access a menu that will let you do this AND launch the other bot dialogs. This will reduce clutter for those who don’t want the additional window.
- Moved logs to the control panel to further consolidate windows and desktop space requirements for GIFBot. You may resize this window, as-needed.
- Loaded profiles will save to a “last loaded” file so that if you’ve loaded a custom profile, that same profile will load next time you launch GIFBot.
- Added the !gifroulette command. It will choose a random animation from the pool of animations that the user is qualified for triggering. All trigger requirements apply here, so if there’s nothing the user can trigger due to cooldowns or other settings on the animation, it won’t do anything.
- Removed the import from legacy GIFBot option. It is no longer valid.
- The Q&A game now has new options: You may set it so that only the first correct answer wins, though it will continue to count down however long your answer period is so it doesn’t cut the Q&A game short and spam chat. It also builds suspense! You may also now set it so that only whispers are accepted as valid input to the bot for answers. This will cut down considerably on spam if you have a lot of viewers participating.
Cached Download: https://drive.google.com/open?id=0B9_fmVAdsNgsX01pckpBYUhXU0U
- Fixed a bug where follower-only flags were no longer functioning.
- Fixed a bug where the QA game wouldn’t count answers including emotes.
- The log window should no longer dock to the bottom of the main window, causing it to bounce off screen the next time you load the bot.
- The main menu bar has been moved to the Control Panel. This small window will be the way you can control GIFBot remotely. It will no longer take up valuable window-space on the primary dialog.
- It is now easier to input QA questions with proper tab order and Question textbox selection when the dialog opens.
- Fixed a bug where under some Windows shutdown circumstances, the configuration file would become incomplete.
- Fixed a bug with bits not being read correctly.
- GIFBot will now use twitch usernames instead of display names. It was bugging out if users had not set display names!
Cached Download: https://drive.google.com/open?id=0B9_fmVAdsNgsdmhFdFRZZ1RKRVk
- You no longer need to run in administrator mode.
- All animations are uninterruptable by default. That customization has been removed as it was prone to user error. Animations are also placed into a queue and handled in first-in-first-out order.
- Default duration for an animation is now set to 2000 (2 seconds).
- Fixed a bug where external subscribers weren’t being found.
- GIFBot will now check for new followers and you can set a session follower threshold on animations so they trigger after N number of followers (e.g. 10 follows = party gif).
- Updated connectivity to follow web best practices for retrieving data from Twitch API. This means you no longer need to input your streaming account’s oauth key.
- You may now add a message that can be sent to chat after the animation is done playing. This could be a simple chat message, or another bot command.
- The log window now has scrollbars.
- The log window and trigger panels will no longer dock. They will remember where they were located when you exit the application.
- The main window will no longer put the profile name in the title bar. This was causing issues with XSplit finding the window when profile changes were made.
- Changed sound engines in preparation for song request support.
- Fixed a bug where changing profiles would not reconnect to Twitch with the new credentials.
- Movie files will no longer display black bars. To avoid a black flicker on loading, however, you may tweak its display time in the positioning section of the gif manager. (note: you must have Windows Media Player installed for this to work.)
- Added the concept of Power Users. These individuals will not be held down by the cooldowns on animations. Meaning, they can trigger animations even if they have been used recently. Added as a separate list for quicker lookup.
- You can now use !gifbot subadd <name> and !gifbot subremove <name> to manage subscribers. Moderators can use these commands to help out if you get external subscribers while you’re busy streaming.
- Added support for cheering. You may now set a cheering requirement to trigger an animation. It will automatically trigger when the cheer amount is reached. Cheering support is only for Twitch Partners.
- You may now organize your animations into categories. This allows for dragging/dropping animation commands between categories, adding and removing categories, and assigning categories to animations when creating new ones. All existing commands will go into the “Default” category, which is required.
- Added a trivia game! You can setup questions and answers in your Bot Settings dialog. This is very new. More features will be added to this as I take feedback from viewers and users of the bot. For now you can enable or disable as you like.
- Added profiles! You may now create a new profile separate of your default and modify it. It will save everything to a separate file. You can use this feature to have themed sets, or to share bot functionality in a dual streaming household.
- You may now multiselect to delete commands from the GIFManager list.
- Added an enabled/disabled flag. Default: enabled.
- You may now bulk disable or enable commands.
- The channel owner may always activate a command regardless of settings. Note: Global cooldown still applies — for your own safety.
- Added the manual back to the installer! It’s updated with new GIFBot screenshots.
- Adding a new feature to allow streamers to denote how many times a command needs to be used before it triggers the animation. You can use this in busier channels that may want to have additional controls beyond the cooldowns.
Older, Java Version (No Longer Supported)
The older version was written solely in Java. This has now been deprecated, though I keep it functional just in case anyone on a Mac or Linux computer are using it.
The download package includes the Java JAR and a PDF manual explaining all of the features!
Note: You will need the Java SDK version 8 in order to run the JAR file!
Java Version History
v15 (9/19/16): Twitch updated their security for retrieving followers. In order to do this properly, you now need to provide your oauth key for your streaming account in addition to the bot’s account. The Bot’s oauth is used for logins only. The streaming one is required to pull down all of your follower information.
v14 (4/10/16): Made the new Twitch AWS chat server the default. By now everyone should be on the new chat servers (irc.chat.twitch.tv, port 80). Make sure to switch over if you haven’t already! Also make sure your firewall allows for port 80 – on many it’s blocked by default. I have gotten rid of the “alternative currency command” field on GIFs. It was silly and wouldn’t have worked in any capacity since GIFBot had no way of knowing if the command succeeded or not. Instead, HnossofHEL came up with a really good workaround: whispers. You can daisy-chain commands from one bot to another and have your main bot send whispers. There is a new setting in Bot Settings for adding an authorized whisperer and a field on GIFs to restrict an entry to whispers only. These are both off by default. The manual has been updated with a 5th step to detail how you can use this feature for currency manipulation! It is a bit much for setup, but quite powerful in controlling GIF usage!
v13 (3/10/16): Oops. I added some logging to debug for another streamer. You can enable logging in your Bot Settings. Logging could fill up your hard drive, hence the reason I pushed a whole version for this!
v12 (3/10/16): Added the ability to designate your Twitch chat server and port. Some partnered streamers were moved to the new AWS solution and GIFBot wasn’t working for them. If you’re on the new servers, your server should be “irc.chat.twitch.tv” and your port is now “80”.