Well you can simply add up the points as each event happens to one master file that you would then wipe clear whenever you wanted.
Create a new folder in your "custom logs" folder and name it "Goal". Then inside, create the following text files:
- TotalScore.txt - leave empty, this will add up the total score.
- FollowerScore.txt - Save the content of this to how many points you want to add whenever someone follows. So in your case that would be 1.
- SubScore.txt - Save the content of this to how many points you want to add whenever someone subs. So in your case that would be 5.
- DonationScore.txt - Save the content of this to how many points you want to add whenever someone donates. So in your case that would be 1 PER Euro.
- BitScore.txt - Save the content of this to how many points you want to add whenever someone cheers. So in your case that would be 1 PER 100 bits.
- BitThreshold.txt - Save the content of this to how many bits are required before a new point is added. So in your case that would be 100.
- BitProgress.txt - leave empty, this will contain a count of the bits you have received.
**Storing this information in text files as opposed to entering the values directly in the command will allow for easier updates if you ever want to adjust the values.
So for your follower notification, you could have the message "!newfollower @user@", then you create a command called "!newfollower" which the message of that would be "@target@ Just followed the channel @savefile@[Goal/TotalScore.txt,@calc@[+|0@readfile@[Goal/TotalScore.txt]|0@readfile@[Goal/FollowerScore.txt]]]". Set the access of this command to Streamer/Bot.
The same would be the case for both subs and donations because it's an easy 1 event (sub or donation) adds X points. For donation you will have to use @calc@ to multiply the DonationScore.txt to the amount of Euros the person has donated. Bits will be more complicated because you will only add points when a certain threshold is reached. We are not going to use the Cheer Notifications settings variables @current@ and @target@ for this because I haven't found an automatic way to clear these values (you must manually go in and press the "reset" button) so instead, we are going to save the bits you have received to a text file (BitProgress.txt) which will allow you to easily clear the value with the rest of the text files.
For your Cheer Notification settings, enter the message "!newcheer @user@ @amt@"
<== PLEASE KEEP IN MIND I DON'T HAVE ACCESS TO MY DEEPBOT AT THE MOMENT SO I CAN'T RECALL IF THE AMOUNT VARIABLE IS WRITTEN AS @amt@ OR @amount@
Then create a new command called "!newcheer" and enter the message: "@target@[1] just cheered @target@[2] Bit@if@[>||@target@[2]||1||s||]. @savefile@[Goal/BitProgress.txt,@calc@[+|0@readfile@[Goal/BitProgress.txt]|@target@[2]]]". Set the access of this command to Streamer/Bot.
Chain this command to another command "!newcheer2". Create a new command called "!newcheer2" and enter the message: "@if@[@customapi@[http://api.thatgirlslays.com?divisible=@readfile@[Goal/BitProgress.txt]~@readfile@[Goal/BitThreshold.txt]]||true||@savefile@[Goal/TotalScore.txt,@calc@[+|0@readfile@[Goal/TotalScore.txt]|0@readfile@[Goal/BitScore.txt]]]||]".
What ^ those commands are doing is say someone had already cheered 30 bits and then someone new cheers 60 bits, !newcheer is going to update the BitsProgress.txt file and save the value as 90. !newcheer2 is going to check whether or not 90 is divisible by 100 with no remainder. And if so, it will award a point to the TotalScore.txt
Also, I'm too lazy to do this right now but you need further logic for if someone donates 200 or more bits. It should calculate 2 points for 200 bits, 3 points for 300 bits etc. That's much more involved logic and I'm too tired to write out.
Anyways, that will get you started in calculating a total score. Then of course you will need HTML, CSS, and possibly JS to display and animate a bar. I would recommend creating an additional file called "Goal/Maximum.txt" and save this whatever your goal of points to reach is for example, 100. This will help you when it comes time to display your progress bar. You would simply divide the TotalScore.txt by the Maximum.txt and then multiply by 100 and that will be the percent you need to see the progress width or location at (as a percentage out of 100).
Lastly, to reset progress whenever you want simply create a command called !cleargoal and set the access as Streamer/Bot only. The message of this will be "@savefile@[Goal/TotalScore.txt,0] @savefile@[Goal/BitProgress.txt,0]".
PLEASE VERIFY ALL CODE BEFORE USING IN PRODUCTION AS I AM WRITING IT AT THE TOP OF MY HEAD WITHOUT ACCESS TO MY DEEPBOT FOR TESTING.