#dev-chat

1 messages Β· Page 43 of 1

hardy walrus
#

Beyond that someone with a bit more understanding of how stuff goes can help.

sage path
hardy walrus
#

I'd say "yes".

#

Does what you're using involve tts by chance?

sage path
#

no

#

My goal is to create a website with a button that clears out all previous redemptions. I am sharing the ground control app window to kind of show a "queue" of redemptions

hardy walrus
#

Yeah. I'll have to defer that to someone more knowledgeable.

sage path
#

@hardy walrus this is the error I am getting: {"statusCode":403,"error":"Forbidden","message":"No channel authorization found"}

#

when using javascript, xhr.sendRequestHeader("Authorization","Bearer <token goes here>");

hardy walrus
#

Yeah. You're wanting something beyond what I can even comprehend.

sage path
#

ok

sage path
#

Got it to work

#

i was using my channel NAME instead of my channel ID

woven zinc
#

Hi, I was trying to make the bot send a custom message from a custom widget, but can't seem to make it post it. It gives a 20X response but I see no message in chat:

const botSendMessage = msg => {
  const headers = {
    'Accept': 'application/json',
    'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8',
    'Authorization': `Bearer ${jwtToken}` 
  };

  fetch(`https://api.streamelements.com/kappa/v2/bot/${channelID}/say`, {
    method: 'post',
    headers,
    body: JSON.stringify({"message":msg})
  });
}

Anyone can help? thx

viral patrol
#

You have 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8', header but you are sending application/json

#

Also I recommend not to use something where you have jwtToken as overlay widget. If your overlay url leaks it may cause a lot of troubles (for local environment it is all OK). You may want to use MITM proxy for those details that will prevent possible harm (as it is over OAuth and you provide limited scope tokens in overlay, so in case of leak person will be able to use that limited scope). Example of usage: https://discordapp.com/channels/141203863863558144/457957557470887947/714523237819875358

#

@woven zinc ‴️

real mountain
#

Does anyone know of a way to make a bot that allows Moderators to switch OBS scenes from twitch chat?

real mountain
#

Thanks!

warped bridge
#

Hi, i try to use the API to create store items. I have a name and a description because they seem the only params that are needed but now i get an Internal Server Error. Any ideas? πŸ˜…

viral patrol
#

@warped bridge Payload of that request should be something like:

{
    "enabled": true,
    "featured": false,
    "name": "Test item",
    "description": "Test description",
    "type": "perk",
    "accessLevel": 100,
    "cost": 1,
    "cooldown": {
        "user": 10,
        "global": 0
    },
    "quantity": {
        "total": -1
    },
    "alert": {
        "enabled": true,
        "graphics": {
            "duration": 8
        },
        "audio": {
            "volume": 0.5,
            "src": null
        }
    },
    "bot": {
        "enabled": true,
        "identifier": "TestItem"
    },
    "userInput": [],
    "accessCodes": {
        "keys": [],
        "mode": "multi"
    }
}
warped bridge
#

Okay, i will try it. thank you

inland ice
#

@crude crest Did you have time to check on the volume modification of specific items, in the auto shoutout widget?

low nebula
#

Anyone have any experience using a stream deck to make background URL calls and somehow update StreamElements overlay javascript? Just trying to increment/decrement a javascript counter in my overlay using my stream deck.

gloomy helm
#

Hi guys, I was asking this question in the helpdesk for Twitch
Basically I have an animation, but I was wondering if there was a way to flip/mirror the animation

#

Like for example this one, I would like to flip it so Charmander jumps from the left side and sprays to the right.

#

I know it's not a normal feature in StreamElements

#

But is there maybe a code?

native trellis
#

Why not just ask the people from Alpha Gaming to make it mirrored Kappa

gloomy helm
#

Hahaha

#

Well, we've tried and I had someone do it, but they do a green screen behind it

#

But then putting it into Adobe, mirroring it and then removing the greenscreen and then converting the file to webm

#

It removes some of the quality

viral patrol
#

@gloomy helm ffmpeg -i input.webm -vf vflip -c:a copy output.webm

viral patrol
#

You can also change it to lower value, so you have rounded corners

coarse gate
#

thank you appreciate it

torn wave
thorny rover
#

Does anyone have a custom API bankheist minigame command?

elfin arch
thorny rover
#

Thats an overlay. I just want a chat command.

#

Unless I am misreading that.

elfin arch
#

it is an overlay; you are correct. that is not an 'official' widget.

#

there is no API support for that.

gloomy helm
#

@viral patrol the ffmpeg -i input.webm -vf vflip -c:a copy output.webm code

#

is this for Stream Elements CSS

#

or is this for ffmpeg command

viral patrol
#

It is not. It is external app that can do video manipulation from command line

gloomy helm
#

Thought so

viral patrol
#

Yup. Ffmpeg

gloomy helm
#

I just got ffmpeg 2 days ago

#

still tweaking with it

#

thank you

viral patrol
#

CSS is something like transform: scaleX(-1);

#

(on a phone rn so I can't confirm if this does the trick with video elements)

gloomy helm
#

All good, I will just try to flip the file itself

#

I hope it doesn't lose quality or come back with a black background is all

viral patrol
#

Copy parameter copies codec and pixel format so it should be ok

vernal wave
#

dont know if this is the right spot to ask or not...but before when i would go live using stream elements... as i clicked go live it brought up a small window from stream elements asking if i wanted to use stream elements or use like my facebook dashboard to create the 'title, description... etc' now when i click go live it doesnt pop up and forces me to use facebooks ... is this a new update? or did i mess something up and not realize it?

#

not having to have obs + the facebook dashboard made my stream and game run so much smoother and i love stream elements for that.

obsidian lynx
#

Hi, i want to create an EventList Custom Widget but I don't know where to start.
I can't ask someone here to practically to build one for me so I just need some good indications for some tutorials.
Thank you

crisp needle
#

Hey, how can I get the most recent sub gifter in OnWidgetLoad? data["subscriber-alltime-gifter"] seems not working and there's no -recent for sub gifters in GitHub CustomCode.md document.

crisp needle
#

OK, I found out, i didn't have to add [0] at the end of data["subscriber-alltime-gifter"].

burnt plover
#

I hope i am in the right area. Is there a command to randomally play audio sounds ?

lusty pivot
#

hey i want to use like http://google.com/?q=${user.lastmessage} but when user.lastmessage is containing spaces it would cut off the link. is there any way to encode the url to avoid it?

hardy walrus
#

@lusty pivot I'm on mobile so it'd be a PITA to look for it but in the channel topic for #helpdesk-twitch has the variables. Offhand I don't remember the exact one but it it'll do exactly that. I'd also replace that with ${1}.

visual thunder
#

hello! i'm looking for some help or for a smart guy πŸ˜„ wanna get widget for chat command (any, but more like !hello or any kind of it) so it will trigger video+audio & also count how many times user used it, probably with some personal gratz (video+audio again) for user who visited stream & said "!hello" 50/100 etc. times, so settings should be - cooldown per user (24 hours for example); vips/sub+vips/followers - who allowed to use; and some more variables to choose how many times a guy should visit to gratz him; and also a way to set any custom command for it πŸ˜† probably i ask too much, but.. who knows.. πŸ˜‰

#

just got an idea.. maybe such widget already exists

elfin arch
viral patrol
#

@lusty pivot ${pathescape ${1:}}

visual thunder
#

@elfin arch yeah, i know, thats a lot ^^ but that would be one of the best widget at SE's dashboard>themes > widgets

#

i'll try to find it out by myself, if thats possible, but maybe some smart developer gotta accept this "challenge" and create it

elfin arch
#

if you want to take it on yourself; i will try to help. and i know others will help as well.

visual thunder
#

okay, thank you, i'll try to learn smth to try it

frank lake
viral patrol
#

Unfortunately at this moment OAuth2 applications are on hold.

frank lake
#

Ah ok, any idea when they'll be back?

viral patrol
#

We have no ETA on that. The OAuth2 access is limited and we are investigating and developing solution that can be reliable before we reopen requests form.

gloomy maple
#

Hi,

folks don't know if there is a way to a command that computes another command?

Example:
! age
Answer: Your age is 20
! age
Answer: Your age is 30

And here's what I want.
! avgage
Answer: The average age for today's stream is 25 (2 people used the / age command).

winter zephyr
#

Is there anyway to get the bot to announce if you've entered a giveaway?

rugged rapids
#

You can enable that in the giveaway settings, when you create it.

winter zephyr
#

doh, so if the giveaway is active I'm out of luck

frank lake
#

What exactly is the emotes per minute endpoint looking at? If the epm of an emote is 257 does that mean it was used that many times in the last minute?

torn gulch
#

@gloomy maple you can create custom commands ...

  1. !age
    response message: Your age is ${count ageusers "+${1}"} - Total records ${count countage}.

  2. !avgage
    response message: Average age of this stream is ${customapi.https://twitch.center/customapi/math?expr=${getcount ageusers}/${getcount countage}} years (${getcount countage} users used the command - !age years ).

  3. !resetage
    response message: Reseting counters (age - ${count ageusers 0}; users - ${count countage 0}) ...

topaz trout
willow plank
#

Hello! When you create a custom widget, how do you manage to queue the alerts?

vernal marsh
#

Trying to edit an overlay with custom CSS and I cannot find where to get the 'Sender' and 'Amount' containers with animation adding in to Variations.

#

Where as username-Container is linked to 'wobble' animation what can I add to allow {Sender} and {amount} to wobble

flat parrot
#

It seems like message-delete events are not forwarded. I am reporting that. Thanks!
@viral patrol Sorry to ping you - do you know if this was ever resolved? I'm attempting to log the event but it doesn't seem like its coming through so I think not?

vernal marsh
#

If it do it without custom CSS the Amount and/or Sender Wiggles, but when I go into CSS editing I cannot find a way how to set that but the Username does

viral patrol
#

@vernal marsh The value is written in that alert is in JS tab (as it splits text to letters)

#

@flat parrot I have no updates on that one.

tame sun
#

17 days have passed, nothing new about oauth credentials request

toxic pewter
#

Ey guys is there a way to loop a custom widget?

#

I want the tips to pop up for x amount seconds and stay off for x amount seconds and repeat, without a tip to trigger it

elfin arch
#

you want to 'emulate' a tip every X seconds?

toxic pewter
#

yeah

#

i think thats what im going for,been looking at repeat funtion stuff but can't make head or tails from it

elfin arch
#

so to send a test or 'emulated' alert; would be like in the Overlay link in the topic of this channel. It is hidden in there, but basically:

toxic pewter
#

Wait is that only gonna work on a button click?

elfin arch
#

no; just the highlighted text. put that in an interval loop with the donation information to loop

viral patrol
toxic pewter
#

πŸ‘ Thanks i'll try that, total noob with this

unique thistle
#

How can I add a custom font from url for alerts

#

The custom code doesnt work properly to show the text

jagged arrow
#

hi can anyone help me because i am trying to upload a custom alert but for some reason text over image option is not showing the text

unique thistle
#

I want to add a custom font like SF Compact Display, But I can only do it via custom css code, and if i do that then the text doesnt show

high swallowBOT
#

@unique thistle Google Fonts
More than 900 google fonts are supported at this time. You can preview them here: https://fonts.google.com/

Custom Fonts

Steps:

  1. Install the font on the streaming PC or choose a pre-installed windows font.
  2. In the overlay widget settings, select Text Settings
  3. Enable Custom Font
  4. Type the name of the font as it appears in the windows font directory (This is usually C:\Windows\Fonts)

Note: After installing fonts, the browser and OBS must be restarted for the font to appear.

viral patrol
#

@jagged arrow Check margins as they remain the same, so the positioning may be off when you change display template

frank lake
#

Does the emotes per minute endpoint just look at which emotes were used in the last minute?

unique thistle
#

Thanks, But I managed to do it a different way, I left the custom font as SF Compact Display and on my website I grabbed the @font-face part and put that in the custom css option for browser in obs

toxic pewter
#

Nope im too dumb for this thanks anyway guys

vernal marsh
#

@viral patrol I understand the value for the animation is written under the JS tab but the code given only allows Username to 'Wiggle' and not {Amount} or {Sender} to which I am trying to implement the animation on to.
I am able to add in text form the {Amount} and {Sender} but all my attempts into adding is code to allow this to animate also breaks the id username-container to break showing.
Ps. Trying to add this to Sub variations.

vernal marsh
#

I have gotten the Amount to work now after looking at the code from host amount, but still no look getting sender to animate. Eg. username-container, amount-container and sender-container?

#

So I got it working. Had to add the 'Sender' Code above all others in order to work

toxic pewter
#

@viral patrol Copy and pasted everything but now it only shows followers

viral patrol
#

Checking it rn

viral patrol
#

I have updated the code. Line 41 should be

if (fieldData[`${event.type}-include`] !== "yes") return;
toxic pewter
#

πŸ‘ nice thanks

#

so is this then correct? or should it point to sumwhere specific?

#

setInterval(() => {
$(".main-container").show();
}, 2500);

elfin arch
#

that does not look correct to me @toxic pewter ... can you go to jsfiddle.net and post your HTML and JS there; save and post the link back here?

#

basically with that code you posted is telling the ".main" class to show itself every 2.5 seconds.

toxic pewter
#

@elfin arch

crisp laurel
#

anyone know the code to pull sub data from the goal progress instead of total subs? i care about sub points not my actualyl number of subs

#

basically im pretty certain this is the line of code i want to pull from streamelements session data>goals instead of total subscribers

$('#Subcount').text(data["subscriber-{{goalrange}}"]["count"]);

#

i also found this = data["subscriber-goal"]["amount"]

#

but that all pulls from total subscribers not the session data of goals i can set manually

real bronze
willow plank
#

Hello, is it possible for custom widgets to send information to other custom widgets? Please @ me if you have an answer!

spring lance
#

hey there, is there a way to show / hide a layer in the overlay with the api?

#

also, are there webhooks (or something else) for events?

#

specifically, looking for notifications of stream store redemptions

#

and possibly commands

#

πŸ¦— πŸ¦— πŸ¦— πŸ¦— πŸ¦—

hardy walrus
#

@real bronze To my knowledge no change.

real bronze
#

FeelsBadMan But thanks for the response.

plucky kestrel
#

Is there a place to get actual customer service when my overlays wont save and i'm getting a ton of erros in the console.

frank lake
#

Sorry for asking again but I just really wanna figure this out. What exactly does the "emotes per minute" endpoint show? I'm not having trouble getting the data, I just don't understand it. Is it showing which emotes were used in the past minute and how many times? Or something else?

topaz trout
#

can someone help me with my Custom Widget, I just want to invert X and Y proportions and they told me that I need a custom code

elder cipher
#

does anyone know what would cause text not to show up in front of the animated alert? Even when you select for the option to do so?

high swallowBOT
#

@elder cipher Text not showing up over your alerts? Go to the Advanced Text Settings and set the top margin to 50, you can work your way to the right position from there.

elder cipher
#

BRB

#

Bot I love you it workeds

tiny tusk
#

I hope this is the right place to ask. Does anyone know if i can get the output of !weather command in german and another question... can i add a city so the the result of !weather is always the weather of munich?

seems like its not possible to add a command !munich and output is "!weather munich" ... its not activating the !weather command

viral patrol
#

The only way I can think of is ${customapi https://api.scorpstuff.com/weather.php?units=metric&city=Munich}

hardy walrus
#

And even then it would still output into English.

tribal zenith
#

I guess it's not really a dev specific question..but is there a way to let the bot announce when the game category changes?

tiny tusk
#

@viral patrol Thx a lot that helps already! @hardy walrus true but better then nothing...just thought maybe there are international api alteratives around?!

hardy walrus
#

To my knowledge no.

tiny tusk
#

do you guys know a code to output a local time?

hardy walrus
#

However you can always ask @analog sequoia if they'd be willing to add strings to translate to specified languages in the response.

tiny tusk
#

ill try, that would be great, not only for me

#

i guess

hardy walrus
#

The reason I pinged them is because the link above is his api.

tiny tusk
#

${time.Europe/Berlin} is working

#

One last question for now :P

I saw some guys have a command to exchage currency ... for example !howmuchis 10 and output is f.e. in yen

is that possible with SE?

hardy walrus
tiny tusk
#

thx ill take a look

#

@hardy walrus yep thats exactly what i want but im not able to create the correct code 😦

#

but i found it on google with that info

#

THANKS a lot

analog sequoia
#

sorry, one of the design decisions I made when I started my site was NOT to do custom formatting (ie. match the formatting provided in the url bar) or translations. It just makes it way to complicated, and I wanted to keep things simple and easy to use

hardy walrus
#

Figured as much. Didn't hurt to ask at least.

analog sequoia
#

it makes it harder not just to write, but also for people to use

hollow stone
#

Hello πŸ‘‹ I was directed here for assistance. I'm logged into Streamelements.com I am unable replace stock animations/audio for both; Sub/Cheer. I've loaded in 3 different animations & confirmed these loaded animations were playing in the thumbnail. However, when I "emulate" the Sub/Cheer the default animation/audio still plays not what I loaded. NOTE: All other alerts where swapped out without issue, it's only these two that are stuck on the "Default."
THIS ISSUE IS STILL UNRESOLVED.

terse raft
#

Is there anyway to develop widgets locally or do you have to use the stream elements editor?

elfin arch
#

Check the pinned messages. there is a way to set up an local environment. ... but i have no experience using it.

#

I write my code locally then copy pasta over to test.

#

@terse raft ^^

terse raft
#

Thanks, I’ll check the pins again. I couldn’t find anything

true urchin
#

Would anyone know how I can import a picture using the editor?

viral patrol
#

@hollow stone Please confirm, that you edited all variations of sub/cheer alerts as well

silk pebble
#

Hi, does anyone know if any custom API for a dictionary has been made to search for a word in Twitch chat? πŸ€”

clear escarp
#

Hello, having a hard time with @broken coyote Ultimate chat widget, just looking for a way to add volume sliders to each of the video and audio portions but not having any luck as this is the first time I have tried editing a widget. But adding
},
"volumevid1": {
"type": "slider",
"label": "Video1 volume: ",
"min": 1,
"max":100,
"value":50
Under the video did add a field underneath everything but did nothing so I'm doing something wrong just don't know what

broken coyote
#

You will need to control the overall volume from obs @clear escarp

hollow stone
#

@viral patrol Thank you for the response πŸ™ Yes, i’ve swapped out 3 full alert packages. ALL packages, work for ALL alerts, EXCEPT the two mentioned; Subscriber & Cheer. After selecting the new video file, you can see the video playing on the thumbnail confirming the new video file was selected. However, the Default alert animations/audio fires when those 2 are β€œemulated.”

clear escarp
#

@broken coyote thanks for the answer bud awesome widget keep it up

unreal kestrel
#

Hey @abstract basalt mind answering a question about your social rotator? yogevHey

abstract basalt
#

Sure, just pm me πŸ™‚

crisp needle
#

Hi! What do you think is the best way to apply CSS alert animations via JS? I am experimenting with adding .animate class to div but removing it in setTimeout() seems to break everything. In a series of events they overlap despite setting the hidden widgetDuration field. Can you help me with that?

north zodiac
#

anyone else getting an error when you try to log into the site?

mint mist
#

I am

north zodiac
#

upstream connect error or disconnect/reset before headers. reset reason: connection termination?

viral patrol
#

@hollow stone I was referring to this:

shut frigate
#

Hello, somebody knows why the "Credit Roll - by Grot widget" dont update automatically when I click on my ending scene? There is something I have to do before to lanch it?

viral patrol
#

I think that with that scene you should have "shutdown source when not visible" as it loads items on widget load

shut frigate
#

I think that with that scene you should have "shutdown source when not visible" as it loads items on widget load
@viral patrol I'll try, ty

summer condor
#

Hello, i'm trying to create a chat command for twitch that displays the currently queued redemptions. Viewers can redeem certain challenges with their channel points and the streamer has to do them. A lot of viewers ask on what place in queue their redemption is currently at. I think i need to use the ${customapi.link-to-api.com} variable and fetch the data from api.streamelements.com ... but i don't know much about this stuff. I would be glad if someone could help me.

elfin arch
summer condor
#

i found this site you posted, but i dont know how to do it, i'm not a programmer ... i don't even know how to start. My hope was that it would be pretty easy to set up

elfin arch
#

there is no API that I have seen the will make a list of redemptions. 🀞 someone else has seen or knows something different.

viral patrol
#

So users can use a command that will put new item to the queue list

summer condor
#

i will look into it thx

hollow stone
#

@viral patrol that was exactly it!! Ty so much πŸ˜„

viral patrol
#

You are welcome!

elfin arch
#

@crisp needle .... GSAP or (greensock . com); seeing what others here have made with it (the free tools) and playing with it; it's amazing. but ya outside of that is the jQuery add/remove class()

opal oasis
#

im just trying to figure out how to get text in streamelements to slide up from the bottom of the screen, stay up for like 10 seconds, and then drop down. i need 2 texts to rotate going up and down

tame sun
#

exactly 20 days passed, no API request response, I've rolled out the update I'd have to do, got no complaints, but that's cuz there wasn't actually anyone who needs to use streamelements currency system. I can't wait for tomorrow when someone will actually have to use streamelements one, then they screw up copy pasting the JWT token, then getting annoyed. then after a few hours I'm like "did you test it?" and they're like "I don't know how to use this thing" [happened to me when I was using twitch tokens wrong and people had to copy paste them and apparently that's really hard to do]

opal oasis
#

after creating an overlay in streamelements how can I send it to someone without it being my stats, how do I send them the "code" for the entire overlay but it syncs to their stats (ex: latest follower, latest sub)?

night laurel
#

I applied for APi access about 1 month ago, how long does it usually take to get an answer? πŸ™‚

viral patrol
#

@pulsar willow We found the issue. The solution for that is to go to code editor of Season of Subgiving widget and change

        subsQueue[data.sender] = {
            total: data['amount'],
            subs: []
        }

To:

        subsQueue[data.displayName] = {
            total: data['amount'],
            subs: []
        }
#

And regarding OAuth2 access - it is currently on hold. We have no ETA when we will solve the issue that holds us from dispatching new credentials.

hardy walrus
#

@night laurel @tame sun ^^^^^

pulsar willow
#

@viral patrol Nice! That's very good news. Thank you very much 😊 πŸ‘
What do you mean with OAuth2 access? Is that part of this issue?

viral patrol
#

Nah. The second part was an answer for something else

hardy walrus
#

That's for those I mentioned.

pulsar willow
#

Ah, ok.
Thanks for the info and your help πŸ™‚

random pebble
#

Hey, question about the Credit Roll widget. How do I get it to display a list of people who chatted during my stream?

viral patrol
#

We don't store chatter list from your stream, so Credit Roll has no source of that data. It could be done with external data source.

random pebble
#

Ah, ok. thanks for getting back to me. I won't be able to figure that out, but maybe I can have a friend who knows how to code look into how to do that.

#

Does anyone know how to stop the Credits Roll from looping? I want it to play through once and that's it.

viral patrol
#

@random pebble
Change:

        $('.marquee').marquee({
            speed: fieldData.marqueeSpeed,
            gap: fieldData.gap,
            delayBeforeStart: 0,
            startVisible: true,
            direction: fieldData.direction,
            duplicated: fieldData.duplicated
        });

To:

        $('.marquee')
            .bind('finished', function () {
                $(this).marquee('destroy');
            })
            .marquee({
                speed: fieldData.marqueeSpeed,
                gap: fieldData.gap,
                delayBeforeStart: 0,
                startVisible: true,
                direction: fieldData.direction,
                duplicated: fieldData.duplicated
            });
#

In JS code

random pebble
#

Thank you! @viral patrol

#

Wait, the Widget I'm using doesn't seem to have any of that info...

#

window.addEventListener('onWidgetLoad', function(obj) {
  const recents = obj.detail.recents;
  let session = obj.detail.session.data;
  let fieldData=obj.detail.fieldData;
  userCurrency = obj.detail.currency;
  
  for (eventIndex in recents){
    const event = recents[eventIndex];
    if (!fieldData[`enable${event.type}`]) continue;
    
    if (event.type === 'follower') {
          if( fSum < session['follower-session']['count'] ) {
            addEvent('follower', event.name);
              fSum += 1;
        }  
    } else if (event.type === 'subscriber') {
          if( sSum < session['subscriber-session']['count'] ) {
            addEvent('subscriber', event.name);
              sSum += 1;
        }
    } else if (event.type === 'cheer') {
          if( cSum < session['cheer-session']['amount'] ) {
            addEvent('cheer', event.name + " - " + event.amount);
              cSum += event.amount;
        }
    } else if (event.type === 'tip') {
          if( tSum < session['tip-count']['count'] ) {
            addEvent('tip', event.name + " - " + event.amount + '' + userCurrency.symbol);
              tSum += 1;
        }
    }  
  }
  
});

function addEvent(type, entry) {

    const element = `<li class="people-list__item">${entry}</li>`
    
    $('.'+type).append(element)
        $('.'+type).css('display', 'flex');
        $('.'+type).closest('.credits-sections__item').css('display', 'block');  
} ```
viral patrol
random pebble
#

I don't know how to change it to the correct type of text, but that's what my JS looks like. @viral patrol
Am I using the wrong one?

#

Oooooh, I'll do that now.

#

Haven't changed anything yet, but this one isn't displaying anything on screen...

viral patrol
#

It should show data from your most recent stream

random pebble
#

Strange, I streamed yesterday and it's showing nothing.
There should be followers and subscribers to show but nothing is showing up. It's not even showing me the Header and Thank You Note

viral patrol
#

Checking one more time

#

Oh. It is not showing anything as there may be no events. You can increase number of recent events here

random pebble
#

Ah! Got data to use now

#

Seems to all be working perfectly, thank you for the help!

teal dust
#

Hello, our team applied for OAuth2 credentials the beginning of July.
But we haven't heard anything as of yet, is this a typical wait time?

hardy walrus
teal dust
#

@hardy walrus Okay, so I guess I'll just keep waiting. Thanks

pulsar willow
sturdy oak
#

Hello devs

#

Can you guys make something similar to streamlabs obs chat game overlay where I can see my chat while playing which is not visible on stream

whole orchid
#

Hi Devs! Running into an issue with a default chat widget showing duplicate messages through Facebook Gaming. Anything to be done about this one? SE Support recommended I come and ping this group. Thanks!

hardy walrus
#

@whole orchid It's a known issue atm.

#

@sturdy oak Officially no. Otherwise this is viable if you use twitch.

high swallowBOT
pulsar willow
#

Hi

viral patrol
#

Hello πŸ™‚

pulsar willow
#

I want to embed the API (in js field) of a my custom widget overlay

night laurel
#

@hardy walrus ok I see thank you

pulsar willow
#

Can i do this ?

viral patrol
#

You can make XHR calls to any external service served over https from JS

pulsar willow
#

var data = null;

var xhr = new XMLHttpRequest();

xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});

xhr.open("GET", "https://api.streamelements.com/kappa/v2/points/channel/top");
xhr.setRequestHeader("accept", "application/json");
xhr.setRequestHeader("content-type", "Content-Type");

xhr.send(data);

#

this is the code that i need

viral patrol
#

One moment

pulsar willow
#

ok

#

@viral patrol ?

viral patrol
#

I am preparing a snippet for you

pulsar willow
#

ok

viral patrol
#
let apiKey, channelId;

const showUsers = (users) => {
    console.log(users);
    // play with your userlist here
}

function getUsers() {
    fetch(`https://api.streamelements.com/kappa/v2/points/${channelId}/top`, {
        headers: {
            'Authorization': 'apikey ' + apiKey
        }
    }).then(response => response.json()).then(obj => {
        showUsers(obj);
    });
}

window.addEventListener('onWidgetLoad', function (obj) {
    apiKey = obj.detail.channel.apiToken;
    channelId = obj.detail.channel.id;
    getUsers();
});
#

I would do it like this.

pulsar willow
#

@viral patrol Work like a charm !

#

@viral patrol in console.log i can see the array with name and points

#

@viral patrol But i have a question

#

@viral patrol this variables "let apiKey, channelId;" are already defined in the wrapper ?

viral patrol
#

Those are set in:

window.addEventListener('onWidgetLoad', function (obj) {
    apiKey = obj.detail.channel.apiToken; // <= here
    channelId = obj.detail.channel.id; // <= and here 
    getUsers();
});
pulsar willow
#

Those variables *

viral patrol
#

They are global variables, so you can call getUsers() function in any scope and it should trigger showUsers with updated data

#

You can set an interval for 5 minutes to keep it updated

pulsar willow
#

@viral patrol Yes, you can call it by obj.detail.channel.apiToken; because it is in an Streamelements wrapper

#

You can set an interval for 5 minutes to keep it updated
@viral patrol yes i have alredy think this

viral patrol
#

You cannot query obj.detail.channel.apiToken outside of onWidgetLoad as it is forwarded in this event only

pulsar willow
#

You cannot query obj.detail.channel.apiToken outside of onWidgetLoad as it is forwarded in this event only
@viral patrol Ok

#

Those are set in:

window.addEventListener('onWidgetLoad', function (obj) {
    apiKey = obj.detail.channel.apiToken; // <= here
    channelId = obj.detail.channel.id; // <= and here 
    getUsers();
});

@viral patrol This aren't in the documentation

#

@viral patrol why you delcare variables with let and not with var keyword ?

pulsar willow
#

Is possible to get username without lowercase ?

viral patrol
#

We keep them lowercase as user can change their display name pretty often.

pulsar willow
#

We keep them lowercase as user can change their display name pretty often.
@viral patrol Ok, the answer is no ?

viral patrol
#

Yes. The answer is "no". πŸ™‚

#

You made me struggle with writing "yes" answer which is "no" πŸ™‚

pulsar willow
#

Yes. The answer is "no". πŸ™‚
@viral patrol Thx πŸ™‚

lusty portal
#
def OauthToken():
    os.startfile("https://id.twitch.tv/oauth2/authorize?response_type=token&client_id=[REDACTED]&redirect_uri=https://twitchapps.com/tokengen/&scope=channel%3Aread%3Aredemptions")
    return

Does this look right? When I go to https://twitchapps.com/tokengen/&scope=channel%3Aread%3Aredemptions I get a 404.

I don't know if that client ID is mine or not, but something seems wrong here. How do I find out my client ID to make sure my ID is what is being sent?

viral patrol
#

This is because you have & for very first parameter, it should be ?

#

Also - if you are referring to twitchapps - this client id is their application

#

So you won't be able to change it to your own redirect_uri

lusty portal
#

Ok.. The first one should have been obvious to me. Thank you.. The second one.. I'm in over my head.

#

Someone made up a script that checks the channel rewards... and it was always iffy..

#

and I'm trying to fix it.. Not knowing Python..

#

So the redirect, as I see it, is dealing with id.twitch.tv. Not twitchapps.

#

But ok.. The client ID is there's..

viral patrol
#

Ohh. The generated oauth:token via this website will be your

lusty portal
#

I think I'm going to have to get this remade by someone. Because it worked before, but now it doesn't again.

#

I suspect that something changed on the twitch app side of things or something.

#

Is there anyone who wants to make a few bucks to either take a look at this script (or write a new one) that upon a reward being sent, types a command in chat?

#

and by command, I mean just text. Not a command command.

fiery vale
#

πŸ‘‹ hi there,
Looking to make a custom widget, just wondering if there is like a sandbox/local dev setup I should be looking to use so I can preview stuff as I work?
I did have a little look at the git repo but couldn't see anything about it.
Not done a lot of frontend dev πŸ˜…

fiery vale
#

thanks @viral patrol πŸ™‚

viral patrol
#

bp

pearl plover
high swallowBOT
#

@pearl plover Follow these steps to grant managers/moderators access to your dashboard:

  1. Click on your Channel Name at the top of the dashboard and select Settings
  2. Create a new invite at one of three access levels (Bot Supervisor, Editor, Full Control)
  3. Send this invite to a mod/manager to give them access to your dashboard. The link is one-time-use and expires after 72 hours if not accepted
    Video tutorial: https://youtu.be/zl_h-ttZDF0
hardy walrus
#

The person you want to do it with needs to do that.

pearl plover
#

Hm... I planned shared widget link in youtube with viewers

civic tide
#

I have an overlay (alert box) in my streamelements that covers my hud to make a color change on my hud if a get a sub or follow etc. But the secondary text gets pushed so far down that its out of the picture. Is there any way to separatley move the secondary text? (my text is really close to my hud)

pulsar willow
#

Is it possible to type !points on the discord and appear in the message on the discord? i need

thick mantle
#

How do I make a 'subcount' command?
For the amount of current subscribers??
(Only going to be used to keep track for myself.)

Something like this??
${customapi.https: //twitch/subcount/accountname}

pulsar willow
#

@thick mantle u can help me pls

median halo
#

Anyone able to fill me in on how i'd add a custom font to a custom widget? this one has the google fonts but I'd like to use sf pro display regular.

torn gulch
#

@pulsar willow please, don't ping the members.

#

@thick mantle you can create a custom command and use the variable ${channel.subs} ... and if necessary, adjust the count with ${customapi.https://twitch.center/customapi/math?expr=${channel.subs}-1}

crisp laurel
#

hello, so one of the widgets allows for "Streamer+mods+vips" to trigger it with an additional field for individuals, is there a short code for all subscribers i can throw in there like one of the {$subs} or soemthing

#

i think its this line in the js " if ((userState.mod && userOptions['managePermissions'] === 'mods') || ((userState.vip || userState.mod) && (userOptions['managePermissions'] == 'vips')) || userState.broadcaster || (userOptions['otherUsers'].indexOf(user) !== -1)) {
let video = $("#video");
let source = $("#source");"

timber lark
#

I need help of a JS specialist. :D
I want to change something in the Season of Subgiving widget! I use the train in this widget and I love it. I would like to add a delay for the train to start after a sub bomb, because I want the standard subgift alert to happen first (standard alertbox). I guess it is quite simple to do that, but I'm absolutely not familiar with JS.

viral patrol
#

You should have a delay if you have both of then on same overlay.

timber lark
#

It is on different overlays and I would like to adjust the delay (like 5-10 seconds depending on the standard alert).
Something like... event happens (sub bomb), then wait 10 seconds, then go on with the script

It's more like pausing the script for a while πŸ˜„

median halo
#

I'm wondering if there is a code you could place in widgets that enables you to have each widget share the same timer, like an overall system clock or internet clock. That way if I have two widgets showing data at a 15 second interval they are on the same 15 seconds nicely synced.

viral patrol
timber lark
#

thanks! I'll try!

median halo
hardy walrus
#

@median halo that would be something to ask @terse cloud

median halo
#

lol that's a tough task I don't believe he coded it. I'm sure he could help a bit though, did leave his help section on the discord a message (:

viral patrol
#

This is not an alert but "event list" from what I see

#

So there is a new event added to list - play an animation, then rotate it from there

#

And sound - sound could be from a regular alertbox which is "sound only"

median halo
#

ah that would make much more sense

#

so now I'm missing the understanding of the new event taking priority, triggering the animation, and then rotating from that point.

#

lol hope that didn't wake you sam

terse cloud
#

Yeah it’s something I had commissioned

viral patrol
#

@terse cloud your stream is an amazing example of good widgets. People love something like that, you are doing amazing work

median halo
#

that's what I thought you had mentioned, so I came seeking the gurus

terse cloud
#

Thanks @viral patrol

#

I’ve just gone through the process of protecting the design of it all. I’ve had so many people ask if I’m giving it away and the concepts of it all are pretty new so I’ve just trademarked the design and concept of it it along with my logo

viral patrol
#

Good move, visual identity should be protected

terse cloud
#

People can still use it and make their own version. It’s just my version is protected against people buying it and selling it on as their own etc. More of a protection thing for myself and others

#

And yeah exactly. The ideas I’ve had get copied and reproduced so easily

median halo
#

ah yeah that's good, def don't want to sell or have credit come my way. I'm really just trying to get the understanding of syncing the transitions between the current event and the previous metrics

terse cloud
#

It’s almost like people like what I do πŸ€”

#

Oh yeah course. Wasn’t insinuating that at all

median halo
#

so I've used a feed in the past, very similar to the alpha one and I couldn't figure out how to do what you eventually did with it

viral patrol
#

@median halo I would do something like:

window.addEventListener('onEventReceived', function (obj) {
    if (typeof obj.detail.event.itemId !== "undefined") {
        obj.detail.listener = "redemption-latest"
    }
    const listener = obj.detail.listener.split("-")[0];
    if (listener !=="subscriber" && listener !== "tip" && listener !=="cheer") return;
    const event = obj.detail.event;
    event.type = listener;
    parseEvent(event);
});

const parseEvent=(event)=>{
    stopAnimation(); //stop current animation, so it won't play new slides
    updateSlide(event); //prepare updateSlide function that will play animation just like new alert;
    setTimeout(()=>{ //Set timeout before continue
        
        currentSlide=event.type; //set current slide to that one updated
        startAnimation(); //start animation from this point
        
    },5000);
    
}
median halo
#

ok I'll try and tinker with this

mortal sundial
#

Addevent needs a timer.

median halo
#

where should that fall Dyna?

viral patrol
#

@crisp laurel And back to you: I think it would be userState.sub

median halo
#

@viral patrol what is the 5000 doing in the code you posted?

viral patrol
#

It is time of holding animation paused in milliseconds

#

Also - all function names are made up there and this is more description than actual to-go solution. You have to expand it πŸ™‚

timber lark
#

@timber lark You can wrap selected code in setTimeout:
@viral patrol I'm sorry. I guess I need a more detailed instruction for dummies. I tried this:

setTimeout(function(){ subsQueue[data.sender].subs.push(data.name);
                       if (subsQueue[data.sender].total <= subsQueue[data.sender].subs.length) {
                           console.log("Playing animation");
                           displaySubs(subsQueue[data.sender].subs, data.sender)
                           delete subsQueue[data.sender];
                         return;}, 10000);
        }```
pulsar willow
#

Hi

#

This is my code

#

How can i write my code as code snippet like this

@viral patrol I'm sorry. I guess I need a more detailed instruction for dummies. I tried this ? :

I would change your loop to something like:

const showUsers = (users) => {
    console.log(users);
    // play with your userlist here
    let mag="";
    for (let i in users) {

            mag+= users.users[i].username + " -- " + users.users[i].points + "<br>";
        }
    }
    document.getElementById("demo").innerHTML = mag;
}

@viral patrol Ok less is better
setTimeout(function(){ subsQueue[data.sender].subs.push(data.name);
if (subsQueue[data.sender].total <= subsQueue[data.sender].subs.length) {
console.log("Playing animation");
displaySubs(subsQueue[data.sender].subs, data.sender)
delete subsQueue[data.sender];
return;}, 10000);
}```
@timber lark

timber lark
viral patrol
#

Those examples above should postpone animation play for 10 seonds

pulsar willow
#

Those examples above should postpone animation play for 10 seonds
@viral patrol I know

#

Why colors for keywords does't work ?

viral patrol
#
```js
Code here
#

I can se them

pulsar willow
#
let apiKey, channelId;

const showUsers = (users) => {
    console.log(users);
    // play with your userlist here

    let i = 0;
    let mag;
    let f;

    for (i; i <= 99; i++) {

        f = users.users[i].username + " -- " + users.users[i].points + "<br>";

        if (mag === undefined) {
            mag = f;
        } else {
            mag = mag + f;
        }

    }

    document.getElementById("demo").innerHTML = mag;
}

function getUsers() {
    fetch(`https://api.streamelements.com/kappa/v2/points/${channelId}/top`, {
        headers: {
            'Authorization': 'apikey ' + apiKey
        }
    }).then(response => response.json()).then(obj => {
        showUsers(obj);
    });
}


window.addEventListener('onWidgetLoad', function (obj) {
    apiKey = obj.detail.channel.apiToken;
    channelId = obj.detail.channel.id;

    getUsers();
});
viral patrol
pulsar willow
#

@viral patrol this is your code of yesterday with some changes that i made

#

I have only 1 problem now

viral patrol
#

I would change your loop to something like:

const showUsers = (users) => {
    console.log(users);
    // play with your userlist here
    let mag = "";
    for (let i in users) {
        mag += users.users[i].username + " -- " + users.users[i].points + "<br>";
    }
    document.getElementById("demo").innerHTML = mag;
}
velvet cave
#

@main orchid asked about this matter, any code guru's who can help him out?
'Hi, i've been asked to stream a pool match next week and I need a scoreboard. I would wondering if anybody could recommend any good widgets for this. i would need to have a name either side, score either side, and race to whatever amount of games they are playing'

pulsar willow
#

I would change your loop to something like:

const showUsers = (users) => {
    console.log(users);
    // play with your userlist here
    let mag="";
    for (let i in users) {

            mag+= users.users[i].username + " -- " + users.users[i].points + "<br>";
        }
    }
    document.getElementById("demo").innerHTML = mag;
}

@viral patrol Ok less is better

#

@viral patrol Sorry for my rudimental code but i come from C/C++

#

@viral patrol The API call lock array langht to 100

#

Why ? I need all user list

viral patrol
#

This is because it gives you top users. Calling for whole list is resource heavy (as you may have thousands of users there)

pulsar willow
#

I would change your loop to something like:

const showUsers = (users) => {
    console.log(users);
    // play with your userlist here
    let mag="";
    for (let i in users) {

            mag+= users.users[i].username + " -- " + users.users[i].points + "<br>";
        }
    }
    document.getElementById("demo").innerHTML = mag;
}

@viral patrol There is an extra brace at line 8

viral patrol
#

Oh. Right. I was rewriting it in Discord, so without automated syntax check

pulsar willow
#
const showUsers = (users) => {
    console.log(users);
    // play with your userlist here

    let mag="";

    for (let i in users) {
        mag+= users.users[i].username + " -- " + users.users[i].points + "<br>";
    }

    document.getElementById("demo").innerHTML = mag;
}
viral patrol
#

Updated above

#

Yup.

pulsar willow
#
const showUsers = (users) => {
    console.log(users);
    // play with your userlist here

    let mag="";

    for (let i in users) {
        mag+= users.users[i].username + " -- " + users.users[i].points + "<br>";
    }

    document.getElementById("demo").innerHTML = mag;
}

@viral patrol Done

#

but it still doesn't work

#
Uncaught (in promise) TypeError: users.users[i] is undefined
    showUsers about:srcdoc:119
    getUsers about:srcdoc:132
    promise callback*getUsers about:srcdoc:131
    <anonymous> about:srcdoc:141
    <anonymous> about:srcdoc:53
    EventListener.handleEvent* about:srcdoc:46
#

My old code work

const showUsers = (users) => {
    console.log(users);
    // play with your userlist here

    let i = 0;
    let mag;
    let f;

    for (i; i <= 99; i++) {

        f = users.users[i].username + " -- " + users.users[i].points + "<br>";

        if (mag === undefined) {
            mag = f;
        } else {
            mag = mag + f;
        }

    }

    document.getElementById("demo").innerHTML = mag;
}
viral patrol
#

Ohh. right

#

I am stupid

#
const showUsers = (data) => {
    console.log(data);
    // play with your userlist here
    let mag="";
    for (let i in data.users) {
        mag+= data.users[i].username + " -- " + data.users[i].points + "<br>";
    }
    document.getElementById("demo").innerHTML = mag;
}
pulsar willow
#

Ok

viral patrol
#

I was iterating on one object and tried to get property of other object.

#

Hmmm.

#

I am checking that code now, to be sure if it works

#

OK. There was one leftover

#

And I changed users to data for main scope, so it is data.users instead of users.users which looked silly

pulsar willow
#

yes

#
const showUsers = (data) => {
    console.log(data);
    // play with your userlist here
    let mag="";
    for (let i in data.users) {
        mag+= data.users[i].username + " -- " + data.users[i].points + "<br>";
    }
    document.getElementById("demo").innerHTML = mag;
}
#

the error appened because we can't call 2 objects with same name. It's right ?

viral patrol
#

No. It was before we were iterating on data when mag was created on data.users

pulsar willow
#

Ok, we could have solved everything with a single change

#

I would change your loop to something like:

const showUsers = (users) => {
    console.log(users);
    // play with your userlist here
    let mag = "";
    for (let i in users --> repleace this with --> users.users) {
        mag += users.users[i].username + " -- " + users.users[i].points + "<br>";
    }
    document.getElementById("demo").innerHTML = mag;
}

@viral patrol

#

But call the response data "data" and not "users" is a better way, because we also have an array in the object (that is an array of objects) named "users"

#

it's right ?

viral patrol
#

Yes. Definitely

edgy lantern
#

Hello! How do I make a command with a specific number? For exemple: "I have 100 total wins." and with other command ( ${count wins +1 ) start counting from 100

viral patrol
#

Just have a command with response ${count wins 100}

edgy lantern
#

for example, I have one that I change the wins of the day, but at the end of that command I wanted to update the total number I have in the game. like " !wins+ " response: " today wins: 1 ; total wins: 101 "

viral patrol
#

So you can have two counters like Today wins: ${getcount todayWins} total: ${getcount totalWins} and reset todayWins everyday

edgy lantern
#

but with ${getcount totalWins} how i can put it starting with a specific number?

viral patrol
#

You can set initial value like !editcounter totalWins 100

#

But you won't have to if you use both commands from start

edgy lantern
#

oh I see! it worked! thanksss

edgy lantern
#

it is possible to change !followage default command (I want to change just to add /me) I didnt like this one FeelsBadMan πŸ‘‰ ${customapi https://decapi.me/twitch/followage/${channel}/${channel ${touser}}}

hardy walrus
#

@edgy lantern unfortunately not the default and unless you have your own endpoint you're stuck with what others give.

edgy lantern
#

@hardy walrus okok, thank you yogevGood

hardy walrus
#

Though I know from experience you can change the length specified in the response from that domain.

edgy lantern
#

hmmm, how?

hardy walrus
#

1 sec

edgy lantern
hardy walrus
#

I can't think hard for it atm as I'm on my way home but the big at the bottom is the part you'd add.

torn gulch
#

variable ${customapi.https://decapi.me/twitch/followage/${channel}/${1|${sender}}}

edgy lantern
#

@hardy walrus I'll try

#

ok forget, I don't know how to add this "precision" parameter ratirlSad

hardy walrus
#

There's a bit at the top of the link that goes back to the main page and explains it.

edgy lantern
#

I tried, I really dont know...

civic jasper
#

I got a invite for stream elements for the YouTube page I manage but it gave me a "error message"

roleplay.missing
scope
invitations:manage

torn gulch
#

@edgy lantern https://decapi.me/twitch/followage/${channel}/${1|${sender}}/?precision=X ... select the precision type: 1 - 6 or the default: 0

edgy lantern
#

oh thank you @torn gulch !! jorgebLove

civic jasper
#

How do i create a new bot to greet new viewers

hushed ibex
#

Is there a documentation / list for the available javascript events for developing the widgets?

#

Was only able to find in the docs documentation for the REST API calls, not javascript events of the widgets themselves

viral patrol
hushed ibex
#

Oh fantastic thanks a lot @viral patrol πŸ‘

pulsar willow
#

@viral patrol Hi boss

#

I have another problem, now with css

#

I want to use my custom font but i can't upload the font file on streamelements, i have alredy tried to use an external url in my css attribute but it doesn't work

#

This is my CSS :

/* Font - MrGrieves-Regular */
@font-face {
    font-family: 'MrGrieves-Regular';
    src: url('https://www.maglacava.it/fonts/MrGrieves-Regular.eot'); /* IE9 Compat Modes */
    src: url('https://www.maglacava.it/fonts/MrGrieves-Regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
         url('https://www.maglacava.it/fonts/MrGrieves-Regular.woff') format('woff'), /* Pretty Modern Browsers */
         url('https://www.maglacava.it/fonts/MrGrieves-Regular.woff2') format('woff2'), /* Super Modern Browsers */
         url('https://www.maglacava.it/fonts/MrGrieves-Regular.ttf')  format('truetype'), /* Safari, Android, iOS */
         url('https://www.maglacava.it/fonts/MrGrieves-Regular.svg#svgFontName') format('svg'); /* Legacy iOS */
}

body {
    font-family: 'MrGrieves-Regular', Fallback, sans-serif;
}
viral patrol
#

You can also install that font on your streaming PC and restart OBS after that

#

Then your font should be displayed properly

pulsar willow
#

@viral patrol but i wanto this font only in one of my overlay

#

wanto --> want *

hardy walrus
#

And you specify that in that overlay.

#

Custom fonts only apply to where you specify it.

pulsar willow
#

@hardy walrus From obs ?

hardy walrus
#

It only applies to where you specify it.

#

Not globally.

pulsar willow
#

@hardy walrus ok, but i can set it from obs ?

#

@viral patrol Why i can't use custom css to load my font from an external url ?

viral patrol
#

You can, but your server has to use proper CORS headers

pulsar willow
#

Yes

#

This is the problem, when i try to see file in my folder from https webserver return an forbidden message

hybrid seal
#

Hey,
I wanted to apply for OAuth2 credentials for my application, but the link to the Google Form mentioned in the documentation is dead. Is there currently a way to apply for OAuth2 credentials? I am aware, that I can use the JWT-Token instead, but the user is not comfortable with providing that due to the unlimited access to all data, with OAuth2 the user can see what the application is able to access.

hardy walrus
#

@hybrid seal Applications are currently on hold unfortunately.

hybrid seal
#

@hardy walrus That's a pity, but thank you for the fast answer!

civic jasper
#

in my elements with the overlay, im busy with the subs but i see i can add and {amount} to it. will thjis be my subs amount?

hushed ibex
#

If I set my widget data subscribers goal to 0, and emulate a single subscriber, the actual session data is still remaining at 0 right?

#

Also the subscribers goal does not reset after any amount of time until either manually changed or when pressing the "Reset goals" button correct?

native trellis
#

correct

#

on both

pulsar willow
#

What i need to ste my apache webserver to work like cdn ?

#

ste --> set *

viral patrol
#

And for CDN you can sign up for cloudflare

hushed ibex
#

The subscribers goal progress ticks by +1 for every subscriber right?

pulsar willow
#

@viral patrol

hushed ibex
#

No matter what type of sub, gifted or normal

pulsar willow
#

@viral patrol new i'm tring to add cors parameters in my .htaccess

viral patrol
#

@hushed ibex correct

hushed ibex
#

Great, thanks

elder dragon
#

Is it possible to add the advanced text options you have with alerts to custom widgets? I've heard that you can use windows installed fonts on there and I was wondering how I would do the same with a custom coded widget.

viral patrol
#

If you have a font installed you can just type name in font-family

naive forum
#

Any way to make the media request widget's song title text scroll? Some song titles are quite lengthy and it would be nice to not have a huge widget.

elfin arch
#

easiest 'custom font' is to use the "type": "googleFont", for a list of all Google fonts πŸ™‚ ... but yea; you can override that with a local font style

#

There is no way (that i know of) to edit the built-in widgets, including the Media Request

naive forum
#

k, thx. I will throw it in ideas

torn gulch
#

there is a way to do a math calc on the Alertbox widget using the alert message, like ${customapi.https://twitch.center/customapi/math?expr={amount}*10} or ${customapi.https://twitch.center/customapi/math?expr={amount}%2A10} ?

inland skiff
#

So I wanted to ask -- for the timer widget, how does it manage to its time in the capture window with the one in the widget? I tried writing my own and when it's captured it acts as a separate window on load, which means that it reloads and starts from scratch.

pulsar willow
#

Hi

#

@viral patrol Hi boss

#

in my top leadbord if i delete some users like me and bots it will be deleted forever or not ?

viral patrol
#

You have to add those usernames to ignore list

pulsar willow
#

@viral patrol where is ignore list ?

viral patrol
pulsar willow
next gulch
#

Guys I’m sorry im asking everywhere and I need assistance my twitch stat tracker is not updating with the stream any idea how to fix this

zenith widget
#

would anyone be able to help me understand why my html script is not running in SE alert but its working fine in my Visual Studio

minor steppe
#

Hmm is there any way to forward a donation from a external system to streamelements, just wondering since i know it can be done with other "alert providers" - the reason im asking is actually im thinking about doing a mobilepay system for denmark, and it would be rather needed to be able to foward a donation via api to trigger the notification to popup

tired plinth
#

Hello !
I would like to know for those who customize their alerts, someone has already successfully implemented this css module:

mix-blend-mode: difference;

It's working in all the alert widget but not on the rest of the overlay, has someone found a solution to this problem?

*I had thought of putting the div that makes the difference as a child of the body / div #overlay but I can't even make a poor console.log

(and sorry if my english is bad sadCat)*

lofty plinth
#

I have some questions about custom widgets: Is there a way to implement streamer triggered "alerts" into them. So i can start certain actions with a hotkey or streamdeck ? Is it possible to stack sources ? On hotkey: video plays, transitions into looped video.

tired plinth
zenith widget
#

Can anyone help me figure out why this is not working when I trigger my follower alert?

#

it works fine in the html doc

zenith widget
#

figured it out

viral patrol
#

@tired plinth About console functions, please use console.debug, and check your messages in verbose log level. About mix-blend-mode - Alert is a separate iframe, so it doesn't have access to whatever is beneath it (outside of DOM)

viral patrol
thick mantle
viral patrol
boreal heath
#

thank you so much @viral patrol you are a real champion

thick mantle
#

Aaaaaaahhh...... how?
@viral patrol

#

I have NO idea what I'm looking at. πŸ˜‚

viral patrol
#

And to make that work - create a custom widget, open editor, paste contents of each file from this directory to corresponding tab of code editor (JSON file goes to FIELDS tab)

thick mantle
#

Okay, still no idea what I'm doing. πŸ˜‚

viral patrol
#

Hmmm. Where do you want to display it?

#

Overlay or chat?

#

If you want a command with sub goal, you can just add /100 like ${channel.subs}/100

#

So it will be displayed like 12/100

paper snow
#

im wanting to make a scrolling textbox that has my most recent follower and my most recent sub how would i get the data of those to be added to the scorller

viral patrol
paper snow
#

thx

real snow
#

anyone thats good with creating custom widgets on streamelements? im looking for an event rotator that fits the diplay of my overlay, i have already looked in the widget-share chat but none of the designs fits what i need, if someone could help me out then i would really appreciate it. i would even pay a small fee for the service if its needed, feel free to reach out in PM

paper snow
#

@viral patrol does that widget update automaticly when a new sub/follower happens??

viral patrol
#

It does

paper snow
#

cool

#

it doesnt seem to want to find my subs that i have??

viral patrol
#

Have you registered recently?

paper snow
#

yea

viral patrol
#

Widget will get first sub when it happens after your joining StreamElements

#

We have no data about the past

paper snow
#

okay that makes scence

thick mantle
#

I was looking to have it in my Overlay as a Browser Source.

#

@viral patrol

viral patrol
#

Do you want is as a text, or as progress bar?

thick mantle
#

Text

viral patrol
thick mantle
#

Awesome; I'll check it out now

#

What's the query for "Sub points"??

#

That widget is amazing btw!!

viral patrol
thick mantle
#

Awesome! ❀️

thick mantle
#

Soooo; I have another question......

I currently have x5 subs
The 'sub points' widget you linked also says 5 sub points. BUT, on twitch it says I only have 4 sub points..... πŸ€”

What's the go there??
Do I just have to offset it by x1 ??

#

@viral patrol

viral patrol
#

Unfortunately Twitch API is kinda messy when it comes to sharing sub count and sub points.

hardy walrus
#

So with us subpoints=subcount.

viral patrol
#

And you are counted in as well (even if your account is not giving you sub points)

crystal frigate
#

I'm having a tough time getting my image masks to work in css, and for the life of me I cannot figure out what is going on. Maybe someone can offer some guidance. I have an alpha/black png mask uploaded into stream elements, when applied to the main container with '-webkit-mask-image' and a fixed position, its cuts a window through my layout for my camera; all great. I decide to change the mask, so I delete the uploaded file and reupload some more masks to try. 1: The old mask still works, url and everything, even though it was deleted. 2: replacing the url with any of the new mask files results in a blank image, as if the entire thing is masked. How does stream elements handle deleted files? I'm not sure if this is the root of my issue, but is it strange that the url still works?

viral patrol
#

The easiest way is to handle mask-image as it is in "gradient webcam" widget on #widget-share

crystal frigate
#

@viral patrol Thanks, Ill look into it, but this still is not making any sense.

#

.main-container { width: 1920px; height: 1080px; position: absolute; -webkit-mask-image: url(https://cdn.streamelements.com/uploads/57c69188-36dd-4201-98a0-ff3a2f55af87.png); -webkit-mask-attachment: fixed; }

viral patrol
#

File is still cached in our CDN even if it is deleted from our servers

crystal frigate
viral patrol
#

And if you want to have easier management:
CSS:

 -webkit-mask-image: url({maskImage});

FIELDS:

"maskImage":{
  "type":"image-input",
  "label":"mask-image"
}

Which will produce nice input field for that image

#

Also the issue with mask-images - it is a known issue that CDN provider presents incorrect headers (this affects not only StreamElements) and caches them.

crystal frigate
#

ok, thanks for the guidance, maybe using fields will get me around the caching issue

#

if not, ill look into that widget you mentioned

viral patrol
#

This is why I suggested gradient webcam widget which has "cache invalidator" when there's an issue with accessing on first call

crystal frigate
#

Awesome, thank you

crystal frigate
#

@viral patrol I'm getting a β€œplatform mismatch” on the gradient webcam share link. I'm relatively new to streamelements, is there something I need to do to get access?

viral patrol
#

Oh. That widget is for Twitch (but it is platform independent)

crystal frigate
#

ah, im on youtube

viral patrol
#

Let me prepare jsfiddle for it

crystal frigate
#

Cool, thank you for the help

#

lol, running the widget fixed my problem in my original, probably because of the cacheCheck

viral patrol
#

I am happy it works for you πŸ˜‰

copper notch
viral patrol
#

Those animations are from animate.css package. You can create your own animation when you enable custom CSS and create a widget from scratch

copper notch
#

thanks @viral patrol. so i can probably get away with altering the default alert code as i can see each letter of the name is being wrapped by a span here. I think the confusion came in because I initially saw all of these and was wondering how it relates as I didnt see any of the widget events within the default alert box widget code https://github.com/StreamElements/widgets

viral patrol
#

Ohhh. It has no wiggle and other stuff

copper notch
#

btw for all of these custom widgets in this repo, i would have to copy/paste them into a custom widget within SE to test them out right?

#

there's no auto installer type of thing (similar to installing packages on sublime) for these repo widgets?

paper snow
#

how do you set your follower/sub goal

viral patrol
#

In "Overlay importer" section.

nova hedge
#

Can we please have the Api trigger when an Alertbox alert is tested. When other apps use the SE Api there’s nothing that triggers it other than a live alert causing users to think there’s an issue

viral patrol
#

When you listen to that event it should containisTest property

nova hedge
#

It doesn’t send to the Socket api at all

burnt shadow
#

Hi, I am trying to create a widget and wondered if the fields section supports multiple pages or nested content in the same way that variants in alerts are created?

#

Also wondered if there was any documentation available in regards to what the widgets can access from the chat etc.

rugged rapids
glacial forge
#

Hi, so I am trying to include 2 additional sliders into a pre-made rotator widget, however despite making a few changes to line data etc, it prevented me from being able to read the field data and I am wondering what I need to do to make the copied code work. Thank you

rugged rapids
boreal ridge
#

is there a way to parse a JSON response within the streamelements chatbot?

burnt shadow
#

Thanks @rugged rapids ! πŸ™‚

rugged rapids
#

@boreal ridge
You can't parse JSON nor write logic within custom command. It gives you plain text response it got from remote URL. If you want to have logic, it should be included in requested url's script

boreal ridge
#

thanks Benno! that's unfortunate, but good to know at least.

glacial forge
rugged rapids
#

If I copy that code into the fields tab, I can access all the fields in the fields section on the left.

glacial forge
#

I want to add additional fields though and it errors out when I attempt to do that @rugged rapids

#

What I gave you is the default field text

rugged rapids
#

Please give me the fields data with the things you tried to add.

glacial forge
#

Okay, hang on

#

I don't know what to do, the text isn't pasting now

#

Its fine, I'll just hire a coder to resolve this. Thanks Benno

knotty sandal
#

can any help me to fix my obs network problem

#

issue

viral patrol
#

Sometimes it tries to use your wifi card, when you are connected via eth only

knotty sandal
#

@viral patrol no it does not fix my problem

viral patrol
#

What is the issue you have? Can't you start stream or is it something else?

knotty sandal
#

@viral patrol i am not able to stream my obs is not capture my internet speed in 2000 bitrate my obs network is red

viral patrol
knotty sandal
viral patrol
#

Seems like something is throttling your upload to 2.5 mbit

#

It is your ISP issue most likely, you can run a speed test with some distance server (not running by your ISP)

knotty sandal
#

@viral patrol i am from india and we dont have twitch server

#

i am showing you my inter net speed on speed test.net

#

@viral patrol this is my internet speed

glacial forge
#

@rugged rapids Sorry to tag you I have a question for you regarding your Social Media Rotator widget, how can I create a shadow around text? Thank you

rugged rapids
#

Add the css classes.

glacial forge
#

I need a CSS education, I'll pass this over to my coder

#

I wish you were for hire Benno, I'd pay you if you weren't busy

viral patrol
#

@knotty sandal Sorry. I had a call. Are you using different ISP for speedtest? Usually providers are throttling on the exit from their network.

knotty sandal
#

no same isp for speedtest

#

@viral patrol we dont have twitch server in india

viral patrol
#

To something in Singapore/Japan

knotty sandal
#

@viral patrol ok wait

#

@viral patrol why we have to use singapore/ japan server

viral patrol
#

To check if it is the issue on exit from your country

#

(as you have to do when you are connecting to Twitch)

knotty sandal
#

@viral patrol i dont stream on twitch

#

@viral patrol i stream on youtube

viral patrol
#

Ohh. So same could apply here. If you have YT servers in India, please use server in same country, but not your ISP

#

Otherwise, select different country

#

As this issue seems to be throttling on exit of your ISP network

knotty sandal
#

i was getting this issue after obs live get update and i have also reinstall the obs live also @viral patrol

#

@viral patrol and i have use obs live since 2 year but i never get this issue

viral patrol
#

And your speedtest result for other ISP or abroad displays that you have better upload?

#

Speedtest within same network is not reliable, as I mentioned above.

knotty sandal
viral patrol
#

Upload here seems fine (but download is really throttled).

knotty sandal
#

@viral patrol yes singapore server download speed is throttled

#

@viral patrol so what should i do in my obs

viral patrol
#

Also - I am not too confident with YT (I take care of developers/API related questions on this channel)

knotty sandal
#

@viral patrol thanks for helping me

#

@viral patrol but i am not able to open this link

viral patrol
knotty sandal
#

@viral patrol ok thanks

flint sinew
#

How to add browsers source in SE Editor

viral patrol
#

It is not possible due security reasons

high pollen
#

Curious if it's possible to grab total loyalty points in the system without cycling through every user.

#

for a channel

severe oasis
#

Will the SE_API.ResumeQueue() function only work when testing in the streamelements overlay editor or is it functional on the standalone SETest with a JWT token (I haven't dived into the simulation files to see what's going on there yet)?

reef granite
#

If I use the static text widget, is it possible to use variables? Or do I have to use a custom widget? I added {game} to the text but it just removes it completely and leaves a blank space in the widget text

viral patrol
#

ResumeQueue method will work only in overlay editor/live overlay. I created SETest way before ResumeQueue was introduced. It covers just several types of events that are received by onEventReceived listener.

tame sun
#

what happened to the API form requests, like "we are having issues, we'll solve them soon" literally 1 month and 1 week

stray tide
#

Is it possible to flush old fieldData fields? I have old fields I'd like to get rid of πŸ™‚

#

and no, the field doesn't actually exist under fields

obsidian imp
#

Does resizing a custom code widget in the overlay editor trigger a β€œbrowser resize” event? I want to create a widget that can adapt to the size of its widget box.

jade spruce
#

I'm looking to develop a spinning wheel for like a random pick between objects. Is there anything similar to this?

sinful obsidian
#

Hi, wondering if someone can help, i mod for a streamer, and he has changed to StreamElements, i have managed to move all his command to SE but there is one that we need that i cant move over from nightbot. This is the command (It counts down to Tuesday each week, so if ran now it would let you how long till next Tuesday 5PM)

Time until next reset: $(countdown $(eval h=17+0;n=new Date();s=new Date(Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()+(2-n.getUTCDay())%7,(h%24+24)%24));if(s<n)s.setDate(s.getDate()+7);s.toLocaleTimeString("en-US",{hour12:true,month:"numeric",day:"numeric",year:"numeric"}).replace(/\//g," ").replace(/,/g,"").replace(/(?=\b\d\b)/g,"0")+" "+Intl.DateTimeFormat().resolvedOptions().timeZone))

Nightbot can understand the eval command but SE does not, Can anyone help me convert this.

clear oasis
#

I'm trying to make a JQuery HTTP request on a custom widget but the request is being blocked with "CORS Missing Allow Origin". Is this an issue on the StreamElements side of things or the endpoint I am requesting?

#

For reference, I'm able to request this endpoint in other ways (i.e. a urlfetch by a bot). I just can't seem to make it work on a widget.

jade spruce
#

Thank you @rugged rapids

viral patrol
#

@stray tide Unfortunately there's no simple way to flush them.

#

@obsidian imp Resizing custom code widget doesn't trigger resize event, it reloads whole contents.

viral patrol
#

@sinful obsidian Unfortunately there is no JS eval in bot. You could do that ${time.until ${customapi https://script.url/date}} Where this endpoint provides you proper date like:

<?php
echo date(DATE_ATOM,strtotime("next Tuesday 5 PM"));
#

@clear oasis This is definitely endpoint issue, that doesn't have header access control allow origin set to wildcard, so you could call it via custom widget.

native pasture
#

Hi ! I'm learning how to make new widget by studying other's one, first being the StreamElements default one available on github. I got two questions :

  1. I'm quite interested at how default Alertbox widget allow to add (what seems to be) any number of Alert variants, but I can't seem to find the code allowing that in the code repository. There are two type of Alert Widget in the files and I can't figure out how it is done. To the point I'm wondering if this is actually the code used for the default widget. Some other widget configurations (in the editor) do not match their json description, so... Is that repository the one for the default widget ? https://github.com/StreamElements/widgets Or where can I find such code, if possible ?

  2. I'd like to add a widget that react to a specific combination of emote in chat. I read in the doc widget/StreamElement API doesn't actually receive event for channel message (and I can guess why). I can find a sniplet to connect to chat but I'm wondering what credential I should use. I'm already using a specific account for chat bot (using OBS.Live, so locally), I suppose I can't connect with that credential from StreamElements. How to best proceed ? Do I need an other bot account again ?

#

Actually, I got a 3rd one :
3. I also read in the doc StreamElements does not yet natively register to Channel point redemption (and we need to connect to chat again, as far as I understood). Any idea when that'll be available ? (like a few months ? before the end of the year ?)

viral patrol
obsidian imp
#

@obsidian imp Resizing custom code widget doesn't trigger resize event, it reloads whole contents.
@viral patrol That makes sense, but I’m not seeing that in my editor (jQuery never receives the page load event after resize). Maybe I have to leave the overlay and then open it back up after making the change?

clear oasis
#

@viral patrol Thanks for the response. Why would a bot's urlfetch be able to reach the endpoint but not a custom widget? I guess I'm asking what urlfetch actually does.

karmic wave
#

what language does the bot use? Im reading up on interaction within a VR game which would free me up. Apprantly python is the way forward

lusty portal
#

This may be something that is easily fixed, but I'm bumping my head trying to work it out.. is there a script that will take 99 divided by 50 (for example) and return a 1 instead of a 2? An INT command basically?

#

or a command within the chatbot that will do this that I'm not finding any documentation for?

zinc spire
#

@lusty portal use math.ceil() in python

#

math.ceil() function rounds up to the next full integer

lusty portal
#

Ok. Thanks. πŸ™‚

zinc spire
#

np

viral patrol
#

@clear oasis Bot doesn't care about response headers so it can display contents. Browsers (like OBS) have security that check this stuff before parsing external resource.

#

@obsidian imp jQuery will have document ready or you can listen to onWidgetLoad event

#

@zinc spire @lusty portal math.floor() as ceil will go to next value πŸ˜‰

obsidian imp
#

@viral patrol I’ll try listening to the load event. Thanks!

lusty portal
#

Thanks @viral patrol

clear oasis
#

@viral patrol Thanks so much for the help

round crypt
#

wondering if anyone could help i been trying to make the tip goal but it doesnt let me set the starting amount to 0 only how much u been donated throughout my whole twitch career

inland skiff
#

Hey, sorry, asking again because I didn't really get an answer the first time and this is something of an involved question

#

If anyone's familiar with the timer widget that's available on streamelements, I'd like to ask if anyone knows how it's synced to a remote version rather than instanced for capture with OBS -- is the original creator around somewhere, maybe? Or is anyone familiar?

#

(Is there anyone I can ping for this sort of thing? I'm reasonably familiar with code already and I'm asking mainly because I can't seem to find an answer anywhere else due to how much of a specialized question this is.)

#

@round crypt why don't you just manually set it to zero? You could subtract an arbitrary amount from where you want it to start at, after all; you could certainly subtract the current value of the donated amount; that'll set it to zero for personal usage, if you want to make it a publicly available widget you could add a place to enter a value, or you could remotely store the startup value somewhere the first time someone opens/uses the widget.

high swallowBOT
#

@round crypt To reset goals:

  • from the Overlay Editor > Session data on top right (monitor symbol) > Goals tab > reset progress of desired goal
  • from the Dashboard > Activity feed on the left > Widget data on the right > Goals tab -> reset progress of desired goal

Note: Goal widgets (progress) only counts up and doesn't go down automatically, if you loose followers/subs.

viral patrol
#

@inland skiff Which timer widget are you referring to? Countdown?

elder dragon
#

What would be the easiest way to combine the se data from youtube and twitch?

#

My guess is creating 2 socket.io connections and grabbing the data from there

inland skiff
#

Yes, that widget. @viral patrol

viral patrol
#

This is just a regular intervals that just updates time remaining. There is nothing fancy behind it. It relies only in JavaScript AFAIK

warm anvil
#

is there anyone here who takes commissions? Im thinking of buying some maybe a couple of months later, so I am just inspecting about prices and all.
If so, then please message me. I will reply when I next come online.

magic notch
#

Hey - would anyone be able to assist in having usernames that exceed a certain size to dynamically scale down to fit within a certain area? This is for AlertBox alerts.

tulip river
#

Is it posible to change a command response through an overlay?
Maybe some kind of javascript function or something?

viral patrol
#

What would you like to achieve?

tulip river
#

What would you like to achieve?
@viral patrol Many things, but for example a command that gets session data (like subs from today) or one that updates a countdown/countup timer

viral patrol
#

Unfortunately it is not possible ATM, but this is a brilliant idea

tulip river
#

Oh 😦 Well, i guess I can just make posts to a personal website and then from there change the command through api

#

but yes, it would be awesome if we could through overlays

knotty thorn
#

how long do the access tokens for oauth2 last? and is there anyway to refresh to make them last longer?

viral patrol
dry latch
#

Is there a way using stream elements to have it set each time a person cheers it displays the over all amount they have given to the channel?

Say when someone cheers 100 bits but has cheered 1000 before it would show an overall total of 1100 as a chat message

viral patrol
#

Unfortunately there's nothing like that available.

crisp laurel
warm isle
#

idk if im in the right chat but I was wanting to know if and how i can copy all my alerts from one theme and put it on another theme?

brisk quiver
#

Chat Commands >> !pause >> Command Keywords -- refuses to save any command keywords, tried in multiple browsers.

stiff ingot
#

Hello! Can anyone explain how I should write the command aliases or command keywords to recognize combinations of words and symbols. For example, I would like a user to be able to write "dead :)" and have chat bot respond "${user} just mocked your death! You have been mocked ${count} times!". I can get it to work if I only write one word in the aliases or keyword section but not if I want it to only recognize "dead :)". Thanks!

crisp laurel
#

Please if anyone can help im just trying to get a better on screen readout of the current giveaway I am starting and the only other one I can find(https://discordapp.com/channels/141203863863558144/457957557470887947/623835460938104834) doesnt pull any information and the default one has no customization at all

Discord

Discord is the easiest way to communicate over voice, video, and text. Chat, hang out, and stay close with your friends and communities.

#

or at least if there is a way to view the code of deault modules, the docs.streamelements has code that doesnt match anything in use that i can see

#

function getGiveaway() {
let newDataRequest = {
method: 'GET',
url: https://api.streamelements.com/kappa/v2/giveaways/${channelId}/,
headers: {
'Authorization': 'apikey ' + apiKey
}
};

prime veldt
#

Hi, I would like to know if you have the possibility of configuring a command that, via chat, returns the name of the VLC source that is being reproduced on the live? # indicated by @torn gulch

viral patrol
#

@crisp laurel Code on docs covers giveaways this widget queries

true acorn
#

@rugged rapids on your video on command widget is there an easy way to make it work for all users and not just mod's and vip's?

rugged rapids
#

I recommend to use the stream store for that purpose.

wicked basalt
#

Any plans on introducing a queue system/command?

viral patrol
wicked basalt
#

thank you

crisp laurel
#

@viral patrol you just sent me the link I said doesn't hold any information. The docs Javascript section isn't Javascript and not a single section of the coding examples match any of the coding used by any of the custom widgets. Which are the only ones you can view the codes on because for some reason the default widgets codes are kept secret

viral patrol
#

Almost every single functionality in default widgets can be done by JS and provided examples are used in custom widgets.

#

(BBL)

tender siren
#

Hi! πŸ˜… I just see some streamer was do custom widget by himself and I want to do it by myself. I try searching how to do it and found that I need HTML, CSS, JS and JSON but I only similar to HTML and CSS. Where I can learn about JS and JSON (also intermediate HTML, CSS if needed) for do a custom widget.

viral patrol
tame sparrow
#

@warm anvil what kind of commissions.

#

Is there a way using stream elements to have it set each time a person cheers it displays the over all amount they have given to the channel?

Say when someone cheers 100 bits but has cheered 1000 before it would show an overall total of 1100 as a chat message
@dry latch Actually @viral patrol is both right and wrong. There may not be anything publicly available, however, This is EASSSSSY to do.

#

@viral patrol Many things, but for example a command [...] that updates a countdown/countup timer
@tulip river This is totally possible. I currently do this.

#

If anyone's familiar with the timer widget that's available on streamelements, I'd like to ask if anyone knows how it's synced to a remote version rather than instanced for capture with OBS -- is the original creator around somewhere, maybe? Or is anyone familiar?
@inland skiff Timers are usually instanced, as doing more than instanced requires some technical knowledge. However, it can be done by using cookies I believe. (If OBS can do that, which I believe it does...because my custom stuff wouldn't be working if it didnt)... Basically, you set the timer information as a cookie, and it will remember from the cookies rather than a variable instance.

#

I'm trying to make a JQuery HTTP request on a custom widget but the request is being blocked with "CORS Missing Allow Origin". Is this an issue on the StreamElements side of things or the endpoint I am requesting?
@clear oasis You could possibly use an iframe to get the information. Set the source to where you're sending the request.

dry latch
#

well that is good to know. If you could help me I will love it

silk plank
#

Hi! I'm trying to make a custom CSS widget in overlays which uses the loyalty points information. I was wondering if there is a why to get the loyalty information for a season, mainly who is in the top 10 and how many points they have?

tame sparrow
#

@silk plank for your own channel?

silk plank
#

@tame sparrow Yep, for my own channel. Trying to make an overlay where I show the Top 10 leaders on the leader board. Wanted to animate it so I was wondering if there is a way to get the raw information. That way I can give it different fonts and animations using CSS keyframes.

viral patrol
#

You can query this URL: https://api.streamelements.com/kappa/v2/points/${channelId}/top for your toplist

tame sparrow
#

How does SE get the raw points? There's an API endpoint for a user's channel points from twitch? @viral patrol

viral patrol
#

https://api.streamelements.com/kappa/v2/points/:channelId/:username

tame sparrow
#

@viral patrol I'm asking about how they get the points from twitch.

hardy walrus
#

We don't have anything with twitch channel points.

viral patrol
#

@pallid scarab About Credit roll - ensure that the overlay that has the credit roll widget inside has "shutdown source when not visible" ticked

tame sparrow
#

@hardy walrus but...but...

https://api.streamelements.com/kappa/v2/points/:channelId/:username
@viral patrol

viral patrol
#

This endpoint is for SE loyalty points

tame sparrow
#

ohhhh

viral patrol
#

The only way to get Twitch points redemptions is to use pubsub

tulip river
#

@tulip river This is totally possible. I currently do this.
@tame sparrow how?

tame sparrow
#

@tulip river what was the original question? I can't find it.

tulip river
#

@tulip river what was the original question? I can't find it.
@tame sparrow changing a command from an overlay (from the custom css/js part)

tame sparrow
#

@tulip river ah, I found it. You can take the data from the widget, and then push it to cookies, or a website to store the data, then pull the data on chat command

tulip river
#

ye, i was thinking that way of doing it, but wanted to know if there was a way to do it without pushing data away from SE

tame sparrow
#

How are you trying to use it? Are you outputting to chat, or storing the data, or does the overlay do something on the screen to show the data?

viral patrol
#

You won't be able to use cookies in custom widget (as it states in docs - no cookies nor indexeddb due to browser security policy). You would have to use external middleware.

tame sparrow
#

I believe there are ways around that.

#

Give me a sec. Testing out my idea.

#

as for timers, you'll have to roll your own, but you can use cookies/php session data to deal with persistent timers

viral patrol
#

PHP session data will not work with bot command as it is different session happening.

tulip river
#

How are you trying to use it? Are you outputting to chat, or storing the data, or does the overlay do something on the screen to show the data?
@tame sparrow well, I have some fields for the countup/countdown to put the date there

#

So what I was thinking was to run the "function" to change the command if that did exist every time the load overlay function got activated

#

but if that change command function doesn't exist, I guess I would send that date to my server and from there do the customapi command

#

but don't like that idea at all

tame sparrow
#

what do you mean change the command?

tulip river
#

edit it

tame sparrow
#

which you could do, I'm just curious. give me an example of what you mean

viral patrol
#

So your overlay updates value via POST request to keyvalye.xyz endpoint, and your command has ${customapi https://api.keyvalue.xyz/a17766c6/myKey}

tulip river
#

which you could do, I'm just curious. give me an example of what you mean
@tame sparrow if someone does a 24h livestream for example, this guy could just go to the overlay and change the date from the fields section

#

and then overlay and command gets updated without having him to update the command as well

viral patrol
#

Ohh. keyvalue.xyz values expire after time of not being used.

#

So this is not a way to go as doing 24hrs stream is not a thing that happens often

#

Also each user should provide their own keyvalue.xyz URL

tulip river
#

yes, that's the problem more or less, I could do it with my own server

tame sparrow
#

oh, you can still do it just fine.

tulip river
#

But like more the idea of doing everything in SE

#

without using external servers, etc

tame sparrow
#

you can do it within SE if you want. You can also do it by running a local host server on your local machine

#

right now, if you want to use SE, what do you mean change the command?

tulip river
#

update/change/edit the response of a command

tame sparrow
#

like manually 'fixing' the time?

#

would it return time live, or time left etc?

tulip river
#

hmmm not at all

viral patrol
#

From what I understand. Scenario:
You have a command "!hello" with response "Hello Monday!"
And you have an overlay that changes day of week in that command itself

tulip river
#

yes

tame sparrow
#

oh thats easy sauce

viral patrol
#

And what I wrote on the start, it cannot be (in a safe way) done within overlay alone, without MITM proxy

tame sparrow
#

uh....

#

no you can do that right now if you wanted to.

tulip river
#

exactly that, that when overlay loads it sends the new data provided in the fields (in the case of the countup timer, the starting date) and update it on the response command

tame sparrow
#

you would need 800 lines to do it.

#

well, not necessarily 800

#

you need to connect to chat via javascript and websocket

#

then parse the chat, and whenver people send that command, you make it send a message to chat after figuring out which day it is

viral patrol
#

Again - there's MITM, and end user would have to provide Twitch OAuth token in widget config. Each change in widget would call "!cmd update test new response!"

tame sparrow
#

not true. You just need your user authorization key, and your client-id.

tulip river
#

but that way you are not updating the command of streamelements

tame sparrow
#

you dont need to, you're going to check for the command from chat responses

tulip river
#

but how would the bot answer the command?

tame sparrow
#

you will receive the chat message in there, and you will be responding, not the bot. it will be 'you' replying the message

tulip river
#

hmmm yeah, before going to that solution I'm making the post in my server thing xDD

#

that looks more complicated for casual users than placing a customapi from my website

viral patrol
#

This way it would require rewriting whole "command like" stuff, like permissions, cooldowns and other stuff within widget. Then end user (typical streamer, with regular technical knowledge would have to provide their OAuth chat credentials in custom widget)

#

I totally agree

tulip river
#

This way it would require rewriting whole "command like" stuff, like permissions, cooldowns and other stuff within widget. Then end user (typical streamer, with regular technical knowledge would have to provide their OAuth chat credentials in custom widget)
@viral patrol true

tame sparrow
#

You're correct. However, if you want this functionality, it's doable.

#

as far as i'm aware, this is for @tulip river only?

tulip river
#

Yes yes, of course it is doable, like everything in programming xDD

tame sparrow
#

you want the next and best thing, you don't care about how viable it is to implement for everyone, you make it, and show it off.

viral patrol
#

You care about this stuff when it comes to user experience.

tame sparrow
#

That's correct

tulip river
#

as far as i'm aware, this is for @tulip river only?
@tame sparrow well im not streamer, just got that idea by working off with some streamers

#

so maybe I could give them a "better experience" than spamming me in whatsapp everytime they want a timer

tame sparrow
#

if it's just non graphical widget and it doesn't show up as an overlay, it shouldn't be done in SE 🀷

#

That probably would be more work than even requiring authorization

mortal wagon
#

How do i comment something out in HTML ?

#

I dont want a div to show anymore but dont want to "delete it" incase i want it back later

#

nvm got it

pale acorn
#

Hello people, i'm just starting to the development in streamelements and i have a lot of questions

#

I want to increase the number in the variable count when some StreamElements options triggers

#

But i don't know how to read streamelements events

tame sparrow
#

`
window.addEventListener('onEventReceived', function(obj) {

const listener  = obj.detail.listener;
const datas     = obj.detail.event;

});
`@pale acorn

viral patrol
balmy nebula
#

howdy! i'm looking for a way to add an appearance delay to grot's credit roll widget, as well as a "roll time" that will change the speed of the credits depending on how many people are in them. both are easily changeable options in the streamlabs credit roll widget, but i'm here instead because uuuhhhh nothing from streamlabs ever seems to work right! lol

#

as for the delay, i know you can simply set a render delay filter on the source in OBS, but mine only seems to allow me to set it to up to 5 seconds, when i need it to be 10.

viral patrol
#

@balmy nebula You can find updated version of that widget on #widget-share channel

balmy nebula
#

oh woops! just made the switch from labs to elements today so my b!

#

is there....supposed to be something in the sidebar settings that will do those things i'm talking about?

viral patrol
#

When you click widget and "settings" in left panel, you will be able to adjust stuff

balmy nebula
#

oh yeah I knew about that, but none of the stuff in there seems to be for the specific thing i mentioned which i'm trying to do. I know next to nothing about the actual coding side of these things, so i just figured i'd ask in here to see if anyone else has done that with it before.

wet steppe
#

hi, i have problem with overlays on Obs StEl

#

I don't see anymore my overlays, why?

high swallowBOT
#

@wet steppe OBS > Settings > Advanced > Scroll down > Enable or disable Browser Source Hardware Acceleration, depending on its current state > Restart OBS (This does not apply for OBS on Mac)
https://i.imgur.com/ggMe9ZE.png

wet steppe
#

Great! I'm grateful....thank you

viral patrol
#

@balmy nebula I just added that "start delay" for you there, just reinstall the widget. About "roll time" - speed is static, so if you have 100 events it will not go ridiculously fast

balmy nebula
#

thanks very much!

balmy nebula
#

the thing is that i actually made an outro video that includes a section of relatively blank screen for credits (it's exactly 53 seconds) so really i WANT it to go faster if there's a bunch of events, or conversely slower if there's not that many

#

either way, i want it to always take that exact amount of time to start coming out of the bottom of the screen to when it will be all the way scrolled above the top

#

again, i don't know much about the development of this stuff, so i'm unsure if that's asking for a lot or not lol

viral patrol
#

I have added this, please reinstall the widget one more time

#

@balmy nebula ‴️

balmy nebula
#

πŸ™ πŸ™ πŸ™ THANK YOU!!! i promise that's all i need

#

have a good one

viral patrol
#

I think that there will be more streamers looking for those features

balmy nebula
#

does the no-loop fix that you gave someone a couple weeks ago still work with this?

#

that may also be a good feature to throw in

abstract basalt
#

Quick question πŸ˜„ with SE & OBS ( ans possibly vmix), can I use modules in javascript ? So I can use the import syntax πŸ˜„

viral patrol
#

I think it is available only for script tags that type is module.

pale acorn
#

`
window.addEventListener('onEventReceived', function(obj) {

const listener  = obj.detail.listener;
const datas     = obj.detail.event;

});
`@pale acorn
@tame sparrow ty

jaunty belfry
#

Hey guys,

Is it possible to create an overlay that displays messages from only one viewer?
Explaining;
I would update a string in a Google Sheets cell. In that cell, i'd put viewer names.
The overlay then would filter the entire chat to display only that viewer messages.

working as some sort of "private talk" with that viewer in question

sharp island
#

Sure

#

All chat messages are sent as events, so you can filter them and print the ones you care about

oblique forge
#

Does anyone know of a way to automate when someone wins a draw in streamelements that I can !addpoints automatically to the winner?

#

or at least grab their name as variable and I had points at a push of button?

oblique forge
#

nvm

jaunty belfry
#

All chat messages are sent as events, so you can filter them and print the ones you care about
@sharp island

How would i start making this? now i don't know how.
Could you give me something to start?
I'll try to learn and develop it πŸ™‚

sharp island
#

I think there are some existing chat widgets you can look at and use as the basis.

jaunty belfry
#

ok, thanks!

dim stream
#

I have TTS on my Cheer active but I want to limit how long someone can put their message so they don't spam things. How would I do this?

muted moon
#

I was just streaming, and when I received a follow, only the audio for the follow played. The video didn't appear, no matter what I did. I tried to go to the Streamelements Overlay Editor, but I received an "Invalid Authorization Token" notification. How can I fix this?

tame sparrow
#

@dim stream give me a moment and I'll get you an example.

#

`
var cooldown = false;
var chatTimer = setTimeout(()=>{
cooldown = false;
}, cooldowntime*1000);

    OnMessage.push(eventdata=>{

        if(!cooldown){
            cooldown = true;
            soundclip.play();    

            chatTimer = setTimeout(()=>{
                cooldown = false;
            }, cooldowntime*1000);
        }
    });`
#

@dim stream The above code can be placed in the bit notification closure you would have. It would only play when the cooldown time has passed.

#

If you want to preserve messages (as this will block anyone else sending bits to you) you should use an array to push the messages to instead, and then take them from the array at an interval.

#

@muted moon try resetting your cookies and closing your browsers. Then go to stream elements and reauthenticate your twitch when you login.

viral patrol
#

Also to the above. If sound is played it means that overlay works most likely, but animation is either out of canvas (your browser source is not 1920x1080) or covered by other layers in OBS (keep alerts browser source as top one in browser sources)

tiny tusk
#

Can someone tell me how to make a chat command for countdown ... so that i can set a date and time and respons ist hwo many days hours ect left ... or stopwatch then the other way

Is that possible with SE? Thx

#

$(countdown sep 11 2020 08:40:00 PM CET) didnt work for me

pulsar willow
#

I need some help with the Alert Widget from Breci. How do I change the font for the text?

hardy walrus
#

@abstract basalt

viral patrol
#

@tiny tusk ${time.until 2020-09-11T20:40:00Z}

abstract basalt
#

Normally you have a dropdown to select a google font πŸ™‚ Settings=> Customization=>Select a font

pulsar willow
#

I dont have that

abstract basalt
#

dm me a screenshot of your customization tab plz πŸ˜„

pulsar willow
#

On it

tiny tusk
#

@viral patrol Thx a lot. Do you also have the recipe for "since date"

viral patrol
#

I think the same syntax could work.

#

Hmmm. Or maybe not

tiny tusk
#

not really πŸ˜„

#

response 11:11 ^^

pale cipher
#

Can someone help me?

#

Is there a way to change the way the contests reward payout?

#

I just want it to be double or nothing rather than distributing it between all participants

#

because many times people wont vote on the other option at all

viral patrol
#

This is not possible to change payout of contests.

dusty pecan
#

hey guys I need ur help, I got new alerts made and when I select the font to be played over the image it doesnt show at all, please help πŸ™‚

viral patrol
#

Check text position as it is -50 top by default. Adjust that to display your text

pulsar willow
#

Howdy, is anyone around atm ?

primal raft
#

The Streamelements Support account on Twitter asked me to ask my question here:

I need the text box to always remain the set size+position, and the text to adjust in size to fill it at the maximum size that doesn't "clip" outside the box. Right now I have "Dynamic Font" turned on, but it makes the font extend beyond the box for short names.

Can someone help me how to get this to work? I can ofc manually set a text size, but that's looking quite a lot worse for shorter names.

viral patrol
#

JSON goes to FIELDS tab

sonic eagle
#

So I came here looking for @steady iron regarding his awesome shoutout overlay. I'm having an issue with the image and text for the shout out being cut off and no matter what I try its still cuts out. SO I need some assistance

vital edge
#

I’m wanting to hire someone to do something probably fairly simple. I want a donation goal widget that is an icon or my logo or something that fills up as it completed

native trellis
#

this one

vital edge
#

oh thanks man

vernal holly
#

Would someone please help? How do I render and import a small video for alert animations? What format does it need to be in for the alpha layers to work? and what can fit under the 30mb requirements?

#

I'm using Movie Studio Platinum.

viral patrol
#

@vernal holly The best results you will get with webm libvpx-vp9 file. To get to that I was usually rendering to mov format, then I was transcoding that file to webm via ffmpeg (https://ffmpeg.org):

ffmpeg -i inputFile.mov -c:v libvpx-vp9 -pix_fmt yuva420p outputFile.webm
vernal holly
#

will the alpha layers work if they're a mov first?

viral patrol
#

If you select color range RGB + Alpha, they will

vernal holly
#

how do i "--enable-libvpx"

viral patrol
#

What OS do you have?

#

Did you compile it on your own, or did you get a precompiled package?

vernal holly
#

precompiled exe for windows

#

do i need to get the build and re-compile with the option enabled?

viral patrol
#

Hmmm. That is odd. I was sure precompiled version has libvpx already enabled

vernal holly
viral patrol
vernal holly
#

i just grabbed 4.3.1

#

same error

viral patrol
#

You have a typo there in command as syntax is -c:v and you have -c only

vernal holly
#

nice! that's doing ... something haha

viral patrol
#

LMK if that worked out.

vernal holly
#

aweome, looks like video with alpha worked

#

no sound though

#

do i have to do the sound file separately?

viral patrol
#

Sound should be copied from original file automatically

vernal holly
#

ahhh ok ok.. it just wasn't showing in the stream elements editor, i see it when i do an emulated follow

#

that's great, thank you so much

viral patrol
#

You are welcome

cedar kiln
#

is there any way to store donation history from another platform(saweria, INA, $IDR) that could be used in event list widget? i could get the data from said platform via SSE, but then i couldnt store the history, so that when the widget is refreshed/reloaded, the history is gone and it would only display StreamElement's logs

silent osprey
#

hello, working on a widget, i want to get the cheer emotes used in a cheer and the total value of bits cheered. as far as it seems, the cheer event itself does not contain the emotes in the message, so i would need to check the emotes in the emotes array of every message, parse all the cheer urls and check that they are surely cheer emotes and calculate the value there as well? seems so hacky

viral patrol
#

To get the total amount you can use {amount} templating variable. To get emotes - they are in {message} as img tags or you can parse {messageRaw} like [A-Z][A-Za-z]+[0-9]+

silent osprey
#

oh, thank you! as what would i need to parse {message}? it says, it is an html message, but looking at the example value, it confuses me a bit

spare knot
#

Hello, there are any way to delete current playing song through api?

viral patrol
#

@silent osprey If you want to get exact value attached to cheermote, this is the way. Total cheer amount is in {amount} templating variable

#

@spare knot https://api.streamelements.com/kappa/v2/songrequest/:channelId/skip method: POST, body is just an empty JSON object ({})

silent osprey
#

@viral patrol oh okay, but how can i use it? i assume it is html as the example, so i would need to parse it as html dom?

viral patrol
#

Yes. {message} contains HTML, you can parse it as DOM, or you can find phrases that are <img [.*?]>([0-9]*) (img with closing > non-greedy and following number)

spare knot
#

@viral patrol thank you very much!

silent osprey
#

yes, thank you for your help too!

novel pond
#

With custom widgets, is there a way to see what the latest event that happened is?

#

Thinking like an event list but with a single entry so it's only showing the latest event. Can't use the default event list as I need to represent the latest event with a gif as opposed to actually showing the name or text

#

So if the latest event is a follow, it'll be X.gif and if the latest event is a sub, it'll be Y.gif

viral patrol
#

Of course, you have recents array which has all the recent events, then you can sort it by date and take last element to show it on widget load, then you can use onEventReceived listener

novel pond
#

okay cool thanks!

viral patrol
eternal whale
novel pond
#

okay so if I run recents and sort it based on what the docs say, I get recents[0] as the oldest event. Shouldn't this be the latest event?

    let recents=obj.detail.recents;
    recents.sort(function (a, b) {
        return Date.parse(a.createdAt) - Date.parse(b.createdAt);
    });
#

I've gotten around this by just reversing the sort - return Date.parse(b.createdAt) - Date.parse(a.createdAt); but is this the way? Or am I missing something here?

onyx steppe
#

how i logoff ground control?

rugged rapids
#

Delete the JWT token in the settings.

novel pond
#

is there a way to share a custom widget with someone beyond just sending them 4 widget files to copy paste?

eternal whale
inland lynx
#

just wondering: is it possible to get json code animations being playing in the Sub alert widget?

nova hedge
#

Is something down with the oauth api right now?

Receiving this error: {"error":"server_error","error_description":"The authorization server encountered an unexpected condition that prevented it from fulfilling the request."}

silent osprey
#

hey, when i do

window.addEventListener('onEventReceived', (obj) => {

    const amount = parseInt('{{amount}}');
    console.log(amount);
}

it always prints NaN for every single event, i thought the template variables get auto-populated?
is this because i attempt to use it at the wrong spot?

viral patrol
#

@silent osprey {amount} is within alertbox custom code. In custom Code editor it is obj.detail.event.amount

#

If event has this property

#

@inland lynx You can play any animation that is supported by web browsers. But for JSON you will have to host those files remotely on your own or paste them directly within JS tab as object.

silent osprey
#

@viral patrol oh, okay, getting the {message} with the image sources in custom code is not feasible? i checked out obj.detail.event.message and it was just raw text, i would really like to get the attached cheer emotes on a cheer event in custom code

viral patrol
#

I think that you should read it by message listener not cheer-latest and then validate it if it was a cheer.

silent osprey
#

ah, and then i need to calculate the cheer amount myself, correct?

viral patrol
#

Yes

#

If you want to have cumulative cheer amount you can get cheer-latest and it has amount property, but if you want "per emote" you have to parse message on your own

eternal whale
hardy walrus
#

@hushed hazel ^^^^

eternal whale
#

i have sended grot a dm before , but no answer, but grot maybe dont answer dm

hardy walrus
#

It's been a while since he has spoken but hopefully he'll pop in with a reply here.

eternal whale
#

okay thanks

silent osprey
#

is there a reliable pattern for cheer emotes to ensure they are actually real cheer emotes?
i was considering for looking at the end of the attached emotes in the message, but there is also the twitch emote Squid1, which makes this task a headache
i think they always start lowercase, correct?
the message event seems not to be triggered when i cheer, so i cannot even really test it in the emulator :(

viral patrol
#

@eternal whale This widget needs to have "shutdown source when not visible" ticked in OBS to work (that requirement is no longer present, just reinstall widget from the link you pasted).

#

Currently I am maintaining this widget

eternal whale
#

i gonna test thanks

#

it works now thank you lx!

austere hound
#

How to get the avatar of sharer or star sender?

viral patrol
#

I don't know an endpoint that can translate username to avatar for FB. Sorry.

vital furnace
#

hi all. not sure if right channel, but I would like to learn how to develop widgets/animations for SE. what am I supposed to learn? CSS, HMTL, JS? I’m not exactly sure where to start πŸ˜…

spiral bluff
#

Hi, my IP seems to be shadowbanned from the api... Yesterday it was working as intended and today it will not connect. Tho, if I connect on another IP, it will work. Can someone help me out?

viral patrol
#

@spiral bluff cloudflare which is in the middle is having issues. I hope they are getting fine soon

#

@vital furnace That is correct. Most of them are js/CSS

vital furnace
#

@viral patrol thanks! are both languages required for them to work?

viral patrol
#

You can create CSS animations, but it is easier to manipulate elements via JS

#

But you can also create animation in aftereffects/animate on other software and just display text

vital furnace
#

I’m looking to do something pretty basic to start out. is it possible to create animations in after effects and then use JS to embed the names of users? I want β€œlx just subscribed!” but I don’t want the SE text on top of an animated gif. I want in inside the animation.

sand sable
sly garden
#

I am looking to do a command that lists usernames on a google doc after running the command. All I would need it to do is to take the name and list them on the document.

sand sable
#

I’m looking to do something pretty basic to start out. is it possible to create animations in after effects and then use JS to embed the names of users? I want β€œlx just subscribed!” but I don’t want the SE text on top of an animated gif. I want in inside the animation.
@vital furnace I don't know if it's possible. But if it is, you're probably gonna find a solution in youtube.

fallow vapor
#
  --url https://api.streamelements.com/kappa/v2/tips/5e2f22976eebaf64baada4a5 \
  --header 'accept: application/json' \
  --header 'content-type: application/json' \
  --data '{"amount":"1","donation.amount":"1","userId":"1","donation.user.username":"test","donation.user.email":"test@hotmail.com","provider":"mollie","donation.message":"test2","donation.currency":"EUR","imported":"false"}'```
 ```{"statusCode":500,"error":"Internal Server Error","message":"An internal server error occurred"}```
#

How can i fix this?

umbral vigil
#

Hi.
I was looking for some help in google for an "AddPoints" command for SE and found this topic: https://streamelements.helprace.com/i519-provide-an-addpoints-variable#item_comment_block_65151.
Is there any way to disable text output with the jebaited.net solution? It's in english and my public speaks spanish.
@sand sable I'm not quite sure what you want to accive. The SE-Loyalty-System has a itegrated !addpoints-Command. These also a API-Endpoint for adding Points via REST-Request (https://docs.streamelements.com/reference/single-user#pointsamountbychannelanduserput)

sand sable
umbral vigil
#

I don't know how / if you can create this in Streamelements, but you can create this for sure when useing a self developed chat bot for this and the API-Endpoint mentioned above.

oak marsh
sand sable
#

I don't know how / if you can create this in Streamelements, but you can create this for sure when useing a self developed chat bot for this and the API-Endpoint mentioned above.
@umbral vigil Currently, that's not an option for me. I don't know anything about programming. I'm just trying to learn haha.

viral patrol
#

@fallow vapor Your payload seems wrong: {"currency":"GBP","payFees":true,"user":{"username":"test","email":"test@test.test"},"amount":2,"message":"test message","imported":true}

#

@sand sable You can use output that has just a number returned: ?format=amount like ${customapi https://api.jebaited.net/addPoints/JEBAITEDTOKEN/${sender}/${random 0-500}?format=amount} Which will add 0-500 points to user which called that command and will output just a number. So you can use Your daily chest contained ${customapi https://api.jebaited.net/addPoints/JEBAITEDTOKEN/${sender}/${random 0-500}?format=amount} gold! Come back tomorrow!

fallow vapor
#

Aiigtt thx man, realy helped!

sand sable
#

@sand sable You can use output that has just a number returned: ?format=amount like ${customapi https://api.jebaited.net/addPoints/JEBAITEDTOKEN/${sender}/${random 0-500}?format=amount} Which will add 0-500 points to user which called that command and will output just a number. So you can use Your daily chest contained ${customapi https://api.jebaited.net/addPoints/JEBAITEDTOKEN/${sender}/${random 0-500}?format=amount} gold! Come back tomorrow!
@viral patrol Thank you very much. It worked.

pale acorn
#

Hello guys, I'm trying to make my own follower goal bar, but i don't know how to increase with the SE events functions, so it would be a huge help if someone can explain that to me

pale acorn
#

`//Main container
const progress = document.querySelector('.progress');

//Progress attributes
const count = {amount: 0}; //Current number of people.
const goal = {{goal}}; //Our goal
const percentage = (count.amount * 100) / goal; //Current percentage in favor of my goal and my count.

//-----------------------------------------------------------

//Here we set a new percentage into the HTML file.
document.getElementById('percentage').innerHTML = (percentage) + '%';

//Here we set a timeout for the animation startup.
setTimeout(() =>
{
progress.style.width = percentage + '%';
progress.style.opacity = 1;
}, 500)

//Here we add the latest amount to our count const.
const addAmount = (add) =>
{
count.amount += add;
return;
}

window.addEventListener('onEventRecieved', function (obj)
{
const listener = obj.detail.listener;
const datas = obj["detail"]["event"];

if(listener = "followe-latest")
{
    addAmount(1);
}

});`

sand sable
#

Hi again.
Now I'm trying to configure this widget:
https://pastebin.com/0zxD5ay9
https://jsfiddle.net/zanzer/mov5hzsf
(It's Custom Greeting by Zanzer)

And I can't seem to find the part where you configure the greetings for new users.
It's supposed to have one, or at least that's what I understood.

steady iron
#

@crude crest ^^^