Skip to content
A Java program that interacts with Twitch chat messages to query and display images from specific websites, and can load these images into the Dolphin emulator to "repaint" GameCube and Wii games in real-time.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


ClipArtBot + Real-Time Repainter v0.9.4!

What is ClipArtBot?

ClipArtBot is a program that allows chat members in a Twitch channel to suggest images for ClipArtBot to display. ClipArtBot can be overlayed on the stream so that everybody can see the most recent image generated. Users can type the following commands in chat to make ClipArtBot generate an image:
"!clipart [word]": a clipart image from of the word will be displayed.
"!stock [word]": a stock image from or of the word will be displayed.
"!gif [word]": an animated gif from of the word will be displayed.
"!deviant [word]": an image from of the word will be displayed.
"!booru [word]": an image from of the word will be displayed. (Note: multi-word tags such as "do your best" need to be typed as "do_your_best" for the booru to understand them. This is a limitation of the booru, not of ClipArtBot.)
For example, if somebody says "!clipart taco" in the chat, a clipart image of a taco will be displayed.
The sites ClipArtBot gets its images from do not allow NSFW images, but if an inappropriate image does come up, the channel owner can type "!kill" to remove the image and replace it of a clipart image of "sorry".

What is the Real-Time Repainter?

The Real-Time Repainter is a tool that uses images generated by ClipArtBot to "repaint" the textures of GameCube and Wii games using the Dolphin Emulator. It randomly chooses a given number of dumped textures from the game and replaces them with the image generated by ClipArtBot, which are then loaded with Dolphin. Texture repaints occur in real-time, so you'll see textures change during gameplay.
Note: If Dolphin appears to not be repainting textures in real-time, disable and re-enable the "load custom textures" feature in Dolphin.
Note: Textures generally only change when a loading screen or screen transition of some sort occurs where Dolphin reloads the textures into memory; they won't change immediately when the file containing the texture changes.

ClipArtBot and RTR's settings can be changed in the settings.txt file. Be sure to respect formatting, as it's pretty finnicky at the moment. The following is a description of each option:

OAuth Code: The OAuth Code for the Twitch account that ClipArtBot will connect as.
Server: The server for ClipArtBot to connect to. This should be either or (Twitch is in the process of switching from the latter to the former; at the moment, partnered streamers are generally on while unpartnered streamers are on
Port: The port to connect to. This should probably never be changed from 6667.
Twitch Channel: The Twitch channel ClipArtBot should enter.

Font: The font used when displaying text.
Font Size: The size of the font. Hopefully you didn't need to read this to figure that out.

!get Enabled: Enables the !get command, which allows users to get an image from a random supported site.
!clipart Enabled: Enables the !clipart command.
!stock Enabled: Enables the !stock command.
Use Shutterstock: Uses Shutterstock for the !stock command instead of Bigstock. Shutterstock has more images than Bigstock, but it also has a watermark on them.
!gif Enabled: Enables the !gif command.
!deviant Enabled: Enables the !deviant command. Not recommended for large streams, as the DeviantArt API hangs for several minutes after being queried more than 10 times in quick succession. Hopefully this will be fixed in the future.
!deviant Quick Mode: The DeviantArt API is slow compared to the other APIs ClipArtBot uses, so enabling this will load images more quickly. The downside is that only the 24 newest images of whatever was searched for can be displayed, compared to the 40,000 newest images when this option is disabled.
!booru Enabled: Enables the !booru command.
Bad Word Filter: Enables a filter so that ClipArtBot won't search for anything containing any of the words in swearWords.txt. The sites ClipArtBot gets its images from do not allow NSFW images, but you can enable the filter as a precautionary measure. You can also add words to the .txt file as needed.
Saved Images Enabled: Enables saving the images ClipArtBot generates to a folder.
Saved Images Filepath: The filepath where the images will be saved.

Real-Time Repainter Enabled: When the real-time repainter is enabled, dumped textures from a Dolphin game will be repainted and loaded back into the game. If you are only using ClipArtBot, disable this and ignore the remaining settings.
Texture Dump Filepath: The filepath where the texture dumps are located.
Texture Load Filepath: The filepath where the repainted textures will be saved. Make sure this folder already exists before starting the program.
Number of Textures to Replace: The number of textures to be repainted each time ClipArtBot downloads a new image. If a game has a lot of textures, you might want a larger number. If the chat is very active, you might want a smaller number.
Recheck Dump Folder: Enable this only if you don't have all of the game's textures dumped. ClipArtBot will regenerate the list of dumped files each time it generates a new image, but the program runs more slowly as a result.
Flip Textures: Some games display most of their textures upside-down. This will make repainted textures appear the right way up in these games.

Load Textures from Folder: Repaints every dumped texture with pictures in a folder at random when ClipArtBot is started. Supports .png, .jpg, .gif, and .bmp formats (and probably others).
Folder Filepath: The filepath where the pictures you want to use are located.

Play Midis: Allows chat members to use the !midi command to choose a random midi in a given folder.
Midi Folder Filepath: The filepath where the midis are saved.
Autoplay: Automatically plays midis, even when no midis have been requested by a chat member.
Custom Soundfont: Allows the use of a custom .sf2 soundfont.
Soundfont Filepath: The filepath of the soundfont.

Have fun and happy cliparting/repainting!
You can’t perform that action at this time.