#dev-chat
1 messages Β· Page 68 of 1
A widget that scrolls between other widgets to free up screen area. Example would be scroll vertically between latest sub and latest follower and adjust the delay.
And be able to add an image like the thumbs up instead of "latest like"
Looks like this was done! I need to go look! I've never noticed it?
You will find some rotator widgets on #widget-share. There are lots of them, take some and check which one you like the most π
Never seen it because I'm using FB platform it looks like.. let me know if anyone knows of one for FB before I try and scroll through to find one... Lol
Not sure if this is the correct channel for this question. I'm not getting tip alerts in my stream. When I log in to streamelements and test it works fine. The tip came to my PayPal. The PayPal is linked in SE. I just didn't get the alert animation or audio in stream. Any ideas?
Oohh the apikey. Nice.
Wrong channel.
Thanks. Which channel should it go in?
Channel for whatever platform you use
Hi I'm not sure if this is the right channel for this but I think 2 months back I had completed a sponsored stream that I got through streamelements and I still haven't gotten paid from it because it keeps telling me to update my payment details even though I had already completed the form
@main peak ‡οΈ
If you need help with your campaign or sponsorship please use our form here: https://strms.net/sesp_help Thank you.
Hey dev wizards, did anybody ever tried doing an API call for twitch Hype train Helix endpoint? How did that go?
i've never had a hype train π¦
@elfin arch my pain point is the Oauth, what are you using as client-ID and bearer and where do you get it in your channel?
just get the token created from this page and it is good to go?
correct; use that token and clientID
but that will only "GET" the hypetrains
it is all that I need π
π
for some reason i cannot open the dashboard. when i click on it it just refreshes the page back to streamelements. or it keeps loading.
same if i want to go to settings or anything else
2 things
Please logout of StreamElements at https://streamelements.com/logout and then login again to your account (Twitch/YouTube/Facebook).
And then delete the cookies for the website.
π in URL bar
nice got it. thank you!
okay and how would it look like if i want to request channels/me via the SE_API-object?
Hey, not sure in which thread to post this, but I am having trouble with 7tv emotes in the chat box on stream. They are simply not showing. I have looked at the forums, but none of the advice there has helped. Does anyone know how to fix that? Thanks in advance!
I apologize if this is the wrong channel to post this in, but for some reason I can't get to the command-share room.
Does anyone know if it is possible to create a "Demerit System" that assigns a value to a variable+username? I tried something like this, and i thought it was close, but I realize that the counter name also needs to be unique since that is what stores the counter value :
!command edit !givedem $(touser), you just received a demerit | $(count givedem)+$(touser)+ "+$(1)")
I think this could be a great idea if I could just figure out how to concatenate two variables.
I dunno if this works but you could try $(count dem-$(touser))?
I'll try it out
i was wondering if that was a good place for a ${1} variable and use that somehow
in place of:
$(count givedem)+$(touser)+ "+$(1)
yes
or $(count givedem$(touser)$(1))
again I dunno if the bot does variable expansion like that but try it and see
!command edit !givedem $(touser), you just received a demerit | $(count dem-$(touser))
but the counter variable for something like this will be "givedem". i need it to be something like "givedem<user>"
hm I just tried it and it seems that you can't put variables in the $(count) variable
which means that what you want is not possible without using an external api
I have found an issue where if you duplicate a overlay from stream elements twitch to trovo it will remove all of the custom sounds and change parts of the overlay your using
So this is twitch on SE before duplicating to Trovo
This is the same overlay after duplication from twitch Streamelements to Trovo stream elements
So any reasons as to why duplicating my already created overlays is well not working or SE is auto changing my stuff
try doing it on costum widget not on alert
I dont quite follow ?
you mean overlay
because when I copy the overlays to trovo from the Twitch SE area it automatically changes and screws up my stuff
Hey guys the latest update got rid of the OBS Stream Setting Dock and I was wondering how I could get it back
responded in #helpdesk-selive
can you post this in #helpdesk-trovo. I think it is a known issue; but post there and bump it. it will be lost here
you are using custom CSS for your code in the AlertBox?
nope
how do yo mean "highlight" ?
like the blue part
short answer is going to be no; if you're not using custom code
okk
another question
can u like make math in alertboxes lol
lemme show u
like that
using the api, is it possible to somehow issue points?
well yes but also how tha fuck do u code lol
yup yup. see the header of this room.
i learned on freecodecamp.org π
okk
can you point to the right place?)
are you trying to give a single user points? or trying add points to multiple users at the same time?
one
https://api.streamelements.com/kappa/v2/points/${process.env.SE_ACCOUNTID}/${username}/${points}
thanks
@elfin arch How can I get the last 10 purchases?
Try this:
!command edit !givedem $(touser), you just received a demerit | ${count "givedem_${touser}"}
List redemptions Powered by Stoplight.
thanks
what is the restriction on calling the api?
API is a single call; please don't poll and do like 100 calls a minutes π€£ . Use sockets for that
Hi, I would like to learn from 0 the code programming to customize my assets on streamelements (such as animation of customized texts etc ...), I saw that you need to know HTML, CSS and JS, someone expert can recommend me some good courses/tutorial to follow for what I want to do? thanks
My suggestion is here:
#dev-chat message
thanks
is there a way to set up breakpoints/debugger lines in streamelements editors for js? I can see errors popping up in my console but I want to make sure I understand what's going on there
Is it possible to trigger an emulated alert through the API?
you can through websockets, sending an appropriate event:test event (there's no API endpoint for that afaik)
I might have to try out the websockets api, then. Honestly, never thought I needed it.
I see that some widgets are able to display more than one field inline in the editor. Is that available to custom widgets?
Also, I totally forgot to say thanks, Ca11!
While streaming Fortnite the overlay doesn't show up, but while streaming ROBLOX it does can anyone tell me how to make it show up while streaming Fortnite.
@inland umbra is this a custom overlay you've made? If not, you'll have better luck in #helpdesk-selive, as this channel is for talking about developing things with SE.
Sorry, I keep coming up with questions... Are custom JS events between widgets possible? I'm guessing not, but...
@hot trout I see that option, but I don't want to fill the store with a ton of one-off data, and I don't see a way to delete in the docs.
you could use a hosted socket.io service?
the thing is widgets are all put in their own sandboxed iframe and the parent frame so far as I know does not give you any way to talk to other widgets
Well, wait... if I save data with the same key, it'll just overwrite the old, right? So it won't really be creating waste
In my defense, it's Sunday evening.. my brain is basically hibernating
Do you know the overlays in a non-active OBS scene actually process data? Wondering if I need a central processor widget that is required to make the others work on every scene.
@left rampart it is a custom overlay that I made
I see that some widgets are able to display more than one field inline in the editor. Is that available to custom widgets?
nope
Do you know the overlays in a non-active OBS scene actually process data?
By default browser sources are always active even if not present in the current scene. Unless you have them configured to shut down when not visible
Thanks, @still juniper. I'm guessing maybe it's better practice to handle processing through a remote api and emit events back to the overlays? Oh, but one of them is a custom alert, and I probably can't pause the queue other than in OnEventReceived, can I?
I don't know exactly your use case, but sounds like something I tried to achieve some weeks ago. If you're trying to trigger a custom "external" alert that queues with the rest of native alerts, then yes, you need to emit one of the predefined events that are processed by onEventReceived. But have in mind that if you don't use one of the predefined labels for listener (aka subscriber-latest, cheer-latest, etc), that event won't be added to the queue. If you can explain a little further your goal, I might be able to provide some guiding/tips
Thanks! So, I built a subathon type widget a while back that automatically tracks goal progress. A friend would like me to add a custom alert for when a goal is reached. I could just track the subscription count separately on every page, but then I would need to make the user type their goals multiple times.
Another option I suppose. I could have them set their goals on my own site and have each widget request them, but that's not the standard widget experience.
Oops, forgot to ping @still juniper π ^^^^
Hello. I have made a connection via websocket to realtime.streamelements with a node script using socket.io-client. It works, but after hours working it stop working without any error, it just stops getting events. If a restart the application it works again. Is there a time limit or something?
This is the code with the connection. I replace the realtime streamelements url and delete the github links from the example because I got muted before trying to post this xD.
||
const socket = io('realtime url', { transports: ['websocket'] });
// Socket connected
socket.on('connect', () => {
socket.emit('authenticate', { method: 'jwt', token: token });
});
// Socket got disconnected
socket.on('disconnect', data => {
socket.connect();
});
// Socket is authenticated
socket.on('authenticated', data => {
const {
channelId
} = data;
console.log('Successfully connected to channel ' + channelId);
});
socket.on('unauthorized', console.error);
socket.on('event', data => {
console.log(data);
adivinoRole(data, token);
});
socket.on("connect_error", error => {
console.error(error);
socket.connect();
});
||
I'm new to doing these things with SE, but I had a similar issue with Twitch WebSockets. My solution was to periodically reset the connection by intentionally disconnecting and reconnecting on a timer that isn't dependent on the socket connection status
yes and no
first of all there's a setting in obs to shutdown a browser source when not visible
and secondly even if you have that disabled, there's a thing called the page visibility api that suspends a lot of rendering when browser sources aren't visible
but you can workaround that by having it visible in a projector
page visibility api also doesn't inhibit all processing so it depends on what you're doing
@hexed vector is this after a while of nothing happening?
I'm guessing they must still respond to events, right? Otherwise things like subscriber count would get desynced between scenes
I don't know exactly what does and doesn't get put on hold
all I know is webrtc keeps going
and animations using gsap get paused
Probably, because the last events tracked are this, that I think are event:update type. But I don't know when stops, there is no disconnect event nor connect_error event.
0|api | 2022-03-05T20:43:18: {
0|api | 2022-03-05T20:43:18: name: 'subscriber-points',
0|api | 2022-03-05T20:43:18: data: { '$init': true, amount: 11, activityId: '' }
0|api | 2022-03-05T20:43:18: }
0|api | 2022-03-05T20:43:18: {
0|api | 2022-03-05T20:43:18: name: 'follower-total',
0|api | 2022-03-05T20:43:18: data: { '$init': true, count: 10252, activityId: '' }
0|api | 2022-03-05T20:43:18: }
0|api | 2022-03-05T20:43:18: {
0|api | 2022-03-05T20:43:18: name: 'subscriber-total',
0|api | 2022-03-05T20:43:18: data: { '$init': true, count: 11, activityId: '' }
0|api | 2022-03-05T20:43:18: }
your router probably timed out the connection and just dropped it
is there a way to detect that?
if you try to send something it'll error immediately
but you generally won't figure it out without that
Why didn't I think of that? Way better
so I have to send something to check if the connection is working?
yeah
normally these sorts of long-running connections have ping/pong exchanges to prevent/detect this issue
ok, thank you. I'm only listening, I dont emit anything.
I don't know exactly what does and doesn't get put on hold
basic JS processing ain't affected by page visibility afaik. It's mainly targeted towards "heavier" things (aka animations/rendering) that don't make sense to process since the page is hidden. Anyway, generally speaking the visibility API is something you choose to make use of or not. If GSAP animations get paused is because they don't handle that and/or rely on how the browser handles requestAnimationFrame() by default (I'm not familiar with GSAP). anime.js for example have an optional parameter to control whether you want animations to be paused or not when tab is hidden
Anyway, generally speaking the visibility API is something you choose to make use of or not.
Sadly obs makes that decision for you
But it sounds like the basic JS events I need to run will still process. I can work with that
I don't think OBS is enforcing anything special apart from the default behaviour of the inner browser, but I might be wrong
Last Question for now: Is there a way to develop widgets locally, so I can use VSCode or something more featured?
yes
there's a couple of options depending on what you're looking to do
someone made a mock widget editor to help test events fired in your local browser
is that
and I made a tool to help me keep my sanity when working on my alertboxes that lets me keep them in local files and upload them
Another noob question. What can I emit to realtime streamelements to make a ping?
I'm looking at it and it should actually do tht for you in the background
or at least my node.js socket.io client does
you have to enable debugging for it to show those messages
Thoughts on sharing your solution?
instead of using the SE web editor and going mad.
Yaaaaaaas
Laptop battery is about dead, but thank you all so much!
Checked the issue. As I said, they're not enforcing anything on top of what Chromium enforces by default, which yes, most probably affects requestAnimationFrame(). But general JS processing should be unaffected afaik, especially events since they use extremely low resources. It's not that everything is shut down, just heavy unnecessary things
right
for me animation was the important bit
given that I'm in obs
and animating is what we do there
yeah yeah, I do understand your issue, and seems more than reasonable to me
I can mostly work around it by using studio mode
and I found out that using a stinger transition hides the problem because the animation restarts while the stinger is still visible
but I try not to rely on jank
Thanks. I enable debugging and I see that. Now I just have to wait until it fails.
Shame OBS doesnβt inject some kind of active even to let overlays know. Then animations could queue when offscreen
they specifically put work in to make it work this way
and yeah the primary thing I needed it for was for an animation to happen when the scene was transitioned away from
so that when I transition back it could animate back in
(it being the score screen for a tournament)
So, I built a subathon type widget a while back that automatically tracks goal progress. A friend would like me to add a custom alert for when a goal is reached. I could just track the subscription count separately on every page, but then I would need to make the user type their goals multiple times
@left rampart coming back to this, it all depends on what you need/want:
A) If you want the counter + alert on the same widget, the solution is straighforward. But the alert won't queue with other alerts
B) If the alert is meant to be a separate widget, I'd go the KVstore route and store there the current progress from the subathon widget, and listen to update events on the alert one. But, this alert won't queue either. Have in mind that you can also store the general settings in the KVstore, so the user only has to input them on the main widget (and the alert can read them later on).
C) If you really really want the alert to queue with the rest of alerts, then yes, you need to inject an event that is received by all widgets, and that's only possible through websockets as far as my tests have gone. But queueing is a devil in disguise, that I can tell you
cal11 and alert queueing, name a better duo
it's my arch-enemy
The only other thing I can think to do to ere would be to use the api to manually pause the alerts. Definitely donβt want a streamer to miss an alert in a subathon because 2 went off at once
how do i make a link to an overlay for people to use? i want to start selling overlays on etsy and include custom css for chat and event lists etc. but I don't know how to link to the theme I make? Like what is in the widget share channel.
unfortunately you need special permission for that
which I don't know how to apply for but wait for a staff member to come by
@uneven skiff ‡οΈ
One-Click Overlay Sharing Application
Use this link to submit an application: https://strms.net/shareoverlay_request
Is there a way to target 2 people in a twitch command using StreamElements?
I have checked the logs right now. I'm connecting to 3 channels, 2 of them closed with reason "transport close" at the same time and reconnected without any problems. The 3 channels websocket connections keep working. So that is working. I'll have to wait to see why they stop working.
Do you mean by 'twitch command' something like /timeout someUser or /vip someUser?
Hey there. I was referred to this channel, maybe you could help me with this:
Is it possible to hide a widget when an alert is occuring? I'm trying to layer a slide show and the alert box on top of each other, and the slide show should hide whenever a stream alert is occuring.
Or is there a way to code something like that? A combined slideshow and alert box. I have to warn you, though, everything beyond simple Powershell Scripting is way beyond my expertise π
@tardy spear Sure. All custom widgets can listen to the events (subs, follows, etc) so you can just have your's listen for the appropriate event (where the alert should take over) and hide itself.
Okay, sounds great, now I only have to find a way to combine the codes for the slide show and the alerts π
As you said you are not familiar with anything else than PowerShell, maybe this can help you. Go to your widget (slideshow) and on the JS tab, try to put this.
I'm adding some comments to help you:
window.addEventListener('onEventReceived', (obj) => { // Waiting for an event (it can be anything, like message on chat, follower alert, store redemption, etc
if(obj.detail.listener.includes('-latest')){ // It will trigger if it is a sub, follower, bits, etc. In case you want a specific alert, you can check here: https://github.com/StreamElements/widgets/blob/master/CustomCode.md#on-event
const slideShow = document.getElementById('slideshow') // The ID of your HTML element you want to hide
slideShow.style.visibility = 'hidden' // Hide the element
setTimeout( () => { // create a timer to run the next command, which will show the element
slideShow.style.visibility = 'visible'// Show the element
}, 10000) // The alertbox alert duration (in milisseconds)
}
})
Why combine them? You can have two separate widgets that listen for when an alert happens.
@left rampart this has to do with the way my overlay is constructed. I'm doing a Pen&Paper Stream, and I would not want Alerts to distract me or the players, especially when we're immersed in a certain moment.
Right now I have a slide show on the lower left that cycles through partner logos, as well as short summaries for my player's characters.
I want to embed any alerts, be it subs, donations, or follows, into that slideshow area, so it does a) not block my player's faces or any other "important" areas, and b) does just...blend in with the overlay style we chose.
Thanks π
Got it
So this is the overlay
the bottom left part, the parchment is poart of the overlay, the logos and other stuff is currently a slide show made with OBS on board tools
that's where I would like to have a combined slideshow and alert box so the slide show cycles through the images provided UNTIL an alert is happening
(all images are transparent PNGs)
Oh, so isn't the slideshow a Streamelements widget? Well... I think that would need something more specific, like OBS websocket
@tardy spear this snippet from the docs subscribes to the JS event that all alerts trigger, then keys in on only the event type(s) it cares about (in this case, subscriber-latest) and pauses the alert queue while it does it's work.
function playAnimation(data) {
//do work here
}
window.addEventListener('onEventReceived', function (obj) {
const listener = obj.detail.listener;
console.log(obj.detail);
const data = obj.detail.event;
console.log(`RECEIVED ${listener}`);
if (listener !== 'subscriber-latest') {
console.log("Resuming as event is not sub");
SE_API.resumeQueue();
return;
}
if (data.name === data.sender) {
console.log("Getting animation duration for premature resume");
playAnimation(data);
setTimeout(SE_API.resumeQueue,time*1000);
}
});
Full documentation for custom widgets is here: https://github.com/StreamElements/widgets/blob/master/CustomCode.md
Good point. From the mention of making the code integrate, my assumption was that these were both custom made
Yeah, I thought that so!
A custom slideshow widget wouldn't be hard, though, and would allow adding alerts (or anything you wanted, really)
I can replaced that with an SE widget, no problem. This was just the easiest solution for starters π
I already dug around a big and found slide shows with only HTML, CSS and JS
and if I can combine that with the above mentioned code snippets for alerts, I guess, the rest will be a piece of cake π
That's great!
Why isn't console.log() working on AlertBox no more?
- code is 100% valid
Good morning!! Got a compilation order question when you load an SE overlay into OBS as a browser source. With C4ldas's help before I was able to rotate an element we brought in, but the rotation property wasn't set in OBS. Trying the same thing again now, I'm unable to change even like font-size.
Properties must be configured in the SE editor, in the widget properties/code. OBS has nothing to do with that (or shouldn't)
I was worried about that. When you just need to tweak one thing (like import a custom font), editing the CSS resets all the properties back to default.
Gonna be a long morning recoding all of her overlays to change a few fonts around. ;-;
What? Not sure what you mean, but nothing should reset
Nevermind, for the counter widget I can't even edit the css like on alerts. I guess I'm even more stumped now.
Don't panic yet, everything has a solution, just let us know exactly what your issue is and what you need, and we might be able to help ^^
Are you using variations? Make sure you're hitting the variation with the console.log()
I'm not using variations.
I've tried modifying it using the exact path:
#widget-1 > se-widget-subscriber-count > div
I've tried hitting it from just div or pre. I've tried just modifying it using * as my selector. Can't get the font to change to anything just to make sure I've got the selector right
I will preface this with 99.99% of my coding experience is back end, so my web dev is kinda rough around the edges. ^^;;
I just tested and it's working for me, so you might want to share your code in case we spot something there
Someone linked me to this message from
2019 in regards to emulating the overlay editor locally, but that tool uses the old editor layout. Does anyone know if the actual code we write will be compatible with the new live editor? #dev-chat message
Deleting and re-uploading the files solved the issue, idk..
@rustic copper so you're trying to override things from OBS directly? Never tried that, but definitely not something I would go for given that you can customize pretty much everything on SE editor side. You seem to be using the default subscriber count widget, right? If so, text settings already have an option to choose a Google font. I might be missing your problem, or you might be overthinking this all
Oh, how do you use a google font without being able to add the import statement?
Luckily for you, SE editor already imports most if not all Google Fonts in their default widgets. Just choose it there in the dropdown menu, in Text Settings tab of the widget. What font is it? So I double check it's there
Nevermind, found it. >.>;;
That solved my immediate issue. I'd still like to know how to tweak the default counter widget's CSS at some point, but that totally doesn't need to be fixed by today. XD
Font was FiraSans
Default counter doesn't have the option to use custom CSS in the SE editor, so you would need a workaround. People usually just use an alternative widget from #widget-share . OBS overriding might still be possible, but I have never tried so I don't know
Sounds good. I haven't delved into #widget-share yet. Just recently started needing to do more complicated tweaks. ^^;;
I know for sure that a lot of people use this kind of method to include YouTube chats into their streaming. As long as I remember the only important thing is to put !important after any rule. But I'm agreeing with you when you say that's not something you would go for.
Oooooh, I have not seen that before. Thanks for that.
My front end is largely limited to a little Selenium test automation, so I have actually never seen that.
Check for !important css over Google for further infos, but it basically just overrides any other previous rule.
Yeah, I just googled it to get the syntax. Gonna see if that works to make my override from before work
my issue with overriding this way is prob more oriented to how SE overlays work, i.e. each widget is a separate iframe. You can most likely override things with !important, but if you change layers order in SE editor later, things will break cause iframe id would point to another widget. Or that's what my inner logic tells me rn, but as I said, never tried so. It just feels unnatural and overcomplicated given what SE offers
Oooo, I'm still not seeing changes come through even with !important is applied from OBS.
Does SE use inline style declarations for the default counter?
That's true. I've only used OBS's CSS once before and it was because the drop down for text rotation on SE didn't have values that were between horizontal and vertical.
@rustic copper in the future do not link overlays. That will cause you nothing but grief if others get it and understand the api.
I don't know about overriding style protected by iframes, I just said that people use that in order to change YouTube chats look
Thanks. ^^;;
it's disabled in the browser source link but the editor has it enabled
I don't know why
they say "security" but don't say what security benefit is gained by disabling a logging interface
actually I got it working now, I'm confused
in the obs link?
cause that has some code in it that is placed before your code that goes console.log = function() {};
effectively disabling it
yeah, the one you get from the preview button
now if someone sees this and block console.log, I would be pissed off ngl
yeah I don't want to say much more about it than please remove that stupid misfeature
oh
I think they changed it actually
console.log() is now apparently ok
but the other options (console.debug(), console.info(), console.warn()) sstill aren't
I complained about console.log() before and noticed a typo that let me use console.debug()
that typo is fixed now
pls expand
is what that code used to do
(note it says window.console.dubug = etc)
currently it goes ```var eval=function(){throw"eval is not allowed"};window.console.debug=function(){},window.console.info=function(){},window.console.warn=function(){},window.console.error=function(){},window.onclick=function(o){o.stopImmediatePropagation()},document.addEventListener("click",function(o){o.preventDefault(),o.stopPropagation(),o.stopImmediatePropagation()}),window.open=function(){};var $_console$$=console;Object.defineProperty(window,"console",{get:function(){if($_console$$._commandLineAPI)throw" ";return $_console$$},set:function(o){$_console$$=o}});
(htmlencoded because it's from an html srcdoc attribute)
they're probably afraid that someone that gain access to any SE overlay can do things with such functions
I mean all it can do is show things in the browser console
Anyone have any insight here?
yes it's fine
they overhauled the editor but not how the service works
(as doing so would break everyone's code)
Well, yeah. I wasn't sure if there was (going to be) a depreciation at some point.
Thanks. Is there a github for this @hot trout? Thinking I might PR a little Node command so that the widget code can be dynamically inserted. That way we can split it out from the boilerplate the way SE has it.
Not have people modifying things they actually can't
Yeah, I can't find it either. Guess I'll just DM thefyrewire if I go that route.
I'm looking to find the difference between the playedAsCommunityGift and isCommunityGift fields of an event. what exactly is a "cumulative sub bomb alert" and how does it differ from a usual community gift, and how can i test it?
Might even be able to tie in your tool for easier upload, if you want, @hot trout. ...I might sometimes be one of those "spend 6 hours automating 30 seconds of tedious work" kind of developers 
further to this, I've noticed a number of fields misssing from documentation regarding subs, and I can't find out how to trigger events that'll change their value that'll tell me what they do: count and subExtensionebing the main ones
Hi there! I cannot edit any layers on the overlay editor, any reason for this?
Hi, i'm trying to close a SE account linked to my trovo channel because I've other one (who is the principal) with all of my social media (yt, twitch), overlays and other stuff but i've been waiting for weeks and still no response from SE
have you emailed Support@streamelements.com? If so what's the ticket?
nope, just tried to close that account on SE web
i'll try doing that
Is there anyone that can help me understand the event object structure and variations? as I keep finding other variations that are undocumented (as far as i can see)
or determine the difference between a new sub and a resub
all subs come through the same event. You just check the number of months the user has subscribed
is that "amount", "count" or something else? as the maths seems to say neither to me. generate a custom event and put "1" and it's apparently a new sub, put in more than 1 and it's a resub. When a person can resub for one month, or in bulk for 6 months, etc.
as a "new" sub had an amount of 1 and a count of 44
amount is the number of months a user has subscribed for, so 1 = new user, more than 1 = resub
so that's cumlative, not a streak?
it's the total amount, not the streak, correct
okay, then what about some of the gifted sub fields, jsut going to generate an event to see if can find the thing that confused me
for subgifts, amount is the number of gifted subs
subExtension, playedAsCommunityGift and isCommunityGift are the ones i don't get
{"listener":"subscriber-latest", "event":{ "type":"subscriber", "name":"mortimer", "amount":47, "count":47, "isTest":true, "tier":"prime", "gifted":true, "bulkGifted":false, "sender":"Miguelita", "items":[{"name":"Shirt","price":20},{"name":"Hat","price":36},{"name":"Mug","price":41},{"name":"Hoodie","price":45},{"name":"Protein powder","price":10}], "subExtension":false, "month":"March", "message":"Do not fear a man that spams 1000 memes, instead fear a man that spams a meme 1000 times", "sessionTop":false, "originalEventName":"subscriber-latest" } }
so that was a generated single gift, and subExtension is false, under what circumstances may that be true? when someone resubs after being gifted one? and if so what's the payload like?
(and that's not to mention how the "tier" comes through as prime, whihc afaik is impossible in practice)
so that was a generated single gift, and subExtension is false, under what circumstances may that be true
subExtensionshould trigger when someone uses mobile tokens to extend the sub (nothing related to gifts). I know Twitch replaced tokens not long ago, but not sure if they can still be used or are completely deprecated. Not a typical use-case though
(and that's not to mention how the "tier" comes through as prime, whihc afaik is impossible in practice)
It's possible. Twitch sends the tier attached to the message, you can know if it's a Prime one or a T1/T2/T3
i meant as a gift, i didn't think you could gift a prime sub
but subExtension sounds like it's depricated then
ah yes, well... the data object sent for testing contains some keys that shouldn't be there. The same that items array makes no sense but it's there for testing SE store redemptions Β―_(γ)_/Β―
that's another snafu i noticed, the "tier" sometimes comes through as a string or as a number, so yeah, inconsistencies in test data
regarding isCommunityGift, this is true for notifications of a gift that was part of a bulk/random gift. Not sure if you're familiar with how Twitch does this, but when someone gifts 1 or more subs randomly (i.e. not picking the recipient explicitly), Twitch first sends a header event saying "Sender has gifted N number of subs to community" - This is received with bulkGifted = true in SE. Then, Twitch sends one event for each gifted sub. Each of those events is received in SE with isCommunityGift = true. The playedAsCommunityGift I'm not sure what refers to tbh
Well, that's on Twitch side, it sends "Prime"/1000/2000/3000 (not T1/T2/T3)
that i had noticed and was formulating what to do about it
I've had "1000" and 1000
but i convert all to a string i decided
they should be string afaik
i also realised the first bulk then individual, and yeah it's the playedAsCommunityGift i don't get.
But I think i have to log the first bulkGifted and ignore the next X with a isCommunityGift
if you're doing something like a counter, yeah
It's jsut an alert, not a counter, I'm essentially wanting the same as the basic alert but with my own styling and control
you know the alertbox gives you the option for custom html/css/js right
and there's the "you're doing something silly and unnecessary" moment i was afraid of - let me check
I mean there's still things you can't do with it that would require a custom widget
but the general idea of custom styling (including custom javascript code) is certainly in there
which saves you the trouble of having to do your own variations stuff
well my end goal is kind of a text-terminal style where the message is typed out
are you wanting it to stay on screen afterwards?
basically the alertbox custom css (a bit of a misnomer) does some logic to pick what alert to play and from that point on it plops your html/code/css in an iframe and lets it do its thing until the timer is up
le sigh, okay i thought "enable custom CSS" was only CSS not full html/js/css
ye that's the misnomer bit
well there goes about 3 hours......
actually may be more. well, I'll see what i can do with it now, and at least i know the main custom payload gotchas
dang, but yeah, I'm after that kind of thing, but less "vector graphics animation" more "type letter by letter"
if you can animate it you can do it
that's why i was going full custom, my thinking being "I have control as long as i work out the events"
oh so that's not a custom widget, but still an alert box, okay, and i just found the field data docs for this
yeah
thanks for the help @hot trout and @still juniper time for me to do it the proper way and remember not to ignore the "there has got to be a better way" feeling
Hi I just setup a counter command in the chat bot and have figured out the commands to add and subtract but is there a command to just fully reset the counter instead of deleting one win at a time?
Question about the SE.Live plugin for OBS Studio. I noticed when you have it installed, the option to 'Check for Update's' in OBS does not appear under 'Help'. Is this known to the devs?
with ${count <name> <value>} you can reset with value = 0, eg: ${count deaths 0}.
You can put it with variables and use "!set deaths 0" with this command:
Thank you
Good evening, I wanted to ask if someone could update this widget created by @random comet as I spoke to him and he said he didn't have time. If it would be a complicated task, I would settle for showing only the time of hours played.
feel free to DM me with some more details
Hi...
How do I trigger one command inside of another ? Ex. I have on command that play a video o my stream and I would like po put this inside a command that has a price on it in bits how to do that on twitch
Thanks in advance
@round needle not possible.
No I mean to make a command tagging 2 different people like !love @(name) @(name2) ${touser1} and ${touser2} are ${random.0-100}% in love!
use $(1) and $(2)
Hey there! Very interested in a comparable program to Streamlabels that can export data on tips, subs and other things to a text file
I don't know if you already have it done, but just in case, there is the TypewriterJS that you can use to type letter by letter:
https://codesandbox.io/s/typewriter-effect-emojis-pgz6e
More information here:
https://www.npmjs.com/package/typewriter-effect (you can use the CDN and put it on HTML part of your custom code)
Guys i have a question, how can i change image source to video? im stuck here 
Edit
now i figure out how to add it, on fields i add
" }, "someVideo": {
"type": "video-input",
"label": "Some Video"
}"
but how do i call it, im doing with an image but i cant with the video
function randombg2(){
var img2 = ["url('{border}')"];
document.getElementById("main-container").style.backgroundImage=img2;
}
what im trying to do is call a different overlay when an alert appears, it works with Gif files.. but i wanna use Webm files so.. thats what im trying to do >,<
You can also use
!editcount <counter> 0
It is a good practice to have the fields on variables (but as global, because you are going to use in other on the code):
window.addEventListener('onWidgetLoad', (obj) => {
fieldData = obj.detail.fieldData
video = fieldData.someVideo // This is the name you defined on FIELDS data in your example
})```
Then, you can call it using EventReceived (don't remember exactly the structure of getElementById line, but this is the idea):
```js
window.addEventLister('onEventReceived', (obj) => {
document.getElementById('main-container').src = video
})```
Your #main-container needs to be a video tag, in this case
im a bit confused i have to create a listener per event?
this is my structure with Ifs
im not a programer btw >,<
var img = ["url('{border2}')"];
document.getElementById("main-container").style.backgroundImage=img;
}
function randombg2(){
var img2 = ["url('{border}')"];
document.getElementById("main-container").style.backgroundImage=img2;
}
window.addEventListener('onEventReceived', function(obj){
const listener = obj.detail.listener;
const event = obj.detail.event;
if (listener === 'follower-latest') {
randombg();
} else if (listener === 'subscriber-latest') {
randombg2();
} else if (listener === 'host-latest') {
} else if (listener === 'raid-latest') {
} else if (listener === 'cheer-latest') {
} else if (listener === 'tip-latest') {
}
});```
Hi i'd like to get the watchtime datas from streamElements in my discordBot but i odnt understand how to fill the form with this type of project like what do i put in the company name or the redirect url
The easiest solution is to use ${1}, ${2}, ... (like SquidCharger said).
More complex solutions are:
${sender} and ${1|${random.chatter}} are ${random.0-100}% in love!The first name is always the name of the chatter.
The other name is the first command arg (if none provided, a random chatter is picked).
${touser} and ${2|${random.chatter}} are ${random.0-100}% in love!The first command arg is used for the first name (if none provided, the name of the chatter is used).
The other name is the second command arg (if none provided, a random chatter is picked).
Is song request still broken?
Is it possible for a chat command to update a number/text on stream? Something like !addwin and a number on screen updates the win count.
there is a counter widget in the overlay editor, that should do the trick
Hi ππΌ Iβm new here. Iβm wondering how to find or create a widget or chatbot (forgive me if those arenβt the correct terms) where people can submit a question. Then have a list of people in the order their question was received.
hey π
I wonder whether warpworld's multi queue would work for the use case you described?
https://warp.world/v1/
It was created to share invite-codes, but might work for questions as well.
I have 2 overlays I use often, but these Overlays do not show in My Overlays on the stream elements site.
They are the two overlays I use every day and they work.
Why do they not show on the stream elements site in My overlays is this something I am doing wrong and how do I fix this.
I'll give it a try!! Thank you!!
when I try to edit any overlay (supertheme or otherwise) I get an error message that says the overlay does not exist. has anyone else run into this issue?
Is there a way to edit the code for this widget?
when you say 'star' are you referring to Facebook?
basically; you want to set up your normal smaller alerts. Then add a variation for the scare ones that is 'ignored' with no sound/image
here's an recent convo for the Twitch 'full screen alert': #helpdesk-twitch message
no problem ... it should work on StreamElements π ... but to be honest, i haven't test the FaceBook stuff in about a year, so let me know π
@elfin arch yeah will do I am gonna try work on it shortly fingers crossed, appreciate the help βΊοΈπ
hello there, is there an option to export loyalty leaderboard?
It worked π₯³π₯³ there was definitely no way I could have done this in SLOBS this was so much easier. Thank you so much for your help I appreciate you
Hello how is everyone, I have a question that involves the SE website and the alerts on the Subscriber side
Hey everyone, I'm trying to make a command with a nested variable in it, Is it possible or not, and if yes, how, please ?
${count globaldeath +${getcount sessiondeath}}
Nevermind, i found it ! "doublequoted" was the key ! FYI : ${count globaldeath "+${getcount sessiondeath}"}
Is there some tutorial on how to get started with coding and deploying widgets? Iβm already familiar with HTML, CSS, JS
You can get some widgets from #widget-share and check how they work. Also you can use the Overlay Editor documentation link in this channel description
Multitasking with chat rooms connected that would be cool I don't know if it's been requested lol
Hey guys! Am I able to edit the giveaway module? I have to edit the response text
Not possible.
Hey I'm trying to make a custom stream element command that has two inputs
for example:
!wordcount username word
should respond with:
username has said word [x number] times in this chat
I've already taken care of the word count part. But, I'm not familiar with stream element notation so I don't know how reference "username" and "word."
I've seen some other people use {start:end} and ${1}, but I how do I grab one part and then the other.
Do I write something like: ${1} and ${2} or {1:} and {2:}?
I would use ${1} and ${2:}.
${1}uses only the first argument (usernames always should be a single word).${2:}uses the second argument and everything after that.
tysm!
how can I get it to where ONLY SUBS can request music via streamelements media request? (I'm not seeing the option beyond FREE or TIP or BOTH)
Edit the !songrequest command to have a higher required user level.
Hi everyone !
I need some help on a widget :/
I'm trying to modify one that i found on #widget-share ( Level up Goal ) but one thing isn't working :/
I added some level on it, added amount on each level, but when i reach for example the second level, it doesn't change the amount.
Someone can help me ?
what did you change
Is there an issue with ${redeem}? It's not working for me today. In fact, any command with it as a part of the response isn't working at all..the other commands are working fine if they don't have a redemption command involved..
Can the streamelement chat bot send whispers? Or would I need to create a custom bot for something like that
Twitch bots and whispers are a no-no combination in general. By design it's doesn't work reliably
the answer to that is it can but you shouldn't
I very much doubt the global Streamelements bot can cope with whispers rate limit anyway given how low they are
probably the best solution is creating a normal twitch account, and use APIs to make it work such a bot
again, that won't work reliably by Twitch's intentional design. Whispers are strongly not recommended
Got it ty ty
Hello, I would like to ask why ChatStats is not working on my stream. I heard it was supposedly by changing the nickname. Someone told me to write about it on a discord.
Sorry if I use a bad chat
The only way I found was setting a command to whisper. But not using the API, even you adding the /w option at the beginning.
Hello, I am currently making a custom streamelements command:
It works like this:
!wordcount name word and should return name has said word {x number} of times!
Everything was going well until I tired to call my custom API to retrieve the number.
I keep getting the error: RequestError: connect ECONNREFUSED.
My command: ${1} has said ${2:} ${customapi.link?name=${1}&word=${2:}} times!
I'm new to API's. I made my own API using Flask in Python.
The API link works fine when I have the python program running and enter the link into Google Chrome.
I'm not really sure, but I think my API is local to my computer. Is that the problem?
is your link localhost:##### ?
Its actually different than that but im scared to share bc I was just auto muted for doing so π
oh. 1 sec. i'll check
ya. that is a local host link. so only on your PC or network
I see, thank you for finding that out for me. Would I need to create my own website to fix that?
you'd need to set up at least a server; i have gotten good results with replit; I use javascript but should work the same with python: https://pjonp.blogspot.com/
It may be more difficult depending on the amount and usage of code that you need. The free versions of the servers automatically shut down after 30 minutes and have a 'spawn time'. If you have a lot of code then the first time you use the command it will timeout
...and also, you can't run a constant database (memory object), like a chat bot for checking chat messages and word counts (as it will reset when shut down).
there are some tricks to prevent shut down, but anyway not the best service to hold a permanent online service
ya, you can get it to stay up; but most the free services have a monthly hour count, so if you try to keep it up 24/7, you only get like 20 days a month. ...i guess* you can work around that with like 6 hours a day. ... the replit was the best one that i tried for a fee service, did you have other thoughts? I tried heroku and the spawn time was slow for me and always gave timeout for first message
Huh, well tysm for the help. That's a bit of a set back for my project, but I'm glad you pointed me in the right direction! Also I'm storing chat messages in a local CSV file using one program and then setting up the API in another. I would love to share the GitHub I made for it (I'm really new to personal CS projects so criticism is like gold for me rn) but that's a link so :(.
you can try... i'm not sure if github is whitelisted in this chat or not.
yeah yeah, I was just agreeing with you that those free services are not the ideal hosts, in general. Not a fan at all of Heroku myself, Replit seems pretty decent. Tried Glitch a while ago before they screwed it up. I still want to test Netlify's serverless functions, never had the time to do it. Right now I'm using DigitalOcean for production stuff, $6/month, running multiple stuff and still plenty of resources to use, I'm pretty happy with it
Didn't know Replit had a monthly limit on hours tho
ya, Glitch was nice; never used Netlify's or any other serverless, I've heard that the CloudFlare workers are pretty good for APIs. It's on my list to check out once i finish the replit thing that i have abandoned π€£ ... so someday. And, I thought replit had an hour limit, never tried to test it though
I'm now using the paid version of Replit, $7/month. I was using Vercel (free), which is awesome and you can set your domain DNS in there. Each deployment has a dev environment and production env and some more features (for Next.JS is perfect). However they have some issues with encoding request and depending on what you are doing they don't decode the %20 and other special characters when sending the response (my use case during the time).
Quick question, say I do obj.detail.event.data.tags.mod, does it return a string?
I asked something similar a few weeks ago, here is ca11's answer:
#dev-chat message
π ; i use something like obj.detail.event.data.tags.mod === '1'; for the true/false
right thanks, but why doesnt this pass here...
if (isMod === '1') {
const element = $.parseHTML(`
<div data-from="${userId}" data-id="${msgId}" class="message-row {animationIn} animated" id="msg-${totalMessages}">
<div class="meta">
<div class="badges">${badges}</div>
<div class="name">${username}</div>
${hora}
</div>
<div class="message">
<div class="container-message ${actionClass}" style="border-bottom: 2px solid ${borderMessage}; color: black;">
${isMod}${message}
</div>
</div>
</div>`);
}
${isMod} without the if block displays 1 correctly tho.. hmm so idk why it shouldnt pass the if check...
are you setting isMod = obj.detail.event.data.tags.mod ?
it's a parameter passed from obj.detail.event.data.tags.mod
let data = obj.detail.event.data;
addMessage(obj.detail.event.data.displayName,
message,
badges,
data.userId,
data.msgId,
color,
data.isAction,
data.tags.mod);
i tried something, instead of parsing the html inside the if i did it outside with a temp string
let temp = "";
if (isMod === '1') {
temp = `<div data-from="${userId}" data-id="${msgId}" class="message-row {animationIn} animated" id="msg-${totalMessages}">
<div class="meta">
<div class="badges">${badges}</div>
<div class="name">${username}</div>
${hora}
</div>
<div class="message">
<div class="container-message ${actionClass}" style="border-bottom: 2px solid ${borderMessage}; color: black;">
${isMod}${message}
</div>
</div>
</div>`;
}
const element = $.parseHTML(`${temp}`);```
works like a charm now
hmm
ah; yes. your element variable was in the if and cou;dn't be read outside of that
thanks for the help :D
no problem π€£ ; you solved it yourself. happy coding π
"badges": "broadcaster/1"
the broadcaster will always have this badge, correct? theres no way to disable it? bc ill use it in my logic wahaha
are there tags for bots, vips, and broadcasters
Twitch doesn't know if you are bot or not. Yes, there are badges for VIPs and broadcaster
So im pretty baby at coding, I don βt really know where to start if i wanna make my own custom chat widget. Iβve made a mock up one in illustrator with SVG files and would like to implement animations as well.
But i canβt seem to find a good base to start off from
Can someone please build exactly the same giveaway as Streamelements have. So you also add in a browser source and a picture! I really want it the way it is setup! But not rigged. I tested it the other day and nothing have happen since 28 of March as far as I know! I barely have any giveaways now because of this! I will now pay 15 euros if someone can fix it for me! Please help. My entire stream is built around this currency! And I want also the currency to be a cost during the giveaways!
I haven't received a response on my oauth application in a few weeks... is there a delay?
@toxic vigil there are custom chat widgets in #widget-share
usually if you're just starting out it's better to modify something else to meet your needs rather than start from scratch
anyone who does twitch bots.. and willing to help me custom build one... willing to pay..drop me a msg..
need a modified version of the autopoll by @viral patrol
Just to add. I was reached in that case but I don't have time to take that, so I am fully ok if anybody else open for comission takes that request
Hi I just joined a Patreon for Paranormal Nightmare and I cannot find them can you please help me? Thank you.
I got an email from Patreon for their sight and it linked to my Discord. My email is kd69dm@gmail.com if this helps. Thank you Dawn
could you please provide more details about the edits you need done?
I basically want something to scan the chat... And display the "hot words" on screen.
@opaque wasp
Like for example I stream a game called crazy time... And ppl spam colors... I want it to pickup the colors from chat and show on screen ... Instead of typing !yellow... When ppl spam yellow it needs to pick it up and show how many ppl picked what color
If u DM me I can show u an example from other streamers
During other times.. when ppl spam emotes... I want it to show the most spammed emote
offer is still up... if anyone else is interested ... can msg me as well...
Hello together.
I am currently trying to play with the RE2 RegEx for commands. I try to find suitable questions to randomly answer 'yes' or 'no'.
After having found out a way to exclude certain words (with negative lookahead) I tried to test my result, but the bot doesn't get triggered by my sentences.
But if I am not mistaken, this should be a valid syntax.
Can someone help me out?
https://regex101.com/r/0LJUre/1
The example RegEx currently is this one:
^(?!.*(w|W)(ho|hy|here|hat))(.*\?+.*)$
Still possible to trigger custom alerts?
@tribal zenith I'm facing another strange problem when reading badges from message object, can I DM you a screenshot?
sure
I reworked my previous widget back into the alertbox but the fields with multiple images / videos seem broken.
Even if I only select one, there are more added with the "broken image" icon instead of the image / video it was supposed to.
Where should I report this or is this already a known bug? π
Hey Guys! Anyone got a Timer which is not always active? Like running in the background and a viewer writes !timer to let it appear for a few seconds
I cant find a single one like that
thanks for that. Any idea how i can also use the grapheme-splitter used in that example as that doesn't list a CND i can import. I could point at the github raw, but i'm not sure that's a good idea or if streamelements would allow it
No idea
@burnt oxide the only time streamelements has a problem with non-cdn-hosted code is if you're sharing your overlay for the general public
they don't want you to bait and switch the code out with something malicious, the risk of which is low for well-known cdn libraries
so if it's just for yourself you can do whatever you want
Is it possible to add a delay between my alert and my sound alert? So I want my sound alert to play first then the alert would show up?
so is it simply called "vip" in "badges"? bc rn im just checking if the badges string .includes() the keyword
There is no custom widget input-field that accepts .txt, .csv or .xml files, right?
(Something similar to "type": "image-input")
the regex itself seems fine, you might want to share your actual code, where you use it
--- since you can't upload those files, not sure if it matter (for working inside the editor) ... but my guess is maybe? .... somehow thie ^ vodoo works (angular)
I try to use it in the twitch chat, while this command has the regex in the respective field of the custom bot command. Without the negative lookahead it seems to work, but doesn't exclude sentences with these words.
regrex ?!?!? i hate regrex more than i hate CSS.
You can create an object for the badges and check if the user has any of them.
const data = obj.detail.event.data
let userBadge = { // Criar os perfis de usuΓ‘rio. Exemplo: {mod: 1, sub: 1, vip: false, broadcaster: false}
'mod': parseInt(data.tags.mod),
'sub': parseInt(data.tags.subscriber),
'vip': (data.tags.badges.indexOf("vip") !== -1),
'broadcaster': user === channel
}```
Then you can check with a simple if
```js
if(userBadge.vip){
// do your experliarmus
}
apparently RE2 doesn't support lookeaheads: https://github.com/google/re2/wiki/Syntax
but I'm sure you can find an alternative regex expression
Oh! I see. I must have searched for something else then. Thank you!
Edit: I get it now. I have to use the flavor 'Golang' in regex101.com to represent RE2. It is not PCRE2 which I assumed.
I tried "type": "file", but it seems that changes don't trigger a reload of the widget and similar problems.
For now, I posted it as idea on the StreamElements Community Board.
Thanks for the tip regarding file, I didn't know that this was a thing.
yeah I deleted the message because I instantly realized file is the one type explicitly not supported by SE
but it's Saturday and my brain is slow
are you familiar with the angular stuff? (i have no clue about it) but i've seen Boost do magic with it; some i'm wonder the limitations.
for me the JSON is " " only π€£
I used Angular ages ago, but I forgot everything about it. Moved to React a bit ago (and far from being an expert whatsoever). To me JSON is basic stuff also
I'm newb in React (if you are React look at Zaytri's widget' s... she went full React on them)
JSON to me is a side script to build.... I had no Idea there could be vars in it
me neither until that clock widget blew my mind. But makes sense I guess, at the end they're transforming the JSON into Material controls
oh shit crap. (no bad words) . he's here/// run
I'm always here... Lurking in the shadows
i wanna ask how; ... but i know the answer is 'angular' and i'm not sure that's on my list.
....i still wanna learn python, nd that's going on 2 years
Since ya'll here could you poke AaroniusH in Code-Gurus about Vanta Animations not working for twitch users period?
As in incompatible platform.
Poke
I thought i did nope different issue
Β―_(γ)_/Β―
To quote their response when I asked what it's made for:
sorry I'm just getting to this! I coded it specifically as a twitch plugin, however, there are no hooks into twitch evens so I would expect it to work for any platform
So yeah.... Busted for whatever reason.
@ocean fractal ^ ?
Good morning, everyone!
I'm having a problem with my Leaderboard Loyalty Settings. Is it here where I report/ask for help?
you are in Twitch chat π
yo what there's a file input type
@elfin arch after you mentioned it. i remembered i did the same thing with the first widget i ever submitted. like 3 years ago lol.
π€£ that is valid JSON. I hate to say it; but i that is a valid Object key
hahahahah'
hacking widgets since 1880
i looked at code i did like 6 months ago; and i'm π€·
i have this spotify widget ive built like. 100 different times. had someone as me to make it work with pretzel. my original code was code. so i had to use old code. i was like a deer in headlights for the first 4 hours.
if it works; send it π .... just make sure it works
ha yea... luckily i got it all working
Um hi
I went to obs like someone told me but obs said they couldnβt help me with my problem
Your issue is with recording videos? That is something you'd want to speak with on their server.
I did that but they told me they donβt support the Stream elements plug in
uninstall .Live @stiff oriole. then try
Ok
π
I'll take a gander. One possibility is that the cdn to pull the library into the widget is no longer available or something. I'll check it out
Hi developers,
I hope this is the right place to post this. (PS: Thank you for all your hard work making SE so powerful and special!)
I want to do a "Sub-a-thon" marathon stream, but I also want to let new Patreon patrons change the time as well. I've already used @viral patrol's Patreon Alerts (which is great!) but is there a way to tie the patreon alerts into the Stream Elements Marathon Widget?
Thank you in advance for your help!
Hey. It's possible and not that hard for some dev out there. Can't help with the code tho, don't have time
For the reference - need to save the value into SE_API.store in alerts widget, then listen for it's updates in the subathon widget and add the value to the timer
I'm glad that Patreon gives access to a ton of "webhooks" for just such an occasion. Thank you for answering my question. I think I'll just have to add it manually. I don't know how to code.
It should be done with the code
is there a preferred/optimal video format and resolution that should be used for alerts or videos in a browser source?
I am not sure why most of the time the videos playing in my browser source are lagging. (currently using 640x360 60fps VP9 webm) and is there a way to check what is causing the lag in a browser source?
I don't think VP9 is hardware accelerated so try h.264 or maybe vp8
thanks for the tip, I will try that!
i believe it is the optional chaining you have there the: object?.key older versions of OBS and .Live don't support that.
Awesome, thank you
Anyone knows how to downgrade obs? 27.2 causes bad freezes and crashes on my rig
Go to https://obsproject.com/download and click on "Previous Releases". However, if you are streaming to Twitch, any version before 27.2 will not work.
Hey thanks for the answer @severe shell I just saw a Video about that Twitch AI. Its just not automated. You need to integrate it manual I have to try it out
I streamed today and the freeze came out of nowhere causing my whole computer into a lag scene
@proven crane there's a known issue with freezing on nvidia systems in 27.2, it should be fixed in 27.2.1 and later
also versions before 27.2 will work but without the twitch integrations so no automatically getting your stream key, docks, etc, but if you set that all up manually it works fine
@elfin arch Hey I just wanted to let you know that I got my chat commands working like I wanted thanks to your advise. Also, I secured my private stream info so thanks for pointing that out π . tysm!
@hot trout @proven crane
Iβm on OBS 27.2.3, both times Iβve been live with that version, OBS froze approx 80 minutes into a twitch stream, yet runs for hours doing test streams to restream.
OBS devs sad it was the SE.live integration from the logs so Iβve posted them here in that thread.
Basic suggestions are to make sure GPU has latest drivers and ensure OBS is opened in admin mode, if you find out what issue was freezing yours let me know, my last resort will be to install a fresh OBS without the SE.Live addon.
Does anyone know if forums are able to be linked to in game services like rust the game etc, because usually people link their steam account to a website to gain stuff in game, would this work with a forums?
Does Anybody Know How To Disable Rounded Corners On My Chat Widget Because I'm Going For A Windows 95 Overlay
Ended Up Just Using A Color Source Cause Why Not
I Made The Chat Transparent Then Put A Color Source
I was wondering why, for capturing ps remote play it only lets me capture it using the windows capture n not game capture
Window Capture Is Better
Good to know, yesterday i was able to use game capture for it just stopped working today thxπ
@sage owlBecause it's not an actual game and only a application window.
Game capture would never work.
Is there a way to set up custom global variables that can be changed for example by a command and can be used in every widget?
I have some text and some colour and want a command that lets the moderators change this
Anyone have a white noise sound, I think i got rid of it by adding noise suppression to desktop audio but donβt know if thats the right way
I'm working on a custom widget and I want to get all the emotes that can be used on the channel, do you know how I can use that in my widget? https://dev.streamelements.com/docs/kappa/b3A6NTM5NzEzNA
One issue I'm having: When I test out my Cheers, I get a bunch of emotes that aren't the ones that I selected.
Use the apiToken you get on the onWidgetLoad event to do the corresponding http call to that endpoint
There is no default/straightforward way to do this. Although if you're using custom widgets/code, you can use the KV store to save the shared variables you want, and then listen in the different widgets for changes
I used a standart text widget, but this is easy to convert into a custom widget. For some reason i can't even add arguments to custom commands or is there a code editor for commands or something like this?
You would handle the command inside the widget(s), by checking chat messages (listener: message events)
Oh ok. One last question: I need to let only mods do this because else everyone would keep changing the text
you can easily check if the user sending the message/command is a mod by taking a look at the tags sent in the event object
Has anyone figured out a way to do a random number selection and then have it select one of 2 response variables based on the number chosen, kinda like nightbot's eval function?
Sounds like ${random.pick} with extra steps
yeah i got the random part but i want it to pick one of 2 responses based on the number chosen
Hello, I downloaded the alpha gaming rotating feed v2.2 for twitch and created a streamelements account for the first time. Is there something in that overlay that doesn't allow for latest subs, gifted subs, followers, and cheerers to show up? Am I missing something? There is a field for latest subs, gifted subs, latest follower and latest cheer. Each info field is called an event and in those events I can choose what will be displayed (latest sub, latest cheer, etc.) and under that I can add {name} and/or {count}
I just opened the overlay URL again to get a fresh preset, and the issue persists that none of my stream information is being displayed (latest follower, sub, cheer, etc.)
I bet it's because of the fresh SE account, Streamelements just doesn't have any tracked events yet
If you want to randomize responses, thefyrewire's pastebin API might be what you're looking for:
https://thefyrewire.com/docs/api/twitch/pastebin/#required-parametersYou basically put everything in a pastebin document and query it with
$(customapi).
If you only want to choose between variables,
${random.pick ${1} ${2}}seem to do the job (like greebowarrior already said).To choose between two response texts:
${random.pick 'This is the first response.' 'The second response in action.'}
I also hope, it is ok to share thefyrewire's documentation for the API.
that's the thing though, I found a similiar preset overlay that actually includes some of that missing information. The similar one can track my followers and subs but that seems to be it
hi
I just added "widgetAuthor": "string" to the fields of a widget by accident and I can no longer edit the widget code. Is there any way to recover the widget?
oh yeah good point. I'll try and get a fix in today
That's strange, you should be able to open it anyway to fix the code. Well, you can recover your code following this:
#dev-chat message
You will get the fields on your output, so you can copy it and create a new widget again.
I remember that @hot trout created an application to automate this process of getting your widget code, but I cannot find the link here at the moment. Maybe he will show up and help on that.
well if you're gonna @ me then that's almost a given
and yes I did, made in javascript https://github.com/CyBeRoni/se-overlay-uploader
ty both
getting docs: [] as a result
other calls where I don't specify the overlay name so much return fine
Are you able to get the overlay ID from the part 1?
so I can get overlay IDs from any overlay I have but that one
oh hang on, no I can't
Is there another option than regular?
you can get the overlay id from the url too
when you click edit in the list and you get to the non-functioning editor page, the id in that url is the overlay id
Hey guys!
Can someone help me please?
I would like to make SE giveaways from streamdeck. Is there any way to do it with curl or something like that?
I saw some codes on dev.se.com but I dont really understand
I have this in my notes (saved it some time ago to use on Touch Portal, but never used haha)
====================
Create a giveaway
Required information: JWT_TOKEN and ACCOUNT_ID (channel id)
Create giveaway
curl --request POST --url "https://api.streamelements.com/kappa/v3/giveaways/ACCOUNT_ID/" -H "Accept: application/json" -H "Authorization: Bearer <JWT_TOKEN>" -d "title=Test_Title" -d "botResponses=true" -d "description=Test_Description" -d "cost=0" -d "subscriberLuck=3" -d "subscriberonly=false" -d "freeTicket=true" -d "maxTickets=1"
Response
{"_id":"**********","channel":"********","title":"","description":"","preview":"","cost":0,"subscriberLuck":0,"subscriberOnly":false,"freeTicket":false,"totalAmount":0,"totalUsers":0,"maxTickets":0,"botResponses":false,"state":"created","createdAt":"2021-06-06T20:49:04.959588767Z","updatedAt":"2021-06-06T20:49:04.959588767Z","winners":[]}
Start giveaway
curl --request PUT --url "https://api.streamelements.com/kappa/v3/giveaways/ACCOUNT_ID/GIVEAWAY_ID/action" -H "Accept: application/json" -H "Authorization: Bearer JWT_TOKEN" -d "action=start"
Response
{"success":true}
Stop giveaway
curl --request PUT --url "https://api.streamelements.com/kappa/v3/giveaways/ACCOUNT_ID/GIVEAWAY_ID/action" -H "Accept: application/json" -H "Authorization: Bearer JWT_TOKEN" -d "action=stop"
Thats what I need. Thanks a lot
If i want to start, the giveaway id is a random string? Or can i use a responsible link to start the created giveaway?
the giveaway id is in the response to the create giveaway req
so you'll need to parse that and extract it from the json
oh shit. thanks
I just can't wrap my head around how to go about creating what I want. I'm trying to replicate a command where it picks a random number from 0-10. If the number is 0-5, it gets response A. If it's 6-10, response B. The response also includes the user of the command [which I know is the variable $(sender)] and the random number chosen
It is possible with pastebin stuff. There's an undocumented parameter for ranges, so if you just make a paste like this, where the range is structured :{start-end}
:{0-5} $(sender) got $(ranges.1) = Response A
:{6-10} $(sender) got $(ranges.1) = Response B
with a command response like this (replace the pastebin ID with your own) (note that the random SE variable is minimum inclusive, maximum exclusive, so for random numbers between 0-10, including 10, the range should actually be 0-11 in the variable)
$(customapi.https://api.thefyrewire.com/twitch/pastebin/4HrSgeZP?range=$(random.0-11)&user=$(sender))
...you get that type of functionality. Hope that helps a bit!
Every week I learn something new from you and your API
so $(ranges.1) is the variable that gets the random number that was generated?
That is correct! If you passed in multiple possible ranges (comma-separated) you would access them with $(ranges.#), in the order that they were given in the URL
Awesome! It works perfectly! Much appreciated. I was losing hair trying to figure this out lol
can I add tabs to my custom widget settings?
I want to do something like the kappagen widget
Hi
Just tested again on a different overlay: having multiple images/videos as input is broken for the alertbox widget.
Where/how do I report this and is there a workaround?
hello! do you know if there is any way to reset a session goal via streamdeck or APIs?
As long as there is an api to do so it can be possible with a streamdeck. Know just the plugin for it too.
Reset session data Powered by Stoplight.
i can see there is a session reset
ye, but session data in general is not goal data
those are two different things, at least in the UI
Ah.
Yeah. I'll leave it to
people to answer.
Ok apparently I can use the https://api.streamelements.com/kappa/v2/sessions/{channel} to change the progress of the goals (which is not exactly reset but it would work). I've been testing the API from the website, but it doesn't seem to change the values.
i've tried to change the follower-session value, but its still 0.
its still answering 200, but giving me back the old data
remove the data part, use just:
{
"follower-goal": {
"amount": 5
}
}
(and yes, use the goal one)
@still juniper ah what an idiot, I copied it from the response
lemme try
yep, its working this way! thanks
@still juniper can I ask a further question?
you can ask, I don't know if i'll know the answer! ^^
do you know if there is an API for changing the visibility of a widget in a specific overlay?
I know you can get the list of the overlays, but i cannot find any api endpoint to change them
none that I'm aware of, but I haven't been interested in that specific functionality so I might be missing things
Gimme a sec to find something. I think there is something specific for widgets but nor quite sure what it was.
Gets overlay details with all widgets on it Powered by Stoplight.
yes this one is gonna give you the status
of the overlay
but its a GET, you cannot change values inside an overlay
in answer to which event would you like to hide them?
that endpoint accepts PUTs too
but you have to put your entire overlay
at which point a reload is triggered on the client side
so it's not that great for just adjusting visibility of a single widget
unless you don't mind that such an update is basically an update of the whole overlay
Do you know if I can get the cheermotes through the SE-API ? I want to use it in my custom widget https://dev.twitch.tv/docs/api/reference#get-cheermotes
how can i access this element on load?
you can't afaik. What do you need it for?
Hi, I would like to stream both YouTube and Twitch, can I somehow link alerts from both services?
@fast cairn not in a singular box.
not planning to add multi stream?
No idea.
and when I log out of the youtube panel and log in to the twitch panel, will I see that alert on the stream? if I put a link there in obs?
And I would like to ask, is there any way to deduct the fees for donate via paypal? or how to do it?
I'm messing around with FabioZumbi's custom chat widget, does anybody have an idea how one would make it such that the existing messages are animated when being pushed up or down and not just popping up magically?
What you mean? Don't you declare just the money you receive? Why would you count fees too?
I'll get 50, - but with PayPal's fees will get 38, - so that the stream show the amount that remains to me (those 38, - where deducted paypal charges)
Oh. I need to get the follower count out of there or call the SE API on channels/me
Using js libraries for animations like anime.js or gsap, and/or animate.style
hi there! i'm using the boxed chat by cocahh and absolutely love it. just wondering if it's possible to align everything to the right side through the editor? the "horizontal nickname position" slider only pushes it to the center of the message box. thank you ahead of time!
this is with the slider pushed all the way
and this is where i'd like the name sitting, but just on the opposite side
@gilded meteor ^^^^
works incredible! but the issue comes with chat spam it starts to do this weird thing... hmm not 100% sure might be the website not being able to keep up sometimes it can be recreated sometimes it cant ...
LOL it looks horrible on streamelements webapp but it looks just fine on stream 
That info is available in the data received on the 'onWidgetLoad' event. Check the Github link in the channel description for more info
I'm messing with @elfin arch's api guide right now and was wondering if anyone knows why this is happening. I'm not super experienced with node/express so I'm assuming it's just something I don't know about yet lol
When I try to send a message to twitch chat I get "dataMsg = undefined"
I don't see how dataMsg could be undefined when the getData() function should be returning a string no matter what.
I also get this error in my console Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
Here's my route:
const user = (req.query.user).replace(/[^\w]/g, '');
const item = req.query.item;
function getData(user) {
db.get(user).then(value => {
if(!value) {
return "if";
} else {
return "else";
}
})
}
var dataMsg = getData(user);
sendMsg("dataMsg = " + dataMsg);
the getMsg has a promise; so you might want to move the sendMsg("dataMsg = " + dataMsg); where your return "else"* is. and change to sendMsg("dataMsg = " + value); ... move to where the else is*
so the getData() function is returning the values correctly it's just getting lost when I use sendMsg()?
For example if I were to console.log(dataMsg) it wouldn't be undefined?
nvm it's still undefined I see what you're saying
there is a promise in the getData function with the .then(.... which waits for the reading of the database then runs the next part of the code. So I would just put one a sendMsg("dataMsg = " + 'no value found'); where the "if" is and a sendMsg("dataMsg = " + value); where the 'else' is.
What if I want to check the database for data and then set data in the database after that?
Basically what I'm trying to do is pull an array from the database, check if it's empty, if it's not empty I want to push an item into it
put async in front of your function def
and then put await in front of the call to getData()
I think nodejs allows that now
assuming this is top-level
I don't believe it's top-level 
so it's in another function?
ya. it is in an express route
it's not often people define functions inside functions
ah
I think express lets you use async functions too no?
should be able to
that's the easiest way then
turn that function into an async function and use await on things that return promises
using async + await gives me this error: SyntaxError: await is only valid in async functions and the top level bodies of modules
yeah you can only use await in functions that are declared as async function foo(){ β¦ } so you have to adjust that
app.get('...url', async (req, res) => {
const user = (req.query.user).replace(/[^\w]/g, '');
const item = req.query.item;
function getData(user) {
return db.get(user).then(value => {
if(!value) {
return "if";
} else {
return "else";
}
})
}
var dataMsg = await getData(user);
sendMsg("dataMsg = " + dataMsg);
...
if you can't do that you have to go the foo.then() route which is a bit daunting for inexperienced programmers
i don't there is an issue with it. @frank lake i added the async at the top (in the route function)
might have to return the db.get(user) too; don't recall on that.
I think the return is implicit here but it's good to make it explicit imo
hm maybe not
with your exact dataMsg code I'm getting this error 
var dataMsg = await getData(user) {
^
SyntaxError: Unexpected token '{'
worked perfectly! thank you! I don't know much about async/await but should probably look into it lol
ty too @hot trout
await lets you treat async functions (that normally return a promise, meaning the result will be returned later) as if they were synchronous functions (meaning the result is returned immediately)
in this case getData() isn't an async function itself but it returns a promise from db.get() which is
it is a much easier code to read
oh, maybe that is what i was going for the first time ... i mixed the 2 ways together var dataMsg = await db.get(user).then(...
the way you have it now is better, as you can move that whole function out of this route and use it in others, so you don't have to repeat the code each time.
G'day!
From what I've seen I'm unable to use words such as "shit" and "fuck" as keywords.
Is there a way to make a regEx word as a keyword? Could that bypass the potentional filter that's stopping them from being keywords?
Or is there anyway to bypass the filter for these words?
Alright folks, I'm pulling my hair out here.
I want to be able to run a bot command based on a channel point redemption, specifically, I have a custom chat command I would like to run from my streamelements custom commands), however I can find no way to trigger this.
I have seen TriggerFyre, which can do its own image/video/sounds on channel point redemptions, but can't just post a message/run a command.
I tried Creati which has this feature, but it appears to be broken, can't connect to my chat for some reason.
I was thinking, there's perhaps a way to do this using the custom overlay feature on StreamElements overlays?
If someone could point me in the right direction, it'd be appreciated.
Anyone knows a way of putting a pomodoro timer (custom timer) that loops?
Only in streamelements, no OBS
Maybe on custom widget
Hello
I am trying to use a custom font installed on my pc.
Upon typing it out manually, it changes in the panel on the left to the correct font, but this doesn't carry over into the actual overlay itself. any ideas?
hi, does your api offer webhook functionality for being informed about new tips (i mean similiar functionality to eventsub from twitch api)
if not, what is the maximum count of simultaneous connections to the websocket server from one ip address and is there any rate limiting for the GET https://api.streamelements.com/kappa/v2/tips/{channel} endpoint?
Hi Lucka are you trying to do a chat command to display an alert with image/video/sound, I have a custom widget that does that but is not attached to point redemption, let me know if that would help, if you only need the chat command to work, what is the command?
Hi, the font won't carry over on the editor, but it should carry over on OBS as it is locally installed in your computer
that would have to be a custom widget, what would trigger the timer change?
Nope you have it backwards. I want a channel point redemption to trigger a chat command.
Your best bet tbh would be asking the triggerfyre people if you haven't already.
We don't have any channel point integrations yet.
I'll get 50, - but with PayPal's fees will get 38, - so that the stream show the amount that remains to me (those 38, - where deducted paypal charges)
So, super random question about commands.
Is it possible to do something that would basically be a randomized response? Except a response that isn't stored in the code on the command (IDK if that makes sense).
For example a pick.random has basically a list it pulls from, but there is a character limits so if you wanted to do longer responses that doesn't really work.
I saw in the command share that someone was able to do a todo list from a google doc. Maybe something like that would work here. OR maybe there is some way to have it pick another specific command and fire off a random one of those?
I'm horrible at explaining, but I found something that does random output, but i has to be whatever I input.
${random.pick 'random1' 'random2'} <- ex
However, what I'm hoping to find a way to do it to make it so that random1 or random 2 could be another command. However, simply putting the command name in those spaces doesn't work. Alternativly I wonder if there is a way for this type of thing to pull from a list/spreadsheet (probably google docs) to get the same over all end result as you would if you had a whole mess of commands set up.
The results I am looking to output are just kind of long, so the small amount of space given isn't enough to simply type them all out.
Hello everyone. I search command for youtube search from twich. For example: if i have 4 videos with "mouse" in title in my youtube channel and i write "!search mouse" in my twitch channel the bot will show me this 4 videos with title and links.
you could you this https://docs.decapi.me/youtube?endpoint=videoid%2F%3Asearch but I'm not sure it will be that much accurate
it must be something with place to insert ID code from my youtube chanel. Thanks anywhere
Hello! I'm not sure where to ask that question, but I'm trying to find out how my SE bot can show my valorant rank in chat. Can someone help me?
i send you private message
I have an idea of how to work with a custom JS script for it. Will be working on it this week. I'll post in here if I get something working. It's a bit ugly, but I have found it IS possible to intercept the redeem events, and by following they, just using a second bot account set as moderator to run the command.
It's not pretty, but there's no reason it won't work
Have in mind that only redemptions with text input are sent via chat, if that's how you mean to intercept them
Luckily that's not a huge deal for me
Worst case scenario it would be slightly annoying to have to require a message with redemption for non-text rewards
But that's far from the end of the world
It's the best solution we have at the moment, until we get channel point redemption alerts in se.live overlays native
If that ever happens
Hi everybody, how can i receive my client id token from StreamElements to use their API. (I completed and sent the Asuna Form yesterday morning)
Will value ever be empty here? It seems like if(!value) is never being triggered. Even when I don't set anything in the database value returns as [ {} ] which technically isn't null
Im not sure. What about a database that doesn't exist? Is that the same or a catch error?
so i put it on OBS nothing changed aswell as went live to just check if it would come up on stream no luck there either
try the font without the ! just Pepsi
let me know if it doesn't work and we can hop on a quick call and check it together
Kk gna try it now quick
ok
Ok so if I donβt put the ! It doesnβt register the font itself
Wnna jump in a call quick ?
sent you a friend request
Ty
it does trigger if there is no key in the database;
game capture black screen
hi sorry am a noob, is there any way to add custom/external triggers for alerts?
yes. ... but how do you mean 'external' ?
uh ig im just referring to like an action outside default triggers if that makes sense? like if someone clicked a button on my personal website
you would need to have your server connect to the websocket; then on the button press, send it to server to emit to the websocket. And that would send to SE
ah icic ty ty is there any material that can kinda walk me through this?
if you are a 'noob' .... it's going to be a hill; but worth the effort to get to the top π ... do you have knowledge of javascript already, or coming in completely new?
uhh i have like college intro level experience
nice. what I personally use is; Node (js) with an Express for the server. Then socket IO for the web sockets.
And I also use replit for like playing with and testing these things
i'm thinking a good place to start would be with the socket IO chat example: https://socket.io/get-started/chat
it will show how to set up the server, route, and socket, then do some ping-pong.
from that; you can then connect to the SE websocket on your server; then have a button on your webpage that does an API call to your server that emits the event.
but 100% starting with that example on replit will get you going in a fun direction.
okay i will poke around a bit tysm
no problem. and good luck! I promise once you get that example going you'll be π€― π
Does the beforeunload event work as expected in OBS?
(Execution before the browser source gets reloaded or is closed.)
window.addEventListener("beforeunload", function (obj) {
// do something
});
I'm writing a custom widget that tends to receive a lot of minor changes in a relative short time span.
To avoid SE_API timeouts through overusage, I would buffer the process and execute all changes on block after some time has passed or before the widget's browser source is closed.
Hi, is it possible to add songs to queue for media share using API?
How can I remove stream elements from obs, I am having trouble finding my way around to use it
Export your settings and scenes and reinstall it
Bit of a simple request but is there an effective way to test and develop custom widgets locally? I'm a bit over copy-pasting inside.
check pinned messages; there is a package in there
Oh, thank you - ill investigate
Hey I am trying to do the same. I can do some programming myself. Can someone point me in the right direction? Would it be like a custom widget something or other?
repost from twitch: #command-share message
thank you so much!
thanks so much for sharing and going the extra mile to make it!
...i completely forgot about that. hahaha 
i'd like to make a script that makes a dock from google chrome of my current livestream chat. i do this because i'd like to see betterTTV emotes from the dock. is this possible?
https://www.twitch.tv/popout/USERNAME/chat ?
someone added me as bot supervisor but when i open the stream elements deshboard is doesnt load
Hey, is there any way to change the colors of a source by code or something in the SE overlay with color codes like HexCodes? You should be able to change that with channel point polls. (An example: Channel points can be used to select the color of the overlay)
Thanks
Hello everybody! π
I created my first custom widgets that listen to various commands... only one thing I could not find out so far: can I trigger the StreamElements bot to say something from within a custom widget? π€
Afaik only over some middleware like https://jebaited.net
lx's "Bank Heist chat game" custom widget is a good example for this.
#widget-share message
Login page
I wonder whether an OBS color correction filter is applicable to a browser source π€
Of course this would be a manual solution... if it works.
But how can you connect that to SE. is there a code I'm a code-noob
Thank you for the quick reply! π Ok, got it! Luckily, I already have my own (small) middleware running on my server, so I will adjust it accordingly. π
Can't you use the /channel/say endpoint for that? https://dev.streamelements.com/docs/kappa/b3A6NTM5NzEyNQ-channel-say
Never tried it, but I guess it should work?
Anyone
Tips not going through or showing up via Alerts, Subs have donated and they are not going through just disappeared? No trace on revenue or paypal but money coming out of their accounts saying tip - (twitchname), not sure if this is the right place
so im really sad i used the cloud back up b4 i built my new pc tried to reload it and none of my scenes are there π¦
Is there way to reset chatstats?
@mystic lodge ‡οΈ
If you are receiving a 404 error on your chatstats page, please provide the following information:
- Channel name (old and new if changed recently)
- your account ID found at the top of this page: https://streamelements.com/dashboard/account/channels This ID is public info and safe to share here.
@pulsar willow ‡οΈ
Please provide a proper screenshot with the issue visible. If not sure how to take a screenshot, you can check here: https://www.take-a-screenshot.org
Yes, one secondβ¦..but it isnβt easy
@mystic lodge #helpdesk-twitch message
Thatβs how you do it. There should be instructions somewhere around that message
how do i go live on stream elements?
Wrong channel
This is what happens When I try opening the super mod page
@pulsar willow #helpdesk-youtube
Hello, I'm still in the beginning on setting up StreamElements on my OBS and I have a quick question on the payments. If I were to set up a tipping link on my channel I first have to set up a tax form for it as well, correct? and if I make one on StreamElements do I have to also make one on Twitch or would that be linked together.
If you use the tipping page, I don't think so. With SE.Pay I belive you do.
I'm having a hard time understanding, sorry.
Are you using https://streamelements.com/dashboard/tipping-settings or SE.Pay?
I'm looking at the Tipping settings
I'm planning on using it, but I just need a confirmation if setting up the W9 is needed
It is not
okay, thank you
I may have gotten myself in over my head here, I'm trying to modify the autopoll widget to ONLY listen to subscribers and founders in twitch chat but it doesn't seem to want to do it >_O Anyone see where I'm going wrong? o_O
you've written the expression in a way that is logical for humans
but computers don't work that way
specifically the !== -1 part
it'll probably work if you remove that part
it still won't work because:
- the values of
subscriberandfounderare the same asbroadcasterfor some reason/copypaste - the modification of that
ifstatement makes no sense - that is meant to check if a user has already voted, nothing related to their role - you also modified what's being pushed to the
usersarray and now it makes no sense - it's supposed to be a list containing unique values in the form of usernames
is there a way to create a clickable hyperlink in the overlay for socials?
anyone help me with chat stats error 404 ?
@thick plover ‡οΈ
If you are receiving a 404 error on your chatstats page, please provide the following information:
- Channel name (old and new if changed recently)
- your account ID found at the top of this page: https://streamelements.com/dashboard/account/channels This ID is public info and safe to share here.
overlays aren't interactive, so no
you'd need to develop a twitch extension which would allow you to do it
ok thanks
where do i post them ?
Just_G93 old name new name JustG93 ID 61cb5fda8f216d6cada63580
hi if I using gsap is it always need to use async await to call its function?
Isn't the async/await syntax just syntactic sugar and therefore optional by definition?
The last time I took a look into GSAP it seemed to work alot with callbacks.
gsap.to(".test", {
duration: 4,
x: 750,
onComplete: () => console.log("finished")
});
Or do you explicitly use a Tween's .then() method?
https://greensock.com/docs/v3/GSAP/Tween/then()
don't really know im confused with this
,split
Anyone help me
know idea how to split the text
Interestingly that was part of the original code for all viewers. I haven't tested if the original poll doesn't work either though TBF. I assumed it did.
well yes but that doesn't mean it makes sense after modification
in any case ca11 had some good points above
omg my cursor keeps going invisible
Yes I've read the message 5 times trying to wrap my non programmer's mind around what it means. I have major imposter syndrom right now even posting in here cause I know nothing about programming π As evident π
can you show the original code
ideally as a code block and not a screenshot
on account of screenshots are kinda hard to edit
Yep on sec lemme get on the PC
for a code block in discord put it between three backticks
so ```js
code here
(the js on the first line adds syntax highligting for js)
Oof, too long, going to have to split it up lol
just the relevant part is probably ok
let userOptions = {
channelName: "",
wordTimer: "",
wordsLimit: "",
firstLetter: "", //if you want to limit just to hashtags or username mentions use # or @
onlyUniqueUsers: "", //Allow users to have just one vote only
};
let words = [];
let users = [];
window.addEventListener('onWidgetLoad', function (obj) {
userOptions["channelName"] = obj["detail"]["channel"]["username"];
userOptions["wordTimer"] = obj["detail"]["fieldData"]["wordTimer"];
userOptions["wordsLimit"] = obj["detail"]["fieldData"]["wordsLimit"];
userOptions["firstLetter"] = obj["detail"]["fieldData"]["firstLetter"];
userOptions["onlyUniqueUsers"] = (obj["detail"]["fieldData"]["onlyUniqueUsers"] === "yes");
});
window.addEventListener('onEventReceived', function (obj) {
if (obj.detail.listener !== "message") return;
let data = obj.detail.event.data;
let message = html_encode(data["text"]);
let user = data["displayName"];
let userstate = {
"mod": parseInt(data.tags.mod),
"badges": {
"broadcaster": (user === userOptions["channelName"])
}
};
if (message === '!resetpoll' && (userstate.mod || userstate.badges.broadcaster)) {
words = [];
users = [];
return;
}
if (userOptions.onlyUniqueUsers && users.indexOf(userstate.username) !== -1) return false;
let parts = message.split(" ");
for (let i in parts) {
if (poll(parts[i])) {
users.push(userstate.username);
return;
}
}
});
Figure this is the relevant part, that's the original code and I was trying to modify it to where it would only listen for subs and founders (which apparantly are two different instead of just being lumped under subs)
yeah I've been ignored for sub-only stuff because I had a founder badge
Indeed, not ideal π
ok you had the right idea it seems, but the wrong execution
instead of modifying that if statement, leave it as ca11 is right in that it is meant to prevent users voting(?) twice if that setting is enabled
Ahh gotcha, I thought it was for both for odd reason >_O
Now the -1 makes sense I guess xD
yeah that's meant to see if the users array contains the user name, which if it is not the case will return -1
Could it be as simple as just going into the data part of the editor and changing everything to no, except for subs? (but then what about founders, I don't see them in there) or is the data section irrellevant?
I'll post what that one contains too, one sec.
nah the data part of the editor is for settings
Ahh ok
I'm not sure off the top of my head what the currently accepted best way is to check for subs, but there is a value for it in tags
so you could put something like js let userstate = { "mod": parseInt(data.tags.mod), "badges": { "broadcaster": (user === userOptions["channelName"]), "subscriber": parseInt(data.tags.subscriber) } };
and js if (! userstate.mod && ! userstate.badges.subscriber) return false;
assuming you want it to listen to mods too
the question then is if founders are recognised as subs by this but that's the next step if not
Ohh I will try that! Do you reckon that listens for founders as well?
Yeah absolutely, I've got a mod that is founder/sub so I need it to listen to that too
Gotcha
I will give this a try later when I get to the streaming pc and see if it helps. If not I think I'll still have more stuff to work with and try out now, so thank you so much!
its for youtube streams, sorry forgot to mention
Is there something like this for "Fields" ?
Where someone can click a button and it would add something that looks like that?
I don't think I've seen it here https://github.com/StreamElements/widgets/blob/master/CustomCode.md
no that only exists for alertbox.
The async isn't there for the gsap
Well. Not fully. It's like that for loading stuff
Does streamelements have something that can get the other widgets within a overlay?
as example, so that "Custom widget 1" can check the settings of "Template"
is there a SE_API doc? because I can't find "sanitize" anywhere in the api docs itself
nvm I printed it in console.log
I guess I can use store.get and store.set for this
i have ryzen 2600
gtx 1660
ram 16
when i stream use obs elements fps drop in game not in obs help ?
why does store.set send an event more than one time though?
it rate limits me
I don't get why .set triggers more than one time
Hello I have the following idea, but I don't know how to make it work. Is it possible to do this via the API?
I want to make a command that a user can type to get points. Example: I type !hello and then I get 400 loyalty points. Is it possible? If so how can I do it?
so basically i can use gsap even i dont have async await function
For sure
hey there! hoping someone can assist me with my alerts. i actually posted this in the reddit support/help section three days ago and wasn't able to get any feedback.
i have custom .webm alerts that have audio for subs, raids, hosts, etc. the alert duration is set to 7 seconds. for some reason when the alert goes off during my streams, the audio of the alert plays again about 5 seconds later and i am not sure why.
also, i have the volume percentage set to 4% and it is still loud as if there was no adjustment. was wondering if anyone else has run into this issue.
thanks so much for the help!
cause i have a css animation then iwant to put a js spli text to split the char on my span but not woking
hey @torn wave, I was testing your widget A Goal bar with a custom icon! on #widget-share and I discovered a problem: when the goal is close to its end the bar isn't going forward anymore, from what I tested it get stucked on 96/97% and that's because the image takes up the bar space.
- you probably provided the wrong showcase video
I Lauren, send me a DM with your twitch channel and I will take a look in your account and alerts
How can i share an overlay i designed with my customer
something like this streamelements.com/dashboard/overlays/share/........................................................
needs special permissions
how can i get the permissions
there's a form for it
unfortunately I don't know the command to pull up the link to it
what
dm
stupid bot that's a streamelements link
send it to my dm
You can use jebaited.net. Create a new token for points and then click on the scope. It will give you the command.
Thanks! I'll check it out.
I am not sure which help desk I need on this discord, but I am in serious need of help setting up a new custom overlay package I just bought from fiverr. Every file is webm and the guy that design everything for me bases off of using SLOBS . Using that platform is too confusing for me. I am trying to upload the webm files in create an overlay , however even though it uploads , the image/video does not . A file will be 7000 KB , but when I drop it place , it says 0 kb and nothing actually uploads. What am I doing wrong ? Sorry if this is a long post.
Hi guys how can i share an overlay with url?
You cannot, but you can copy overlay to channels where you have manager access.
Or you can try request here:
One-Click Overlay Sharing Application
Use this link to submit an application: https://strms.net/shareoverlay_request
@shell quartz‴οΈ
thx got it
Are you asking for help to set up things on SLOBS or Streamelements?
Preferably Streamelements . That is the platform i use
Could you please provide us a screen record where you try to upload and set media? That would probably help people understand what's the issue you're facing.
What's displaying into the editor? Cause SE isn't always able to process media's metadata imo
When i go into create new overlay , than i click the + button and choose static/custom , click video , click Change Video , Drop the Overlay webm file into the box , all i get the top picture you see above where it says 0 KB
If you go with your mouse over the media into the uploads window, isn't it displaying a button that says Submit?
yes it does ,but when i click it , nothing changes . It stays the same
Could you please try to upload this .webm? If this is working, then the designer probably did something wrong with the rendering.
that worked
This is maybe a simple question, but how do I retrieve the value of one of my counters when a widget loads?
Change counterName for your counter
window.addEventListener('onWidgetLoad', async function (obj){
SE_API.counters.get('counterName').then(counter => {
console.log(counter)
});
})
How do I get audio from Discord to work in OBS?
I have tried application audio capture but it didnβt work
You would need to ask OBS support for that.
SE.live is a plugin for OBS Studio for the best OBS support, please join their Official Discord @ https://discord.gg/obsproject
tysm!
You will find better support on #helpdesk-selive. This channel is to help with widget development, APIs, chat command configuration and things like that.
Oh sorry !
Hey all. Just wondering if any kind of CSS post-processing is possible with the widget editor. I've played with the local environments and I'm hoping to get a workflow for that going soon, (at which point, compiling them down locally is nothing) but I'm still doing it the hard way for now.
Hi <@&382267076632379392> I have a display problem with my credit end of stream, I had done a small reset because, some name was not in days and at the time I did the reset there is nothing more that is displayed in my end credit roll and I would like to know why its doing its
are you using Twitch?
No i using overlay with my panel make with stream element
Which platform are you using? Twitch, Trovo, facebook, youTube?
and my credit roll make by stream element is not show sub follow and other after reset
obs
but the probleme is comming with my galerie overlay
No.. what platform are you streaming too. You have 4 options: Twitch, Trovo, Facebook, Youtube.
π can you post your accountId in the #helpdesk-twitch channel.
I can send you my acont id in pm ?
you can; but i'd perfer you post it in the #helpdesk-twitch channel. so the staff can see it; and make sure you get an answer
i don't wanna flake on you if i get distracted π
i sacre for my personal information i dont want show my personnal information
hi i have an otf costum font and streamelements and its not working
what is JWT token? im trying to close my New Fb Page in streamelements account. I was trying to Link my new fb page to my Old stream elements account.
Hi team. Long time user, first time poster. I like SLOBS; it's pretty versatile, and describes my workstation to a "T" :P. I want to report an issue I'm having; not sure if this is the right place to report it. It concerns the game and screen capture options for each scene. I have ETS2 and ED installed for streaming; both have their specific capture windows working ok now - but earlier, the ETS scene was having the same problem I currently have with RDO. Instead of only picking up the RDO screen, it keeps broadcasting the entire screen - complete with a SLOBS interface tunnel that looks like two mirrors pointed at each other and vanishing into infinity. I've tried all the fixes I could google - admin mode, restarting, creating new capture, switching between DivX and Vulcan, but no joy. I stream to twitch, but haven't gone live with this as I don't want to stream my entire screen every time I alt+tab (I only have one monitor, and it just looks bad). I fixed the ETS2 by messing around with the settings and setting it to full screen from windowed. Anyways is this a known issue? Have other people had the same problem? (It's not a black screen, it's a SLOBS Capture-Entire-Screen tunnel). I'm using Windows 10 with an Nvidia 1080 and an i7.
Could it be that you mix up StreamElements and Streamlabs? (They are not the same.)
lol maybe
sorry about that; will copy and paste this wall of text somehwere else.
good luck with your problem though π
btw. anybody knows something about this?
has anyone worked with store.set and onEventReceived before, especially for kvstore:update event?
Is this the right place to post questions about the API? I think it is but just want to be sure.
yep it is, go ahead
Hey @opaque wasp, thanks for the quick response! So, Iβm writing up a little Python program to help me manage a stream more efficiently. Iβve noticed that there is no method for skipping songs or clearing the queue. Clearing the queue can be done via other means, but I havenβt been able to figure out how to skip. Any suggestions, or am I missing something?
Hello, can someone please help me with how to add progress bar code in this tip goal? #widget-share message
@bitter abyss if u could, ur HUB is awesome, just idk why its not live updating progression bar in tip goal
hello, does anyone have an idea how to interact with a StreamElements custom widget through a stream deck?
It'd be great if I can trigger an event but I thought about injecting some javascript into my OBS Browser source too (I can't find how to do it though ). That said, you can suggest any other solution but I'd like to trigger the event not just by sending a message in the chat
Hi, someone on my eng made a lightning tool at Strike, and it's fully functional on streamlabs, but needs an API key for streamelements. Who does one have to talk to to get one? I can provide link/github/best contact e-mail but the chat didn't allow me to post links thank you π
@limber grove no idea what that is but would have to ask them tbh.
I would love for StreamElements to have this ability to login and be able to conduct a lightning payment
Ask who?
Regarding that link the bot yeeted
π need an API key for it to work https:// www (dot) dono (dot) at/login
it already works though, just not with streamelements login π¦
Sorry, I don't know the rules
Our filtering method is partially broken so it doesn't approve good links.
i can provide an email somewhere or i can re-apply for a key and give it to em i guess
ty for any info π
i remember looking for where to apply but it seemed the applications were closed awhile ago
π’
I can poke the person who's managing the requests and have him reply here.
ayeeee
take your time
i can follow up during normal hours and see if he applied and with what e-mail, or i can do it again if there's open application and re-apply under me too π
There isn't normal hours persay but api requests are sorta
atm.
But he has been pinged and will reply when he has aa chance
Awesommmee! ty ty π
Anyone know how to mass edit custom commands? I'd like to change 1800+ custom commands in stream elements chatbot from Everyone -> Moderator
Hoping there's a button I'm missing T_T
Hello, do you know if I can trigger a custom widget's event through the SE API ?