#dev-chat
1 messages · Page 14 of 1
@severe shell I see but there was no name mentioned even at the first time when I connected the account.
When it did not appear for the first time, I tried resetting the the session data.
What is your @ on youtube? My subscription is public, I can subscribe to your channel and you can check it
I tried checking on your profile, but it isn't there
Just the @
@severe shell its @Raymatify
Ok, I subscribed to the channel, can you check if it appeared on your dashboard?
@severe shell checking
@severe shell No it isnt, it is empty
See the latest subscriber widget
Ok, we are mixing things here... Youtube doesn't have "follower", so probably you are using a Twitch widget. In that case, it won't work correctly. You need to check with the person who created that widget to confirm it is compatible with Youtube.
Subscriber on Twitch and subscriber on Youtube are different things
Check on your dashboard labels tab if my name appears in the latest subscriber https://streamelements.com/dashboard/session
I can see it now, just received your name and subscribe sound. @severe shell
Oh great!
Also, I dont see YT chat coming up in my chat box, twitch chat is working fine but not YT.
I know that, I am using YT supported widget only.
Well, there are many things to check here. In order to have the Youtube chats:
- You need to be live
- Your livestream must be public
- The Streamelements chatbot must be in your channel
To set up the bot for your YouTube stream, please follow these steps:
- Make sure your stream is public. The bot cannot join a private/unlisted stream.
- Your stream must be live for the bot to join the chat.
- Go to https://studio.youtube.com/, click on Settings > Community and add https://youtube.com/c/streamelements or https://www.youtube.com/channel/UCjerlCIbLPQwSnYlClkjDXg as a Moderator.
- When live, be sure to look at Live chat instead of Top chat, as Top chat will hide the bot messages.
Oh I see, I was testing with private session just to test thngs. But okay, if it will be available during live session then okay, that is fine.
@severe shell One last question, do we get any sponsorships for India region?
Great.
As regards the sponsorships, we have no info about that. That's something internal and only the staff handle those things.
So is there anyone whom can I connect to check if there are any sponsorships available for my region? @severe shell
Only via tickets
To open a support ticket, type !ticket followed by a short subject (under 60 characters). Example: !ticket My chatbot isn't working. Then follow the bot's steps.
I see, thank you so much @severe shell , you have been a great help. 🙂
i hope you can help me dev team 🙏 thank u in advance! ive created a ticket already
Hey there! Is there any way to check up on the status of an OAuth access request?
Unfortunately, there is no interface to check that, so I believe the best way is to open a ticket with the staff and ask them.
To open a support ticket, type !ticket followed by a short subject (under 60 characters). Example: !ticket My chatbot isn't working. Then follow the bot's steps.
just letting y'all know that when doing PUT v2/store/:channel/items/:itemId when :itemId is not valid instead of a 404 it returns a 500. I discovered it was because the :itemId was just wrong but a 404 would be more helpful.
Well, we are not able to fix endpoints here, since this is just a community chat. In case you want to report that to the staff, you can do it opening a ticket.
help me , how to fix my problem
I suggest that you ask that in #community-helpdesk
ok thanks
Hello i need help with streamelements chat and it wont allow me for some reason as it says ''Messages fade after {{vm.widget.variables.delay}} seconds'' i tried logging out and logging back in but it doesnt work at all.
Try to reload the page with CTRL + F5. Or using a private tab. Sometimes the issue is with the temp files.
Or you can try with another browser to test.
I have tried to do this but for some reason it still wont work for me.
Is that widget a native StreamElements widget or did you get it from another place? Maybe we can check if the issue is on the widget itself.
It is a native StreamElements widget.
Hmm, so probably the issue could be on the browser (or cache files). I have just tested here and looks fine on my side.
all i see is this
ive made many different overlays and all i see is that even using i different website
i am not sure what to do now
There are just few things you can do:
- Clear the browser cache and try again
- Open the page using a private tab
- Open it on different browsers
The other option is opening it using a different computer
oh okay let me try
So i have tried of what you told me and i also did use a different device but nothing changes. Its the same to me.
Well, if even using a different device you still have the problem, the only thing I can suggest is that you open a ticket.
Inform them all the steps you have done so they can look into your account and see if there is any problem with that.
@gaunt laurel ⤵️
To open a support ticket, type !ticket followed by a short subject (under 60 characters). Example: !ticket My chatbot isn't working. Then follow the bot's steps.
Is anyone having any issues with the websocket channel.chat.message specifically not getting events from kick.
The multichat in SE.Live works fine but the websocket isnt picking anything up?
Just tested here and it is working fine on my side.
Did you check if the authentication key is correct and you received the successful subscription message?
yeah got both the "welcome to the shungite mines"
and the successfully subscribed to topic.
Youtube and twitch send perfectly fine 
Is it for your own account? If so, what is your Kick username?
username: N3ON_uk
url: n3on-uk
Hmm, n3on_uk alias is from your Twitch account. Let's try something else, can you send your account id?
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.
For your Kick account, I mean
yeah same username but here is the account id 687ff64a3b03cd3ec109b00d
I take it the SE.Live Multi chat also uses the websocket so was just confused as to why the Multi chat is working and i couldnt get it to work 
Great, the alias for that Kick account is n3on_uk-dbdc4
Can you try it again? I've refreshed the webhooks for that account
Still not working locally, very strange
I can see that the event has passed to the multichat websocket fine
Hmm... Just as a test, could you try to connect to it using websocketking website?
https://websocketking.com/
A WebSocket client for designed for testing and debugging WebSocket connections.
{
"type":"subscribe",
"nonce":"1736596309572-11",
"data":{
"topic":"channel.chat.message",
"token":"YOUR_TOKEN",
"token_type":"YOUR_TOKEN_TYPE",
"room":"687ff64a3b03cd3ec109b00d"
}
}
yeah same thing
oh wait a seccond
ahhhh ok, my dumb ass forgot to change the room so i subscribed to youtube twice

😄 it happens!
thanks for the help tho 
heyy so i need help with something that requires a bit more than my skill can do lol
i want to do these types of responsive chats, i believe it might need JS knowledge and i know little of it
im just a frontend designer atp</3
btw i have read articles related to streamelements chat js but it has so many variables i am afraid to mess it up when adding another solely for what i am doing
The smooth transition could be solved using just css.
@keyframes customSlideIn {
0% {
max-height: 0;
}
100% {
max-height: 100%;
}
}
/* ... */
.message-row{
/* ... */
animation: 5s ease-out 0s 1 customSlideIn;
}
Don't forget to add any margin, padding, etc. to the animation. Otherwise those pop in making the animation stutter.
Let's see if I can make an example video
Wow didn't get deleted. The bot seems merciful today :D
Your url is on the allow list (since 2023) 😄
Uhh nice
Are there any known issues with Tiltify / SE and custom widgets? Trying to make one that watches for a particular Tiltify item by name, but I'm not seeing the event fire for the actual Tiltify purchase (via the onEventReceived event listener). Emulation is working, but I want to see the actual live event data and see how it passes through a quantity value for the purchased item.
Hi Guys, Im totally new to node.js. My friend build an script that can print my twitch/tiktok alerts on my thermal printer. Twitch alerts were kinda broken en wanted to add YouTube but he doenst have time atm to help. Im trying it by myself for the whole day now but im stuck at some point. I got succesfully connected the websocket for the alerts but the problem is that its not printing. Ive tried a lot, on the other script its still working fine but i can get it to work with the new script. Anyone out here for help?
What websocket are you talking about? Which Twitch alerts were broken? What did you try so far? Where is the code? Where is it failing? Do you have any error message? What do you expect us to help you exactly?
Got it all sorted out and working now, the problem that i got now it that it loses connection after +- 30 seconds, builded someting around it so it will automaticly reconnect after 5 seconds. Any other way to tacle it? https://pastebin.com/awiKAT3y
The issue is that realtime.streamelements.com is not a Websockets, it's socket.io. You should use socket.io library instead (https://socket.io/docs/v4/client-installation/)
If you really want to use Websockets, you need to connect to Astro Websocket (https://docs.streamelements.com/websockets)
Any idea why my kick and se wasn’t syncing this morning? My activity feed and alerts weren’t working I unmodded and removed. Removed stream elements and re added. And logged out in back in but still wasn’t working
Aha thanks, hope to get it work now 🤞🏻
Looks like its working stable now on the astro websocket
Hello! I want to create an overlay for !first, !second and !third commands, to show it on OBS, for my twitch channel. Somehow it won't work. The widget doesn't get the username nor updates it. Could someone help please? Maybe there's something wrong with the codes. I'm not a developer and asked Google Gemini to help create it. I'll put the codes bellow:
JS:
console.log("Widget carregado!");
let winners = [];
window.addEventListener('onEventReceived', function(obj) {
const data = obj.detail.event;
// Veja o que está sendo recebido para debug
// console.log(data);
if (data.renderedText && data.renderedText.trim().toLowerCase() === '!first') {
let username = data.displayName | | data.nick;
if (winners.length < 3 && username && !winners.includes(username)) {
winners.push(username);
updatePodium();
}
}
});
In your code, you aren't just checking for chat messages, but everything that comes in onEventReceived. You should ignore the other types.
Also, your username should be data.data.displayName || data.data.nick
window.addEventListener('onEventReceived', function(obj) {
// Ignore o que não for mensagem no chat
if(obj.detail.listener !== "message") return;
const data = obj.detail.event;
// Veja o que está sendo recebido para debug
// console.log(data);
if (data.renderedText && data.renderedText.trim().toLowerCase() === '!first') {
let username = data.data.displayName || data.data.nick;
if (winners.length < 3 && username && !winners.includes(username)) {
winners.push(username);
updatePodium();
}
}
});
You can see here how obj looks like for a chat message:
https://c4ldas.github.io/streamelements-api/eventreceived.html#chat-message-without-reply
Thank you very much! It was really helpful and now is working.
I'm trying to help a friend create a custom chat widget that integrates both Twitch and YT
When testing on my end with my own personal JWT token, all the data is being sent to my browser correctly (which I plan to use as a browser source in OBS later)
However, when testing with their JWT token, no data is being transmitted
Just wondering if this is expected behavior because I need to be authenticated into the account?
To correct the original question, I'm getting data from the server in terms of the response from the subscription
message: 'successfully subscribed to topic'
But I'm not getting any messages even if I type in their chat on Twitch etc
@proud spade Any ideas on why using someone elses JWT token wouldn't work though? I saw another message that they would need to log out / log back into SE?
Based on the messagesuccessfully subscribed to topic, I believe you're using Realtime socket.io or Astro websockets, right? Are you using the correct account id when changing the JWT?
Please give some more details or some piece of code so we can try to understand what you're trying to do
I'm using Astro websockets, yes, I want to poll for chat messages ideally
But as for the correct account ID, not sure, sorry I didn't see that in the documentation 👀
Do I need to format the JWT?
No, not exactly, you set that in the data.room object (it is optional, though)
https://docs.streamelements.com/websockets#client-to-server-request
How are you doing the request? Can you show the object you're sending to the websocket (removing the jwt, of course)?
websocket.addEventListener('open', (event) => { console.log('Connected to StreamElements Astro!'); // Subscribe to a topic const subscribeMessage = { type: 'subscribe', nonce: crypto.randomUUID(), data: { topic: 'channel.chat.message', token: SE_JWT_TOKEN, token_type: 'jwt' } }; websocket.send(JSON.stringify(subscribeMessage)); });
I think its the generic code snippet they provide in the document, I don't provide a roomID
Using the roomID provided in the response from the server doesn't fix the problem sadly 
Yeah, the object seems fine. So, that works with your JWT, but not with your friends token? Is that the only change in the code?
Yep
I plan on testing with their JWT so when I send over the widget they can run it as a local file 👍
Hmm, check if your friend's token is from the expected platform. For example, if they provided the Youtube JWT, it won't show Twitch messages
I did suspect the connection might have closed:
// Listen for messages websocket.addEventListener('message', (event) => { const message = JSON.parse(event.data); console.log('Message from server: ', message); if (message.type === "message") { if (message.data.broadcaster_user_id) { handleChatMessage(message.data); } else { handleChatMessage(message.data, 'YouTube'); } } else if (message.error === 'rate_limit_exceeded') { console.log('Rate limit exceeded, backing off!'); setTimeout(() => { // Retry subscription }, 5000); } }); websocket.addEventListener('error', (event) => { console.error('WebSocket error:', event); }); websocket.addEventListener('close', (event) => { console.log('Connection closed:', event.code, event.reason); });
So I included it
This is one thing I did see when they shared their screen however I didn't know how to get the JWT for the platform in SE/dashboard/accounts
So maybe this is what caused the problem 🫠
For example, you could see Twitch and YT listed in the channels but they could only get a JWT from YouTube
On top right, click on the avatar image, it will show which platform it is. Or you can put the jwt in https://jwt.io and check the provider value
On the other hand I did try testing a private YT livechat, but didn't get any messages there, maybe because it was unlisted?
Private live streams won't work, unfortunately. SE bot can only reach the public ones
Ok this is all starting to make sense
I just was gaslighting myself into thinking that the YT JWT was a combined token because the UI didn't have that option
Can I just send some pictures as to what I saw and we can go from there
Cause I just don't want to have to do back and forth between these different parties 
One sec
Sure, just make sure not to show any private info
(account id is public, by the way, don't need to hide it)
This is my best possible recreation
So they had YT and Twitch linked to SE
But we could only see the JWT token on the bottom channel
That's why I assumed they were together
It said the provider was YouTube so it makes sense
Yeah, that's normal, ask them to go to the top right part of the screen, click on the avatar and change the provider:
Ah I see 🫠
Ok I think this is all making sense, I have enough information to do the rest 😭
That will show the token for the other platform
Thank you so much
They are different
Good idea, I will try to create something and send to the devs to update the documentation, you're not the first one to have this issue 🙂
Hope everyone is well , im having a problem connecting my tiktok account it say i dont have access to it but i do, i stream on tiktok studios, just wondering if there a step i need to take to be able to use tiktok
Not a dev question, we don't have access to that information.
You should open a ticket for that.
I've created a few SE overlays that I'd like to share / distribute. But as far as I know, there's no easy way to export them. It would be nice if there were - as a set of source files - that could be checked into Github. And it would be nice if SE had a way to import from a Github repo; and pie in the sky - if it were able to refresh / sync from the repo if it is later updated.
Thanks -- I guess I'm proposing a feature... but maybe this is the wrong channel for that.
Sharing for the legacy/overlay system is no longer possible outside of those with previously given permission.
Along with requesting that is.
Also SE Overlays isn't going to receive any new features, as Elements is the new way of creating widgets (and you can share them directly on the Elements interface). 🙁
Yeah... and very sad that the Overlays feature is considered legacy. I don't think it's possible to create things I'm making via Elements.
Is Elements going to be getting support for custom javascript/html?
It does have support for that, if using Elements SDK. You can find the documentation here:
https://dev.streamelements.com/docs/widgets-elements-sdk/9do3bhwlp2fdt-introduction
I guess I was expecting a full editing UI on StreamElements for creating/managing it like there is for Overlays. When I click to "Edit", what is it supposed to do? I just get a panel that lets me Cancel / Save...
No, it doesn't work that way. You would need to create it locally, using VS Code or another IDE. It is a bit of a setup, I don't remember exactly, it's been some time since I tried Elements. But the documentation explains how to do that:
https://dev.streamelements.com/docs/widgets-elements-sdk/bult8ogswaeu2-setup-guide
Ignore the part about "local http server requirements", it is not needed anymore, according to the devs here: #elements-editor-widgets20 message
I'm not sure about that. Local server wasn't working until I added the CORS support. And had to include Access-Control-Allow-Headers, Access-Control-Allow-Methods to the OPTIONS response.
I guess this works, however it's a much more complicated process to make edits and push them to OBS. I've been working with a streamer on some overlays, and it's nice to be able to make edits within StreamElements, click save and he gets them immediately. With Elements, I think I have to make my changes, zip them up, upload them, then publish for them to reflect on his OBS.
Hey guys! Is there any way to use conditions for Commands? I have a greeting command for when someone say hi, for exemple, using the commands keywords. But when I as streamer say hi to anyone on chat, my command activates too, and I wanted it to ignore me as Streamer. That's because I may say hi a few times when in the start screen.
Not possible without the response being handle server side via 3rdparty API.
okay... 🙁 Thanks anyway
im 99% sure its possible through streamelements' api, in case you already have some chat widget using a streamelements overlay you could possibly integrate it
@hardy walrus wouldnt that do the trick? https://dev.streamelements.com/docs/api-docs/1e22a4ed3ad16-channel-say
(assuming @granite robin can code a bit since this is a dev channel, if not the og answer is the right one)
I don't know as I'm not that
but the part where it parses the conditional part that's the problem.
And the part they'd need to work out outside of anything of SE.
Is there an endpoint to return top chatters for a date range? Like last week, month all time etc? the /stats returns all time. But I don't see a way of getting a portion of the data. I thought the username/category/item could be used, but seems no one knows how that endpoint works
There isn't.
I don't believe the /:username/:category/:item work at all. It isn't used anywhere in StreamElements (dashboard, Ground Control, SE.Live) and always return 404.
hello, me again... Sorry to bother (and I'm not a developer, just curious creating widgets haha). About that same widget from before, I want now to change from command to redemption on twitch. The redemption names are First, Second, Third, but somehow the code won't work on update the HTML with the names. The console logs 🎁 Recompensa resgatada: first por oMarotto, with first being the reward, tho. Does anybody have a clue on what's wrong? 
`let winners = ["", "", ""];
// Pega os nomes das recompensas configuradas no painel do StreamElements
const f = SE_API?.settings?.fieldData || {};
const rewardFirst = f.rewardFirst?.trim().toLowerCase();
const rewardSecond = f.rewardSecond?.trim().toLowerCase();
const rewardThird = f.rewardThird?.trim().toLowerCase();
// Escuta os eventos de resgate de pontos
window.addEventListener("onEventReceived", function (obj) {
const event = obj.detail.event;
// Garante que é um evento de resgate de pontos
if (event.type !== "channelPointsRedemption") return;
const reward = event.data?.redemption?.trim().toLowerCase();
const username = event.data?.displayName || event.data?.username;
if (!reward || !username) return;
console.log(🎁 Recompensa resgatada: ${reward} por ${username});
// Atualiza o array winners com base na recompensa
if (reward === rewardFirst && !winners[0]) {
winners[0] = username;
} else if (reward === rewardSecond && !winners[1]) {
winners[1] = username;
} else if (reward === rewardThird && !winners[2]) {
winners[2] = username;
}
updatePodium(); // Atualiza o HTML
});
// Atualiza o HTML com os nomes do pódio
function updatePodium() {
document.getElementById("first").textContent = winners[0] || "—";
document.getElementById("second").textContent = winners[1] || "—";
document.getElementById("third").textContent = winners[2] || "—";
}`
I also have these fields for adjusting the redemption name:
{
"rewardFirst": {
"type": "text",
"label": "Nome da recompensa para 1º lugar",
"name": "rewardFirst",
"value": "First"
},
"rewardSecond": {
"type": "text",
"label": "Nome da recompensa para 2º lugar",
"name": "rewardSecond",
"value": "Second"
},
"rewardThird": {
"type": "text",
"label": "Nome da recompensa para 3º lugar",
"name": "rewardThird",
"value": "Third"
}
}
You should always check if your variables have any value before using them. A simple console.log() for each variable should point you to the error. For example, SE_API?.settings?.fieldData doesn't exist. Your f variable will be always {}. If you want to get the data from the left panel, you get them from onWidgetLoad listener:
let fieldData;
window.addEventListener("onWidgetLoad", function (obj) {
fieldData = obj.detail.fieldData;
});
Then, you can use it
window.addEventListener("onEventReceived", function (obj) {
// ...
const rewardFirst = fieldData.rewardFirst?.trim().toLowerCase();
const rewardSecond = fieldData.rewardSecond?.trim().toLowerCase();
const rewardThird = fieldData.rewardThird?.trim().toLowerCase();
// ...
}
Can't believe it was that easy hahaha. Thank you very much again! I'm trying to create some useful widgets for the community and you're helping a lot. I'm gonna study it a little deeper 🫶
No worries, we are here to help!
By the way, where did you find that SE_API?.settings?.fieldData, was that a ChatGPT suggestion?
yep haha 🙈 It was Microsoft Copilot actually (it uses ChatGPT tho)
Yeah, they're going to create a lot of useless thing, especially related to StreamElements API or SE widgets (which didn't have a very good documentation). My suggestion is that you send them the overlays doc page before asking the questions, that helps sometimes.
hello
I was create a chat overlay in streamelement, but its can't show in my stream. fyi I not pro on coding, i just use a chatgpt to create it.
owh, thank you, this very help me
Does anyone know why multistream is not letting me log in to Kick?
I can log into Youtube and Twitch but not Kick
well, Streamelements is not even letting me use an affiliate link cus "disable your adblocker" which im not even using <3
Hello, would anyone know if it's possible to combine my event ticker and alerts from Twitch, Kick and YouTube together into one browser source? I have a custom ticker that also shows alerts and currently the only way to do that in SE is to have 3 separate browser sources. So basically how can I merge 3 types of alerts into one.
Also if anyone is a bit more knowledeable about these things. I bought and event ticker on etsy that also doubles as an alert. I have the html, css, js, fields and data text files and I was wondering if it's somehow possible to convert that to also work for youtube (its twitch only now)
why wont you ask the person you bought it from for support?
Cause it says it only works with twitch but I was wondering if anyone who knows coding and stuff knows if it's possible to make it work for youtube as well.
99% of the cases, its possible. do you have any coding knowledge?
not at all lol
Hi, not sure if I’m in the right place but I was just looking for a hand. I’m trying to use the multistream plugin for OBS but every time I try to log into my twitch/YouTube accounts, it just opens up blank browser tabs that don’t load anything.
Good evening, for a day now, the Tiktok streaming tab has been showing that my account is suspended or banned and that the stream can't start.
Checking directly from Tiktok, I don't have any bans in my records, and my reputation seems excellent. I assume it's an SE issue. Can you help me?
Not a dev question. You should open a ticket for that.
@winter herald ⤵️
To open a support ticket, type !ticket followed by a short subject (under 60 characters). Example: !ticket My chatbot isn't working. Then follow the bot's steps.
this might be wishfull thinking but can yall pottentially implement tik tok live connector(https://github.com/zerodytrash/TikTok-Live-Connector) into your multichat dock, also personnally i would love if the dock was live count, alerts and chats all in one some kinda like this if possible
would be pretty sick
Defo not gonna happen.
Unfortunately have to wait until they give us API access.
This is not an official API. It is a reverse engineering project. You are responsible for your usage of this library.
Yeah. Not worth it.
i mean its the same shi tikfinity uses, ive been trying to make a app similar to it but that also connects twich and youtube i was able to get a very verry very rough web interface with tiktok working
and planned to make it a standaloen thing like tikfinity if i can ever figure it out lmao
Is this where I ask for help if I am stuck with something using Streamelements on Twitch?
It depends on the issue. If it is related to commands, widgets, coding, anything related to development, you can ask here. If it is related to OBS usage or something similar, you can ask on #community-helpdesk.
And if it is something that requires personal information, you need to submit a ticket, so the staff can look into it in private with you.
@dense wyvern ⤵️
To open a support ticket, type !ticket followed by a short subject (under 60 characters). Example: !ticket My chatbot isn't working. Then follow the bot's steps.
Its about the shoutout commmand
You can ask here 🙂
So I have a viwer who has a japanese user name but it has the English name in bracket.
I am trying to give that person a shoutout by using @ and tyoong their name but the command is shouting the current streamer on who'se chat I'm typing it.
Does it make sense? Am I able to explain the problem I am facing?
Yes. You want to type!shoutout @tyoong and expect the bot to reply something on these lines Follow tyoong https://twitch.tv/tyoong, right?
Yes
You can simply use the shoutout template for that. When you create a new command on the Chat commands dashboard, select shoutout on the template list.
And then you can set the command name and change the response the way you'd like
If you don't have access to the dashboard, this is the template:
Check out ${1}, they are playing ${game ${1}} at https://twitch.tv/${channel ${1}}
I know I made the command 2 months ago
It does work with the names in English
But if I mention that person's name it shouts out a different streamer
I think its because Streamelements is not registering the Japanese letters
Is there a way to make it register the Japanese letters?
Yeah, it will only work with Romanized characters (no Japanese, Korean, Chinese, etc., characters)
But how are you shouting him out on chat?
I figured out what I was doing wrong
Yes I am a moderator not a streamer.
I generally type !so @user
And it works
it worked fine here on my side with the template Check out ${1}, they are playing ${game ${1}} at https://twitch.tv/${channel ${1}}
So the person's name is ムメム536(mumem536)
I type !so @mumem536
And what it does is it mentions the person's name but the name is in Japanese letters so it does not work
I just removed @ and typed !so mumen536 and it worked because it did not mention the user so no Japanese letters to get confused with.
Yeah, I got what you mean... Using the @ the response will get bugged and shoutout the person who ran the command instead... Unfortunately, that's not something we can fix
No its okay.
I realised I just not have to used @ and tyoe their name if someone has a name in other languages and it will work fine.
Thank gou for the help.
Thank you*
Great, that's new to me as well... We live and learn!
I still have one little question in my mind
If someone with a name in foreign language appears in a stream does Twitch display their username in English in brackets beside their username like this ムメム536(mumem536)?
Or does it only happen if the person include that in their username by themselves?
That name in parenthesis is automatically added
I'm not sure if the user has the option to change that though
We'll find out as we meet new people from different places.
I'll let you know here if I find out.
Perfect! ❤️
Can anyone help me? I'm currently facing an issue integrating Kick into my custom overlay on StreamElements. I've tried logging the event received in the console, but nothing appears. The events for YouTube and Twitch work fine, but nothing is triggered for Kick.
Which event did you try to log?
when a chat appears on a Kick stream
Unfortunately, chat messages are still not supported on SE overlays. That's why you're not receiving any event.
If you are open for some work, you can connect to Astro Websocket and have the raw chat message:
#dev-chat message
emmm oke thankyou sirrr.
would you use this dock over other docks if it exsited?
1
1
1
Yea
hello, I've built a chat widget like this one, but I'm having trouble sending native YouTube emojis. They appear as text. How can I fix this?
Check here: #dev-chat message
Oh, thank you very much, that's very helpful.
btw, its still needs to be manually scraped from the console?
Hey bro, I have another question. I already used your method and it worked. But there’s one problem why doesn’t StreamElements provide identity information like in Kick’s official docs, for example like this
"is_anonymous": false,
"user_id": 987654321,
"username": "sender_name",
"is_verified": false,
"profile_picture": "",
"channel_slug": "sender_channel",
"identity": {
"username_color": "#FF5733",
"badges": [
{
"text": "Moderator",
"type": "moderator"
},
{
"text": "Sub Gifter",
"type": "sub_gifter",
"count": 5
},
{
"text": "Subscriber",
"type": "subscriber",
"count": 3
}
]
}
}, ```
It’s not my method 😅
That’s how the message arrives to StreamElements, according to SE docs. If you need more than that you will need to use Kick API directly. Or wait until overlays have support for chat messages (not sure when that will happen, though)
As someone who made that code. Its not possible to avoid the manual scrape... Not at the current moment... (mostly cause I moved on for the chat stuff into streamerbot and I do not feel like its worth my time looking into). At the start after I found the emotes I looked for this object and found out this object is just in the html script tag so I was thinking that I can just get from there by fetching the whole html of the popout and parsing it out to the it dynamically and call it a day but its updated somewhere on the fly in the embed code after website loads so its impossible to just "get" with all the emotes without doing it the current way. You would have to run some sort of puppeteer or something to just load the website, wait for it to load and do the shenanigans that add emotes to the object, get the stuff from the object and close the website. I would say not worth the effort. Emotes rarely change so this can be hard codded.
I'm sending the request from YT SE to my Twitch SE. While I'm getting 200 on the YT side, I'm not receiving any event on the Twitch side. What am I doing wrong?
it was working before from this message but it doesn't seem to be working anymore
If it was working before, maybe your token is now expired. JWTs in SE have an expiration time of 6 months after being generated.
Is there something I can use that doesn't expire?
Not directly with StreamElements.
But just to let you know, I wasn't sure if that was the issue, ok? I assumed that could be the problem, due to your explanation. But seeing the response screenshot, it seems that is not the case. You received status 200 from the request, which means it was successful.
You should check your code on your Twitch SE side to understand what is not working exactly.
I figured it out - I accidentally used the overlay widget ID instead of the channel id lol
Yeah, it happens 😄
Hi, is there any programmatic way to get a list of channel members of my channel please
In order to use the Channel membership API endpoint, you need to reach out to your YouTube representative or Partner Manager if you have one to request access. Only they can request access on behalf of the creators.
https://issuetracker.google.com/issues/392779836
https://issuetracker.google.com/issues/391092758
https://issuetracker.google.com/issues/389510234
https://issuetracker.google.com/issues/383343300
https://issuetracker.google.com/issues/376097102
any workaround?
From SE side, it only saves the last 25 events of members.
https://c4ldas.github.io/streamelements-api/#/operations/Get/sessions/:channel
data["sponsor-recent"] array.
we need a way to link sources not just scenes I duno if you guys ever used a map hider or anything when ur streaming but its super useful also the delay between linked scenes is way to long
Hey it's possible to call in custom css for subscriber count to Last 30 days subscribers? Becouse if i'm using same script from twitch for kick and it show only total (all time) and i'm wondering if i can call to the number in aggregates last 30 days subscribers?
What's the code you have for Twitch on the Custom CSS related to that count?
before it was suscriber-total in 23 line after changing to subscriber-month it still show number for all time
Well, the variable is correct for subscriber-month
You can add on your onWidgetLoad event listener and check on browser console the values:
console.log("Current subscriber-month value:", obj["detail"]["session"]["data"]["subscriber-month"]["count"]);
console.log("CUrrent subscriber-total value:", obj["detail"]["session"]["data"]["subscriber-total"]["count"]);
Confirm if they match with the ones from Widget data screen.
alright i think i figure it out it's off by 2 subscirbers but i think it's becouse sometimes kick gifts counts with announced message like 5 gifts + 1 from announcment, i'll try to do alignment for that to reduce when reciving 2+ gifts to add -1
Issue was i was doing on my overlay and it was wrong with something on client one works good, how idk
Hello guys,
I have requested access to the API to integrate my Interaction platform for creators and have not yet been granted access. Can an admin help me?
It can take days or weeks, unfortunately. If there's more than a week, I'd suggest that you open a ticket and ask for the status and the expected time to have an answer.
@zenith parrot ⤵️
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.
Hey there!
I'm trying to use the /kappa/v2/bot/quotes/{channel} Endpoint to let my custom bot send random quotes when someone redeems a specific channel points reward but I get 403 Forbidden all the time, while all other functions, like getting watchtime, work just fine.
I'm using the channels JWT-Token but everytime I redeem the reward this happens:
[Quotes][DEBUG] Requesting quotes...
[Quotes][DEBUG] URL: https://api.streamelements.com/kappa/v2/bot/quotes/bewitchingcaro
[Quotes][DEBUG] Headers: { Accept: 'application/json', Authorization: 'Bearer eyJ...0PQ' }
[StreamElements] Message event - Topic: channel.activities
[Quotes][DEBUG] Response status: 403 Forbidden
[Quotes][DEBUG] Response JSON: {
FEHLER: [Quotes] Error fetching quotes: 403 Forbidden
statusCode: 403,
error: 'Forbidden',
message: 'Not allowed to perform this operation'
}```
You have to use the Account ID instead of the channel name:
[Quotes][DEBUG] URL: https://api.streamelements.com/kappa/v2/bot/quotes/bewitchingcaro
Well.. that makes sense xD
Also, add 'content-type': 'application/json' to the header if you are doing a POST request.
Someone wants to get banned
It got it 😄
Hiya folks I am using the custom css editor, but how do I get the image ive selected from the sidepanel to show? it keeps showing a shark as the html says default
Hi guys, currently checked there was a widget for TCG. I was wondering the flow and tech behind this widget, is there any reference or flow explanation for this?
Which widget you talking about? Sounds like a custom thing via 3rd party.
is it ok if i pass the link url here?
niceee
That's something stupidly customized so it's not something we can really explain/help with.
i see, ok" thank you
Hello, does anyone know if there is a way for a mod to trigger a custom command without having to type the command into chat?
I saw a streamer update a "death count" tracker, and saw the message from streamelements in their chat about the tracker updating, but I didn't see anyone call the command.
I was also wondering, is there a way to prevent messges beginning with "!" from being shown in the chat widget?
or do I need to make my own custom widget for chat to do this?\
Well, there are some options. The streamer or the mod can do it directly on the dashboard (https://streamelements.com/dashboard/bot/counters) or via API (https://c4ldas.github.io/streamelements-api/#/operations/Put/bot/:channel/counters/:counter), none of them need a chat command to update it.
Most custom chat widgets have the option to hide the chat commands (check the ones in #widget-share, for example). The default chat widget doesn't have that option.
if they increase the value here though, it won't send the message that is attached to the command though right?
Exactly
have a quick question i haven't quite been able to find the answer to: for the leaderboards (particularly the tips leaderboard), are the weekly / monthly lists generated with some kind of cutoff? for example, does everything reset to 0 on sunday at midnight, or is it a sliding window (the number is "the amount donated in the last now() minus 7*86400 seconds"?)
It follows the calendar for widget data here https://streamelements.com/dashboard/session/settings
Weekly Calendar Timing resets on Saturday 23:59 UTC.
Monthly Calendar Timing resets on the 31st 23:59 UTC.
Aggregated values will not reset while you are live.
I'm sure you're not going to ask that, but probably someone will
- What if the month doesn't have the 31st day?
ah, great. that's the info i was hoping for -- thanks!
follow-up question i guess: is there no public api for getting the gift/cheer leaderboards for twitch stuff? the public-facing one seems to use some kind of rotating token, but i can't seem to find an endpoint in the api docs that can supply the same information to e.g. a persistent bot
Which one are you referring to?
Also, all endpoints use some kind of rotating token, since tokens have expiring date.
List Subscriber gifters
https://c4ldas.github.io/streamelements-api/#/operations/Get/widgets/:channel/subscriber-gifts/leaderboard
List the top cheerers or tippers in a period (alltime, months, weeks, session)
https://c4ldas.github.io/streamelements-api/#/operations/Get/:channel/top
i'm not the streamer so i wasn't able to investigate what exactly i was looking at. but i came to realize that the profile widget is a twitch extension, and learned about those. also just got off a call with the streamer and dug into a few things to understand better
the docs you linked don't seem to be the same docs that are in the topic - is this an older version?
it looks like it will serve my needs. i can get the streamelements jwt and use that for auth to avoid the need to mint rotating tokens from twitch's extension thing
(i'm just trying to help automate some manual work they were doing to update their overlay with contributor data)
what is :channel? is it a userid? name? something else? found it
Unfortunately, the API documentation in this channel description is completely outdated, so I rewrote and hosted my version of it.
JWT is not for oauth, oauth uses client id and client secret, you need to apply to it.
JWT is the bearer token, more info here:
https://c4ldas.github.io/streamelements-api/#/%23--jwt
yeah, i understand it's not for oauth
the docs show three auth methods, i have the JWT - but looks like i should prefer an api token
i just need to get them to give me the channel id now so i can verify the calls work 😉
Not all endpoints work with api token (overlay token), but it is mentioned in the documentation.
The channel ID (account id) is public information, so not hard to get it. Most of time you can go here and get it:
https://api.streamelements.com/kappa/v2/channels/CHANNELNAME
that did it 👍
somebody doesn't have a database index 😂
alltime top cheers be slooow
it's not showing any tips though 🤔
Check if tips leaderboard endpoint is better for you:
https://c4ldas.github.io/streamelements-api/#/operations/Get/tips/:channel/leaderboard
tips/leaderboard is saying 403, maybe that's why the other ones are empty - but dunno why the JWT would be failing here
You can se if the JWT is still valid (not expired) in jwt.io. Put the token there and check the exp value
it works for cheers just not for tips
like, i was able to successfully get cheer information but tips are empty (and shouldn't be) or 403
it's role:owner
Check if you are in the correct authentication option. JWT authorization has "Bearer" prefix.
yes, i am; i am using the same authorization header for both calls, just one has data and the other doesn't
though i tried both the apikey and the jwt and got the same result. it's odd 🤔
i note that the tip page uses a different api endpoint and channel identifier; that one does return data but it's the weekly/monthly thing. that's fine, i can work with that, though it seemed like i might be able to correct our baseline data if i could get this working
that's of course the unauthenticated public data
For the tips leaderboard endpoint, the JWT needs to be the channel owner one, even if your account have full access from the streamer dashboard.
that's the one i'm using
it has "role":"owner" and "user_role":"creator"
given to me from the SE dashboard by the streamer
at this link, i think https://streamelements.com/dashboard/account/channels
(also the channel and user match the channel i'm querying)
$ curl -H "Authorization: bearer $JWT" "https://api.streamelements.com/kappa/v2/tips/5d65419489a1e169b74b403a/leaderboard"
{"statusCode":403,"error":"Forbidden"}
Hmm, yeah, for some reason, I'm also getting forbidden for another channel
in case you spot anything wrong with it
similarly:
$ curl -H "Authorization: bearer $JWT" "https://api.streamelements.com/kappa/v2/activities/5d65419489a1e169b74b403a/top?type=tip&period=alltime"
[]
ah well, i guess it's kinda whatever. i basically pulled the data from the public widgets and used it as a baseline, but the overlay combines cheers and tips. many were significantly out of date, so i rolled up the contributions to the max of (stored data, cheers)
but that of course will not include tips from the same users; i was looking to see if i could get that data and add it in
but it's not super vital 🙂
Ok, I found the issue. The streamer needs to have the leaderboard enabled for the tips.
https://streamelements.com/dashboard/tipping-settings > Design > Enable the option "Show leaderboard"
that makes sense, though i guess it likely doesn't include historical data
we can find out
Also, you don't need authentication for that, it's open
which endpoint are you talking about that's open? there seem to be at least three i can see 🙂
The tips leaderboard
For historical data, only the /tips will give you that, but it shows every single tip separately.
that's okay, i only really need to process it once (and maybe make a script to fix things up that i can run on occasion)
if it doesn't keep historical data until enabled i'm out of luck anyway
it seems not
o well
Yeah, it doesn't... It's only after enabling it
i'd understand that for the leaderboard, but not the other endpoint that suggests it returns all the tips historically
🤷
It comes from this page:
https://streamelements.com/dashboard/revenue/list
i'll see what we've got there, maybe i can do some manual hand-editing 🙂
if nothing else i can pull stuff from the DOM
I don't think you need to go for the DOM, the SE dashboard is entirely API first. If you open the devTools > Network tab > Fetch/XHR, you can see all endpoints for everything shown on screen.
yep, totally familiar with that workflow
might have to get on a screen share to follow through though
streamer says it's empty for him though, so presumably it just hasn't been tracking data all this time
probably just keeps weekly/monthly rollups for the tip page widget and discards them
that would explain why the api call is empty (aligns with their view from the webpage link)
Or probaly they aren't using StreamElements tips, but Streamlabs or any other service. The StreamElements tips page doesn't rotate
.... oh my word
I saw many streamers that used Streamlabs tips and didn't notice that
the url is literally streamlabs dot com
LOL
i didn't notice because i was under the impression he had migrated
I'm glad I'm here to save your time on that 😄
i really appreciate you having taken the time to dig in with me, and i'm sorry for spending all that effort on something stupid like this
i guess i get to see if streamlabs has an api now
They do! And you don't need to apply for oAuth on that, is automatic
No worries, that's what I like to do. Also, there's no such thing as something stupid 🙂
oh there are plenty of stupid things, but i'm with you about "stupid" questions 😉
Their API documentation is good
I just cannot give you support on that, because... You know... StreamElements <> Streamlabs 😄
it might be, if the link to the docs worked 😂
anyway, thanks again for your help. i'm off to hate oauth again
yeah, i found my way there
i was just laughing that the link on the literal home page to the docs sends you to an invalid url
im using a overlay that you guys have and im trying to click on the text to put my social media on there but its not letting me do that how can i do that??
We don't know which overlay you're talking about.
its the grey area in game overlay
can anybody help me ? ive bought a stream pet from etsy, the commands work fine on twitch but they wont work on kick, any ideas? it is a streamelements overlay
I'd say you should contact the Etsy seller for issues on overlays bought there, but in this case, Kick chat messages are not yet captured by StreamElements overlays, so that's why the commands don't work on Kick.
it said it was available for kick, maybe he mis sold
In this case you should contact the seller, maybe the overlay they created has another approach to capture Kick chat messages. But SE Overlays don't have it natively.
its installed via this link
SE.Staff, any ideas when you might be intergrating kick chat messages to streamelements bot/overlays ?
If you want to contact the staff, the way to go is through tickets
@static lily ⤵️
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.
Hey, how often does jwt token refresh ? I've seen a message saying 30 days but i've been using the same for much more than that and apparently it just refreshed recently for me
pretty sure its once per 6~ months, you can check your specific token's info on jwt.io
It was previously 30 days but that at some point last year (I think if not earlier this year) it got upped to 6 months.
ah yeah, should i though about that, thanks 😅 So i guess oaut2 is best to use then
its not possible to replay twitch redemptions for some reason.
im pretty new with streamelements with the multi stream feature. i'm having issues with login, my screen keeps getting stuck on loading part after trying to connect my social. any help?
Not a dev question, ask that in #community-helpdesk instead or open a ticket to contact the support staff directly
@runic lintel ⤵️
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.
thank you, sorry
No worries 🙂
do I need OAuth authorization to send a notification to the overlay?
No
thank you, is this the endpoint? https://dev.streamelements.com/docs/api-docs/7e632a4cecfe1-channel
This is a tip creation endpoint. It will create a tip on StreamElements and yes, it will trigger the alertbox for tips.
Any idea when will the next SE live update? The plugin is constantly crushing obs 😕
Hi guys! I've created my own pet widget. And sometimes it's randomly flickers when switching animations. Does anyone know what might it be
A wild guess, this could as well not be this, hard to tell without seeing the code and how it behaves. Things like this often happen if you are loading the image/video for the first time. Try to preload all images/videos before you even "trigger" the widget.
I do not know how you do your stuff but just to show you... I do something like this for image preload, you would have to modify this appropriately of course:
const imagesToPreload = [
"url-here",
"url-here",
"url-here"
];
const preLoadImage = (url: string) =>
new Promise((resolve) => {
const image = new Image();
image.onload = () => {
resolve(true);
};
image.src = url;
});
Promise.all(imagesToPreload.map(preLoadImage)).then(() => {
console.log('all images loaded, show widget');
});
Is it possible to send a chat message with the SE Bot to a connected chat (eg. Twitch or Youtube chat) from within a Widget through Javascript?
hi can any dev / staff help me with the chat stats issue a streamer that i watch used to have chatstats but few years ago she changed her name so it now doesnt appear and im pretty sure she uses stream elements could someone help ?
Using jebaited maybe. I'm unsure about yt tho
Hello, I'm trying to find a way to store data for a custom widget i'm working on.
Is there any way to save data inside of a widget? Because I know localstorage won't work.
Cookies and indexedDB don't either
I'm asking because it's a subathon timer, and I don't want time to reset every single time I chance a field setting
Oh, found something. SE_API.store
You have to ask her to open a ticket and ask to update her chat stats.
Does anyone have a helpful fix.. my vertical transitions aren't working when i link the scenes on some scenes verbatim?? I would be so grateful as to what could fix this
I'm trying to add some sort of way for the user to log in with twitch on the timer's editor because I need their account ID and token to subscribe to the hype train statuses.
Considering that the widgets are inside an iframe, I know that I can't just window.open() my way to make a pop-up, so how can I make the user log in to get their token then? I have my twitch app clientId and website redirect_URI, but I don't know how to proceed.
Checked the docs just in case, but didn't find anything related.
The recommended way is to have the user to authenticate outside the widget and generate some sort of code/token for that user, so they can add it to the fields panel.
Oh, so I can't just make a pop-up window or new tab to open a twitch login? Sad, but I can see why.
I didn't get the twitch event sub websocket to work, so is it should be okay if I make an external backend to manage websocket sessions and access it on my widget, right?
Yep, that shouldn't be a problem
Great, just wanted to make sure I wasn't breaking any rules.
Well, technically there isn't rules for widgets creation anymore, as Overlays system is considered legacy for StreamElements. The rules were created for people who were sharing the widgets publicly on StreamElements Overlays gallery or from #widget-share. Since it isn't possible to share them on these places, there isn't any rule to break, but only recommendations.
Oh, so Overlays are legacy? What does SE use now for things like that?
Elements
Yeah, unfortuantely it is, although many people still use it and create widgets on them (including big players like Nerd or Die, own3d tv, and people on Fiver/Etsy). Also, the team informed they don't have any plans to retire or remove them.
The new system is called Elements (it's right below the Overlays link). It is a completely different system, the documentation is here if you want to try:
https://dev.streamelements.com/docs/widgets-elements-sdk/
I'm always talking too much, I would be so more efficient if I were concise like that! 😄
I see, now I know why #widget-share is archived
I appreciate the extra info, just a me thing ig
But yeah, short and concise answers also work on the vast majority of cases
Hello StreamElements Team,
I am writing to request the addition of Bulgarian language to the platform. StreamElements is an extremely useful and popular tool among streamers in Bulgaria. Adding Bulgarian language would make the platform much more accessible and convenient for a large part of the local community.
I believe that this change would help many new streamers to navigate the settings more easily and make full use of all the functionalities, which will contribute to the growth of your community in our region.
Please consider the possibility of including Bulgarian language. I am ready to help with translations if necessary.
Thank you for your time and attention.
Best regards,
Unfortunately, nobody from the team will read your message here. If you want to contact the team, the best way is creating a ticket
@spark crypt ⤵️
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.
Anyone able to confirm for me if a websocket connection gets all events for all platforms on account (e.g. twitch and youtube) I cant seem to trigger events from both platforms from the dashboard (and my youtube account has no events on it so cant test it currently)
According to the docs https://docs.streamelements.com/websockets, it should
But for different platforms, you need different websocket sessions
Because the token for Twitch doesn't work with the same events as the ones for Kick or YT
Yeah that was my concern as I couldnt get it to trigger any of the other platform events without swapping the account over, guessing theres gotta be a way to do that all programmatically
I can assume you can't, or rather, it's not made for that, only for one platform as a time.
What I can recommend is using the Astro SE websocket for YT, Kick's Webhook API, Twitch's EventSub websocket
All by different sessions, but don't mind me, I know jack sh*t
You don’t need different connections to different platforms, you can use a single session and subscribe to each type of event using your account id and token from each platform.
Once you subscribe to a topic using your account, you can subscribe to it again, but changing the room and the token.
Room is your account id for the specific platform.
Why am I unable to remove outputs? I already went and unlinked tham from my stream elements website but they're still showing up in this box and the delete button is not press-able. Any advice here?
Not related to this channel, check if you can get help in #community-helpdesk
Oh interesting, so I guess i'd require a user to auth multiple times with their accounts changed to get their tokens and Ids, then run the auth like in the example socket.emit('authenticate', {method: 'oauth2', token: accessTokenTwitch}); socket.emit('authenticate', {method: 'oauth2', token: accessTokenYoutube}); } ?
Howdy folks - the Stream Bounty (formerly Stream Bingo) twitch extension now supports bots connecting via WebSocket in order to trigger things on the bots, like when someone gets a bingo or a game starts or ends or whatever. I can't seem to find any info in Stream Elements about connecting to non-astro WebSockets as a client. Is this possible or just a complete dead end?
I have multiple services that push events using websockets and sse. Both just work.
So yeah it's possible
Oh nice! Can you give me any pointers how? I don't see anywhere in StreamElements that can configure a Websocket client, except to their own server
A bit more detail can be found here
https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_client_applications
There are more then enough resources on js websockets. U just need to google
Any smart people able to write a custom command using the Elements chat bot, that if I type "!bingo <user>" it automatically gives that person 250 of the element's credits (in my case, ₡attle₡oins)?
I'm unsure how to do it, or if it's even possible, so this way, if someone with more experience is able to figure it out, I can just copy paste it into my custom commands area. xD
I have already written a websocket, the websocket is not the problem. I am trying to find a way to get StreamElements bot to connect to the websocket, which I can't find any info on 😥
Well, you didn't really write that.. That is probably not possible.
You can't just tell the se chat bot to connect to a random websocket.
If you need to do it, you may have to write a custom webserver that allows for rest-like calls (somewhat like a proxy).
Question about channelPoints I'm currently using @severe shell workaround where I add the layer and im able to set up and emulate Channel Points and it works great, but i just made a widget that needs the text input associated with the channel point and I think Im going about it in the wrong way, first image is my code where im trying to get data.userInput but I should be using data.message right? based on the example on @severe shell website
You're mixing things. SE Overlays now have support for Twitch channel points, so my widget for channel points became deprecated.
That second screenshot showing the channel points redemption structure is related to the native StreamElements event. 🙂
There's a one in #widget-share that might help.
One that has channel point redemptions with text input required.
Unless you are indeed mixing apples and oranges.
ahh okay, that's good news, so what's the event listener im looking for?
will check it out, thanks. fantastic news! been struggling with channel points for a while
channelPointsRedemption, like the screenshot
This one is also deprecated, you can get the same via default SE listeners
so it's not a listener exactly. id be searching for if(obj.detail.event.type == "channelPointsRedemption") ?? checking the type instead of listener?
Yeah, exactly.
window.addEventListener("onEventReceived", (obj) => {
if(obj.detail.event.type !== "channelPointsRedemption") return
console.log(obj) // You can check it on browser console
})
Which is the object from the screenshot you sent. https://c4ldas.github.io/streamelements-api/eventreceived.html#channel-points-redemption-with-text-input
okay great, thanks. and any way to emulate a channel point reward from the SE editor?
Unfortunately, no. But you can use your own channel Channel points redemption (if you're Twitch affiliate, at least)
appreciate it
♾️ points 
and trying to emulate from your deprecated layer system, not gonna work? I should stop using that all together?
It will work, but the keys and values are different.
My suggestion is that you stick with the SE native way, since it works very similar to my widget, with the advantage you don't need a helper widget for that.
Also, my widget uses Twitch PubSub implementation and a non-documented event topic (community-points-channel-v1.{TWITCH_USER_ID}), which is not officially supported by Twitch and can break anytime.
Using SE native way is also better in case you need community (or staff) support.
Additionally.. isn't pubsub deprecated?
Officially it's already shutdown.
Now if you can get around that via "hacks" 
Yeah, but the server is still on, as Twitch still uses it on the frontend
I can not get the activity feed to show on my obs
I have a pay phone TTS widget and it all works except when triggered by Channel Points with text. Here is the code block for handling channel points, updated from the info I got from you guys yesterday. The if statement passes, we get inside the if block but getting the text entered with the channel point redeem isn't working. Any issues you see with how I'm handling it? The message works with custom text entered from a sub, donation, etc... just not Channel Points
im not an affiliated streamer and can't test channel points which is making this quite tedious
Send the code in text, so we can copy and test it
Yeah, that's the worst part. But I can test it for you, just send me that piece as text
if (obj.detail.event.type == "channelPointsRedemption" && obj.detail.event.data.redemption == channelPointName && includeChannelPoints ) {
let user = obj.detail.event.data.username
CALLERNAME.innerText = user;
const message = (obj.detail.event.data.message && obj.detail.event.data.message.length >= 7) ? obj.detail.event.data.message : getRandomSaying();
playPhoneAnimation(currentPhone, message);
console.log("MEEEEEESAGE", message)
console.log("USER ===== " + user)
return
}
Your code is working fine on my side. Not sure about CALLERNAME, getRandomSaying(), and playPhoneAnimation() (I had to comment them), but if the message is longer than 6 characters, it appears with no issues on browser console.
Check if your variables/functions are the issue, maybe it is stopping somewhere in there. Other than that, it is entering the if condition with no problem.
yeah CALLERNAME and all that are to make the widget go. But message was what I was having issues with, or so I thought. That's fantastic news, thank you very much!
Also, I made a little youtube video series about making widgets in SE for beginners and people seem to like it, is there a place to share that somewhere on this discord?
We don't have a place to share videos in this server, but you can post it here, I'd like to see it 🙂
How i can creat a comand to Bot send on Twitch how many tickets someone already buy on my giveaway ??
Just looking at the default SE subathon widget since the widget of someone I mod for seems to be adding time randomly without being asked 
Thinking it would be good to have it log the events it's processing to add time but unsure if the SE widget would be able to do that
What is the default SE subathon widget?
I don't think there is such a thing
It's a custom one by LX that's under the widgets tab of the overlay gallery.
Ah that's the elements one.
I won't link the custom Megathon timer that we've had problems with. I may modify that SE one to support blerps/tangia/kofi etc
The custom one looks cute n all but it's randomly adding bits of time here n there so not reliable
@agile olive ⤵️
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.
Or has anyone already modded the 'thon widget to support the 3rd parties?
I'm not good enough to link it to 3rd party accounts I'd just be reading 3rd party bot chat for triggers
I can tell you that definitely hasn't happened and doubt it will.
Why is it that when trying to connect my OBS/streamelements to my twitch it says connecting for a long time and then it just takes me to a black screen and it never even connects?
Don't use the Brave browser.
Hi, I have a problem with SongRequest API
When getting the queue via GET /songrequest/{channel}/queue, I know I can remove entries using DELETE /songrequest/{channel}/queue/{song}
But how do I remove songs from moderation/pending queue, got using GET /songrequest/{channel}/pending?
API docs don't mention it directly, I've tried accordingly by DELETE /songrequest/{channel}/pending/{song}, but I get a 404
I've tried using DELETE /songrequest/{channel}/queue/{song}, I got a 201 status, but the song is still in pending queue 🤔
I guess this is a bug ^
Ok nvm, I've figured it out
It's POST /songrequest/{channel}/pending/{song}/reject
It would be nice if this was added to the docs though 😅
@severe shell new endpoint discovered ⬆️
Yeah, I took note of it to update it later 😁
Alrighty 😅
anyone from America?
Of course, a lot of people are from America
you too?
No
where are you from?
whom ever made the change to the alert box. if you could hit the undo button. that would be great. thanks
Salut
For the StreamElements Event Feed - It has an option to show View Count.
Can we have this work Per Platform?
So it shows View Count for TikTok, YT, Twitch, Kick etc?
I'm not sure if this is the right channel for this. I've seen on sites like etsy and ko-fi, where you can purchase an overlay and get sent a sharable link which one click imports it into the buyers stream elements.
Is there a process for this?
It works great in the overlay, and if people just copy the HTML and the Fields in, but I'd love to have a shareable link for easy "install"
It used to have a process for that, but it is not available anymore for Overlays since Elements was added the ability to share widgets.
I'm probably late the the party but is there a readon data.tier is undefined on community gift events? I know you can gift multiples of t1/2/3 subs so why isn't the tier in the data?
ftr the gifted subs that follow individually do have tier correctly filled out, but it's a bit late by then as the initial bulkgifted processing is over
It looks like a simulated event, is that right? If so, you can get real world examples here:
https://c4ldas.github.io/streamelements-api/eventreceived.html#community-gift
yeah that's me sim'ing
Yeah, those simulated ones aren't that good when we need more than a basic alert event, unfortunately.
so I have to go with what I hope will be in the real ones and cross my fingers? 
I'm surprised since the simulations are by SE in their editor, so not sure why they'd not make them match
I noticed it's your messages in the examples 
I take it giftsub is a named person gifted X months of Y tier, whereas community gifts is random people gifted Z tier (can't gift multimonth to community afaia)
But I'm not seeing where I get X/Y/Z for giftsubs vs community
I'm just trying to have a widget display how many months of which tier were given to how many people (T2/3 limited to single people I think)
I didn't expect it to be this tricky 
Yeah, community gift is when a viewer send subscription gift to random person(s), not chosen.
Gifted sub sub is for a chosen person.
Yeah makes sense. But where do I pull the months-gifted/tier-gifted for giftsubs and count/tier-gifted for commsubs? 
Not sure if this is the right chat but would anyone know if I use 6k bitrate for OBS it uses that same bitrate across all my stream so it won't anymore then 6k bitrate?
not sure what else you are thinking ias stream other than OBS? OBS is sending the full video stream to the platform
Multistreaming! So when I use 6k it only uses 6k bitrate right? but just duplicates the stream to other platforms?
Any YouTubers here
Probably quite a few
Nice
I believe if you're multi streaming locally you would be sending your stream to multiple platforms, so 6 + 6 etc
How can I enable Media request. Whenever I open it it says it can't find the overlay but I don't have a option to add it in the overlay creator
It's only available for twitch.
I only stream to twitch
I have multi stream but I don’t use YouTube or anything as YouTube likes to copyright me
And I don’t like kick & don’t wanna stream to social media like TikTok etc so
Screenshot the window that pops out when you click on your profile picture in the top right here https://streamelements.com/dashboard
Wdym. I’m trying to add it via the widget thing in my browser but there is no option
And you need to do it within the editor in browser. Not OBS.
What browser you using?
THAT would be the issue.
Use chrome/edge.
It didn't say anything about requiring it on the docs so I'm not sure if this could be the issue
Beause it isn't.
The only actual requirment is using your twitch account.
Ok I just didn't know if that is a requirement
this is using Edge
You'll need to make a ticket then as I can't help beyond this.
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.
Anyone able to write a custom command using the Elements chat bot, that if I type "!bingo <user>" it automatically gives that person 250 of the element's credits (in my case, ₡attle₡oins)?
I'm unsure how to do it, or if it's even possible, so this way, if someone with more experience is able to figure it out, I can just copy paste it into my custom commands area. xD
Please @ me if you have a go, because I have this channel muted to prevent spam pings.
is it possible to assign a second redirect_uri to an existing OAuth2 client application? i'm migrating my project to a new domain and would like both to work while in transition.
Unfortunately, no. I tried some time ago in a ticket, but the team only gave me the option for one single redirect uri.
What I did was redirecting manually in my code to the new domain after exchanging the keys 😞
i was afraid that was gonna be the method i'd have to take. thanks
I've noticed that there can be a dropdown added to the setup in the overlay for fonts. I was wondering how this is done.
I'm not seeing anything in the fields that populates it one by one
The type googleFont is a predefined internal scheme. Also, it doesn't include all Google fonts.
In case you want to create your own dropdown, set the type to dropdown. Look at the "someDropdown" example in the documentation:
https://docs.streamelements.com/overlays/widget-structure#example
Hello, I manage a bot for several streamers and I’d like to ask about an issue with the StreamElements filter. When a random bot joins and posts a message, the filter works correctly and issues a permanent ban. However, when Twitch flags an account as “suspicious”, nothing happens – both I and the moderators can see the status, but the StreamElements filter does not respond and no ban is triggered. We then have to handle it manually.
From my perspective, this seems less like a StreamElements issue and more like a limitation on Twitch’s side, as the “suspicious” flag may not currently be exposed to third parties via the API. Would it be possible to add API support or another method of accessing this flag so that it could be integrated into filters? It would greatly simplify the process of dealing with such accounts automatically rather than having to monitor and ban them manually.
One possible temporary solution came to mind – renaming the bot so that it operates directly under the streamer’s name. In that case, Twitch might treat it in the same way as the streamer or moderators. In theory, this could provide access to the “suspicious” status and allow the filter to react automatically, although I am not certain whether it would actually work in practice
Hello, I have a question regarding SE_API.
As far as I've been able to tell, you get data from SE_API.store.get("store-name");. However, the store-name can be anything, and it could lead to bloating in SE_API store. Is there a way to see all of the data in your SE_API w/o calling on them one-by-one?
Of course, I could be smoothbraining and not seeing the store in the dashboard, which is a real possibility.
Well, that requires the SE team intervention, and this is a community channel. If you want to contact the staff for reporting bugs, you can open a ticket.
In case you want to suggest ideas, you can use the ideas board
@verbal seal ⤵️
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.
@verbal seal ⤵️
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.
You can call it via API request.
You can get the authorisation key (overlay token) from onWidgetLoad, so you don’t need to type it directly in the code.
obj.detail.channel.apiToken
okay thanks
An API wants me to specify which IP addresses I'm going to be using a token on. I want to use it in an SE Widget. Is there a SE IP I can use for this, and is it hopefully the same regardless of which channel the widget is in?
Also is there an event that widgets can use for when the stream ends?
thank you for the reply.
I have located the JWT and apiToken values on the dashboard (thanks to the post regarding obj.detail), and I placed those values in variables.
I can't seem to locate a valid endpoint. I found this in the documents:
https://dev.streamelements.com/docs/api-docs/ae133ffaf8c1a-personal-access-using-jwt-secert-token-to-access-the-api
And I replaced the JWT with my own. Here is my code (with the token info edited out; see attached image).
The replies I get are:
For JWT, code 403, forbidden.
For authToken, 401, unauthorized.
So am I missing something, or is there a different endpoint I could use?
And to make sure we're on the same page, my goal is to get and review the entire store. I don't want to have to do
let store1, store2, store3;
SE_API.store.get("value1").then(res => store1 = res);
SE_API.store.get("store2").then(res => store2 = res);
SE_API.store.get("store3").then(res => store3 = res);
if that makes sense. Honestly, I'm surprised I don't see this info in the dashboard or anything.
The endpoint is exactly the one I mentioned here: #dev-chat message
You can authenticate using the overlay token, which is exposed on onWidgetLoad, no need to input your token manually (which is also not recommended).
window.addEventListener("onWidgetLoad", async (obj) => {
const token = obj.detail.channel.apiToken;
const accountId = obj.detail.channel.id;
const request = await fetch(`https://kvstore.streamelements.com/v2/channel/${accountId}/customWidget`, {
method: "GET",
headers: {
accept: "application/json",
authorization: `apikey ${token}`
}
})
const response = await request.json();
console.log("All data from SE_API.store():", response) // Open your browser console to check the object
})
oh, hey. That is a clickable link. I didn't know that.
Yeah 😄
Yep. That answered my question. Needed a little bit of rewriting, but it worked. Thank you kindly.
Real quick, is it the same for delete? I'm getting 405's for DELETE requests. The aforementioned post only had GET, PUT, and POST, so I don't know if DELETE is an option at this rate.
There is no DELETE for that. You cannot delete any key.
https://docs.streamelements.com/overlays/custom-widget#se_api
Okay. Thank you for your answers and assistance. They've been helpful.
-
An API wants me to specify which IP addresses I'm going to be using a token on. I want to use it in an SE Widget. Is there a SE IP I can use for this, and is it hopefully the same regardless of which channel the widget is in?
-
Is there an event that widgets can use for when the stream ends?
- The widget runs locally
- Not directly from SE. But you can connect directly to OBS via OBS Websocket and listen to the event "StreamStateChanged" using obs-websocket-js.
https://www.npmjs.com/package/obs-websocket-js
This snippet can give you some directions.
HTML
<script src="https://cdn.jsdelivr.net/npm/obs-websocket-js"></script>
JS
const OBSPORT = 4455;
const OBSPASSWORD = "" // Your OBS WebSocket Password
window.addEventListener("onWidgetLoad", async (obj) => {
const obs = new OBSWebSocket();
await obs.connect(`ws://localhost:${OBSPORT}`, `${OBSPASSWORD}`);
const obsInfo = await obs.call('GetVersion');
console.log("Connected to OBS:", obsInfo);
obs.on("StreamStateChanged", (data) => {
if (data.outputState == "OBS_WEBSOCKET_OUTPUT_STARTED" && data.outputActive == true) {
console.log("Stream started!");
console.log("Stream State:", data);
}
if (data.outputState == "OBS_WEBSOCKET_OUTPUT_STOPPED" && data.outputActive == false) {
console.log("Stream stopped!");
console.log("Stream State:", data);
}
});
});
It is important to mention you need to enable OBS WebSocket on OBS menu Tools > WebSocket Server Settings > Enable WebSocket server
hi - is there a way to test SE tip events/is there an eventsub-style POST thing i can use for them? the "emulate" thing in the overlay doesnt seem to fire anything
You have some ways:
- Go to Revenue history page and create a new tip. Click on the three vertical dots next to "Search" button > Add a tip. Make sure to check the "imported" option, and that will trigger a tip alert
- You can do a POST request to
/tips/ACCOUNT_IDendpoint: https://c4ldas.github.io/streamelements-api/#/operations/Post/tips/:channel - You can replay a tip event from Activity Feed
i dont see a revenue history page :O
im stupid
lps ignore
is there no eventsub style thing for tips via webhook or something?
Hi. I just finished my first custom widget. I see people sharing them as a link for installing but I couldn't find how. Could someone tell me, please?
You need to have that feature enabled for your StreamElements account I believe. I've tried multiple times but no luck so far, with having someone at SE enable it
Q: is there some infomation on the requirements to get OAuth2 access? if so, where can I find it ?
There is a WebSocket (Astro), but not a webhook. https://docs.streamelements.com/websockets
This feature is not available anymore.
#dev-chat message
There isn't a requirements page, just the form you need to go through and explain what your application is.
https://strms.net/oauth2_request
any idea on how long the review process is ? (days/weeks)..
No idea, maybe you should open a ticket and ask how the process is going
i have a basic question 🙂
i found this to work:
window.addEventListener('onWidgetLoad', (obj) => { fieldData = obj.detail.fieldData; console.log(fieldData); console.log(fieldData.test); })
i use it to get the value of a custom select field, is that the propper way? and would i save fieldData.test into a variable to keep using it across my code?
Yep! That's fine. But I recommend that you declare the fieldData variable outside of the function first, just to make it explicit (we never know if some day the custom widget will change to strict mode).
let fieldData;
window.addEventListener('onWidgetLoad', (obj) => {
fieldData = obj.detail.fieldData;
console.log(fieldData);
console.log(fieldData.test);
})
thanks!
how do I make it work on Mac OS , it keeps loading and is not loggin in any accounts . Do we need to install ground control app also ? beside OBS ?
How do you make WHAT work on macOS?
se live features work ? it is not connecting when trying to log in account and does not show the dock , when clicked on StreamElements -> se docks - nothing shows
OBS crashes
Hmm, you should have better help in #community-helpdesk. Here in this channel we usually discuss things like custom widgets, APIs, Websockets, chat commands configuration, oAuth, things like that.
OK .. thanks for reply ...
You arent using chrome to log in, set chrome to your default browser and try again, let me know if it works
I know this wasnt the place for an answer but ive seen the problem multiple times now in this discord, as welll as having had it myself and talking a couple friends through it lol
Don't worry about that, feel free to answer any question you find here. My recommendation is because they can find more people with similar issues or solutions there.
super fair
i need help
@exotic coral ⤵️
Sponsorship questions can only be handled with the ticket system. Please type !ticket sponsor support in #community-helpdesk and follow the instructions from the bot.
Attempting to open multiple tickets will not quicken staff response as they are handled in the order they are received.
Hi! I'd like to know why subscriber-goal doesn't display the number of subs as a goal, but rather the total number of subs, and subscriber-points displays the number of subs and not the number of points.
For example, here's a screenshot of Twitch's goal data and another of streamelements data.
The goal amount is up to you do define. subscriber-goal property is the amount of subs you received since you reset the goals. It always goes up, never goes down.
Subscriber-points is the amount of points your account have.
Tier 1 is 1 point, Tier 2 is 2 points and Tier 3 is 6 points. It is used for additional emotes slots. The reason you have the same amount for the points and subscribers probably is because you have only Tier 1 subscribers.
Also, there is no Streamlabs data in your screenshots. Only StreamElements and Twitch.
Good evening Devs know about cant change scenes name, safe mode if i close obs and start again, and if i close obs and open again linked tik tok account showing red icon.
I fixed the issue, but I wanted to double check why it was happening. The issue was in my widgets the names kept coming back 'undefined' when live but when emulated everything worked fine. In the image is 2 different console.logs from the same event. In one the info is in event and in the other its in event.data ..... is one event from Twitch and the other is the same event but from SE, or something like that, and they have different structures??
Emulated events are not the same as the real ones, the structure is outdated and we cannot trust on it. They are only useful for testing basic alert boxes.
Also, the listener “event” and “subscriber-latest” also have different structures and values. Both objects are sent at the same time when the event occurs (except for chat messages, redemptions, deleted messages, things like that)
You can check here for real examples if you need them: https://c4ldas.github.io/streamelements-api/eventreceived.html
Hey,
A few years ago, I submitted some custom widgets which I recently updated.
Would it make sense to share the updated code as well, or is the widget-share channel pretty much dead (as the last post dates back to 2023)?
If your code is in #widget-share, you can contact the staff and ask them to update the hosted widget. Just send them the updated code and they will update it.
But yeah, #widget-share is dead, no new widgets will be added there, due to the Elements thing.
ah, kk. Thank you! 👍
Hello does anyone know how to get alerts for YouTube super stickers? Because super chat alerts work but not super sticker ones?
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.
I have a problem updating the payment/receipt, I can't change anything, please help me, I have sponsorship to receive and I can't solve this problem
Hi question is it easy to convert a overlay editor widget to the new element system?
Asking cause I have issue with persistent data being saved (subcount on a subathon widget doesnt save after the streamer stream end so everytime it reset back to 0 and he need to type the command to set the subcount again every stream) and I want to move it to element to see if it fix my issue cause no data is saved. It work fine while the stream is live just doesnt save the data to the next stream so he can continue the subathon
It isn't, they aren't compatible.
The issue you reported has nothing to do with Overlay Editor or Elements. Probably the widget is just saving the data in memory, not in a specific place, like a database of kvstore. Check SE_API.store for more information:
https://docs.streamelements.com/overlays/custom-widget#se_api
Hi ! Are the rate limits for the API documented anywhere now ? I saw that someone said it might be 1000 calls / minute. Is that still accurate ?
It is accurate, but it is not in the documentation. These are the values you can check from the response headers:
x-ratelimit-limit
x-ratelimit-remaining
x-ratelimit-reset
The rate limit is global.
Thanks !
Hey,
I reached out to @viral patrol regarding the update of my "coin toss" widget, but as far as I’ve seen, he hasn’t responded (which I do understand, he probably gets a lot of messages).
Should I contact someone else from the staff, or is there simply no interest in maintaining the #widget-share widgets anymore and I should just leave it at that?
I would just open a ticket requesting to update the code
ah kk, I will try that. Thank you!
The bulk add points API (https://dev.streamelements.com/docs/api-docs/54472038d5274-channel) doesn't seem to work with negative numbers to subtract points ? Is this a known issue ?
Yeah, it doesn't work to subtract points, better to use this endpoint, but it isn't bulk:
https://c4ldas.github.io/streamelements-api/#/operations/Put/points/:channel/:user/:amount
Hi, I use websockets to get tips in my app. I noticed yesterday that I sometimes get tip events without currency. Was there a recent change or did I just not notice before?
I tested it with both realtime and astro. When I add a tip in revenue history it includes the currency, when I use emulate in the overlay editor it does not.
Is this expected? Does this also happen on actual tips or is just someone using "emulate" while connected to my app?
Probably is due to the emulation. The emulation is not a very reliable resource to test custom code, it is mainly for basic alertboxes, just to visualise them in the editor.
The tip added via Revenue History page is a real example on how would work, as it sends directly to SE API.
Thanks, just wanted to make sure since I hadn't seen this in prod before.
Also I've just seen that all of those have ".../overlay-default-preview-2.jpg" as avatar which seems to confirm that these come from the editor/emulation
does the "One-Click Overlay Sharing Application" application form still work, or is it not posible anymore to create share links ?? (https://docs.google.com/forms/d/e/1FAIpQLSdece7hRCA9F3TRh5dLMIygUd5PlWa4xfb1wraW46yvyqs2Ww/viewform)
No longer possible.
any other options ?
Officially no but the options at the top here are next best bet short of that https://seapi.c4ldas.com.br/
Share your overlays with your friends.
Do note that's not an official method and managed by one of the other community members here.
oke... got that script from github.... but it's the oath, that was rejected for my project.... bummer... but thanks for the info.
(Thank you for your patience. All requests have now been reviewed. If you have not received your credentials via email, your request has sadly been rejected. ) and I will never know why....
If your project is just to have a sharing link, it is likely to be rejected. As the Elements (https://streamelements.com/dashboard/alerts-and-widgets) has the option to share your widget via sharing link, the team suggests that you use it.
Unfortunately, it is not directly compatible with Overlays.
SELive kept crashing OBS upon close so I uninstalled it.
"likely to be rejected".... the question is why... found some ^^ website(s) that have the oath.... strenge,,,,,
The why is to push people to use Elements instead (not that I agree, but that's the reason)
The sites that have the ability to share overlays via link probably got the oAuth before Elements existed (or applied for another type of application).
Overlays 🤩
Elements 🥱
(And I won't change my mind cause the idea of quick and simple build in editor not existing is just bad and kills any fast fixes)
Elements were born dead anyway
i refuse to use elements.
Why ?... I'm not a coder, and it's for me the best way to make (kinda) widgets (with the help of AI).... 🥴
I want my code editor. I don’t what to have to set up something else
I haven't found a single person that developed for Overlays and like the change to Elements. It's like a silent revolution 😄
LOL. i also am not a huge fan of being FORCED to use it.
And what kind of editor are we talking about, kinda noob question, but still....😉
I am trying to work on a plugin that might help anyone that’s interested. Basically is about creating something like the Studio Mode in OBS but this time round showing your different canvas live side by side
I believe we are talking about the integrated editor in StreamElements Overlays for custom widgets:
Pff... and i was thinking about, textpad +++ or visualstudio... hahahah
Funny thing though it's that SE product manager did talk to developers (myself among them) to hear feedback. I said "it's way overcomplex, no devs are going to like it". They just didn't care, stopped supporting Overlays and left Elements half done 🤷♀️
so, i have a three.js "game".
i want youtube livestream chat to be able to send command to the game. im looking for a websocket settings in streamerbot to make it possible.
is there anyone can help me with it?
bro i think im in the wrong discord server
XD
I found a bug in the overlays where on the alert box, measuring a div just breaks and reports zero. They told me it wasn’t a widespread thing and they weren’t going to fix it (left is in editor, right is in preview window)
Yes, yes you are. But here.
Turn on the websocket server on streamerbot app level:
Server/Clients -> WebSocket Server -> Auto Start (turn to ON if was not already)
Import yourself a StreamerbotClient to your application html file. Or however you import packages. StreamerbotClient package github page should have all instructions for this:
<script type="text/javascript" src="can't link here but just find the unpkg for it"></script>
and then its just this in your js file
(async () => {
const client = new StreamerbotClient();
await client.on('YouTube.Message', ({ data }) => {
console.log(data); // do whatever you need to do here with the user message
});
})();
eyy thanks
is there any sort of timeline for when events for kick channel points and the new 'kicks' will be added?
can i use quote system in a random but a limited quotes?? exemple quote 1 ~ 10
quote 11+ dont call ??
maybe $(quote 1~10) ??
have something like that?
You can use $(random.number):
$(quote $(random.number 1-4)) - It will show a random quote from 1 to 4 (1 to 3, actually)
@severe shell
{random.chatter|replace:StreamElements:@alguém|replace:streamstickers:@alguém|replace:Nightbot:@alguém|replace:nightbot:@alguém|replace:streamlabs:@alguém|replace:creatisbot:@alguém}
this way correctly?? because i use command but still calling the bots x.x
What? You asked for quotes, I gave you the quotes example. The command you posted doesn't exist.
its another situation, sorry. trying calling a random.chatter, but i dont wanna @ bots
SE doesn't have support for excluding users from random.chatter variable.
There was an endpoint from decapi.me, but it doesn't work anymore either. I don't know if there is any other endpoint for that anymore 🙁
hey guys can i get some help, i run in too the one error thats on the picture included in this message. ive tried everything i can think of, could you guys help?
I even bought a new pc for it because i thought it wouldve been a problem with being too old, but my pc is a 5070ti with ryzen 9 5950x with 64gb ram so i would think it would be good enough
hello
can anyone help me fix login youtube from obs?,i just got blank screen on my browser after choose my yt account
how do i open up the scene editor when i accidentally closed it for streaming to tiktok
read the message lol .. make sure your drivers are upto date
You think i haven't tried that? 😂 but it fixed it already. I hat yt as main stream location and twitch as extra, switched those around and it works normally
you never know with some people dude lol .. glad you sorted it tho 🙂
Hello, anyone knowing how to create alerts with CSS and stuff? DM me i have special request (can pay someone to make it)
Is it possible to access the streamelements TTS system through JS?
Bump, again.
Do you use jebaited for by any chance ? that's what I use to addpoints (channelpoints to users)....
I do
hahh I was replying to @acoustic vigil hahahaha
No. I have no idea what that is.
I'm not trying to add channel points. I'm trying to add the Stream Elements points, with their own bot.
but just with 1 commands, of !bingo <user> (that has a predefined point amount), instead of !addpoints <user> <points>
someone missed the word "community" in the category's name... anyway ignoring that, you actually got the right answer, jebaited should help with that. i'd link you there but cant share links here iirc, so dm me if you want
We can share links here, especially for known sites.
https://jebaited.net
I think this should help you:
#dev-chat message
🙏
Thanks.
So, now I've done the jebaited part and got my token.
How do I now go about putting that into a command, so I can do !bingo <user> and they'll get the points?
I understand I use the custom api thing, but where does that actually go?
This is my first time doing stuff like this, so it's a little confusing is all
I don't wanna mess it up
You will create a command like any other, but the response will be like this (replacing YOUR_TOKEN and POINTS_AMOUNT with the actual values):
${customapi.https://api.jebaited.net/addPoints/YOUR_TOKEN/${touser}/POINTS_AMOUNT}
- Go to https://streamelements.com/dashboard/bot/commands/custom and click on "Add New Command" button
- Put the command name "bingo" and the comand
${customapi.blalblalba...}in "Response type" - Set the "User level" to "Broadcaster" so you will be the only one who can run the command
- After that, click on "Activate Command" button
Ohhhh, it goes into responses!
Thanks. I'll give it a go.
It worked!!!
Thank you so much all of you.
Now, only last question I have is, can I change the actual chat message that comes up?
So instead of "Added 250 points to user zodiacbullyt" as is showing now, could I make it say "ZodiacBullYT got BINGO! +250 Credits" or something?
could maybe "cheat" that with $(ai blabla), but other than that, idk any other way for streamelements' bot to alter text
So, would you be able to give me an example?
Again, I'm brand new to this, so not really sure what that means.
not on pc rn. just do something like $(ai say this with no changes: "blabla", ignore this completely: "$(customapi blablabla)"). mess around with it a little.
Nah, that didn't work. Sorry. :/
Unless I just messed it up, which is possible. 😅
I have a question... do I need a new stream elements tipping site for each platform? I created my twitch tipping site yesterday... but i also might stream on KICK tonight... will the same one work for both???
Any chance you could have a go whenever you have a spare minute, see if you can get it to work?
Cos IDK if it's just me being a noob, or the command itself not being able to be edited. xD
I appreciate all the help so far btw.
Yo Guys, Anyone knows on the webhooks whats the variable of the "Your name" field on the tipping page?
Like "activity.data.username"?
Because its showing the Youtube or standard Twitch name atm not the name from the "Your Name" field
Because some channels can choose to lock it to the account logged in atm.
That probably doesn't answer your question but it is contextually relevant.
Yes ive turned it on because im using SE.Pay but is it also posible to use the "Your name" field instead of the twitch/youtube username
Of when its turned on its not posible to use the custom "Your name" field
As shown above there's the 2 on options: locked or customizable.
Yeah ive got the second option
But the question is can i use the customized username in a webhook
This or the other spots in this "might" be able to answer but I'll leave @severe shell since he's the big brain with api stuffs. https://c4ldas.github.io/streamelements-api/#/operations/Get/tips/:channel/:tipId
Can anyone recommend tutorials/guides for making widgets with the Elements SDK? I'm trying to follow the API docs with the code examples, but only the HelloWorld example seems to work - all the others just seem to show a control panel but nothing is actually rendered at all, so I'm not sure if the documentation or examples are up to date
My link from above is probably the closest thing you'll have to something "updated".
can anyone help me please. I did a fresh install of obs and se live. cant log in to twitch or any other sites through either one. everytime I try to log in it starts the process then just goes to a black webpage. I have no add blockers, no firewall issues, cleared web browser cache, uninstalled and reinstalled both programs. I tried this on both PC's I have with the same results. gpu and OBS is up to date.
Thanks this will be handy - and maybe I'll just try to build it with the normal "custom widget" section in the overlay editor instead as there seems to be more tutorials for it
That's mainly because unlike Elements the "legacy" editor/overlay system is what's used by 99% of coders/community devs here.
BTW don't bother to apply/requist for a Oath, 99,9% gets rejected🥴 sadly
Hey, quick question. Is there a way to dynamically generate fields with like an "add another" button instad of having to statically set them? I have a use case where I have an unknown number of fields, but I toss in an arbitrary number of them which is hopefully enough.
Unfortunately, this is not possible.
Ok, didn't think so but was hopeful.
hi anyone do u know how to fix it? :>
I have updated the obs version and streamelement version but it's still like this
does anyone know how to make !top show the top 5 points instead of the link?
Hey! Any updates on not being able to see your Twitch viewer count on the new layout for OBS Studio? Not sure why that was removed but I’d like to see it again
That's probably a question for the OBS discord.
!top command doesn't show the link, it shows the top 5 users on the leaderboard. If your command is showing the link, it means you have a custom command with the same name.
Disable the custom !top command from your command list and enable the default !top command.
Hi guys, i want to ask. I currently developing a widget triggered when viewer redeem chanel points, is there any way to try the feature channel point integrate with my widget? while i dont have the access to channel steam point since my twitch account still not pass the requirement to use channel point. Thank you in advance for the response.
Here's how you can emulate Twitch Channel Points / redemptions when your channel doesn't have support for them.
This method won't update any values or appear in the Activity Feed, it's only for testing your widget.
- Create a button on your widget FIELDS tab:
"emulateButton": {
"type": "button",
"value": "emulate",
"label": "Emulate channel redemption",
"group": "Emulation"
}
- Create the custom event in the JS tab that triggers when you click the button:
window.addEventListener('onEventReceived', function (obj) {
if (obj.detail.event.listener === 'widget-button' && obj.detail.event.field === 'emulateButton') {
let emulated = new CustomEvent("onEventReceived", {
detail: {
listener: "event",
event: {
activityId: "68e78a6ab7a651caf3a8cfb7",
channel: "1234567890abcdefghijklmn",
createdAt: Date.now(),
data: {
amount: 1,
avatar: "https://cdn.streamelements.com/static/default-avatar.png",
displayName: "StreamElements",
message: "Emulated message from emulated channel points redemption"
providerId: "123456678",
quantity: 0,
redemption: "Emulated Channel Redemption",
username: "streamelements"
},
expiresAt: Date.now(),
flagged: false,
provider: "twitch",
sessionEventsCount: 1,
type: "channelPointsRedemption",
updatedAt: new Date().toISOString(),
_id:"68e78a6ab7a651caf3a8cfb7"
}
}
});
window.dispatchEvent(emulated);
return;
}
});
- Just click the button in the left panel, and the event will be triggered.
Thank you so much, i will try this ✍️
Is there any way to make a separate control panel for a widget that could be loaded as a dock in OBS? I was hoping to be able to use urlSearchParams to show a controlpanel from the same widget but it looks like you don't have access to it
I believe it’s an issue with the StreamElements activity feed which is why I asked here. It used to show viewer count and now it doesn’t with the new layout.
it shows the link tho
How do I connect my Ko-Fi to StreamElements for my donation load bar?
Is there a limit to how many users I can add points to with a single call to the bulk points add API ?
I believe the only constraint is the body size. As a test, I've just run a request with 2001 users (around 100 KB of data), and it worked fine.
Hey there, Im trying to set a custom command for !time that replies with a 12hour clock but it shows up like this: Current Time:
StreamElements: unable to make request
Unfortunately that community member who made that is no longer on the server but I can recommend this in return as an alternative https://docs.decapi.me/misc?endpoint=time
Documentation for the project DecAPI, a custom API provider intended for Twitch chatbots.
This is what i did and...
...this is what i got
I kinda look stupid rn but if there's anyway u can help me outta this situation, it'll be greatfull!
misc/time?timezone=111111/2222222&h:i%20A
Replace the string of numbers with the above timezone
string of number... you mean, from 1 to 20?
or from 1 to 2
$(customapi https://decapi.me/misc/time?timezone=America/Toronto)
You're lucky I previously asked owner about this endpoint 
Hi everyone, I have the following problem: Every time I start OBS with the plugin, I get an OBS crash message. The main problem, however, is that all the changes I make in OBS aren't saved after closing. Does anyone have a solution for this?
It's actually caused by the SE Live plugin, because if I disable it, the errors disappear.
@glossy monolith current latest se.live is built for obs-studio 31.1.2; if you run a newer version of obs-studio, you can get a crash on exit
I have already downgraded, but unfortunately it happens there too
@glossy monolith to what version?
31.1.2
@glossy monolith post logs (help > log files > upload current)
In the meantime, I upgraded to the latest version because the errors were the same.
hello im trying to make a widget idk how to code so i asked chatgpt to make it for me and it got it to basic, i was wondering if anyone who knows what they are doing could look at the code and see if they could make it work the right way?
Hey c4ldas! You helped me a while back about fetching the activity feed settings but I've never managed to integrate this, does this solution accept oauth tokens? Thank you!
Just as a reminder, I'm trying to fetch what the channel settings are regarding the activity feed, I'm successfully listening to the changes of it using astro, but I'm struggling to find a way to fetch them on page load
It doesn't, only the tokens mentioned (jwt and overlay token) are accepted. But since you have the oAuth token, you can get theapiToken from /channels/me endpoint.
https://c4ldas.github.io/streamelements-api/#/operations/Get/channels/me
From there, just use Authorization: apikey your_apiToken_here on the kvstore alerts endpoint.
Thank you so much! I understand now! I really appreciate you always taking time off your day to help me. Means the world, thank you again!
While editing (and also previewing) an overlay widget for one streamer, I'm getting a huuge delay before the onWidgetLoad event fires. Like, 6 minutes. Weirder is that the exact same widget in someone else's account has no delay.
Is this something my widget might be doing poorly, or is it a quirk?
The beginning of the code:
let goal, fieldData;
let botPoints = 0;
let sessionData;
// Array of {points, name}, in increasing points order.
let goals;
console.log("WIDGET CODE LOADED");
window.addEventListener('onWidgetLoad', function (obj) {
console.log("WIDGET LOAD", obj);
...
Hey! I wanted to ask if there is a way to test the donation channel event api without literally having to donate to myself?
seSocket.on("open", () => {
console.log("Connected to StreamElements WebSocket");
const subscribeMessage = {
type: "subscribe",
nonce: uuidv4(),
data: {
topic: "channel.tips",
room: channelId,
token: jwtToken,
token_type: "jwt"
}
};
seSocket.send(JSON.stringify(subscribeMessage));
});
seSocket.on("message", (data) => {
const message = JSON.parse(data);
console.log(message);
if (message.type === "message") onMessage(message.data.donation);
});
would love the help so I don't have to resort to building my own "fake donation" creator
@feral quest you own a streamdeck by chance?
I assume you've got an Android or IOS device right?
I thought of another way that may work but requires a phone.
sure what is it?
You'd need do install the streamdeck mobile app and connect to a PC with the streamdeck app installed.
Yes complicated but the only immediate thing I know and can work with.
Short of having an actual SD.
wait and do waht exactly?
This.
I have a premade way that uses the streamdeck and can test this.
Granted it's more towards testing if an overlay is working right but probably no different than what you want.
I still don't get how that will simulate donation events from my Streamelements api
Touch button on SD. It sends API call to endpoint to simulate an action for that eevent type.
But as i said it's mainly useful for those checking if an alertbox is working how they want it.
Wait
I just need to listen to donation events
I'll actually poke @severe shell since he might be the better person to answer tbh.
I have a feeling there is no way to test websocket events.. I'll actually have to donate to myself everytime I wanna test.
but I'd love to be wrong
the only time were I loved eating my words!
thank you
I tried it I got no donation event on my node js
I tried a real donation and works fine
I made sure it was "imported"
It should work. When you check the import option it triggers a real event. That even how tips are created using the API for custom donations
Do you see both donations in the revenue history page? If not, that means you are not testing the same account.
am I subscribing to a wrong event maybe?
'channel.tips'
well I only have one account but yes. I see it on my history page.
and when I replayed it it showed it was replayed in the activity feed
Not sure how it is right now (I also can’t test it right now), but some months ago I tested that event and it wasn’t working correctly.
#dev-chat message
channel activities you say?
lemme check
sadly it doesn't have a message field.. which is the whole point of my logic
I can only check if someone tipped.. so I can't use it for prod
but I'll test if it does anything with replaying donations
okay that works
so it's just that SE doesnt eventate imported donations
eventate I just made that up
Something is wrong, then. Imported events should be triggered since they are considered real events.
Third-party tipping platforms use this approach (in the API) to generate events on SE.
The part you create a new event on tipping history page and select the imported option. It should work and show as a real event.
Or via API (which is what the tipping history page does in the background)
wubtitles-app | {
wubtitles-app | id: '01K7RRXGMEBHS83X97ZNFA8H6Q',
wubtitles-app | ts: '2025-10-17T09:44:49Z',
wubtitles-app | type: 'response',
wubtitles-app | nonce: 'e2f70708-b737-435a-8a55-e34c89a0c304',
wubtitles-app | data: {
wubtitles-app | message: 'successfully subscribed to topic',
wubtitles-app | room: '6771c5949855653eb0b326e7',
wubtitles-app | topic: 'channel.tips'
wubtitles-app | }
wubtitles-app | }
You can see that I correctly subscribe to the event
and when I "for real" donate. it works. (I'm up to 6 dollars now)
But importing/replaying a donation does nothing
I made sure I checked imported
I’m going to try to test it on my side as soon as I have some time and let you know.
But definitely you shouldn’t have to spend money to test that. Something isn’t working as expected.
thanks alot! also the money logically comes back to me after transaction fees no?
I've never gotten paid from SE yet so idk much
Yeah, but you are still giving some cents to PayPal for each donation 😞
wait this is another topic now but where do I see where I get paid?
just making sure I have things set up correctly.. I did the setup once but never saw it working yet
It’s sent to the PayPal account (in case you’re not using SE.Pay)
That's for sponsorships/merch.
Actually I still think that would carry SE.Pay. stuff.
If you’re using SE.Pay, then you need to request the payment when it reaches a threshold, a believe
Actually no. SE.Pay is here https://streamelements.com/dashboard/se-pay
Sorry for taking so long, I noticed I didn't even have Node or anything installed (recently formatted OS).
I have just tested with channel.activities and it shows the message field:
import WebSocket from "ws";
import { v4 as uuidv4 } from "uuid";
const ACCOUNT_ID = "YOUR_ACCOUNT_ID";
const TOKEN = "YOUR_TOKEN";
ws.on("open", () => {
console.log("Connected to StreamElements Astro");
const subscribeMessage = {
type: "subscribe",
nonce: uuidv4(),
data: {
topic: "channel.activities",
room: ACCOUNT_ID,
token: TOKEN,
token_type: "jwt"
}
};
ws.send(JSON.stringify(subscribeMessage));
});
ws.on("message", (data) => {
const message = JSON.parse(data);
console.log("New activity:", message);
});
Here is the response after adding a new tip from revenue history page:
New activity: {
id: '01K7SARY6W43GY3RE98P98BMMF',
ts: '2025-10-17T14:56:53Z',
type: 'message',
topic: 'channel.activities',
room: '5f2de5dd9a474a2c2dc4d0ab',
data: {
type: 'tip',
provider: 'twitch',
channel: '5f2de5dd9a474a2c2dc4d0ab',
createdAt: '2025-10-17T14:56:53.420Z',
data: {
amount: 15,
currency: 'USD',
username: 'testUsername',
tipId: '68f259357945c1f0aee7f3d7',
message: 'This is a test message from imported tip',
avatar: 'https://cdn.streamelements.com/static/default-avatar.png'
},
_id: '68f25935b0723e477a5a79a2',
updatedAt: '2025-10-17T14:56:53.420Z',
activityId: '68f25935b0723e477a5a79a2',
sessionEventsCount: 8
}
}
And channel.tips still isn't working for that, don't know the reason.
im trying to make a all in one widget that combines subs bits and tips into one progression bar,
this is the code ai gave me it but it dont work right
okay so activities do get you the message
My suggestion:
If you don't know how to code (and don't want to learn), the best start is getting a widget that does something similar to what you want. #widget-share channel has some you could check.
Check how the widget works, what it does and what it doesn't.
From there you can send the widget code to ChatGPT/Gemini/Copilot/etc (HTML, CSS, JS, and FIELDS tabs), explain what it does and what feature you want to add.
You can also send these pages to the AI assistant, so it can have some documentation material:
https://docs.streamelements.com/overlays/custom-widget-events
https://docs.streamelements.com/overlays/custom-widget
Here some widgets you can check and install:
One Bar To Rule Them All
#widget-share message
Hype Goal
#widget-share message
All-in-one rotating goals widget for Twitch, Youtube or Facebook
#widget-share message
Hype goal bar
#widget-share message
Hi all 🙂
Asking this here as most regular SE users will not understand what I am talking about 😄
I used to have a REGEX to detect "non standard" or non-English characters and block them from chat. It used to work fine but it looks like the REGEX processing has changed so my code no longer works.
Can anyone advise on the syntax my old code would need to be now please ? My old one was........
[^\x{000000}-\x{0000FF}\x{00200A}-\x{002055}\x{0020A0}-\x{0020CF}\x{002600}-\x{0027BF}\x{00FE00}-\x{00FE0F}\x{01F300}-\x{01FAFF}]
but now shows as............
I remember the banned words filter used to mention that the regex followed Google RE2, but it never specified the exact context. I'll ask internally and see if I can find an answer for that.
In the meantime, this is the closest equivalent for Google RE2:
[^\u0000-\u00FF\u200A-\u2055\u20A0-\u20CF\u2600-\u27BF\uFE00-\uFE0F]
But, according to ChatGPT, RE2 doesn’t support ranges for high-plane Unicode characters like emojis (U+1F300–U+1FAFF), so this pattern won’t filter emojis.
Now this weird !!! I just did a test and apparently my code DOES still work, but it's being reported wrongly (as being invalid syntax) 😮
Good! So it seems to be a frontend thing 😄
Where's the best place to mention this or can you pass this on to someone maybe ?
I'm sending a message to them right now 🙂
tyty 🙂
hay guys i want to add chat box to my stream in obs i used the streamelements add new overlay but the stream tools option is not showing why is that
Is there a unique identifier for users related to all socket api events that is not the username?
for instance, the channel.chat.message topic:
{
"id": "01JY3ZPEVXTM7RZ0X7FXP1STCT",
"ts": "2025-06-19T11:37:58Z",
"type": "message",
"topic": "channel.chat.message",
"room": "5f2de5dd9a474a2c2aaaaaaa",
"data": {
"broadcaster_user_id": "28050000",
"broadcaster_user_login": "exampleuser",
"broadcaster_user_name": "exampleuser",
"source_broadcaster_user_id": "",
"chatter_user_id": "28057703",
"chatter_user_login": "exampleuser",
"chatter_user_name": "exampleuser",
"message_id": "caf9fb9a-a702-486e-92f1-0c60a3a28f38",
"color": "#8AE020",
"message": {
"text": "Test message with emote <3",
"fragments": [
{
"type": "text",
"text": "Test message with emote ",
"cheermote": null,
"emote": null,
"mention": null
},
{
"type": "emote",
"text": "<3",
"cheermote": null,
"emote": {
"id": "555555584",
"emote_set_id": "0",
"owner_id": "twitch",
"format": [
"static"
]
},
"mention": null
}
]
},
"cheer": null,
"badges": [
{
"set_id": "broadcaster",
"id": "1",
"info": ""
},
{
"set_id": "subscriber",
"id": "3012",
"info": "55"
},
{
"set_id": "share-the-love",
"id": "1",
"info": ""
}
],
"message_type": "text",
"reply": null,
"channel_points_custom_reward_id": null
}
}
and the channel.tips topic:
{
"id": "01JMFBZF7KSRDDXXV0EH7G8X6G",
"ts": "2025-02-19T15:07:17Z",
"type": "message",
"topic": "channel.tips.moderation",
"room": "5ad23dcc18fff500d78c5348",
"data": {
"donation": {
"user": {
"username": "Styler",
"geo": "ZZ",
"email": "styler@streamelements.com",
"channel": "5ad23dcc18fff500d78c5348"
},
"message": "",
"amount": 4.2,
"currency": "USD",
"paymentMethod": "scheme"
},
"_id": "67b5f39d07ecd4c594e60f73",
"channel": "5ad23dcc18fff500d78c5348",
"provider": "paypal",
"approved": "allowed",
"status": "success",
"createdAt": "2025-02-19T15:07:09.302Z",
"updatedAt": "2025-02-19T15:07:17.099Z",
"transactionId": "2YH79902JR1691017"
}
}
Both show the user details but nothing is really unique that exists acros either except the username field.
Is there a way to make sure of tracking who donates so I can show recognize later when they chat.
a unique identifier across both events
You have to lock the user to their platform login credentials
https://streamelements.com/dashboard/tipping-settings > Page settings > "Require viewers to log in"
I do have that set up.
is there no mock data to how that could look?
Hello, hello. I'm looking for some assistance with a particular problem. I'm new to referencing events and things, and also pretty inexperienced with JS. I understand what I'm trying to do, conceptually, but getting that to reflect in my code output is the issue.
//This is used to make referencing the bar I'm trying to modify more convenient.
const fBar = document.querySelector("#mpInner");
//Executed when widget loads and defines initial values.
window.addEventListener('onWidgetLoad', function (obj) {
let data = obj["detail"]["session"]["data"];
let fieldData = obj["detail"]["fieldData"];
//Omitted Timer functions to shorten code block.
gProg(data);
});
window.addEventListener('onSessionUpdate', function (obj) {
let data = obj["detail"]["session"];
gProg(data);
});
//This is the part I'm confused about. I'm trying to figure out how to reference the follower events to update the goal bar's width. This was one method I stumbled upon, and I was wondering if I shouldn't just try to do that within the above event listener? Regardless, I can't seem to get the values to update when I emulate events on the SE widget builder. Any and all help would be appreciated. I've tried referencing multiple different things as strings and integers, and I can't seem to figure out which one actually works, since none of them seem to be doing the job.
let gProg = (obj) => {
let count = parseInt(data["follower-session"]["count"]);
let gValue = parseInt(data["followGoal"]["value"]);
let p = (tSeshFol / gValue) * 100;
let tSeshFol = count + parseInt(data["goalProgress"]["value"]);
if (tSeshFol >= gValue) {
p = 100;
}
fBar.style.width = p + "%";
};```
Upon further inspection, it seems that the emulated events are not updating the data for me, so I may have been right somewhere along the way. I tested this out with some premade code that's known to work, and got the same result of nothing updating. If anyone has an idea on what to do with that, instead, I'd appreciate it.
Hello i'm new here just want to ask, why my tiktok acc get banned for no reason. I can live in my phone but not in OBS they say i don't have access anymore and should wait 7 days. Can anyone help me to remove the banned please?
Unfortunately, emulated events don't trigger onSessionUpdate, so it won't work for your case, it needs real events.
If you want, you can create a "real" event using this endpoint, replacing the body with the follow example (and removing the comments):
https://c4ldas.github.io/streamelements-api/#/operations/Post/activities/:channel
Since you said you're inexperienced with JS, I believe you aren't with API requests either. In this case, I suggest that you read here to understand how to get the Channel Id and Token:
https://c4ldas.github.io/streamelements-api/#/#how-to-use-it
Your request panel should look like this (of course, using your own token and channel id):
And then, click on Send API Request button and that should generate a new "real" follower notification
We don't have access to that information, you'd need to contact the staff through tickets. Maybe they can help you.
@copper stirrup ⤵️
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.
Okay man thanks for the information i'll try
hey random question how do i get multi chat working and is there a way to get a overlay for both chats
Would the outcome be any different if I used onEventReceived?
Q: How (if possible) can I add a image to my widget(s) in My Overlays screen ?
I have sent multiple https://api.streamelements.com/kappa/v2/bot/{channel}/say post requests and while I keep getting status 200 and a correct body, My twtich channel is empty. There's nothing being actually said.
or am I mistake about what this does?
having serious issue. I have messaged and emailed you. Tik tok has emailed you, my agent has emailed. Can you please turn back on my tiktok studio access its already been aprroved, its just wating on you
Well, using onEventReceived you won't be able to get the Session data, and you will need to make the calculation for every event. So, if the widget reloads, you will need to have that in mind.
I noticed if the chat is empty for too long, the bot sometimes doesn't send anything on chat. Try to send some messages on the chat, run some bot commands and then check if that solves it.
Not natively. You would need to find a custom widget for that.
I appreciate the assist. I tried the API request that you mentioned before and was able to send the simulated follower events. I'm just struggling to figure out how to get the bar to update after the event comes through. Would I need a setInterval situation or should it be updating based on the event listener?
I'm really just trying to make a custom follower goal tracker to get a feel for how I'm supposed to be utilizing the data and events in the JS.
Edit: I noticed you also mentioned onEventReceived won't give you session data, so I'm basically trying to figure what's the appropriate approach for what I have in mind.
Don’t think you need a setInterval. You can check the object on browser console and just update your widget based on the follower count.
Inside the onSessionUpdate, put a console.log(obj) and you can check it in the browser console (usually F12 or CTRL + SHIFT + J to open it)
If I were you, I would collect some goal widgets from #widget-share , check how it works visually, and then look at the code to try to modify it (that’s how I started learning).
Another thing you can do is send the code from any widget that does something similar to what you want to an AI assistant, explain what it does and ask to modify it to make what you want.
Most goal widgets follow the same logic, so sometimes it’s just a copy and paste thing.
Thanks for the reply but I realized the plugin was too rough to run without crashing found something else to do the job
Much appreciated. I actually learned the console.log method you mentioned earlier, so I think I'm gonna give it another try in the morning when I'm not too tired to function. I appreciate all the help and suggestions.
Anyone know how I stop the weird 1st "event" from happening.
http://shared.cynocl.es/20251025163327.mp4
Designing an overlay for Arc Raiders to blend in nicely.
@severe shell I figured out what I needed, plus some more unexpectedly helpful info based on your feedback. I appreciate it. 
To summarize, I was originally trying to set a number and then update it every time onEventReceived was triggered, which, thanks to your help and multiple tests while reading the SE widget info doc, I figured out was better for displaying event types and details outside of what I was trying to actually monitor with the bar.
Initializing it with onWidgetLoad and updating it with info pulled from onSessionUpdate was the solution, but I had to make sure my functions were in the right place, which ended up being another issue I resolved by taking your advice on looking in #widget-share.
I am still curious about that object.detail.event.amount usage, but I'll leave that struggle for another day. 😅
Hello. I have made my own Spin Wheel, but i cant add my own song to play while spinning the wheel, anyone know how to fix this?
omg this should really be in the docs. Would've saved me some precious time.
I think I have asked this question before, but the answer was there is no way to share an overlay without a 3rd party tool. But I see links like this https://streamelements.com/dashboard/overlays/share/62e74ad8bda22356ed4304ef/ which suggest theres a way to share overlays NOT just widgets. Can anyone shed light on this?
I also wanted to talk about the bot:counter event. It does not seem to notify. The text widget appears to work, but I was hoping to just use raw JS to accomplish a widget.
Are you stuck wanting to use this widget in the current format? I have recreated multiple wheels based on the PJONP wheel which has a ton of customizations including the on tick sound.
What text widget are you talking about? What do you want to be notified?
Ok, so the feature doesnt exist anymore, shame. I dont particularly like the Elements option. Testing it out on that page is a pain. I really just wanted to share my overlays/widgets. I do like your tool, and its simple enough, but is a 3rd party and I was wanting to avoid more moving parts. Really wish they would bring back sharing of overlays.
SE has a Bot Counter widget in the overlays builder. That is also exposed with the API as an event called bot:counter. Playing with that event, when the counter is updated the event is never called. Wondered if I was doing something wrong or it is now deprecated. Even logging all events I do not see it. However, their Bot Counter updates just fine.
Use case is obviousely a counter of some sort, but I would like to avoid having to overlay the counter object on the HTML/CSS counter disolay I am making. Instead just have a hook on the event to update the DOM.
Wait a sec, maybe a false alarm on this... I went to review what i was doing, and added the counter and started incrimenting it. It appears the event is working. I removed the widget and tried again, and it didnt work, I saved and reloaded and it works still. So, i think it has something to do with the way the page was loading? Not worth tracing, but it does appear as if that event will work on page load.
A lot of things are pending on the official documentation, unfortunately 😅
I created my own version, if you want to check. I have just added that info.
https://c4ldas.github.io/streamelements-api
You can see it using onEventReceived:
window.addEventListener("onEventReceived", async (obj) => {
if (obj.detail.listener == "bot:counter") console.log(obj);
});
If you want to check the current value of a counter at the start, you can use SE_API.counters.get() on onWidgetLoad:
window.addEventListener("onWidgetLoad", async (obj) => {
console.log(await SE_API.counters.get("YOUR_COUNTER_NAME")); // {"id":"YOUR_COUNTER_NAME","count":4}
});
Thank you very much, I wish I knew about this sooner. Thanks for your work!
Yea, I was doing this, it wasnt updating until I saved for some reason. Thanks for the input though.
hello! i have a question regarding custom chat widget customization. ive set it up fully and customized what i wanted, but one obstacle ive hit that i cant seem to figure out is how to make the username box background color the color of the username, instead of the text. i've messed around in JS but i havent found any luck, so i thought id ask here. any help would be greatly appreciated!!
Just set a class for the username div/span, and apply a background-color to it.
https://www.freecodecamp.org/news/html-background-color-tutorial-how-to-change-a-div-background-color-explained-with-code-examples/
oh that makes a lot more sense than what i was trying LOL, thanks for the tip!! ill come back if i run into any other issues
i assume that i can grab the username color the same way as in js? or do i have to do it differently
From the chat message, you can check the username colour from obj.detail.event.data.displayColor or obj.detail.event.data.tags.color. In case the user doesn't have any colour set, those properties won't exist (or they will be empty, not sure).
https://docs.streamelements.com/overlays/custom-widget-events#chat-message
i see yeah! then how would work to transfer that variable to html for it to use it? or should i use the html inside js where the html parsing happens?
if it helps my base code comes from justlx's customchat
Which one, exactly? That would help a lot, actually
this one right here
there is little i changed in the js since most of my changes were to the css for appearance, so thats mostly what you can go off of
Lines 101 to 104. You already have that. Just change the color:${color} to background-color: ${color}
...HOW DID I NOT THINK OF THAT
you sir are a lifesaver
thank you so much for your patience haha i cant believe i overlooked that variable
Sometimes we are too focused in a specific thing and we forget to look at some basic things. It's good to have someone from outside for that 😄
exactly 👏 that truly is the life of a programmer lolol
have a nice day and thanks again!!
On SE where do I find the type variables available to use uploaded sounds / images to SE
Tried image-input but its wanting a link, I wanna use SE's uploaded images.
nvm Im stoopid
had an extra I in image
Now to figure out why TF audio queue's wont trigger 
Anyone able to assist I cannot for the life of me get audio to work 🙁 and Im so damn close to have my ARC Raiders alert working.
i want to use stream elements to make a custom chat from scratch with badges emojis what platform there watching on and much more how can I do this
- Get some chat widgets from #widget-share, check their codes and see what they do.
- Check the overlays documentation here: https://docs.streamelements.com/overlays
- Chat message objects can be seen from onEventReceived, inspect the objects for each platform and take whatever you want from there. Different platforms have different message structures.
- Use the search on this channel, there are many questions answered here.
- If you have any specific questions about custom widgets, just ask here.
Well, you could give more details, we don't know what the problem is.
BREH ITS CODE PASTE 
Oka pardon the spam... >.< forvive me SE bot
Iv got this little chunk of code for trying to play the audio iv got uploaded to SE
function getSoundURL(field) {
if (!field) return "";
if (typeof field === "string") return field;
if (field.sound) return field.sound;
if (field.value?.sound) return field.value.sound;
if (field.value && typeof field.value === "string") return field.value;
return "";
}
function getSoundVolume(field) {
if (!field) return 1.0;
if (field.volume !== undefined) return parseFloat(field.volume) || 1.0;
if (field.value?.volume !== undefined) return parseFloat(field.value.volume) || 1.0;
return 1.0;
}
function playSound(field) {
const url = getSoundURL(field);
const volume = getSoundVolume(field);
if (!url) return;
try {
const audio = new Audio(url);
audio.volume = volume;
audio.play().catch(err => console.warn("Autoplay blocked:", err));
} catch (err) {
console.warn("Failed to play sound:", err);
}
}
Iv got this in fields for each of the sound bites subSound etc
"followSound": {
"type": "sound-input",
"label": "Follow Sound",
"value": ""
},
An this in data as its a static value
"followSound": "https://cdn.streamelements.com/uploads/01k36j1ddj9k0pmpepy20kex7m.mp3",
and this listener for the follower alert
if (listener === "follower-latest" && fieldData.enableFollow)
showAlert(username, "NEW FOLLOW", fieldData.followColor, fieldData.followSound);
if (listener === "subscriber-latest") {
if (months > 1 && fieldData.enableResub) {
showAlert(username, `RE-SUB X${months}`, fieldData.resubColor, fieldData.resubSound);
} else if (fieldData.enableSub) {
showAlert(username, "NEW SUBSCRIPTION", fieldData.subColor, fieldData.subSound);
}
}
Not sure what im botching but I got all the visuals but no audio.
I initially though it was because of a possible missing "volume": "" field but according to the docs "value": "" dictates the volume coz SE handles the widget schema.
Hope that helps, be gentle im a amature... (probably noticable via the sloppy code).
Website got auto-whitelisted after bot did a cursory look at it.
Should be good to go from now on.
whelp too late now Iv spammed the channel xD but good to know lol.
I have a quick question. I want to make a really customizable chat for my stream with all the features that anybody could want and ask for but I have no idea how to code and I'm going to do it in visual studio using the AI. How do I set this up?
Oka, Audio works in OBS but not in browser... anyone any suggestions?
No im not, can you send me some info in PM? When i google PJONP wheel i get stuff for fishing 😛
sir, u can make chat for bahasa
Did you read the Browser Console?
If there is a message telling you that the user has to interact with the page first, that's expected. OBS disables that restriction.
Hello, I created my alerts using Streamelement. When I emulate an event, the alert appears correctly in OBS, but there's no sound. My sound settings are correctly configured.
What could be causing the problem?
👍
Hey!
I’ve seen several streamers (kaicenat, stableronaldo and more) who have a !setgoal or !subgoal command that automatically updates the goal number shown on their sub goal widget.
Right now, I’m using a label that shows the current sub count like {count}, and then I’ve manually added /250 for my goal. But I’ve noticed that some streamers can change that goal live — for example, if a mod types !setgoal 300, the widget updates from /250 to /300 automatically.
I’ve looked into the streamers commands and they are using something like ${count subgoal ${1}}, so I’m guessing that’s part of it.
Could anyone please explain how I can set this up, so that my mods can change the sub goal number (e.g. 250 → 300) without me having to edit it manually in the overlay editor (like this !setgoal 300) Thanks a lot!
Overlay editor > + button > Labels > Other > Bot counter
In the Message field, put the name of your counter wrapped by curl brackets, i.e.: {subgoal}.
Every time you update that counter, the value will update on the editor.
thank you for the help, i think it works now
my timers havent been working for some time now. i changed the intervals to 1 minute 1 line and it works. switched it back to a more suitable time/line and nothing. Can anyone please advise??
Where in the new StreamElements UI can I find the Share overlay (or Share widget) option for a Kick-only account to generate a link that opens the Create/Add overlay import flow in StreamElements, instead of the current button that just opens the chat in a new window?
I don't see a share button
Overlays and Elements are 2 different systems.
The sharing an overlay for friends/public is not available any more and only possible with elements.
Hello ! We Still can't add delay on outputs no.. ?
Okay, so which API site is actually the correct one that developers are supposed to use? https://docs.streamelements.com/websockets https://dev.streamelements.com/docs/api-docs/5a84cc101a9c5-connecting-via-websocket-using-o-auth2 They both have completely different endpoints and information on what messages will return. I implemented it based on https://docs.streamelements.com/websockets and the API returns data in a completely different format than specified.
Both of the docs links in the topic of this channel 404 too lol
https://dev.streamelements.com/docs/api-docs/bcd899e16ac9a-se-api-docs loads just fine for me.
As do the other two
Hah they do now, but two minutes ago "The service was unable to fulfill the request. Should the problem persist, contact Stoplight support."
Hi
They are different implementations for real time communication between SE and your application.
The one from docs.streamelements.com (Astro) uses the Websocket API.
The one from dev.streamelements.com (Realtime) uses socket.io, which is a library that simplifies real time communication. It uses websocket, long pooling and webtransport.
You can use either of them, both are correct, but they provide different responses.
@severe shell is this legit or scam?
You can always check here or create a ticket here to verify it.
Thanks!
If you see the same in your dashboard then yes.
editing my alers not going in detail with it as i just wanna set it up for now and i cant figure out how i can make the next take a new line, i want it to cut off stream and the with amount viewers be below it, ive tried putting \n and <br> but it just shows them
i would delve into the custom css coding but id have to start from scratch and i dont know how to link the alert i have that i uploaded to streamelements' assets
Just press Enter
for me it auto codes in a <br>
its barely seeable but it has a tremendous gap without any coding or custom stuff
did use enter btw and it does that large <br> gap
Scroll down to "Text settings" and check the "Line height". If it has any value, delete. Or you can test adding any decimal number
line height worked ty, it was miving it down so i though it was like padding
There is no padding, but you can set the margin. In "Text settings", go to the "Advanced" tab and you will see the margin options.
My suggestion is that you set the alert duration for a longer period temporarily before playing with the numbers, so you can see the alert moving while it is still active
When devs are going to add 18+ Audience Control from TikTok?
I have not heard any plans to include it.
Because Streamlabs already have that option
Submit a ticket and ask for it; I haven't seen any requests to implement it yet.
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.