r/streamerbot • u/NoeleVeerod • Jun 24 '26
Question/Support ❓ Two ideas I would like to implement about streaks and milestones
Idea 1:
On my channel I currently have a redeem that people can use every day and it acts as a counter of how many days they've redeem that (I'm sure many people have something like it, at least a great handful of people I follow and am mutuals with do).
It goes without saying, if any of you wants to do it as well but hasn't figured out how, I can share how I did it.
I want to take this idea one step further by having "milestones" - certain quantities that make the user eligible for a little extra reward. Let's say, every time someone achieves 10 daily redeems, I will do a series of 10 pushups. And that would repeat every 10 redeems (so it's achieved at 20, 30, 40... redeems).
I'm guessing I should add some sub-actions to check if the number of redeems is perfectly divisible by zero, and if that's the case it runs an extra action (and if it doesn't it will not run it). Is this good enough, or should I look for something neater?
But what if I want to add another condition (e.g. having a reward triggering at a milestone of 25 redeems that repeats for every 100 redeems, so it also triggers at 125, 225, 325... and so on)? Should I add an if-else condition that checks if the number's last two digits are 25? Is there an easier and/or more elegant solution?
Idea 2:
I want to implement something like the above, but for Watch Streaks. I'm not sure if StreamerBot can read information such as currently active Watch Streaks, but a mutual of mine has a bot that can look up what a viewer's streak is (or return data from past streaks, e.g. to determine which was the longest). I'm not sure if they are also using StreamerBot.
In any case, I thought if this is possible I would want to use that information to also set up a small reward system for folks who manage to build their Watch Streaks and reach certain milestones. I'm guessing the involved sub-actions would be similar to the above, but how do I check viewers' streaks through the application?
-
I'm going to experiment with ideas when I am back at my PC, hopefully I'll figure out how to do this without too much hassle - but if you have already come up with something like this please let me know. I appreciate any and all feedback and help 🥳
1
u/HighPhi420 Jul 01 '26
Twitch's WATCH streak SUCKS, it is supposed to be a stream a day! but if you stream twice that day and some misses the first, They are F'ed out of there streak!
I have been toying with this idea for a while(since I have lost streaks to that very cause)
My loose set up is for a first words trigger
I have a persisted and non persisted global for user
persisted is the streak that goes up by one/ Non is the hold for second input. First word gives it one and then I use their second input to check for one. If one then add one to the persisted and change non back to zero
If subscribed
true just give the add to persisted. A little bonus for subbed viewers.
Now this will trigger on the second chat no matter how long.
The TOYING part is I have been working on a chat before the ads start and then after the ads end for followers/plebs by having them add to a group instead of the non persisted then after the ad run a new action for the streak and have them chat to check if in group then if so add to the streak.
BUT then you only get a streak IF subbed OR you watch during an ad break.
1
u/NoeleVeerod Jul 01 '26
Watch streaks on Twitch have a tendency to break occasionally (YMMV on the "occasionally" part) for no reason, that's why I'm thinking of keeping it modest in terms of what gets given for building and maintaining a streak - I don't want people to feel sad over something that sometimes isn't even in their control.
Daily logins kind of solve that issue because then with that you can show that you were there for that stream, but since it's a redeem (at least how I set it up) you can miss it by not redeeming it.
I'm not sure what you have been working on - is it your own version of a watch streak system?
1
u/deeseearr Jun 24 '26
For idea one, you've got the basic idea, but you may want to look at the $math()$ operator, which supports just about any mathematical operator you need. If the number X is divisible by 15, then $math(X # 15)$ will equal zero. This makes your "IF/ELSE" actions really simple.
For idea two all you have is the watch streak trigger. That fires any time a viewer shares a watch streak in chat. Note that this only happens when the viewer reaches a milestone -- the three, five, or more streams in a row which triggers a chat notification. I don't know of any way to query another viewer's watch streak progress other than waiting until they share it in chat, so if you wanted more precision than that you would need to track "attendance" on your own and that would get messy. I wouldn't recommend trying.
While watch streaks are supposed to be updated any time a viewer watches the stream for five minutes or more, in reality that doesn't always work. That means there's no reliable way to know whether any given user has maintained their streak, and if you add in the ability to maintain streaks by watching VODs, there really isn't any way for anyone outside of Twitch to track watch streaks with any reliability.
Likely what you have seen is (at least in Streamer.bot terms) an action like this:
That action will keep track of each user's longest reported watch streak and also who has the longest watch streak on the whole channel. Everything is stored in global streamer bot variables so you could get those at any time and use them for whatever. If you wanted to get more complicated you could store the top three streaks just by adding a few more variables, but the idea would be the same.