#dev-chat
1 messages · Page 13 of 1
Thank you. I'll give it a go
i ended up writing an API server to do what i wanted rather than trying to implement state management in various custom commands lol
I guess I should ask. If you wanted twitch chat to not say Streamelements, you had to create another channel name and create a custom name etc. is there an easier way now?
That's still the same. You can also use your own account for that, so the bot will reply with your username.
That didn't change
I have the old channel I used it for from before, but they made it difficult... :/
Banned account?
how does one set the chatbot to use one's own channel name?
i don't see that setting
Not at all. I shut it down two years ago. I was a competitive player and was burnt out. Now I want to rebuild from scratch (same channel), but take things way slower now.
Oh good! Hope you get back to your old times! đ
We will see. I peaked at 60k. Had it pretty good for a while. Now I have 1400. With a handful of active viewers. Gotta long road ahead, but I've missed it. So, here's hoping!
is it possible to privatize the custom commands list? i don't want to expose a custom api url
nm, apparently it strips that out for everyone but me. đ
You can also make it private as an additional measure. Go to the command list on your dashboard (https://streamelements.com/dashboard/bot/commands/custom), look for the command > advanced settings and check the option "Hide command from public pages"
i actually do want that available as long as it's not exposing the api url
The command will be available to use, but if any of your mod types "!cmd show YOUR_COMMAND", it will show "This command is hidden" on the chat as well.
Does anyone know how to do this ? Like there is an automatic system where viewer use !clip command in YouTube live stream and nightbot response like
Clipped successfully by xyz you can see these clips in xyz link
And there is an bot or app that upload these clips in a specific channel of discord
Well, there is a website on the command response, did you check that page? There is a video explaining how to do that.
Does anyone know if the new Elements widget support multistreaming? For example if I have one element which handles the chat for my profile on twitch, if on my SE account the youtube channel is linked too, I get the message event from youtube too? If it's already working for someone, is there something I need to do to allow multiple chat from multiple platforms? Or this is not an intended feature and I have to find a workaround
I added two different elements in the two different profiles, one on twitch and the other on youtube (se profiles) and they work for each platform, but is there a way to get the chat event on the same element from two platforms?
Ok my bro â€ïž I'll check
And sorry đ I didn't notice that I was asking a nightbot question in streamelements discord channel đ don't kill me
Ive been looking for a multistream Event widget for both YT and TTV all in 1. For follows, subs, yt subs, superchats etc. Been looking for ages but no luck
mm, so I think I'll do it by using the main overlay for twitch profile, then i'll use some api to get messages from youtube lives on my channel, which I configure with the control panel from the widget
It would be fantastic if already integrated within SE
for youtube this would be very good https://www.npmjs.com/package/youtube-chat
this library can also show more stuff than a simple message
author: {
name: string
thumbnail?: ImageItem
channelId: string
badge?: {
thumbnail: ImageItem
label: string
}
}
message: MessageItem[]
superchat?: {
amount: string
color: string
sticker?: ImageItem
}
isMembership: boolean
isVerified: boolean
isOwner: boolean
isModerator: boolean
timestamp: Date
}
If someone needs multistream events
ok back on this, actually this can't work only with a browser context (using some libraries that fetch data from the channel), I would need a server running because of CORS policies.
My solution is to create an element, named "youtubeProxy" for my youtube linked profile and I add that element to my obs scene like a normal one. The code for this one is this:
export class ChatProxy {
private readonly broadcastChannel = new BroadcastChannel('chat-proxy');
constructor() {
window.widget.events.on('chatEventReceived', (event: ChatEventPayload) => {
this.broadcastChannel.postMessage(event)
});
this.broadcastChannel.postMessage("ChatProxy is ready");
}
}
Then I would have my overlay which is the complete chat stuff and it would listen to this broadcast channel, which is a way to communicate with the browser within the same origin, here's the example
window.widget.events.on('chatEventReceived', (event: ChatEventPayload) => {
let {connectedPlatform, chatMessage} = event;
this.processMessageEvent(connectedPlatform, chatMessage);
});
this.broadcastChannel.onmessage = (event) => {
console.log("ChatWidget (PROXY) received message", event);
let eventPayload = event.data as ChatEventPayload;
let {connectedPlatform, chatMessage} = eventPayload;
this.processMessageEvent(connectedPlatform, chatMessage);
};
and this actually works even for other events for any platform
Streamelements has its own endpoint to get Youtube chat messages (for your public livestream), maybe you are interested in that:
https://c4ldas.github.io/streamelements-api/#/operations/Get/widgets/:channel/youtube-chat
this is very useful, thank you
I've done a few discord searches (heh, as great as they are) regarding multistream (which has been working pretty good!) and more options (re: Bitrates) for TikTok specifically. I know its not available now but I was wondering if it was on a roadmap perhaps? Thanks!
Unfortunately, we don't have that answer. The staff didn't say anything related to that
I saw a stream having peoples Fortnite rank show up on their screen when people subscribed and they used SE to do so. How does one do this type of feature?
Good afternoon everyone, I am currently creating a custom TTS. What other options besides speechSynthesis are available for TTS? Thanks in advance
Can somebody just enlighten me something about the Elements beta? I have the Hello World files, but I'm really confused about composite fields. Are they the recommended method for injecting HTML into the widget or can I just modify the included HTML file? I'm trying to create my first widget based on the combined chat feature, and it seemed like a better choice than trying to shoehorn in extra chats in an overlay
Where would I direct questions about loyalty and chat bot commands ( specifically the !givepoints command )
Well, there are some over the web that would generate different voices, including AI. SE has its own, which you can have access on this endpoint:
https://c4ldas.github.io/streamelements-api/#/operations/Get/speech
And the voices available are here:
https://c4ldas.github.io/streamelements-api/#/operations/Get/speech/voices
They use some API for that, possibly. It would be easier to ask the streamer which API is that.
Here in this channel. As regards the !givepoints command, you can find more information here:
https://docs.streamelements.com/chatbot/commands/default/givepoints
Thanks!!
So I'm guessing SE doesn't like giving out oauth access? It's been two months since I put in my request and have heard absolutely nothing since.
I would open a ticket asking about that.
Dude, every time I open up stream elements my shitâs not right itâs all messed up. Itâs like I got over from the beginning every time.
Hello everyone, I have a problem with the multi chat. Kick is already available but I don't get a single message, in the plugin it reflects the two platforms, Twitch and Kick, but I only get the messages from Twitch and Kick doesn't get a single one. I already logged out and started again but the problem continues. Some help since in another multichat panel that I have there if I get all the messages.
Hi I'm new here and was recommended to try here for some help. I'm working on a widget for a money goal that includes bits, subs, and donations. I was able to get this set up and working with some trial and error but I've run into another snag. I want to have an evolving image that changes for each goal I have set. What would be the best way for my to use streamelements insert image file for each goal that changes when the goal updates to the next goal? I'm new to learning all of this so I'm sorry if my explanation isn't great
So change in like.. sudden hard cut to the next image or smooth transition?
In any case I'd suggest putting each variant of the image in the html, put position absolute on all of them, make an "active" class that puts opacity at zero and put it on the image that should be shown.
Uh reverse that, img should be at opacity 0 and active on opacity 1 of course
I was hoping for a fade in transition but I don't think a hard cut would be too bad
Fade is easy enough. I'll make a quick example. afk at the moment so gimme like ~20mins
I appreciate it so much! thanks
Do you know if there is a way to allow the image position to be moved but as a group?
Either move the whole overlay or put all images in a div and move the div
top: ...px and left: ...px
thanks!
can also be done with translate property, if you only want visual movement
đ
Hold that though lucas
Yeah yeah i'll send it in dms
I got it
it's placebeard i guess
<div id="overlayed-images">
<img id="color-beard" src="https://placebeard.it/640/480" class="one-image active"/>
<img id="gscale-beard" src="https://placebeard.it/g/640/480" class="one-image"/>
</div>
#overlayed-images {
left: 0px;
top: 0px;
}
.one-image {
display: block;
opacity: 0;
position: absolute;
transition: opacity 1s ease-in-out;
}
.one-image.active {
opacity: 1;
}
let isColored = true;
let colorBeard = document.getElementById("color-beard");
let gscaleBeard = document.getElementById("gscale-beard");
setInterval(() => {
if (isColored) {
colorBeard.classList.remove("active");
gscaleBeard.classList.add("active");
isColored = false;
} else {
colorBeard.classList.add("active");
gscaleBeard.classList.remove("active");
isColored = true;
}
}, 3000);
It got whitelisted on first go so you got lucky.

Fk that
Anyway.. It'll be a bit mor complicated if you have a dynamic amount of images
Code block noping with extra tick.
I appreciate the help!
Oh one extra thing.. I'd suggest to never thouch changing an "img"-tags' "src".
You'll run into very wierd browser behaviours regarding caching
Hello! I would like to ask for your help, I want to be able to display streamelements store points on my site, I need some help with how it works, and what APIs are needed for it.
Thank you!
Not sure exactly what you mean by "streamelements store points", but this is the endpoint to list the store items:
https://c4ldas.github.io/streamelements-api/#/operations/Get/:channel/items
This one will list the user points (leaderboard):
https://c4ldas.github.io/streamelements-api/#/operations/Get/points/channel/:channel/top
I'll describe it more precisely, the point is that I want to appear on the navbar itself, the point of someone who logs in to Twitch with their Twitch username
and everything works with php @severe shell
So nothing with points then? Just logging in with twitch and displaying their profile pic?
No, they log in with Twitch and report anything that has a point to the streamelements store.
Can you show a screenshot of which part you are referring to exactly? Not your system, but from StreamElements page itself... Based on that, we can understand which part you want exactly.
You can see the point here, right? And if you log in with your own user, your point will appear on the page.
Ok, so maybe it is this one:
https://c4ldas.github.io/streamelements-api/#/operations/Get/points/:channel/:user
This code is more transparent, so it's correct if I include the APIs or what API I should write.
<?php
session_start();
require_once 'TwitchOAuth.php';
// Ha mĂĄr be van jelentkezve, a session-bĂłl lekĂ©rjĂŒk az adatokat
$user_info = isset($_SESSION['user_info']) ? $_SESSION['user_info'] : null;
$points = null;
// STREAM ELEMENTS API BEĂLLĂTĂSOK
define('STREAM_ELEMENTS_API_KEY', ''); // IDE ĂRD BE A SAJĂT API KULCSOD!
define('CHANNEL_ID', ''); // IDE ĂRD BE A TWITCH CSATORNA ID-JĂT!
// EllenĆrizzĂŒk, hogy lĂ©tezik az access_token
if ($user_info && isset($user_info['id'])) {
$userId = $user_info['id']; // Twitch felhasznĂĄlĂł ID-ja
$points = getStreamElementsPoints($userId); // StreamElements pontok lekérése
} else {
$points = "Nincs adat";
}
// API hĂvĂĄs a pontok lekĂ©rĂ©sĂ©re
function getStreamElementsPoints($userId) {
$channelId = CHANNEL_ID; // A csatorna numerikus ID-ja
$apiKey = STREAM_ELEMENTS_API_KEY; // Az API kulcs
// Az URL helyes formĂĄzĂĄsa
$url = "https://api.streamelements.com/kappa/v2/points/{$channelId}/{$userId}";
$headers = [
"Authorization: Bearer " . $apiKey, // Az API token
"Content-Type: application/json"
];
// cURL kérés az API-hoz
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); // HTTP ståtuszkód lekérése
curl_close($ch);
// HibĂĄk esetĂ©n kiĂratjuk a vĂĄlaszt Ă©s a hibaĂŒzenetet
//if ($response === false || $http_code !== 200) {
//return "Hiba történt: " . curl_error($ch) . " (HTTP kód: " . $http_code . ") - URL: " . $url;
// }
?>
I'm not good with PHP (it's been 15 years since last time I worked with it), but not sure your $url is correct. channelId and userId are variables and shouldn't be wrapped in %7B and %7D (which are encoded brackets).
As regards what to put in your code, the page itself provides code samples for many languages, including PHP
I see, so can you tell me why it's not showing up or what I should fix?
@severe shell
Not sure exactly what you are talking about. It shows the correct data for me:
I have just tested with some user for that channel, and the data is fine.
How can I find the channel ID? Or is this the sweet channel ID?
That is the ID for the sweet channel, indeed. To find the channel id:
https://c4ldas.github.io/streamelements-api/#/operations/Get/channels/:channel
It is not very reliable though, as the channel name can change and still have the old one on StreamElements, so you would need to double check the username, providerId and platform from response. But most of time it works fine
I have the channel ID, how can I import this into the code? Can you help me with this?
Just replace it where it says CHANNEL_ID, I believe.
$channelId = CHANNEL_ID; // A csatorna numerikus ID-ja
I have this but it doesn't show on the page
Well, I asked chat gpt to fix your code, just read the conversation:
https://chatgpt.com/share/67d467ce-c16c-8001-a79b-8bac36fc1511
Also, the Twitch user id shouldn't be used in Streamelements API, as it uses the username or streamelements channel id (for that user).
Hi, I have a question about the chat overlay. I have mine set to have messages fade after 30 seconds. I was wondering if there was a way for it to have a background that also fades rather than just have an empty box.
Default Chat? I don't think that's possible.
Custom Widget Chat? Definitely possible, although varyingly difficult.
Also.. A lot of custom chat widgets do that by default
Alright, I'll have to snoop around. Thanks for the info.
Check the ones in #widget-share
Yup. SE support told me to check this channel or that one. I'll have a look around later. I just don't want to have an empty box floating around if I'm playing a bright game haha.
Thank you!
What method does the streamelements api use to deduct points?
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
Because this adds points, not subtracts them
function deductStreamElementsPoints($username, $amount) {
$channelId = CHANNEL_ID;
$url = "https://api.streamelements.com/kappa/v2/points/{$channelId}/{$username}/{$amount}";
This?
@severe shell
That's the endpoint, you should adapt to your code as it was done before
Can you help me with this? How can I make it so that it doesn't add but subtracts?
Can you help me? @severe shell
Just read the page
So I'm still struggling đ
I currently have added a few fields and that seems to be working. I've added:
"goaldynamicbackground" which allows users to insert a background image for the goal (something that is on the screen before any goal is reached).
"goaldynamicimagesize"
"goaldynamicimageVertPos"
"goaldynamicimageHorPos"
Which I'm hoping to use to change the sizing and position of all images.
I've also added the place to add images for each goal (20 different potential goals). "goaldynamicimage'X'" (X representing the number)
I'm wanting achieving each goal to replace the image on screen with the next image. For example reaching the first goal would replace the background image with "goaldynamicimage1" using a fade transition.
I'm hoping this helps more but if any other information is necessary please let me know. An ex friend originially made the widget and I'm just trying to add a few elements that better fit my current needs/wants so I'm quite out of my element
uhh seems a bit too specific.. you open to a call?
yeah I'm open to a call, didn't realize ChatGPT did coding, so now that I do know that, it's helped a bit but still trying to get around issues with GPT code
hi there i have just downloaded and connected selive to my obs on my mac im logged in through obs but when i want to see how to connect my SE i try to log in to SE through the selive and it crashes everytime please help
What is the final point for refunding points?
$url = "https://api.streamelements.com/kappa/v2/points/{$channelId}/{$username}/refund"; // Itt szĂŒksĂ©ges a megfelelĆ API vĂ©gpont
got it working
i was wondering if someone could help me. i am trying to set up an alert box for a friend on their streamelements account (been given full control) and its playing the sound alert on streamelements, but not on obs? yet my personal alerts still work on both obs and streamelements.
You can try obs debugging:
#dev-chat message
Sometimes there are differences in how obs chromium works
hi i have soome equires bout campain offers
@rocky sonnet —ïž
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.
Buenas noches, cuando prendo Live en Tik tok, no aparece mi galerĂa de regalos, alguien sabe como solucionarlo?
Does anyone know the event for Twitch VIP role in Streamelement?
How can I have Twitch and Youtube messages in a single chat widget?
Not possible. You'd need to use a 3rd party app to do that.
I am trying to make my own, actually!
A widget that combines chats from Twitch and X (Formerly Twitter) and am working on Youtube, Trovo, Instagram, Kick, Rumble.
But it's really hard as each platform uses its own completely different API
Also! Don't forget!
Twitch TOS prohibits you from showing combined chats on-stream!
So what I do is I have a Base scene
And my Twitch scene references the Base scene
And I can have a scene-per-platform if I want to, or just use a separate scene specifically for Twitch, since Twitch is the only platform that has chat-combining against their TOS.
Yeah, life is hard, it's taking me a long time to get this working, and this is something I'm working on just for me, but the proof-of-concept is there, so this is feasibly doable.
Still a work-in-progress, but here's the preview example, only Twitch and X (Formerly Twitter) working right now, but I have the programming know-how to get the other platforms working, so long as they expose out a public chat API
A guy called nutty build a working chat for Twitch / Youtube and its open source, though the how-to-setup is still behind a "donation wall" at the moment.
Seems to be leveraging StreamerBot
i just saw a nutty video about a newer SE thing that easily merges chats
I did a chat widget a while back that is a vertical and horizontal. That does twitch, YouTube, kick, and TikTok
se.live obs does that. i see all my chats from youtube twitch kick and have another on there for tiktok
damn, i looked too late, oml. So that basically meanns I can only show my twitch chat, while streaming on both platform (YT + Twitch)?
++. It's easier for me to monitor both platforms
i just thought that viewers will be able to see what people say on YT
Hey I keep getting starting out puts have failed when I try to start streaming I already have updated my studio drivers
Can anyone help please
Hii so in stream elements i have a month sub goal widget. we are having an issue with it staying accurate. For example twitch dashboard say 211 but the overlay widget is showing only 207. how do i correct this?
i have allready signed in and out and have the settings set to calendar timing.
Depends. I want to interact with all platforms, but as a rule you can't show chats not originating from twitch, on twitch.
Okay, now I understand
I plan to predeclare which platform a particular message originates from when I'm talking about it.
E.g.:
"ShaunX345 from Youtube asks in superchat: 'What platforms are you going to release this on?' - I'm targeting just Windows and Linux for now. Sorry, Mac users."
quick question, how multichanel widget is supposed to work?
can i download SE.live beta directly from some link? updating via OBS doesnt work, the installer closes itself when trying to close other apps before installation.
Hey! Quick question, When I tried to create an alert I donât see the animation or hear the sound. Iâve tried refreshing the page or starting over and nothing
does anyone here use stream elements for alerts on kick?
not really, but i assume they work the same as the others? got any issue?
It is expected. The goal widget is only able to see the subscriptions that were shared on chat by the user.
If a user has a recurring subscription, only Twitch is able to see that (unless the user shares the subscription notification).
You type the channel name you want and it will show the chat for your channel and the other twitch channel.
It doesn't work with yt right?
Just to confirm for myself
If you install it on your YouTube account, the primary channel will work, but the secondary will be always a designated Twitch channel.
I tested it in my YouTube account and it worked fine. And in the settings I put my Twitch account and it was able to show both chats.
Wait, so it works with Twitcb + YT?
Last time i tried it didn't work
Only if you install it in your YouTube account
It is not possible to get the YouTube channel as the secondary chat, only the main one
So, basically, if YT is primary Twitch will be used as secondary, correct?
Exact!
Oh wow. Everyday learning something new, lol
I found out that by accident, actually. I was logged in the wrong account and installed it. And then I tried to test it and it worked
But also question then: if yt is primary, I don't have to change any overlays or make them again for obs?
Wow, interesting
Your existing overlays will continue to work, they have a unique URL, so just open SE dashboard, login with your YouTube account, create the overlay with the multichannel chat and put the URL on OBS
Oh, okay I will have to check that later. Thanks! I'm just new to all this stuff and I'm also a solo-streamer. I have like few friends helping me, but they r not officially part of the team đ
And noone knows how to work with it lol
It is possible to find some bugs on the widget, as it wasnât specifically designed for YouTube, but I couldnât find any from my tests.
Great, let us know if that works for you when you test it and if you find any bugs
Okay.. So correct me if I am wrong: I am making new overlay on YT account, put multichanel widget and paste into the obs. Right?
Right!
But before pasting into OBS, you have to configure it on the left panel with the Twitch channel.
I don't see anything in the docs about handling TikTok events, or any non Twitch events. And do messages on all platforms handle the same way? I make my widgets with Twitch in mind but the chat aspect of my widgets works on YouTube as well. Any place I could find this information?
We have 0 access to their API so TT events are impossible until they give us access.
Same applies with their chat as well.
I see, so the new multi streaming tiktok feature is not interacting with the API at all. How about YouTube events? the docs seem to be Twitch specific
That's primarily because it's the one that's the least PITA to work with and been the main focus of the Devs (opinion there)
100% agree, you have to be 'live live' , like real live to test YouTube...makes development basically impossible
The docs have YouTube events. Most of them are in common with Twitch, but there are some specific ones in there.
hey, does anyone know how to stream from OBS to a scehduled Youtube stream (with SteamElements)?
what scope do i need for https://api.streamelements.com/kappa/v2/channels/me?
cause isn't working for me havng and access_token with "scopes": [
"channel:read",
"tips:read",
"tips:write"
]
You don't need any of them... Actually, you need channel:read, but that one is added by default, so you don't need to worry about that one.
Is not working for me at least
https://api.streamelements.com/kappa/v2/channels/me
{
"statusCode": 401,
"error": "Unauthorized",
"message": "Not allowed to perform this operation"
}
I found the error. I was using Bearer Token instead of oAuth
I suspect you are not using the authorization header correctly, but let's just confirm. Is your authorization header like this?
Authorization: oauth2 YOUR_ACCESS_TOKEN
So yeah
When I make alerts recently ive been getting people saying the username comes up 'undefined', I use obj.detail.event.displayName to get the username and it works in testing/emulating but when live are when the issues come up.
I don't remember this being an issue in the past, I think I may have started using displayName somewhere along the way and not realized I changed....anyway, is there a best practice? should I use the .nick .channel or .displayName to consistently get usernames?
or .name?
hey @severe shell! hope you're doing good! do you know if there is a way to fetch the activity feed settings (muted/paused)? Or do we have to 100% wait for a websocket update in order to know?
Hey everyone, does anyone know if it is possible to send a chatbot message from an overlay? It looks like the apiToken is not authorized to hit the say endpoint, and I haven't found any way to get the JWT token from the overlay.
Perhaps this is outdated since I've been using it for like 2 years now, but it still works
Get yourself a token from jebaited.net and then you can use this function to send chat messages
function sendChatMessage(message) {
fetch(`https://api.jebaited.net/botMsg/<YOUR_JEBAITED_TOKEN>/${encodeURIComponent(message)}`);
}
I haven't seen that before, thank you! I'm making an overlay that I'm planning on sharing with several people, so it'll be a little clunky to have them input their own token, but at least it'll work
Hey y'all, curious here. I know PubSub API is changing, I'm wondering if that affects Reboots widget tool at all.
As far as I know, it doesn't use Twitch PubSub in any way, as it is a lib for Streamelements overlays. But let's wait for his answer. @tribal zenith, can you confirm that?
thank you!! lookin forward to more details
To check the alerts status, you will use kvstore route:
URL: https://kvstore.streamelements.com/v2/channel/ACCOUNT_ID/alerts
Method: GET
Authorization: bearer JWT or apikey OVERLAY_TOKEN
Response would look like below:
{
"muted": false,
"paused": false
}
I've just checked with real events and this is what I found:
- When the
obj.detail.listeneris some*-latest, you will haveobj.detail.event.name - However, if you are checking
obj.detail.listenerforevent, then you haveobj.detail.event.data.displayName(capitalized username) andobj.detail.event.data.username(without capitalization)
So I got a email for sponsorships avaliable log on to the website and I don't have any what's the point in emailing me if I'm not able to use them
yup, no external API is involved just SE event-listeners and structures
Check the message above đ
@rocky sonnet —ïž
If you need to fill out a support ticket, please use the command !ticket in chat, following the subject of your issue! For example, please type "!ticket My chatbot isn't working", and then follow the prompts from our bot!
so, im creating my own subathon countdown timer in a custom widget which of course - adds time for a donation. I wonder which method of capturing tip alerts is correct and which one should I use? Any advice?
Or maybe both methods are correct and it doesn't matter which one I choose?
Both will work
thank you c4ldas
How do I get the amount of subs? {{ amount }} doesn't seem to work.
It's for a community gift event
Nevermind, was using the wrong variable.
is there some people that codes/creates alert/sub/donation/chat stuff with css on streamelement? please dm me if so
I'd like to create a one stop shop widget for my channel. Multichats, polls, spotify, rewards, alerts, subathon counters, you name it. However I'm quite new to coding. Is there something a beginner like me could learn about these processes? Or maybe someone already has something made that I could convert into my own? I'm looking for full customization on the widget. Ideally I'd make something on photoshop and turn around and add it to the stream.
If I'm in the wrong chat, I'm sorry. Just joined yesterday
All you need is official SE documentation about coding custom widget https://docs.streamelements.com/overlays/custom-widget
And for better knowledge, you can check others custom widget code https://github.com/StreamElements/widgets
Thank you, and I thought his message was fishy lol, thanks to whoever deleted
Twas a bot needing yeeting.
Hello again. I want to create a custom widget that shows text "alerts are paused" when a streamer pauses alerts, is that possible? Or maybe there is a better solution for this that custom widget?
Hey, i want to implement my Lobo-Bot Widget into my Streamelements Overlay so i dont have to add it as another Browser Source in my OBS - is there any easy way of doing so that i am missing? (It helps me avoiding a huge cluster chaos of sources in my scenes and increases performance as well) Lobo Bot just gives an Animated Live Display of your League of Legends Stats and is usually implemented as another Browser Source in OBS.
Do you want to add it to a SE overlay or want to create your own overlay that would mimic that widget?
The first one maybe you can try to add it as an iframe, but I'm not sure if that is going to work, as iframes in SE widgets run in a separated sandbox and don't have parent (and many websites block the usage of iframes)
For the second one, you will need to use Riot API and develop your own overlay.
Not a dev myself but i guess i tried to implement it directly as some kind of iframe but it wont load due to CORS issues? Also i would love to build my own but as i just said i can only do the bare minimum of coding and getting it to look as good as the ones of Lobobot would be an impossible task for me.
Just add as another web source in obs, this will not affect optimization (unless you have an intel pentium)
main issue aint the performance for me but this overlay is supposed to be shared to others and it would just assure that everyone has the same overlay and its simple to setup for everyone
any ideas?
I'm writing an answer for you, just a min. I'm still testing đ
is anyone else having an issue of the streamelements overlay not updating 7tv emotes (periodically and with the command)
I'm trying to post it but it seems there is some content being blocked. But basically you would need this in onWidgetLoad: #dev-chat message
And connect to Astro Websocket to subscribe to the topic channel.kvstore.update. That way, you will be alerted once the the alerts status change.
https://docs.streamelements.com/websockets/examples
https://docs.streamelements.com/websockets/topics/channel-kvstore-update
window.addEventListener('onWidgetLoad', async (obj) => {
token = obj.detail.channel.apiToken;
accountId = obj.detail.channel.id;
const request = await fetch(`https://kvstore.streamelements.com/v2/channel/${accountId}/alerts`, {
"method": "GET",
"headers": {
"accept": "application/json",
"authorization": `apikey ${token}`
}
});
const response = await request.json();
console.log("Alert status:", response);
});
const websocket = new WebSocket('wss://astro.streamelements.com');
// Connection opened
websocket.addEventListener('open', (event) => {
// Subscribe to a topic
const subscribeMessage = {
type: 'subscribe',
nonce: crypto.randomUUID(),
data: {
topic: 'channel.kvstore.update',
token: token,
token_type: 'apikey'
}
};
websocket.send(JSON.stringify(subscribeMessage));
});
websocket.addEventListener("message", (event) => {
const message = JSON.parse(event.data);
if(message.data.key == "alerts.paused"){
if(message.data.value == true) console.log("Alerts Paused");
if(message.data.value == false) console.log("Alerts Resumed");
}
})
I will let you do the part that you add the information to the HTML, ok?!
omg thank you so much, I'll try it later and let you know if it works â€ïž
Sure, html and css already done đ
Most CORS issues can only be resolved by the content sharing party. In this case it's Lobobot.
If it doesn't allow Streamelements as a valid site to share content with, then Browsers will block this behaviour.
However there are some ways around that.
There should be some browser flags that disable cors checking or you could proxy the request.
Browser Flags are easier but needs setup on each User's Browser.
Proxy is a bit harder. There are premade solutions, but you'll need a server for this proxy to run on.
TL;DR there is no legitimate way to do this, although some hacks around it exist
omg this works perfect, thaaank youuuu so much you are the best
heyy heyy i have a quick question.
does the multistream widget download work for Mac? or only windows computers?
Yeah thats what my conclusion was as well. I accepted my fate and built a complete new one over night and im pretty happy with it for now. Thank you for helping tho!
Wow, it's terrifying/depressing just how many bad links there are for anything involving SE dev resources. :/
does anyone know how to get the youtube shorts stream working?
If youâre talking about dev.streamelements.com domain, yeah, it was rewritten some years ago and the old links stopped working, unfortunately.
But you can ask here and we can try to find a response, as most of them were just moved.
Are there any plans to make a clippiing feature for vertical canvases? this is the last feature I need to make this plugin my go to.
Hey everyone,
I'm currently working on a custom widget where I want to trigger an alert when a specific user sends a message in chat.
I have a script in the widget that should trigger the alert, but I'm having trouble finding the correct API endpoint to use. The endpoint https://api.streamelements.com/kappa/v2/alerts doesnât seem to work.
Iâve tried using the correct JWT token, and I switched to the purchase event as it seems like the other events canât be triggered via the API.
Has anyone had experience with this or could point me in the right direction?
Feel free to message me privately if you'd like. German is preferred, but English is also okay.
That endpoint doesn't exist, don't know where you found it.
The easiest option is just to create an HTML with the alert based on the user. Get the event, and if it's a message, check the username is the one you want to show the alert. Then, just show the alert on screen:
<div id="container" class="container" style="display:none">
<p>USER SENT A MESSAGE:</p>
<p id="message"></p>
</div>
window.addEventListener("onEventReceived", (obj) => {
const username = "YOUR_SPECIFIC_USERNAME";
if (obj.detail.listener !== "message") return;
if (obj.detail.event.data.nick !== username) return;
const container = document.querySelector("#container");
const messageDiv = document.querySelector("#message");
const message = obj.detail.event.renderedText;
messageDiv.innerHTML = message;
container.style.display = "block";
setTimeout( () => { container.style.display = "none" }, 5000) // Hide the div after 5 seconds
});
Hey, thanks so much for your suggestion! It works great for showing the alert.
However, my original goal was to trigger an alert in StreamElements so I could use the TTS feature to have the message read out. The idea is that when a specific user sends a message (like a shoutout from our AI bot or streamer info), it gets automatically read aloud using TTS.
I really appreciate your help though! Iâm going to keep trying to figure out the best way to make this work.
The thing with the default alerts on StreamElements is that they are very specific, so creating a custom one can break entirely your activity feed if something goes wrong (making it blank for the next 50 activities).
In order to have your custom TTS, you can use the SE TTS endpoint. Add the audio TTS after container.style.display = "block"; line and play it.
const audio = new Audio(`https://api.streamelements.com/kappa/v2/speech?voice=Brian&text=${message}`);
audio.play();
Also, if you are going to use TTS, change the message variable to obj.detail.event.data.text, instead. Otherwise, the TTS will read the URL for each image in the message.
Example:
If the user types LUL on chat, the value of renderedText will be:
<img src="https://static-cdn.jtvnw.net/emoticons/v2/425618/static/dark/1.0" srcset="https://static-cdn.jtvnw.net/emoticons/v2/425618/static/dark/1.0 1x, https://static-cdn.jtvnw.net/emoticons/v2/425618/static/dark/2.0 2x, https://static-cdn.jtvnw.net/emoticons/v2/425618/static/dark/3.0 4x" title="LUL" class="emote">
Whereas the value ofobj.detail.event.data.text will be just LUL.
@severe shell Thank you so much for your help! I've attached the code below in case anyone else needs it.
Iâve implemented a queue to handle messages that come in quickly one after another.
Itâs working perfectly! Unfortunately, I could only find one male German voice, but itâs more than enough for a bot â it saves me from having to use software solutions like Speakerbot and others.
Thanks again for all your help!
let isSpeaking = false;
let messageQueue = [];
window.addEventListener("onEventReceived", (obj) => {
const username = "daniel327";
if (obj.detail.listener !== "message") return;
if (obj.detail.event.data.nick !== username) return;
const message = obj.detail.event.data.text;
messageQueue.push(message);
if (!isSpeaking) {
speakNextMessage();
}
});
function speakNextMessage() {
if (messageQueue.length === 0) {
isSpeaking = false;
return;
}
const message = messageQueue.shift();
const container = document.querySelector("#container");
const messageDiv = document.querySelector("#message");
messageDiv.textContent = message;
container.style.display = "block";
isSpeaking = true;
const audio = new Audio(`https://api.streamelements.com/kappa/v2/speech?voice=Hans&text=${message}`);
audio.play();
audio.onended = () => {
setTimeout(() => {
container.style.display = "none";
}, 1000);
speakNextMessage();
};
}
These are the German voices:
Females:
- Vicki
- Marlene
- de-DE-Standard-A
- de-DE-Wavenet-A
- de-DE-Wavenet-C
Males:
- Hans
- de-DE-Standard-B
- de-DE-Wavenet-B
- de-DE-Wavenet-D
I'd suggest that you wrap your code into backticks. It is breaking the audio URL:
```js
YOUR CODE HERE
```
Done, never written a code in discord
Quick question, which ai is used in the ai variable?
Until some time ago, Chat GPT. Not sure if it is still the same, we don't have that info.
Thanks!
@solemn trellis —ïž
If you need to fill out a support ticket, please use the command !ticket in chat, following the subject of your issue! For example, please type "!ticket My chatbot isn't working", and then follow the prompts from our bot!
That's the only way
Unfortunately, sponsor things are only worked via tickets with the staff. There isn't anything we can do here đŠ
Hallo, i wanted to set !sub in my chatbot so i did it, but chatbot doesnt respond to it.
What's the command supposed to do?
Going to my url to subscribe to my twitch channel
I putted the url but doesnt do anything
Its funny because i did the same for my discordchannel and thats works
!cmd edit !sub ${touser} Subscribe to my channel -> https://www.twitch.tv/ozziethekidd/subscribe
It should be something like that
Type that in your chat
In my twitch chat ?
Ok, try this one:
!cmd add !sub ${touser} Subscribe to my channel -> https://www.twitch.tv/ozziethekidd/subscribe
Ok let me try
It works!
Thankyouâ€ïž
And another thing, i want to give !tip a nother word for it. But it still reacts to the command tip and not the word that i want
you wanna modify !donate.
Yes
!tip is an alias.
I want to make it donate and doesnt react to it
Oh it works!
My bad đ đâ€ïž
Does it have to be english?
Because i wanted to make it dutch, !donatie but doesnt respond to it
You will need to go to the Streamelements dashboard (https://streamelements.com/dashboard/bot/commands/default), find the !donate from the list and add the alias donatie
Thankyou!
Do you understand this, because i can go live on the phone. But it gives a error on se multistream
why is text to speech activation delay capped at 10 seconds? is there a way to increase it?
streamelements chatbot for KICK is available now? its in the streamelements dashboard now
It is yes.
is there devs that creates alerts/chat widgets ? (ping me)
How can i delete the second youtube, because the delete button its not optional
is there a way to make an animation trigger specifically when a new message comes in? I've got a speech bubble in the works, and it has like, a tail, and im wanting it to go away when a new message comes in
i do have the animation made, and rn its just set to a timer, but im wanting to see if theres a way to tell it only to trigger when a new message comes in instead of just automatically
Just listen for a new message and add or remove the animation you created:
window.addEventListener("onEventReceived", (obj) => {
// Ignore if it's not a chat message
if(obj.detail.listener !== "message") return;
// Do your animation thing here
// document.querySelector("#yourdiv").classList.remove("animationName");
// document.querySelector("#yourdiv").classList.add("AnotherAnimationName");
});
tysm!!!
Hello guys i have a custom chat widget but for some reason 7tv emotes are not on the code to show, how can i find the code and add it? i use OBS and my widget is on SE ofc, bttv emotes work fine, for some reason animated ffz emotes dont work, but bttv animated ones do work, they appear just fine, how do i fix these 2 issues? 7tv emotes not showing and animated ffz emotes
Hey i wanted to know if they usually give out oauth out to single devs? i did the form just now but it seemed like they think most people are companies. I am a gamedev who integraded streamelements in their games and always manually getting the JWT token can be cumbersome
They give out oauth access to solo devs.
For one I'm one and so is c4ldas afaik
For 7tv emotes, probably you just need to run !emotes update in your chat and reload the overlay.
As regards the animated ffz emotes, it seems to be a bug with SE, as it doesn't see the animated ffz as animated emotes, don't know why. Unfortunately, there isn't anything we can do to fix that.
I would suggest that you open a ticket and inform the staff the animated ffz emotes are only static, so they can send that to dev team.
For example, the correct URL for this emote: https://cdn.frankerfacez.com/emote/754290/4
Is actually https://cdn.frankerfacez.com/emote/754290/animated/4
There is a /animated/ after the emote id
isee, that is def interesting, but about the 7tv emotes, i did try the emotes update comand you mentioned on the twitch chat and also the OBS chat, the problem is still there, the thing is, as i said before the widget is a custom one i got, is there a chance the issue is in the code? like i need to writte the code to show 7tv emotes like i guess they did to show ffz and bttv emotes? because everything i try dont work tbh, 7tv emotes never show, for reference here is the chat in obs
The bot should have responded in chat when you ran !emotes update
Check if the !emotes command is enabled in your account
hmmmm, ok, that may be a big one, because the bot did not respond
will do, one sec
ok, i just realized something very dumb, where can i see if the comand is enable? lmao
hmmm even after all that does not work, i even removed and updated the widtget on SE and on OBS, closed and opened again, same thing
def weird
Unfortunately 7TV and their API is "fun" so there's a chance it's stuff on their end like usual.
o.o that is good to know, i was not aware
What's the name of the emotes from 7tv you are testing? I can check if it isn't working on my side as well.
the ones on the screenshot are " BrttPls " and " baseg " , see if works on ur side
Oh... Bem que eu estava desconfiando que vocĂȘ era brasileiro! đ
Well, let me check them here
the name Gotico Gordo not being enough and also the literal state of GOIAS on the screenshot didn't do the job either đ
They are working fine on my side. It works in a custom chat widget as well as in the default chat widget
so i guess i was right in my assumption, the issue is with MY custom widget, strange
Do the emotes work with the default chat widget? If so, then the issue likely lies with your custom widget. I would suggest grabbing a custom chat widget from #widget-share and checking its code to compare with yours.
indeed they work in all the ones i tried, i will do as u recomended, dont really know how the codes work if they are all the same but diferent ways of coding, so i will read css and the others
If you want, feel free to send the code, so we can try to help
should i send here or in dms? because of the spam, or it become a txt file đ€
is there a dev that can help me out?
Where in obs do I secet the mp4 file for background music again?? (sorry if I posted this in the wrong place)
I've assigned the file but not hearing the audio, not sure why.
Do you mean in the mixer? Advance options/ monitor and output?
HI i want to add some link on streamelements overlay can some one help me to how to do that?
In the video tutorial I watched it showed how creating a media source automatically added a source to the audio mixer. For some reason that's not happening for me.
im not entirely sure where to ask đ i just have a question! how far back does the $ random.chatter command go? is it ACTIVE chatters THAT stream or like last 24 hrs etc
Answered in #general-chat
Is there a way to reset the streamelements core settings? Been troubleshooting an issue for weeks and I'm out of ideas. I've tried reinstalling but constantly get crashes when i go to close OBS. I'm also unable to rename the multi stream canvas, or delete them. I also get frame render drops on certain scenes but ONLY with streamelements core installed.
This happened like a couple of updates ago and I can't find the solution. I like the streamelements core addon for tiktok multi integration but honestly this is pissing me off and would love any insight if there is any.
Hi guys, I have a problem with the SE.live vertical canvas
When I change "scene collection" automatically some vertical canvas sources change from "example" to "example 1". In this way, however, they no longer match the respective original source. Does anyone know how to solve it?
I understand that I'm replying to a message from 5 years ago, but is it still true? Trying to request songrequest:read gives me an invalid scope error, and it doesn't seem that any other scope gives access to the songrequest APIs.
If that existed, it was removed years ago. The current valid scopes are these ones: https://dev.streamelements.com/docs/api-docs/cd02cda5171ea-o-auth2#oauth2-scopes
OAuth2 enables developers to build applications that utilize data from the StreamElements API. Powered by Stoplight.
Yeah, there is no scope for songrequest APIs... oAuth scopes need to be updated to include more endpoints.
I mean, if you just want to do GET requests for songrequest endpoints, you can do it with channel:read scope or using overlay token (aka apiToken) that you can get from /channels/me.
But for POST and DELETE requests, only using the JWT, unfortunately.
Is it something that's happening, or should I abandon hopes, and start drafting a message to the streamer, that I'll either get the JWT (so scrap principal of least privilege), or we won't be able to touch SR?
Unfortunately doesn't cut it for me, was looking for a :write version
Well, I don't have any inside info, but based on experience, I don't think that is happening, unfortunately.
Got it, thanks
the dashboard doesn't show the correct number of subscribers, and the notifications don't show the new subscribers either.
I deleted the cookies, logged out and logged back in, but nothing happened. I reconnected the YouTube channel, and still nothing. The counter is stuck at 9 subscribers. I want to stream on YouTube
somebody can help me ?
Hello! Do you know if it's possible to get the sponsorships events from the API? I'm trying to get with this endpoint:
https://api.streamelements.com/kappa/v2/activities/{channel}?limit=25&types=event&types=sponsor&types=purchase&before=' + today + '&after=2016-01-01T00:00:00.000Z
I can get the events of my previous sponsorship, but not with the current. Does someone has a solution please?
You can try the /v3/ route. The query parameters are the same, just remove the before and after, as it has pagination. You can use the query parameter cursor to go to the next page.
https://api.streamelements.com/kappa/v2/activities/{channel}?limit=25&types=event&types=sponsor&types=purchase
https://c4ldas.github.io/streamelements-api/#/operations/Get/activities/:channel
Iâm having an issue with duplicate messages on the chat widget. Some messages appear twiceâdo you know why this is happening?
hello hi, i am new on developing custom widget and i want to create & design a chat widget that can show chats with its role and events. But i noticed that youtube/twitch event structure is different from the one that is simulated in the overlay, how do i make sure that the widget receive the same event structure with the one in the overlay emulate?
it's work good with the overlay emulate, but i'm still afraid that it would not respond the same way with youtube & twitch event structure. Since i'm trying to sell this widget, but have no way of testing it with youtube and twitch chats/events
Same issue, it displays the events from the old sponsorship, not the current one đ„Ž
For Twitch, you can simply send a chat message on the Twitch channel.
As for YouTube, you need to start a public livestream to test it.
But if you just want to know the structure of the message, you can check StreamElements documentation in https://docs.streamelements.com/overlays/custom-widget-events#chat-message
Thank you for answering. I tested youtube and twitch chat, and it works
But how about the other events? Should it be good to go if it works on overlay emulate? I really feel like i need to test it before i publish it
I think the types value for new sponsorships is sponsorship or sponsorshipPassive, can you test with them?
That's it, thank you!! 
The best option is to test in a real livestream with real events⊠but as that isnât always possible, I would recommend to emulate with at least the option âPreview LIVE on Streamâ enabled on the overlay.
Did it work with /v2/ as well?
Also works with v2 yep
Check if you donât have the same overlay open in two places at the same time (OBS and web browser, for example).
That isnât expected, but at the moment itâs the only thing I can imagine it could be happening.
Hmmm....
What are the name reflections of the activity feed types query parameter for the youtube stuff?
I guess its:
YouTube Subscriber = follow
YouTube Membership = subscriber
YouTube Superchat = superchat
But I feel like it may be wrong on the Membership and Subscriber cause there are things like sponsor, sponsorship, sponsorshipPassive and I am not sure if any of them is not one of the ones I need.
Possibly on v2 cause I am using Jebaited stuff.
For Youtube, membership would be sponsor and subscriber subscriber.
Superchat is superchat, indeed.
For both v2 and v3
Are gifted memberships separated somehow or are they included in sponsor like they are for twitch subs?
Those are giftedMembers. Here are the ones I found for use on Youtube activity feed (of course merch, tip, giveaway, etc, are StreamElements activities):
types: tip
types: merch
types: purchase
types: event
types: giveaway
types: sponsorship
types: sponsorshipPassive
types: giftedMembers
types: subscriber
types: superchat
types: sponsor
Thanks! (gonna have to remake some code on my combo credits then)
Not sure if you checked, but I did a better SE API documentation here:
https://c4ldas.github.io/streamelements-api/
Yea I seen it. I was not sure about the types thou.
Funny enough there is giftedSubs type that seems to send for twitch gifted subs that just does not return anything. Found by snooping around the api requests of the activity feed
It was missing the superchat value. I've just added it
That's for /v3/. I couldn't find a way to get gifted subs for /v2/, unless you use subscriber type, but that will show normal subscriptions and gifted ones.
There is a communityGiftPurchase type, but that is only for community gifts
Thats exacly what I do with jebaited
This is something of an end result, running in 4 times speed as for now and with the full list not session limited (I had to turn off session limit for testing). I need to get the object structures of the youtube stuff to be able to see how it works but for that I need to connect this to account that has memberships and superchats turned on.
The options for member and superchats don't appear in your SE account?
I do not have them on my youtube account
Thats why
cough cough... I need to reach them myself.
Well, if at least the options appear in your Activity Feed, maybe you could add some fake data to the Activity feed. Not mock ones, but the data SE will keep in there... (just pay attention not to send an invalid data and break your activity feed):
https://c4ldas.github.io/streamelements-api/index.html#/operations/Post/activities/:channel
You can use this as a body:
{
"type": "sponsor",
"provider": "youtube",
"data": {
"amount": 3,
"username": "mrsim"
}
}
It appears like that on Activity feed:
OHHHH! That is nice. But yea. For me structure is what matters. But knowing the username is there in same way as for subs that should be good enough. (I use providerId as well cause youtube allows "same usernames" but that seems like standard property to be there)
tldr: I filter out duplicates in case they happen (for gifted stuff and tips especially)
Ok, I have some accounts that I moderate that receive superchats and memberships. What exactly do you need, the API response? I can get it for you.
I just need to know if they have username and providerId in same structure as the subscriptions.
{
"data": {
"username": string,
"providerId: string,
...
},
...
}
They do, but there is one more data key, let me get it for you the exact structure
oh! Thanks!
Superchat, sponsor and a gift for you:
OH! Perfect! Yea then my code should just work by itself them.
All thats left now is to add option for custom non google font, change the "for you" animation stuff and figure out how I magically was able to access my youtube streamelements on jebaited page once but never afterwards (it just opens me the twitch one XD)
I am not able to access my Youtube account on jebaited, either. Lx once told me that was designed only for Twitch.
The other things, I think you know how to do, right?
Yea, its just simple things. Its more of the "todo" list kind of things. If I figure out how to access the youtube consistently on jebaited I will ping you so maybe we can let Lx know and it could be documented somewhere. If I recall it had something to do what account was logged in on streamelements at the current moment when logging into jebaited.
Do the streamelements channel variables work for both twitch and youtube? Or just for twitch, I've never tested it on youtube
Yes, both Twitch and Youtube. Maybe one or two don't, but the idea is that they work on both platforms.
update. I figured out the accounts on jebaited... There is some weirdness in relation of the cookies and sessions but... If you log out of the streamelements and jebaited. Close all browser windows. (I personally recommend just using incognito cause seems to be more resilient) Open jebaited website, press the button, login with platform you need (in my case youtube) and it will allow you access to generate tokens for that account.
Hmm, nice it worked for you... In my case, when I try to connect to jebaited website using my Youtube account, it logs me out right after the authorization.
Do you have your accounts linked in streamelements? (I do)
Yeah, they are linked... I thought that was the issue, actually. I can login with Twitch on Jebaited with no issues, but if I login with Youtube, it logs me out for some reason.
Hmmm... then I am not sure. I do not think I have anything special on my youtube account that would make any diffrence.
Maybe it has something to do with brand accounts... I have two brand accounts in my Google account. I think that's it.
Hmmm... I'm sure I have multiple accounts bound to same email as well. My view looks the same there.
Do you choose the one that shows your email or the "Youtube" ones? Mine is the one with my email
I press the middle one, without email.
Ahh okay, so maybe that's the big issue here. đ
I choose the one with email. If I select other one, it will create a new user for me.
Good to know

perfect, one more question, is it possible to create a command using "! cmd add" so that the bot uses the reply function? the one that mentions the command message
(on twitch)
You can create commands using !cmd add, but I don't think Youtube chat itself has the reply option. You can mention the user, but not create a reply like Twitch.
and for twitch is it possible?
Yes, you can do !cmd option COMMAND -type reply
The valid options are: "say", "reply", "mention" and "whisper" (this last one is not reliable).
Perfect!! I don't think it's possible to create the command with this reply function, right? Like !cmd add hi Hello -type...
already create the command response function along with the reply function
Nope, you need to create the command first and then change the option
perfect, thank you very much c4ldas
Turns out that wasnât where the problem was. The actual issue was in this line:
if (messageData.tags.badges.indexOf("vip") !== -1)
I was too dumb and used indexOf to check for 'vip', but I forgotâand didnât know actuallyâbecause I donât have a VIP or any VIP members on my Twitch account to test it with. So I had no idea what the correct event or data looks like for VIPs.
By the way, do you know what the proper way is to detect a VIP on Twitch?
curious if there's a way through Jebaited to check or get loyalty points total??? I know how to add loyalty points, but I'm making a betting game, I need to see if they have the points to bet in the first place
Can I speak to a dev directly? I have some suggestions that I think would be easy things to add and help SE.Live really have an edge over the other tools. Thanks.
@dapper wren —ïž
Check out the StreamElements ideas board: https://support.streamelements.com/hc/en-us/community/topics. You'll be able to add ideas, upvote ideas you agree with and track their progress with email notifications. Adding and upvoting ideas also helps the staff know which ideas should be prioritized so please take some time to upvote.
Okay thanks
Making a widget for my overlay, I basically just want to trigger a function every x amount of seconds. Is there a clean way to do that? I saw timers in the api docs, but honestly I struggle to understand what any of it says. I could use something like setinterval from regular js, but that feels a bit janky. Any ideas/examples?
It used to be more complicated, but now you just need to check if obj.detail.event.data.tags.vip value is "1" (string). The same is valid for mod.
This is the obj for a chat message (onEventReceived):
{
"type": "onEventReceived",
"detail": {
"listener": "message",
"event": {
"service": "twitch",
"data": {
"time": 1745250932098,
"tags": {
"badge-info": "",
"badges": "vip/1",
"client-nonce": "cfccc98049c83d8b9d2e77e111f07beb",
"color": "#008000",
"display-name": "c4ldasBOT",
"emotes": "",
"first-msg": "0",
"flags": "",
"id": "8d2bfcfe-e255-48b1-8048-d2c5152f7ab5",
"mod": "0",
"returning-chatter": "0",
"room-id": "28057703",
"subscriber": "0",
"tmi-sent-ts": "1745250932095",
"turbo": "0",
"user-id": "629674320",
"user-type": "",
"vip": "1"
},
"nick": "c4ldasbot",
"userId": "629674320",
"displayName": "c4ldasBOT",
"displayColor": "#008000",
"badges": [
{
"type": "vip",
"version": "1",
"url": "https://static-cdn.jtvnw.net/badges/v1/b817aba4-fad8-49e2-b88a-7cc744dfa6ec/3",
"description": "VIP"
}
],
"channel": "c4ldas",
"text": "Test message 123",
"isAction": false,
"emotes": [],
"msgId": "8d2bfcfe-e255-48b1-8048-d2c5152f7ab5"
},
"renderedText": "Test message 123"
}
}
}
the timers in the api docs are the bot's timed chat messages
Wahh thank you sir! Where did you get this kind of JSON from, or is there an easy way to get it instantly without having to test it live on Twitch and check it through StreamElements?
My main issue is when I need to test events like this, since I donât have any Twitch roles and my account isnât eligible to give roles to my viewers. Maybe you know a way to get around this problem?
There is, use the token with addPoints scope. GET request to:
https://api.jebaited.net/getPoints/JEBAITED_TOKEN/USER
But you can use SE API itself to check. Just do a GET request to the endpoint below (no authorization required):
https://api.streamelements.com/kappa/v2/points/CHANNEL_ACCOUNT_ID/USER
I got it sending a chat message on my Twitch channel and checking the browser console on SE overlay page.
There is no way to get a JSON for chat message without sending a chat message. I mean, you can mock it, but the response won't be the real one.
Unfortunately, if your account doesn't allow to give VIP roles, my suggestion is to try to get access to a streamer that does, maybe some friend you know? Or start some test streams for a week, just to get the affiliate status. đŠ
For a widget, just use setInterval() javascript function to trigger your function. Just replace the seconds with the interval you want.
setTimeout( () => yourFunctionName, seconds * 1000);
Hmm I see, so it means the same thing. But thank you so much for the suggestion!
#community-helpdesk message @hoary furnace
I do not know how it is animated but depending on how the structure of the chat is done... In css, I would try to target every message except the last one and find arrow inside of it and just give it permanent opacity 0.
Something of this manner should do the trick. Take in mind this is pseudocode. I do not know the structure of your stuff so you would have to adapt this.
.chat-message:not(:last-child) .whatever-arrow-class-is {
opacity: 0 !important;
}
If you are using css animation to do this... Possibly setting animation-fill-mode: forwards; could do the trick but I have no idea what the starting state of it is.
is it possible for me to send you my code if that would be easier?
Sure, it be faster that way.
Is there a way I can edit the default overlay's follower goal count? I'm not sure where it's getting it's variable (probably some baked-in counter) but it's not in-sync with my actual twitch counts. It's off by about 30 which leaves the two goals out of sync.
Additionally, is there a command that I can run on my channel that just pulls the {{channel.followerCount}} to update it in the backend?
On your Activity Feed, click on the cog icon and go to Widget data.
Go to "Totals" and click on "Reset Session". That will refetch the data with Twitch.
There isn't any chat command to update that.
Huh! Would you look at that.. it was far easier than I anticipated. Thank you!
thanks, I got the SE API going, but then can I add points using the SE API? I'm trying and I keep getting 401 unauthorized
after some searching looks like I need oAuth header in the api call to add points? does that mean I need to make the streamer manually get a code and paste it somewhere? Im familiar with Jebaited so ill just have them do the Jebaited route...but for future reference the api calls where I get 401 unauthorized, I need an oAuth token, correct? and where do streamers get that?
Correct, the user would need to provide the JWT for that (which is not recommended). Jebaited is a better option, indeed.
Here you can find more information:
https://c4ldas.github.io/streamelements-api/#/#token
Does anyone know why Iâm getting (literally) hundreds of errors in OBS when using SE browser sources (overlays/elements)?
It almost appears like a 401 error.. or some type of auth/permission issue.. they all basically say âRefused to ___ because it violates the following Content Security Policy directiveâ.
Thatâs some sort of bug in some overlays. It doesnât change anything on usage, you can ignore it.
However, if you want to get rid of them, my suggestion is to create a new overlay and copy the widgets in the old one to the new one.
I donât know why that happens, but that was the only way I found to get rid of those messages.
public class Sultan {}
delete if this is not allowed
Hey Dev Team,
I am loving the new stream elements plugin for OBS. I love all the features. If you guys could add like a way to clip things in the vertical canvas I would really love that. If there already is could someone tell me how to
is any option to send message to first time chatters only (if not on SE do you know of a bot that can)?
will start making custom alerts, widgets, goals etc. But who do i share it so i can sell it
i have a small question. is there a way to get info thru the API with specific Alert is playing in my Streamelements Overlay? and can somebody then explain that to me?
im really new to the whole coding thing.
The dev team doesn't access this channel (sadly). This is just for the community.
There isn't a way to automatic vertical clip, it's a Twitch limitation.
Not directly, SE doesn't have any command or native way for that. Don't know any that does.
If you use Elements, you have a sharing link that you can use it.
Which info exactly you need? Could you be more specific?
I'm seeing posts surrounding Trojan Malware in the ground control app. Can anyone clarify what this is?
Any chance you could link where "information" this is coming from?
I have an Alert with a lot of different varieties and I want to know with variation is playing so I keep track of it with a other programm (streamerbot)
Got it... But no, there is no info on which variation is currently playing.
I mean, you could use the option "Enable custom CSS" for each variation, but you would need to rewrite the entire variation, coding the alert manually.
ok i guessed that much from what i found in the docs. so i would need to rewrite all the Alerts with Customs CSS and then use the Channel KVStore Update to write a new value that i can then get with streamerbot?
or is it enough when i use the Channel Overlay action?
It seems you want to use Websockets. Well, Channel Overlay Action is not triggered when an alert is playing. Using kvstore would be a good one.
You can set the value of each variation using SE_API.store https://docs.streamelements.com/overlays/custom-widget#se_api
is there a stream elements event for hypetrain information yet? Or is it still only accessible through sockets and pubsub?
Good Afternoon - I have been trying to create a First Time Chatter command, to populate when someone chats in my stream for the first time, How do I do that with Stream Element?
Ok then I was on the right track. Gonna start tinkering away on it! Thank you very much!
@severe shell Sorry to @ you directly but I have hunted around the docs and I think you might know the answer. I am sending a custom event using /socket from a widget. AFACIT its working fine (i am getting a 200 response), but using the astro API I can't see it on the channel.activities topic. Is that on a different topic or am I out of luck and need to use realtime?
It depends on what you are sending exactly. Astro is based on subscription topics, whereas realtime isn't.
So unless the data you are sending is compatible with Astro websockets, you won't see it there.
Also, anything you send to /socket will give you 200 response, as long as the body of the request has "event" and "data" objects.
Ah, I probably fall into the later case, because I am sending an event of event:fire and an empty data object. I think my workaround here is to use the KV store possibly -- my hope is to trigger some IRL electronics subscribed to the websocket, if you have a better suggestion. Failing all else I can just throw up some sort of pubsub server myself that the widget can kick off to.
Also, thank you for the late night (at least for me) help!
Why donât you use Streamelements realtime, instead? It uses socket.io and that maybe should work for you
I believe you can also connect to it via WebSockets directly (wss://realtime.streamelements.com), but I never tested that.
Tried that once. Socket.io's protocol is adding way too much on top of standard websockets
Hi everyone!
I'm currently developing an element which requires me to catch chat messages. Unfortunately, when I go on the Simulate view, select the Widget Event (SDK, API) option and click on the Type, nothing happen, the dropdown is empty and I'm consequently completely unable to test my widget since I can't even click on the Simulate button.
Does anyone know a viable workaround to emulate events like this please? e.g. send chat messages without passing by the SE UI? (the element is not published, so sending messages to my own twitch chat wonât do) â I didnât manage to find documentation regarding this, so if someone could please share some insights, itâd be greatly appreciated, thanks a lot!
Well... It is possible to connect, I was able to do that. But as you said, there are too much happening that is abstracted by socket.io.
So unless you manage the connection, send correct data, among other things, you'll get disconnected frequently.
Either way, I'm going to send here what I could find, so maybe it will be useful.
Connecting to realtime using Websocket:
URL: wss://realtime.streamelements.com/socket.io/?transport=websocket
After connecting, we authenticate sending the following data (42). Available methods are jwt, oauth and apikey:
42["authenticate",{"method":"jwt","token":"YOUR_TOKEN_HERE"}]
You will receive the response the authentication was successful. From now on, you are able to send and receive info. However, you need to keep sending keepalive data (2) to keep the connection alive. Based on the actual SE connection, it sends the keepalive every 25 seconds. Just do the same:
2
You will receive 3 as response.
Edit: The interval is informed once you connect to it. Check the pingInterval value. And the pingTimeout is how long your ping (2) should wait for the response, before considering the connection dead.
0{"sid":"KyWKxUwsJCdNghUbKFGf","upgrades":[],"pingInterval":25000,"pingTimeout":20000,"maxPayload":1000000}
Every data you want to send through the websocket, needs to be a 42 and an array. The first item of the array is the event name and the second is the data itself (it can be an empty object), so it should look like below:
42[
"fire",
{ "hello": "world", "test": true, "blablabla": 12345 }
]
Just out of curiosity, this is what those numbers mean for socket.io:
https://stackoverflow.com/a/65244958/21875540
When I am using native websocket API I can see just a payload in my chrome console for sockts:
But when I use socket.io with their emit event, I can see some strange numbers before my actual payloa...
is it me or does the websocket connections to SE get disconnected way too frequently
It is you
Hi, in my custom overlay I would like to react to the alerts pause/unpause event.
There is a mute/unmute event, there's skip event, but there is no pause/unpause event.
Am I missing something, or is the only way connecting to the astro websocket?
I'm trying to avoid websockets if it's possible, especially since my overlay already connects to 3 (built-in StreamElements one and 2 custom ones)
I guess follow this?
#dev-chat message
Hey guys, I'm very new to this. Like no clue what I'm doing. Where should I start to figure out how to make a widget similar to stream pals where when someone comments in my chat( either kick or twitch) a character drops in from a parachute pubg style and uses random pubg weapons with in game damage and range?
No idea which widget you're talking about, sorry.
But if you want to start creating widgets, you will need to know some HTML, CSS and Javascript. Then you can look at the SE documentation in https://docs.streamelements.com/overlays, and also check the widgets in #widget-share, which have their code available to check and modify as you want.
Or, if you already have some knowledge, you can use Elements and its SDK available in https://dev.streamelements.com/docs/widgets-elements-sdk/9do3bhwlp2fdt-introduction
Could a feature be added to the Streamdeck that allows you to switch multistreaming scenes at the touch of a button?
Hey folks, I'm trying to add a feature to an overlay that makes the bot send a message in response to a command. What is the best way to do this? I was trying to go the route of making an API request via the code below, but kept getting a 401 Unauthorized response.
async function sendMessage(message) {
const url = `https://api.streamelements.com/kappa/v2/bot/${channelId}/say`;
const options = {
method: 'POST',
headers: {
Accept: 'application/json; charset=utf-8',
'Content-Type': 'application/json',
Authorization: `Bearer ${jwtToken}`
},
body: JSON.stringify({
message: message
})
};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error('Error sending message to chat:', error);
}
}
I've checked on https://jwt.io/ and the expiry isn't until Oct 2025
Also an aside, but does anyone know how to add line breaks in the bot responses?
Not possible as no platforms support it.
Widget wise? Someone may have an idea how.
Otherwise....
Chatmessage can be sent using a jebaited token.
"Line breaks" can only be done by sending a second message, therefore technically being on a new line
Ooo interesting, have not seen jebaited before. I'll explore that later today, thank you 
I was following this message #dev-chat message and ran into some issues. I got around them by other means, but wanted to point it out to see if there were better solutions.
- For some reason, the url puts a
$in front of the jebaited token. I couldn't for the life of me figure out why, ended up concatenating the parts instead of using the backticks, and that solved it. - I was blocked by CORS and needed to include the
{ mode: 'no-cors' }option - Messages that have
/in them fail to send, I get a 404 error. Solved this by double encoding the message, soconst encodedMessage = encodeURIComponent(encodeURIComponent(message));, that way/gets encoded as%252Finstead of%2F
- If it is in a custom widget, you are probably using the same variable name as the FIELDS. SE will translate the variables wrapped into
{ }or{{ }}to their values before interpreting any code. The solution for that is simply change the variable name in either your JS or FIELDS. - That is not expected, to be honest. It never happened with me.
- Yeah, the
/is considered a new path in URLs, so it is kinda delicate with that.
hi everyone
can someone help me to get twitch and youtube events structure? I realized this can be done with replaying some events in streamelements activity feed. I need to know whether my code is already compatible with the structures from live events or not, and not just from the emulate event. here's some event that i need
youtube: superchat, subscribe, become member, gift membership
twitch: follow, become subscriber, gifting subs, send bits, raid
Best way is to check the option "Preview LIVE on Stream".
The structure is here: https://docs.streamelements.com/overlays/custom-widget-events
If you want to send "real" data, you can use the examples on this page (just take care not to send invalid events structure, otherwise you can break your activity feed):
https://c4ldas.github.io/streamelements-api/#/operations/Post/activities/:channel
That will trigger real events on your activity feed and overlays
wait, so if i use preview live on stream, when i emulate event, it will also trigger real events?
Kinda, it will show as "replayed" on activity feed... But the event object is closer to real life events. Without that option you have some useless data (like items array, that doesn't exist in a follower event).
Ahhh, okk, i will try it, thank you for the info
oh yeaa, it worked! btw, how do i know the emulate equivalent of the real event?
for twitch, follow is just follower event in emulate, but for the subscribe event, how do i emulate a viewer that subscribe vs viewer that gift subs?
Select the custom option in subscribe alert and fill the fields
but there's no option for just subscribe, it only show community gift and ios sub extension
I've just checked the Emulate option. there is a "gift" option in the subscriber event. That's for the gift event. The "1" is a normal subscription
ahh, okk, thank you
#announcements message
So I saw the new update to streamelements, and they seem to have support for channel points now, does this also give the devs a new event to use?
I checked the normal locations, such as the SE overlay docs and the test events themselves, but noticed no changes
(this is a question for streamelements overlays, not Elements)
actually, thinking of that, does anyone know if there is an actual repository / record for all the event object structures that SE has? I've been trying to find one for.. actual years at this point, and the official docs seem to really simplify the sample object signatures
Yes, you can see it in onEventReceived listener.
Nope, the only official documentation are the ones in https://dev.streamelements.com and https://docs.streamelements.com
I see, haha, guessed it was worth a shot asking in here
so following up on that one (I saw that notification in the github repo haha)
I was mainly asking if SE has the label of the point redeems written down anywhere, also if you guys knew what it was
I wish I had time to collect all events and create a doc with them, but it takes a lot.
oh, seems to be
channelPointsRedemption
all good dude hahaha, Honestly really grateful you take the time to help people out and have that API reference, honestly I'm hoping devs start adding self documenting tools to the APIs so there is a consistent update between backend changes and stuff we find
Hi! Just started using the SE astro websocket and what's the logic behind tips not always coming through as an event? Does the streamer need to be online? I have make sure to subscribe to both activites and tips for multiple SE "channelIds" for the same creator and its still flaky.
Does the streamer need to be online? No
From my tests, channel.tips isn't working, so you will only get tip events from channel.activities.
And yeah, each channel id needs to be subscribed individually.
Seems about right, I do use channel.activities and get lots of different type of events but sometimes the tip one has not been pushed đ€
Hey. sorry I'm new to this discord and not sure if I'm in the right place. I'm trying to create a couple elements for a stream in the next few days. I'm trying to make a Donation goal, but I need to track the donations from an external site. I'm also wanting to create alerts that come up when someone donates to that specific site too. If it's relevant, the website is a fundraiser page. I'm going to be honest I have no experience in coding at all (I googled and found something about web scraping or something) Is there anyone that can help me or point me in the right direction? đ
Put your question in to ChatGPT and keep asking questions đ
exactly what I'm doing now haha
almost impossible to help you without knowing which platform is being used for your fundraiser. the short answer is, if they have some kind of API it might be possible.
In case you or anyone else needs:
https://c4ldas.github.io/streamelements-api/eventreceived.html
It is just a draft, but maybe in the future I will suggest it to be in the official docs (need to replace some info with mock data).
Godly, thanks so much HAHAHA I tested it out so I had my own signature, but I'm sure people will love to have this
twitch channel points streamelements support for twitch channel points twitch rewards point system point redeems
Good evening folks!
Does the YT ChatBot work as expected? Iâve streamed to Twitch for some time but recently tried to use YouTube - StreamElements mentions the bot is in my chat but no commands nor timers are working.
Additionally, is there a way to set a bot account similar to Twitch?
Hello everyone just wondering if anyone knows how to fix streamelements alerts being delayed whilst Iâm live I get a couple hundred in TTS messages every night and 80% of them either come through either 10 minutes or hours later Iâve tried everything support wonât help I just donât know where the cause for this is coming from Iâd appreciate any piece of advise I can get thanks
Hey! Iâve had similar issues with the YT ChatBot not triggering commands or timers properly. Itâs worth checking if the botâs permissions are fully set up in YouTube Studio, and that itâs connected to the correct stream. As for the bot account, YouTube doesnât have the same setup as Twitch, yeah, but you can use a separate account or a service like StreamElements to manage the bot. Hope that helps!
Hello, I'm looking for a solution to display relevant messages on OBS like featured chat used to do. Thank you if you have a solution.
Thank you! I didnât have it set as a moderator and that solved the issue!
Glad that sorted it out, YouTube bots can be a bit sneaky like that sometimes haha. Happy streaming! đș
pahelp, when i connect my tiktok, is not working when im starting to live, i have access on live but it says i dont have perms
Does anyone know why this is happening? The issue occurs when I test the widgetâsometimes the text looks pixelated or blurry, and other times it's clear, like in my example. Iâm not sure whatâs causing it. Could it be a rendering issue or something else? Iâm really confused.
We donât know⊠is that a video, an image, a gif, what exactly?
Is that an alert box, a chat widget, a goal widget, a custom widget? If itâs a custom widget, do you have the code of that part?
We would need more information to be able to help you.
Is there a way to set up a command with multiple responses but the responses are not random just in an order
Hey, I'm working on a custom chat widget and noticed something weird with gift subscriptions:
When I emulate community gifts - the gifter's 'custom message' only shows up in the recipient events (isCommunityGift), not in the initial bulk gift event (bulkGifted).
Is this how it's supposed to work by design or am I possibly doing something wrong?
Thanks! đ
Working with emulated events is very confusing sometimes, especially when it refers to community gifts.
So I collected real events and put them in a webpage, which you can have a look at the correct event object: https://c4ldas.github.io/streamelements-api/eventreceived.html
Look for "Community Gift" and you will see the objects structure fired in "onEventReceived" listener
Also, community gifts don't have custom message in real life (as the gifter cannot type a message when sending the gifts). The message is always a placeholder.
Hey! I'm working on a chat widget, and I was wondering if anyone has any idea how to reposition the badge icons from one side of the name to the other?
can't seem to find that anywhere
Just change it on the code. Put the div on the other side
Or use CSS for that
I'm trying to use CSS, but I'm fairly new at this, and I'm trying to do it all on SE, would you happen to know how to maybe go about doing that?
Hello, who know how can i install my own chat bot on stream?
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.
That's the sole exception for how to add the bot.
Any other supported platform just needs you to hit the join button on the dashboard.
I have created my own separate account on the site and want to use it as a bot, but I did not find this option in the settings in OBS and on the site.
You can choose a custom name for the streamelements bot by logging into the option on this page. https://streamelements.com/dashboard/bot/settings
If the option to login is not visible while logged into your Twitch account please make a ticket so staff can fix it for you (!ticket custom bot name)
Read the bot message and join it as well.
ok, how can i rename bot?
.
i dont see it
Read the bot message again.
well that answers my question in a whole different way then. Thank you so much!
You can either go into the JS and find where the HTML is being generated for user messages. Then change it so that the div or span the badges are in are after the Username div or span. Or you can find the class of the container div that has the username and badges and targeting it in your css and making it display:flex; and flex-direction: row-reverse;
But if you're not familiar with CSS i recommend taking a course on freecodecamp or at least downloading some sort of a learning app to get more familiar with CSS. or use ai to help you, but make sure to ask it what it's doing and not copy-paste the code it feeds you - but instead type it out by hand and try to understand what you're doing
Still working on the subscription events for a chat widget... I have another question đ€
The individual sub-gift JSON has the following properties: "displayName", "sender" and "name".
I'm guessing "sender" = is the sender's username, "name" is the gift-recipient's username (?)... but I'm not sure who's display-name "displayName" corresponds to. The emulated event on streamelements seems to just use one user for both gift sender and recipient so I can't check for which one is which.
also judging from the available properties, there's no way I can get the display name for both of them, right? just one of them, and then the un-capitalised username for the other
displayName is the user who received the gift. I've just updated my page with the subgift object:
https://c4ldas.github.io/streamelements-api/eventreceived.html#subgift
i see, that' clears it up. so i can't get the display name of the user that gives the gift, just the username?
Exactly đŠ
darn đŠ btw is there some way i can test events like subscriptions and gifts outside of the stream elements editor - without running the twitch cli and figuring out how to hook it up to streamelements?
Well... You won't be able to send data to SE using Twitch CLI, unfortunately. But it is possible to test events outside the editor:
If you have a Streamdeck:
#dev-chat message
You can do it directly via API using mock requests:
https://c4ldas.github.io/streamelements-api/index.html#/operations/Post/activities/:channel/mock
Or... If you laugh in the face of danger, you can send "real" events via API as well
https://c4ldas.github.io/streamelements-api/index.html#/operations/Post/activities/:channel
gotcha, thank you
Ok, I figured it out, as you can see, I'm trying to make a CSGO chat, but I'm trying to add custom chat badges to replace the default twitch ones, like for example the mod badge, to match the aesthetic, is that possible?
I already have the icons made for moderator, broadcaster and VIP
just don't know how to add them
You can add a JSON entry for an image like this.
"someImage": {
"type": "image-input",
"label": "Some Image"
},
The variable someImage will have the direct link to the provided image.
After that it's just swapping the real badge url with your custom one.
I'll try that, thank you!
how do I uninstall this thing my OBS is in portable mode and your software will not uninstall even if I put in programs location but as soon as I take it out it back there
also your new update causes a problem with vertical plugin and many multi streaming plugins
I'm still working on a chat widget!
Reworking my method of removing old messages as new messages come in to measure exactly how much vertical space is needed and how many messages need to be removed. Before that I was using recursion which.. was a bad method and trips up my custom animations.
The issue I have is merged posts, I've been handling them by appending consecutive posts from the same user as spans within that user's original post, and when space was needed for a new post, the removal handler would keep the merged post but remove the oldest span.
I'm lk dreading having to recreate that same method with the new handler I'm creating.. and really conflicted about how they would animate if say I need to remove 1 post then 1 span from a merged post and the post removal animation is sliding up and disappearing.. should the merged post span follow suit? should it be animated differently?? is that visually confusing??? đ”âđ«
Or should I just treat merged posts like regular posts from now on and not take into account the individual spans inside merged posts? feels a bit mean to get rid of a consecutive posters full scope of messages in one fell swoop.. but maybe it's the better, more visually consistent solution?
so TL;DR:
Should I have my overflow removal handler for incoming posts remove individual messages from merged posts or just remove the entire merged post when space for a new post is required?
... and like, are merged posts even something worth spending time on? đ€
sorry about the long ass post btw đđ»
Not fully sure what you are trying to achieve with the "merging", I just can't see the reason to do that... but... If you want some fancy way to clean up messages that are no longer visible check out Intersection Observer API You connect it to ever message you "create" and define the container to which they have to "intersect" with and then just check its intersectionRatio if its 0 you can just delete the element. Rest is up to whatever you want to do.
Little super simplified example from my multistream chat (powered by streamerbot so I had to trim a lot of things off here):
let options = {
root: null,
rootMargin: "0px",
threshold: Array.from({ length: 1000 }, (_, i) => i / 1000)
};
let callback = (entries, observer) => {
entries.forEach((entry) => {
if (entry.intersectionRatio === 0) {
observer.unobserve(entry.target);
setTimeout(() => {
const container = document.querySelector('.main-container');
const childToRemove = entry.target;
container.removeChild(childToRemove);
}, 1000);
}
});
};
let observer = new IntersectionObserver(callback, options);
// You will need to modify the stuff here so it fits your things, this is super simplified
const onMessage = () => {
const container = document.querySelector('.main-container');
const messageElement = document.createElement('div');
messageElement.textContent = "bla bla bla this is content of the message";
container.appendChild(messageElement);
observer.observe(messageElement);
}
// If you are handeling message deleting
const onMessageDelete = (messageId) => {
const container = document.querySelector('.main-container');
// Here we look for the message that we need to delete, in my case they all have a data attribute with the message-id
container.querySelectorAll(`[data-message-id="${messageId}"]`).forEach((messageElement) => {
observer.unobserve(messageElement);
container.removeChild(messageElement);
});
}
const onUserMessagesDelete = (userId) => {
const container = document.querySelector('.main-container');
container.querySelectorAll(`[data-user-id="${userId}"]`).forEach((messageElement) => {
observer.unobserve(messageElement);
container.removeChild(messageElement);
});
}
Oh the merging option was in the default/example chat widget steamelements have on their github. so i kinda ran with it thinking it's a customary option to have.. I'm starting to think most people don't have it on their custom chat widgets though :p
That's an intersting option for getting rid of older messages! it's a bit different to how i'm going about it, for now I'll keep doing it the way i'm doing it, but I'll add that api to my notes.
what i'm was trying to ask was more of a ux "abstract"-kind of question.
Basically my handler(s) for adding and removing messages measure the vertical space of incoming messages, and remove as many old messages as necessary to fit it in.
this in tandem with having the option to merge consecutive messages from the same user (or not!) causes it me to wonder if when removing messaages my handler should remove an entire merged post or just the messages inside it that are necessary.
removing the entire merged post is easier to maintain, and streamlines any animations i add. But it's harsher, it kind of punishes someone for posting more than once in a row with potentially less screentime.
removign just the messages that are necessary in a merged post is harder to maintain, and adds another level of complexity to animations. But it's not as harsh.
lk I'm erring towards the just removing the entire merged post option because it seems like the pros outweigh the cons (con?)
but i was curious to know what any other widget devs might think
Does anyone Know how to make a custom multi chat overlay
hey im having issues with alert boxes they wont show my text and i have it above the image
I already made the chat with the custom chat github but it doesn't connect to the other streams
?
So it's come to my knowledge that the default chat widget is no longer a multi chat. Any ideas?
if you want to take it as a learning project and like programming i suggest trying to make it yourself.. but it's probably a hard one đ
I already made a custom one, I just can't wrap my head around the multi stream thing
I've been holding off on streaming because of this
i wouldn't hold off - figure it out as you stream đ
-<-
Hi, I would like to know how I can set up multiple different alerts for donations (for example one for those from 1 to 5 and another for those from 10 to 20) how can I do it?
Answered in #general-chat
Hi guys, how do i proper use the locale field in my custom widget, for user to change, and reflects in the currency, currency symbol and currency label.
I'm trying everything and i can't acess this, even to see what is saved.
I'm going to use on the Tip event, after a replace from some variables in the field of a custom message like:
"{user} send {Symbol} 5.00 {Label}".
But the Symbol and the Label could go after the replace with this message:
"{user} send {amount}"
so as far as I am aware, there is no direct way to implement a multi chat widget using the SE overlay API, and that basically just comes down to the fact that your streamelements account i.e your overlay event listeners are only connected to one stream platform at any given time.
If you have development experience with nodejs there are some other platforms that I know would allow you to build your own implementation
nuttylmao on twitter talks about that some more
is there a certain version of obs thats needed for s.e live
V31
i downloaded the s.e live and it auto downloads a version thats not useable
That's the only supported version.
Yes Iâm aware
any fix to my issue?
so im using the custom widget i have hit a bit of a road block as im kinda new to coding this kinda thing i have the way i want my chat layed out done i just dont know how to make it diplay usernames chats badges ect and make the "boxes" (idk what else to call em) dissapear when needed
here's a screenshot of what i have atm
i wanna display chat in the gray areas and usernames where it says user a b and c chat
then when theres no chat to be displayed its gone
just kinda blank chat area
dk if thatll help but
you cant do that with html and css alone. however, if you know basic javascript, you should be able to use the chat overlay code from streamelements' github đ
i have 0 idea how javascript works... tbh most of that was cobbled together from a few days of googleing and asking chatgpt
definitely a good result so far đ
thank you that means alot my brain feels like mush
i think i have someone who can do the javascript part for me i just gotta wait till they get on their computer to ask
Hey guys, I have questions: letâs say I stream both horizontal and vertical formats at the same time on YouTube, then I have to schedule two YouTube live events BUT StreamElements overlays only get events (chat, alerts, âŠ) for one of the two (probably the last one to start), is it normal? What can I do to fix that? Thanks!
Hello everyone
nothing........
that ive found
oh too bad
check the dm i just sent you
thanks but it doesn't help
did you even read it?
That's really interesting - how does that work on youtube to stream twice? Is it the same channel or are they two different channels? I also don't quite understand how livestreaming works on youtube specifically, so please excuse my ignorance.
Oh donât worry, streaming on YouTube is much more complicated than on other platforms, especially when streaming both vertically and horizontally
So far I'm manually multi streaming on both X formerly Twitter and Twitch through an obs studio plugin.
I tried finding how to get chat from YouTube, but the API is a polling API and it will eat up all of your credits before you even complete an hour stream.
Why on earth would it be a polling API when chats are real time thing. Even Kick had a web socket API
Because that's how YouTube does it. Blame their
ideas.
I'm considering just scraping using Selenium.
Inb4 429'd and 403'd 
There's so many ways a stream can be scuffed these days!
But I got my audio waveform visualizer half-working!
I'm very proud of this progress so far.
I don't know about that... I was able to hook up with puppeter and even implement login process with saving cookies just so I do not need to store login details in code at all so I have access to all apis calls and features like normal creator account. It works perfectly. (still work in progress thou, I want to make this work with multiple accounts and optimize for server side running)
What
the hell did StreamElements update
that it breaks certain alerts because of iframe
was it always blob: ?
I can open up the iframe's blob: URL in the browser and then I see that it's broken as well
if I open up a blank non blob: page and copy paste the exact same HTML content in there, it's not broken
I fixed it
but
a dev needs to fix it
I set a breakpoint where it creates the Blob, and it's not adding <!DOCTYPE html>
which breaks style somehow for some reason
pls fix
Hey Devs, This JS code is from a widget Viewer Count by LX. please i need help i want to make it work for youtube as well
That widget uses decapi (a public API) to get Twitch viewer count (line 21), which doesn't have support for Youtube.
You would just need to find another API that has support for Youtube (I don't know any, by the way)
do i have to find a public api?
or google api would be just fine?
Google API needs authorization, it wouldn't be something simple, unfortunately.
ok done with google api
Is there anyone here that could create custom widgets using the streamlabs/elements api?
dm me if u can
have a paid inquiry
how do i get tiktok live to work in stream elements
Will being able to live stream both portrait and landscape be available for the SE plug-in on obs?
I want to make an app that allows me to rename people in my chatroom so I can give them nicknames. But I'm a total beginner when it comes to app development, my only experience with programming is in Unity, so I don't know how to begin to interface with Twitch API or even what the project I'm trying to make would be called.
Hey guys, I'm using the SE_API to get permanant data for a custom widget. While the call is super fast in the browser, it takes up to 10s in OBS. Was wondering if any of you had experience with that?
It shouldn't take that long, even if the connection was slow. But if you want, you can test if requesting it directly via API is quicker: #dev-chat message
Quick question: On the activities block it says
Requiring authorization is optional. A user can access data without authorization or with authorization, if provided.
But, when I try to access it without authorization it tells me that I'm not authorized. Am I missing something here? Or just reading it incorrectly? Ideally I'd be able to do what I'm doing with just the bearer auth token and not have to go through getting OAuth activated because I'm just looking to make a custom widget for a friend.
https://dev.streamelements.com/docs/api-docs/861a5d5450bbb-channel
Unfortunately, the official documentation for API endpoints is outdated and misses a lot of information.
You can use this one instead, it is unofficial, but it is way better: https://c4ldas.github.io/streamelements-api/
Ah, it looks like it allows JWT token access which is all that I really need. Thanks for the quick response, super helpful. The official documentation should definitely be updated
hi, im trying to develop a small integration with YouTube chat in a custom widget, but what do I do if the YouTube livestream is off and i cant access youtube chat? For example, on Twitch, the chat is always available, even when the stream is offline. Any ideas?
Unfortunately can't really do anything without a livestream going due to how YT is designed.
And it has to be a public one at that.
guys is multi streaming an experiment with obs with the plug in
yeah i tried asking over there a few hours ago
was hoping to at least find any info even if its just that the plug in is experimental ...since idk when i may hear back was all
Hi. I don't know if this is the right channel. If not, tell me where else I can ask.
Is there a way to detect whether a Twitch channel is online or offline in a custom widget? So that I can use it to start/stop a counter/timer, for example.
Thanks.
lol ^^ how bad (message was deleted)
search for 'twitch api check if channel is live'
You can use decapi uptime endpoint:
https://docs.decapi.me/twitch?endpoint=uptime%2F%3Achannel
Documentation for the project DecAPI, a custom API provider intended for Twitch chatbots.
Thanks, I'll take a look at that
Hello, I have a question about the SE.Live, and I hope this is the appropriate channel for this. I've been using it for a while, and I originally stream on twitch however it's still doesn't support AV1 more than a year after the announcement. I know that YouTube supports it, so I was thinking if I streamed to YouTube as my main with AV1 if it would have a better quality on twitch, or no impact at all? Or maybe it would need to transcode an extra time to send my broadcast to twitch? Or not work at all?
That seems more like a #tech-talk subject. Here we discuss SE API, widgets, chat commands, programming languages and things related to development.
As regards your question, that wouldn't change anything on Twitch. You would need to use different encoders per output if so(AV1 to Youtube and H.264 to Twitch, for example). For better Twitch quality, you could increase the bitrate, for example.
hey idk if anyone else is having the same issue but recently, my obs has been crashing. I found what the issue was. everytime i resize my canva for my camera it crashes. i tried deleted the source and make a new one and still crashes. now i tried just resizing my dispplay canva crashes. so everytime i tried to move/resize the canva obs crashes. any help would be great but also wondering if anyone ellse is having this issue. Thanks, â€ïž
Try to ask that in #community-helpdesk
@elfin junco check out Gael Level or Nutty because they both have tutorials on that .
sure, thank you so much
this appears as a bug to me. "High Quality" should be "Normal Latency" to align with YouTube Studio if I am not missing something?
Maybe a better place to ask is #tech-talk or even #community-helpdesk
Can you subscribe to multiple topics on astro on the same connection or do you need to create a seperate websocket per?
You can, just send different subscription topic requests and done.
Hmm, that gave me an error saying I was already subscribed to a topic
Probably this is the error you see:
{
"id": "01JWV46QEVEC24K0002RSNXM1V",
"ts": "2025-06-03T14:47:54Z",
"type": "response",
"nonce": "1747667378606-2",
"error": "err_bad_request",
"data": {
"message": "already subscribed to topic"
}
}
It means you already subscribed to that specific topic and you are trying to subscribe to it again. Check your code to make sure you are not subscribing to the same topic again.
Hey guys, don't suppose anyone knows whether it's possible to create a custom chat using the StreamElements custom widget, and then combine both Twitch and YouTube chat into one overlay?
Possible? Maybe.
Worth it? Not at all.
The PITA that YT is needing to be both a public stream and the fact it doesn't "update" as fast as it does with twitch makes it not exactly something people want to do.
Thanks for getting back to me đ
Ah that's a shame, because StreamLabs' custom chat widget combines them by default. It's the only StreamLabs thing I use but ideally I'd ditch it entirely and use StreamElements. Is it not feasible to replicate that in StreamElements?
I'll let the coding guy answer 
i feel like ive been searching for ages. But where can i find the button that shows the alerts ive got - so basically the button that enables the alert?
Not sure what exactly you mean by that.
i have a "new follower" alert. I want to see what it looks like when it is pressed đ
nvm. I found it
There are some tricky ways, but none of them are actually officially supported, as it is against Twitch TOS.
One of them is creating the chat widget in your Youtube account to capture Youtube messages. Then you could connect to a Twitch chat (which is kinda public) and show the messages together.
Just remember (again) that showing chats from other platforms on Twitch stream is against Twitch TOS
This widget here, for example, was made for multi channels on Twitch, but if you install it on your Youtube account, you might be able to capture your Youtube and Twitch chats together. However, it's an old widget that uses twitch-js lib, which repository was archived in January 2025
#widget-share message
https://github.com/twitch-js/twitch-js
Hi guys, someone can help me with "currency" on the tip event for my custom alert? i want every time i got tipped, it shows the correct "symbol" (R$, U$, E$, etc) based or on my locale settings, or the coin based on my tip page.
like, if someone tip me "10". It will be 10 (sender currency), (mine [locale setting]) or (will be converted to my tip page currency). Cuz the "amount" variable just send me the value, not the rest that i need to display on my widget
is there a way to copy my chatcommands and everything under chatbot and other from twitch to youtube and similar?
or do I gotta do em all seperately
that would be awesome. At least an import option, to select shared commands
i tried to multistream from youtube and twitch but keep getting the error to starting the output failed please check the logs for setails
Everytime I try the roulette option it says user not found and no points
Iâve tried parting the bot and reinstalling obs nothing works
User currency comes from onWidgetLoad, obj.detail.currency.
let userCurrency;
window.addEventListener("onWidgetLoad", async (obj) => {
userCurrency = obj.detail.currency;
});
window.addEventListener("onEventReceived", async (obj) => {
console.log(userCurrency.symbol); // R$
})
So you initialize it when your widget starts and then you can use on the tips
Can I make my multichat visible on my stream?
Anybody?
Not a dev related question, maybe check on #community-helpdesk.
i already tried that and isn't working. Same for .code and .label.
I put a log right before the listener If and returned undefined for "userCurrency", just like another log after the "inlcudeTips" if.
Oh ok my apologies
The currency is from âonWidgetLoadâ listener. You have to read it from there and set it to a global variable, so you can use it on âonEventReceivedâ tip event later.
I discovered what it was... I when adapting the code i misplaced the widgetOnLoad inside widgetOnEvent. Now is working. Thanks again
anybody knows why when i try to login to OBS via SE live it load a page to login an nothing happen but i am still not login đŠ
Ask that in #community-helpdesk
thks
I've made a Custom Widget in the Overlays.
Can someone see why the community (bulk) gifted sub event is also triggering the regular gifted sub event underneath? (Shown in the // --> comment.)
It's essentially counting the bulk gifted subs twice.
// || Main Event Handlers
window.addEventListener('onEventReceived', function (obj) {
if (!obj.detail.event) return;
if (typeof obj.detail.event.itemId !== "undefined") {
obj.detail.listener = "redemption-latest";
}
const listener = obj.detail.listener.split("-")[0];
const event = obj.detail.event;
if (listener === "subscriber" && includeSubs) {
let increase = 0;
const isGifted = event.gifted === true;
const isBulkGift = event.bulkGifted === true;
// Handle community (bulk) gift once
if (isBulkGift && !isGifted) {
const giftAmount = event.amount || 0;
increase = giftAmount;
console.log(`Community gift detected: +${giftAmount}`); // --> This log shows on a community bulk gift
}
// Handle individual gifted sub NOT part of community (bulk) gift
else if (isGifted && !isBulkGift) {
increase = 1;
console.log(`Individual gifted sub counted: +1`); // --> This log ALSO shows on a community bulk gift (shouldn't happen)
}
// Regular sub (not a gift)
else if (!isGifted && !isBulkGift) {
const tier = event.tier || "1000";
switch (tier) {
case "1000": increase = 5; break;
case "2000": increase = 10; break;
case "3000": increase = 25; break;
default: increase = 5;
}
console.log(`Regular sub detected (tier ${tier}): +${increase}`);
}
// Apply the increase
if (increase > 0) {
glitchLevel = Math.min(glitchLevel + increase, maxGlitch);
updateGlitchMeter();
}
}
});
Community Gifts Trigger 2 different event types.
One that tells you who gifted how much and one for each actually gifted sub.
You can get your head around it by seeing how a sub bomb shows up in chat.
ABC has gifted 5 Tier N Subs to the Community
ABC gifted a Tier N Sub to XYZ [This 5 Times]
More on that: #dev-chat message
Or if you are willing to make your life a bit easier in that regard, there is a lib that handles that logic very well:
https://reboot0-de.github.io/se-tools/
Thank you, thank you! 
this might be a dumb question but is the se.live plugin made with electron?
Gotcha, thank you for your help! I think for now I'll just stick with the StreamLabs custom widget tool đ
Do kvstores get wiped/reset after a certain amount of time not used?
Hey guys I need help I've set up prize wheel by pjonp using stream elements logged in via kick. My issue is that everything works except the chat feature
!Spin !join because I'm logged in thru kick when I log in thru twitch it works. Can someone help me tweak the code so it works with kick chat as well. Thank you so much
How to I trigger a upload(s) screen in my widget setting menu option ?
https://docs.streamelements.com/overlays/widget-structure#fields
Create a field called "audio-input" or "video-input"
I don't remember whether it is "sound-input" or "audio-input" (or if both would work)
There is an "image-input" as well
oke... found it : sound-input in the doc... will have a go.... đ
How do I add a field with normal display text
There are some issues:
1 - Jebaited (the middleware that sends message on chat) has only support for Twitch. So you aren't able to get a token from it and make the bot send a message informing the winner option.
2 - StreamElements overlays still don't have support to read Kick chat messages. So, even sending !spin/!showwheel/!hidewheel on chat, the overlay won't be able to read them.
There are some hacky ways of doing that, but they would be need many changes on the code and not that easy to fix.
What do you mean?
I mean I want to display normal text in my widget so I can list my available variables
As shown in the attached image
The image above uses a default widget provided by SE, but I'm hoping that normal text is possible within a custom widget as well
Ahh, that's not possible. I mean, there are some ways, but nothing as polished as the default widgets. Check the messages here:
#dev-chat message
Thank you. Do you also know how to get the duration since a stream was last live?
Sort of like how sessions last for 15m, I want to see when that 15m marker is reached so I can clear my own variables
Hmm, maybe you can find the time the stream ended here and calculate it. But it needs JWT, which is not safe to use on custom widgets:
https://c4ldas.github.io/streamelements-api/#/operations/Get:/channel
@severe shell wow that's really informative thx I was hoping it was a simple chat link replacement I want the chatter wheel or something similar but nothing exists out there! đđ
Folks... does anyone remember if bits gets send over the message event? Its technically a message but it has its own event so I am unsure...
Yes, cheer-latest, event and message.
ah shit... Now to figure out how to filter out the message event with cheer... (without being able to know how that one even looks cause I can't cheer to myself XD)
The cheer chat message has a property tag called "bits" on the message object (obj.detail.event.data.tags.bits) with the bits amount. Also, there is the emote of type "cheer" in the emote list.
I've just added it here, so you can check it: https://c4ldas.github.io/streamelements-api/eventreceived.html#chat-message-with-bits
Another thing you can do is connect to Astro websocket and subscribe to channel.session.reset
https://docs.streamelements.com/websockets/topics/channel-session-reset
Thanks for more info. I think I might go with the decapi uptime endpoint you mentioned a week or two ago and just check it every minute or so and go based off that.
Decapi uptime endpoint is cached, so maybe you should increase that checking to every 5 minutes.
https://docs.decapi.me/cached-endpoints
Sounds good ty
Thank you!
The tiktok issue not allowing to go live error still occurs. Any idea of when tiktok will fix it since it's on their end?
HI Devs!! SE Chat Bot on KICK is down. SE Chat Bot on Twitch is working. Just thought you would want to know
This channel is not directed to SE devs or staff, they don't access this channel.
For issues or contact with staff, the only guaranteed place is through tickets.
thank you
Better to ask in #general-chat instead. Not a dev question
k
Hi, everyone i want to make my own custom widget for my platform glitchover.com , so if a streamer is streaming and if any user follows him on our platform so it should show an alert so for that i want to create a custom alert on stream element but i don't know how can i get the data from my platform and how my stream element alert gat fetch that data to show in alert ??
That's something you'd need to check with them about and see if they have any kind of API.
Otherwise there's no way to really do it given that's a niche website I had to Google.
thank so much for replying.. like about which api you are talking ?? SE API ??
No. That website you mentioned.
okk ya that our website like we can develop that api route specific for that..
When is an update coming? It's been almost a month and there's still no update
For...?
To add TikTok chat in multi chat
To add the display of channel points in the multi chat when someone uses them
To optimize it
To add the possibility to choose which OBS audio track is sent to each platform individually customizable unless that already exists
To take into account the stream title and category directly in OBS so we don't have to choose them again when we want to start the stream
^^
Also fix that red emoji thatâs useless
My TikTok works perfectly I just have to launch it but the warning icon never goes away I donât understand why ^^
The first one we're still waiting on API access from TT to do much of anything.
You won't have that kind of answer here, the SE devs don't use this channel. Here is a community channel to discuss dev things, like widgets, chat commands, API, programming languages and things like that.
We don't have access to StreamElements/Ground Control/SE.Live development information
A ok
ok thanks
just looking at the documentation, there's no hype train event info sent is there
Exactly, you would need to get that info directly using Twitch API
Hey there, I make custom widgets for Twitch and just realised that the event received window.addEventListener("onEventReceived", function (obj) {
Comes out different depending on the user?
For channel point, I get an event that looks like this:
amount: 50
displayName: "Ashhki"
message: "ff"
providerId: "61792542"
quantity: 0
redemption: "Order"
username: "ashhki"
While another person with the same exact code got an event like this:
title: "Order"
type: "channelPoints"
userInput: "test"
username: "Ashhki"
Is there any reason why that's happening?
None of them look right, to be honest. The response format wouldn't change based on the user. Maybe what you have is not the native response, aren't you using any library or a custom code for that? You can find an actual example object for Channel points here:
https://c4ldas.github.io/streamelements-api/eventreceived.html#channel-points-redemption
What is the object response on the browser console when you have this code on the widget and redeem a Twitch channel points redemption?
window.addEventListener("onEventReceived", function (obj) {
console.log("Response object:", obj);
})
I get exactly what you have in your link but a person who installed my widget, with the exact same code got a different event.data. This is the first time it has happened but now I'm really scared it could happen again as I have absolutely no idea why this was!
Inside the event.data I get amount, username, displayName, etc but this person had cost instead of amount, title instead of redemption, text instead of message etc..
Hmm, just to confirm, does the other person also get obj.detail.event.data.raw and detail.event.data.backgroundColor in the response?
Based on the entries, it's very likely they have one of the custom widgets I created when SE didn't have Channel Points support.
Yes they did!!
So that's this one, I marked as deprecated when SE added support for it:
https://github.com/c4ldas/streamelements-widgets/tree/main/twitch-channel-points
Check the overlay and look for another custom widget (you can check the JS to confirm it looks like the one in the github page), so you can disable it.
Sorry, just to make sure I understand... Does that mean the user that installed my custom widget has this overlay somewhere in his StreamElements account?
Yes, usually in the same overlay, but you could find it in another overlay if they use more than one overlay on OBS.
If they installed in their account using my direct link, the overlay would be called "Twitch Channel Points"
Mmh interesting, they installed my overlay straight through overlays batary dev so there shouldn't have been any other overlay in it but it is possible they had it in a different one, I'm gonna ask them. Thank you so much, that gives me much relief as I imagine that this won't happen too often and if it does, I'll know what to do.
Yeah, ask them and if you need any help, just let us know
Just a quick question I use the goals overlays to show bits etc - i guess this info it the same as the dashboard figure - is there any plans to add Power Up figures to it as it is frustrating to have to edit it by hand before every stream?
Sorry if this has been asked and answered but I cant seem to find an official response. TYVM
I was searching for a way to update StreamElements counters... it does appear that PUT is supported for https://api.streamelements.com/kappa/v2/bot/{channel}/counters/{counter} (although the value you PUT is used to adjust the counter positively or negatively, rather than a direct assignment). Is it okay to use this API even though it is undocumented? It's being used from the web interface for editing counters.
Unfortunately, Twitch API does not provide access to Power Ups, so it is not possible to use it at the moment.
Thank you
I wouldn't care much about the "undocumented" situation... The SE API Docs is completely abandoned. But if I can help you, I'd suggest you consult the API Docs here:
https://c4ldas.github.io/streamelements-api/#/operations/Put/:channel/counters/:counter
Oh, that's fantastic. Bookmarked!
Sadly, SE_API doesn't support a counter_set postMessage command... it would be neat if the overlay could just update the SE counter on receiving a redemption.
I'm trying to emulate a chat message in my widget. Its a blackjack game and I have a queue system that I cant test any other way, well there are other ways to test but it wouldnt be a direct test, anyway........ any documentation or examples of a widget simulating a specific chat message like "!join" through a widget button?
Which platform?
Twitch
I know there's some 3rd party chat widgets that have a "send test message" but the only one I can immediately think of isn't free unfortunately.
Pinging @broken coyote as I'm fairly certain flow chat had this "feature" but don't have access/knowledge of the coding side of stuff.
So I have a user cool down set to like 50000 seconds for a command, but it seems to not be working.
I checked all the docs I could find and it was listed as seconds only.
The API lists it as an <int32> so I am assuming the number isn't to long.
Is there any thing else people can think of that might cause a cooldown to get reset so I user can re-use a command?
Basically any custom chat widget has a button to simulate a chat message that SE will understand like a real chat message being sent. But it is used for checking the animation/design of the widget.
Just go from the line if (obj.detail.event.field === 'testMessage') { until window.dispatchEvent(emulated);.
Another way would be simply... sending a message on the actual Twitch chat. Unlike Youtube, the Twitch chat is always available, even when you're offline.
The ways the cooldown of a command would reset are:
- Make changes to the command (or simply clicking on Save button)
- Disable/enable the command
- Part/join the bot
The channel owner is not affected by the cooldown, as expected.
Yeah that's as expected. I will have to do some more testing then. See if I can work out why the cool down fails.
Thank you đ
how to delete stream elements off obs
Hey guys, I created a Kick overlay, added a custom code widget and I receive alert events but not chat events. Is it expected? Do chat events work on kick? Thanks!
It is expected, Kick chat messages are not supported on custom widgets (yet, I hope)
Ok, too bad, thanks! They should write it somewhere in the docs
we're waiting on them to expand what is possible via the API anyways.
You mean kick?
Yup
Ok but on the SE.live landing page it is written that kick chat messages are shown in the multi chat dock
Donât they?
If so what prevents them to be sent to custom widgets?
Well, the messages arrive, but they are still not formatted in a way custom widgets work (I believe the staff is working on that).
The aforementioned lack of API documentation kn their end.
Oh, my answer was to the question "if so what prevents them to be sent to custom widgets?"
ok so if I get this right, a bit of work has to be done on the SE side to format those chat events and that's it?
I believe so. Format and dispatch the message to the custom widgets (but I'm not sure, it's just what I think).
any idea about how long it has been this way?
No idea, but if you are ok with some work on your side, you could connect to Astro WebSocket and subscribe to channel.chat.message. It ships the raw message structure for each platform, so you would need to format it for your usage.
{
"type":"subscribe",
"nonce":"1736596309572-11",
"data":{
"topic":"channel.chat.message",
"token":obj.detail.channel.apiToken, // your API token from onWidgetLoad
"token_type":"apikey",
"room": obj.detail.channel.id // Channel Id from onWidgetLoad
}
}
Here is an example of a chat message structure from Kick:
{
"id": "01JY3XJRP4Y3H571WZ5ZDNDEXK",
"ts": "2025-06-19T11:01:00Z",
"type": "message",
"topic": "channel.chat.message",
"room": "67a36a1f8a2abf0b4eb0f3fb",
"data": {
"message_id": "e7ff356c-9c59-4eb9-8f9e-9f77255caa9b",
"broadcaster": {
"user_id": 54674047,
"username": "c4ldas",
"is_verified": false,
"profile_picture": "",
"channel_id": 0,
"channel_slug": "c4ldas"
},
"sender": {
"user_id": 54674047,
"username": "c4ldas",
"is_verified": false,
"profile_picture": "",
"channel_id": 0,
"channel_slug": "c4ldas"
},
"content": "Test message with emote [emote:1579033:emojiAstonished]",
"emotes": null
}
}
cool thank you very much!
@vital wadi here is what i use
if (obj.detail.event.listener === 'widget-button') {
if (obj.detail.event.field === 'testMessage') {
let emulated = new CustomEvent("onEventReceived", {
detail: {
listener: "message", event: {
service: "twitch",
data: {
time: Date.now(),
tags: {
"badge-info": "",
badges: "moderator/1,partner/1",
color: "#5B99FF",
"display-name": "StreamElements",
emotes: "25:46-50",
flags: "",
id: "43285909-412c-4eee-b80d-89f72ba53142",
mod: "1",
"room-id": "85827806",
subscriber: "0",
"tmi-sent-ts": "1579444549265",
turbo: "0",
"user-id": "100135110",
"user-type": "mod"
},
nick: channelName,
userId: "100135110",
displayName: channelName,
displayColor: "#5B99FF",
badges: [{
type: "moderator",
version: "1",
url: "https://static-cdn.jtvnw.net/badges/v1/3267646d-33f0-4b17-b3df-f923a41db1d0/3",
description: "Moderator"
}, {
type: "partner",
version: "1",
url: "https://static-cdn.jtvnw.net/badges/v1/d12a2e27-16f6-41d0-ab77-b780518f00a3/3",
description: "Verified"
}],
channel: channelName,
text: "Howdy! My name is MrBoost and I am here to serve Kappa",
isAction: !1,
emotes: [{
type: "twitch",
name: "Kappa",
id: "25",
gif: !1,
urls: {
1: "https://static-cdn.jtvnw.net/emoticons/v1/25/1.0",
2: "https://static-cdn.jtvnw.net/emoticons/v1/25/1.0",
4: "https://static-cdn.jtvnw.net/emoticons/v1/25/3.0"
},
start: 46,
end: 50
}],
msgId: "43285909-412c-4eee-b80d-89f72ba53142"
},
renderedText: 'Howdy! My name is Bill and I am here to serve <img src="https://static-cdn.jtvnw.net/emoticons/v1/25/1.0" srcset="https://static-cdn.jtvnw.net/emoticons/v1/25/1.0 1x, https://static-cdn.jtvnw.net/emoticons/v1/25/1.0 2x, https://static-cdn.jtvnw.net/emoticons/v1/25/3.0 4x" title="Kappa" class="emote">'
}
}
});
window.dispatchEvent(emulated);
}
return;
}
And then in the fields
"testMessage": {
"type": "button",
"label": "Test message",
"value": "Test message",
"group": "Test"
}
I have question concerning the chat commands, i want to do something advanced and idk how to go about this.
Id like to have a custom duel command for people to do like !kill <username> and have streamelement say "A hit has been placed on <username>" But im not finding much info in the doc. I dont really know where to ask sry if this is the wrong place
This is the right place.
If you just want to create a command with that message, you can go to Chat Commands > Custom commands and create a new command there. In the response you would use:
A hit has been placed on ${touser}
I have a question I use chat GPT to come up with a good follow goal milestone I wanted to put on my stream and it's not updating do I have to be streaming for it to update or is there something that I'm missing last time I tried this it didn't work
Well now we know ChatGPT didn't train on SE docs 
Just to answer your question. You do not have any loading or updating logic in your widget.
Please read the Documentation.
For first load on your widget: https://dev.streamelements.com/docs/api-docs/775038fd4f4a9-stream-elements-custom-widgets#on-widget-load
For subsequent updates: https://dev.streamelements.com/docs/api-docs/775038fd4f4a9-stream-elements-custom-widgets#on-session-update
and yet it says its up to date lol I am no coder I just had an idea and wanted to try it the only thing I've ever done was C++and I don't remember how to do it
are you able to help get to work
No. I told you what was missing. Read the Docs at the specified page. There is a lot more wrong here then just not being able to update the Follower count.
If you're unable to code and unwilling to learn, then that only leaves commissioning someone.
And no I do not do commissions.
no worries and yes I am trying I am very interested in this Chaos
Great! I think there were some resources listed in a previous chat. Gimme a sec
Also, check the https://docs.streamelements.com/overlays, it has almost the same info, but it is more frequently updated. The dev.streamelements page seems abandoned.
Here is some basic info and where to learn:
#dev-chat message
If you have other questions, no matter how basic, I'm guessing some can help you here
I appreciate it I really do I hate it when I get an idea and then expect it to be easy or in stream elements case just simple copy paste the code in the correct fields and expect it to pull all information and have it ready to go. have a wonderful day and year
hi is anyone able to give me help to get my stream working
it says you Cpu is not supported by twitch ehancded
I suggest that you ask that in #tech-talk, maybe more people can help you on that
ok thanks for the help much apreciated
Hey there,
By using the Astro Websocket method and channel.chat.message for Kick, I don't get any badges to determine if the user is a mod/vip/sub etc..
Is it how It's supposed to for now? I get a pretty basic object (screenshot)
Thx
Exactly. Kick doesn't send any other data info in a chat message other than the one you see in the channel.chat.message, that's a raw message from them. Maybe you would need to use Kick API itself to get that those badges.
Alright, thanks for the clarification:
Hi, Iâd like to report a small issue and ask for some help.
I noticed a problem with the overlay sorting or search feature in StreamElement. For example, I have a project named "chat widget hello", and when I search for "hello", it doesnât show up in the results. But if I search from the beginning of the name, like "chat", then it appears.
Would it be possible to improve the sorting or search algorithm so that it can find keywords regardless of their position in the project name? This would really help when managing multiple overlay projects.
Thank you in advance!.
Is this in overlays or elements?
Because I just looked at both and it didn't return such an issue.
Same as sudo here, no issues on my side.
I use the search feature on a daily basis, and it always works regardless of the position of the word in the overlay name.
Unless you're having an issue that involves linguistical context we don't see.
Iâm new in streaming and im trying to stream but my game is not showing in se.live how can I fix it?
@bright jetty I had this project on pause for a while, but took some time to finish it.
It fetches JSON from any public API, extracts values based on paths inside a template message, and returns plain text you can use directly in your chat.
For example, to get the first ability name from the Pokémon API:
${customapi.https://seapi.c4ldas.com.br/api/json-textify?channel=$(channel)&site=https://pokeapi.co/api/v2/pokemon/mr-mime&msg="(abilities[0].ability.name) is the 1st ability"}
The response will be soundproof is the 1st ability
More details in https://seapi.c4ldas.com.br/json-textify
hey so i need help getting my stream store visible. im streaming on twitch/obs. i've been working at this for hours trying to get it to work. i really want to use this system
You should find beter help in #community-helpdesk. While in there, try to describe what you have done so far and what is not working exactly, give more details. Just saying you've been working for hours doesn't help at all.
anyone good with editing overlays as far was adding the socials on the bluemoonstone overlay package?
Click on "Background", then select the item you want to change and then Save it.
Oh, that's for "Elements". For overlays, just click on Edit button, and on the overlay page, select the item you want to change on the screen and on the left panel click on "Settings".
Then you can change it and save the overlay.
i've done that but it doesnt change the words after i've already changed it
Well, you need to change that in all overlays of the package.
i figured it out thank you!
Hey, i have a question ? Where can i set my Hotkeys to canvas in SE multistream ?
Does anyone know how I can separate the audio but vertical canvas?
This is an excellent project and works well. It was what I was looking for. When I tested it on the site, it provided what I needed. However, when I copied the code, I got an invalid URL. I made one change, the code generated was a { and I changed it to a ( although using either of them produced the same result.
The customapi variable works with either parenthesis or curly brackets. But it is recommended to alternate if the internal parts have one or them.
I tested both options in my chat and both worked, using the same site from the screenshots.
Wait
Ok, I got your message. And I know what causes that. There are some invisible characters on the front end that escapes it working as url
So, I'm doing something wrong here
The third screenshot has a âhttp://https://â
Where is that coming from? That's not even in the response.
Good questionâŠ
Try to type on your chat: !cmd show affirm
See if that shows that first http://
No, I don't see a first one
Let me just delete the command and recreate it
Deleting and recreating still gives that first http://
Thatâs so strange. Try to edit the command via chat, then.
!cmd edit affirm ${customapi.https:â/â/seapi.c4ldas.com.brâ/apiâ/json-textifyâ?channel=$(channel)â&site=https:â/â/affirmations.dev/â&msg="Your affirmation: (affirmation)"}
Let me try something
That worked
Thank you
Except when I did that, it didn't put a space between "Your" and Affirmation, but when I go back and check the edit, there's a space. That's weird.
So now it's Youraffirmation LOL
But the response looks like Your affirmation
Hmm, I need to do some more tests. I believe it has to do with the quotes. There is some âstylisationâ. The quote symbol â when I type on phone is not the same as the computer
If youâre on pc, replace those quotes for the normal ones.
"
Yeah, I fixed because I'm on PC. I just typed the whole thing out.
Thank you for your help, it was much appreciated.
It is indeed that quote symbol stylisation. I replaced the â with " and it worked fine.
need help i tried to stream lastnight and some reason it says that stream elements has suspended me to stream to tiktok anyone help me as i cant see a reason why
You need to talk to tiktok
I think it's on their end
Tiktok is fine am not banned from them
Hey there!
I'm trying to build a sub-goal widget and somehow a Dollar-Symbol appeared.
When emulating a subscriber event, it's counting towards the goal and I don't know where the dollar Symbol comes from
What is the code for that 20 / $50 Subs part? Maybe you are capturing the wrong variable or object...
if (obj && obj.detail) {
if (obj.detail.fieldData) fields = obj.detail.fieldData;
if (!fields.subGoal && obj.detail.subGoal) fields.subGoal = obj.detail.subGoal;
}
if (obj && obj.detail && obj.detail.session && obj.detail.session.data) {
const sessionData = obj.detail.session.data;
if (sessionData['subscriber-total']) {
currentSubs = parseInt(sessionData['subscriber-total'], 10) || 0;
} else if (sessionData.subscribers) {
currentSubs = parseInt(sessionData.subscribers, 10) || 0;
}
}
// ...
updateSubgoalDisplay();
});```
const displayText = `${currentSubs} / ${subGoal} Subs`;
Ok, that's it. Probably your subgoal field has the same name as your JS variable.
Go to your FIELDS tab and rename the subGoal item. Don't keep it with the same name as your javascript variable. Name it something like subGoalField, and later adjust your code to read that variable (basically just replace the fields.subGoal entries with fields.subGoalField).
What happens it that SE overlays tries to replace every {variableName} before running any code. So your JS variable is not being read like the template literal ${variable}, but something like $ symbol and replacing the {variableName} from FIELDS
Worked, thank you!
I found the bug in my code for the page, it was adding zero-width characters on the chat code to avoid breaking the page layout (especially on mobile).
When copying the code, the zero-width characters were copied too, making the SE bot to respond with that "invalid url" error. It is now fixed.
Awesome! Glad you found it.
Hi helooooo , sorry to come bother everyone , but i have a question
how to add a gradient to the username box in the chat? kinda like the pic (Silvervale chat)
I tried the CSS line for the gradient but it shows transparent
So using https://developer.mozilla.org/en-US/docs/Web/CSS/gradient/linear-gradient doesn't work?
Maybe something superseeds this style. You can try to debug using browser devtools. Select one of the username boxes and skim through the styles tab until you find your gradient instruction. If its crossed out it has been superseeded, if it has a warning symbol there is something wrong with your gradient statement.
the code rn is this
'.user-box{
position: absolute;
background-color: {{userbackgroundColor}};
border-radius: 7px;
font-size:{{fontSize}}px;
z-index: 99;
top: 2%;
padding: 7px;
margin-top: auto;
left: {{sliderNickname}}%;
font-weight: 600;
text-align: left;
box-shadow: 0 0 1px 2px {{outlineColor}};
rotate: 1 1 1 -10deg;
}'
the css code*
but when i put the line into the userbackground color
It becomes transparent
The thing that would be written there would be
background-color: background: linear-gradient(...)
which is invalid css. Either remove background-color or background and try again.
As long as it's invalid css it defaults to the next parent that has this property. It's most likely body which has a transparent background by default
Just to test, can you replace the line in css with your gradient statement without the use of the variable. Just to see if there is an issue.
Otherwise devtools is able to help. You should look in there next
still not working D:
idk much about dev tools so i wont try , i'll just put that aside for now
IT WORKS WHAT
THANK YOU SO MUCH

YIPPEEE
im sorry how did you do that? I would like something similar for my chat
Anyone in here know what all is included in the SE.Live multistreaming plugin cloud backup functionality? Would the custom canvases be included in said backup? Asking here because im getting ran in circles in my support ticket currently where they dont seem to know the answer.
Thanks!
hello i kinda need help ive been trying to add a chat box but it wont allow me and it says this ''Messages fade after {{vm.widget.variables.delay}} seconds'' how do i change it or fix it?\
Remove the overlay and try to add it again.
If still not working, perform a logout and login on SE website and do the same process one more time.
Let us know if that works for you.
Hey everyone! Curious if y'all ever had any issues with the monthly counts not resetting?
I'm checking into aggregates in the overlay editor and it shows I had 4 follows instead of 0 though I did select "Calendar timing" in the Data settings. My SE dashboard does show the correct number though
Had a customer message me yesterday about this same issue
Interesting⊠were you able to fix it? I got support to reset my data but I still canât get the whole calendar vs relative timing to work
All I know is they said they reset it as was happy lol
Hey everyone! I've been trying to figure this out for a while, but still couldn't get it done so thought I could ask here!
I've trying to do an API that could get information from another site (a donating site for where I live) and change a counter to show how much was donated automatically, anyone knows how to maybe do this?
I've been able to make it so the API can get the amount from this other donating site, just need to be able to update the counter
If it's a donation, you can simply forward the amount to tip endpoint`https://c4ldas.github.io/streamelements-api/#/operations/Post/tips/:channel
That will make all the hard work for you (adding donation counter, latest donator, session, etc).
But if you are trying to update just a specific counter on a custom widget, give more info on what you already have exactly (code samples are always good)
I'll send it to you in a sec
When are we going to add some games what we playing when we streaming on youtube, and choose the audience e.g everyone or adults only on tiktok?
any reason why this pops up? now
costum bot on activity feed
Im currently experiencing this issue its so annoying that all the videos on youtube and tutorials just show simply press this hamburger menu and bam its there. NOPE not for me and for many others
It was removed from activity feed over a year ago.
how can whe change the name of our bot now then ?
Hello! I am a developer of a livestreaming app, and I want to integrate the OAuth sign in for my app users. I submitted the form on dev.streamelements, to receive the access, like a week ago, and have not received any reply yet. Can anyone provide some advice regarding the API access via OAuth? Should I wait longer? I can provide any info you needed regarding the app and its API usage
is there a certain limit on how much I can embed things on the HTML of a custom widget? I tried to embed SVGs on it and at certain point it'll just keep saying it's saving even for hours
when I remove some of it it'll save as usual
Check in dev console (F12) for instances of 413 error appearing if you hit save.
There indeed is a "code cap" but it's not one noticable outside of console error logs.
Unfortunately if you hit said cap anything not actually saved between changes and saves will be retained.
Receiving API access can vary between a few days and many months (or just never)
ah.. yes I see the 413 errors..
I see 3 of them, to be precise
So that indicates the widget is too big. 413 error means "request entity too large", so you hit the limit of the size of the widget.
From my tests, I reached the widget limit with 930KB. More than that and it fails to save.
Total, all tabs together
Hello! I hope someone can help me. I just installed the application and it doesn't allow me to open the S.E live docks.
How can I configure my OBS so that this tab becomes active?
How do people create a StreamElements overlay that shows a live subathon sub count updating on new subs, and lets mods manually update the count? nvm got it :3
For Chatstats. What is the category, and item? It's not specified in the docs.
https://api.streamelements.com/kappa/v2/chatstats/{username}/{category}/{item}
I assume the category is stuff like "Just Chatting" correct or?
Unfortunately, we have no idea, never seen that endpoint being used anywhere.
You can have a list of documented endpoints here: https://c4ldas.github.io/streamelements-api/
Thanks for the response! I sent out an email just incase.
I saw you responded to someone 2 years ago, and could not find any further information in the Discord.
I'll definitely give that a look. Thanks!
I was assuming it might be like Twitch categories. But then I assumed, maybe it was just a way to drill down to the display categories. Like top chatters, etc.
Yeah, I tried many ways to make it work, but even the chat stats page don't use it. After some time, I just gave up and moved it to "wonky - not working" category.
I tried to contact the devs for specific endpoints, but sometimes they are too hard to answer those questions. đŠ
If you have some luck, let us know!
Yeah I tried looking to see if the page had any leads as well. I can imagine, I was just a little shocked to see it's been two years since its been updated. Also since I saw some of the pages literally with "TODO: Add Description"
like oh...
I can definitely understand that one! Also if I figure anything out or get an answer I'll update you for sure!
i have problem signing in in obs to my twitch account
when im trying to add points, the "current" in the json body, is it going to replace the user's existing points, or does that define how many points im adding?
So can i just set it to user: $username and then mode:add, but how do i define how many points im adding?
Based on the screenshot, it is the PUT request for https://api.streamelements.com/kappa/v2/points/{channel}, right?
"mode":"add" means it will add that amount on top of the current value.
So if the "testuser123" has 100 points, that example will add more 200 points. So the final count is 300.
If you want to set a specific amount, use "mode":"set"
I am not getting an error code but the point does not get added.. :/
ohhh okay, thanks!
I will try that đ
OMG its working
thank you so much
I have been at this for days
hahaha
Next time you have any questions about SE API, ask here first. It will save a lot of time đ
Or you can use this page for better documentation: https://c4ldas.github.io/streamelements-api/
ohhh okey! Bookmarking this. My problem is twofold.. I have zero aptitude for anything technical and code related, and im relatively good at language... so if theres a thing that means something else in language than it does in code, my brain just.. đ€Ż
Thanks again đ
Hi there, I need help with placing where to put my vertical canvas dock on obs studio because it is not letting me place it on where i want it to and was wondering if you guys could help me out
It is only letting me place it on the top half of the screen, whereas i would like it to be the full length of the screen so it is easier to see
Ask that in #community-helpdesk
Can we use the CSS blur property in OBS?
?
Sorry typed it out better.
you can use any css property for custom css for browser sources
I try to target the div with the correct custom CSS and it's not targeting it but if I target body or *, it works. Do you know how to target css elements correctly with that?
Afaik, blurring of background imagery (eg your scenes) is not possible from a browser source.
Main reason being that css blur is rendered on browser-side, meaning it's missing obs context.
However it is possible to Blur stuff on the same page. For example.. unblurring a username into existence
This is dependent of your div.
suppose your element looks like this...
<div id="my-id" class="myClass myOtherClass">Hi There!</div>
We can target this in different ways.
You can use div { ... } to target the element by DOM name
You can use #my-id to target by id
You can use .myClass to target by class
You can also combine all of those.
This Concept is called "CSS Selectors". You can google it and read up on it
Hi! I got CSS blur working in OBS (see attached image), but I'm having trouble with targeting. I can target with body > div or * but #spotify-widget doesn't work even though that's the actual ID in my HTML. I tried #spotify-widget, [id="spotify-widget"] and "body > div:first-child" too which all did not work. Any idea why specific ID/class selectors don't work in OBS Custom CSS but broad selectors do?
Correct me if I'm wrong but this isn't obs? That looks like the streamelements widget editor
Anyway it's pretty much impossible to give you any accurate pointers without any code to look at other then how to use css selectors
It was a window capture for the background but what I took a picture of was actually the browser source. I took this against a random background so you can see but I understand how the blur works now. Thank you!
With all the glass skewmorphism coming out it's a shame we can't use blur.
Sadly yeah. I love that effect too. Did it for the homepage of my pet project 
Yeah! I made a cute widget and itâs a shame I canât make it clear blur haha. I guess they can still use it on top of an overlay.
Mind sharing the widget? That should definitely be possible
sure can I DM you?
Sure thing, feel free!
help me someone
Jå tem um tempo que minhas caixas de alertbox não estão funcionando, tanto no OBS, quanto dentro do OBS na opção de testar no 'Sininho"
jĂĄ criei uma nova pagina de alertas, mas nĂŁo aparece nada
Experimente fazer logout/login na pĂĄgina do StreamElements.
https://streamelements.com/logout
hey is it possible to make the overlays big enough for 3440x1440?
Eu to usando ele para configuração, mas não tå funcionando de forma alguma.
Jå tem um tempo que estå assim, mas como voltei a fazer live por agora, acaba que não vendo as notificaçÔes
Yes, go to Overlays page, click on ... in one of them > Properties.
In Resolution, choose Custom and type the width and height you want. Submit and done.
Nada ainda
Se mesmo fazendo logout e login nĂŁo funciona, entĂŁo sĂł resta abrir um chamado com a staff mesmo.
@dusty dawn —ïž
If you need to fill out a support ticket, please use the command !ticket in chat, following the subject of your issue! For example, please type "!ticket My chatbot isn't working", and then follow the prompts from our bot!
I am unable to see my latest subscriber's name from youtube on a widget. Please someone help.
youtube subscribers wont always be visible as people can decide to not share their subscriptions publicly. members should be visible.
Oh is it, then the last subscriber who shares the subscription should be displayed, right?
@median ravine
assuming they had it set to publicly share before they subscribed, yes
đ€·ââïž
Try to do a logout/login on StreamElements dashboard. Also, you can reset your session data, so that will refetch the numbers again. Then, the next new subscriber should appear when that happens.
@severe shell I have reset the session data already but not helping. Also, what about the current latest subscriber, will it not show up in the widget and starting appearing after there is a new subscriber?
