#dev-chat
1 messages Β· Page 15 of 1
For Twitch:
https://decapi.me/twitch/viewercount/CHANNEL_NAME
Youtube count info:
#dev-chat message
Hey SE Team, when I analyze my OBS logs, I noticed that an error occurs once per SE overlay initialization. The Zaraz analytics tries to inject itself multiple times (each overlay does it), is there a way to stop this or edit it out or remove it?
They definitely already know about this; there are countless complaints, tickets, etc... it's impossible they haven't noticed. After the last update, it got much worse.π
In fact, the plugin is very good, and it's a shame not being able to use it. I hope they fix it soon.
@worn hull the se.live plugin has been known for excessive debug logging for over 5 years now, which makes logs difficult to read; an obsproject member wrote a log sanitizer to filter all of their logging
Is it possible to make an html/css/js overlay element, that puts recent subs and follower names into a list, do the same for active chatters during that stream?
Its the credits roll overlay. I want it to include names of anyone actively chatting, but not sure if thats possible.
is it possible to become a german Dev in a Privat Chat ? Every 5 Days my alerts dont Work. Why is that so ?
I hit Affiliate on Monday, and I had my first stream since then just a few moments ago. My features including trying to !so or !shoutout did not work, my !raid command did not work, and my 3 scrolling names for latest follower, newest subscriber and new bits did not appear at all. What do I do to fix this?
hey is there an option that allows you to use third party widgets from url in overlay editor?
Actual links? No.
Good morning, I'd like to ask for help resolving a problem I've been having for over a month, but the website's customer service has been terrible at resolving this; no support team has helped me so far. I have a campaign for a game that ended last October, and right after the campaign ended, a message appeared asking me to adjust my payment method. I went to check, but there's no way to edit anything; it just directs me to support, and support literally does nothingβit's very bad. Analyzing my payment details, there's NOTHING WRONG, and I can't resolve this or receive payment because of it. (im from Brazil)
Only support can assist with sponsorship related questions via the ticket system.
But that's the thing, the support is awful, they don't answer anything properly. I've been trying for over a month and they haven't helped me at all.
Unfortunately, there isn't anything we can do to help you with that. We don't have access to your account, we are just a user like you π
I posted this in community helpdesk but realized that it might be more of a development question.
Hi there! I'm using the Prize Wheel by pjonp. My friend and I are trying to set it up to spin when a specific item is redeemed from my stream store. We've been able to get the wheel to spin automatically for subs, tips, bits, etc, but we can't figure it out for store redemptions. SE provides a widget for redemptions, but there isn't an editor for that widget.
Any help would be appreciated!
Example code we're using for subs...
else if (listener ==="subscriber-latest") {
const amount = parseFloat(event.amount);
const user = event.name || 'Anonymous';
for(let i = 1; i <= amount; i++) {
startSpin({
user: user,
prizeList: defaultPrizeWheelSegments,
isTest: event.isTest || false
}).then(result => console.log('SUB SPIN RESULT', result));
}
}
Try if (listener == "event" && obj.detail.event.type == "redemption")
You can see the store redemption object here: https://c4ldas.github.io/streamelements-api/eventreceived.html#store-redemption
Thanks. We'll give it a shot!
Hi, I'm the friend!
this did not work:
I saw in the console that it broadcasts the event: redemption-latest when i run a redemptions but changing it to that didn't work either.
I see the widget uses Reboot0 SE-Tools library (https://reboot0-de.github.io/se-tools/), which doesn't have SE Store implemented.
In this case, you need to use StreamElements native structure. Something like this, but pay attention to the amount, if this is what you want:
window.addEventListener("onEventReceived", async (obj) => {
if (obj.detail.listener == "event" && obj.detail.event.type == "redemption"){
console.log("Event from Store redemption:", obj);
const amount = parseFloat(obj.detail.event.data.amount); // Amount here is the item cost
const user = obj.detail.event.data.username || 'Anonymous';
for(let i = 1; i <= amount; i++) {
startSpin({
user: user,
prizeList: defaultPrizeWheelSegments,
isTest: obj.detail.event.data.isMock || false
}).then(result => console.log('SUB SPIN RESULT', result));
}
}
});
You will see on console Event from Store redemption: and the object. You can use it to check the values you want.
Oh my god you're amazing, I made some adjustments and was able to pull the redemption type from obj.detail.event.data.redemption so it only triggers when someone purchases the correct redemption
is possible to access the info from the sponsorship using the SDK?
does anyone know how to handle json responses from customapi command? for example the bot just prints the whole json and should print data.message
can i DM you?
No, but you can send your question here
well it's that I tried the output from that website but just says Failed to get JSON data from the site
If you put the website on "Configure your message" and data.message in the msg field, what does it show to you?
I get "Failed to get JSON data from the site", data.message was just so it was understandable, the json returned is { message: "" }
I tried just message and empty also in the msg field
the website on browser returns json normally
If it says "Failed to get JSON data from the site", it means the server cannot reach the site. It can be due to redirection, malformed JSON, authentication, geographic blocking, a lot of things. π
Is the site publicly accessible?
someone know if the info from the sponsorship can be access with the SDK?
It isn't documented, so maybe you will need to check the browser devtools from the Sponsorship page and look for endpoints from Network tab.
I know there's no auth and the json should be alright, also doesn't seem to redirect, geo blocking is the only one I'm not sure.
it's an api from this league tournament that returns the current rank of the account and other info regarding the tournament itself
ok ty
but I tried jsonplaceholder's and (title) in the msg field returned correctly, so there might be something up with that
it's weird because regular customapi is able to get the full json
It's seems to be something related to geolocation.. It says "forbidden" from the request:
Response {
status: 403,
statusText: 'Forbidden',
...
damn, I suppose there's no other way?
I changed my application to another country, but still getting Forbidden from that API, so I don't think it is just geolocation blocking. Not sure how I can help you with that anymore π
oh alright, no problem, thanks for the time mate
Hey, does anybody know using the stream elements chat bot? I can make a warning system to where like there's a first warning second warning and third warning if somebody says a bad word in my chat where the first warning is like a warning, the second warning's a timeout and the third warnings the ban
hey how do i add a chat dock to my setup
In what sense? Installing it as a browser source or making a custom one with some JS?
@severe shell Since you've been a big help in the past, would you mind checking this out when you get the time? I'm having an issue where I'm trying to dynamically assign IDs to new elements, incrementing them by one each time a new event comes in. The problem that I've come across is that it's incrementing by 2 instead of one. The code is looking like this:
let totalEvents, listener, data;
window.addEventListener('onWidgetLoad', function(obj) {
let totalEvents = 1;
//All the other stuff
});
window.addEventListener('onEventReceived', function(obj) {
listener = obj["detail"]["listener"];
data = obj["detail"]["event"];
addEvent(listener, data);
});
const addEvent = (listener, data) => {
//Variables and constants here (omitting a lot for the sake of relevancy)
const eventList = document.querySelector('.eventList');
let element;
if (listener == 'follower-latest') {
element = `<div class="eventItem" id="event-${totalEvents}">Inner text elements</div>`;
}
//Should only increment once, but is somehow doing so in multiples of 2. I also tried += 1 with the same results.
totalEvents++;
}```
I'm trying to figure why it would be incrementing by 2, so I was gonna try to `console.log` it, but I'm at work right now and can't get to it.
It depends on what you are trying to receive in onEventReceived. Many events are triggered twice, you have to set a condition to the specific event you want to trigger your addEvent() function.
https://c4ldas.github.io/streamelements-api/eventreceived.html
From your code example, it will trigger every single event, since you didn't add any "if" condition.
That's my bad. In the actual code, I have if statements for each event. I think I may have mixed some things up when typing it out on Discord, since I'm struggling to get the text out on my tablet right now.
Let me see if I can't screenshot it.
You can check the events on the browser console. Just add a console.log(obj) right after the line data = obj["detail"]["event"]
You know what? I just looked back over it, and you're right. I put my if statements in the wrong place when I was up late trying to fight sleep to get this thing made. π₯²
You're very appreciated. I'm gonna go and fix this when I get home today. 
Is there a way to contact live support? I've been dealing with a terrible problem for over a month and literally no one is helping me; the support is awful.
there is email and support tickets for official support, or discord for community support.
But the thing is, the email is awful, nobody can help me. I sent a message here and nobody helped. My problem has been going on for over a month and I don't know what else to do.
Well, this is #dev-chat for people making plugins and using the API, so it's entirely possible nobody who does regular community support saw it. #community-helpdesk would be better.
Looking at your past message, official support tickets are the only way to resolve your issue. Nobody on discord can help.
Issue resolved. 
Now I have to play around with timing to see if I should increase the widget duration value or mess with how long certain things animate for to get these alerts to stop overlapping. It's all coming together, though. 
I feel like if I wasn't trying to bundle many things together into one, it wouldn't be so difficult at times, but I am who I am. π
Hi, I have a new TikTok channel that has been active for four weeks. Now I'm trying to connect via OBS Studio, where I have to specify my mainstream platform. I have no choice but to use Twitch. But now I have the problem that it says βThis channel link has already been used.β I used Twitch via my old TikTok account, which I deleted. What do I have to do to be able to use my Twitch link again?
Hi, I use streamelements on a regular basis, I was wondering if it would be possible to add a service to the multi stream. I'm in Japan and use a service called Twitcasting. I can't put the url her e because it will delete it.
@wanton latch ‡οΈ
Check out the StreamElements ideas board: https://support.streamelements.com/hc/en-us/community/topics. You'll be able to add ideas, upvote ideas you agree with and track their progress with email notifications. Adding and upvoting ideas also helps the staff know which ideas should be prioritized so please take some time to upvote.
Okay thank you for this and I have added it just waiting for approval I think but the thing saying waiting for approval just disappeared and I don't see my request anywhere.
@severe shell Sorry if it's in poor taste to @ you, but I have a question about SE integration with VS Code. From what I've experienced with the widget builder, it's basically a browser implementation of VS Code, so is it possible to set it up in such a way that I can develop the widgets from the desktop app?
I'm currently using a process of making the elements and styling them offline, then moving the HTML and CSS into the widget builder before adding the JS. I was trying to see if it would be possible to just do it all in VS Code with the right setup/implementation, so I can make use of the live preview there, instead of constantly opening and closing the code editor on the SE website in between changes.
I'm relatively new to VS Code, since I used to do most of my web design work with a combination of Notepad++ and Chrome Dev Tools, so I'm still learning what the different things do and mean for the time being.
My first thought was to use an iFrame and, hopefully, some cross origin scripting of sorts, so I'm researching that, currently, to see if that's the way to go.
Well, first it's good to clear up the terminology. Overlay Editor and Elements are two different systems.
- The Overlay Editor is the one we were working on together, it is the older but most popular system. What you are referring to as Elements is, I believe, actually "widgets".
- Elements is the newer system, but (in my opinion) it's overly complex for most widget use cases.
The Overlay Editor doesn't offer native integration with VS Code (though the browser editor uses an embedded version of it). There is a community-made localdev in the pinned messages that allows development in VS Code, but it doesn't support chat events.
The other solution would be to use Elements, but as I mentioned, it may be too much, and the learning curve is steeper.
How do I export a widget I've made? What do I tell people so that they can import it? (Assuming I've put the exported version on github)
You have some options:
1 - If you are using the Elements (beta), you can create a sharing link clicking on the Share button on top right of the screen.
2 - If using the Overlays page and created a custom widget overlay, you can send the HTML, CSS, JS and FIELDS to them
3 - You can ask your friend to add you as Editor in their streamelements account, then you can roleplay their account and import the overlay
4 - You can use my overlay sharing tool, which you can generate a code/link and send to a friend to install in their account. Here is the link: https://seapi.c4ldas.com.br/. Instructions here: https://github.com/c4ldas/c4ldas-seapi#readme
Do you have a link to Elements (beta)? Never heard of it
It's in the same section as Overlays and Overlays gallery on StreamElements dashboard:
It's not in Beta anymore, just noticed that π
When you say it doesn't support chat events, does that mean it doesn't emulate them or it doesn't execute anything for event.message and/or listener.message?
Is there like a tutorial guide to Elements anywhere? The videos I've found online just cover basic things anyone could see by just looking. It seems fine for basic things like alerts, but my widget is entirely custom CSS and JS but I don't see either of those things in Elements. Just wondering how is this better than Overlays in any way?
It means it wonβt execute any code when a chat message is sent
Elements documentation: https://dev.streamelements.com/docs/widgets-elements-sdk
Overlay Editor documentation: https://docs.streamelements.com/overlays
What is the proper way to send messages to chat from an overlay?
Only thing I've come up with is user gets JWT Token from dashboard, puts it in an overlay password field, use that for a bot say POST request?
Yeah, that would work, but I wouldn't really call it "proper", since overlays aren't meant to send chat messages. Also, a JWT gives full access and can't be scoped to chat messages only.
A safer way is to use a middleware like jebaited.net (from LX). You can generate a scoped token for chat messages (botMsg), so if it leaks, it's only good for sneding chat messages, and you can revoke it and make a new one easily.
Are overlays going to continue to be supported? Specifically custom widgets? About a year ago I seem to remember there being a message on the site about elements being the future of custom building on streamelements, and because of that there wasn't a good way to share and download custom overlay widgets built by the community. Is that still the case? I have custom functionality that I want to build, but I'm hesitant to do it in a format that is not going to be supported long term.
Overlays won't receive any new updates and/or features according to the staff. But it will continue working and there are no plans to retire it. Yeah, there isn't a native way to share the widgets with a direct link (the application for one-click sharing isn't available anymore).
#dev-chat message
For reasons I can't say it would be better to plan on using overlays.
For the same reason don't plan on using elements for dev purposes.
@severe shell @hardy walrus Wow. You guys are like the angel and devil on my shoulders.
Well, if that helps, I love Overlays and don't have any plans to use Elements. Many people here in this channel don't use it either.
hey i was using a custom widget to generate audio files and play them using this api https://api.streamelements.com/kappa/v2/speech but it doesnt work anymore. Do you know an alternative I could use? or it will be only pay to use?
google and amazon both have TTS apis
but they charge you after... 1 million characters?
Yeah. As a matter of fact @severe shell I remember your name, and I think you were the one who shared a custom widget with me. The thing about overlay widgets is they are intuitive to a javascript developer. I can just dive right into coding them. I've started to work with elements a few times but after a page or two of the documentation I just start getting that reluctant feeling that "I'm just not sure I want to try to learn all this s**t at my age." On the other hand, the project I have in mind has potential to become pretty large and I hate the thought that there isn't an easy way to share it out.
yeah asked hee because i saw people giving code solutions xd the thing was stay using a free one tbh
I was going to say Eleven Labs API is really pretty great, but... NOT free. Well, not for any significant usage level anyway.
Depending on the service and the TTS voice used, you can get 4 million characters free, which is about 615,385 words, or 2830 pages of text.
Or if you have a
community about 2Β½ alert messages.
haha
@severe shell Hey man. This link makes it appear that maybe they are accepting custom widgets from developers to share again. It's got a button to submit a widget, and it takes you to a form. Am I reading this wrong?
https://streamelements.com/dashboard/themes/widgets
That shouldn't be there, actually. That form was retired long ago
ah. That sucks man. I really wish they would come around supporting them again. π I'm using it anyway, but ultimately I'll have to recreate this functionality on replit or somewhere else.
why is it not working.
so the TTS is still working internally through the same endpoint as before, but they have id_token_creator and vapor_token cookies that seem to be required to get it working now. is this confirmed by the company or a developer to be removed from public access?
Well, it was never officially documented, so we will never have that response, I believe.
should I take that as a "it won't be fixed" then?
I think so, unfortunately. π
I would argue that it being available publically was the bug, they just finally fixed it.
ok, I'll pass that on. my streamer's TTS broke from this, so we're looking at alternative TTS providers now I guess
I do find it strange that calling the endpoint from inside an overlay with an API key couldn't be allowed since streamelements is gonna be serving that data anyway. there shouldn't be the possibility for abuse if it's tied to an API key and called from inside streamelements.
Well, you can try the native browser + OS. Not as simple as an API call, but it is possible. Check for speechSynthesis and SpeechSynthesisUtterance
calling off to something like the azure TTS API wouldn't be blocked right? I'd only ever implemented this call in SE before, so I'm not familiar with how locked down it is
No blocking problems, but I think it is paid after a certain amount. Also, you would need to add your API key to the code, which is not recommended
It has problems now,when i open obs it says it has an error and then compatibility problem,when i close obs it shows another error,oops something is not right and so,when you unninstall se.live obs works fine
we checked and she's getting <10k characters of TTS a month, so we're good there. this needs to support multiple languages and SpeechSynthesisUtterance doesn't support that
this is only for 1 streamer and I don't care if she has my API key as I'm one of her mods. we'll do what we have to if this isn't coming back
SpeechSynthesis supports multiple languages. But it is good that Azure TTS will work for your case! Easier to work π
oh
I guess I'll look into the docs more
hello brothers, how are you?
Is there any problem to get oauth2 access? I tried like 3 or more times to get oauth2 access, and StreamElements never respond.
I suggest that you open a ticket with them to understand the situation. We don't have access to that info
is there a way to listen to specific channe lpoints redeeming.. @severe shell
like I want to have a specific reward that costs 50 points and twitch does nothing, the entire logic will be handled on my side
actually I'll modify my question...
I am listening to channel.activities but when I redeem a channel point reward like "highlight my message, it doesn't go through
const seSocket = new WebSocket("wss://astro.streamelements.com");
seSocket.on("open", () => {
console.log("[SE: channel.redemption WebSocket connected]");
const subscribeMessage = {
type: "subscribe",
nonce: uuidv4(),
data: {
topic: "channel.activities",
room: channelId,
token: jwtToken,
token_type: "jwt"
}
};
seSocket.send(JSON.stringify(subscribeMessage));
});
seSocket.on("message", (data) => {
const message = JSON.parse(data);
if (message.type === "message") {
// push into event hub
handleRawEvent('streamelements', message);
console.log("[SE: channel.redemption message]", message);
}
});
console log on the last time doesn't fire
The default Twitch rewardHighlight my message isn't shown as channelPointsRedemption, just as a chat message,
In a custom widget, you will find it with obj.detail.event.data.tags["msg-id"] = highlighted-message from onEventReceived listener.
In Astro websocket, you need to subscribe to channel.chat.message, which will show every chat message. Then, you can filter it with data.message_type = channel_points_highlighted
You can see the message example here:
https://docs.streamelements.com/websockets/topics/channel-chat-message#twitch
the highlight chat message was test
I maionly need to listen to anyone redeeming points
in regards to other rewards
I gave other rewards a try
The other custom redemptions are shown as expected. The issue is on your code.
seSocket.on("message") isn't valid for native WebSocket, you are mixing up with socket.io
hm
interesting because that worked with the other events... cahnnel.tip and channel.chat.message
Are you using Node.js ws library?
yep
Ah okay, so that structure is valid on ws lib. For some reason I assumed you were using the browser Websocket, my bad.
Well, just subscribe for channel.chat.message and it should appear for you
the socket says it's connected though
I already have that on another listener
I am specifically asking for redeeming channel point rewards
these
Except for Highlight my Message, the others are not expected to appear as a redemption, actually.
Unlock a random Sub Emote, Send a message in Sub-Only Mode, Choose an Emote to Unlock, and Modify a Single Emote are just user requests, they don't trigger as redemptions on Twitch.
okay so.. a small backstory. Ithink it could help-
I have a minecraft mod that pops chat messages in game if they use a command !<message>. this mod listens to the node.js middleware which listens to the SE api
I would like to switch my logic, since I revently got affiliate, to add a custom channel reward that allows people to use the command once
so I need to listen to viewers redeeming this specific custom channel reward. the others I don't care about. so I will drop them anyways even if they fire correctly
"get a wubtitle" reward redeemed event -> node.js confirms redemption and alters database
but I'm understanding is that the SE api doesnt fire these redeems? or do they fire only using custom made ones?
They don't fire the ones I mentioned, because they are just from user account side.
Unlock a random sub emote, for example, unlocks an emote and the user doesn't even need to type anything on the channel. It's a redeem for their own account. The same for Choose an Emote to Unlock. Modify a single emote works the same way.
Send a message in sub-only mode is again user account side redeem. It unlocks the user capacity to send a message, it's account specific.
Twitch doesn't trigger these events to the channel.
The custom ones are all triggered by Twitch and SE is able to capture normally in channel.activities
okay lemme try
The exception is the Highlight My Message, which Twitch triggers as a normal chat message but with a message_type: channel_points_highlighted
hi guys!! I have no experience with HTML/CSS/Javascript but I want to make it so my "latest follower" and "latest subscriber" labels have text fading in and out rather than scrolling!
so it would go:
"latest follower" > linger for a couple seconds then fade out
"{name of latest follower here} > lingers for a few seconds then fades out
loops back to beginning
can anyone help me out with this? it should be really simple but i don't know how to code and have spent all night trying to get ChatGPT or DeepSeek to make something like this to no avail 
Let me know if you ever find any success here! I eventually gave up.
I lost my oauth2 credentials, do i need re-contact via form with same email or what should i do?
Just open a ticket with the staff so they can help you with that.
@bronze oar ‡οΈ
To open a support ticket, in #community-helpdesk type !ticket followed by a short subject (under 60 characters). Example: !ticket My chatbot isn't working. Then follow the bot's steps.
Ok.
xdd this bot just trolled me, because it doesnt found my email (i just do not registered, thats why), and then just closed ticked, and i cannot reopen that.
xdd
Thanks x2.
Short question:
I got my JWT Token from "dashboard/account/channels".
But for every request, it does not matter which endpoint, i get 403.
What am I doing wrong ? π€
What exactly are you trying to do?
(Not that I could possibly help anyways)
i tried to get the list of redempetions as an example
Its also pretty weird, that i get an empty response from the all time points endpoint, as i can see entries in the streamlabs leaderboard UI
Yeah. You'll need to wait for the other api guru to come on line since that's outside what I know/can help with.
Does this url now require a new structure? It's no longer working: https://api.streamelements.com/kappa/v2/speech?voice=Brian&text=Testo it's throwing 401 No API key was found
on my platform when the user connects a StreamElements account I was allowing them to use this TTS but it's no longer working for them
Access to that endpoint is/was considered a glitch and wasn't supposed to be accessed for TTS reasons outside of the internal system.
It's more or less been "fixed".
I wish there was a way to keep using it, I already have users authenticate with StreamElements in order to use it, I wish we could pass this data to that endpoint and keep this feature alive 
Unfortunately it had been explicitly exploited at SE's cost a few years ago and they locked it down to avoid any further problems.
I can only assume they made a point to lock it down entirely.
Yeah as much as it hurts to see it go I can see and understand why they would 'close it'
Thank you for replying, I appreciate it
403 means forbidden, so probably the authorization header is not correct.
well i get that error both when i create a correct header via code but also when i use the "send api request" within the streamelements dev pages π€
What is the endpoint page you are trying to test?
Doesnt really matter. Every endpoint that needs token gives me 403
For a 403, you are either using the wrong authorization header or wrong channel id.
Or maybe a problem with your account, but that is very uncommon.
You could send a screenshot of the issue, so maybe we can check some more details.
Your channel ID is wrong
Your channel id is the Account ID in the same place you get the JWT
huh okay then channel id is just a misleading description π Thanks
Yeah, that dev page is very outdated, unfortunately.
This is my version, I suggest you use it instead:
https://c4ldas.github.io/streamelements-api/
You also use the "Channel Id" its a bit misleading as the id on the streamelements page is called account id.
Thats why i thought channel id from twitch π€
Yeah, I understand that, but since I cannot change the API itself, I just added some explanation on the "How to use it" section:
https://c4ldas.github.io/streamelements-api/#/#how-to-use-it
gotcha ! Okay thanks for the help again π
Does anyone know if theres a way to get the viewer streaks in the overlay editor?
Possibly? Maybe but it's not something anyone has looked into nor something we have comparability with as is.
Because I see that those streaks are not handled like message events 
Okay nevermind.. I see that not even twitch has implemented those watch-streaks in their API
it works if you provide &key=<overlay token>, but only on ipv6 for some reason. i've contacted support about it not working on ipv4. The tts api is undocumented so they may change it again in the future.
When was the last time you tried it?
there's also some caching shenanigans going on where if the text has been played recently you can get the audio without the token and on ipv4
10 minutes ago
Interesting
My guess is the ipv6 endpoint will be removed instead of the ipv4 added, but we'll see what happens.
it's also broken if you use it in an overlay like you're supposed to
I setup tts in an overlay and if I force ipv4, it just doesn't work
so I'd hope they fix that since that is actually the way you're supposed to use tts
and dropping ipv6 in this day and age seems like the wrong way to be doing things. it'd also mean dropping ipv6 for all apis
There have been changes to the tts api recently so there's probably some unintended consequeces in addition to the intended ones
Hi guys, I have a noob question on how syncing work across the browser source and editor.
Lets say an event is triggered. Both the browser source and editor is triggered independently. However, that is not ideal, since there are situations where they are doing an increment in the database, which in this case, the increment would be fired twice (1 from browser source, 1 from editor).
Or situation where they are running a Random function. and the Browser Source and Editor would not have the same outcome.
I want to know how are these situations usually handled to keep the Browser Source and Editor to be in synced. And not have repeated functions to be triggered from just 1 event.
You can check if you are in the Editor with obj.detail.overlay.isEditorMode from onWdigetLoad:
// Declare as a global variable, so you can use it outside of onWidgetLoad
let isEditor;
window.addEventListener("onWidgetLoad", async (obj) => {
isEditor = obj.detail.overlay.isEditorMode; // true or false
});
// Then you can check if it is in Editor Mode and ignore it or do anything else.
window.addEventListener("onEventReceived", async (obj) => {
if (isEditor) {
console.log("Editor Mode is true");
return;
}
console.log("Editor Mode is false");
});
im having some trouble can anyone help?
Wrong chat. Use #community-helpdesk, and don't post the same question in multiple places.
okay sorry
Thatβs amazing thank you for sharing, I think Iβll hold back for a little bit just in case they make other changes but this seem fair. Iβm already allowing streamelements users only have access to it so itβs great if they keep it this way
Hello, can someone answer such question please.
We are developing new streaming platform, is it possible to integrate it with StreamElements? Or should StreamElements do some integration on their side too?
As long as the platform doesn't have significant user numbers, I don't think StreamElements will implement any integrations.
Got it, thank you.
Along with the fact they are focusing on other things ATM with higher priority.
Hello any please now how i can export a costume widget i made in a web file
web file?
like this
That's not possible with overlays/widgets without using 3rd party methods to act as a middle man.
Only can be done via elements.
and what s the third
and basicly when you click this file it directly add the overylay to your element in your account
so you can modifie the settings as ou wish
You'd need to entirely do whatever you were doing as it's a completely different system.
However this is the 3rd party method I was speaking about. https://seapi.c4ldas.com.br/
Share your overlays with your friends.
Do note overlays can only be installed to the same platform they were made in the editor with (Can't add a twitch made overlay to a youtube.)
and the link stay always the same it dont change right ?
Yes
You don't... Sharing link is for companies who sell widgets, SE partners or people who shared widgets with the community (the ones from β widget-share). Not possible to apply for it anymore.
You don't.
You can't, it is not possible to apply for it anymore.
Here are the ways available to share widgets with StreamElements: #dev-chat message
emm that s bit bad i wanna start making widget and sell them
I want to transfer all my commands from Twitch to YouTube. The easiest way would probably be to just copy a list of all the commands, and paste them to AI so it can format it into the CSV format that StreamElements takes.
For me to do this, I need to know how the CSV is formatted.
Is there an example CSV line anywhere? Thanks1
Commands cannot be imported via CSV. They will have to be exported and imported via the API. There's a few people here who could probably help, but this would be a good place to start: https://c4ldas.github.io/streamelements-api/#/operations/Get/bot/commands/:channel/public
You can use my "Chat Commands Transfer" page for that:
https://seapi.c4ldas.com.br/chat-commands
Not a CSV thing, but you can generate a list on the source channel and install the commands on the destination channel.
How to use it:
-
Click on "Generate chat command list"
-
Login using your StreamElements account that has the commands
-
After login, make sure you are on the correct channel and platform (it's shown on the website)
-
Click on Download button and save the list
-
After that, click on "Logout" button and confirm
-
Go to StreamElements website, perform a login to your destination account
-
Return to the "Chat Commands Transfer" page
-
Click on "Install Chat Commands"
-
Login with StreamElements
-
Make sure you are on the correct channel and platform (it's shown on the page)
-
Click on "Choose JSON file" button and select the file you saved previously
-
Select the commands you want to be installed
-
Click on "Install selected commands" button and wait
-
A popup will appear, wait until it finishes and check the results.
I did look at that but it seems like I can only do that for my own channel, not for the channel I moderate for. Will need to get the streamer to do it for me in that case?
Yeah, unfortunately, we don't have permission to use moderated channels for that, even if you have Full Control π
New dev question here.
I'm looking at building widgets using the new Elements way, as going by the docs Overlays was labelled Old.
I've got things working enough in my dev environment to be happy the concept works. However I'm hoping to sell this as a widget off platform, but I'm unclear how this can be done - or if this is encouraged.
The docs have a section on publishing which looks like it goes through a review and approval stage. My question is then what..?
Is it listed publicly for all to use in the Elements library? How would one be able to privately share that to those that had purchased off platform? Can it be shared and imported in a way similar to Overlays?
How tied to my developer version is the shared instance? Do I go for a review process for every fix? How about if I wanted to sell similar widget with different designs. Does each of those go through same review process? Not sure how long this takes or what is reasonable here.
I'm trying to work out if building a native Element is a viable option, especially if one would make variants of it - or if building and hosting off streamelements using just the API is a better option.
Any advice or docs (with more info than the existing public dev docs) anyone can offer? Thanks!
Once the sharing link is generated, it isnβt exposed. Only users with the link can install your widget.
The approval part is for JavaScript code. If your widget only uses the default components and no JavaScript, it is automatically approved. Otherwise, it needs to go through the approval process (I donβt know how long it takes). AFAIK, every JavaScript change will go through approval before being pushed.
You can sell your widgets the way you want, there are no restrictions for that.
Unfortunately, for Elements, the only doc available is the one from dev.streamelements.com. Not sure how up to date it is.
Most people here still use Overlay (the old one), so in case you have more specific questions, you can ask in #elements-editor-widgets20 , but based on the replies there, it may take some time before someone answers.
Or you can ask here and we can try to answer anyway π
Thanks for the info! Yes I'm using JavaScript. I assume Overlay will go away at some point in the future and Elements are the way...?
Do you know how linked the shared Element is to the original?
If a new version is published (after review) I assume that gets a new version/ link and the previously shared link remains linked to the old version. I.e. Does pushing out a new version apply to those that are already using the link, or do they need to be shared a new link?
There are no plans to retire Overlays. Also, removing it would break all overlays created, so that's not a thing.
As regards the published version, I really don't know how it works, but when the staff was developing it, they informed the user could choose if they wanted to update or stay in the same widget once a new update were available. Since I've never finished creating anything with code using Elements, I'm not sure how that is. Maybe I should, just to understand this kind of process.
Thanks! Not sure if the devs ever check in here but I think the whole deployment lifecycle and ongoing management of published widgets is important to understand, especially with the code review process and developer friction that imposes too.
Maybe Overlays is the easiest route for now then, following the common sharing patterns people are already using.
They check in #elements-editor-widgets20, although not that much π
But they are almost never here, unfortunately.
New question.. I only have a phone and plsystation 5 slim. How do I get my alerts to work while i stream live?
Can someone help me with a problem I'm having related to generating TTS audio files using https://api.streamelements.com/kappa/v2/speech?voice=Brian&text=. You used to be able to use this to generate TTS audio files without an API key but now you require to be authorized. I attached my JWT token in the header of my request but it keeps giving a 401 error
Read the conversation starting from here: #dev-chat message
Unfortunately, it was never a documented endpoint, so they kinda "patched it"
π« . So I'm assuming there is no way to keep using their TTS services? Rip Brian
There are more conversations from here: #dev-chat message
But I wouldn't rely on it so heavily, since the staff can keep changing it.
Oh, sorry. Didn't catch that. I just tested it and it worked. I'll use this method for now for my personal TTS solution. Thank you!
is SE ever ever ever ever gonna fix the long lasting bug where a non english display names, when gifting more than 1 sub (community gift) not only triggers the community gift alert, but then each individual alert right after, for example 10 gifted, plays the 10 gifted and individual gifted alert for a total of 11?
Have you submitted a ticket for it?
I have before
how do youtube superchats show up to a custom overlay? I can't find the documentation on this
Widgets
Depends what you use
And depends where you stream
How do I change my payment method?
I mean how does it come into a widget. Like bit cheers are events that end in -cheer but there's no superchat emulator in the editor so I was hoping to figure this out without starting my own stream since I didn't see anything in the documentation
I'll send you laterr
Tomorrow it's bit late for me now
If you see cheer but donβt see superchat, you are connected to the wrong account. Connect to your YouTube account on StreamEleents website and you will see it.
oh does that mean it will show up the same as a cheer if set up correctly or is there an easy way to test this on my end as a dev and not a streamer
No.
Overlays and the widgets within said overlays are tied to the platform you logged into when you made it.
Cross platform events are not supported.
Is there documentation on what a superchat will look like or a way to emulate it?
Unfortunately the majority (If not all) of non-staff devs here basically only do it for twitch so anything on youtube is slightly limited.
However 1 sec.
You'll need to scroll down a good bit for youtube things https://dev.streamelements.com/docs/api-docs/775038fd4f4a9-stream-elements-custom-widgets
In each of paragraph you will find information, what variables you can use, to achieve expected result. Powered by Stoplight.
Though tbf their api isn't exactly the nicest either.
hmm yeah not great. thanks for the info
The superchat will look like any other follower, subscriber, cheer notification.
You can connect your Youtube account to StreamElements and the emulate option for Superchat will appear
ah that's exactly what I need, thanks
@severe shell hi how are you?
I've been having an issue that is totally invisible on my end. My websocket connections from SE sometimes completely stop emitting events and chat messages stop sending over events to my WS
this happens almost randomly a while after starting my node.js instance. It got me thinking maybe there's an auto terminate or some cutoff period?
the only fix would be reconnecting my websocket listeners once more
which made me implement an auto reconnect job every 15 mins for all my listeners which worked somewhat but sometimes events just stop being received..
are we not able to pull realtime data using our JWT token?
edit: I misread stuff apparently and no we are not... lame.
so SE somehow pulls more data from Twitch than we can access using the Twitch API but we can't access it outside of SE because we can't access it unless SE allows us to build widgets for their platform and gives us access to that information. Is that about right?
what extra data do they get that cant be retrieved through twitch api?
tips connected through SE, largest gift sub, largest tip amount, largest cheer amount etc. Which are all listed in the info on SE and in a few event data widgets on SE
you can get latest info for gift sub and cheer through Twitch API but not all time high
and no tip info at all
im pretty sure you can with the v3 api, you can use jwt and using the /kappa/v3/activities/{channelId} and then pass the date range and what events
@gritty jetty hold that link for a sec.
nope still only returns recent events, though that does include recent tip info
ok ty i was scared..
Our bot is real sensitive to new links at times and decided that was a bad one.
Though we've posted it here before which is weird.
lol, it can happen
and it looks like that is exactly what I needed based on the docs so once I get it implemented I will say for sure that you are the GOAT and my savior lol
nws! i recently used that endpoint for a project, it was a bit finicky to get right but it did work out great
Should note the above link is actually handled bgy one of the fellow volunteers/coders and not actually the official docs which are a bit more "lacking" atm.
yea I don't know what I am doing wrong but I have tried using that endpoint in js to pull info into a widget and gotten nothing, and I have tried using it in C# in streamer.bot to pull info into a widget and gotten nothing.
I am going to have to come back to it though because I am exhausted and have to get some sleep before work. I am sure I am just overlooking something stupid lol
i had custom 7tv emotes showing up on the overlay chat and now they have stopped working, i've tried the emotes update/7tv commands and they haven't done anything how do i get them back π
I did some tests and noticed if the connection is idle for some minutes, it can get disconnected, but wasn't able to track the exact time, it seems random. Once I got disconnected after 5 minutes of being idle, but also kept connected after being 30 minutes idle in another try.
In your case, I would suggest you implement a reconnection strategy: https://docs.streamelements.com/websockets/examples#how-do-i-handle-reconnection
I couldn't find a way to implement keep-alive pings, but I'm going to check with the staff about that.
Hi all, I'm a game dev looking to dip my toes on live stream integrated games in general and have a couple of questions about SE. I would appreciate it if anyone could answer or chime with your opinions.
- Are all SE widgets hosted on SE servers?
- To what format are widget data saved in SE servers?
- Is there a limit to how much data a custom widget can save?
- Are there people who create bigger 'widgets' that runs and store data locally, and interact with SE APIs?
- Yes.
- They are just web pages, so HTML, CSS and JS.
- Yes, though the value is not hardcoded, it seems to be more related to the API timing out when saving it. You will need to perform tests for that.
- Widgets are just web pages, if you want to interact with SE API, you can use the SE API documentation: https://dev.streamelements.com (or my version in https://c4ldas.github.io/streamelements-api/)
Thanks for the answers! I'm guessing based on the docs that the widget data are saved as key-value pairs, like a json. The reason I'm asking is because I (or rather a friend) had an idea of creating a card gacha widget, which could balloon in size of save data. An existing widget I saw on Etsy only supports 50 card max, which makes sense if all the data is hosted in SE servers.
hey there, i cant connect any account on obs, it just doesnt
sorry if this isnt the right channel
The widget is not saved in the same place as the key-value store. The kvstore is a small database where you (the user) save data. It is called SE_API (with the underscore). You can find more info here: https://docs.streamelements.com/overlays/custom-widget
I suggest that you ask that in #community-helpdesk, but give more details when asking. Just saying you can't connect won't help.
Let's say that 100 viewers interacted with my widget on SE which is saved, does that mean my SE_API.store is going to contain the data for all the 100 viewers? Does the store have a hard size limit or is it also based on the API not timing out?
No, SE_API is the user database, it's saved on user account. The kvstore has a size limit, but we don't know the exact size.
What I meant about the API timing out is the size of the widget code itself. If you create a huge HTML, CSS and JS, it can fail to save, depending on the amount of code you have written.
Perfect, thanks a lot for answering all my beginner questions!
edit: I fixed it on the website and can pull the data there, but not using C# in Streamer.Bot, and I don't know if there is a way to pull most recent info from the API here as well or just top. Because while the Twitch API exposes most recent follower and subscriber it does not provide cheerer or tipper. This API also does not provide all time top sub gifter which is a bummer. Not sure why SE won't just allow access to these specific stats through the API.
A follow up question since this was back in 2022. Is this still the best way to send a message to chat from a custom overlay? And just to confirm, whoever is using the overlay will need to go to the jebaited.net and follow the steps above and then add the token in?
Or can I add the token in and provide the overlay to other users and chat would direct to their chat? (seems unlikely since it's the same token it would just go to the token associated with my account, which would be my chat)
Oh and while I'm asking questions, do streamelement custom overlays catch twitch channel point redemptions in any way?
And now that I've found Jebaited.net I have more questions. I haven't really been able to find any documentation or what happens on this page with the overlay importer. What is it for?
This will import the widget you choose to an overlay you have in your account.
You can create your own, if you want. We recommend that you use jebaited.net because it's already working well and it was created by a staff member. It is a middleware between the widget and the StreamElements API.
It is safer than using your own JWT, since it creates a token with a specific scope and you can revoke it or create a new one at any time if you need.
In the backend, it uses the endpoint described here: https://c4ldas.github.io/streamelements-api/#/operations/Post/bot/:channel/say
And just to confirm, whoever is using the overlay will need to go to the jebaited.net and follow the steps above and then add the token in?
Yes, the token created is tied to the streamer account.
Yes, obj.detail.event.type === "channelPointsRedemption". You can see a response example of a channel point redemption here:
https://c4ldas.github.io/streamelements-api/eventreceived.html#channel-points-redemption
"Tip" is not a Twitch feature, it's a StreamElements one (or any other third-party). For StreamElements tipper, you can get the List tips: https://c4ldas.github.io/streamelements-api/index.html#/operations/Get/tips/:channel
To get alltime top sub gifter, you can use the session data: https://c4ldas.github.io/streamelements-api/#/operations/Get/sessions/:channel
Look for subscriber-alltime-gifter from the response. You can also look for the most recent cheerer (cheer-latest)
Twitch doesn't offer any endpoint for latest cheerer, only via EventSub: https://discuss.dev.twitch.com/t/no-latest-follower-cheer-bits-at-the-api-available/39005
To get the Twitch top cheerer, use the "Get Bits Leaderboard" endpoint from Twitch with the query parameter period=all, which is actually the default one: https://dev.twitch.tv/docs/api/reference#get-bits-leaderboard
Is it possible to update the fields value with code for an overlay? I would like to update a field on certain conditions and make it persist if we refresh the page. π€
Only if you are on the overlay editor with SE_API.setField().
But the best and recommended way to update a value and store it between refreshes is using SE_API.store.get()/set():
https://docs.streamelements.com/overlays/custom-widget#se_api
Hmm interesting... Thanks I will look it up 
Mine is working perfectly
Thanks!
I was moderating a different account on streamelements.com and the auth popup does not display the current user.
Probably something that should need some attention from the devs ...
That's expected. When you are roleplaying, it won't work.
Expected yes, show either a message or the current user (which is != mine)
usability should not be kicked out the door so easily ^^
clicking the auth button does exactly nothing the user notices
Unrelated but it would be nice to switch users instead of "logging out" everytime and selecting another account. Lol
if you have mutliple twitch accounts, you must sign out of the one you are in on both OBS and twitch itself. as far as your in obs option goes. that will never happen because it could cause massive issues
as far as moderating goes, there's no way it can be implemented that way.
Well, it does show it. But I agree with you, it should be better highlighted
For example, like this one:
Exactly, especially the avatar would people throw off immediately
And, well, since the connection didn't work, at least show a message witht the reason why
it's 2025 π
I don't know where you get OBS from π€
It can. As seen in the screenshow from c4ldas, you can see, it is already there, but not visible and also the error message is being logged in the console log, so it can also be shown
@severe shell u rock
Question - Are Twitch custom widgets compatible with Kick, considering SE is able to collect data from both platforms.
It depends on the widget, most of time they will work, but if the widget has any Twitch-only features, it won't
Hmm.. I imported a dynamic sub widget from Twitch which worked fine. However on Kick, the subs aren't showing at all. Yet on the stock sub goal counter, it works fine!
Yeah, in that case, you need to contact the widget creator and ask if they can test the compatibility with Kick
I have nodiea whom that would be, it's been a fare few years
So, you can consider it isn't compatible. π
I have the HTML/CSS/JS etc so I might have a tinker with the code and attempt to learn how it works. Is there any custom widget documentation about?
Yes, in this channel description.
Thank you.
Hey everyone; does anyone know where I could find a reference to variable names that work for string replacement in a static text control on the overlay editor? I only have {streamer} working... {name} for the last follower only seems to work on a prebuilt overlay, not on my custom one... and I can't get anything to work for the current game title, stream title, etc ....
I've been looking for an embarassing amount of time...
In a custom widget, it can be anything, since it is a custom widget (your own code). It depends entirely on your code.
I didn't really want to get into the custom widgets... I just wanted some of the basic info to show on the overlay.
Other overlays seem to achieve this with a "static text" component and a simple string key; i.e. {streamer}
It depends on the widget you are using. There isn't a "list" of variables for everything. Each widget has its own variables and they are listed on it
ok, but in a Static Text widget, this works... but there is no note like that...
and in some overlays, {name} also works there to give me the last follower, but... that doesn't seem to work on this new one
well... I guess you just have to build a custom widget to show basic information on there now...
seems like a bit of an odd step backward... at least in terms of simplicity
Oh, okay, got it. Yeah, the famous lack of SE documentation, unfortunately.
I wonder if the code for SE Overlays is open source; not seeing an obvious repo for it in their Github
AI thinks {channel.game} should work as well... but it doesn't
For the native ones, no, they aren't.
The ones made by the community, you can find in #widget-share. But what kind of information you want exactly? Some custom widgets can provide it, and maybe I know one that would fit for your case
the {name} one is really weird; I have overlays with that showing on it... but, it won't work on this one
I just need the text of the game being played; the last follower; and maybe the stream title?
I won't even suggest using AI for SE widgets, since the documentation is very scarce and there isn't anything that AI could search related to that
yeah, I'm gathering that....
feels like they have a feature... with no solid way to use it... and no way to find out how.... so, now, what was once simple (a year or 2 ago) is border line impossible...
I'll just have to try to go the route of a custom widget... seem's like a stupid amount of work for a simple string... but, no other path forward from what I can see....
Latest follower name: Blue + icon > Labels > Followers > Latest > Latest follower
As for stream title and game being played, you can use this custom widget, duplicate it and choose "Game" and "Title" for each one that uses decapi endpoints: #dev-chat message
Oh wow! Nice!! That'll make this easier then; I'll check that out. Thank you so much!
@severe shell worked like a charm; thanks again.... huge help!
Just wanna say thank the gods for the new update that fixed the obs crash error! you are my heros
keep getting a black screen when trying to log into streamelements in obs
Pinned post in #community-helpdesk
Videos in overlays are not displaying. Can anyone comment on this? Is a streamelements service currently down?
It is a known issue: #announcements message
It is now fixed! #announcements message
Did streamelements not add support for hypetrain events a few months back? I swear I saw it in their docs and now that I'm looking again, I see nothing.
The only thing I remember mentioning hypetrain events in the docs is the WebSockets channel.activities topic.
https://docs.streamelements.com/websockets/topics/channel-activities
That must be what I was thinking of. I was so sure they added it to the custom overlay events. Must be conflating memories haha. Thank you
IIRC, I was the last one who submitted a pull request for Overlays documentation. I don't think it has any hypetrain info added.
But I will take a look at that, and see if I can find any event being triggered on Overlays when a hypetrain happens.
I'd appreciate that, thank you thank you
update failed any one has the zip file to manual update?
@SE.memers
do y'all know why a custom overlay with css animations might not work? I have a user trying to make a chat overlay work and for whatever reason with their specific setup the animations dont appear to be working
let currentAmount = 0; // Aktueller Betrag
function updateDonation(amount) {
currentAmount += amount;
// Verhindere, dass das Ziel ΓΌberschritten wird
if (currentAmount > donationGoal) {
currentAmount = donationGoal;
}
updateUI();
}
function updateUI() {
const filledPercentage = (currentAmount / donationGoal) * 100;
// Fortschrittsbalken aktualisieren
$('#filled-bar').css('width', filledPercentage + '%');
// Text aktualisieren
$('#currentText').html('Current: $' + currentAmount.toLocaleString());
}
// Event Listener fΓΌr eingehende Spenden
window.addEventListener('onEventReceived', function (obj) {
if (!obj.detail.event) return;
const listener = obj.detail.listener.split("-")[0];
const event = obj.detail.event;
if (listener === 'tip') {
updateDonation(Number(event.amount));
}
});
so the widget functions kind of, but i canΒ΄t get it to like safe the data, on stream the donation goal progress is shown and everything but as soon as the streame ends, and next starts itΒ΄s 0 again and not the donated amount, i am so new in coding i am sorry π
Morning all is anyone else using stream elements se live to stream across platforms as everything i go live on tiktok from there i live just over a hour and it closes my tiktok and I get banned from tiktok for 7 days streaming from se live obs but I can still go live from my phone just finding it strange
Some animations don't work if the user has the animation option disabled on Windows Advanced settings: #dev-chat message
This is expected. Widgets don't save information, they are always reset when restarted. You have to save your data elsewhere, or you can get your data from StreamElements data "Tip goal progress" from this screen: https://streamelements.com/dashboard/session/goals
For goals, it is better to use "onSessionUpdate" instead of "onEventReceived". In order to get the "Tip goal progress", you can add this to your code:
let currentAmount = 0;
// Get the saved tip goal progress
window.addEventListener("onWidgetLoad", async (obj) => {
currentAmount = obj.detail.session.data["tip-goal"].amount;
updateDonation(currentAmount);
})
// Get the saved tip goal progress when a new event happens
window.addEventListener("onSessionUpdate", async (obj) => {
currentAmount = obj.detail.session["tip-goal"].amount;
updateDonation(currentAmount);
});
The currentAmount is now always updated and you don' t need to increase the value or anything.
In this case, you don't need the "onEventReceived" listener.
thank u β€οΈ
so it doesnt seem to work, my friend is also trying to help me but he is missing the api list where to get the information from. i gave him yours and he tried to incorperate it for me
let currentAmount = 0; // Aktueller Betrag
function updateDonation(amount) {
currentAmount += amount;
// Verhindere, dass das Ziel ΓΌberschritten wird
if (currentAmount > donationGoal) {
currentAmount = donationGoal;
}
updateUI();
}
function updateUI() {
const filledPercentage = (currentAmount / donationGoal) * 100;
// Fortschrittsbalken aktualisieren
$('#filled-bar').css('width', filledPercentage + '%');
// Text aktualisieren
$('#currentText').html('Current: $' + currentAmount.toLocaleString());
}
// Get the saved tip goal progress when a new event happens
window.addEventListener("onSessionUpdate", async (obj) => {
currentAmount = obj.detail.session["tip-goal"].amount;
updateDonation(currentAmount);
});
// Get the saved tip goal progress
window.addEventListener("onWidgetLoad", async (obj) => {
currentAmount = obj.detail.session.data["tip-goal"].amount;
updateDonation(currentAmount);
})
As I said, you don't need to increase the value or anything. You don't even need the updateDonation() function, so you can simplify everything with the code below:
let donationGoal = 100;
let currentAmount = 0;
window.addEventListener("onWidgetLoad", async (obj) => {
currentAmount = obj.detail.session.data["tip-goal"].amount;
updateUI();
});
window.addEventListener("onSessionUpdate", async (obj) => {
currentAmount = obj.detail.session["tip-goal"].amount;
updateUI();
});
function updateUI() {
if (currentAmount > donationGoal) {
currentAmount = donationGoal;
}
const filledPercentage = (currentAmount / donationGoal) * 100;
$('#filled-bar').css('width', filledPercentage + '%');
$('#currentText').html('Current: $' + currentAmount.toLocaleString());
}
Anyone can help me please does anyone know if it's possible for StreamElements to send an alert on the stream when someone sends a message in a Discord channel?
It is possible, but it is a total custom solution. There isnβt a native option for that.
It requires a websocket server to listen to Discord events and then send a POST request to StreamElements when a new message arrives (you can use /socket endpoint, for example).
From StreamElements side, youβd need a custom overlay to react to those messages and show the alert.
Can you please give me an example?
There is no example... As I said, it is a total custom solution, you'd have to develop it yourself.
Ok thanks i will try
Hi guys is anyone using the clip command from thefyrewire
Clip command just says missing now whenever it generates a link
Or has anyone got a better clip command for stream elements?
Twitch is taking longer to generate the clips these days, which means the clip URL is created, but the video is still being generated.
You have to wait around 10 seconds after having the clip URL to watch the clip. If you try to watch it as soon as the link is generated, it will show "missing"
I appreciate that for real lol I thought i had to change API or whatever but thanks
You mentioned that the validity is 1 month.
However, when I checked my recently renewed JWT,
it shows an expiry date of 21st May on jwt.io
Could you please confirm whether it will expire on 21st May or exactly one month from now,
and whether I need to update the JWT credentials in my program after one month?
Thanks a lot
hi all
Not being able to stream on tiktok but can stream on YT and Twithc please help
why this start streaming doesnt come though i have tiktok access
Hey guys I have a question, for superchats we can refer to "msg-id: "animated-message"" on twitch, does this work on youtube too ?
That's for channel power-ups so no.
Oh, so how can I refer to superchats ?
superchat
oh the id is literally superchat ? lol
It can be superchat-latest, superchat-recent, it depends. You have to look at the object
gotcha , thanks!
hello
Can I use StreamElements chatbot in my website? So if I click a button on my website, it triggers a command and sends me SE's response.
If you know how to do that kind of integration with StreamElements API, you can. It isn't a StreamElements feature, though.
Answered in #tech-talk
greetings my dears happy holidays to all.. and a happy new year to everyone
pls help do someone know why tiktok live get suspended on streamelement?
Hi question is there a way to use the data being pulled by the label of Top Gifter list? I see to use the all-time gifter one but I can only pull out 1 gifter data max or accuratly. Anyone can help? (probably got asked like 20 times but I cant seem to find any data right now)
Well, you can make a request to subscriber-gifts/leaderboard API directly:
https://c4ldas.github.io/streamelements-api/#/operations/Get/widgets/:channel/subscriber-gifts/leaderboard
Awesome! Would it require just basic JWT and channel id or more than that?
No more than that. The query parameters mentioned are optional
You are livesaver thanks! I was looking for that endpoint and it work
hello, iam new here, um how long takes so i can be enabled streaming tik tok using OBS
I tried to make a widget, i think it works, but i would love for it to be able to also be for Follows, Donations and Bits, and I can`t get Fields to work. Can someone help me via DM ?
what exactly doesn't work with fields?
are they just staying blank?
they are either non existent or they just donΒ΄t do anything if i change something
Good morning, does anyone know why I can no longer stream to TikTok via OBS?! My site says my key has been revoked and I'm banned, but TikTok doesn't usually say anything like "banned for 7 days" or anything similar.
can you show how you set and use the fields in your code?
can also be via DM if you want to keep it secret
i needed to send a friend request to dm u π
Does anyone know how to create a chat command to enable/disable an on-screen element like snow?
It depends, if your on-screen element is a StreamElements custom widget, you can set a chat string to enable/disable it. Something like below:
<div id="onscreen-element">YOUR SNOW ELEMENT HERE</div>
const disableCommand = "YOUR_DISABLE_COMMAND";
const enableCommand = "YOUR_ENABLE_COMMAND";
window.addEventListener("onEventReceived", async (obj) => {
// Ignore if not a chat message
if(obj.detail.listener !== "message") return;
// Hide the element
if (obj.detail.event.data.text == disableCommand) {
document.querySelector("#onscreen-element").style.visibility = "hidden";
}
// Unhide the element
if (obj.detail.event.data.text == enableCommand) {
document.querySelector("#onscreen-element").style.visibility = "visible";
}
});
Thank you! Where it says YOUR SNOW ELEMENT HERE, do I paste the url for the element?
And yeah, it is a StreamElements custom widget.
Where do I input these codes?
Oh I see, it's not a custom Widget, it's the standard snow one. :/
Oh, I think you are referring to this one:
Yeah
Unfortunately, there is no way to disable it via chat command π
OOF
Okay thank you for your help and for typing up all of that command thing
I appreciate you
I tried to create something similar for you, can you test it and let me know if it works for you?
https://seapi.c4ldas.com.br/overlays/install/1767288051652
OHHHHH MYYYYYYYY GOSSSSSSSSSSHHHHHH THAAAAAAAAAAAANK YOUUUUUUUUUUU YEEEEEEEEEEESSSS IIIIIIIIIIIIIT WOOOOOOOOOOORKED THAAAAAAAAAAAAAANK YOOOOOOOOOOOUUUUUUUUUUU!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
You mentioned you could change stuff on the widget, would it be possible for the snow to fade in/out or start by coming in at the top? :0
I think so, what do you expect for the fade in/out, exactly?
Fade in from the top and fade out at the bottom?
Two separated options, so you can choose if you want to enable the fade in and also the fade out?
Yeah that sounds good! Fade in from the top and the fade out from the bottom if that's possible and easy to do! ^-^
Well, it wasn't easy for me (frontend is not my thing), but I think it is now working. You will need to reinstall the widget with this new link:
(I also replaced the previous link in case anyone tries to install)
Oh my gosh you're too nice I appreciate you so much!!!!!!!!!!!!!!!!!!!!!!! :3
Thanks for putting so much work into it, that's so nice of you!!!!!!!
Do you think you can do something if someone likes it gives me a notification on my computer from discord
hiya! Quick question I wish to use the stream elements to make a small API for my partner to use on their twitch (allows users to steal shop points from eachother randomly - on theme with their twitch vibe) I can see that the docs detail it as possible through endpoints - how do I get access for this? I know I need to use the 2-Oauth but when I apply it is asking about public application - anyway I can just do it for my partner?
You have to explain how your application is going to work. You can create a proof of concept, a mocked version, design the system, MVP... anything that the staff can understand it to approve your application.
You have access to the same endpoints using JWT, you can create an example using it with your partner, for example, and present it on the form.
@severe shell Thank you again for the snow widget!!! While I was streaming I noticed I was the only one who could use the command, is it restricted to only the streamer? I'd like it to be a public command so people can toggle it on and off, is there a way you or I could do that?
Oh, I forgot to add the permission level option! Install again from the link below and you will see an option to set who is able to run the command. Default is "Mods only", just change to "Everyone".
Thank you so much!!!!!!!!!!!!!!!!! I really appreciate it!!!!!!!!!! :3
Hey all! Where do I manage OAuth credentials for streamelements? It was created and approved years ago, but can't seem to find a dasboard-view of active apps π€
Afaik there is none. OAuth Info for your application is sent to you once.
If I had lost it, I'd open a ticket and ask for them to send it again while providing the email address that got them in the first place.
Note that this may rotate your secret.
Hello there.
My code is connected to the Websocket and listem to channel.tips and channel.tips.moderation.
But when I send an Emulated Tip event through the SE Panel or even a POST on https://api.streamelements.com/kappa/v2/tips I get no return.
Tested with other channels like channel.activities and all works just fine.
The Tips channel need any additional config?
Hmm, it seems channel.tips is still not working (since October) #dev-chat message π
I would suggest that you use channel.activities and filter for type: tip.
One more thing, I would open a ticket if I were you. WIth more people reporting the issue, they can fix it faster.
Thx for the fast reply, will do
Hello! I am displaying chat messages through JS, and I want to style messages differently based on the userβs subscription tier. Is there a way to retrieve the subscription tier of the user? So far, the only subscriber-related value I have been able to get is something like subscriber/1, where 1 seems to represent the number of subscribed months
I would recommend that you use SE Widget Tools by Reboot0 (https://reboot0-de.github.io/se-tools/index.html), it will do the hard work for you. Add this in your HTML tab to import it:
<script defer src="https://reboot0.de/hosted/js/se-tools.min.js"></script>
Then, you can check it using the onMessage() function:
function onMessage(chatMessage) {
// Get Tier badge: 1, 2, or 3. Prime is also 1
console.log("Tier badge:", chatMessage.getTierBadge());
// Check if user has prime badge: true or false
console.log("Prime user?", chatMessage.hasPrimeBadge());
}
If you don't want to import it, you can still try the native way.
Get the value from obj.detail.event.data.tags.badges, parse the string (which is something like moderator/1,subscriber/3054,bot-badge/1, get the subscriber value after the /, check if it has 4 numbers and if so, the first one will tell the tier. If not, then it is Tier 1. Or something like that...
Thanks! I tried that approach, but I am running into an issue:
With any user I test, getTierBadge() always returns Tier 1, even when the user is actually Tier 3
Well, that depends on the badge the subscriber uses. If they opt to hide the badge flair, it will show Tier 1.
This is the only information Twitch sends related to the tier, unfortunately.
This is the full message sent by Twitch for each chat message, there is no other way to check the tier:
@badge-info=subscriber/62;
badges=broadcaster/1,subscriber/3012,twitch-recap-2025/1;
client-nonce=672703868de11e86f87528b2a2abb0b2;
color=#8AE020;
display-name=c4ldas;
emotes=;
first-msg=0;
flags=;
id=f75659ee-bb4d-4497-9c28-29084360a945;
mod=0;
returning-chatter=0;
room-id=28057703;
subscriber=1;
tmi-sent-ts=1767643640542;
turbo=0;
user-id=28057703;
user-type= :c4ldas!c4ldas@c4ldas.tmi.twitch.tv PRIVMSG #c4ldas :Test
When people chat after a raid they usually have a "raider" designation. Does that come through for streamelements? Would it be in the "flags" part of the json tags? I'm not sure a way to surface a message to test and see what the full object is. I see 'first-msg' and 'returning-chatter' I was hoping for a 'is-raider' but it doesn't look like raiders are as clear for first time and returning...

need help with alert messages
alert message wors fine for sub, resub, 1 gift.
however the message doesn't show up at all when more then 1 sub is giftet (mass gift variation) even tho i edited the html code in the same way as all the other variations.
on the cheer alert there is always these numbers displayed in the cheer message. in this picture it was a cheer of 9090 bits, if you cheer 1 bit, there will be a "1" at the end of the message
i know whats happening now, couldn't fix it with gpt tho
Sub gifters don't send message, there is no place in Twitch for the subgiter add a message to the gift.
As regards the cheer alerts, yeah, the cheer symbol should appear, actually, not these 1 1 1 like in the screenshot. Maybe is it a custom alertbox? The default alertbox is like this for 9090 bits:
yeah i have a custom alert box, but either way i dont want to display the cheer amount in the message
If it's custom, you need to do some coding to filter the cheers in the JS part.
https://docs.streamelements.com/overlays/custom-widget#cheerfilter
Pessoal, to tentando logar no OBS com a Twitch e YouTube e nΓ£o estΓ‘ carregando. Sabem como ajudar?
use google chrome not brave or another internet launcher
I'm so confusion. I just got affiliate and one of my friends gave me bits a couple of times but I didn't get a chat notification and my on screen widget notification didn't work. I know stream elements was working cuz my !snow command was working, but for some reason I just didn't see the bits.
Everything is checked, so I'm not sure why it didn't go off? :/
If you have just got affiliated, you need to logout and login on StreamElements dashboard, so it will refresh your account status and "understand" your new affiliated status.
OH! Great, thank you so much! :D I'll do that right now
Did you already fixed the problem that you have with obs?,when you open obs it says not compatibility then when you close obs it says that obs closed with a problem,you reopen obs and it shows the same message over and over,when you open or close it it was showing error messages
Hey Guys, can anyone assist with this? Not sure why i keep getting suspended. Streamed last night for 5hours no issue and now today i keep getting this message with no way to see what the violations are?
Thank you, but its not revoked, it just keeps getting suspended. No mention on TT as to why. I will remove the output and add it again to see if that fixes the issue
It's the same idea. Basically, it's just TikTok decision, SE doesn't have any control of that, unfortunately.
Ok perfect thank you
Had same issue last night my whole canvas was gone.
Any fixes or still not working?
Nope couldn't ever get it back up. Got frustrated and just quit. I was trying to find a way to virtual camera my vertical canvas.
YouTube API request failed: Request had insufficient authentication scopes (how do i fix this wont let me go live on youtube?)
Need some assistance, im trying to use live chat but fore some reason thew messages isnt popping up
When people chat after a raid they usually have a "raider" designation. Does that come through for streamelements? Would it be in the "flags" part of the json tags? I'm not sure a way to surface a message to test and see what the full object is. I see 'first-msg' and 'returning-chatter' I was hoping for a 'is-raider' but it doesn't look like raiders are as clear for first time and returning...
pretty sure that's thru twitch

Can not get loyalty enabled on youtube, I looked everywhere. I have it enabled for my twitch though it was very easy.
Loyalty is not available for YouTube.
Okay, eveything I see in the internet says it is thank you very much π₯Ή
It has never been available, if there's somewhere on the StreamElements site that says it is can you link it?
I didn't look on the website, dumb ass google AI lol ):
Another question though how do I remove someone from a give away? I already selected to refun points and it did but it did not take them out of the giveaway
Not sure if you can, if they win just reroll it.
So I'm looking at adding a bot counter to my stream. Is there anyway I can make the number go up using a stream desk plugin. A few people are asking me to add a death counter and me add a number every time I die.
Q: Is there a way to create a !settags (Set Tags) command for Twitch via Stream Elements?
I change my tags based on the game I'm playing and how I'm playing it, i.e., modded or unmodded/vanilla.
Unfortunately, SE doesn't have support for Twitch tags, it would need a third party API for that. I don't know any right now (maybe I can create something for my website, who knows)
Trying to set up the Awesome Shoutout Widget by ReneChiquette, but I can't even get it to preview in the editor to make sure it's working and using the !so command doesn't activcate it in OBS. I watched the video for the overlay but I thin I still missing something. Any help would be awesome, thanks!
The quickest and easiest way is configuring your streamdeck to send a chat message that runs$(count your_counter_name +1)
https://docs.streamelements.com/chatbot/variables/count
im doing some data analysis on events and there seems to be some single sub gifts missing when i use the /v3/activities/{channel} endpoint im doing type giftedMembers and subscriber and im getting the vast majority of the entries but there are a handful that are missing, they appear on ground control but not through the api?
it seems that the green 1x Gifted Sender events are being returned under the 'giftedMembers' type, but the yellow 1x Gifted (T1) sender -> reviever ones arent being shown? is this an issue with the api or am i mistaken with my implementation?
these are the events that im talking about (forgot to attatch to first message)
question about multi platform - Im connected with my Twitch, YT & Kick...chat works with whatever platform I'm currently signed into, but it's not possible to have them all combine into one chat is it?
so, it's multiplatform, but only one platform at a time, correct?
Not possible nor planned.
but that is how it works? It's one platform at a time, right? whichever one im signed into
I installed streamelements se.live, but when I start it and my obs starts, I click connect, authorize the log in with twitch and nothing happens. any ideas to sort it ?
The streamer I mod for got SE going for YouTube live chat, I created a command and in it referenced $(user) but that didn't reference the youtube user in said command output, does anyone know what the variable is that'll pull a YT username or is that not supported yet?. disregard, had to use $(sender)
What a quiet community.
is there a way to input date stamp on a widget? like 24 hour time code like: $(time.timezone America/New_York "MMMM Do, YYYY HH:mm:ss") i want to stamp the date on all my videos when i record / stream.
i answered my own question with ai, and thus have created a custom data stamp widget, i want to share my code with users for overlay edit studio, it's attached.
.
Hi, Where can I drop some suggestions?
-
__Please add manual "START" and "STOP" button in multi-streaming dock. __
While pushing stream on TikTok, Stream on TikTok frequently crashes without any reason. But due to global start/stop button we have to stop pushing feed on all platforms just to fix TikTok Live stream . -
Please fix bug with custom browser dock.
I don't know why with SE plugin installed the custom browser dock always gets closed after exiting OBS. It's annoying to open custom browser dock each time I open OBS Studio.
Thank You.
Hoping for response for patch soon.
screenshot
Nobody from staff takes suggestions from this channel. I suggest that you use the ideas board:
@hollow stream ‡οΈ
Check out the StreamElements ideas board: https://support.streamelements.com/hc/en-us/community/topics. You'll be able to add ideas, upvote ideas you agree with and track their progress with email notifications. Adding and upvoting ideas also helps the staff know which ideas should be prioritized so please take some time to upvote.
where is that?
looks different on mobile because I didnβt see the link above earlier today on desktop. Not sure why I didnβt see that earlier. Iβll check it out.
what about the bug I mentioned in #2 sir? Cause the link you provided is probably only for new feature suggestions.
I suggest that you open a ticket for that
@hollow stream ‡οΈ
To open a support ticket, in #community-helpdesk type !ticket followed by a short subject (under 60 characters). Example: !ticket My chatbot isn't working. Then follow the bot's steps.
Can anyone confirm if you can get hypetrain events from the Astro API in SE?
It says in the docs they are available, but the one test I was able to run didn't seem to receive any of the hypetrain events. The same code worked for other events though (follow, sub, cheer, etc)
hi, question, if i'm using the template for a chat widget, would that chat work with a Youtube stream chat? or does it only pick up on Twitch chat?
It only works for the platform you're logged into when making the overlay/widget.
so if i have that widget in a streamelements account linked to youtube, then it'd work?
for youtube yes.
okay, thank you!
My SE dosent update my activity feed anymore since I got affiliate plz help
Answered in #general-chat
I need to delete a duplicated youtube output but it doesn't allow me, how do I remove so i'm not streaming twice to youtube?
yeah, I need to delete duplicate YouTube and duplicate Twitch for when I multistream. So I have four from YouTube and twitch and I should only have two from them. Please let me know when you get this resolved.
I'm really confused, I've not been seeing my ad break Chat Alerts Module. It's turned on and I see the messages pop up if I get a follower, but not when I get ads. What can I do?
Lately, weβve been seeing issues with alerts fetching and channel points on widgets that were previously working. Hopefully this can be fixed.
how to fix this
Hey all!
I am looking for a way to sync my SE chat bot commands for both my youtube and my twitch accounts.
Is there a way to do this? Or do I need to manually copy my commands over to the other account?
Hiya, 'im trying to get my SE to show on my OBS... how do i do this?
Hey is se ever going to include tiktok just curious
hey
Is there any way to be able to share Overlays anymore? I saw a post saying it's not possible anymore, but people still sell their overlays on sites like Etsy. So, how would I go about this?
I see, thank you. Very convoluted and not user friendly way of delivering the Overlays to potential clients.
this is the only chat with ppl talking in it but does streamelements (website + dashboard) even work anymore? im having trouble when nothing has changed on my end
Yeah, unfortunately the Overlays don't have the option to generate a sharing link like it used to. Those who got the permission to create links still have the permission. But with the Elements having the sharing link natively, they are pushing us to use it.
That's the reason I created the tool to generate a direct link. It is the most similar way to what we used to have.
Definitely a fantastic tool!
Just sending users to a 3rd party is confusing, and then if I'm going to sell via etsy, have to be sure that your site is staying up and working.
If older devs still have the share link, it completely pushes new developers out.
As far as I can tell, Elements don't have as much ability to write custom code -- so it's not really the same.
Bit of a shame, but thank you for making such an amazing tool
Well, most of the channels are help from the community, so we cannot expect people to answer. The staff only answer to tickets most of time.
The website and dashboard is working here from my side. A little slow, indeed, but working
Yeah, I am able to go into the dashboard and website just fine, but the connection from streamelements tipping/twitch events > streamelements alertbox overlay just isn't working
was just unsure if it was me or an everybody thing
Hey
Elements have support for custom code, but I think they make it too complex for simple things. Either way, you can check the documentation here: https://dev.streamelements.com/docs/widgets-elements-sdk
Regarding the site for sharing overlays, I would say the code is available on github, so you can host yourself, but I've just remembered you would also need StreamElements oAuth, and SE staff aren't approving oAuth for sharing links anymore (again, due to Elements)
It seems an everybody thing... I've heard some people talking about that
Okay then. Weird we haven't heard anything from streamelements, then
hello. is SE allowing OAuth2 for external apps? if so, how can I sign up for this??
The link used to be available here, but it was removed last week, so I believe it isn't open for sign ups for now.
https://dev.streamelements.com/docs/api-docs/cd02cda5171ea-o-auth2
Not sure if it will open again in the future.
Anyone know why my ticket was closed without being replied to?
Unfortunately, we don't have access to that information
The help from the devs/staff here i have to say is fucking shocking
Ah perfect π as helpful as the bots in tickets are
Well, we are not part of the staff, we are just normal users here like you π
All good mate, like i said the staff are and support has been non existent, not having a go at you mate
i had filled up the form last week but didnβt receive any response. hence i sent up a text here.. any idea if itβll get through?
i need help sharing a widget publically
heyyy could someone help me with se.live cause im been live streaming and i got the requirements but i cant use it till this day
Hey! Is there a data key for YouTube live stream likes
in custom widgets, or does that need to be pulled from an external API? I see it working on other streams (tbh don't know if it's with SE) but can't find it in the docs 
It needs to be pulled from an external API. SE custom widgets don't have access to Youtube likes.
what is the best method to acquire a client id / client secret to SE's API?
The link to the oAuth application used to be here: https://dev.streamelements.com/docs/api-docs/cd02cda5171ea-o-auth2
But it was removed recently, not sure when or if will be added again, unfortunately.
if I were you, I would open a ticket asking that
ticket in here or on the website?
@brave saddle ‡οΈ
To open a support ticket, in #community-helpdesk type !ticket followed by a short subject (under 60 characters). Example: !ticket My chatbot isn't working. Then follow the bot's steps.
Here
ty

Installed the plugin but while signing in it stays there and says retry. After retrying it doesnβt sign in. What is the fix?
Hello,
Iβm following up on a request I submitted more than three days ago regarding access to OBS Live.
I havenβt received any response yet, so I just wanted to check if my request was received and if thereβs any update.
Thanks in advance.
This is a good one, I'm using it. My application was rejected, they told me thay they no longer accept new developers, and no longer provide with the share overlay ability.
How do i test a custom chat overlay for my YouTube channel without going live?
You can't.
Seriously? There isn't any way to confirm if it is working properly?
Unfortunately youtube chats don't exist until the stream is live so there's not much that we can do on our side.
Hmmm... I swear I was able to before... but now can't remember... LOL
is it possible to code a multistream chat widget on streamelements? because youtube and twitch connections are seperated. I coded one but I canβt find how to make both chat works together.
Unfortunately that would be against Twitch TOS so you probably won't find an answer here.
oh I diden't know that sorry. And thanks for the info.
Hi! Does anyone know where I can find a list of all the Twitch roles that StreamElements recognizes in chat? Thanks!
I don't know if it's published, but I believe it is: broadcaster, lead moderator, moderator, vip, subscribers.
Is the SE live beta for Mac over?
Question about filtering users based on tags.badges - so "broadcaster/1" or "subscriber/1" and "moderator/1" - the 1 represents some tier and can change, so if I want to filter for all subscribers I want to ignore the / and the number. Is that correct? the number represents a tier, and can change?
I answered my own question, I think. For future reference. I used the badges array instead of the tags.badges array, which is a level up and seems to have the information more separated. Works in testing, will have to test live to confirm
the badges array holds data for the visual representation of badges (e.g. 36-month sub badge), while the tags object holds more accurate data (e.g. 40 months subscriber).
so if you just want to display badge icons or check if the user is mod/broadcaster/vip etc. then the badges array is enough. if you want to parse more specific information about the user, you would have to use the tags object and parse the strings.
you can find some examples here:https://github.com/reboot0-de/se-tools/blob/main/modules/ChatMessage.js#L191
though I'm currently rewriting the library to be less opinionated and more modular, so some things will change in the future π
Yeah, also badges can be changed by the user, so you would need to know the specific cases.
A lead moderator can choose between moderator and lead_moderator badges. Better to check tags.mod == 1
A founder subscriber (the first 10 subscribers of a channel) can choose between founder and subscriber badge. Better to check tags.subscriber == 1
VIP cannot be changed, so you can either choose tags.vip == 1 or the badges. By the way, tags.vip doesn't exist if the user isn't VIP.
VIP cannot be moderatot/lead_moderator at the same time (and vice-versa)
Broadcaster is always channel == nick
Hi,
I would like to report a bug with the StreamElements plugin.
When the plugin is disabled, all my docks load correctly on OBS startup.
However, when the plugin is enabled, some docks are always turned off when I close OBS, so I have to enable them manually every time.
The top dock always loads correctly, but the last four docks are closed on exit.
It looks like StreamElements disables these docks during OBS shutdown instead of saving their state.
If I disable the StreamElements plugin, the docks stay open and load normally last 4 docks on the next OBS start.
The staff doesn't check this channel, so I suggest that you open a ticket for that report.
@torn loom ‡οΈ
To open a support ticket, in #community-helpdesk type !ticket followed by a short subject (under 60 characters). Example: !ticket My chatbot isn't working. Then follow the bot's steps.
Ok, thanks
Has there been any changes published in the last 72 hours that haven't been logged in a release note? I've got 9 clients all reporting the same problem about daily counts (session data twitch) wrongly counting on multiple gifted. All starting end of last week.
would this be valid? it seems to work in testing. looping through the badges to see if the type exists.
when I check tags.mod == 1 if the person isn't a mod it throws an error cause there's no badge. Maybe better to check if a mod tag exisists, if it does that's enough
They fixed the issue, now any user youβre roleplaying wonβt affect the oauth. It wil always use the original user.
I use another approach with tags. When I get home I can show you.
Uhh, finally, thanks for the update!
Maybe someone here can help me because I'm absolutely confused.
I'm trying to build a subathon widget.
When someone is sending 5 T2 Subs, I get tons of events
When I'm listening for bulkGifted: true I'm getting tier: undefined but when I'm listening for gifted: true I get the correct tier but amount: 1

Maybe this page can help you:
https://c4ldas.github.io/streamelements-api/eventreceived.html
I really need to bookmark your site. It's waayy better than the official docs
Hey there !
First, let me apologize in advance, it's my first time asking help here and I hope I'm doing it well.
So here's my situation. I'm trying to implement a sort of "game" where my viewers are the players during my twitch livestream.
I use a custom widget that act as a "factory" who's loaded in every scene I have on my OBS so that it's loaded and listening events at all time. I'm planning to use the SE_API to store data and relay those in between my other different custom widgets (using the built in event spread)
The thing is, it's starting to get a bit cumbersome to dev everything on a single HTML / CSS / JS file bases (and I'd like to also use Typescript to ensure data validity during the developpement and not just at runtime xD).
So I was thinking of developping everything outside of streamElements Overlay editor, then packaged it (don't know how to but I'll find a way, If you have advices I'm all hear), then import the package in my custom overlay code editor to use it.
I've spend some time reading the documentation, and I saw it was possible to import libraries or framework, but there's no explaination on how to and what's best to do. I've understood that doing so will disable the enventual console.* in my code to be executed ? I'm also wondering if doing so will still allow me to use the SE_API to store data in between my streams ?
If it wasn't clear please tel me, i'll try to be as clear as possible.
You're very clear!
Well, if you want to develop outside of Overlay Editor, you can use this: #dev-chat message
However, it doesn't support chat message events, which is sometimes what people want to track.
You can "package" it and send it to your overlay using StreamElements API, creating a new overlay or modifying an existing one, but the "package" is putting the contents directly on the body of the request:
https://c4ldas.github.io/streamelements-api/#/operations/Post/overlays/:channel
https://c4ldas.github.io/streamelements-api/#/operations/Put/overlays/:channel/:overlayId
Instructions: https://c4ldas.github.io/streamelements-api/
To import libraries, you will need to get them via CDN, and then import it using <script src="CDN_URL_HERE"></script> on HTML tab
The part of the console.* is that you can't read console events from your code or have access to cookies, but you can output to browser console with no issues, and there is no relation with the library import thing.
Regarding SE_API, yes, it's a small key-value database where you can store anything you want. There is no restriction to use SE_API.store get/set in a custom widget.
I hope you read the documentation from https://docs.streamelements.com and not from https://dev.streamelements.com (this one is very outdated, even the API reference)
Hey man, sorry, I completely forgot that. This is how I check the user values, I don't like to use badges, since they are just a visual thing:
window.addEventListener("onEventReceived", async (obj) => {
// Ignore if not a chat message
if(obj.detail.listener !== "message") return;
const data = obj.detail.event.data;
const userState = {
"broadcaster": Boolean(data.nick === data.channel),
"mod": Boolean(parseInt(data.tags.mod)),
"vip": Boolean(data.tags.vip),
"sub": Boolean(parseInt(data.tags.subscriber))
}
console.log(userState);
/*
{
"broadcaster": true,
"mod": false,
"vip": false,
"sub": true
}
*/
}
Hey, it's me again.
I got an other question.
I was wondering if it's possible to send message or wisp with streamElements chatbot programmatically in JS code of a custom overlay ?
Or at least if the chatbot can access SE_API data in a wisp answer to a user ?
I'm asking because I may need to provide some feedback to my viewers without using widget/custom overlay to avoid overloading the live.
I was wondering if it's possible to send message or wisp with streamElements chatbot programmatically in JS code of a custom overlay ?
Not natively, but you can use jebaited method, which is a third-party site from one of the SE staffs. Look for "how to send chat messages using custom widgets" in the pinned messages.
Whisper isn't possible.
Or at least if the chatbot can access SE_API data in a wisp answer to a user ?
Chatbot cannot access SE_API
can anyone help me out? ive just downloaded it and when i boot up it asks me to login which i press to do and it takes me to google to login and then it goes to a black screen and on obs it just gets stuck on connecting with twitch
This post: #community-helpdesk message
sorry my bad
hm...
interesting...thank you. will use that in the future for sure
hi
hey ! It's me again, I have another question ahah.
Does the userId in message event (or redemption event) is the same in between 2 streams ?
Like if a user come to one of my stream talk a bit then come back 2 weeks later, does the userId in the message event will be the same ? Or should I use the username as ID (I know twitch user can change their username, but it's a choice on their side, can't do a lot on that).
Thanks in advance if someone know (gonna test it on my side and tell you if no one knows).
Thatβs the Twitch user id, it doesnβt change, since it is the user account. Itβs always the same for the same user, even if they change their username.
i have 9k followers on tik tok and its keep declining my tik tok aplication can some show me how to get approved i meet the requirements
Basically, it's a TikTok thing, there's nothing SE can do.
#announcements message
ehhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
Hello, I'm trying to fix an issue with an alert. On my "Resubs" alert it will pop up for only a moment and then go away and not make any sounds. All my other variations and normal subs work perfectly fine.
Actually maybe my regular sub alert is broken too, only gift subs will have a popup, but the follower section works
masters i need help my SE.live docks is not appearing
- OBS version 32.0.4
- StreamElement SE.Live version 26.1.12.537
nothing happens when i click this
i got my issue fixed by following this steps from @proud spade #community-helpdesk message
what i do is allow "local network" on site settings of these websites:
@sullen jolt Don't spam the discord please.
Okay, instead of trying to help me, they deleted the message in the chat.
I did. You already posted that in two other channels. This channel is for people developing widgets and tools. You are in the wrong channel and you are spamming the same message in multiple channels.
And where do I get my problem resolved? I've already sent it through all the channels and nobody is helping.
As you have been told, tickets are the only way.
It's almost embarrassing to have to read this, but what can you do, it's your job, right?
No, it's not his job. This is a community channel
I do it for free. All support here is.
Also, except from the staff, everybody here is a volunteer
Try again tomorrow, in the correct channel.
Man, the official way of having things solved is opening a ticket. Everything else is a community help, where everybody can help everybody, there is no "employee" or "jobs" here. Don't take it personal, but nobody here is enforced to do anything. We just redirect users to the correct workflow (and provide solutions where we know/can).
That's an strange behaviour. Try to logout / login from StreamElements dashboard.
If the logout/login doesn't work, as a test, try to create a completely new overlay and test if things work for you. If so, this is a case of that overlay being broken. Then, you will need to abandon that overlay and work on the new one. π
The dashboard on OBS? Itβs broken on the Streamelements page as well. If I add a new alert it works fine, but somehow the one Iβve been using just stopped working randomly
And only for subs
The SE website itself. Just logout and login later.
Yeah, sometimes that happens and I don't know the reason. Most of times, if you just duplicate the overlay, the new one will work, so you don't need to recreate it manually.
Iβve been on and off it so Iβve logged in/out a bunch on the website
If I duplicate it I believe itβs still bugged
Oh the overlay, Iβll give that a try when Iβm home, thank you!
((I apologize if this is the wrong chat to ask this in))
I'm trying to make a chat widget where the backgrund image changes colors based on the twitch username, but im having trouble finding what the variable would be called within streamelements- i've made this effect work on soundalerts, but I'm trying to recreate it in streamelements.
basically i have a grayscale image for the background, and it's set to multiply, so that the chatter color will influence the color of the image. But I can't figure out how to address the chatter color within the CSS, does anyone happen to know what it would be? Or if I need to use JS as well to emulate the effect
Hey there π Just came across this and thought I'd try help! StreamElements doesn't have a native CSS variable for that like SoundAlerts might. You have to use the JS tab to bridge the data.
The variable youβre looking for is obj.detail.event.data.color inside the onEventReceived listener.
Just grab that hex code in your JS and apply it to your element's style.backgroundColor. Once that's linked, your CSS multiply effect should work exactly how you want it to! 
thank youuuuuu
a follow up question as im not nearly as familiar with JS π
if (obj.detail.event.listener === 'message') {
const data = obj.detail.event.data.color;
const usernameColor = data.displayColor || data.color;
if (usernameColor) {
user-boxContainer.style.backgroundColor = usernameColor;
} else {
user-boxContainer.style.backgroundColor = '#ffffff';
}
usernameSpan.textContent = data.displayName + ":";
usernameSpan.style.color = usernameColor;
messageSpan.textContent = data.text;
}
});
Google and W3schools suggests this should work but it's definitely not, so I fear I am missing something but I don't know enough about JS to know what that is
if it's relevant my CSS that im trying to change looks like this atm
background: url(https://i.imgur.com/72nlgPx.png);
padding: 20px 100px 10px 20px;
border-radius: 0 100px 100px 0;
text-color: black;
background-blend-mode: multiply;
text-shadow: 5px 5px 5px black;
}
I can also put everything into a txt file to share the full code lengths atm if that helps but itβll be tomorrow because Tis very very late for me
The object is actually obj.detail.event.data.displayColor or also obj.detail.event.data.tags.color. π
One more thing, you cannot have a variable called user-boxContainer, like it is onuser-boxContainer.style.backgroundColor. That will make the JS thinks you are trying to subtract boxContainer from user. You have to change your variable to another name, like userBoxContainer.
If you need a more complete output of a chat message, you can just output on your console, or you can get an example here: https://c4ldas.github.io/streamelements-api/eventreceived.html#chat-message-without-reply
also the color prop will only exist, if the user set one in their settings. otherwise you'd have to fallback to a random or fixed color
((Double checking))
So Iβll need to rework things so that my user-box class doesnβt have the dash in it as well so that the JS can understand which class itβs supposed to be effecting? Or would it still recognize user-box by userbox
The CSS names are refered as plain string in JS so dash aren't a problem in the naming. But its JS var that needs to avoid dash in their names.
To be more precise, since there's no real type in js a "-" is interpreted as an operator, so when you're doing user-boxContainer.style there's a risk that JS will try to do user - boxContainer.style instead of a normal reference access.
But when accessing CSS it's always with a DOM access function (like getElementById for exemple) and in this case you're doing a string reference access, so it won't matter if you're accessing a dashed name CSS classname or not
unfortunately still happening, so I guess I'll just have to re-make the overlay
thanks for the idea
Hello, i am migrating our application from realtime.streamelements.com to astro.streamelements.com websockets and i have a question. For the tips topic, it does not include isMock tip events (replays from SE Dashboard/activity feed), is there any plans to include it or do I have to subscribe to the activities topic? We're only interested in tips events and the activities topic is a little noisy for our use case. Thanks!
The tips topic only considers actual tips. If you are emulating an event (even for a tip), it is an activity, not a tip.
Adding an emulated event or replay to the tips topic would need a new checking just to ensure itβs a real tip, which is not expected (especially for something related to money). Also, it can break already existing codes.
It would be simpler to filter the emulations and replays on the activities topic itself, since itβs already common to filter events in that topic.
gotcha, thanks for the reply. I'll consider adding it back in the future since it requires new oauth scope and new topic.
ive had a open ticket since the 10th of febuary and havent had any responce
just want to know whats going on with it
Btw guys your overlays is being broken when using π emoji, specifically chat overlay
It dobles and sometimes tripples messages
Like here, but it was just one msg
Ah π this emoji also breaks it
So it was doubled because of π and trippled because of π
iβm using the JWT token and the tips endpoint to post tips on my acc. For some reason they only show up in dollars and not in the actual currency of the tip.
I posted with CAD and it showed up in the UI as USD. Same for other currencies - it shows up as USD
Can anyone help on how to fix this?
The leaderboard is based on these counters
Would anybody be able to help me out with this?
Is there an option to filter top donators starting from January 1, 2026?
Iβm currently using this API endpoint:
https://api.streamelements.com/kappa/v2/tips/channel_id/top
I just want to clear top donations for 2026
Your message is too confusing, please try to reorganise the text, break lines, and separate each ideaβ¦
I tried to read three times but not sure if I understood everything.
Say that I want to run !hug streamelements and get the counter "hug_andreygalaxy__streamelements" (aka "hug_$(sender)_$(touser)") to show up when I run that command and show how many times I have hugged streamelements, but I also want to increment the counters"hug_andreygalaxy_" and "hugged_streamelements" as well without calling them in the reply to !hug.
I then want to run a getcount for command"!hugcount andreygalaxy_" to return the "hug_andreygalaxy_" and "hugged_andreygalaxy_" as total given hugs and total received hugs.
Unfortunately, that endpoint doesnβt have filters π
I did get this figured out and just incorporated the counters into the !hug command as it is
Is it possible to at least change from all time to monthly top tips with this api?
So all I want is to find out if I can take all the counters that start with hug_ and make a leaderboard out of them
Ahh okayβ¦ interesting idea, but it isnβt possible only using chat commands. Any variable increment will generate an output from the bot.
So it will show in the chat the hug_sender_touser value as well as hug_sender and hugged_touser values.
Yes, I've understood that and added a command that uses that information, thank you.
Not with that endpoint. There is another one that allows to change to months, but the response is very basic (only username and total value):
https://c4ldas.github.io/streamelements-api/#/operations/Get/:channel/top
Okay thanks <3
Yeah, itβs somewhat misleadingβ¦ the activity feed and the Alertbox show the currency set in your tipping settings (with no conversion).
Revenue history page and custom widgets (onEventReceived listener) show the correct currency, though.
I'm going to report that to the staff, maybe we can have some update in the future
Is there a way to return $(sender) instead of arg $(2) if there is no input for $(2)?
You can use $(touser|sender).
!cmd add hi Hi $(touser|sender), how are you?
c4ldas: !hi
StreamElements: Hi c4ldas, how are you?
c4ldas: !hi andrey
StreamElements: Hi andrey, how are you?
I'm just curious if I can pass two inputs?
!cmd add hi $(1) says hi $(2), how are you?
c4ldas: !hi andrey john
StreamElements: andrey says hi john, how are you?
Not that I'm sure it works that way
You can pass as many arguments you want. $(1), $(2), $(3), $(4)...
But they need to exist when the command is called
Yeah, so my question is if sender can be called instead of 2 if I just send !hi andrey instead of !hi andrey john
If it would return 'andrey says hi andreygalaxy_, how are you?`
Wdym by that?
all good
!cmd add hi $(1) says hi $(2), how are you?
andreygalaxy_: !hi andrey john
StreamElements: andrey says hi john, how are you?
andreygalaxy_: !hi andrey
StreamElements: andrey says hi andreygalaxy_, how are you?
Functionally, this is what I want
fixed it
Like how touser defaluts to sender, but I want 2 to default to sender instead
$(2|$(sender))
c4ldas: !hi john
StreamElements: john says hi c4ldas, how are you?
c4ldas: !hi john yoda
StreamElements: john says hi yoda, how are you?
Also, sorry for the many and difficult questions. I'll try to simplify my requests, but I'm just really interested and invested and want to figure out the extent of the functionality of streamelements!!
Oh awesome!! Thank you so much for your help!!
Don't worry, as long as I understand your questions and know the answer, ask as many as you want π
Speaking of, can I return to this question? I want to make a leaderboard based off of counters that start/end/contain a specific phrase like hug_ or patted_ separately
Would I be able to separate the hug_$(touser) counter from the hug_$(sender)_$(touser) counter? or should I just go ahead and change the second one to a different phrase?
Changing the phrase would probably be easier, so dw about that request for now
It depends on how you're going to create your leaderboard, but to get the list of the counters, you can use StreamElements API. Here you can get the list of the counters:
https://c4ldas.github.io/streamelements-api/#/operations/Get/bot/:channel/counters
So I'm not really well aquainted with pulling API's or how it works? Say I just want to display the top 5 counters that start with hug_ and display that in chat? How do I do that?
But how are you going to create the leaderboard? Is it going to be a web page, a chat message, a custom widget?
Oh, just a chat message is all that I want
Hmm, don't think there is a way to get the list of the counters just in a chat command
So, no idea on how you would have a leaderboard with that
Alright, then what way could I do it?
Hmm, you would need to write your own custom code. But that would need some server side or at least Google Apps Script.
Oh, I see
I want to learn how to code on the one hand (I'm not experienced in it at all), but at the moment I'm not sure if I can do that
Well, you can always use some AI Assistant for that. Here some output from Gemini, it should help:
Go to your https://streamelements.com/dashboard/account/channels
Click Show Secrets.
Copy the JWT Token.
In your Google Apps Script editor (https://script.google.com), New Project > go to Project Settings (the gear icon) > Script Properties and add a property named SE_JWT with your token as the value.
From the Editor (< > icon), paste code attached.
Click Deploy > New Deployment.
Select Web App.
Set Execute as: Me.
Set Who has access: Anyone.
Copy the Web App URL.
Create a new command for the leaderboard on StreamElements dashboard and use the following output:
$(customapi.YOUR_URL_HERE)
From here you should be able to follow with Gemini or any other AI assistant.
Thank you! If I find some time I might work on this!!
hello
What is the status on Oauth2 client ID? The document mentions that you can use a client ID to do two, but Iβm not able to find a way to access that client ID
Oauth2 signup is currently "disabled" due to rework on our side.
Any estimations or eta on this?
Thanks
Or if there are any workarounds i know jwt is there but that is not recommended right?
Hello! First time here but with JWT token when I do a call to a simple get I receive a 403 "Not allowed"
Anything I need to do to get it work?
need more context on what the request was, just redact the JWT
As far as I understand from this suggestion, if I use "|" then I can passthrough a command or value if I don't find an input value?
!cmd add !count $(count +$(1|1))
!count
1
!count 3
3
Yes.
The way I used it in the above message is correct then?
Probably⦠you can always test on your own chat to make sure if it works for you.
True, thank you!!
since twitch allows multistream chat overlays, can we expect se side update to chat widgets?
Maybe but there's no guaruntee it'll happen.
iβll hope the best then. because itβll help a lot and cut the need of outside sources.
I got rid of Aitum, but with SE Vertical, I cant change settings so its recording in MKV and only recording Audio 1. wont let me change to use OBS main settings and wont let me edit current settings, just resets them even after I save changes. So i'm trying to figure out why i cant record vertical video in mp4 and at very least i need multiple audio tracks
So I finally got around to testing it out in my own chat to see how it works, and this is what I got from it. Not sure what would be incorrect here.
I got rid of the first "+" before the arg variable, and now it shows a blank instead of the command, but iterates by 1 every other command
So I get blank, count 1, blank, count 2, blank, count 3, etc.
Hey there, I was wondering, I'm trying to play an audio sound programmatically with my js file on a custom widget.
But it gets blocked by browser policy ("the user must interact with the document first").
But since it's a widget that i'll use with OBS there's no way I can interact with it T_T.
Does anyone know how to bypass this ? Because I managed to get my audio file played in "alert" widget with js script but not in custom widget ? Is that a StreamElements policy that blocs sounds specificaly for customWiget (different environnement or stuff like this to ensure sΓ©curity) ?
Iβm trying to multi stream on all platforms all the platforms work except for kick it keeps disconnecting my stream and reconnecting it I looked up videos but I donβt want to touch my setting cause the last time I did I messed up everything is there an easy fix ?
This is what it looks like on my end
is there a way we can trigger and play TTS from a custom widget?
OBS doesn't have that restriction. It will work normally without user interaction first.
It used to work with this endpoint: https://api.streamelements.com/kappa/v2/speech?voice=VOICE_NAME&text=TEXT_HERE, but it got blocked later. And then this option appeared: #dev-chat message
But it is undocumented, so it can stop working again in the future.
It doesn't, but i'll try to investigate it more. At the moment the alerte was mute both in streamElement overlay editor or OBS but thanks for the info. I may come back (sorry) with further data if I manage to find more.
@signal pond just send your message without ivory.re link
@signal pond check #mute-unmute channel
hi
Any recommendations for getting gifted subs to just trigger one time? So someone gifting 15 subs, will just fire as one event
Variation type has to specifically be community gift. Any other one will trigger multiple.
hello sorry to bother you (I am French), I donβt know if itβs the right channel but I have a question. How can one access the customization parameter of their bot to associate a twitch story and therefore have the name they want, and if there was the same thing for a Discord bot. Thank you in advance
Hello,
I'm trying to access a third-party secure database using stream element's custom widgets. I'm wondering if there is a way to have hidden keys for third-party APIs to reference in custom widgets so I don't have to hard-code it in a variable.
I may be smooth-braining it, but I haven't been able to think of a solution to this problem.
Thanks
I feel like I should make note that I know about SE_API.store, but I question the security for saving API keys to the store.
Well, the SE_API.store is not designed for saving API keys, but if you know how to use it, I don't see why not. Some custom widgets use it. Others use keys directly on FIELDS section.
Think that custom widgets are just frontend applications and you can understand the implications.
Especially if the widget will be only used by you. Otherwise, I would suggest you have the key saved elsewhere, (Google Apps Script is something you can use). The problem is that being one more code to maintain.
Thank you for the replies. I'll look into things further.
hi there, I have an issue where my realtime data from twitch isn't updating in order to trigger an alert, widget etc. Can someone help me please?
Is it possible to use URL params (query's) inside the SE Widgets?
e.G <overlay-url>?player-a'=joe&player-b=Doe&hello=world
I'm asking because my normal way of doing so does not work:
const urlParams = new URLSearchParams(window.location.search); urlParams.get('player-a') || "P1", urlParams.get('player-b') || "P2"
Thanks in advance!
Nope π
We should recommend it then.
The way I see it this could be used nicely alongside the fields
Well, custom widgets run in a sandbox, so it doesn't have access to those info.
I suppose the devs could pass it no? Don't know how the sandboxes are done in detail but when it can load the widgets in DOM there might be a way to pass them who knows
I had suggested that in the past, but received no response. I think I will do it again.
My suggestion for you is that you also suggest that using the ideas board, so maybe with more people requesting, they give a special attention.
Check out the StreamElements ideas board: https://support.streamelements.com/hc/en-us/community/topics. You'll be able to add ideas, upvote ideas you agree with and track their progress with email notifications. Adding and upvoting ideas also helps the staff know which ideas should be prioritized so please take some time to upvote.
Agreed I'll write them tomorrow. Need to sleep as I got an exam early in the morning
Cheers mate!
Hello everyone, I'm trying to create a widget that lets me display a person's avatar when they make a command in the chat. The problem is that apparently you can't retrieve an avatar through an endpoint via the Twitch API unless you use a token. I would like to bypass that and easily retrieve the avatar, with the goal of later sharing my widget
You can use decAPI for that:
https://docs.decapi.me/twitch?endpoint=avatar%2F%3Auser
It doesn't require a token
is there a way to setup a custom alert for ko-fi with the widget event API in the elements overlay?
As far as I know, Ko-Fi Events require a dedicated webhook, which isn't possible with StreamElements alone. However, what is feasible is this: you have the KofiBot in the chat, which sends a notification when a donation is made, and you capture this message in the overlay and create an alert from it.
has any of the kick production event payloads been documented yet?
I don't believe so and even then there's nothing new based on their (kick) docs changelog.
Though I'm not sure how caught up SE is in comparison to said changelog.
hey folks. I was about to publish my first widget for SE. But iβve always had this question - how will i publish updates on this widget?
do i have an option to update existing widget or I have to make a new publish for every update/patch?
here is where I can ask about how to do a custom widget?
I want to create a multi stream chat widget, I visited the custom chat widget github repository od stream elemens but 1 I dont know how to make it multi stream and not just twitch, 2 I don know how can I fuse my figma disigns with the code in stream elements editor
If you are using overlays, quick answer: you don't anymore.
#dev-chat message
hi
i have problem with the overlay size its doesn't full all my screen on obs
i did put the correct size put still same problem
That github repository is abandoned π
Making a multi stream chat widget is not something easy in SE, since each platform is separated in your account. You don't have access to Twitch chats from your Youtube account, for example. You would need something in the middle (like a server) to join them together and forward all of them to you.
like that
How does it look in the Overlays page?
its look small
It seems to be taking the correct size... Think the page on your overlay is your entire screen. The white part with the blue dots is your full screen
ok but on stream so small
If you want the image to be bigger, just increase the size of the Alertbox.
i did that
So, go to your overlay on OBS, click twice on it and change the width to 1920 and the height to 1080. See if that works for you.
yes it dose 1920x180
Right click on it > Transform > Reset Transform
i did it but dosent fix the problem
Ok, so if your image is big enough, you can change the layout of each alert. So, it will use the image size to show on screen:
But you need to go to each alert type (follower, subscriber, etc) and change them. The same with the variations, change all of them to do what you want.
ok, in the scenario of not multistream, how can you make designs made on affinity, figma, photoshop, illustrator or clipstudio, etc to be the chat widget?
i try that one
still not full the screen
The custom widget editor is just a pure text coding interface. But if you mean the assets, like images and gifs, you can upload them. You can create an item in FIELDS section of type image-input and an upload option will appear on the fields.
{
"yourImageInput": {
"label": "Your image input",
"type": "image-input"
}
}
What's the size of your image?
Its a video and the size 1920x1080
what I meant is that people first designed in a disigning programm and then proggramed it on streamelements, so instead of strem elements letting me chage the color of a simple bubble I want it to letme use my disgn as the bubble of the message, the catter name, and what ever monetary role they have
instead of that gray transparent thing I want to put my design
Well, the only thing you could do is if you can export the the HTML and CSS from the design.
Then, in the widget, you click on "Open Editor" button, and copy them to each one of the tabs (HTML, CSS and JS).
The overlay editor doesn't have any tool that you can import designs or anything like that. It is pure HTML, basically.
Not sure if that answers your question, though. But if not, let me know and we can try to have it answered π
just import it or do I have to import especific parts for example instead of were I change the color on stream elelments put there image, or somthing, Ill have to search how to export a design of figma into html and css
It should work for a 1920x1080 video:
I dont want to ask my bestfriend to do the code for my thingys for free, so I want to learn to do it
Yeah, basically you have to think the Editor as a bunch of pure text files, one for HTML part, another one for CSS, one more for JS and the last one for the fields on the left. So you cannot import a design created in Figma directly to it.
It is the (g)old days where you write everything on the notepad.
yes i have try it
i am tired of this problem i havent found a solution
Ohhh ok, so in the fields part is where i can make the image or video uploader to appper right?
The problem is that making it just appear wouldnt not fix everything because that doesnt mean the imege would become bigger or smaller depending of the size of what is written
Exactly! The FIELDS tag is where you add the config to "enable" the uploader.
As regards the image size, you would need to configure that via CSS or JS
Is there a repository for stream chat that is not discontinued?
Yeah, don't know what is happening in your situation, but definitely video and images can be full screen. As a test, try to create a new overlay and set the video again, choosing the layout for the one that is full screen
I ask becuase ,some people make that one bubble is for suscribers, other for normal chatters, other for mods, etc
And I dont think that with the repository im work im gonna figure out how to do that
Not exactly, but you can find some custom chats in #widget-share. That channel is where the community created custom widgets and make available to everyone, but it isn't used anymore.
You can install some chat widgets from there and check the code to understand how it works.
ok
If I want to put an image and make it rotate infinitely what do I have to do?
HTML
<img src="YOUR_IMAGE.jpg" class="rotate-img" />
CSS
.rotate-img {
animation: spin 3s linear infinite;
}
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
and how it was for in fields opening the otion to put image or video?
Go to FIELDS and create a new entry:
{
"myImageExample": {
"type": "image-input",
"label": "This is my image"
}
}
Then, on you HTML, you change it to
<img src="{{myImageExample}}" class="rotate-img" />
do I need somthing on JS? it doesnt show
ohh no, the image is so big it doesnt show up when I make it small
No, just those ones... But make sure you are adding it correctly on the FIELDS. If you have already something in there, you won't need the external curly brackets:
"myImageExample": {
"type": "image-input",
"label": "This is my image"
}
no, I have it good, it is just that the real image is 4320 x 4320px and it has a lot of tranparente space, si when I put the image, and then make it small it only shows the transparent space, when I make it big it shows a little of the image, and when i make it the normal size it only shows what it shows in the canvas
The best solution in my opinion is editing the image first to remove the wasted space.
But you can also "crop" the visible image using CSS
how do I crop it?, I know that wiith the normal image uploader it crops it automatically, but how do I do what you said?
I'm not good with CSS, but I found this:
https://uploadcare.com/blog/how-to-crop-an-image-in-html-and-css/
thanks
It is somthing on fields, it doesnt show the image size scaler
Iβm trying to multi stream on all platforms all the platforms work except for kick it keeps disconnecting my stream and reconnecting it I looked up videos but I donβt want to touch my setting cause the last time I did I messed up everything is there an easy fix ?
You are showing two different things. One is the default alertbox config. This one is internal to StreamElements and there is no relation to your custom code. Unfortunately, there is no way to make the custom one look like that.
Maybe you should have a look at the documentation first to understand how it works. https://docs.streamelements.com/overlays
Also, get some custom widgets from #widget-share channel, and take a look at the code, that will help you a lot to understand how things work in the editor
This is what it looks like on my end
ok
Iβve reset my stream key disconnected and reconnected kick and nothing seems to be working
Hi
I have a suggestion
Can we get the option to create a highlight even when we're not live on the vertical?
hi
question, is there a way to get when a specific channel point redeem is triggered in custom overlays? I would like to try make a widget that does something on a channel point redeem
Yes, it shows in onEventReceived listener when a channel point redemption is redeemed. Here is how it looks like:
https://c4ldas.github.io/streamelements-api/eventreceived.html#channel-points-redemption
i was trying to test it earlier but it wasn't working, i did this, did i do something wrong?
window.addEventListener('onEventReceived', function (obj) { console.log("Data obtained:"); console.log(obj.detail.event.data); });
Bonsoir j ai un soucis avec la sponso doomsday
Des viewers on monter leur centre de recrutement niveau 14 et je n ai pas touchΓ©r les revenus pour le niveau 12 et 14
You have to filter it first. Not everything that appears in onEventReceived contain obj.detail.event.data, so your code should be breaking before reaching the redemption.
window.addEventListener('onEventReceived', function (obj) {
if(obj.detail.listener !== "event" && obj.detail.event.type !== "channelPointsRedemption") return;
console.log("Data obtained:");
console.log(obj.detail.event.data);
});
i literally copy pasted and it still didn't work π I made a fresh custom widget and put that but it's still giving me nothing when i go to the console π₯
I did the same and it is working fine on my side. Which browser are you using?
Try to open a private tab and open the overlay in that tab. Or maybe disable some extensions to test.
It was opera gx, I'll try on a different browsers when I can, it's a bit hard to test since I'm not affiliated, a friend was helping me but they had to go
Yeah, if you're not affiliated, that won't work... But you can ask your friend to add you as editor in his account, and create a test redemption costing 1 coin so you could test it in their channel.
Regarding the browser, try to use Chrome or Edge for that.
I'm reading about OAuth2 on the StreamElements page, but there's no information on how to actually create a StreamElements app. Where should I go for that?
OAuth applications are closed for now. We don't have any info when it will open again.
Thanks for the quick reply! I also wanted to ask about the JWT: does the system rotate them frequently, or can they only be changed manually in the dashboard? I'm planning to use it for a WebSocket connection
Each JWT is valid for 6 months after being generated
But you cannot regenerate it via code, it is regenerated automatically
I understand that, but I just think that nothing will break with my active stream.
i was streaming for more then six month and i never have this how to fix this
Answered in #general-chat
Hello, what is the domain name for StreamElements? My friend has a Sponsorship link but his link says βstrms.netβ while everything I see online says that the domain is actually called: βstreamelements.comβ
Im worried its a sketchy link
I would appreciate any help or information, thank you in advance
strms.net is the StreamElements short link. It is official, you can see some links with that domain in #widget-share (#widget-share message #widget-share message) and in #announcements ( #announcements message, #announcements message)
ah so its the exact same as βStreamelements.comβ, just shortened for convenience?
Yep!
and they are both the official and safe site?
sorry, im just making 100% sure lol
strms.net and streamelements.com are both official and safe to use. π
Tysm! I appreciate your help alot!
@severe shell Hey, I am having a problem with emulating buttons, none of them are working.
Yeah, that was reported to the dev team, they are aware of that.
ok, thank you for the feedback though
Hey guys, I installed the Multistream plugin and set everything up, but I can only start the vertical and horizontal stream for YouTube with SVT-AV1 or AOM AV1 video encoding. Even then, one of the two streams always breaks off and both generally run very jerkily. However, if I want to use AMD HW H.264 (AVC) or AMD HW H.264 (HEVC) video encoding, the stream doesn't even start, so nothing happens at all. I would really appreciate your help... Have a nice evening. Best regards.
question regarding custom widgets, if i have an json input type of multiple images, would it be possible to tie more data than just the image link? like for example the image name or is there a method to be able to make it so if image 1 is picked, a specific text is picked with it?
guys my stream element is kinda weird, its been like 2 weeks since this problem have been happen, so its like when i stream on youtube, the network indicator is just fine, showing green status, but when its on tiktok specific, the network shows red indicator, like its somehow very spesific only on tiktok
Does any one know maximum size of custom widget in streamelements overlay? Im getting PUT https://api.streamelements.com/kappa/v2/overlays/... 413 (Content Too Large) π
I inline all my assets for custom widget, because i didn't want to rely on external image hosting
But i maybe I will have to use one, so maybe someone has something to recommend or any tips how to handle image assets for custom widgets
Is it possible to let two custom widgets talk with each other without usage of external api?
like Widget A sends data to Widget B?
both on same overlay
Hi! The settings panel is missing in the overlay editor and I can't edit the default image
When I select the widget layer, the only options I get are Position, size and style and Text settings. The normal widget settings (gear icon / configuration panel) never appears, so I can't change any of the HypeCup options.
I already tried refreshing the page, reselecting the widget and turn off adblocker but nothing changed. I asked ChatGPT but he couldn't help either
I'm attaching a screenshot showing what the editor looks like.
Does anyone know why the settings panel is missing and how to fix it?
might be that there's some error on your json file, usually that happens to me when there's something wrong there
How can I fix it? I don't need a detailed explanation just an overall ideia, I'll figure the rest out π Thank you so much!
look for syntax errors on it, maybe a "," or "}" is missing, could be something along those lines
ok i'll try it thank you
Hi! Do you know the correct way to detect twitch channel points with a custom widget?
I can detect alerts properly, but when I try using Channel Points:
window.addEventListener('onEventReceived', function (obj) {
const listener = obj.detail.listener;
const data = obj.detail.event;
if (listener === 'channel-points-latest') {
it doesn't work. I think I might not be using the right detection method
Thanks in advance for your help!
well that was fun
@muted narwhal Bot go 
god forbid i try and help someone
oops
window.addEventListener('onEventReceived', function (obj) {
const listener = obj.detail.listener;
const data = obj.detail.event;
if (data.type === 'channelPointsRedemption') {
const redemption = data.data.redemption;
const displayName = data.data.displayName;
const amount = data.data.amount;
console.log(`${displayName} redeemed ${redemption} for ${amount} points!`);
}
});
It treated data.data as a link and went hard no with it.
All data.data variations shouldn't be tripped from now on but 
Cant get https://api.streamelements.com/kappa/v2/channels/${channel}/socket to work anymore.
the wonky thing is. I even get a 200 ok response. but it no worky
Thank you soooo much β€οΈ
any idea why streamelements is not sending bot:counter event?
I am having the same issue @mellow mesa I asked for help on this last week but no one else seemed to have the same issue. 3 clients are now all having the exact same issue
It was all working until the 12th March
itβs one of the many issues theyβre having right now, hopefully an official update on whatβs going on soon
I know how to check for roles on Twitch but how do I check for the streamer/broadcaster on YouTube? in a message event specifically
One message removed from a suspended account.
It's closed ATM unfortunately.
One message removed from a suspended account.
Today overlays got some love:
Breaking change:
widget button event is received by widgets only within same overlay (so no more buttons that break stuff cross-overlays). Happened to me when I had a button called "start" and it was for both subathon and a wheel of fortune.
Additions:
added some autocompletion for custom code editor
- SE_API.events:
- SE_API.events.emit - emits an event within same overlay
- SE_API.events.broadcast - emits an event across every loaded overlay
This one is to replace/socket(the endpoint should display you a possible migration)
more info about event: https://docs.streamelements.com/websockets/topics/channel-overlay-broadcast
Hello! A while back I reached out about getting realtime updates to a widget I built outside of SE of information using the SE API and was given links to accomplish that goal, which I did, but in the last month they stopped working and now it doesn't retreive info for all time top cheerer, sub gifter, or donator...
I can't even find the conversation or links in this channel anymore which is doubly weird.
Anyway, just curious if anyone knows why they stopped working?
Probably this one?
#dev-chat message
i changed nothing and everything still working fine but these red warnings gives me anxiety. was goin on with jsons π¬
It was me! I was adding some syntax highlighting and type safety to internal code-editor. Should be cleaner in few minutes tops.
Yup lol, unsure of why it wouldnβt let me search for it. But yea, that conversation and the links provided through it are what is in question here.
I just setup chat bot for stream elements on all my platforms now is this the final step for kick or does it automatically sync ?
The bot operates seperately for each platform. You'll need to mod it for each platform.
Is there a YouTube video π
Just want to make sure, am I the only person facing issues where I push a change on the SE Overlay Editor, and it doesn't update live on the clients stream anymore? Been this way for about a week.
It is common issue rn
yesterday they fixed the redeem sounds and worked. today they are again broken...
I've already forwarded that as I can confirm things aren't working.
Hi, so, I'm with a problem with a custom widget.
It's a chat with a lot of customization, and if I press the save button on top right, it does save,
but after changing anything in the customization, it won't save anymore.
It will let me save only if I move the widget on screen again.
what may be the problem?
does anyone had it already? knows how to fix it?
maybe a js script to mark any change as a new change so the save button can work again?
I noticed if I don't move the widget, it won't read the changes made on left menu, it completely ignores changes, and if I move the widget, they reset to the last point, then let me save again.. :/
@strong abyss You'd need to ask whoever manages that website since that's something outside of our control.
Okay. Could it be that he blocked the bot? Itβs working in my browser and fossabot.
Your error code means nothing to us and only the website owner can tell the response being sent back.
Hi StreamElements Devs,
Iβm currently building a streamer-focused application and integrating multiple platforms, and also the StreamElements API using a JWT token.
While working with their platform, I noticed that the Activity Feed in the dashboard contains a long history of events, including subscriptions and gift subscriptions.
And that's exactly the part i want to have, because it's going back quite far (in some cases years).
However, when using the StreamElements API, Iβm not able to retrieve this same historical activity data. From what I can tell, the available endpoints and real-time event systems donβt expose a full activity history.
So I wanted to ask:
- Is the historical data shown in the Activity Feed stored only internally by StreamElements?
- If so, is there any API endpoint (public or private) that allows access to this historical activity (especially subs, gift subs and cheers)?
- Are there any limitations when using JWT-based access that would prevent retrieving this data?
- Do you know any alternative methods (exports, partner access, or webhooks with replay) to access past events?
My goal is to build a system that tracks long-term supporter activity and show it in a graphical interface (especially subs, gift subs and cheers), and it would be extremely valuable to access this historical data if possible.
Anybody have a clue?
hi. is βoverlay shareβ link only works if the main profile selected as twitch? or this is just a temporary issue?
I tested a few times and if my se profile is twitch, it install the overlay. if youtube or kick, doesnβt work.
How are you sharing them?
months ago i got a share link allowing from one of se persons. with an instruction google doc. I was using that.
cryonic I belive
Please provide your account ID found at the top of this page: https://streamelements.com/dashboard/account/channels This ID is public info and safe to share here.
Can you grab that for me please?
should I share here the id? I didn't understand sorry
Yes please. I want to check something and that's the quickest way for them to find your account.
oh ok here 5d4f43f3a1e5a645d8fdb471
-
Is the historical data shown in the Activity Feed stored only internally by StreamElements?
-
If so, is there any API endpoint (public or private) that allows access to this historical activity (especially subs, gift subs and cheers)?
https://c4ldas.github.io/streamelements-api/#/operations/Get/activities/:channel -
Are there any limitations when using JWT-based access that would prevent retrieving this data?
No, just the JWT being expired, which can take up to 6 months -
Do you know any alternative methods (exports, partner access, or webhooks with replay) to access past events?
The same endpoint
It depends on what you're talking about.
If you have share-overlay permission given by SE staff, that is linked to your account id, which is specific to a platform. Based on your account id, it is Twitch, indeed.
In case you are talking about installing an overlay from a link you received, what can happen is that overlay has a specific Twitch config (like cheer alerts, for example), it can fail when trying to import it in another platform.
oh this explains my issue I guess. could be js side then, Iβll check. thank you so much ππ»
Hey @severe shell, thanks for the quick reply! We've already tried that endpoint extensively, but it's not working as expected. Here's what we're seeing:
GET /kappa/v2/activities/{channelId}
- With Bearer {JWT} β HTTP 200 but returns [] (empty array, not {"total": x, "docs": [...]})
- With Bearer {overlayToken} β HTTP 401
- With ?apikey={overlayToken} β HTTP 200 but again []
The JWT is valid β it works fine for /kappa/v2/tips, /kappa/v2/points and /kappa/v2/channels/me (all return correct data). The channel ID is confirmed correct (5e8b84a1f0cfc72bc5847796).
The dashboard Activity Feed for this channel clearly shows hundreds of historical events including subs, gift subs and cheers going back years β so the data exists on your end.
Is there something specific about this channel/account that would cause activities to return []? Is there a required scope, permission level, or account type needed? Or is the response format perhaps different from what the docs show ({"total", "docs"} vs [])?
Any help would be greatly appreciated! π
If it is returning empty, that is possibly related to the types parameter. Try passing multiple types values like this:
https://api.streamelements.com/kappa/etcetcetc/etc?after=2020-01-01...&types=follow&types=redemption&types=cheer
hey guys, how to to get that share-overlay permission? I text streamelementss support on X but didnt get any answer
It is not available anymore π
#dev-chat message
Hey @severe shell, tried that β still returning [].
Here's exactly what we tested:
/kappa/v2/activities/5e8b84a1f0cfc72bc5847796?after=2000-01-01&types=subscriber&types=gifted-subscription&types=cheer&types=tip
Result: HTTP 200, empty array []
Also tried with limit=100&offset=0, different after dates, and our overlay token via ?apikey= β all return empty.
Again, /kappa/v2/tips and /kappa/v2/points work fine with the same JWT, so auth isn't the issue. The Activity Feed in the dashboard clearly shows years of subs, gift subs and cheers for this channel.
Is there a separate permission or account flag needed to access activities via API? Or is the activities history perhaps stored under a different endpoint than what the docs show?
__UPDATE: __
Here's the exact debug output from our latest test:
- /kappa/v2/tips β β returns {docs: [...], totalDocs: 21} correctly
- /kappa/v2/points β β works fine
- /kappa/v2/activities?after=2000-01-01&types=tip&types=cheer β returns literal [] (empty array, not {docs:[], totalDocs:0})
- /kappa/v2/activities?after=2000-01-01&types=subscriber&types=gifted-subscription β same, literal []
So the response format for activities is completely different from tips β it's a raw empty array instead of a paginated object. Same JWT works for tips/points. Is there a specific account permission, overlay activation requirement, or channel setting that needs to be enabled before the activities endpoint returns data instead of []?
For /v2/, you're not using all required fields, check the page I sent you for the * parameters.
Also, gifted-subscription is not a valid type on /v2/, only subscriber is. Then you will need to filter it checking if response[x].data.gifted is present.
If you want to get gifted subscriptions, you need to use /v3/ and types=giftedSubs
thanks, lets try that i guess π One day i will learn the system π
Yeah, it's hard! I had to find all those values testing manually and create my own docs page π
question does anyone know if using selive plugin removes the need to rotate tiktok stream key every stream?
@undone trail i use casterlabs it doees all platforms in one chat andd you dont have to do anything just open it before u start stream
does it solve key rotation for each stream?
u can re-use stream keys mine for yt stays the same and this is the 1st time ive had a issue with the se.live not working with tiktok but its just for chat
Hi i need help if i copy the chat overlay i created and paste the URL in OBs Browser source and then click ok. After that a chat box pops up but when i test the chat in the live stream, it wonΒ΄t work. What could be the problem.
Is this for youtube? You have to have a public and live livestream for it to show. Won't work otherwise.
If it's for twitch they're sorta having issues atm.
i use twitch
Hi i cant seem to find my client id and secret to use oauth v2 in my platform
You have to apply for that, but applications are closed at the moment.
so no options ? my client want stream elements into the platform
and where to find the applications when its open and eta?
There is no eta for that, unfortunately. We have no idea of that.
When the application was open, a link for that used to be here: https://dev.streamelements.com/docs/api-docs/cd02cda5171ea-o-auth2
OAuth2 enables developers to build applications that utilize data from the StreamElements API. Powered by Stoplight.