#dev-chat

1 messages Β· Page 40 of 1

dull sierra
#

@elfin arch Thanks for the insight. It worked when I used a millisecond format, which I conveniently took from https://currentmillis.com/

elfin arch
#

ahhh yea.... int(round(time.time() * 1000)) is much cleaner πŸ™‚

meager lotus
#

So...how "programmy" can I get with StreamElements chat bot? I've got almost everything transferred over from StreamLabs cloudbot and Nightbot, but there's a "roast" command that I'm using in Nightbot that goes to a PasteBin instance, pulls a random insult from the list, and then displays it @ the person that was the target of the roast in chat. Is it even possible to do that in SE chatbot?

Here's the command code from Nightbot:
$(query). $(eval roast = decodeURIComponent("$(querystring $(urlfetch json https://pastebin.com/raw/2G4XwSct ))").split(","); roast[Math.floor(Math.random() * (roast.length - 1))]).

rugged rapids
pulsar willow
#

@elfin arch thanks for the video on command help. I'll try to reproduce it sometime soon.

#

How do you bring up the console for debugging like you've done with print statements? Is it just the chrome console for instance?

meager lotus
#

@rugged rapids Thank you SO much for that link. The SE custom api command is so much simpler than doing it in Nightbot. Used that and a variable cannibalized from my shoutout command and it's working perfectly! Thanks again!

lyric nymph
#

Glad to see the code bois got your back @meager lotus sacchan_thumbsup

dull sierra
#

I'm still trying to figure out how the timestamp works in the REST API. No matter the datetime range I use in 'before' and 'after', it always returns the top few results. Doesnt seem like the timestamp range actually does anything...

#

Unless theres a datetime conversion that I'm not understanding... I'm sure timezone doesnt affect the universal millisecond time right?

#

The rest api is returning UTC datetime stamps according to https://www.utctime.net/

mild cipher
#

Have you tried an ISO-8601 timestamp like 2020-06-06T15:40:22.108Z?

dull sierra
#

Yup, even elements outside the range are included in the API response

mild cipher
#

Hm, it seems to be filtering correctly for me

dull sierra
#

Could you provide a sample query string?

#

After iterating through a few samples, I found that the filter works day-to-day, but everything within the same day falls through the filter

#

e.g. "after":"2020-06-06T05:37:22.108Z","before":"2020-06-06T06:00:00.000Z" returns everything from 2020-06-06 even if they are outside the range

mild cipher
#

Unfortunately I don't think I have any cases of tips within the same day (I have two within 24 hours of each other but technically different days), so I can't help replicate that. Seems to be parsing the time incorrectly. Maybe try without milliseconds? 2020-06-06T15:25:22Z

#

(though it wouldn't really make sense since the createdAt and updatedAt timestamps are in the format with milliseconds, so I dunno, probably a bug or not fully implemented yet)

#

technically you can always filter it yourself once you receive the response back. Not ideal, but pkingShrug

dull sierra
#

Ok thanks for the help, I suppose a local filter would work fine for my use case too.

karmic zenith
#

we down fellas?

#

socket seems unstable atleast πŸ™‚

slow gale
#

Kappa seems to be responsing ok to me

karmic zenith
#

@slow gale yea, Kappa seems to work fine, i've just gotten handshake errors for a couple mins at overlay links - probably through the Custom Widget connections.

slow gale
#

Oh it's been like that for a few days now I think

#

Usually connects on the 2nd or 3rd attempt

karmic zenith
#

nah, this keeps going πŸ™‚

#

WebSocket connection to 'wss://realtime.streamelements.com/socket.io/?cluster=main&EIO=3&transport=websocket' failed: Error during WebSocket handshake: Unexpected response code: 503

#

must be a maintenance that's going on, or something went down

#

i mean - i can use the info from the log, i just thought i'd mention it πŸ™‚

hardy walrus
#

Nope. We had a brief hiccup.

karmic zenith
#

Right on ! all good

mortal wagon
#

what would i change this to for accumulative (weekly) tip = data['tip-week'].amount > 0 ? data['tip-weekly-top-donation'] : {amount: 0}; cheer = data['cheer-week'].amount > 0 ? data['cheer-weekly-top-donation'] : {amount: 0};

slow gale
#

@mortal wagon So you want to show the highest tipper/cheerer of the week

#

Or do you just want to show like.. the total amount you've been tipped/cheered in the last week

lament ice
#

Hey @granite pelican first of all thanks for submitting your animated webcam frame it looks awesome! But I have a problem:
I can't seem to change the mask image. Even when changing it back to your original image, the frame somehow gets stuck in the top left corner and you only see like one pixel of it. Here's an example: https://streamable.com/wsetxd
Please @ me when replying or I'll miss your message πŸ˜„

mortal wagon
#

Right now its set to top single amount, i want to set it to accumulative amount from a user @slow gale

slow gale
#

ah ok

#

@mortal wagon So there's actually 2 values that are very similarly named

#

there is data.cheer-weekly-top-donation AND
data.cheer-weekly-top-donator

#

Top donation will return the single highest donation within the timeframe (session, weekly, monthly or alltime) whereas top donator will show the cumulatively biggest donator within the timeframe

#

So if in a week Stan made 1 Donation of $10 and Bill made 2 donations of $8.

Stan would be returned with data.cheer-weekly-top-donation with a value of 10

But Bill would be returned with data.cheer-weekly-top-donator with a value of 16

serene turtle
#

Is there a websocket event.type for tiltify donations?

glacial forge
#

Hey, just wondering if anyone is available to create an event list and a countdown clock please. Please DM me if you can help. Thank you

slow gale
#

@serene turtle I think you'd have to do it through Tiltify's own API

#

You've been very patient asking but I think that the StreamElements stuff is just pulling from Tiltify itself.

serene turtle
#

Exactly, tiltify only supports polling.
And since StreamElements is already polling, for widgit alerts, it would be nice to send it along to the websocket event message.

lyric nymph
#

Hey @slow gale are you available to look at a theoretical something?

slow gale
#

@lyric nymph Hit me

#

@serene turtle You may be stuck in middleware territory there my friend 😦

lyric nymph
#

@slow gale
#widget-share message

Could this widget be edited to work with tiltify? Thonk I'd ask lx but he's hard to see on haha. A dream team member was looking

serene turtle
#

Looks like it...
Is there even any websocket documentation about what events are passed?
I cannot seem to find any.
The websocket page says to check the widget docs Each event processed via the websockets can be seen documented here: https://github.com/StreamElements/widgets/blob/master/CustomCode.md for that info, but I don't see any mention of websockets anywhere there. Or the event types I'm already checking for.

slow gale
#

Sometimes you have to pick through the example widgets to find example of stuff

unborn brook
#

Hey not entirely sure if I should post this here or in the other help sections. I am looking for a way for a SE command to trigger either a hotkey on OBS or activate a URL (locally hosted). I am using an app called UPDeck and it has some really versatile options for animating sources etc and I am trying to find a way to allow chat to trigger the buttons on the app whilst being able to spend their loyalty points (I dont like Channel Points so I haven't used triggerfyre yet).

slow gale
#

@lyric nymph It is possible in theory assuming that streamelements hasn't arbitrarily locked it down.

lyric nymph
#

They have tiltify support on native widgets, the user just really wants a customizable progress bar. He said what's there is perfect if only tiltify was built in FeelsBadMan

slow gale
#

The only things it would need is your tiltify goal value and your current tiltify amount value. Now session data doesn't expose tiltify stuff from what I can see. And there is no mention of tiltify in the the Kappa API at least from what I can see but the API docs are shitty.

#

BUT

#

I just looked at the native tiltify progress bar and it's making a call to an API endpoint that isn't mentioned in the documentation

lyric nymph
slow gale
#

The problem is, I can't test what that calling on that API endpoint will return unless I connected my account to tiltify

lyric nymph
#

I believe mine is but I doubt that helps kekw

lusty void
#

okay so... This may be slightly convoluted but I'm trying to utilize the count command on a custom widget and the tutorial I followed on youtube doesn't work. Is there another way to do this? Or a better tutorial than this one here: https://www.youtube.com/watch?v=1gXtDGz4tYo

A video to show you how to easily display a counter on your live stream using StreamElements bot and custom widget.

You can use this to create any sort of counter, mostly commonly used for such things as in-game death.

β–Ά Play video
#

for context I am terrible at coding

#

but I can follow someone elses code easily

upper bough
#

@crude crest HotBois

lusty void
#

Basically I have the chat commands set up. But when I follow his code, it doesn't work.

#

oh he's in this group awesome lol maybe I can get his help then

#

my widget always stays at 0 when I type my command in chat

#

I'm pretty lost lol

#

@crude crest it doesn't update the widget. Maybe I'm missing something? I'm pretty sure I copied your code exactly I have checked multiple times. What exactly is linking the widget to the custom commands? Also, maybe important but I'm using !ded instead of !heded because it's less characters to type in my chat. My understanding is that the widget is linked to the commands through this code here: counter = 'ded';

window.addEventListener('onEventReceived', function(obj){
const listener = obj.detail.listener;
const data - obj.detail.event;

if (listener === 'bot:counter' && data.counter === counter){
document.getElementById("deathcounter").innerHTML=data.value;
}
});

#

and here

#

here's the HTML part

lyric nymph
#

@lusty void try to wrap code snippets with ``` before and after. Makes it a lot cleaner to read

lusty void
#

oh sorry

#

window.addEventListener('onEventReceived', function(obj){
  const listener = obj.detail.listener;
  const data - obj.detail.event;

  if (listener === 'bot:counter' && data.counter === counter){
    document.getElementById("deathcounter").innerHTML=data.value;
  }
});```
#
<div class="main-container">
    <div class="dc" id="deathcounter">0</div>
    <div class="counter-holder" id="ch"></div>
</div>```
lyric nymph
lusty void
#

thx lol

elfin arch
#

@lusty void can you add the couple following console.log() lines in the code and see what the Chrome inspector on the widget editor says when you try the command in chat? ```js
counter = 'ded';

window.addEventListener('onEventReceived', function(obj){
const listener = obj.detail.listener;
const data = obj.detail.event;
//add
console.log('lis:', listener);
console.log('data:', data);
//
if (listener === 'bot:counter' && data.counter === counter){
document.getElementById("deathcounter").innerHTML=data.value;
}
});

lusty void
#

sure thing

elfin arch
#

then post a screen cap of that inspector window .... looking for what the listener and data are when you proc the command in chat

lusty void
#

ok one moment

#

window.addEventListener('onEventReceived', function(obj){
  const listener = obj.detail.listener;
  const data - obj.detail.event;
  console.log('lis:', listener);
  console.log('data:', data);
  
  if (listener === 'bot:counter' && data.counter === counter){
    document.getElementById("deathcounter").innerHTML=data.value;
  }
});``` updated code
#

idk if I even did it right

#

my chat

elfin arch
#

const data - should be const data =

lusty void
#

facepalm

#

that fixed it ty

#

lol see this is why I don't write code.. I literally went to school for Computer science for 3 years and.. yeah

#

I just don't have the eye for detail or the logical flow for it ig

elfin arch
#

haha; typos still get me too often to admit. I didn't notice it until i saw the console πŸ˜‰

lusty void
#

yeah here I was thinking I was missing something lol turns out I'm just an idiot lol

crude crest
#

Did you get it all sorted @lusty void ? Was just catching up, seen your comments.

lusty void
#

yes sir I did indeed Minus the image. for whatever reason I can't seem to get the URL for the image I am using but I found a workaround from here so I think I'm good. Is there a way to make the number bigger tho?

#

I tried changing a value in the HTML but that didn't work lol

#

@crude crest

crude crest
#

You can add a Font-Size to the CSS under the class for the text to adjust the size of the text however you like πŸ™‚

slow gale
#

@lusty void we all do it. Honestly if you’re writing more than 3 lines of jQuery get in the habit of writing it in a proper coding environment like VSCode and pasting it into stream elements. It takes an extra second and it covers and catches and lints all the syntax errors and typos that we all make constantly.

lusty void
#

okay sorry I didn't reply sooner I was streaming, yeah, I meant the font size. I will try and figure it out, thank you

#

@slow gale don't I know it. I spent 3 years in college for comp sci and yeah, coding is hard. It's always the little things that get you. Forgetting a semi-colon was always a major thorn in my side.

#

so, okay, another thing that's also happening, when I switch scenes in OBS.live it switches the death counter back to 0 on my overlay.

elfin arch
#

if you have the 'shut down source' uncheck does it work between scene changes @lusty void ?

#

not sure how the widget loads the data "on widget load"

lusty void
#

yeah that fixed it. I figured it would be something small like that

#

however doesn't that use more resources to keep it running all the time?

#

not that it matters lol just wondering

hardy walrus
#

Depends on the contents. Animated can be an issue while static stuff shouldn't.

lusty void
#

okay all mine are static lol I want to use an animated overlay one day tho

#

thanks u guys have been a great help! πŸ™‚

granite pelican
#

@lament ice hey! It looks like a problem with CDN. Default security policy denies to load resources from external and browser produces CORS error. I got mask applied after few cycles of enter-exit from widget. Maybe just needs some time for CDN to return correct headers.

viral patrol
#

For JS I think I would use something like that to invalidate requests on the fly:

const fancyFetch = (url, params) => {
    return new Promise((resolve, reject) => {
        fetch(url, params).then(resolve).catch(() => {
                url += '?_nocache=' + new Date().getTime();
                fetch(url, params).then(resolve).catch(reject);
            }
        )
    })
}

But I don't know how could I do that for CSS.

shrewd wadi
#

How do I find the id for a specific store item? (Stream Perks item)

elfin arch
#

i just use a temp overlay with the custom widget and add console.log('e', event); and check the console for the data; there's probably an easier way, but I don't know of it πŸ™‚

viral patrol
#

GET request to https://api.streamelements.com/kappa/v2/store/:channel/items?limit={limit}&offset={offset}

shrewd wadi
#

Thanks guys, I'm having issues seeing stream perk transaction details. I'm only seeing sound effect details. How do we see Stream Perk transaction details?

elfin arch
shrewd wadi
#

Yeah tried all of them but never get back Stream Perk details, only the Sound Effects in the store

slow gale
#

Hey @viral patrol did you see the stuff we were talking about tiltify API stuff yesterday?

viral patrol
#

I saw, but AFAIR we have native widgets only for tiltify

#

And IIRC it is not possible to set a widget under managed account (only channel owner can set it up)

lament ice
#

@granite pelican okay that fix works. Thank you for your reply SEheart

hardy walrus
lapis tapir
#

i have an idea and dont know how to add it to my streams. i have a bot command for duels. i want to take the winners of those duels and automatically have them pop up on my stream and stay so i can have a chat champion. how would one do this ?

hardy walrus
#

@viral patrol Meet @latent gulch. He has a question renWrap

viral patrol
#

Heya! I hope we can provide answers

bright coyote
#

Can Streamelements do an other method for tips and merch so we don't need to use PayPal

#

Like a Giro bank account or something

high swallowBOT
#

@bright coyote SE.PAY is available for streamers who are atleast 18 years old, with bank account under their name in one of the following countries and have at least 101 Follower (Twitch) / 101 Subscribers (Youtube):

Austria, Belgium, Czech Republic, Denmark, Finland, France, Germany, Ireland , Italy, Netherlands, Poland, Portugal, Slovakia, Spain, Sweden, Switzerland, United Kingdom, United States.

If you meet these criteria and don’t see SE.Pay, let us know.

For information on SE.Pay payment methods, their fees, and settlement times see https://streamelements.com/dashboard/tipping/fees.

bright coyote
#

What is SE.Pay ?

hardy walrus
#

@bright coyote Wrong channel.

bright coyote
#

oh sorry

karmic zenith
#

@viral patrol @hardy walrus what regex are you using for the (bot-spam-filters -> Symbol Protection) ?

viral patrol
#

It is Google RE2 syntax (without lookback AFAIK).

karmic zenith
#

Ah - kind of a rewrite engine to make regex's simpler i take? i'll take a look at it, thanks ! you're always great help πŸ˜„

karmic zenith
#

we init() πŸ€“

#

so i found that modules in js (script tags with type='module' and import export in the files) doesn't work well with caching in the custom-widget. it'll keep the modules cached for either eternity or a very long time - tried with a randomized param on each module aswell, but it didn't work either.

#

it was merely for organizing purposes if in doubt

latent gulch
#

Oh hey @viral patrol ! Sorry for the delay, I barely checked my Discord notifications πŸ˜„

#

I have a few questions honestly, let me list them for you

#

1-) Is there a way for me to receive simulated events thru Websocket connection, without creating new ones with a POST request to the actual API? My user base uses the dashboard to test their configurations on the software I'm maintaining.
2-) Is there a documentation on which field means which on Websocket events? Cuz I'm trying to write handlers for Twitch Raid and Twitch Subscription Gift events, but couldn't find a doc explaining the structure honestly
3-) Finally, are Youtube and Mixer events also emitted from the Websocket API?
Thanks in advance!

shrewd wadi
#

I'm having issues seeing stream perk transaction details. I'm only seeing sound effect details. How do we see Stream Perk transaction details?

I've tried all methods on https://docs.streamelements.com/reference/redemptions and was unable to get Stream Perk transaction details.

snow summit
#

When making custom alert designs, can you reference images stored on storage of the overlay editor? Like if I had image1.jpg, image2.jpg, image3.jpg, image4.jpg, how do I refer to it in the custom HTML editor

elfin arch
#

add some fields to the field tab @snow summit i.e ```json
"firstimage": {
"type": "image-input",
"label": "First Image:",
"group": "Images"
}

then in the html; call that image with `{{firstimage}}`
snow summit
#

That worked, thanks

snow summit
#

For the alertbox, do I have to keep the provided CSS/JS?

viral patrol
latent gulch
#

I see. Thank you for taking your time and answering @viral patrol !

shrewd wadi
elfin arch
#

@shrewd wadi try https://api.streamelements.com/kappa/v2/store/${process.env.SE_ACCOUNTID}/redemptions?pending=true

#

.... i'm still hitting the endpoints but looks like it's defaulting to only completed redemtions

elfin arch
#

there is no response documented on the API site; here is what i see for /redemptions endpoint

{
_total: 1,
  docs: [
    {
      redeemerType: 'Channel',
      completed: false,
      input: [Array],
      _id: '5ede1bfec259e762b4486453',
      channel: '5961d0a0c481d33bb8eb95c9',
      redeemer: [Object],
      item: [Object],
      source: 'website',
      message: 'im a message',
      createdAt: '2020-06-08T11:07:42.862Z',
      updatedAt: '2020-06-08T11:07:42.862Z'
    }
  ]
}

input: (what the redeemer types in)

[ [ 'pjonp', 'pjonp@aol.com' ] ]

redeemer ```js
[
{
_id: '5961d0a0c481d33bb8eb95c9',
username: 'pjonp',
avatar: 'https://static-cdn.jtvnw.net/jtv_user_pictures/a92640f1-a743-4774-a58b-60eae8ad3bd7-profile_image-300x300.png',
inactive: false,
isPartner: true
}
]

item (fields required to input) ```js
  {
    userInput: [ 'name', 'email' ],
    _id: '5ede180702496d154a8144c5',
    name: 'Stream Perk2'
  }
]
shrewd wadi
#

Thanks @elfin arch I've found some success with this. Still working on it but progress being made, appreciate it!

I'm not seeing sub messages available in SE or Twitch API, do you know if SE achieves this by the bot in chat (or how is it done?)?

elfin arch
#

are you talking about like a message from chat? it is in the message data from Twitch, SE uses that too

shrewd wadi
#

When someone subscribes/resubscribes it can be accompanied by a message. This message is separate from any other message posted in chat. SE is aware of this as in the Activity Feed you can see their sub-message along their sub. I would like this data πŸ™‚

elfin arch
#

Are you using the SE overlays or your own client/bot?

shrewd wadi
#

Not SE overlays

elfin arch
#

You'll want to get the PubSub from Twitch then

shrewd wadi
#

Thanks very much, I'll look into it!

elfin arch
glacial forge
#

Is anyone here with coding experience able to edit and create widget and event lists as well as progress bar (clock) as a widget. Thank you

elfin arch
#

Yea. do you have a specific question or just a general idea for what you want to make?

#

are you trying to make like a few small things @glacial forge or like 1 big thing where the events add to/subtract from the timer?

glacial forge
#

Thank you @elfin arch Just show you a DM πŸ™‚

elfin arch
#

Ya. Those are some cool overlays; I was thinking you were trying to do something with the build-in SE Overlay editor πŸ™‚

graceful hill
#

Hey all, I have Twitch/Mixer/YT setup with stream elements. I am looking to get a viewer count for all three (total) along with Subs/Follows per stream, much like a normal activity feed. I cant Find anything that exists like it. So my question is any of that remotely possible? Thanks for your time πŸ™‚

A yes/no is all good, I don't want to waste anyones time.

plush rock
#

Is there a way to use TTS in a custom alert? I'd like to inject {{name}} in-between some other audio, but I don't see any reference to the 'alert message' or TTS in the code.

viral patrol
#

You can check Twitch item redemption widget that has a call for TTS (google TTS) which you can use with alertbox.

plush rock
#

@lx thank you! I will look into implementing Google TTS.

plush rock
#

@viral patrol I have looked at the GitHub, StreamElements widgets, and searched Google, but cannot find the widget you are referring to. Would you mind pointing me in the right direction?

viral patrol
#

One moment

pulsar willow
viral patrol
#

@pulsar willow you should adjust width and height in left panel too

pulsar willow
#

Did that but no effect

#

It seems as only the mask is bugged out

#

Removing the Mask solves the issue

left ivy
#

Hey all, I’m on my bot Modules page, and when I change the messages for the various alerts (follow, tip, host) it says β€œsaved” but, it doesn’t save. Didn’t see In pinned, any suggestions?

velvet cave
#

you'll have to refresh page after clicking saved @left ivy

tropic finch
#

how to call fieldsDATA inside CSS tab

#

...

tropic finch
elfin arch
#

see this post @tropic finch for the CSS question; same as html: {{fieldKEY}}
second question; i'm not sure.

slow gale
#

I genuinely don't think you could make that button open a new tab. It is literally hard coded to send data to the API onclick

#

if you want to create some sort of custom control panel you'd have to create some middleware to do it for you.

elfin arch
#

end goal, I'd like to find a way to pull data from the SE_API.Store and provide a simple interface for widget users to modify that data
@glad urchin @mild cipher
...going way back to this; I found a way that kinda solves this. requires using Tab to switch between the fields

<form>
  <label for="fname">Input #1:</label><br>
  <input type="text" id="in1"><br>
  <label for="lname" id="in2">Input #2:</label><br>
  <input type="text"><br><br>
  <input type="button" onclick="testfunc('Settings Saved!')" value="Click Me!">
</form>
<div id='status'>
  Use tab button to switch between fields.
</div>
#

in Onload

document.getElementById('in1').focus().select();
viral patrol
#

Hi @heady ruin ! Are you around by any chance?

heady ruin
#

i am πŸ™‚

viral patrol
#

I would like to investigate this issue from points adding

#

The screenshot you provided looks bit different than I thought it would look like. ${addpoints} instead of ${customapi}

#

Can you DM me invitation link to your account, so I could check it there?

heady ruin
#

which permissions do u need

viral patrol
#

Editor please

glacial forge
#

Continuing to ask around if any devs that can edit and add to pre-made event lists and goal widgets please private message me. Thank you

granite pelican
#

To the Dev of the Animated Webcam Frame widget, this is a issue on the Mixer Side when changing the Width and Height
@pulsar willow it's better to add mention because I could lost a message. Width/height ratio must be proper. If it won't help, please, DM me.

pulsar willow
#

Ohhhh, i am stupid. Will look into it next time

thorny ravine
#

So I really don't know anything about CSS, but I know I'm trying to do something relatively simple. If any of you would mind helping, I'd really appreciate it.

I'm using the "Video On Command" widget that's free on Streamelements to play some fun videos on my screen with easy chat commands. However, it only allows VIPs, MODs, and Me to activate the command. I'm trying to make it so that Subscribers can activate it, or Everyone can activate it. However I have no clue what-so-ever how to add this in the code. (Here is how the permissions are defaulted https://i.imgur.com/gUvsCFf.png)

#

If I can get it to show Streamer + Mods + VIP + Subscriber and another with + Viewer, that'd be fan-freaking-tastic

#

Does anyone know how to do that?

rugged rapids
#

@thorny ravine I recommend to use the stream store with streamelements for this.

thorny ravine
#

@rugged rapids I've managed to set it up to where the stream store can play the same videos on command - the only downside is I can't control the videos volume & every time the command is used, Streamelements makes a chat message for "you successfully redeemed Shark1 for 0 points. elementsOkay"

#

If I can control the volume through the store and make it to where the bot doesn't respond every single time a command is "redeemed" I'd use it 😦

rugged rapids
#

The sound should be controllable when the store item is created.
Yes, the only downside is that there is a chat message on redemption with a custom redeem command.
But to use the widget the same way, you would need to control cooldowns via the widget, to not get the item commands spammed.

thorny ravine
#

I'm fine with them being spammable.

#

For me it's a non-issue for now because I only have 1 ~ 3 viewers. Just starting out πŸ™‚

rugged rapids
#

Then you can delete the section in the JS where the checks for the user level is made.

thorny ravine
#

I can see that working in the temporary - but is there a way to make it so that subscribers can be included to the permission checks?

#

That being said I kinda feel dumb for not thinking to just delete the user level stuff lmao

rugged rapids
#

You can check for userState.sub.

glacial forge
#

@rugged rapids Hey, sorry to bother you. Do you happen to have any contacts with coders that specialise in editing and adding code to pre-made widgets and event lists? Thank you

rugged rapids
thorny ravine
#

Thats what I see - I manually added the "viewer : parseint" stuff

#

How do I make it to where they're allowed to use the commands though? The dropdown bar will not display them in that manner I don't think

rugged rapids
#

Do you already have subscribers?

thorny ravine
#

No.

glacial forge
#

Check Fiver, 0 results for what I wanted

#

Back the drawing board, thanks for the help πŸ™‚

rugged rapids
#

There is no viewer delivered in the userState.
If you want to have it for everyone, you would need to delete the check for levels completely, as everyone can then use the command.

You can make it for subs like this:

JS

if (((userState.vip || userState.mod || userState.sub) && (userOptions['managePermissions'] == 'subs')) || (userState.mod && userOptions['managePermissions'] === 'mods') || ((userState.vip || userState.mod) && (userOptions['managePermissions'] == 'vips')) || userState.broadcaster || (userOptions['otherUsers'].indexOf(user) !== -1)) {

JSON:


  "managePermissions": {
    "type": "dropdown",
    "label": "Who can start video:",
    "value": "mods",
    "options": {
      "streamer": "Streamer",
      "mods": "Streamer + Mods",
      "vips": "Streamer + Mods + Vips",
      "subs": "Streamer + Mods + Vips + Subs"
    }
  },
thorny ravine
#

OhH! I was trying to do that, but for some reason if I edit the manage permissions the "subs" is yellow & bricks the display settings for modifying via stream elements.

#

I'll try this out real quick and see if I just did dumb stuff

#

Huh, that worked. idk why mine didn't worked - i had the exact same line in JSON and it wouldn't display ANYTHING after I confirmed it

rugged rapids
#

You most likely forgot the komma after the vips line.

thorny ravine
#

Thanks for the assist πŸ˜„ I assume I just delete those same lines for all viewers to use without issue?

#

Er, the if (((userstate

rugged rapids
#

You would need to delete the JS line and the correct closing } further down.

thorny ravine
#

Cool. Thanks for the assist πŸ˜„ I really know jack about this code stuff - I just kinda try to eyeball it lmfao

#

@rugged rapids Are Followers delivered in the userstate?

#

or can they be?

#

Last question I promise ❀️

rugged rapids
#

No, they are not.

thorny ravine
#

Darn, thank you!

karmic zenith
#

Hey - is there an option to make groups or labels with the JSON Field Data in the Custom Widget Editor, or have you (devs) thought about making it possible?

shell quest
#

Hey can anyone me explain how to connect a google sheet API to my twitch?

split lagoon
#

Hi. Recently, streamelements.com has been having problems getting promo-codes for challenges for Magic the Gathering: Arena streamers. At the moment when you click the "post to twitter" button to receive codes, a window with redirection opens and nothing else happens. Codes for e-mail do not come. Can anyone help with this problem? maybe some troubles with Streamelements or twitter API...

timber lark
#

The new widget "Image Reveal Game" is awesome. I was always hoping for a chat trivia game, where I can set up custom questions with several possible answers and points distribution for correct answers. I guess that is somehow possible and I hope anyone of you guys is able to do that in the future. πŸ˜‰

viral patrol
#

@timber lark Spoiler alert: || Trivia game is in queue||

timber lark
slow gale
#

Seeings as the Kappa API docs suck, do we have a list of what endpoints require the JWT token and what will auth with just the API token?

versed basin
#

It is possible to get all currency table with py code?
to export it? with userID|userNAME|Points|hours?

tribal dust
#

Is it still possible to send a chat message using the StreamElements API? I tried to follow the format discussed in this post https://discordapp.com/channels/141203863863558144/259680142459142144/571456713908027394

I've tried this in the overlay using jquery:

    method: "POST",
    headers: {
      "Content-Type":"json",
      "Authorization": "Bearer " + userOptions['auth']
    },
    url: "https://api.streamelements.com/kappa/v2/bot/" + channel.id + "/say",
    data: { message: message }
  });```
Where `userOptions['auth']` is the JWT auth string from StreamElements, `channel` is `obj['detail']['channel']` from `window.addEventListener` and `message` is a string variable.

I get a success response of
```{
  "status": 200,
  "channel": "CHANNEL ID"
}```
but the text does not post to chat. Am I missing something?
#

OMG it finally worked by using application/x-www-form-urlencoded instead of application/json as in the documentation. Problem solved!

karmic zenith
#

Hey - is there an option to make groups or labels with the JSON Field Data in the Custom Widget Editor, or have you (devs) thought about making it possible?

granite pelican
elder dragon
#

Is it possible to get all the events that happened in the current stream? (Mention me in your response so I don't mis it)

wooden kindle
#

Anyone able to help me, hide a layer while an alert is playing if possible please!

viral patrol
#

@elder dragon The best way is to read activity feed. You can also read /activities endpoint to fetch this data

karmic zenith
#

@granite pelican damn thanks, that's awesome - didn't realize it was for me, the last time u sent the link πŸ˜† edit: oh it wasn't you, but it was sent without @'ing me πŸ™‚

lusty meteor
pulsar willow
#

I have a widget question, is there a weather widget?

tacit musk
#

@pulsar willow what'd you mean?

pulsar willow
viral patrol
pulsar willow
#

Would it be possible for it to be a widget?

viral patrol
lusty meteor
#

Is there a way to manually poll for the latest session data from a widget?

pastel anchor
#

I have code for a social media Popup, but I don’t know where to paste it so that it shows up on my stream, any help?

elfin arch
#

create a new custom widget on an existing overlay or a new one. then edit the source and put the HTML / CSS / JS into each tab

pastel anchor
#

I don’t know which one to put it in them whether it’s a html, css or js. Also do I delete the alreayd existing code in the other categories so there is just the category with the Popup code left?

elfin arch
#

correct. you will want to delete all of the existing stuff so only your code is in there.

#

do you have 3 parts of code or is it one big code?

pastel anchor
#

All one big code

elfin arch
#

what you have posted looks right. that is all HTML

#

with the <div> tags .... you need some CSS ...which looks kinda like this: ```css
.main-container {
width:100%;
}
#user{
color: red
};

pastel anchor
#

Should I just copy that code into css category or do I need to change it in any way

elfin arch
#

you need to find the CSS code for that social media popup you are trying to make

pastel anchor
#

Ok

elfin arch
#

and then it will also probably need some JS code to

pastel anchor
#

Ok

#

Oh I see I can change which code I’m viewing

#

There is an option for scss do I need that?

elfin arch
#

that might work for the css... i'm not sure if the overlay editor supports scss or not

pastel anchor
#

I just see options on streamelemnts for jss html and css

#

Js

#

Oh wait it worked

elfin arch
#

ya, scss is like css but has a little more features. you can try it and see if it works

pastel anchor
#

Thanks so much!

elfin arch
#

yup. no problem!

pastel anchor
#

Also, one other glitch that I get is when I put in my follower goal it says I have 49 followers when I actually have 125, how can I fix this?

#

105

elfin arch
#

I think that is something with the session data ... but am not 100% sure on that. I have never used it

pastel anchor
#

but when I put it into the actual app, the logo doesn’t show up, any idea why?

#

I bet this is an issue with iOS

elfin arch
#

does it show correctly when you click the preview button on the Overlay editor on the SE website?

pastel anchor
elfin arch
#

ya. i'm not sure then what would cause that

pastel anchor
#

That’s unfortunate for me then

#

I can try and get in contact with my apps developer on their discord

elfin arch
#

ya. or maybe ask in one of the helpdesk channels or OBS if that is what you are using

pastel anchor
#

I’m on iPad so I’m using a specific application

snow summit
#

Is there a way to pull the animated gif icon associated with cheers?

viral patrol
#

You can RMB on preview in variation and click "copy URL"

#

Or via code in that variation you can use {image} or {video}

obtuse sapphire
#

Hi there! I've been playing around with the Raffle System on Streamelements to figure out if it's possible to do a single or multi raffle to choose winners but instead of winning points, is there a way to deduct a certain amount of points to the raffle winners? Also points requirements to !join the raffle

pastel anchor
#

Hi! I’m back again with another question about custom widgets. I found event list code but just in css and when I put the css code in, it doesn’t load in the preview. Is there more code that I need to put in or is there another probleM?

slow gale
#

@pastel anchor If it's specifically for Streamelements. When you first create a custom widget, the code that it comes with is code for an event list. Maybe it just wants to keep the prewritten HTML and JS and just paste in the CSS

pulsar willow
#

hi all
Would be nice if it would be possible to create cross-channel or cross-platform resources:
for instance, setting up a tipping page and choose it to have it for youtube and twitch
Same with Overlays and alerts
and with merchstore. Is that possible?

rare loom
#

I'm super new to StreamElements and I want to start coding some custom widgets. Where should I start, is there a basic guide on the api and the details on how to use it?

rugged rapids
#

Check channel header.

viral patrol
#

@pulsar willow you can create a tipping link for Twitch and then use overlay for alertbox for tips only from Twitch. Platform specific events should be in another widget.

fiery dawn
#

I just purchased a stream package from Ownd3d and do not know how to upload it to streamelements. Please help!

rugged rapids
#

Best to contact Ownd3d.

fiery dawn
#

I didnt realize this is an Ownd3d issue as Im trying to upload to Streamelements

north phoenix
viral patrol
north phoenix
#

Thanks, I'll check that out. I had tested the iftt links with custom commands successfully so I know they are working. Just no idea why i couldnt get the custom widget to work

#

With that one the very first try for a follower event and it works....lol. Been banging my head on the other one for a few hours. Thank you very much for this one

rare loom
#

Not sure how to target fields created and change value with a button. Anyone got the syntax to change a field value when clicking a button?

elfin arch
#

I don't believe you can update the field information from with in the JS code and save it back to the field data. You can use that button to alter the value that is loaded into memory of the script while running though @rare loom

lusty portal
#

Does anyone know what variable in obj.detail.event when redeeming a gift sub changes based on gift sub or personal sub?

#

obj.detail.event.amount seems to be their current streak.

#

So .gifted shows true if it was a gift and undefined if it wasn't.. Ok..

#

But if they regular subscribe, gift should be false.

#

but it's still undefined.

#

Does anyone know how to seperate a normal sub and the person giving out a gift sub?

elfin arch
#

The default custom widget uses this code. It looks like there is an obj.detail.event.sender for gifts

if (listener === 'subscriber') {
        if (includeSubs) {
            if (event.amount === 'gift') {
                addEvent('sub', `Sub gift`, event.name);
            } else {
                addEvent('sub', `Sub X${event.amount}`, event.name);
            }
        }
    }
#

so maybe just this for gifted verse not @lusty portal ? ```js
if(obj.detail.event.sender) { } // gifted sub

lusty portal
#

nods Yeah. I may have to work something around...

#

Thanks. πŸ™‚

#

Actually, I have it set to check sender against the username and if they are the same, I toss the request out.

#

The only way that can break is if a twitch user is named undefined gives a gift. πŸ™‚

#

but he doesn't come to my channel.

snow summit
#

Is there a way to see what kind of sub a user has subscribed with?

#

(Besides using a variation...)

elfin arch
#

like when/if they announce the sub or get gifted one in chat @snow summit ? (Twitch?)

snow summit
#

For Twitch. I mean like if someone resubscribes with a Tier 3 in chat 30 months for example. Currently I'm looking at variations but it limits me to one condition under variations.

plucky phoenix
#

Well good news. I almost got what I wanted working. But it now says missing scope bot:write. Am trying to make a overlay can display infomation and also send replys to chat.

elfin arch
#

ah... with the default Alert Box; i am not sure? i haven't played with it enough.

plucky phoenix
#

Is there no way to send bot messages via the overlay?

snow summit
#

Yeah I'm messing with the editor myself. And there should be a way to send bot messages to the Alert Box.

elfin arch
#

what are you using to send your messages from the overlay @plucky phoenix ?

plucky phoenix
#
statusCode: 403, error: "Forbidden", message: "missing scope bot:write"}
error: "Forbidden"
message: "missing scope bot:write"
statusCode: 403
elfin arch
#

take a look at the last widget in #widget-share πŸ˜‰ ... you can see the set up i used

#

there's a middleware to hide the keys. otherwise you'd need to put a token in there

plucky phoenix
#

So you use the jebaited api to go to SE API POGGERS

snow summit
#

Okay I'm getting somewhere messing with Event Inspector. I can see that an object is made with the info I want to display, but I don't know how to access it.

elfin arch
#

I don't know how much you can do with the default Alert Box... there is the custom CSS thing that shows some code.... but I don't know what all that affects

plucky phoenix
#

You guys want to see what am working on? Kappa

elfin arch
#

sure. i like code things πŸ™‚

plucky phoenix
#

Do you know aidenwallis now playing widget? Basicly I recreated it to use lastfm (just for simple use) and created it into a SE custom widget.

#

Got it working the dirty way but will clean it up and add settings.

#

It only says it two times as I have the preview and the editer running

elfin arch
#

not familiar with that widget; but nice

plucky phoenix
#

Wanted this back so really happy. squatingYAY

#

Not going to lie did not think I could do this with the custom widget. It's funny but going to reinvent the wheel per say. But ever since moving to SE been loving how powerful it is for developers. Now I see why a lot of bigger streamers use it as you can do legit anything with the right guy on the case.

elfin arch
#

^ ya. exactly. the Custom stuff is amazing.

#

I've taken a break from the overlays and switched to some Discord integration stuff .... but can't share that for widgets.

plucky phoenix
#

Did wish SE had a discord bot. Hopefully soon ℒ️

elfin arch
#

it is not in the roadmap from what I was told. And for good reasons.

plucky phoenix
#

I don't think it will ever be a thing. As there is many other bots made for basic discord tasks.

snow summit
#

How do I read the data from obj.detail.listener in the case I wanted subscriber-latest ? I'm trying to use the code:

    let data=obj["detail"]["session"]["data"];
    document.getElementById("tier").innerHTML = data["subscriber-latest"]["tier"];
});```

But can't figure out where to go from there.
elfin arch
#

what are you trying to get? the tier of a new sub?

snow summit
#

The Tier, yes.

elfin arch
#

so; i generally just grab the default "custom widget" and work back from that code.... so start with ```js
window.addEventListener('onEventReceived', function (obj) {
if (!obj.detail.event) {
return;
}
if (typeof obj.detail.event.itemId !== "undefined") {
obj.detail.listener = "redemption-latest"
}
const listener = obj.detail.listener.split("-")[0];
const event = obj.detail.event;

if (listener === 'follower') {
    if (includeFollowers) {
        addEvent('follower', 'Follower', event.name);
    }
} else if (listener === 'redemption') {
    if (includeRedemptions) {
        addEvent('redemption', 'Redeemed', event.name);
    }
} else if (listener === 'subscriber') {
    if (includeSubs) {
        if (event.amount === 'gift') {
            addEvent('sub', `Sub gift`, event.name);
        } else {
            addEvent('sub', `Sub X${event.amount}`, event.name);
        }
    }
snow summit
#

looks like it got cut off at the tail end o.o

#

Wait... I got it

elfin arch
#

then.... ```js
window.addEventListener('onEventReceived', function (obj) {
if (!obj.detail.event) {
return;
}
if (typeof obj.detail.event.itemId !== "undefined") {
obj.detail.listener = "redemption-latest"
}
const listener = obj.detail.listener.split("-")[0];
const event = obj.detail.event;

if (listener === 'subscriber') {
        if (event.amount === 'gift') { //edit here !!!
            addEvent('sub', `Sub gift`, event.name);
        } else {
            addEvent('sub', `Sub X${event.amount}`, event.name);
        }
} 

});

snow summit
#

Yeah that's what I thought. I don't think I can pull the Tier information from that.

elfin arch
#

haha. sorry to hack the code together in the website editor.... but ya.... if you got it πŸ™‚

#

look at the event.tier

#

"prime" / 1000 / 2000 / 3000 .... but not sure how the gifts/community gifts play into all of that.... πŸ€”

snow summit
#

Okay something is really odd... it REALLY doesn't like when I use anything from obj.detail.event. It effectively kills the alertbox.

elfin arch
#

can you post screen shot of Chrome Inspector or JS code?

snow summit
#

Give me a second.

#

JS :

    const event = obj.detail.event;
}
                        
//get data from the 🀟 StreamElements 🀟 data injection
const name = '{{name}}';
const animation = 'fadeInDown';

// vanilla es6 query selection (can use libraries and frameworks too)
const userNameContainer = document.querySelector('.username-container');

// change the inner html to animate it πŸ€ͺ
userNameContainer.innerHTML = stringToAnimatedHTML(name, animation);

/**
 * return an html, with animation
 * @param s: the text
 * @param anim: the animation to use on the text
 * @returns {string}
 */
function stringToAnimatedHTML(s, anim) {
    let stringAsArray = s.split('');
    stringAsArray = stringAsArray.map((letter) => {
        return `<span class="animated-letter ${anim}">${letter}</span>`
    });
    return stringAsArray.join('');

}

function animateValue(id, start, end, duration) {
    var range = end - start;
    var current = start;
    var increment = end > start? 1 : -1;
    var stepTime = Math.abs(Math.floor(duration / range));
    var obj = document.getElementById(id);
    var timer = setInterval(function() {
        current += increment;
        obj.innerHTML = current;
        if (current == end) {
            clearInterval(timer);
        }
    }, stepTime);
}

animateValue('count', 0, {{amount}}, 750);```
elfin arch
#

i'll drop it in and see if i have an issues .... also you can add js after the 3 ` to make it format pretty πŸ™‚

snow summit
#

Oh yeah that's what I used. heh

elfin arch
#

ok; i don't have all code; so i'll just give this a run over. what is breaking the name?

#

the yellow name in second image?

snow summit
#

no idea. That is all the JS I have running on the alertbox.

#

When I remove the onEventReceived block, everything appears normal. (I screencapped mid animation)

elfin arch
#

you are missing a ) at the end? ... it's just an empty function? ```js
window.addEventListener('onEventReceived', function (obj) {
const event = obj.detail.event;
});

snow summit
#

😐

#

Odd enough I saw that error, but it wasn't telling me where...

elfin arch
#

happens all the time. .... i just did realize it was all empty until i read your messages

snow summit
#

That parentheses got everything working again, but using event.tier or event.name isn't replacing the HTML I wanted

#
    const event = obj.detail.event;
    document.getElementById("tier").innerHTML = event.name;
});```
#
      <span class="username-container awsome-text-container"></span>
      <hr style="border-top: 3px solid #FFFFFF;width: 400px;margin:4px auto 4px auto;">
      <span class="action-container">Returning <span id="tier"></span> Subscriber</span>
    </div>```
#

So it SHOULD be affecting the ID named tier but nothing is happening.

#

Even changing it to: document.querySelector('.tier') Doesn't do anything.

elfin arch
snow summit
#

Correct. This is just an alertbox that pops up when triggered by a new sub.

elfin arch
#

and that should put the .name in the html into the "tier" span you have

snow summit
#

Yup.

elfin arch
#

there is no document.querySelector('.tier') but you do have a document.querySelector('#tier') (id not class)

snow summit
#

Right.

#

I was trying to pull tier from this data["subscriber-latest"]["tier"] - Tier of sub (1-3)

elfin arch
#

document.getElementById("tier").innerHTML = "TEST"; should work ...

#

you want use event.tier

snow summit
#

Still no change.

#

No errors in the console.

elfin arch
#

do you have any fields set already by chance in the Fields tab?

snow summit
#

No fields is emptied.

elfin arch
#

ok; just checking.... they will override an {} in the JS ....

#

add a console.log in there .... πŸ€” ```js
window.addEventListener('onEventReceived', function (obj) {
if (!obj.detail.event) {
return;
}
if (typeof obj.detail.event.itemId !== "undefined") {
obj.detail.listener = "redemption-latest"
}
const listener = obj.detail.listener.split("-")[0];
const event = obj.detail.event;

if (listener === 'subscriber') {
  console.log(event.tier) 
  document.getElementById("tier").innerHTML = event.name;
} 

});

#

can you get the "prime" / 1000 / 2000 / 3000 logging?

snow summit
#

Nope I see nothing.

#

Tried on both Chrome and FF

#

Thank you for the help by the way, I know its late in the morning.

elfin arch
snow summit
#

What am I doing wrong...

elfin arch
#

post your full JS again 🀣

snow summit
#
   if (!obj.detail.event) {
      return;
    }
    if (typeof obj.detail.event.itemId !== "undefined") {
        obj.detail.listener = "redemption-latest"
    }
    const listener = obj.detail.listener.split("-")[0];
    const event = obj.detail.event;

    if (listener === 'subscriber') {
      console.log(event.tier) 
      document.getElementById("tier").innerHTML = event.name;
    } 
});


//get data from the 🀟 StreamElements 🀟 data injection
const name = '{{name}}';
const animation = 'fadeInDown';

// vanilla es6 query selection (can use libraries and frameworks too)
const userNameContainer = document.querySelector('.username-container');

// change the inner html to animate it πŸ€ͺ
userNameContainer.innerHTML = stringToAnimatedHTML(name, animation);

/**
 * return an html, with animation
 * @param s: the text
 * @param anim: the animation to use on the text
 * @returns {string}
 */
function stringToAnimatedHTML(s, anim) {
    let stringAsArray = s.split('');
    stringAsArray = stringAsArray.map((letter) => {
        return `<span class="animated-letter ${anim}">${letter}</span>`
    });
    return stringAsArray.join('');

}

function animateValue(id, start, end, duration) {
    var range = end - start;
    var current = start;
    var increment = end > start? 1 : -1;
    var stepTime = Math.abs(Math.floor(duration / range));
    var obj = document.getElementById(id);
    var timer = setInterval(function() {
        current += increment;
        obj.innerHTML = current;
        if (current == end) {
            clearInterval(timer);
        }
    }, stepTime);
}

animateValue('count', 0, {{amount}}, 750);```
elfin arch
#

ooooh... are you doing onEventReceived or onSessionUpdate ?

#

i'm using onEventReceived

snow summit
#

OOH let me switch that.

#

Also is it hurting that I'm doing this as a variation and not a normal?

elfin arch
#

are you doing this in the default Alert Box?

snow summit
#

no a Variation box.

elfin arch
#

I am not sure.... you'll have to let me know πŸ™‚

snow summit
#

Nope I get nothing in the console. I don't think it works in the event of it being a variation.

#

Is that a bug or by design?

#

Also which inspector are you using?

elfin arch
#

i use chrome; ctrl+shit+i

snow summit
#

yeah I don't see it at all.

elfin arch
#

so you are trying to put this into a default Alert Box -> variation?

snow summit
#

Yup.

elfin arch
#

ahhh.... i thought this was a custom widget thing πŸ€” .... i'm not great with the default Alert Box thing

snow summit
#

It's alright. Guess I could try to make a widget from the group up for the overlay.

#

(That or skip the whole thing heh)

elfin arch
#

and it looks like the custom css affects all of the variations; from my quick look

snow summit
#

Just to make sure, when you say Widget do you mean + > Static/Custom > Custom Widget

elfin arch
#

haha; ya. ... if i was more familiar with the Alert Box i would have noticed it was the same code..... i'll take a few minutes to play with it and see if I can get tiers. i really only the the custom stuff

snow summit
#

cool deal. If you can get it work, great. If not, that's fine too. This isn't a deal breaker but I'm genuinely curious why it's not working... or is the API for pulls only available when its a widget and not an alertbox.

elfin arch
#

ya. i'm not sure.... i can't even get a basic console.log() to trigger in a variation from the JS

#

...so anything in the JS doesn't seem to matter from my testing....

#

but dumb answer @snow summit .... just add {{tier}} in the HTML and get the tier

crude crown
#

@snow summit just saw ur message about

Nope I get nothing in the console.

Im not into ur problem but came about that yesterday...

I had to get the console directly from the window object to see the log output... just calling console.log diddnt worked for me
window.console.log("bli bla blub...")

elfin arch
#

just tried that @crude crown ... but can't get any response from the JS in the AlertBox -> custom CSS -> JS tab. did you get that from the AlertWidget or a custom widget?

viral patrol
#

console. methods don't work in alertbox.

crude crown
#

it should works if u get the console object directly from the window object @viral patrol since the window object is acessible everywhere in the browser

#

ill try that later today so im not spreading an wrong informations^^

sharp island
#

The alertbox overrides window.console

hexed ridge
#

can i clear an custom array on session start in a custom widget?

#

for context: the custom greet widget fills an array "alertPlayed" but doesnt seem to empty it except i "resave" the overlay

snow summit
#

So should I avoid using alertbox and instead use a custom widget?

#

Just not sure how its not possible for me to pull down the Tier an active subscriber in an alertbox.

snow summit
#

Nevermind about the {{amount}} fiasco... Turns out... the alertbox didn't copy the right HTML and it was copying a class attribute instead of an "ID" one.

snow summit
#

So before I move on anyone know how to get the Tier name (or value in general) of a Twitch sub into the Alertbox? (If it's possible.)

elfin arch
#

try just {{tier}} in the HTML @snow summit

snow summit
#

facepalms

#

I could've sworn I did that. You know what... I'm not even complaining about it thank you @elfin arch

elfin arch
#

haha. ya..... simple solution that we were over thinking 🀣

snow summit
#

This isn't directly related to the editor but does anyone know how to retrieve the animated GIFs Twitch uses for bits

snow summit
#

Thought there was a way to pull it from the API but guess back to google.

tropic finch
#

you can also use the ones that came with the alertbox default widget

snow summit
#

Wait that helps.

tropic finch
#

πŸ˜‰

pulsar willow
#

where do i need to go if I have questions about how to edit super themes ?

sand igloo
#

In the API I see a way to get the current value of a counter for a bot but is there a way to change the value of a counter using the API?

tropic finch
#

In the API I see a way to get the current value of a counter for a bot but is there a way to change the value of a counter using the API?
@sand igloo you cant, there is other ways to do it, refer to helpdesk-yourplatform to more info

mental aurora
#

is there any updated docs on the websocket api events? the guide mentions 4, event:test, event, event:update and event:reset but I only ever get events on event:test, and never anything on the update or reset events. (docs here https://docs.streamelements.com/docs/connecting-via-websocket or https://docs.streamelements.com/docs/connecting-via-websocket-using-oauth2)

unreal kestrel
#

I've a question of theory.

#

If you can use a SE widget to change scenes which I do.

#

Could you not also use an SE widget to mute/unmute audio sources?

steady iron
#

SE is running in a sandbox, they cannot affect your computer directly. however, there is an OBS plugin that allow your OBS to receive orders in a certain port

#

so basically using that plugin you could write a little program to send the right instructions your OBS can understand to change your scenes and/or enable/disable sources

#

luckily, there are a few systems around that simplify this for you. like TriggerFyre, check that on its website. Be aware that this is not affiliated with StreamElements, although it does use a StreamElements as an intermediary widget @unreal kestrel

#

I believe this system also allows you to interact with StreamDeck actions, which can enable/disable sources on OBS

unreal kestrel
#

I'll check it out, I use Websocket and one of the widgets in #widget-share to change scenes via chat and hide sources already so if I can get a way to do the same thing in theory to mute/unmute things in the audio mixer then that would be amazing.

tropic finch
#

if u hide unhide a source of media it goes mute unmuted don't?

#

i mean if the source is hidden the sound stop too

unreal kestrel
#

Yeah

#

But wouldn't want to hide the media source as well.

#

Contextual thing where audio has to be muted for a moment but want to maintain video.

tropic finch
#

there is a workarround tbh

#

u have spare hotkeys in your keyboard like a numpad?

unreal kestrel
#

Not a single hotkey is used.

#

I have them all available!

tropic finch
#

there is a widget / plugin that press a button in your keyboard under chat command

#

then if u setup that hotkey in the numpad to mute / unmute the audio source it will work πŸ™‚

unreal kestrel
#

wait a gosh darn second

#

That could be used to start/stop stream from chat too.

tropic finch
#

hm true

#

there are a lot of applications that can be done with that type of implementation

#

also if u was running without spare hotkeys u could simple buy a external numpad and use autohotkey software to register custom keypress to those

unreal kestrel
#

Yeah I am looking through the hotkey options now.

#

Could do so many things with that type of widget.

tropic finch
#

with that statement i mean u could do infinity keypresses aka commands

#

its a very scalonable idea

unreal kestrel
#

Is it in #widget-share I just scrolled to the top and didn't see one about hotkeys

tropic finch
#

then its the second option for sure

#

it is a plugin

unreal kestrel
#

Oh.

#

Found it, I think.

tropic finch
unreal kestrel
#

Oh, nice thanks. That would be fun.

unreal kestrel
#

Wait what the hek.

tropic finch
#

none of them actualy works

#

have tested all only one i couldn't cause of the twitch problem

#

the first link would work but its a rough implementation of it

steady iron
#

That could be used to start/stop stream from chat too.
@unreal kestrel that's why some sort of permissions is good. Triggerfyre allows you to set who can trigger what

split bobcat
#

@viral patrol anyplans / way to add DonorDrive to your alerts widget?

nimble ore
#

Hi guys! I want to create customs widgets for Runeterra, I'm thinking of scrapping Mobalytics site with some info, Deck Win Rate, and Win/Loss match list, and I don't know if I can use node.js with puppeteer inside the sandbox widget to scrappe the data, any ideas/help?

steady iron
#

@nimble ore you can import and use js libraries that are publicly reachable in the internet and you can certainly make web requests and retrieve information using REST API endpoints from other systems.as long as you have a place to get that info, it shouldn't be a problem

nimble ore
#

@steady iron thanks for the promptly response, I'm going to try that

steady iron
#

If you need an example of how to make REST API calls in simple JS and use that information, you can give it a look at this simple widget I made which, everytime you get a new follower, it gets the name of the follower from StreamElements listener and then gets a users Twitch avatar from decapi REST API: https://www.streamelements.com/dashboard/overlays/share/5ec41eb99af8fdae1120acd8

Also, you can look at this English/Spanish stream where I explained exactly how we made this widget, from scratch: https://www.twitch.tv/videos/625793406

viral patrol
#

@split bobcat Hi. Can you DM me an example fundraising there so I can investigate it?

pulsar willow
#

Ok, hi. I've said this in intros, but people probably don't read that so: I'm looking to start creating overlays, widgets, stuff like that using Overlay Expert. I don't know whether the newcomers guide was supposed to abruptly stop after "Content" (my guess is not but who knows) so i don't know what 50% of the things do. Can i find some help here , just stuff like what the nested layers can be used for, advanced options for text, etc, it would be really appreciated. Thanks in advance if I don't get back straight away.

viral patrol
crude crown
#

All other events are returning the correct count, its just this event which returns it incorrect....

high swallowBOT
#

@crude crown Due to a recent change from Twitch API, these features are affected by the change:

  • Ground Control does not have Custom Bot Name
  • Subscriber count will count the Channel and any other permanent sub you may have (+1 or +2 or +3 on top).
    We are working on fixing both issues, but there is no ETA.
    OBS.Live still has Custom Bot name working fine in it.
hardy walrus
#

@crude crown But partly due to that we don't get the correct number.

crude crown
#

ok, then ill wait^^ cant do much more πŸ˜› but thanks for the fast answer

left rampart
#

Is there a way to programmatically get !watchtime for a channel, either by specific viewer or overal? Is this perhaps loyalties in the api?

viral patrol
#

I think that /loyalties endpoint should give you expected results about that one

left rampart
#

opens postman

left rampart
#

Doesn't appear to, @viral patrol. Just the details of how the points system works for the channel. :/

viral patrol
#

@left rampart GET https://api.streamelements.com/kappa/v2/points/:channelId/:userName should return you points, alltime, current rank and watchtime

#

Instead of :username you can use top to get toplist of points

left rampart
#

Thnk you, good sir

solid moat
#

can i ask for css snippet here ?
i wanted to show this side but it is always cutted even i stretched here. even added a margin-right but its not even working

.event-container {
    width: 0px;
    height: 40px;
    display: flex;
    justify-content: right;
    align-items: center;
    border: 2px black solid;
    background-color: {{backgroundColor}};
    border-radius: 14px;
    margin-top: 3px;
    padding: 4px;
    animation: 0.6s slide-in;
    animation-fill-mode: forwards;
}```
solid moat
#

nvm i got by adding padding on main-container

left rampart
#

Okay, one more api question for now. Is the level of auth needed to run a protected endpoint tied to the level of the manager? Or do they just all require full control?

slow gale
#

I think editors can also access

split bobcat
#

@viral patrol DM sent

snow summit
#

(Sorry for so many AlertBox questions). When you are setting up a subscriber gift trigger, does {{amount}} equal the number of months the gifted user is a subscriber or how many gifts were sent?

#

That is "When variation is a gift"

plucky phoenix
#

Wait I get swag just for submitting a cool widget. ". You'll get EXCLUSIVE swag with your name on it!" Pog

velvet cave
#

@plucky phoenix correct πŸ˜‰

#

I also have some Translator swag, SE.Champion swag etc POGGERS

slate bay
#

Hey ya'll, I have a simple CSS question (sorry still learning) I'm just trying to center my text so that it doesn't bleed off the alert and accommodates for the length of one's username. Any idea how?

#

(I'm in the chit chat voice channel if anyone wants to hop in)

viral patrol
elfin arch
#

☝️ i used fitty when lx first mentioned it to me and it is great! but your issue might because you have "absolute" positioning on your .username and .following

#

if you give both a left of 0; width to match the container size, and text-align center? i think

slate bay
#

@elfin arch I tried that, the text just disappears from the alert.. πŸ€”

#

I have a suspicion that I can only text-align it if I parent it correctly..I wonder if I parented the text in the right way, which is why the text disappears when I set the position to anything but absolute

elfin arch
#

right; so you switched from absolute to relative

slate bay
#

Its the same result w/ absolute

elfin arch
#

go back to your first code with a left of 0

slate bay
elfin arch
#

^ yup perfect.

viral patrol
#

display:inline-block to username

#

Or change <span> to <div>

elfin arch
#

that second image you πŸ€” is missing a "top/bottom"

cursive pasture
#

Hi, can I get some help with the duckduckgo command.

elfin arch
#

i don't know if inline block would work because it is on top of the parent div

slate bay
#

I think I got it! One sec

#

Bingo. Thanks ya'll.

cursive pasture
#

Hey everyone, I would like to get some help with some commands

#

I need help with the stats and status commands

velvet cave
#

^for youtube that is

elfin arch
#

thank you for posting the answer @slate bay!

cursive pasture
#

@velvet cave thanks and can I pm you about something as well?

velvet cave
#

@cursive pasture my DMs are closed, you can ask those in the helpdesks

cursive pasture
#

@velvet cave who can I ask about a specific pc to stream OBS and Streamelements?

high swallowBOT
#

@cursive pasture There are no "best settings".
Please understand that every setup will be very different.

Any guides or videos that claim otherwise are misinforming. Your best option is to start with a base and adjust as necessary.

You can run the OBS auto-configuration tool. To use the auto-config, click on the Tools menu in OBS, select Auto-Configuration Wizard, and then just follow the on-screen directions.
You can use this tool to get baseline settings for your hardware and adjust as necessary from there.

Test, test, and test again. We are happy to offer suggestions for any issues you may be having afterwards, but not a list of settings.

Thank you SEheart

velvet cave
#

Also please keep this channels to code related questions plesase, thank you!

cursive pasture
#

Okay thanks, yeah some help with the !stats and !status commands on Youtube please

elfin arch
#

can you state your !commandName and the response you have; or maybe best a screen capture of the command settings? and give the best description of the problem? ... i don't know youtube myself at all so i'm not able to help; but hopefully someone else can

cursive pasture
#

These are my two commands I need help with and their respective codes. For !stats it displays the current viewers accurately and the rest returns a 0. !status returns all of the inputs correctly except for current game which returns the ${game}

wind heron
#

so can i only use the api with a channels JWT Token or is there actually a scope based oauth access possible? I'd like to develop on the API, but it would be great, if a streamer does not need to give me full access to everything.

mild cipher
wind heron
#

how long do they take to respond? so i can tell my friends how long i need to do this the safer way :)

mild cipher
#

Applications are processed in batches so it'll depend on when the last one was. Maybe two or three weeks?

wind heron
#

phew thats long, okay. then i'll develop for now on the JWT token which can be switched to a access token

#

thanks :)

pulsar willow
#

Hey @elder dragon Any plans to bring your Bar Widget to Mixer?

#

I really like it

elder dragon
#

Not planned

#

atm

pulsar willow
#

Aww, thats unfortunate

covert steeple
#

Hey guys, how you doing today?
I'm trying todevelop a chatbot for my channel using streamelements api and loyalty points, but i'm receiving a 404 getting user current points

#

the channel is found but the user isn't

mild cipher
#

You'll want your channel ID instead of username
../points/5e303059b9153d9385e20124/johnnyfrosty

covert steeple
#

It's Alive!!!!!

#

worked, ty vry mutch @mild cipher

high swallowBOT
#

@pulsar willow Please ask your question in one helpdesk channel only. A support volunteer or StreamElements staff member will assist you as soon as they are available. Asking in multiple places will only result in confusion, not faster answers. Thank you for your patience.

plush eagle
#

can anyone help me i cant edit socials on a overlay

high swallowBOT
elder dragon
#

Is there a maximum amount of characters you can put inside a text field?

analog topaz
#

I have a question about imopring your own alert

#

I made it in After Effect as transparent background in .mov

#

but as streamelements doesn't support .mov, i tried converting it into .webm but when i do that hte background gets black

tropic finch
#

but as streamelements doesn't support .mov, i tried converting it into .webm but when i do that hte background gets black
@analog topaz if u have used a web conversion thats the problem, they discard alpha channels, u need to use proper conversion tool like premiere to this work or ffmpeg

hardy walrus
#

@analog topaz Do you have premiere pro or media encoder by chance?

slow gale
#
ffmpeg -i input.mov -c:v libvpx-vp9 -b:v 2M -pix_fmt yuva420p output.webm
#

God dam getting backticks on a phone keyboard is inordinately difficult

#

That will convert to a webm and retain alpha

#

At a good bitrate too

tropic finch
#

vp9 ? @slow gale

rare loom
#

Is there a way to create buttons to control content from custom widget?

elfin arch
#

yup; the buttons will need to be in the field tab

pulsar willow
#

Hello πŸ™‚ Is there a way to embed a gif or webm into my custom CSS overlay code? I'm using custom CSS and can't figure out how to get a gif or webm in there. iFrames are disabled by stream elements.

elfin arch
#

are you using the default Alertbox with just the custom CSS turned on?

#

or like a full custom setup

analog topaz
#

Sry for late responce. I never used premier but can try and see how it goes

viral patrol
lyric nymph
#

casual post here that lx is a saint and I'm the big dumb, so give him love and respect for being patient with my smooth-brain-having self

viral patrol
analog topaz
#

Ok thanks so much will try

random pebble
#

🀟

elfin arch
#

I think all I need to know is, in the CSS Editor, do I replace
<span id="username-container"></span>
With something like
<span id="sender-container"></span>
@random pebble
this is empty HTML .....

random pebble
#
    <div class="image-container">
        <img src="https://cdn.streamelements.com/static/alertbox/default.gif">
    </div>
    <div>
        <div class="awsome-text-container">
            <span id="username-container"></span>
            just subscribed
        </div>
        <p>
            {{message}}
        </p>
    </div>
</div>```
#

That's what I'm working with just now.

elfin arch
#

<span id="username-container"> ???? nothing here </span>

random pebble
#

I'm sorry but I don't understand.
I'm really new to coding.

elfin arch
#

so a <span></span> is empty. there is nothing between them.

#
<div class="text-container">
    <div class="image-container">
        <img src="https://cdn.streamelements.com/static/alertbox/default.gif">
    </div>
    <div>
        <div class="awsome-text-container">
            <span id="username-container">   {name}   </span>
            just subscribed
        </div>
        <p>
            {{message}}
        </p>
    </div>
</div>
#

^ i added {name} there so i should say the name now. (but the JS might override all of that)

random pebble
#

Ok, I'll give that a shot and jump back on later to let you know how it went. Didn't realise I'm supposed to be jumping on to stream, like, NOW

#

Thank you very much for the help!

elfin arch
#

yup yup. i will probably be offline; but lots of others can help. happy streaming πŸ™‚

viral patrol
#

With default alertbox username-container is empty as it is filled with animated text via JS

elfin arch
#

... but the next step was to remove all of the JS . The end goal is {sender} gifted a sub to {name}

#

....can that just be HTML overrides with the {var} ?

viral patrol
#

Next step was to remove JS, but if JS is still present, it overwrites value in HTML on load

elfin arch
#

yes. if the JS is still there it would override the HTML; .... and answering my own question; yes it can be HTML/CSS only

#

had to play with it for a little bit πŸ™‚ i've not used the default Alert widget much

elfin arch
#

... so i played with it more.... and the non delete all JS cheat mode is:
HTML

<div class="text-container">
    <div class="image-container">
        <img src="https://cdn.streamelements.com/static/alertbox/default.gif">
    </div>
    <div>
        <div class="awsome-text-container">
             <span id="sender-container"></span> gifted a sub to <span id="username-container"></span>!
        </div>
        <p>
            {{message}}
        </p>
    </div>
</div>

JS ```js
//get data from the 🀟 StreamElements 🀟 data injection
const name = '{{name}}',
sender = '{{sender}}',
animation = 'wobble',
userNameContainer = document.querySelector('#username-container'),
senderNameContainer = document.querySelector('#sender-container');

senderNameContainer.innerHTML = stringToAnimatedHTML(sender, animation);
userNameContainer.innerHTML = stringToAnimatedHTML(name, animation);

function stringToAnimatedHTML(s, anim) {
let stringAsArray = s.split('');
stringAsArray = stringAsArray.map((letter) => {
return <span class="animated-letter ${anim}">${letter}</span>
});
return stringAsArray.join('');
}

elfin arch
#

ALT js... sorry i got side tracked 🀣

//get data from the 🀟 StreamElements 🀟 data injection
const name = '{{name}}',
  sender = '{{sender}}',
  animation = 'wobble',
  userNameContainer = document.querySelector('#username-container'),
  senderNameContainer = document.querySelector('#sender-container'),
  stringToAnimatedHTML = (s, anim) => s.split('').map(letter => `<span class="animated-letter ${anim}">${letter}</span>`).join('');

senderNameContainer.innerHTML = stringToAnimatedHTML(sender, animation);
userNameContainer.innerHTML = stringToAnimatedHTML(name, animation);
viral patrol
#

We need to reduce it moar:

const animation = 'wobble',
stringToAnimatedHTML = (s, anim) => s.split('').map(letter => `<span class="animated-letter ${anim}">${letter}</span>`).join('');
document.querySelector('#username-container').innerHTML=stringToAnimatedHTML('{name}', animation);  
document.querySelector('#sender-container').innerHTML=stringToAnimatedHTML('{sender}', animation);
elfin arch
#

🀣 ... well played

viral patrol
#

But with stuff like that I am going more like providing values in fields and then replace them via templating

elfin arch
#

not saying that it the best practice 🀷 probably not good (i don't have professional experience)

viral patrol
#

So user can have {firstline} containing {name}

#

My practice is not good too, as it is messy if you want to change it

elfin arch
#

haha, ya that is why i keep my vars at the top.... most often 'edited'

#

🀣 and if we had one more variable container in there... id' want to map the querySelector s

viral patrol
#
const wrapData = (message) => {
    return message.replace(/\b{name}\b/g, '<span class="username">{name}</span>').replace(/\b{amount}\b/g, '<span class="amount">{amount}</span>').replace(/\b{sender}\b/g, '<span class="sender">{sender}</span>');
}
const messageTemplate = wrapData("{announcement}");
$("#alert-message").html(messageTemplate);
#

Oh. Like that. So you can have {user} has subscribed for {amount} months in Alert message

#

Which will be populated with spans, that have classes.

elfin arch
#

ya... but you are using regex..... but that is basically built in with the AlertBox and custom CSS toggle

viral patrol
#

I am using that, so user can type templated variables in box instead of editing html code. This is definitely for more complex alertboxes

#

But it gives a lot of freedom to user

elfin arch
#

yup. for sure ...

#

but there is no 'edit' or fields on the default widget right?

viral patrol
#

in default widget - no, but if you enable custom code it acts almost like custom widget

#

But you have no "onWidgetLoad"

#

So you have to use templating variables

#

Like const direction = "{direction}"; where direction is a custom field like:

"direction": {
    "type": "dropdown",
    "label": "Animation direction",
    "value": "anim-bottom-right",
    "options":{
      "anim-bottom-right":"Bottom Right",
      "anim-bottom-left":"Bottom Left",
      "anim-top-right":"Top Right",
      "anim-top-left":"Top Left"
    },
    "group": "Global settings"
  }
elfin arch
#

ya; i was thinking the "fields" option" ... i need to play with the alert box box. i get the basics, but not the complex

#

ya. didn't realize that was a thing.

#

🀣 ... the reason i posted that first condensed code was to help with the "custom CSS" thing ... basically put all vars/divIDs in there commented out

viral patrol
#

And the reason I posted is to encourage a conversation about that, so besides you are helping, you are getting something in exchange too πŸ˜‰

elfin arch
#

and i want to thank you for your help πŸ’―

heady orchid
#

Hello everyone, everything good? Hope so! I was looking to make a custom live chat widget using the open source that streamelements made available on Github. But I suck at JS ... I was wondering if anyone knows how to guide me what I do to make the chat overlay more or less like this:

  • The nickname and insignia in a box above the person's message.
  • The text size message box.
    An example:
elfin arch
#

what source are you using from Github?and ya; you are in luck no JS needed .... just CSS 😬

heady orchid
elfin arch
#

ya.... i think? look at .user-box

heady orchid
#

ya.... i think? look at .user-box
@elfin arch Sorry for the delay in responding. I see it here, and I am managing to make these changes. Now ... there are 2 other points I wanted to talk about. I didn't want the messages to come from top to bottom, but from bottom to top ... while I'm doing some tests on the css here, can you tell me how I can do this?

viral patrol
#

The think you should create is a user row in CSS which will be able to display all text, no matter how long it is

#

Then you update CSS and if you need JS too: https://github.com/StreamElements/widgets/blob/master/CustomChat/widget.js#L197
There are 3 classes by default:

  1. message-row - it is a message container
  2. user-box it is a box for badges and username
  3. user-message - box containing user message
#

To make something like that you may want to set user-box to display:block;margin-left:15px; margin-top:10px; background: #1d6178; and user-message to display:block; margin-top:-10px; background: #ffffff

elfin arch
#

^^ πŸ’― (that's from the widget dev)

heady orchid
#

Wow, thank you, really! My path went from 10% to 100% in less than 10 minutes! I will "play" here with the changes to get what I want. Thank you! @elfin arch @viral patrol

zenith fossil
tardy abyss
#

Hi could someone with knowledge of css please dm me i really need help with something

static lintel
#

hello there... is it just me or does item redemption emulation throw an error for others as well? tried with the default custom widget as well and it throws the same error...

Uncaught TypeError: Cannot read property 'indexOf' of undefined at VM4954 about:srcdoc:24

the error is being thrown from here:


function bindEvent(element, eventName, eventHandler) {
        if (element.addEventListener) {
            element.addEventListener(eventName, eventHandler, false);
        } else if (element.attachEvent) {
            element.attachEvent('on' + eventName, eventHandler);
        }
    }

bindEvent(window, 'message', function (event) {
  const data = event.data;
  if (data.listener && SE_API.responses[data.listener]) {
    if (data.error) {
      SE_API.responses[data.listener].reject(data.error);
    } else {
      SE_API.responses[data.listener].resolve(data.result);
    }
    return;
  }

  if (data.listener.indexOf('resp_') === 0) { // error
    return;
  }

the store redemption widget works however the custom widget doesnt... not even with the default javascript...

heady orchid
#

With the help and assistance of both of you( @elfin arch @viral patrol ), I arrived at the result I wanted. But there is a catch ... I tried some things in the css so that the background is compact the size of the internal text, but I was not successful. When the text is too long it simply ignores the line break and eats part of it at the right of the conainer. Would any of you know how to guide me on this point?

viral patrol
#

word-break CSS property

heady orchid
#

word-break CSS property
@viral patrol NICE! And this case? πŸ‘‡

#

it seems that when the message is smaller than the nickname box it keeps the size on the right side. I'm trying to understand what might be interfering with this ... if you have any assumptions.

viral patrol
#

I think this might be something with width:100%

arctic tiger
#

Hey guys, is there a event to check if a field is true or false to reload the widget?

#

@heady orchid what do you want to do?

heady orchid
#

I think this might be something with width:100%
@viral patrol I really looked a lot and made some changes and it really didn't work ... then I later "break my head more" to try to understand why this is happening. And anything I call you, if you can ...

arctic tiger
#

@heady orchid what should be the size of the box if it's smaller as the nick?

heady orchid
#

@heady orchid what should be the size of the box if it's smaller as the nick?
@arctic tiger The size of the internal text

arctic tiger
#

can you post the css of the box?

heady orchid
#

.user-box and .user-message?

#

okay

arctic tiger
#

yeah

heady orchid
#
    display:inline;
    width:block; 
    margin-left:35px; 
    margin-top: 0px;
    padding-bottom: 5px;
    padding-left: 10px;
    padding-right: 10px;
    padding-top: 10px;
    border-top-left-radius: 15px;
    border-bottom-left-radius: 15px; 
    border-top-right-radius: 15px; 
    border-bottom-right-radius: 15px;
    background: #082d6d;
    font-size:18px;


.user-message{
    display:block;
    width:block; 
    background-color:#F2F2F2;
    border-style: solid;
    border-width: 2px;
    margin-left:15px; 
    margin-top:-2px; 
    padding-bottom: 10px;
    padding-left: 10px;
    padding-right: 10px;
    padding-top: 10px;
    border-top-left-radius: 5px;
    border-bottom-left-radius: 5px;
    border-top-right-radius: 5px;
    border-bottom-right-radius: 25px;
    font-size:20px;
    word-wrap: break-word;

@arctic tiger

arctic tiger
#

try display: inline-block on the user-message.

#

maybe it has also to do with the alignment of the parent div

#

that there is a min-width or something.

heady orchid
#

try display: inline-block on the user-message.
@arctic tiger sorry for the delay. I was serving a customer here! So ... inline-block was like this:

#

xD

arctic tiger
#

whats that? width:block;

heady orchid
arctic tiger
#

try that to set on max-content

#

didnt see width: block; before.

#

width: max-content;

heady orchid
#

OOOOOOOOOOOOOOOOOOOH

#

@arctic tiger it worked, but it didn't.... rsrsrs

#

I put max-width: max-content; and it worked

arctic tiger
#

so did it work?

#

or is the screenshot the result with max-content? @heady orchid

heady orchid
#

yessss ❀️

#

Thank you !

arctic tiger
#

No Problem. But you solved it for your self πŸ˜„

rare loom
#

So I have been working on a Counter for 1 v 1 battles and I need to make the buttons edit/decrease the count. But I can't figure out how to target the widget and change the values. Any suggestions? It's looking something like this.

arctic tiger
#

"how to target the widget and change" what do you mean by that?

rare loom
#

So The buttons on the left "left stock" "right stock" should change the values on the right where the number "2" is

#

I used the code from the github, but not sure how to target the button.

window.addEventListener('onEventReceived', function (obj) {
    const data = obj.detail.event;
        if (data.listener === 'widget-button') {
            if (data.field==='chat' && data.value==='First Message'){
                const emulated = new CustomEvent("onEventReceived", {
                        detail: {
                            "listener": "message",
                            event: {
                                data: {
                                    text: "Example message!",
                                    displayName: "StreamElements"
                                }
                            }
                        }
                    
                });
                window.dispatchEvent(emulated);
            }
        }
});```
#

The example given is addressing chat.

rare loom
#

Well I guess no-one understand what I'm asking about.

elfin arch
#

what are the fields for your buttons?

#

might want to use switch() for each button @rare loom; but basically ```js
window.addEventListener('onEventReceived', function(obj) {
const data = obj.detail.event;
if(data.listener === 'widget-button') {
console.log('Button Pressed!');
if(data.field === 'button1') {
//do something when button named button1 is Pressed
}
}
});

acoustic mantle
#

any idea how to get a "last tweet" url? Id love !retweet command, that brings up the last thing i tweeted

hardy walrus
#

@acoustic mantle hold my 🍺 while I do some digging.

acoustic mantle
#

might drink some, hope that's ok

hardy walrus
#

${customapi.https://decapi.me/twitter/latest/yourtwitternamehere?no_rts}

#

Replace the obvious information.

arctic tiger
#

@rare loom if you need true or false as return you could use a dropdown as well

gentle forum
#

hi!
i wanted to have a widget that let's you have a subgoal with the bar updating the current subpoints (or subs if subpoints aren't possible)
does anyone have something like that?

velvet cave
gentle forum
#

thank you @velvet cave

tardy abyss
#

Mmh see when you make an overlay on streamelements and you want to send it to someone for when they click on it and it downloads how would you go about that?

viral patrol
#

The feature of overlay share is enabled for professional overlay creators and Code Gurus due to safety concerns.

latent gulch
#

Are Loyalty Point events emitted from the Socket API?

viral patrol
#

As points are updated in bulks and that would cause a big chunk of data emitted via sockets

latent gulch
#

I see, that including the Loyalty Point Redemptions, right?

viral patrol
#

Redemptions (stream store redemptions) may be emitted but I am not 100% sure about that. Spending on commands, subtraction via API are not emitted for sure.

latent gulch
#

Thanks for the answer. I'll check the scheme again

#

Judging by the scheme, I believe redemptions aren't emitted

...
    "type": {
        "enum": [
            "cheer",
            "follow",
            "host",
            "raid",
            "subscriber",
            "tip"
        ],
        "description": "Event type"
    },
...
past heron
#

I don't know if this is the right place to ask, but:
How long does it normally take to get feedback on community widget submissions?

tropic finch
#

I don't know if this is the right place to ask, but:
How long does it normally take to get feedback on community widget submissions?
@past heron no ETA, i have one too waiting to publish ;-;

rare loom
#

@arctic tiger @elfin arch Thanks fro the help. I had given up for a while. And just got back. I think I got it to work. But then again thanks .
After gong back and forth on the documentation I was able to get it to work. It's not as clear, tho.

I ended up doing it with a switch.

window.addEventListener('onEventReceived', function(obj) {
  const fieldData = obj.detail.fieldData;  
  const data = obj.detail.event;
        if (data.listener === 'widget-button') {
          switch (data.field) {
            case 'optionOne':
              break;
            case 'optionTwo':
              break;
              }
        }
});
#

Is there a way to have an external button to control these instead of opening the overlay to press the button? something I could load in OBS.live or OBS to press it externally. Also to fill the fields from outside the overlay editor.

arctic tiger
#

might want to use switch() for each button @rare loom; but basically ```js
window.addEventListener('onEventReceived', function(obj) {
const data = obj.detail.event;
if(data.listener === 'widget-button') {
console.log('Button Pressed!');
if(data.field === 'button1') {
//do something when button named button1 is Pressed
}
}
});

@elfin arch @rare loom

#

and then set a local var to store a state with you.

rare loom
#

Is that to answer my second question?

#

I got the button to work while I'm in the overlay Editor. @arctic tiger
I press the button and it does the instruction. IT was like charm. Thanks

Is there a away I can have buttons shown on OBS.Live to send buttonclick externally?

arctic tiger
#

yeah it is

#

no you cant click buttons in browser source

#

as fare as i know

rare loom
#

Is there like APIs to connect externally?

#

Or controlled by a chat command?

#

Just curious.

#

But then again, just letting you know all you have helped me with has been gold!

quasi dune
#

Having a question, is it possible to create a command that users will redeem points and then makes an external HTTP call ? Thanks in advance.

fallow vortex
#

Hello there, I'm having some issues with the Event Rotator widget (CO6Studio). I cannot figure out why is not showing in my live stream, it's only working in the preview. Any ideas? thanks

viral patrol
#

@quasi dune You can use ${customapi URL} as command response and set that command's cost.

quasi dune
#

@viral patrol thanks for the response.

long tinsel
#

Hello, i know many people ask about that, but if someone have a wish and time, pls tell me how to make something like this. I'm new in html/css/js, learning it, but need to know how to make it from and to.Want to make my stream awesome and make it 4 others.Thanks in advance https://www.youtube.com/watch?v=phHCTVztsxs https://www.youtube.com/watch?v=BXS_JcXQb8w https://www.youtube.com/watch?v=lZ8jwWETIz8

Get this overlay .....β–Ί https://goo.gl/R77tT3
Check out the read me file .....β–Ί https://goo.gl/wRzPrR

Retrowave overlay and stream package is now available! Support for Twitch, YouTube Gaming, Mixer, and Facebook live streaming.

What’s cooler than the 80s? Well, lots of thin...

β–Ά Play video

Get Interface Here .....β–Ί https://nerdordie.com/product/interface-stream-package/

Interface is the product of a dark dystopian future. In collaboration with Twaz, we have created this cyber punk inspired stream package for streamers who want a clean, animated retro-futurism a...

β–Ά Play video

Make a splash. Presenting β€˜Riptide’. A sun-soaked, summery design for streamers on #Twitch, Mixer, YouTube, and Facebook Gaming.

Animated overlays and stream templates, designed for beach bums and energetic, upbeat broadcasters. Psychadelic colors, waves, & graffiti patterns...

β–Ά Play video
static lintel
#

hello there... is it just me or does item redemption emulation throw an error for others as well? tried with the default custom widget as well and it throws the same error...

Uncaught TypeError: Cannot read property 'indexOf' of undefined at VM4954 about:srcdoc:24

the error is being thrown from here:


function bindEvent(element, eventName, eventHandler) {
        if (element.addEventListener) {
            element.addEventListener(eventName, eventHandler, false);
        } else if (element.attachEvent) {
            element.attachEvent('on' + eventName, eventHandler);
        }
    }

bindEvent(window, 'message', function (event) {
  const data = event.data;
  if (data.listener && SE_API.responses[data.listener]) {
    if (data.error) {
      SE_API.responses[data.listener].reject(data.error);
    } else {
      SE_API.responses[data.listener].resolve(data.result);
    }
    return;
  }

  if (data.listener.indexOf('resp_') === 0) { // error
    return;
  }

the store redemption widget works however the custom widget doesnt... not even with the default javascript...

outer oasis
#

hello everyone, is it hard to set a command so that the text auto changes line so it doesnt cross the image

steady iron
#

well, HTML doesn't know it has to do that unless you tell it. Is the image always going to be the same size ad same place?

#

YOu can do different things, like placing the image and the text in different containers, so the text will stay in its container, which you can place in a way that will not interfere with the image

elfin arch
#

i can take a look at it for ya @pulsar willow ... show an example of how to get it to show hide between the commands

#

sure. i'll take a look. give me a few minutes

elfin arch
#

go with this in the CSS: ```css
#container {
background-image: url({background});
background-repeat: no-repeat; /* Ensure that background does not repeat /
background-position: center; /
Ensure image is centred /
background-size: contain;
width: calc({{wheelSize}}px + 160px); /
Width and height should at least be the same as the canvas */
height: calc({{wheelSize}}px + 160px);
opacity: 0;
}

#canvas{
top:80px;
left:80px;
position:relative;
}

.show {
animation: fadein 1s forwards;
}
.hide {
animation: fadeout 1s forwards;
}
@keyframes fadein {
from {opacity: 0;}
to {opacity: 1;}
}
@keyframes fadeout {
from {opacity: 1;}
to {opacity: 0;}
}

#

Add this into the JS tab```js
$("#container").removeClass("show").addClass("hide");

on lines 34 & 64
and add this on line 143 ```js
$("#container").removeClass( "hide").addClass("show");
#

I also just doubled the cooldown between rounds (so it will stay on the screen for the same amount of time it spins). should work 🀞 @pulsar willow

#

🀣

#

yup yup.

#

well post it here πŸ™‚ depends on who is online at the time

#

Thanks. have a good night and happy streaming πŸ™‚

viral patrol
#

@long tinsel The easiest way is to check #widget-share channel, Themes gallery in StreamElements, so you can find some ideas that you can alter to fit your needs.

long tinsel
#

Okay thx @viral patrol

outer oasis
#

@steady iron the image willl always be the same

#

But some nicknames are very big, do you know if its hard to set that?

#

And if not, could you help me?

elder dragon
#

obj.detail.session.data doesn't have the session stuff anymore

viral patrol
#

As I see on your screen it contains session data.

elder dragon
#

I mean the stars-session follower-session share-session etc

viral patrol
#

Oh. If session does not have a specific value it is not set instead of 0 as value, but I am not sure

elder dragon
#

Is there a way to emulate it?

viral patrol
elder dragon
#

Thanks

#

Something i found in the session data tab, this is for facebook. The stars data doesn't have a count and amount input. Only top Stars and Top Stars Donator

#

And theres a line going trough it

viral patrol
#

Reporting that to devs. Thanks

arctic tiger
#

you can set it up there? lol didnt know that, thanks for the tip!

elder dragon
#

πŸ‘

viral patrol
#

Saving values there will emit onSessionUpdate

glad urchin
#

Is there a way to access chat through python scripting in OBS directly? (Without using twitch irc)

rare loom
#

Hello there, I'm having some issues with the Event Rotator widget (CO6Studio). I cannot figure out why is not showing in my live stream, it's only working in the preview. Any ideas? thanks
@fallow vortex Change the resolution.

viral patrol
rare loom
#

@viral patrol I noticed you shared a obs-websocket that means we can control actions/button outside of StreamElements editor? I might try to link it to a StreamDeck.

rare loom
#

Would you recommend multiple browser sources in OBS and get the different overlays from SE... Or set all overalys in one main Overlay from SE and just add 1 Browser Source on OBS?

elfin arch
#

take a look at the http://dougtesting.net/winwheel/docs/tut14_setting_the_prize in the docs lx sent you @pulsar willow
in that first example there is a stopAt ```js
let stopAt = (91 + Math.floor((Math.random() * 43)))

Basically; in that wheel example each piece is 45ΒΊ separated. So, if you want to say NOT have the 1st piece included, you would want ```js
let stopAt = (46 + Math.floor((Math.random() * (360-46) )));
``` with the above, the wheel should only stop between 46ΒΊ & 359ΒΊ
hardy walrus
#

@rare loom Certain circumstances might require multiple overlays depending on your scene designs or if you need something heard but not seen. All depends on your needs.

rare loom
#

Btw, your name is dangerous @hardy walrus

elfin arch
#

yup exactly!. ... that 1 extra degree is for like a visual to make sure it's not a split πŸ˜‰

steady iron
mossy zealot
#

when i use the CSS Editor it always show the dolphin, I want to chance that, maybe using the html feature, but where i can find the videos i upload?

elfin arch
#

you want to add a field in the field tab to set the image/video

#

something like this ```json
"thisisimage1": {
"type": "image-input",
"label": "I am image number 1!",
"value": ""
},

then when you go the the fields you see a "I am image number 1" .... in the HTML/CSS anywhere you put `{{thisisimage1}}` will be replaced with that image
mossy zealot
#

i'll try that, thanks

outer oasis
#

Nice @steady iron. Thank you very much

steady iron
#

It has an example that includes code, that should make it easier to take and adapt to what you are doing, let me know if you have trouble!

static lintel
elfin arch
#

i need to check out soon @static lintel but can you post the js code in the widget from that area? have you accidently mutated data?

#

add a console.log(data.listener) there in the line 20

static lintel
#

@elfin arch the code in the top side of the dev tools is not written by myself. it is streamelements code. all i did was i simply added a custom widget and emulated an item redemption, without changing anything in the default code that comes with it when you add it. it doesnt get to the client code at all.

elfin arch
#

you changed nothing in the default custom widget and get that error?

static lintel
#

yes, that is right

elfin arch
#

give me a sec; i'll fire up an empty overlay. are you using Chrome?

static lintel
#

yes chrome 83

elfin arch
#

yup yup. same error

static lintel
#

tried it in incognito and gives the same error... was thinking it was maybe an extension or something...

elfin arch
#

my guess is that the custom widget isn't coded for the redemtions

#

...haha and looking at the code it is in there 🀣

static lintel
#

yeah there is a hack in the default code for it even...

elfin arch
#

you are right πŸ’― ..... the redemption emulate breaks ... now to figure out why or a solution ...

#

i'm not sure why; and i don't have a solution... but anything i test with the custom widget breaks it πŸ€” .... i'll pass it along for a red name Dev to look into.

static lintel
#

tyvm

broken coyote
#

ive always done it like this

#
} else if (event.listener === 'redemption-latest') {
        if (includeRedemptions) {
            addEvent('redemption', 'Redeemed', event.event.name);
        }```
static lintel
#

@broken coyote it never gets to the client code... it errors out before that...

broken coyote
#

im not sure one what your working with. thats just how i grab redemption info

static lintel
#

if you add a custom widget and emulate an item redemption

broken coyote
#

thats what i use it for

#

i use it for event lists

viral patrol
#

Yes, but the error above is caused in initial Custom Widget handler. It should not affect custom widgets functionality, but it doesn't look nice in console πŸ™‚

static lintel
#

the thing is that since it errors out it never reaches the client code so it doesnt trigger any animation or anything... not necessarily the console log is the problem cuz that nobody will see

#

and as far as i noticed it happens only for the onEventReceived event... for the onWidgetLoad event it seems to work just fine

static lintel
#

actually that is not entirely true either... cuz i just had a redemption on my stream today and it is not showing up with the default custom widget... however with the onWidgetLoad event it doesnt error out...

viral patrol
#

Huh. I forwarded that issue before weekend. I am sure that we will have somebody from almighty devteam coming with fix really soon. I will do my best to motivate them (including "I will start singing until you fix that")

static lintel
#

oh geesh... im so sorry for those guys then... πŸ˜› πŸ˜„

viral patrol
#

OK. Seems that they were too afraid of me singing. Fixed πŸ˜‰

hexed ridge
#

i know there are badges for subs, vip and mod. but is there a special badge type for the founders?

#

meaning if they count towards subs or if they are sent as another badgetype in the event data

glad urchin
#

@viral patrol I’m looking through the documents on that web-socket api for OBS, not seeing methods for pulling data from chat. My current script runs as a custom widget, it uses obs-websockets to communicate with OBS and then uses the web events to read chat. I’d like to take this solution out of the custom widget and run it directly in OBS as a python script. The OBS scene commands and such are no problem for me, but I cannot figure out how to pull the chat data without using something like twitch-irc. I was hoping this data could be accessed through OBS since OBS connects chat to my channel.

viral patrol
#

We are not re-emitting Twitch events via our websocket.

glad urchin
#

Do you know of any method to monitor these events through a local script?

viral patrol
#

Huh. The only thing I could think of is using IRC client/tmi.js

elder dragon
#

So for some reasion using {{compiledMessage}} doesn't show any text. Event when there should be. This is on a youtube account.

#

Am i doing something clearly wrong?

#

Using {name} or any other predefined variable doesn't work inside the js. If i switch to not use css it works fine.

tall pike
#

Anybody knows if there's a chat command that takes the name of all the first chatters on twitch?

solid holly
#

hello devs! Question: is there a way to show currently playing track on obs? what i mean is that ive used text file as source so far (nightbot output text file) and then on obs (text source - local file etc)

#

but i would like to use streamelements songrequest feature instead of nightbots one

tropic finch
#

SE songrequest has a widget to show currently playing song @solid holly

viral patrol
#

@elder dragon There was a change which was not on github yet (mb). {message} is HTML, {messageRaw} is plaintext

elder dragon
#

Ah okay thanks

hexed ridge
#

are there other badge tyoes then subscriber, vips and moderators? and what are the names of those?
(btw is there a documentation for for example the session data?)

elfin arch
#

for Twitch .... yes a bunch

#

....they are the badges in chat .... so like maybe 100 different ones

hexed ridge
#

hmm but some got the same type correct? like all sub badges count as subscriber? cause i have the feeling that the founder badge doesnt count as subscriber

elfin arch
elder dragon
#

@viral patrol Tested it and {messageRaw} returns undefined

#

and {message} still returns nothing

elfin arch
#

there should be a different badge for 'founder' badge (but only if the chatter has that displayed as an option) @hexed ridge

hexed ridge
#

okay will try that then :) thanks

fickle iron
#

Is it possible to make a !yoink command which steals 25 points from one random chatter and gives it to the guys who wrote the command?

elfin arch
#

i don't believe so @fickle iron; at least with the built in command variables. best bet would be like the !duel system

fickle iron
#

@elfin arch ok thank you SmileW

broken coyote
elder dragon
#

Why it not work with me then :(

#

Console.log also doesn’t work for me

#

I am working as an editor on someone else’s account which is a youtube account

#

But not sure if that changes anything

#

{name} {amount} {tier} do work

next radish
#

hey guys, is there anyway i can find the full code for the current alert box? I want everything for it minus the alert duration as I want each alert to infinitely loop till the next alert is triggered

viral patrol
next radish
#

awesome will give it a try, just seeing how easy it is to make it seems like alerts are permanently affecting the overlay, and that looped animation in between the 2 seems to be the play

#

sort of like on streamlabs when you accidentaly dont have an animate out and it infinately loops till the next alert is triggered

next radish
#

ok JS is still way over my head! Is there anyone I can commission to make such a widget, can't seem to see anyone on the Marketplace that does widget coding? It's basically just an alertbox that can take looped WebM's that don't have an end timer. Each new alert replaces the old alert.

white tartan
#

hey everyone i have a question is it possible to set filter: hue-rotate random ?

#

{
"type": "follower",
"amount": 0,
"colors": {
"hue-rotate": "0deg",
"saturate":2,
}

I Have this and i want to have a random number 0-360deg for hue-rotate

#

is it possible ?

tiny valve
#

Hi there!
I tried to remove song from media request queue and got an error: {"statusCode":500,"error":"Internal Server Error","message":"An internal server error occurred"}
Any ideas?

red sequoia
#

Hi where can I find the JWT

#

I'm in my channels dashboard

#

but I don't see a "show secrets" toggle

woven zinc
#

or click your username at the top right in your SE dashboard

red sequoia
#

ty

#

how can I make a custom alert that I trigger with requests. If anyone has seem the shadow raid legends alert that is what I'm going for

#

where there is some kind of hook or callback that triggers it

tribal zenith
#

I am getting a CORS error on StreamElements own CDN (image-input) when trying to load an image..is this a known temporary outage or am I missing something?

red sequoia
#

there is a lot of options but I'm not sure which one to go for

mild cipher
#

Static/Custom > Custom Widget FeelsHackerMans

red sequoia
#

cool ty

#

and then which part of the documentation do I reference to trigger it

mild cipher
#

What sort of requests?

#

Where will you trigger it from

red sequoia
#

from a python module

#

okay basically whenever I launch a Twitter giveaway I want to kick off a notification on stream

#

So I have created the custom widget... but how do I access it

mild cipher
#

It's a blank canvas, it's up to you to provide the connection. You could use socket.io to provide the connection between the custom widget and your server

red sequoia
#

I mean where would I send the requests

#

oh wait I see the overlay ID

#

in the url

tribal zenith
#

you would need a socket server otherwise

red sequoia
#

okay I guess I'll need to go with a socket then thank you

tribal zenith
#

well, I never used the Kappa-API before so I am not sure what action refers to

red sequoia
#

gotcha

mild cipher
#

I think that endpoint is for editing an overlay through the API

#

It wouldn't be possible to target a custom widget in any case. A potential workaround might be to use the alertbox/redemption widget instead. Set up a redemption item with the notification you want, then POST a request to redeem the item or something like that

red sequoia
#

oh interesting

#

thank you

high swallowBOT
#

@pulsar willow You can find your JWT token on your account channels page ("Show Secrets" to reveal the token): https://streamelements.com/dashboard/account/channels
READ ME:
This is a private security token. Do NOT share this token here or other public places, only with a StreamElements staff member in private.

viral patrol
graceful pine
#

How do I delete a channel in Streamlabs (x box)

velvet cave
#

hey @graceful pine be sure to ask around in the #dreamteam and do note, that you're asking a slobs related question

graceful pine
#

tx

frosty socket
#

Hello! I recently moved to twitch from mixer and i previously used streamelements for all my alerts. How can I use all my alerts that i currently have with my mixer account and sync it with twitch? I logged in separately with my twitch account to streamelements and i cant use the import feature. I tried to add the twitch account alongside my mixer and i get a message reading that the twitch account is already in use. what can I do?

high swallowBOT
#

Account Merging - Please note:

  • Merging accounts only allows faster ways to switch between accounts
  • Merging accounts does not allow data sharing between accounts - different streaming platforms, different type of events
  • Merging accounts allows duplicating/sharing overlays between the accounts
    If you understand the limitations of merging and want to proceed, please find the JWT tokens (!jwt) from both accounts you want to merge and you will be directed to DM them to a staff member.
#

@frosty socket You can find your JWT token on your account channels page ("Show Secrets" to reveal the token): https://streamelements.com/dashboard/account/channels
READ ME:
This is a private security token. Do NOT share this token here or other public places, only with a StreamElements staff member in private.

frosty socket
#

Thank you!

late copper
#

On deck

warped cobalt
#

how do i use elements for youtube and twitch at the same time

#

@everyone

vernal hare
#

Can I use the same tipping link for more than one platform and still get alerts?

tropic finch
#

yes @vernal hare

vernal hare
#

how do I do so? my fb SE made another link for me

#

bear with me I'm new to this ;s

tropic finch
#

just use the same link for all platforms

#

as the tipping website is in SE domain

#

there isn't any problem with it, the alerts will work just fine

vernal hare
#

Thank you!

glacial forge
#

Any backend devs that are able to help edit pre-made widgets and goal event lists? Please DM me

viral patrol
#

You don't need backend devs to prepare your own goal/event list widget. We got it covered both on our github or #widget-share channel.

glacial forge
#

@viral patrol I need it custom made, fusion of a couple together, that's why I specified "edit"

#

Its just not 1 I am looking at doing, thanks though

viral patrol
glacial forge
#

@viral patrol Tried that

#

No one available for me, thanks for your help πŸ™‚

#

Most of them specialise in animation screens, however, not in coding and knowledge there of streamlements, you either have people who have knowledge with coding or of streamelements yet not both

#

Its a difficult combination to find

native trellis
#

What about @simple wraith ?

simple wraith
#

I'm more of an; i can help with your idea and make it look pretty - kind of guy..

glacial forge
#

@native trellis @simple wraith Thank you to you both πŸ™‚ I do need coding done it to though since it will be amalgamation of two widgets to get the ideal one, plus there will be some graphical changes as well

#

Fiverr is a really horrible place to find a coder specialised in StreamElements, I highly advise against searching for such on there, I have so many people reply to my ads that are not compotent in both and/or just want the money, its very draining

glossy dock
#

Hello, I have been working on figuring out Grot's Credit roll all week. I think I've made some progress. I can get it to work just fine, but only AFTER I end the stream. I'm very confused as to why it won't update while the stream is live. Does it have something to do with my session data? Do I need to have launchpad or something running?

The strange thing to me is that in my overlay editor it shows the names of recent subs/follows, etc. It just won't show in OBS or on stream unless I stop the stream. Any help is appreciated, feel free to DM me since my post will likely get lost in here.

static wedge
#

Hey everybody πŸ™‚ exists an overview about all "types" in custom "fields/json" ?

rugged rapids
#

Check channel header for Overlay Editor documentation.

static wedge
#

@rugged rapids ty πŸ™‚

stiff rock
#

question how many request lamit to request custom donation alerts?

just that 1 people other server thinking adding his Crypto donation platform with SE alerts and not sure cap can do send as queue.

i already found out streamlabs 1 but im after your guys 1 next

cosmic sorrel
#

Hello! I am wanting to switch to streamelements but I can't loop my alert animations to lengthen them to the sound alerts. Is there a solution here?

tropic finch
#

Hello! I am wanting to switch to streamelements but I can't loop my alert animations to lengthen them to the sound alerts. Is there a solution here?
@cosmic sorrel manual looping using a video edit software is the best way to precisely match video+audio

cosmic sorrel
#

Okay thank you!

steady iron
#

@static wedge the documentation is on the description of this channel

gilded lotus
#

Hi! I complete the form to get a Token some days ago, are they being processed?

static wedge
#

@steady iron thank you so much πŸ‘ πŸ™‚ got it

rugged rapids
#

@gilded lotus
Access to OAuth2 is granted in batches from what I know, so it can take between few minutes and 2 weeks (it depends when previous batch was granted access).

stiff rock
#

did no one got me back my message yesterday?

gilded lotus
#

@rugged rapids ohh! thanks!! I will wait

swift jasper
#

is there a way to speak directly to the developers?

#

I truly need a way to show that someone specifically RESUBSCRIBED with a TIER 2, not only one of them

#

I wonder how hard it can be to add multiple conditions

glacial forge
#

Is anyone here perhaps able to identify what pre-made widget/goal list this is from, I saw a streamer with it, however they were end stream so I couldn't ask. Thanks

steady iron
#

That looks like the Last Event Rotator By CO6STUDIOS

#

@glacial forge

gloomy stump
#

Hey there! I have a question. Is it possible to have a chat command that creates a chain of multiple responses? Like if I have stuff to put in chat but it's too long for one response, so I split it into 2 and have them automatically appear in chat one after the other with the use of the command.

elfin arch
#

Not natively with the chat commands, but it is possible with a custom widget pretty easy.

gloomy stump
#

Are there custom widgets for that already available?

elfin arch
#

Give me a minute and i'll post some code for an example

#

πŸ™‚

#

make a new 'custom widget' on one of the overlays that will be active when you want to use the command and delete the code in all of the tabs.

#

then put this in the JS tab ```js

const commandName = '!socials', //chat command
jebaitedAPIToken = 'jebaitedAPIToken', //Go here and get a botSay token: https://jebaited.net/
responses = [
'You better be following me here Kappa',
'Youtube: youtubeName',
'Twitter: twitterName', //...etc
],
delay = 5; //second delay between messages

window.addEventListener('onEventReceived', function(obj) {
if (obj.detail.listener === "message") {
if (obj.detail.event.data.text === commandName && obj.detail.event.data.badges.some(i => i.type === 'broadcaster')) {
responses.forEach((response,index) => setTimeout(() => sayMessage(response), (delay<0.5?0.5:delay)index1000));
};
};
});

const sayMessage = (message) => {
if (jebaitedAPIToken.length !== 24) {
console.log('API Token is not correct')
return;
};
fetch(https://api.jebaited.net/botMsg/${jebaitedAPIToken}/,
{
method: 'post',
body: JSON.stringify({"message": message})
})
.catch(e => console.error(Error sending message to chat));
};

*updated sayMessage to 'post'
#

let me know if you have any issues @gloomy stump but should work for you as well 🀞

gloomy stump
#

@elfin arch Awesome!! Thanks πŸ˜„

quasi dune
#

Have a question, I am using customapi in the commands, is it possible to ignore the answer returned from HTTP?

#

And is there any possibility to group commands and having a global cooldown for that group of commands?

pulsar willow
#

When attempting to change the font size on MrBoost's Chat Widget, it will not change at all and is stuck on the current font size. Not even adding a line of CSS Code wont fix it.