Complete reference guide — setup, features, and troubleshooting
A comprehensive guide to setting up, using, and customising the EVE Online Twitch & Kick giveaway bot.
RustyBot is a desktop application for Twitch and Kick streamers who play EVE Online. It collects giveaway entries from your chat, picks random winners, and automatically looks up their EVE character information — all with flashy animations and sound effects.
If you would like to support RustyBot development you can do that via Ko-fi or via ISK.
Send ISK to IGN "Virxens"
All support is welcomed and very appreciated!
Option A — Installer (Recommended)
Important: To avoid being rate limited, please mod The_Rusty_Bot on Twitch and @therustybot on Kick before running the bot.
C:\Program Files\RustyBot)The first time you launch RustyBot, a setup window will ask for your Twitch channel name. Type it in and click save.
The bot will then attempt to connect to your Twitch chat automatically.
The launcher checks for updates before starting the main application, so you're always running the latest version.
RustyBot has an automatic update system. When an update is available: 1. The launcher detects the new version 2. A download progress dialog appears 3. Updates are installed automatically 4. The main app launches with the new version
Tip: Updates preserve your settings, credentials, and prize data.
RustyBot automatically connects to Twitch on startup:
The bot uses both TwitchIO (the official library) and a direct IRC fallback connection to ensure reliable message reception.
Kick requires additional setup:
Note: Kick supports two authentication methods — OAuth (recommended) and legacy username/password. OAuth is more reliable and secure.
Once authenticated, RustyBot auto-detects your Kick channel and chatroom ID.
At the bottom of the main window, two status indicators show connection state:
Click a status light to manually reconnect if needed.
You can choose which platforms to use in Options → General → Entry Settings:
The main window is split into draggable panels. Each panel has a title bar you can grab to rearrange.
Located at the top of the window:
!ign commandsLocated on the right side. Shows everyone who has entered, with:
Duplicate entries from the same platform are automatically rejected. You can enable "Allow same user on both Twitch & Kick" in Options → General to let the same username enter from both platforms.
Has three sections:
The main display area where winner reveal animations play. Supports 8 different animation styles.
Before you run your first giveaway, you need prizes to give away. Prizes are stored in named lists that you can manage from two places:
Option A — Prize Notepad
Click the Notepad button on the main window to open the Prize Notepad:
.txt file or export your list to shareOption B — Options → Prizes tab
Go to Options → Prizes to manage your prize lists:
Prize Format
When adding prizes you can include a donator name and quantity:
PLEX
PLEX (CCP) -- with donator name
PLEX (x3) (CCP) -- 3 copies with donator
Tip: The dropdown next to the prize input field shows all prizes from your active list, plus "🎲 RANDOM PRIZE 🎲" to pick one at random.
Three ways to set the prize:
Option A — Type it manually
Type the prize name into the prize input field, then click SET.
Example: PLEX
Example: PLEX (CCP) -- with donator name
Example: PLEX (x3) (CCP) -- with quantity + donator
Option B — Select from dropdown
Click the dropdown next to the prize input and pick a prize from your configured lists.
Option C — Use "SET / OPEN" (one-click shortcut)
Click SET / OPEN after typing or selecting a prize. This sets the prize AND opens the draw in one click.
Tip: You can also use "🎲 RANDOM PRIZE 🎲" from the dropdown to pick a random prize from your lists.
Click OPEN DRAW.
What happens: - The button label changes to CLOSE DRAW - Bot announces in Twitch chat: "GIVEAWAY OPEN! Prize: {prize}. Type '!draw' in chat!" - State indicator shows "COLLECTING" - Chat messages matching the join command are now accepted
Note: If you see an error when clicking OPEN DRAW, check that the bot is connected and a prize is set.
While the draw is open, viewers type the join command (!draw by default) in Twitch or Kick chat.
When you're ready to pick a winner:
Note: You can click CLOSE DRAW without picking a winner if you need to cancel. Later, click START DRAW to draw from the same participant pool.
The animation plays in the main display area. You can change the animation style before starting the draw using the dropdown on the main window next to the animation panel, or in Options → Draw Style for more settings.
To change it from the main window:
Tip: Change the animation before opening or starting the draw so it takes effect for the winner reveal.
Available animation styles:
If you used "🎲 RANDOM PRIZE 🎲", a prize reveal animation plays FIRST to show what the prize is, followed by the winner draw.
After the animation, the winner has a set amount of time (default 90 seconds) to confirm by typing any message in chat.
The confirmation timer plays escalating sound effects at different thresholds (15%, 50%, 75%) to add tension.
Tip: You can change the confirmation timeout in Options → General → Timeouts → Confirmation Timeouts.
Once confirmed, the bot tries to resolve the winner's EVE character:
!ignTip: Winners can pre-register their IGN at any time with
!ign <character name>in chat.
You can change how viewers enter in Options → General → Entry Settings.
| Mode | How viewers enter |
|---|---|
| Predefined Command | Type !play, !draw, or !hype in chat |
| Custom Command | Type whatever command you set (e.g. !win) |
| Type Anything | Any message in chat counts as an entry |
If both Twitch and Kick are connected, and "Allow same user on both Twitch & Kick" is enabled, a viewer can enter from both platforms. Each entry is tracked separately with its platform badge.
You can also allow winners to claim from any platform, or require confirmation on the platform their winning entry came from.
Type a prize name in the prize input box and click SET.
Click the dropdown arrow next to the prize input to see:
Click SET / OPEN to set the current prize AND open entry collection in a single click.
The Prize Notepad is a full-featured prize management dialog. Click the Notepad button on the main window to open it.
Prize Lists - Multiple named prize lists can be created, renamed, and deleted - The active list is shown at the top and persists between sessions - Switch between lists instantly using the list selector
Managing Items - Add — Type a prize and click Add Item, or press Enter - Edit — Double-click a prize or right-click → Edit - Duplicate — Right-click → Duplicate to copy an item - Delete — Select items and click Remove, or press Delete key - Undo — After deleting, a toast bar appears — click it to undo - Move — Right-click → Move Up / Move Down to reorder
Batch Operations
- Sort A-Z — Sorts prizes alphabetically (click again for Z-A)
- Clipboard (Replace) — Pastes clipboard contents, replacing the entire list
- Clipboard (Append) — Adds clipboard contents to the existing list
- Import — Load prizes from a .txt file (one per line)
- Export — Save prizes to a .txt file
Search - Type in the search field to filter prizes in real time - The count updates to show matching results
Prize Expansion When adding prizes, you can use quantity notation:
PLEX (x3) (CCP)
This expands to three entries: PLEX (CCP), PLEX (CCP), PLEX (CCP).
Keyboard Shortcuts (within Notepad)
| Key | Action |
|-----|--------|
| Ctrl+I | Import from file |
| Ctrl+E | Export to file |
| Ctrl+F | Focus the search field |
| Ctrl+A | Select all items |
| Delete | Remove selected items |
Common prizes are special prizes that are not automatically removed from the list when won. This is useful for prizes you give away repeatedly (e.g., PLEX, skill injectors).
Manage common prizes in Options → Prizes under the "Common Giveaway Prizes" section.
When using "🎲 RANDOM PRIZE 🎲":
Tip: Random Prize mode also triggers a special prize reveal animation before the winner draw.
When you draw a winner, RustyBot plays a flashy animation in the main display area.
Configure in Options → Draw Style → Draw Style Type:
| Animation | What it looks like |
|---|---|
| Hacking | Matrix-style code boxes cycle through characters, then reveal the winner |
| Triglavian Translation | EVE-themed glyph boxes scan and decode to show the name |
| Node Path Reveal | Lights travel along connecting nodes to spell out the winner |
| Triglavian Conduit | Energy pulses through conduits and reveals the winner |
| Triglavian Code Reveal | Scrolling code columns with participants, eliminates down to the winner |
| Neon Encrypted | Neon glow effects with encryption-style decoding |
| Neural Interface Decode | Network-node style animation |
| Random | Picks a different animation every time |
Each animation has its own speed control in Options → Draw Style → Speed Settings:
| Animation | Speed Options |
|---|---|
| Hacking | Normal, Slow, Very Slow |
| Triglavian Translation | Fast, Normal, Slow |
| Node Path Reveal | Normal, Slow, Very Slow |
| Triglavian Conduit | Fast, Normal, Slow |
| Triglavian Code Reveal | Fast, Normal, Slow |
For the Triglavian Code Reveal animation, additional options are available:
RustyBot has a multi-channel sound system. Configure in Options → Sound.
| Channel | Default | Controls |
|---|---|---|
| Master Volume | 75% | Overall volume for all sounds |
| AI Voice | 70% | Voice announcements |
| Warning Sounds | 60% | Alert and warning sounds |
| Hacking Background | 20% | Ambient hacking sounds during animations |
| Countdown | 60% | Confirmation timer countdown tick |
| Timer Expire | 200% | "Pod alarm" sound when timer expires (boosted for impact) |
During the winner confirmation countdown, escalating sounds play at specific thresholds:
This creates a sense of urgency as time runs out.
RustyBot includes 13 visual themes. Configure in Options → Layout → Color Theme.
| Theme | Description |
|---|---|
| Dark (Default) | Dark grey background, yellow accents |
| Cyberpunk | Deep blue-purple with neon green and pink |
| EVE Online | Dark space theme with blue accents |
| Christmas | Dark green with red accents and falling snow effect |
| Nord | Arctic blue-grey palette |
| Sunset | Warm orange and brown tones |
| Ocean | Deep blues with cyan highlights |
| Matrix | Black background with green Matrix-style text |
| Minmatar | Earthy red-brown EVE tribe theme |
| Gallente | Teal-green EVE faction theme |
| Caldari | Steel-blue EVE corporation theme |
| Amarr | Golden-brown EVE empire theme |
| High Contrast | Maximum readability with high contrast colours |
Note: The theme preview updates immediately when you select a different option in the dropdown.
RustyBot's UI panels can be rearranged to suit your stream layout.
In Options → Layout:
RustyBot supports configurable keyboard shortcuts for common actions.
Configure in Options → Hotkeys.
| Action | Default |
|---|---|
| Open/Close Draw | (unassigned) |
| Select Winner | (unassigned) |
| Abandon Draw | (unassigned) |
| Purge List | (unassigned) |
| Open Options | (unassigned) |
To assign a hotkey, click the input field next to an action and press the desired key combination (e.g., Ctrl+Shift+D).
!ign CommandWhen a winner is drawn, they type in chat:
!ign TheirCharacterName
RustyBot captures this and looks up the character through EVE's ESI API.
Important: EVE2Twitch integration requires the streamer to have the eve2twitch bot active in their channel. Viewers must also register their Twitch account at eve2twitch.space and link their EVE character name there. Without both sides set up, the bot cannot automatically find the winner's in-game name.
If enabled in Options (default: on), RustyBot automatically checks the eve2twitch.space API to find the winner's EVE character name without them needing to type !ign.
The auto-lookup has configurable timeouts: - Auto-lookup Timeout (default: 10s) — How long to wait for the EVE2Twitch response - Quick ESI Timeout (default: 5s) — How long to wait for ESI data after auto-lookup
When an IGN is resolved, RustyBot fetches: - Character portrait (displayed in the info panel) - Corporation name - Alliance name (if applicable) - Character ID
Click the IGN button on the main window to open the IGN Grabber panel.
This panel monitors chat for:
- !ign <name> commands from viewers
- EVE2Twitch bot responses
Results are displayed in a neat table with who said what, and you can copy IGNs with one click.
When a winner's IGN is confirmed, it is automatically copied to your clipboard so you can paste it into your giveaway tracking, spreadsheet, or stream overlay.
IGNs are stored persistently in ign_database.json and are remembered across sessions. If a viewer has previously provided their IGN, it will be used automatically in future draws.
Jackpot mode adds a suspenseful twist to your giveaways.
Enable in Options → Jackpot.
Tip: Use well-known community members, stream team members, or regulars as trigger names for maximum hype.
Certain users should never be eligible to win giveaways (e.g., bot accounts). RustyBot has an automatic and manual ignore system.
The following bot accounts are automatically added to the ignore list and cannot win:
- eve2twitch
- rustybot
- The_rusty_bot
- TheRustyBot
Add usernames manually in Options → Ignore List:
Anyone on the ignore list will be rejected if they try to enter a giveaway.
Prize Poll mode lets your chat vote on what prize to give away.
Note: Prize Poll mode uses your configured prize list as the voting options.
All giveaway results are tracked automatically and persist between sessions.
The History tab shows every win with: - Date and time - Winner's chat username - Prize won - EVE character name (if resolved)
The Leaderboard tab shows: - Usernames ranked by number of wins - Total win count per user
Data is stored in history.json and carries over between sessions automatically.
All chat messages that the bot sends can be customised in Options → General → Chat Messages.
Use these placeholders in your messages — they will be replaced with actual values:
| Placeholder | Replaced With |
|---|---|
{winner} |
The winner's chat username |
{prize} |
The current prize name |
{ign} |
The winner's EVE character name |
{timeout} |
The confirmation timeout duration |
| Message | Default |
|---|---|
| Confirmation Prompt | "Congrats @{winner}! You won: {prize}! Type anything in chat within {timeout}s to confirm!" |
| Auto Lookup Attempt | "@{winner} confirmed! Attempting automatic EVE2Twitch lookup..." |
| Auto Lookup Failed | "@{winner} confirmed! Could not validate IGN automatically. Type !ign |
| Awaiting IGN | "@{winner} confirmed! Please type !ign in chat with your character name." |
| IGN Found | "@{winner} — IGN verified: {ign}. Congratulations!" |
| Issue | Solution |
|---|---|
| "Cannot open draw — no prize set" | Type a prize or select one from the dropdown, then click SET |
| "Bot is not connected" | Wait for the bot to connect, or check Twitch credentials in Options |
| "No participants to draw from" | Make sure viewers are typing the join command (!draw) in chat |
| Winner didn't confirm in time | Click START DRAW again to pick a new winner from remaining entries |
| Animation stuck or not showing | Click ABANDON DRAW, then try again. If persistent, restart the app |
| "No IGN found" for winner | Ask the winner to type !ign <character name> in chat |
| UI panels not where you want them | Go to Options → Layout → Reset Panel Positions |
| Animation is slow or choppy | Try a simpler animation (Hacking box), lower the speed setting, or close other GPU-heavy programs |
| EVE lookup failed | The auto-lookup has a 10s timeout. Winner may not be registered on eve2twitch. Ask them to type !ign manually |
| Kick won't connect | Use the Auth with Kick button in Options → General to re-authenticate OAuth |
| App won't start | Check rustybot_fault.log in the install folder for error details |
| Button | When to Click | What It Does |
|---|---|---|
| SET | Before draw | Sets the prize from the input field |
| OPEN DRAW / CLOSE DRAW | Before/after collecting | Opens or closes entry collection |
| SET / OPEN | Before draw | Sets prize AND opens draw in one click |
| START DRAW | When entries are collected | Closes entries, selects winner, plays animation |
| ABANDON DRAW | During animation/confirmation | Cancels everything, resets to IDLE |
| PURGE LIST | After a draw | Clears all remaining participants |
| IGN | Any time | Opens the IGN Grabber panel |
| Notepad | Any time | Opens the Prize Notepad |
| Options | Any time | Opens the configuration dialog |
| Key | Action |
|---|---|
Ctrl+I |
Import prizes from file (Notepad) |
Ctrl+E |
Export prizes to file (Notepad) |
Ctrl+F |
Focus search field (Notepad) |
Ctrl+A |
Select all items (Notepad) |
Delete |
Remove selected item (Notepad) |
| Hotkeys (F1-F12 / Ctrl+combos) | Configurable in Options → Hotkeys |
If you would like to support RustyBot development you can do that via Ko-fi or via ISK.
Send ISK to IGN "Virxens"
All support is welcomed and very appreciated!
*RustyBot is an unofficial EVE Online tool, not affiliated with CCP Games.*