Super Mario Maker 2 ViewerLevels Bot


How do I add it to my chat?

Go to twitch.tv/viewerlevels and type !join in the chat.

How do I remove it from my chat?

Go to twitch.tv/viewerlevels and type !leave in the chat.

How do I use it?

  • 1
    Type !openqueue to start a new session of viewer levels.
    Type !wipequeue if you want to start with a fresh slate.
  • 2
    Chat will use !add to submit their levels.
  • 3
    Type !next, !rand, etc. to start playing a level.
    !next starts the next level in the queue.
    !rand picks a random level in the queue.
    There are more commands listed below.
  • 4
    When you beat the level, type !completed.
    If you didn't beat the level but want to move on to another,
    type !skip if you don't want to allow the level to be submitted again.
    If you do want to allow it to be submitted again, you don't need to type anything.
  • 5
    Rinse and repeat from step 3 above!
  • 6
    Type !closequeue to stop allowing chat to submit levels.
    You can continue playing the remaining levels in the queue if you want.

What if my other bots are responding to these commands?

Naturally the easiest solution is to disable the other bots' commands. If you don't know how or don't want to do that, each command below can also be used with a prefix of !!, #, or ##.
For example, instead of !next, you may use !!next, #next, or ##next to avoid triggering other bots.

Streamer commands

  • !openqueue - Opens the queue.
  • !closequeue - Closes the queue.
  • !wipequeue - Deletes all levels in the queue.
  • !next - Selects the next level in the queue.
  • !rand - Selects a random level in the queue. All levels in the queue will have an equal chance to be selected.
  • !wrand - Selects a weighted random level in the queue. The longer a level has been in the queue, the higher its chance of being selected.
  • !select (username) - Selects the specified user's submitted level regardless of where they are in the queue.
  • !level - Uses the next command in the defined level order. See !levelorder below.
  • !subnext, !subrand, !wsubrand - Like !next, !rand, and !wrand, but limited only to channel subs.
  • !nexthere, !randhere, !wrandhere - Same as above, but limited only to those who are still in chat. (Read special note below.)
  • !subnexthere, !subrandhere, !wsubrandhere - Same as above, but limited only to channel subs who are still in chat. (Read special note below.)
  • !completed - Marks currently selected level as completed, and it may not be resubmitted in the future (unless it is a maker code).
  • !skip - Marks currently selected level as skipped, and it may not be resubmitted in the future (even if it is a maker code).
  • !postpone - Returns the currently selected level to the end of the queue.
  • !dismiss - Dismisses the currently selected level, but allows it to be resubmitted in the future. This is the default behavior, so you usually don't need to use this command.
  • !unmark (level code) - Removes completed or skipped status from a level, allowing it to be submitted again.
  • !queuesize (1-500) - Adjusts the maximum number of levels allowed to be submitted at once.
  • !reserved (0-500) - Adjusts the number of levels that are reserved for subscribers.
    For example, if your queue size is 50 and you set a reserved size of 20, then at most 30 nonsubs may join the queue at once, ensuring that there is always room for at least 20 subs.
    However this does not prevent more than 20 subs from joining the queue.
  • !modcontrol (on/off) - Allows mods to use all of the streamer commands.
  • !subonly (on/off) - Allows only subscribers to submit levels.
  • !followonly (on/off) - Allows only followers to submit levels.
  • !levelorder (command list) - Assigns a list of level selection commands to use in a given order. This allows you to use !level or !lvl to cycle through each command you put in the list.
    For example, if you use !levelorder next rand subrand then the 1st time you type !lvl it will do !next, the 2nd time it will do !rand, and the 3rd time it will do !subrand. After that it will repeat from the start.
  • !allowmakercodes (on/off) - Turn off to prevent maker codes from being submitted.
  • !allowposition (on/off) - Turn on to allow the !position command to say the user's numerical position in queue. When off, !position links to the queue page in an effort to reduce the command from being spammed.
  • !mute - Tells the bot to stop responding to any commands from users other than the streamer. This status is automatically cancelled when using !openqueue or when starting a new level. Use !unmute to manually unmute.
  • Streamer/Mod commands

  • !last - Tells you which command was used to choose the current level.
  • !remove (username) - Removes the level submitted by a given user from the queue.
  • Viewer commands

  • !add (level code) - Adds a level to the queue. Each user may only have one level in the queue at a time.
  • !remove - Removes your level from the queue. You will lose your place in line. If you want to replace a level without losing your place in line, just !add the new level without removing the old one.
  • !queue - Shows the status of the queue.
  • !position - Shows your current position in the queue if enabled. Otherwise links you to the queue page.
  • !current - Displays information about the current level.
  • Special note about the 'here' functionality

    Due to how Twitch works, the !nexthere, !randhere, etc. commands might consider some users as not here even though they actually are.
    I have attempted to mitigate this by continuing to consider users as here for 7½ minutes after Twitch says they left, but that doesn't completely solve the problem.
    Avoid the here commands if you are not OK with that possibility.