import.stream

Convert StreamElements exports to other platforms

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

Behavior Change Timers

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.

Workaround: After importing, you can manually edit each timer action in StreamerBot and disable "Random Action" to use sequential execution, though you'll need to implement your own rotation logic via a counter variable.

Regulars Group Not Mapped

Permissions Commands

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.

Workaround: Create a "Regulars" group in StreamerBot and manually update the imported commands' permissions.

/me Commands Use Chat Type

Behavior Change Commands Timers

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.

This is functionally equivalent and should work identically in practice.

Variable Conversion Limitations

Variables Commands

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
Unsupported variables are passed through unchanged and marked in the preview. You'll need to implement equivalent functionality using StreamerBot's C# actions.

Argument Indexing: 1-based to 0-based

Variables Commands

StreamElements: Arguments use 1-based indexing: $(1), $(2), etc.

StreamerBot: Arguments use 0-based indexing: %input0%, %input1%, etc.

This conversion is handled automatically. $(1) becomes %input0%.

Cooldowns Applied at Command Level

Behavior Change Commands

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

Behavior Change 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.

For example, a timer with 3 messages at 15-minute intervals becomes 3 timers firing at :00/:15/:30/:45, :05/:20/:35/:50, and :10/:25/:40/:55 respectively. Timer names are suffixed with -1, -2, etc.

400 Character Message Limit

Behavior Change Commands Timers

StreamElements: Messages can be longer than 400 characters.

Nightbot: Messages are limited to 400 characters. Longer messages are automatically truncated with "..." appended.

Check the export results for any truncation warnings. You may need to manually shorten affected messages after import.

Regex Commands Not Supported

Not Supported Commands

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

Behavior Change Commands Timers

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

Variables Commands

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)
Some advanced variables like $(random.chatter) and $(eval ...) have no Nightbot equivalent and are passed through unchanged.

Access Levels Mapped to User Levels

Permissions Commands

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.