---
title: 'Create NEXT LEVEL interactive Twitch streams - OBS and SAMMI tutorial'
source: 'https://youtube.com/watch?v=EREN4yTa9eI'
video_id: 'EREN4yTa9eI'
date: 2026-06-14
duration_sec: 1554
---

# Create NEXT LEVEL interactive Twitch streams - OBS and SAMMI tutorial

> Source: [Create NEXT LEVEL interactive Twitch streams - OBS and SAMMI tutorial](https://youtube.com/watch?v=EREN4yTa9eI)

## Summary

This tutorial shows how to create an interactive Twitch stream using SAMMI and OBS plugins. The project builds a channel point redeem that pauses the main scene, displays a cyberpunk meme with user-submitted text, plays a sound, and mutes the streamer's mic. It covers setting up SAMMI, connecting OBS and Twitch, creating buttons and commands, and testing the redeem.

### Key Points

- **Project Overview** [00:05] — The redeem will pause the main scene, display bottom text (cyberpunk meme), and pull Twitch chat messages for the text.
- **Required Software** [00:29] — Need SAMMI, OBS Freeze plugin, and OBS Source Clone plugin. Works only with OBS Studio, not Streamlabs OBS or other flavors.
- **Connecting OBS and SAMMI** [01:22] — Enable WebSocket server in OBS (Tools > WebSocket Server Settings), copy connect info, paste into SAMMI's OBS connection settings. Also connect Twitch account via SAMMI.
- **SAMMI's Role** [02:53] — SAMMI listens to Twitch events (chat, subs, bits) and talks to OBS to trigger actions. Organized into decks and buttons.
- **Creating a Button** [05:26] — Double-click a grid cell to create a button. Edit appearance (color, label). Add commands like scene switch, filter change, play sound.
- **Setting Up the Meme Scene** [07:37] — Create a new scene 'cyberpunk Meme'. Add a Source Clone of the main scene, a black color source behind it, and a text source for the meme text.
- **Freezing the Scene** [09:53] — Add a Freeze filter to the Source Clone. Use SAMMI's 'filter change visibility' command to activate freeze when the button runs.
- **Automating Return** [11:38] — Add a delay (2.2 seconds for sound length) then switch back to main scene and turn off freeze filter. Use copy/paste to duplicate commands.
- **Pulling Chat Input** [13:58] — Create a channel point reward with 'require viewer to enter text'. In SAMMI, use 'pull trigger data' to save the message as a variable, then use 'change text' to update the text source with that variable.
- **Testing with Channel Points** [18:49] — Use the channel point redeem in chat to test, as the Run button won't have user input data. Ensure command order: pull data first, then change text.
- **Adding Sound** [19:51] — Add 'play sound file' command. SAMMI only accepts .ogg files. Convert sound files accordingly.
- **Queuing Buttons** [21:51] — Enable 'allow queue' in button settings to prevent overlapping. Group buttons with same Group ID to queue them together.
- **Advanced: Mute Mic** [23:41] — Add 'source mute' command to mute the microphone when the button starts and unmute after. Add a small wait (300-500ms) for effect.

### Conclusion

SAMMI allows you to programmatically control almost any OBS action, enabling highly interactive and chaotic Twitch streams. The key is to experiment with commands and use queuing to manage multiple triggers.

## Transcript

[Music]
okay today what are we doing okay so
here's the channel Point redeem we're
going to make together
today the red how the redeem is going to
work it's it's going to pause your main
your main scene and then put the bottom
text under it so you're going to
recreate the cyberpunk meme and we're
going to learn how to pull in twitch
messages so your chat can write anything
in the text you what you will need
you're going to need need Sammy which is
uh this program right here we'll talk
more about it later but this helps me
create all the redeems that I have on my
on my stream uh you're going to need the
OBS freeze plugin and the OBS Source
clone plugin and if you don't have those
you can check the cabus that is pinned
in the chat or if you're watching on
YouTube it will be all the links will be
in the description one point that I do
need to make clear is this will only
work with OBS this will not work with
streamlab OBS this will not work with
like a flavor of OBS yeah and you know
what I'm saying it if your software
looks like Turbo Tax from like
1993 you know if it looks like this you
know it's going to be good the first
lesson software that looks really gray
is really good okay I'm going to go over
this very quickly connecting OBS with
Sammy this is kind of technically the
hardest part in my opinion it's a little
confusing at first so Sammy uh talks to
OBS through something called websockets
um I'm not going to get into the
technical details cuz I don't really
understand it but this is basically the
way to set that up uh I'll do an example
here you want to go to your tools bar
websocket server settings click it you
will get a window that looks like this
Okay click show connect info and you'll
going get a window that looks like this
okay I need to move my head because I'm
in the way but this window is going to
show some sensitive information you're
going to copy that
into
Sammy so you're going to click OBS
connections down
here um use the use this IP or the one
that OBS gives you and then copy the
password in here and then click connect
so I disconnected I'm going to click
connect we good and then the second
thing you're going to do is uh connect
your Twitch so uh there should be a
button here that lets you like add a
Twitch account this one's way easier
here you just click it and then like a
website shows up you say approve
everything and you're good you want all
the first three Green Dots activated you
primarily want the first three green
we'll talk about bridge in the future
but you want the first three to be green
the first one means that you're
connected to OBS the second one means
you're con the second and third one
means you're connected to Twitch events
I want to talk about a little bit about
how you should just conceptually think
about all of this on Twitch you got like
a million chat messages happening at the
same time you got a million like let's
say Subs people subbing to you you're
balling out on bits I'm sure all of you
have had some idea before of like hey
what if every time someone subbed turn
the screen to a different scene or
anytime someone uses bits a little guy
shows up and does a little dance right
well how Sam Sammy ah so well blah blah
blah blah so how Sammy helps with all
this it helps read all these events from
twitch and then Sammy talks to OBS right
so so this is the twitch World Sammy
listens to everything that's happening
on your Twitch Channel use Sammy to
activate different things in OBS um the
way Samy's organized is this Paradigm of
decks and buttons you create a new deck
and in that deck you can fill it with
buttons and you can actually like resize
the deck to be as like as many buttons
as you want so here's a 25x 25 grid I'm
not going to do that I'm going to keep
it the 10x 10 right and so here's the
deck and you can have multiple decks
right I have so many decks I got binders
full of decks
and so this is the deck that I actually
have for today's stream um it has all
the stuff that I need to control like
all the different interactive effects I
can like automatically turn on redeems
with a push of a button like I just turn
on the airplane redeem so you guys can
turn on airplane can throw airplanes at
me you know you don't need as many decks
as I do for me I can do a bunch of
different concepts and each of them has
their own redeems and then I can go into
Sammy and like turn on like I can turn
on and turn off different decks
depending on what stream I'm doing so
we're going to learn how to make a
button today let me uh let me show you
an example here actually in each deck
you can make a button and so I already
made a button for the redeem we're going
to make today um we're not going to
worry too much about the code just yet I
want to pay I want to draw your
attention to these buttons down here
which is save run okay cancel mainly the
run I wanted to draw your attention to
the Run button down here but this is a
great way to test your button as you're
making it if I click the Run button with
this OB you know with my OBS instance in
the background
[Music]
so this will become important you're
you're going to press this button a lot
because you're going to want to test
your buttons as you make them as a
streamer you have unlimited Channel
points so you can also do that and you
do want to be testing with your channel
points as well so you're testing end to
end uh we're going to uh today we're
just going to make one button to get you
started but in doing this we're going to
learn a lot about the different uh
commands in Samy okay so to make a
button I double click on the Square here
double click again to go in and actually
before we uh get working I'm going to
right click click edit appearance and
you know we can change the color of the
button I'm going to make it Pink I'm
just going to call it cyberpunk you can
label it highly recommend labeling your
buttons you can add an image if you want
but uh I'm insane I don't add anything
other than the text and the color
actually I don't change the color I just
have text but you can um you can
customize your buttons it's very helpful
especially when you're looking on a
second screen to figure out what's going
on we've made our button let's double
click click and enter I want to add I'm
going to start adding commands to this
button so basically what this means is
when this button is activated it's it's
going to run through a series of
commands the number one feature that
every other app needs to copy from this
is the search function like look at this
I'm like hey I want to find the switch
scene
function boom I type switch switch scene
or scene switch like on everything else
I have to like look down a really long
like drop down menu and sure it's
organized it has groups but this is so
fast I have way too many scenes I have a
problem I'm working on it and each of
those scenes has like a million sources
Sammy does enable me to have this many
scenes because I can just search for
them okay so let's start over so I want
to find my scene switch command I type
that in the search bar click
that um and then I want to add my I want
to switch to the scene that pauses
everything oh let me copy this here
I want to switch to a different scene
every time someone uses this redeem that
pauses this scene okay so I'm going to
make a new
scene it's all called cyberpunk Meme and
every time someone uses the redeem it's
going to switch to this scene okay it's
blank right now but we're going to fill
it up with something all right so I'm
going to say cyberpunk Meme and if I
click run it should just switch
automatically Boom the magic of Sammy so
I can I can control you know that that's
already super powerful you put like a
giant squirrel or a scary skeleton on
the screen and and scarier viewers okay
so let's go back to the main scene here
and I want to set up this cyberpunk meme
scene to have um to to copy my original
scene and pause it so how I'm going to
do that is I'm going to add um a source
clone which is one of the plugins you
need to download and this helps you
mirror different
sources um in your obs so I'm going to
mirror the main scene you can mirror a
scene or a source um I don't know why I
have to click active clone if you don't
see anything like double click active
clone and turn off audio otherwise your
audio is going to be mirrored and it's
going to be crazy but if I switch
between these two scenes they're exactly
the same right let's build out the scene
a bit more so I'm going to add a color
Source this is just like a a slab of
color make it black put it behind this
and then I'm going to minimize this
scene right here yeah so it's starting
to look like the Cyber Punk Meme and
then I'm going to add a text
file okay so I'm going to say call it
the meme
text where am I
going right let's do Times New Roman
classic font and
then test text and then I'm also going
to do um custom text
extense because this helps like box the
text in uh I forgot my settings for this
I think this is it okay you can test it
but I think that's it but I think that's
it two uh and the font size I'll make
like 200 the font size 200 text extend
1500 by 500 experiment with
it okay there we go yeah that looks
pretty good um I'm going to rename this
idiot streamer and then also uh make
that a center alignment
boom okay so we got we basically got our
scene right so let's test it as is right
now so every time this button
activates it should switch to this
success okay so it's switching scenes
every time we are clicking uh every time
the button activates right but we needed
to do a few more things we also we
needed to play the sound and we needed
to pause the video all right on the
source clone I'm going to right click go
to
filters I'm going to add freeze filter
this should be one of the plugins you
also downloaded and installed so freeze
and it's just Frozen right it's frozen
on the last frame that you activated the
filter on I turn off
freeze right the guy the video keeps
play or the the scene keeps playing okay
so uh also fun fun little effect not
relevant to us today but if you update
the refresh interval to like something
higher it like emulates like a low FPS
effect so like if you make it at least
100
milliseconds you can get like a low FPS
emulation you could also make like a
redeem that like just slows the FPS of
your stream anyway we're just going to
put it at zero because we want it
completely Frozen and I'm going to turn
it off so what I want to happen we're
going to go back to Sammy and add some
more code I want to add something called
filter change visibility okay you're
going to be familiar with all these
commands once you do it enough I believe
in you this basically lets you turn on
and off filters um I'm going to go to
Source name
I'm going to select uh I think our
mirror scene was called Source clone 2
filter name freeze and activate it okay
now when I activate this button and it
switches to that scene it will it will
freeze the scene at the last
frame boom
see and then if we go back everything's
normal and if we freeze it
go back everything's normal right so
we're like 60% of the way
there okay now we just want to automate
it we want to freeze it right but then
we want it to go back kind of
automatically so we don't have to uh
touch OBS so I'm going to copy um I'm
going to click this copy button
here in Sammy So this this this means
copy and then this paste button paste
the same command and have it switch back
to the main scene when we're
done next I'm going to add a delay which
means like wait until this time before
switching back to the before running
this command so I know the time that I
want I'm going to call it two 211 um and
that's the length of the sound that I
have pre-plan but um you you would
experiment with that if you're doing
this in real life uh what we're going to
do is we're just going to run this and
see if it switches back to the the same
scene
BO 2 seconds there
and
then wait a second hold on something's
not right it's
not it's actually not saving the last
frame it's like stuck on the same frame
from the first time that we did it so we
need to add uh another command here that
turns off the freeze filter when we
switch
back otherwise it's going to be the same
frame
forever so let's uh yeah so I cloned the
filter change visibility turn off the
freeze filter at the same time we switch
back
okay and then right here we're do it
again we're going to run it
again go
back boom now it's consistent I'm saving
the sound to the end because if you
heard guys if if I had the sound playing
each time you would just hear the this
[Music]
constantly okay so we're we're going to
save that till the end otherwise when
you're testing it because this is what
happened to me I'm testing it and then
it's
[Music]
just con constantly okay it's it's not
it's not a good time it's not a good
time I'll save save the sound effects
for the end okay so uh we're we're going
to do something fun we're going to do
the fun part now which is we want to
change this text we're going to change
this text to whatever chat puts into the
redeem right chat can now control this
text I'm going to make a channel Point
reward and here's a here's a pro tip I
want to make the cost like a lot because
uh I definitely have created Channel
points in the past at one and then like
people in offline chat started spamming
it and ruining my testing so make it
really high because as a streamer you
have unlimited Channel points like I can
use this and you guys can check require
viewer to enter text so people can enter
text into um the channel point this is
the magic okay right click the button
edit
triggers and go to Twitch Channel Point
Redemption uh I clicked this button a
ton load from Twitch API uh and then
look up in your search bar goated search
bar look up cyberpunk
meme right so that's the redeem I just
made and then and check user require uh
user input required uh before I click
save I want to show you other parts of
Sammy too which are really cool uh look
at you can trigger buttons based on any
of these events here so you can trigger
it off a hotkey so it's like yeah you
just press numpad one and your button
will trigger uh you can repeat it after
a certain amount of time this basically
like just repeats your button every X
seconds look at all these twitch
commands you can do you can trigger a
redeem based on ad breaks or someone
using bits you can do it every time
someone raids you you can do it every
time you get a shout out this looks new
this there's a lot of funny potential
here like I I want I only trigger
redeems for five gifted Subs you know
what I'm saying you can do that here
anyway that's just a tour of how
powerful Sammy can be okay so I I
changed it to this redeem hey I could
also trigger it on another redeem if I
wanted to two redeems trigger the same
thing it's 2024 we can do whatever we
want I'm going to keep it to
one okay
so here's the here's a very important um
aspect of Sammy that you can take
advantage of so I'm going to use a
command called pull or trigger pull
data
and this lets me pull
information from who triggered the
button from twitch so let me show you
click this drop down click Channel Point
Redemption whoa look at all this
information I can get from the person
who who you who triggered the redeem I
want to grab their username and I want
to save that username and say like
cyberpunk
username right and change delay to zero
because that's I want it to happen
first copy this go
back and now select um where is it the
message I want the message associated
with the channel Point redeem the
message that the person typed in I'm
going to call it the cyberpunk message
okay I can save these as variables that
I can use later in the button that's
crazy all right that is crazy that is
awesome that you can do this now that I
want now if I want to edit this text I
actually don't want the username I
realize I don't need the username so I'm
just going to click this trash can
button to delete it um I just want the
message I'm going to find the command
change text look up the source name for
the text
uh okay so it's in here meme text so
that get my source name here and then to
add the make sure the delays it's make
sure your delays are as you want them
otherwise they're going everything's
going to be out of sync now that I got
the message from the channel Point
redeem and saved it into this variable
how do I use this variable to change the
text well in Sammy you can reference
variables that you save by using this/
dollar sign command you can see it
already filled it in and
then you know programmers may be
familiar with this type of uh this type
of work but this basically says whatever
someone typed into the channelo redeem
save it as the cyberpunk message and if
I want to reuse the cyberpunk message
that I just saved I'm going to put it
between these dollar signs and slashes
and to test this let me see if this work
let's just test it you know let's just
test it to test this I can't run it
because if I run it look what happen s
if I go back to the main scene if I run
it just as it
is it's undefined right why does it say
undefined that's because this is pulling
in this is trying to pull in a channel
Point
redeem uh it's who whoa whoa hold
on should be right
here this should be right here so this
got mixed up that's that's a problem
first this should come after this yeah
that that was a
problem but let's test
again so it should be in this order I
had the ordering messed up you want to
get the message first and then change
the text but then if I test it with the
right
order it's still undefined okay if I
test it it's
undefined why is it undefined because
it's grabbing a channel Point redeem and
saving the message but I'm not
activating it with the channel Point
redeem I'm not activating with the
channel Point redeem I'm activating it
as normal there's no user and there's no
message so I have to open my chat and
then use my test redeem to test it right
cuz now it's actually going to fill in
the message information big
test boom it's
working yep that's perfect and so the
last thing I need is um my sound file
I'm just going to copy it here
uh let me go through this really uh
slowly with you guys so um what you want
to do is you want to add a play sound
file we playing sound effect command and
then look up where your sound file is
Sammy only takes
og. OG files so make sure you convert
all your sound files to OG there's a
website that I use to just do that
constantly I can link it in the
description of the YouTube video if
you're watching okay so I'm going to
close that okay so now that sound sound
effects are in I know the timing of the
sound effect is about 2 seconds and
that's what I you know I was testing it
before the stream okay so alt together
this is what my code looks like I'm
going to walk through it really quick
anytime someone uses a redeem take their
message save it as a variable called
cyberpunk message upgrade the text to
the message that the person used in the
redeem Play the funny cyberpunk
sound switch the scene freeze my my
previous scene that was just on so it
looks like uh jpeg Meme and then after 2
seconds switch back all right maybe it
makes more sense if I just do it live so
let's pull our redeems back up
here haha
funny oh hold
on because I didn't save the button I
didn't save all the didn't save all
this remember to save your buttons if if
if it doesn't work exactly as you think
save the button
cyber
Punk perfect that's it that's it all the
way through I like doing this live
because I don't have to prepare anything
I just do it live but I think it's
important to like have the little
digressions cuz like you can really see
everything that Sammy does let's take it
one step
further okay cuz you saw us do it with
Channel points so what if it activated
for every twitch chat message save
[Music]
that okay so I'm glad I actually did
that uh CU I originally did that as a
joke but it actually reminded me for one
last important
thing oh God this this reminded me to uh
highlight one important thing which is
queuing you can CU you want to activate
cues for certain buttons they won't play
all at once right sometimes buttons skip
or whatever like it gets weird if
there's a lot of commands happening at
once so I activate I right click this
button click uh edit settings I click
allow
q and then you can even group all your
buttons together to the same queue so
say you have a channel your cyberpunk
redeem you have another funny redeem you
have a a scene switching redeem but you
all want them to go one after another
then you give them all the same group ID
so I'm going to call this group ID Maybe
me something like
that and now okay just to show you the
the the most insane example like spam
the chat right
[Music]
now see now it's now it's all queued
[Music]
up see now it's all queued up it's all
going to go through all of these buttons
now uh you can activate the queue by
clicking active you can activate the
queue by clicking active buttons you can
see the entire queue I'm going to click
interrupt buttons all and I'm going to
clear it I'm going to clear it okay so
that got my point across that got my
point across what if every time this
redeemed happened it muted the
streamer's mic so you could cut off the
streamer right so um there's a command
to do that in OBS as well anything you
can like click in OBS you can do in
Sammy so I'm going to search up Source
mute
and look up my
microphone and this is kind of crazy
because I can actually mute my mic this
is kind of wild because I'm muting my
mic and one instance of OBS and another
instance of OBS is playing that's kind
of neat
um so I'm going to add these commands
here okay so this is actually going to
mute my mic when the button starts and
then after the button ends it's going to
unmute my mic right so now you'll be
able to cut me off from talking every
time the redeem
happens um and actually here's a little
tip a little Advanced tip I'm going to
add a wait for timeout at the
end I going to wait for like let's say
300 milliseconds so you can hear like
there'll be a small pause in between
each button so you can hear me like
desperately try to talk to you I'm going
to make it 500 milliseconds for YouTube
this is the whole the whole code at the
end
I'm going to set it back to every chat
message and now it's going to mute my
mic every time you use the redeem
I'm so I'm
talking but you
can it's cutting
me constantly okay so you can see this
can get really chaotic and fun really
fast if you just think about Sammy as a
way like anything you can click in
OBS like just think about this anything
you can click
in OBS like mute mute your audio sources
move things around you can do in Sammy
you can do it in a programmatic way and
that's what makes it really powerful so
that's it guys we made it to the end
thanks for making it to the end of the
video we do a lot of interactive stream
Concepts on my twitch and if this video
helped your stream give the video a like
And subscribe to the channel for more
