Conversion Caveats
When converting from StreamElements to other platforms, some behaviors cannot be preserved exactly. This page documents the known differences you should be aware of.
StreamerBot
Timer Messages: Sequential to Random
StreamElements: Timers with multiple messages cycle through them sequentially in order.
StreamerBot: Multiple messages are converted to sub-actions with randomAction: true,
meaning messages are selected randomly instead of in order.
Regulars Group Not Mapped
StreamElements: Has a "Regulars" permission level (access level 250-299).
StreamerBot: The "Regulars" group is not guaranteed to exist in all installations. Commands restricted to Regulars in SE are mapped to everyone in StreamerBot.
/me Commands Use Chat Type
StreamElements: The /me prefix creates an action message (italic text).
StreamerBot: There is no dedicated "me" sub-action type. The /me prefix
is preserved in the message text and sent as a regular chat message, which Twitch interprets correctly.
Variable Conversion Limitations
Some StreamElements variables have no direct equivalent in StreamerBot:
$(count)- Command usage counter (requires manual setup)$(getcount commandname)- Cross-command counters$(urlfetch url)- HTTP requests (requires C# code in SB)$(eval ...)- JavaScript evaluation$(customapi url)- Custom API calls
Argument Indexing: 1-based to 0-based
StreamElements: Arguments use 1-based indexing: $(1), $(2), etc.
StreamerBot: Arguments use 0-based indexing: %input0%, %input1%, etc.
$(1) becomes %input0%.
Cooldowns Applied at Command Level
StreamElements: Cooldowns can be set with fractional seconds.
StreamerBot: Cooldowns are integer seconds only. Fractional cooldowns are truncated.
Nightbot
Multi-Message Timers Become Staggered Timers
StreamElements: Timers with multiple messages rotate through them sequentially on each trigger.
Nightbot: Each timer can only have one message. Multi-message timers are converted into multiple separate timers with staggered intervals to simulate rotation.
400 Character Message Limit
StreamElements: Messages can be longer than 400 characters.
Nightbot: Messages are limited to 400 characters. Longer messages are automatically truncated with "..." appended.
Regex Commands Not Supported
StreamElements: Commands can use regex patterns for advanced matching.
Nightbot: Does not support regex commands. These commands are skipped during export and will need to be recreated manually using Nightbot's available matching options.
Announcements Converted to Chat
StreamElements: Commands can respond with highlighted announcement messages.
Nightbot: Does not have an announcement response type. Announcement responses are converted to regular chat messages.
Variable Conversion
StreamElements variables are converted to Nightbot equivalents where possible:
$(sender)becomes$(user)$(args)becomes$(query)$(touser)remains$(touser)$(customapi url)becomes$(urlfetch url)$(count)remains$(count)
$(random.chatter) and $(eval ...)
have no Nightbot equivalent and are passed through unchanged.
Access Levels Mapped to User Levels
StreamElements access levels are mapped to Nightbot user levels:
- Broadcaster becomes
owner - Moderator becomes
moderator - VIP becomes
twitch_vip - Subscriber becomes
subscriber - Everyone remains
everyone
General Notes
Test After Import
Always test your imported commands and timers after conversion. While this tool attempts to preserve functionality as closely as possible, platform differences mean some manual adjustment may be necessary.
Backup First
Before importing into your target platform, export and save your current configuration. This allows you to restore your previous setup if needed.