-
-
Notifications
You must be signed in to change notification settings - Fork 0
FAQ
Version: 1.5.11
- Common Errors
- Bot Detection & Security
- Wheel of Names Connection
- Configuration & State
- Commands & Operations
Error: [Code: InvalidState] Ticket count inconsistent
Cause: The number of tickets in the internal tracker doesn't match the sum of entries.
Fix: Run !giveaway p config <profile> check. It will recalculate tickets.
Error: [AntiLoop] Ignoring trigger: Bot Token Detected
Cause: The bot heard itself or another bot responding to it.
Fix:
- Ensure other bots (Nightbot, etc.) aren't repeating the exact command.
- Check
AllowedExternalBotsingiveaway_config.json.
Cause: Bot cannot find a valid config source. Fix:
- If RunMode is
FileSystem, Text Source: "Entries: %Giveaway Main Entry Count% | Winner: %Giveaway Main Winner Name%"r/config/`. - If RunMode is
GlobalVar, ensureGiveaway Global Configvariable is populated.
-
Entropy Check: Analyzes username randomness. e.g.
asdkljfkj123has high entropy.JohnDoehas low. - Account Age: Checks how old the account is (requires Streamer.bot to have this data available).
-
Regex: Checks against
UsernamePattern(e.g. banning "hoss00312_...").
Check logs for [Entry] Rejected.
-
Reason: Entropy: Disable
EnableEntropyCheckin config. -
Reason: Account Age: Lower
MinAccountAgeDays.
- Cause: Invalid API Key.
-
Fix: Update
WheelOfNamesApiKeyglobal variable. Wait for bot to encrypt it (check logs).
- Cause: Browser source not open or not connected.
- Fix: Ensure the overlay is active in OBS.
-
FileSystem: Config in JSON only. Fast, but Streamer.bot vars won't update. -
GlobalVar: Config in Streamer.bot variables only. Good for UI editing. -
Mirror⭐: Best of both - syncs file ↔ variables bidirectionally.
A: Check these in order:
- Is giveaway open? (Run
!startfirst) - Trigger set? (Streamer.bot must have a Command trigger for
!enter) - Run
!giveaway system testto diagnose - Check logs in
...logs/General/YYYY-MM-DD.log
A: Yes! Edit triggers in profile config:
"Triggers": {
"command:!ticket": "Enter",
"command:!join": "Enter"
}A:
- Create profiles:
!giveaway profile create Weekly -
Batch Start:
!giveaway profile start *(Starts ALL profiles) -
Targeted:
!giveaway profile start Main,Weekly - Each profile has independent state/settings
A: Enable ToastNotifications in your profile config. You can get alerts for Winner Selected, Giveaway
Open/Close, and more.
(Requires Windows 10/11 and Streamer.bot notifications enabled)
A: Subscribers get extra tickets in the drawing pool.
-
SubLuckMultiplier: 2→ Subs get 3 total tickets (1 base + 2 bonus) -
SubLuckMultiplier: 0→ Everyone gets 1 ticket (fair mode)
A: Yes! Use: !giveaway regex test <pattern> <text>
Example:
!giveaway regex test (?i)giveaway.*open The GIVEAWAY is NOW OPEN!
→ ✅ MATCH: "GIVEAWAY is NOW OPEN"A: Three ways:
-
JSON File (recommended): Edit
giveaway_config.jsondirectly -
In-Chat:
!giveaway profile config Main MaxEntriesPerMinute=100 -
Streamer.bot Variables: Edit
Giveaway Main Max Entries Per Minute
A:
-
DumpEntriesOnEnd: true: Saves one file when you run!end(final snapshot) -
DumpEntriesOnEntry: true: Saves entries as they come in (real-time, batched every N seconds)
A: Set LogToStreamerBot: false in Globals. File logs cannot be fully disabled but can be set to info level
(minimal overhead).
A: Legitimate users may get blocked during high-traffic periods. Recommended: 60+ for small streams, 200+ for large.
A: Add "TimerDuration": "10m" (or "30s", "1h") to your profile config. The bot will automatically run !end
when time runs out.
A: Yes! You can override any message (like "Winner Selected") by adding a "Messages" block to your config, or
by simply setting a global variable like Giveaway Main Msg Winner Selected. See the User Guide
for details.
A: Wheel of Names has free. Check their page.
A:
- OBS Source Name: Must match EXACTLY (case-sensitive)
- Scene Active: OBS must be on the scene you configured
-
Test: Run
!drawand check Streamer.bot logs for "OBS Updated" message - Fallback: Manually verify the Wheel URL in logs and paste to browser
A: Yes, via Wheel of Names API settings. Customize colors, fonts, spin speed:
"WheelSettings": {
"ShareMode": "copyable",
"Theme": "dark",
"Colors": ["#FF5733", "#33FF57", "#3357FF"]
}See Wheel API Docs for full options.
A: The bot falls back to local RNG (random number generator). Winner is still selected and logged, but no visual spin.
A: The bot uses Encryption-at-Rest (AES-256-CBC) to protect your key from casual viewing, accidental stream leaks, and screen captures.
- How it works: The plain text key is encrypted using a unique "Salt" generated for your specific installation.
-
Where is the key?: The encrypted blob (
AES:...) is stored in Streamer.bot variables. -
Where is the salt?: The salt is stored in your
giveaway_config.json.
Trade-off: This makes the bot fully portable (you can copy the folder to a new PC and it works), but it means if someone steals your entire folder (config + database), they could theoretically decrypt the key. It is designed to prevent accidental leakage, not defense against a hacker who already has full access to your hard drive.
A: No. Once encrypted, the key appears as a random string of characters (e.g., AES:8123...) in the Streamer.bot
UI. Moderators cannot reverse this to see the original key.
A: Tested successfully with 10,000+ entries. Performance depends on:
- Your PC (RAM/CPU)
-
StatePersistenceMode(Fileis slower on HDD) - Entry validation rules (regex is CPU-intensive)
A:
-
Disable verbose logging: Set
LogLeveltoINFO(notTRACE) -
Reduce disk writes: Set
StateSyncIntervalSeconds: 60(from default 30) -
Disable real-time dumps: Set
DumpEntriesOnEntry: false
A: Wheel of Names API has rate limits. The bot includes automatic retry with exponential backoff if you hit limits.
A: Run !giveaway config gen to create a default config. Then customize as needed.
A: The bot detected its own message and ignored it (anti-loop protection). This is normal and prevents infinite command loops.
False positives: If you see this for legitimate user messages, ensure your Streamer.bot isn't stripping invisible
characters (\u200B).
A:
-
Enable exposure: Set
ExposeVariables: truein profile config -
Check syntax: OBS text sources use
%VariableName%NOT{VariableName} - Refresh: Sometimes OBS needs a scene switch to update
A: Check StatePersistenceMode:
- If
GlobalVarand Streamer.bot crashes → data lost - Solution: Use
BothorMirrormode
A: Must confirm deletion with full command:
!giveaway profile delete Weekly confirm(Safety measure to prevent accidental deletion)
A: Windows 10/11 only. Check:
- Windows Settings → Notifications → Streamer.bot must be enabled
- Focus Assist might block (check system tray icon)
| Error Message | Meaning | Solution |
|---|---|---|
Missing 'userId' in trigger args |
Streamer.bot didn't pass user data | Check trigger configuration |
RATE LIMIT: rejected |
Too many entries too fast | Normal - spam protection working |
Entry rejected: Low entropy |
Username appears to be keyboard smashing | User needs a real username |
Account too new |
Account age < MinAccountAgeDays
|
Intentional - bot prevention |
Giveaway not active |
User tried !enter when closed |
Normal - tell them to wait |
Encryption check failed |
API key encryption error | Re-enter API key in plain text |
Config deserialization failed |
JSON syntax error | Run !giveaway config check for details |
File system access denied |
Permissions issue | Run Streamer.bot as admin OR move to unrestricted folder |
Wheel API returned 401 |
Invalid API key | Verify key at wheelofnames.com |
Wheel API returned 429 |
Rate limit exceeded | Wait 60s, reduce draw frequency |
Failed to flush entries to dump |
Disk I/O error | Check available disk space |
OBS connection failed |
OBS not running or scene/source mismatch | Verify OBS is open + scene/source names |
-
Check Logs:
.../Giveaway Bot/logs/General/YYYY-MM-DD.logoften has answers -
Run Diagnostics:
!giveaway system testfor detailed health check -
Config Validator:
!giveaway config checkfor JSON errors - GitHub Issues: Report bugs or request features (if GitHub repo available)
← Back to USER_GUIDE | Advanced Topics → | Quick Reference →