Documentation R2 Ankabot
Documentation R2 Ankabot
Documentation R2 Ankabot
Bot Setup:
Create a http://twitch.tv account for the bot with a name that you like
Open AnkhBot
Go to Credentials -> Bot Login
Fill in the Username field with the bot’s Twitch Username
Click Generate Oauth-Token and authorize the Bot’s Account or go to:
http://tinyurl.com/AnkhBotR2Login
Fill in the Channel field with the channel that you want the bot to connect too
Pick the port that you want the bot to connect through
Click Connect to connect the bot to the specified channel
Streamer Setup:
Click Generate Temp Token and go through the Google Authorization Process
Fill the received token into the Temp Token Slot
Click the Generate Oauth-Token button to convert the Temp Token to an Oauth Token
Click Connect to connect to Google Drive
A Popup will appear with further info if you do not possess the template document
Bot Data Template: http://tinyurl.com/AnkhBotDataTemplate (rename required)
Song Request Template: http://tinyurl.com/AnkhBotSongTemplate (keep name & copy)
Console:
In the Console you will receive all the messages from your viewers and bot. Aside from that you have
a list of viewers available on the right side. In case you do not want to see it you can just drag the
grey bar to the right to hide it from sight.
On the bottom of the screen you can swap from the Bot to Streamer which means all the messages
that you will send will be through your own account and not the Bot’s. That is if you have connected
your account to AnkhBot.
Dashboard:
In order for the Dashboard to be accessible you have to connect your own Twitch Tv Account under
Credentials -> Streamer Login. Once this is done you will have access to the Dashboard and will be
able to change your Stream Title & Game, Run commercials and have the Bot Host people
automatically for when you’re not streaming.
Aside from that the Bot will also log new Followers, Subscribers , Hosts and Raiders (if you are using
the Raider feature under Settings). These can be cleared manually by right clicking within the box
and removing everything.
This information also gets logged to simple .txt files which can be found in the Twitch -> Files folder
of the Directory where you installed AnkhBot.
Parameters:
$user / $realuser
Description: Displays the user of the command
Example: /me steals a cookie from $user | !test
Response: Bot steals a cookie from AnkhHeart
$target to $target9 / $realtarget
Description: Displays the targeted person.
Example: /me kicks $target in the face! | !kick AnkhHeart
Response: Bot kicks AnkhHeart in the face!
$num to $num9
Description: Expects a valid integer
Example: /me hugs $target $num2 times! | !hug AnkhHeart 10
Response: Bot hugs AnkhHeart 10 times!
$msg
Description: Displays the text after the command
Example: $user rolls a $randnum(1,21) for $msg | !msg I wish I had 9 lives!
Response: Bot: AnkhHeart rolls a 18 for I wish I had 9 lives!
$randnum(max) or $randnum(min,max)
Description: Displays a random number in a specified range
Example: /me rolls a $randnum(1,7)! | !roll
Response: Bot rolls a 3!
$currencyname
Description: Displays currencyname
Example: In this channel you can collect $currencyname | !currency
Response: Bot: In this channel you can collect Cookies!
$count
Description: Counts amount of times a command has been used
Example: /me has $count jars of salt. | !count
Response: Bot has 3 jars of salt. | Bot has 4 jars of salt. | Bot has 5 jars of salt | etc…
$readline(FileLocation)
Description: Reads the first line of the document
Example: $readline(C:\test.txt) | !currentsong
Response: Bot: Currently playing: Popskyy - Rize Up
$readrandline(FileLocation)
Description: Reads a random line from the file
Example: /me slaps $randuser with a $readrandline(C:\test2.txt)! | !slap
Response: Bot slaps AnkhHeart with a Tuna! | Bot slaps AnkhHeart with a Brick! | etc..
$readspecificline(FileLocation,LineNr)
Description: Reads a specific line from the file (Starts from 0)
Example: /me slaps $randuser with a $readspecificline(C:\test2.txt,3)! | !slap
Response: Bot slaps AnkhHeart with a Shovel!
$toppoints(num)
Description: Displays top X amount of users based on points (Except Caster & Bots)
Example: Top 3: $toppoints(3) | !top3
Response: Bot: Top 3: #1 Promouse (10000), #2 Gamegooru21(9999), #3 EdeMonster (9998)
$tophours(num)
Description: Displays top X amount of users based on hours (Except Caster & Bots)
Example: Top 2: $tophours(2) | !top2
Response: Bot: Top 2: #1 KrystalRayne (123 Hrs), #2 PixelmonkeyGaming (120 Hrs)
$uptime
Description: Displays for how long the stream has been Live
Example: The stream has been live for: $uptime | !uptime
Response: Bot: The stream has been live for: 1 hour 25 minutes 58 seconds
$points
Description: Displays num of points of the user or target
Example: $user has $points $currencyname! | !cookies or !cookies AnkhHeart
Response: Bot: AnkhHeart has 1234 Cookies!
$raids
Description: Displays amount of times the user or target has raided the channel.
Example: $user has raided the channel $raids time(s) so far! | !raids or !raids AnkhHeart
Response: Bot: AnkhHeart has raided the channel 3 time(s) so far!
$rank
Description: Displays the users rank
Example: $user is Rank: $rank | !rank or !rank AnkhHeart
Response: Bot: AnkhHeart is Rank: Ninja Kitty
$hours
Description: Displays amount of hours the user has been in the stream for
Example: $user has been in the channel for $hours total. | !Hrs or !Hrs AnkhHeart
Response: Bot: AnkhHeart has been in the channel for 3.5 Hrs total.
$pointspos
Description: Displays the users Position in the ranking based on amount of points
Example: $user is ranked #$pointspos
Response: Bot: AnkhHeart is ranked #2
$hourspos
Description: Displays the users Position in the ranking based on amount of hours
Example: $user is ranked #hourspos
Response: Bot: AnkhHeart is ranked #1
$nxtrank
Description: Displays the next rank that the user can achieve
Example: $user, The next rank that you can achieve is $nxtrank!
Response: Bot: AnkhHeart, The next rank that you can achieve is Ninja Kitty!
$nxtrankreq
Description: Displays the amount of points/hours the user requires for his next rank
Example: $user, You need $nxtrankreq points to become a $nxtrank!
Response: Bot: AnkhHeart, You need 13 points to become a Ninja Kitty!
$myurl
Description: Displays the twitch channel URL for your stream
Example: My channel is: $myurl. | !myurl
Response: Bot: My channel is: http://twitch.tv/AnkhHeart
$mygame
Description: Displays the game you are currently playing
Example: I am playing: $mygame | !currentgame
Response: Bot: I am playing: Bloodborne
$mystatus
Description: Displays your stream title
Example: Status: $mystatus | !mystatus
Response: Bot: Status: [720p] Fable: The Lost Chapters [PC]
$userurl
Description: Displays the user’s twitch channel URL
Example: $user’s twitch channel is: $userurl | !userurl
Response: Bot: AnkhHeart’s twitch channel is: http://twitch.tv/AnkhHeart
$usergame
Description: Displays the user’s last played/current game
Example: $user’s was/is playing: $usergame | !usergame
Response: Bot: AnkhHeart was/is playing: Bloodborne
$userstatus
Description: Displays the user’s stream title
Example: $user’s Stream title is: $userstatus
Response: Bot: AnkhHeart’s Stream title is: [720p] Fable: The Lost Chapters [PC]
$url
Description: Displays the target’s twitch channel URL
Example: $target can be found streaming at: $url | !url AnkhHeart
Response: Bot: AnkhHeart can be found streaming at: http://twitch.tv/AnkhHeart
$game
Description: Displays the target’s current/last played game
Example: $target has last played: $game | !game AnkhHeart
Response: Bot: AnkhHeart has last played: Bloodborne
$status
Description: Displays the target’s stream title
Example: $target Stream title is: $title | !title AnkhHeart
Response: Bot: AnkhHeart Stream title is: [720p] Fable: The Lost Chapters [PC]
$botname
Description: Displays the bot’s name
Example: Hello I am $botname | !name
Response: Bot: Hello I am AnkhBot!
$randuser
Description: Displays a random user that has spoken in chat recently
Example: /me gives $randuser a hug! | !hug
Response: Bot gives AnkhHeart a hug!
$randquote
Description: Displays a random quote
Example: $randquote | !randquote
Response: Bot: I am not a cat! – AnkhHeart [Thief] [01/01/2015]
$randextra
Description: Displays a random value from the extra quote like system
Example: $randextra | !randgif
Response: Bot: http://randomURL.com/gif12.gif
$quotes
Description: Displays the amount of quotes
Example: There are $quotes quotes. | !quotes
Response: Bot: There are 123 quotes.
$maxquotes
Description: Displays the highest number quote
Example: There are $quotes quotes. Ranging from 0 to $maxquotes. | !quotes
Response: Bot: There are 123 quotes. Ranging from 0 to 122.
$commands(NumCommandsPerPage)
Description: Displays a list of all available commands for the user
Example: Commands: $commands(3) | !commands or !commands (PageNumber)
Response: Bot: Commands: !Cookie, !Slap, !Caster [Page 0/2]
$timers(NumTimersPerPage)
Description: Displays a list of all available Timers for the user
Example: Timers: $timers(3) | !timers or !timers (PageNumber)
Response: Bot: Timers: !ctt, !twitter, !youtube [Page 0/1]
$sfx(NumCommandsPerPage)
Description: Displays a list of all available SFX for the user
Example: SFX: $sfx(3) | !sfx or !sfx (PageNumber)
Response: Bot: SFX: !scream, !pika, !morph [Page 0/0]
$time
Description: Displays the caster’s time
Example: Currently it is $time over at AnkhHeart’s part of the world.
Response: Bot: Currently it is 10:20 PM over at AnkhHeart’s part of the world.
$readapi(URL)
Description: Displays the text on the URL’s page. Max 255 characters
Example: $readapi(https://nightdev.com/hosted/followers.php?channel=ankhheart&limit=5)
Response: Bot: 1. BensGaming808, 2. Gamakuro, 3. GENERAL_XROS, 4. wulleybully, 5.
NorQuel
$savetofile("FileLocation","Text")
$savetofile("FileLocation","Text","SucceedMsg","FailMsg")
Description: Adds to the end of the file
Example: $savetofile("C:\test.txt","$msg","Succeeded :D","Failed! ") | !save I am a cat
Response: Bot: Succeeded! ““
$overwritefile("FileLocation", "Text")
$overwritefile ("FileLocation","Text","SucceedMsg","FailMsg")
Description: Overwrites all the data in the .txt file with the added text
Example: $overwritefile("C:\test.txt","$msg","Succeeded :D","Failed! ") | !save I am a cat
Response: Bot: Succeeded!
$countdown(12:00 AM) or $countdown(04/05/2015 12:00 AM)
Description: Allows you to start a countdown from the current time to the set time/date
Example: $countdown(04/05/2015 12:00 AM) | !sleep
Response: Bot: 1 day 2 hours 48 minutes 36 seconds
$dummy
Description: This is a Dummy that will not post the message if there is nothing behind the
command
Example: $dummy $readrandline(C:\Users\Ankh\Blah.txt) | !8ball Am I green?
Response: Bot: Perhaps?!
$dummyormsg
Description: This will get replaced by anything behind the command. If there is nothing it be
cleared from the response message.
Example: http://api.com/$dummyormsg | !test Cats or !test
Response: Bot: http://api.com/Cats or http://api.com
$addpoints("target","min","max","succeed","fail")
Description: Adds points to a certain user and sends a message upon succeeding / failing
Example: $addpoints("ankhheart","10","50","ankhheart Got $value points","Failed to give
points!") | !addpoints
Response: Bot: ankhheart Got 35 points
$removepoints("target","min","max","succeed","fail","forceremove")
Description: Removes points from a certain user and sends a message upon succeeding/failing.
Force remove(true/false) removes points even if the user doesn’t have enough.
Example: $removepoints("ankhheart","10","100","Removed $value points from
ankhheart.","Unable To remove $value points from ankhheart!","false")
|!removepoints
Response: Bot: Removed 85 points from ankhheart.
$givepoints("from","to","num","succeed","fail","forcegive")
Description: Overwrites all the data in the .txt file with the added text
Example: $givepoints("$user","$target","50","$user gave $value points to $target","$user
didn't have enough points to give to $target!","false")| !give gamegooru21
Response: Bot: AnkhHeart gave 50 gamegooru21
$currentsong and $requestedby
Description: Return the current song that is being played through songrequest
Example: Current Song: $currentsong – Requested By $requestedby| !currentsong
Response: Bot: Current song: ONE MORE FIGHT – Requested By AnkhHeart
$nextsong and $nextrequestedby
Description: Return the current song that is next in queue
Example: Next Song: $nextsong – Requested By $nextrequestedby| !nextsong
Response: Bot: Next song: ONE MORE FIGHT – Requested By AnkhHeart
$setgame(game) and $settitle(title)
Description: Allows you to set the game & title through a command and create presets for
certain games
Example: $setgame(Dungeon Defenders II) $settitle(MMO Mornings)| !dd2
Response: No response as the bot will simply update the stream & title
$date
Description: Displays the Date based on the format under Quote Settings
Example: Currently it is $date
Response: Bot: Currently it is 08/09/2015
$viewers (Only works in the Host Notifier System under Settings)
Description: Displays the amount of $viewers you’ve been hosted for when someone hosts
Example: $user has hosted the channel for $viewers!
Response: Bot: AnkhHeart has hosted the channel for 5!
$checkcount(command)
Description: Displays the count of a specific command
Example: Cookie Count: $checkcount(!cookie)
Response: Bot: Cookie Count: 10
$currenthosts(NumHostsPerPage)
Description: Displays everyone that is currently hosting the stream (Only works when you’re
live)
Example: Current Hosts: $currenthosts(2)
Response: Bot: Current Hosts: EdeMonster, Promouse [Page 0/1]
$countup(12:00 AM) or $countup(04/05/2015 12:00 AM)
Description: Allows you to set a start date for when the bot should start counting
Example: $countup(07/03/2016 12:00 AM) | !UsingAnkhBot
Response: Bot: 1 day 2 hours 48 minutes 36 seconds
Commands:
In this section you will be able to create your Commands. There are various permission levels to
choose from in case you don’t want everyone to have access to the command.
In the Info field you will have to enter extra information in case you picked Min_Rank, Min_Points,
Min_Hours or User_Specific as the Permission Level.
If you want to prevent people from spamming the Command you can set a Cooldown on it. In the
Response field you can enter whatever you want the bot to say when the Command is used.
Each line will become a separate message if you end it with enter. That way you can have the bot
send multiple messages when one command is used.
Aside from this there are various $(parameter)’s that can be used. These can be found at PAGE X.
Here you will be able to create your own Timers. These are basically messages that the Bot will
automatically post in your chat after an Interval of X minutes. The interval is just how long the bot
will wait before posting the next timer.
In case your chat is not very active you can also set the Min Chat Lines, which determines how many
messages you have to receive before the bot posts a timer. This way you don’t have the bot
spamming your chat with messages if no one is talking.
Link Timers to Commands will create a Command for you with the same Name if it’s set to True. That
way you will also be able to execute the Timer manually if you so wish. If you were to edit a Timer
while this is set to true the Bot will also update the Command with the same Name and Vice Versa.
!timer add (name) (permlvl: optional | Link Timers: True) (response) [Editor]
Example: !timer add !Meow +s /me meows at $randuser
Response: {user} --> Successfully added !meow. Permission: Subscriber - Message: /me
meows at $randuser
!timer edit (name) (response) [Editor]
Example: !timer edit !Meow /me growls at $randuser
Response: {user} --> Successfully edited !Meow. Message: /me growls at $randuser
!timer remove (name) / Doesn’t remove command [Editor]
Example: !timer remove !Meow
Response: {user} --> Successfully removed !Meow.
!activate (name) (true/false) [Editor]
Example: !activate !Meow false
Response: {user} --> Succesfully de-activated !Cookie
Quotes:
In the Quote System things that you’ve said on cast can be stored. In case you do not wish for
everyone to be able to call upon a random Quote the View Permission can be changed.
If you want people other than Mods to be able to Add Quotes then you can simply change the Add
Permission.
If people try to spam the chat with random quotes the Cooldown can be tweaked. That way people
can’t simply keep calling up quotes and flooding your chat with them.
The Give Away System can be used to give away games/prizes to your viewers. You can either have
people join the Give Away for free, have them pay a fee to enter or pay per entry.
On the left side you will see all the people that are entered in the Give Away and how many times
they have been entered. At the bottom of the window you will see all the messages posted by the
Winner if one has been chosen.
That way you’ll know if that person is still there and wishes to claim the prize or not.
The SFX System is an interactive system that allows anyone of your choosing to play Sound Effects.
This is a great way for your viewers to interact with you and the game that you’re playing. In case
you’re playing a scary game you could fill it with scary sounds and have your viewers scare you when
you least expect it.
In case you don’t want people to spam SFXs then a Cooldown can be set on the Command and you
can also set a cost to the SFX. That way points will be deducted from the user of the Command.
The User Delay is a delay that gets put on each person if they just used a SFX. This prevents them
from going down the list of all your SFX and triggering each one in quick succession.
If you don’t want a SFX to trigger when a single person does it then you can set the Min Votes.
Which is the Minimum amount of people that have to use the command before it triggers.
Currency System:
If the Currency System is enabled everyone in your chat will start gaining points. These can be spend
using the various other Systems in the Bot. You can use them for Give Aways, to play SFX, to
Bet/Vote and during Minigames.
You can create up to three ranking trees: One for Viewers, One for Subscribers and One for
Moderators. These ranks can also be used for Permissions on Commands, SFX, …
There is also room for customizing your own Payout amounts and Intervals. This way you have full
control over how many points people accumulate in your stream. If you set the Live Payout Amount
or Offline Payout amount to 0 then no points will be paid out at all.
Finally at the bottom you can see everyone’s points and sort the database if you want to see who
the highest ranking user in your stream is.
If you have changed the Command then replace !points with your own custom currency command in
the table underneath.
The Betting System can used to create your own Betting Options and have people spend currency on
them. These can all be Saved into a Preset and loaded later in case you are playing same game again.
That way you won’t have to manually fill in everything.
If you wish to pick a winning option simply right click on the option and Pick it as the Winner. In case
there are multiple correct Options this can be done for each one of them.
Everyone that Bet on said option they will receive the Amount they Bet + a bonus of X% which you
can determine with the Payout %. You can also allow people to bet on multiple options and have
them spend even more points.
The Poll System is quite similar to the Betting System except you can set the Permission on who can
Vote on said Options.
In case you want people to spend points for each vote they cast this can be enabled. If you want
people to vote on multiple options you can enable this and limit them by how many they can vote
on as well.
The Group Minigame allows you to create your own Minigame. You can start the customization by
determining the Command that will be used, what the cooldown is, how many users have to enter
before it starts, the Max amount someone can invest and who can Join.
Aside from all those options you can set the Probability for each usergroup. This determines how
much chance people within that usergroup have to survive. The Payout can also be set that way you
can choose how much someone gets ontop of the amount they invested in the minigame.
Finally you can fully customize all the messages that the bot will be posting in chat depending on the
situation and how well/bad things are going for the ones that have joined. So if you wanted you
could turn it into something completely different and not use the default Heist preset.
Event System:
The Event System will allow the bot to automatically Greet/Shoutout the person of your choice and
play a SFX if you wish. The system consists of two parts: On Join Event System & On Speak Event
System.
The On Join Event System will perform its action when the person of your choice joins the channel.
Then it will post its message and/or play its SFX.
The On Speak Event System will perform its action when the person of your choice speaks in your
channel for the first time. Then it will post its message and/or play its SFX.
In order for the bot to re-execute the events it has to be restarted. So the best thing is to restart it
before a cast.
Song Request System (Note: Check localization for Functionality changes)
The Song Request System allow you to create your own youtube playlist through the bot have them
play whenever you want. Aside from that your viewers can request songs and spend currency to do
so.
In order for this feature to work you obviously need to have Internet Explorer & Java Installed. The
bot uses the WPF Browser which is a build in browser for the .Net Framework that uses Internet
Explorer.
Playlists can be saved and loaded back up at any time in case you want to change it up a bit. Aside
from that you can Shuffle the list. You can also Pause, Skip and even Steal songs that have been
requested and add them to your own custom playlist if they’re to your liking.
With the Queue System you can set up a Queue which users can join to play a specific game with
you.
Within the Settings there is quite a bit of customization. You can set up in Chat Notifiers which will
trigger when some either Hosts, Subscribes or Follows your channel. A custom SFX can be set up for
each one as well in case you want to hear when it happens.
The bot also logs this information in the Dashboard section so just in case you missed a follow, host
or a sub notification you can check it there.
There is a small feature which allows you to log who raids your channel. In case you wish to thank
them later on twitter and/or give them a shoutout for doing so.
Aside from that the bot can be set to Moderate the channel for Links, overuse of Caps & Symbols
and offensive Words/Sentences.
This is also where you will have to add Editors. Which are people that will be able to
add/edit/remove commands and the likes from chat.
The Death Counter allows for an easy way for mods to log your deaths in case you’re playing a game
like Dark Souls. It can also be used for general counting purposes by simply changing the command
around to whichever fits.
You can also change the Font, Size, Background, Foreground, Style and Weight of the visualizer. This
way you can capture it and chroma key it out and show it on stream if you so wish. That way your
viewers will be able to see how many times you have died up till this point.
!death + [Moderator]
Example: !death +
Response: [Increased] Deaths: 124
!death - [Moderator]
Example: !death -
Response: [Decreased] Deaths: 123
!death (num) [Moderator]
Example: !death 10
Response: [Set] Deaths: 10
!death [Everyone]
Example: !death
Response: Deaths: 10
[Extra] Extra Quote Like System:
The Extra Quote Like System is another version of the quote system which you can customize a bit
more. This way you can make your own system which acts just like the Quote System.
In case you do not wish for everyone to be able to call upon a random Gif the View Permission can
be changed.
If you want people other than Mods to be able to Add Gifs then you can simply change the Add
Permission.
If people try to spam the chat with random quotes the Cooldown can be tweaked. That way people
can’t simply keep calling up quotes and flooding your chat with them.
Under Extra -> Localization you can change every single response that the bot gives. If you don’t like
the default responses or you want to translate them to your own language you can do so.
Also the parameters that you see within a message will only work on it. So no other parameters that
you’ve used in the default Command section will work EXCEPT for $readapi(URL) and
$readrandline(FILE).
SongRequest Notice:
On a side note in the Song Request section of the localization you can change the functionality of the
songrequest command so it also works with searching by keywords. If you wish to do this simply
replace the $id parameter in the Song Request Functionality field with
$readapi(https://decapi.me/youtube/videoid?search=$msg) This will allow users to type
!songrequest Hotline Bling. Which will call the API and it will return the ID for you. This is useful for
Mobile users.
[Extra] Whisper Config:
Under Extra -> Whisper Config you can change how users can interact with the build in commands.
Also if you put things to Both or Whisper make sure the bot is connected to a Group Chat Server
otherwise this won’t work.
In Chat Only: Only allows users that are in your channel to use the commands. The bot won’t
whisper them back if they’re not in your channel.
Cross Chat: The bot will whisper any user even if they’re not connected to your chat.
Chat: The bot will only reply to the command if it’s used in chat and will post it in chat unless it starts
with /w $user then it will be whispered instead.
Whisper: The bot will reply through whisper unless the command starts with /timeout or /me , etc..
Both: The bot will reply depending on how it receives the message. The same rules apply as both the
Chat & Whisper ones for this.