tickbot readme
putting the something in awesomething

Thanks for viewing the new version of the tickbot readme. This page will list nearly all of the commands available for use, explain them, and make you feel all warm and fuzzy inside. Tickbot is an IRC bot created entirely by Spaztic in mIRC and can be found on Quakenet in the channels #jj2 and #tickbot. You can also simply query Tickbot to do most commands.

Every command listed here must be prefixed with 'tickbot ' to be recognized, except in #tickbot where you may prefix a command with simply ! or in a query where you need no prefix.

Total Number of Commands: 202 dozen

- Categories of Commands -
boring | maths | naughty | banned in australia

I am not an animal.
simple commands
Simple commands are used to display a response to something or to output something based on information you provide. In recent changes these commands were combined with most manipulation and url generation commands and put into a file that uses a special syntax. See the op / janitor section for commands janitors may use to add more simple commands.

Total Commands: 126

simple response
These commands respond with something that does not require any special user input. They are also the most unexciting.

reg ;)
i love you
mean wank
in love
linkin park
rule [1-8]
old rule [1-12]
way life

url generators
These commands output a url going to the [query] specified by the user.


Like simple response commands, except they make tickbot do an action and also allow user input into that action. Words such as 'you', 'yourself', 'me', 'my', and 'someone' are changed during response to make things more customizeable.


There is absolutely nothing in this table.
calculation commands
Calculation commands are any and all commands that involve doing math. Tickbot has a basic calculator function as well as numerous specific functions. Because you could only do one specific function per line and they could not be nested, calculator functions have recently been expanded to allow as many functions per line as you want (though they still may not be nested), as well as the ability to recall former answers to problems. Here are all of the calculator commands recognized:

Total Commands: 27

len [text]
rand [#1], [#2]
ncr [items], [limit]
npr [items], [limit]
log [base], [root]

using calculation commands
For some reason you guys suck at properly using these. It really is not that confusing, and the recent updates should help to clarify a few things. In the past, you could use any of the commands listed above alone and never nested. Now commands may be seperated into 'steps' with pipes (the | symbol), and answers to previous commands are available using h(#) where # is the step. The last step in a series of commands is always provided the answer for, but you can request any step's answer by putting = at the end of the operations. Here are some examples:

(Spaztic) tickbot calc 10 + 10
(Tickbot) 20 = calc(10 + 10)
(Spaztic) tickbot calc 10 + 10 | rand h(1), h(1) + h(1)
(Tickbot) 24 = rand(20, 20 + 20)
(Spaztic) tickbot calc 5 + 5 | rand h(1), h(1) + h(1)= | log h(1)/2, 10^h(2)
(Tickbot) 12 = rand(10, 20 + 20); 12 = log10 1000000000000

Even though responses may contain parentheses after functions, that does not mean saying something like the 'tickbot rand(0,10)' would work. You only need to use the 'calc' command itself once in a series of steps, and 'calc' never procedes another function. Remember, only one function works per step. The idea of having steps and answer recall is what allows you to nest functions. Also notice that all commands that require parameters have each parameter seperated by a comma, allowing for more operations per parameter.

Lastly, these text strings (note that i is not included) will be replaced with corresponding numbers in any command:
- pi = 3.141593
- e = 2.718281
- life = 42
- E = *10^ (scientific notation)

other calculation commands
The following commands are seperated from the above because they cannot function within the 'steps' framework. They work within a rigid, specific set of rules that cannot comply. None of them will replace any strings mentioned above (pi, e, etc), either.

Quadsol and Quadin
This pair of functions was covered previously, but after the new steps format for calc was concieved, it seemed eternally broken. However, it is back, and now known as quadsol (instead of squad) and quadin (instead of rquad). These commands deal specifically with quadratic equations. Quadsol will solve a quadratic that equals 0 and give you both the roots. This includes answers for perfect, irrational, and complex roots. Quadin will solve a quadratic given x, this is usually used to check answers given with quadsol. Here are their formats:

tickbot quadsol [a], [b], [c]
tickbot quadin [a], [b], [c], [x]

Note that you MUST have commas after each variable. This is necessary for the same reason it is in the above calc commands that need input, commas allow you to use operations (instead of putting in 2 for [a], you could put 4/2). Also note that tickbot cannot check complex roots (programming i sounds like a real bitch), and that irrational and some perfect answers might return something not exactly 0, but pretty damned close. Tickbot also will not simplify any fractions given. You can at least do that yourself, right?

The func command lets you define a function with up to 26 variables, and then will let you feed in each variable to see what the output is. This command is in a beta mode to some extent, it is probably easy to do something incorrectly. Each variable that you feed will correspond to the next letter of the alphabet, so it is important that you know what is a and so on. Format:

tickbot func [function], (a), (b), ... (z)

So, for example, lets say for [func] you have a^2 + b. Tickbot will replace 'a' with whatever you have for [a] (and also sandwiches it with parentheses), then [b], and so on. If you don't give a parameter for [b] but it is in [func], it will treat it as junk data (0). Remember that you can't input 'ab', you have to have 'a*b'.

In the form base [old] [new] [number] this will convert the [number] which should be in the [old] base, to the [new] base. This differs from ascon (in special) in that it is for actual values and not ascii values. The [old] and [new] bases must be between 2 and 36 inclusively.

There is absolutely nothing in this table.
op / janitor commands
These commands are only available to either the ops of a channel or tickbot's janitors. The reason for this is because they require doing commands that tickbot must be an op to do already, or that they do special maitenance functions that could be abused by the normal retarded losers like you. Sir.

Total Commands: 25

op and janitor commands
These commands will work for both ops and janitors.
  • nick - this must be queried to users 'spaztic' or 'spaztic[dead]' (whichever is not in #jj2.musicbox), it will change that user to tickbot
  • highlow (number/off) - starts and turns off the highlow game; number domain(1, 100000); see also: guess in special commands
  • gethosts [channel] - attempts to find and resolve unknown nick hostnames in a channel; useful if commands involving bans are not working
  • hp (nick/off) - starts or turns off the hot potato game; if (nick) is specified that person recieves the potato, if not specified it gives it to a random person; see also: toss in special commands
  • acro (off) - starts or turns off acrophilia; see game details in special commands
  • stealth [channel] [command] - stealth is a way of doing a command without actually being in a channel; you have to be an op in the [channel] to which the [command] is going in order for it to work.
op commands
These commands will only work when tickbot and the person requesting the command are ops.
  • kick [person] (reason) - kicks [person]
  • ban [person] (reason) - bans and then kicks [person]
  • shup [nick] [duration/off] (reason) - shup time, originally coined by electropizza, is a nice function that will ban a user for a certain [duration] (which must be >= 10) without kicking them, so that they are still in the channel but cannot say anything; if they have +v, it will also devoice them if needed; using [off] will prematurely end a shup time; you can also use math for [duration] as long as you don't use spaces - so if you want to shup someone for 25 minutes but don't know that in seconds, type it as 60*25. if someone is already shupped it will tell you so and display the number of seconds until it is over. you may also now specify a (reason) for shup time.
  • rankick [nick/off/info] [odds/%chance] - rankick is a command that randomly chooses to kick [nick] based on the specified [odds/%chance]; rankick can only be set on one person at a time; the chance is 1 in [odds] chat lines or [%chance] every line; therefore setting [odds] at 100 would give a 1 in 100, or 1% chance; [odds] domain(50, 5000) [%chance] domain(.02%,10%); [info] displays status of rankick, chan, nick, odds
  • goaway [nick] (reason) - because auto-rejoin options basically take all of the satisfaction of kicking someone, the goaway function first bans [nick] and then kicks them with the cause as (reason); they will be unbanned somewhere between 1-5 seconds after being kicked.
  • killweb [person] - forces a webclient clone to go offline
  • topic [...] - changes the topic to [...]
janitor commands
These commands will work for tickbot janitors exclusively.
  • join [channel] - makes tickbot join [channel]
  • part [channel] (quit message) - makes tickbot leave [channel] and use (quit message)
  • quote remove [number] - removes a quote from the quote archive; see also: quote in special commands
  • divert toss [nick] - during a game of hp (hot potato), if an idle nick is passed to, janitors can steal the potato and give it to [nick]; see also: toss in special commands and hp in op / janitor commands
  • auto [interval/off/info] [command] - auto repeats any [command] you want (except op commands if you aren't an op and janitor), including all parameters, every [interval] seconds (60-1800); [info] displays current auto command interval and command; only one command can be used with auto at once
  • makepage [quote/rsg] - generate html for quotes/rsg archive file
  • add [type] [command] [...] - add a generic simple command; [type] must be (m)essage, (a)ction, (u)rl, or (s)hortcut; [command] must use underscores for spaces; you may use an underscore (_) for user input (generally with actions and shortcuts), '*' for the users nick, and '#' for url input to turn spaces into +; shortcuts may point to any command and use any parameters
  • del [command] - delete generic simple command; deleted commands are added to a backup file
  • save [rsg/dubya/corky/imply/spambot] [...] - add a line to the file specified; for imply, _ corresponds to his/her
  • link remove [number] - removes a link from the links archive; see also: link in special commands
  • default [command] - sets a default command, if no command is recognized it is submitted to the default command; it also overrides some commands
There is absolutely nothing in this table.
special commands
Special commands either don't fit into any of the previous categories or are so expansive that they require a lot of explanation to entirely cover.

Total Commands: 36

- Subcategories -
rsg | quote | link | games / fun stuff | text manipulation

rsg (random sentence generator)
RSG is easily Tickbot's most popular command, and it is easily the command that takes the most information to explain. Therefore, I've decided to put it first. RSG is, quite simply, making up nonsense. RSG's are basically pre-made sentences with certain parts of speech missing that are filled in with random alternatives, which usually results in amusing nonsense. The real beauty of RSG is the ability to easily create your own custom sentences, but before that is explained, I'll get the less major commands out of the way. Note: Recently the history function has been reformatted.
  • rsg - rsg with nothing after it will choose a random rsg sentence and display it, with its corresponding number
  • rsg [number] - will display the sentence corresponding to [number]
  • rsg ~ - does the same thing as just 'rsg' without displaying the corresponding number
  • rsg [number] ~ - displays the raw sentence format associated with [number]
  • rsg info - displays the number of words in each word bank, total vocab, sentences, and suggestions
  • rsg gip - does an rsg-based fake games in progress list; can only be done once every 30 seconds
  • rsg url - displays url to the rsg formats archive
  • rsg feed [command] [...] - feeds returned rsg parameters [...] to any simple, calculation, or special [command] (including rsg itself); buggy
Now that that's out of the way, custom sentence structures will be explained. Custom RSG's are very easy to understand. Basically, certain letters denote certain parts of speach. When these are placed anywhere after rsg, they are replaced in the output with a random word from whatever part of speech that letter corresponds to. Any letter that does not denote something comes through unchanged. Lastly, any text appearing inside of []'s will be totally unchanged. That, in summary, is the most basic way to do RSG. Here are what any of the letters will correspond to, and then some example RSG's.

Normal Word Banks
n - nouns (fish, badger)
ns - plural nouns (fishes, badgers)
j - adjective (sticky, black)
d - adverb (violently, stupidly)
v - action verb (hits, kills)
vc - copular verb (is, seems, tastes)
vt - transitive verb (fucks with, sits on)
v1 - verb gerund (eating, being, working on)
v2 - verb base (eat, be, work on)
v3 - verb past simple (ate, was, worked on)
v4 - verb past participle (eaten, been, worked on)
v5 - verb 3rd person singular (eats, is, works on)
p - person (jesus, bob barker)
pf - first name (chris, emily, pedro)
pl - last name (smith, jackson, sanchez)
r - prepositions (above, nearby)
e - exclamations (oh no, forge ahead)
l - location (toledo, fangboner road)

Special Items
# - number from 0-9
#(x,y) - number between x and y inclusively
t - random letter a-z
t(x,y) - random letter betwen x and y inclusively
tc - random consonant
tv - random vowel
ma - generate anime smilie
s - random sentence from sentence list
& - inserts "and"
u - random nick from the channel; #jj2 for queries
uo - random op's nick from the channel
un - random normal (non-op) nick from the channel
q - quote from the quotes archive; see also: quote in special commands
b - line from the jabber file (past 100 lines of chatlog); see also: jabber in special commands
b1 - first part of a line from the jabber file (beta)
b2 - middle part of a line from the jabber file (beta)
b3 - last part of a line from the jabber file (beta)

(Spaztic) tickbot rsg [One day] p [was] v1 # ns [when] u d [appeared] & [killed him.]
(Tickbot) One day Jesus was killing 5 pigeons when Q violently appeared and killed him.

Note how p become a proper noun (Jesus), v1 became a gerund verb (killing), # became a number from 0-9 (5), ns became a plural noun (pigeons), u became a nick from the channel (Q), d became an adverb (violently), and & became "and", while everything that was in []'s remained the same. It's pretty simple to understand if you know the proper grammatical forms of English. Any text that is not in []'s that does not correspond to something specifically will go through totally unchanged - including punctuation and spaces (repeating spaces will be truncated, though).

Beyond this, there are a couple more advanced features you can incorporate into your sentences. They are as follows...

This is very easily achieved simply by adding * before your sentence structure - anywhere after this and it will just appear as a *.

(Spaztic) tickbot rsg * v5 [everyone] r l.
* Tickbot gives blowjobs to everyone underneath the moon.

Recalling Words
This method allows you to dynamically recall the history of words used in a single custom rsg. Each time rsg chooses a word it is assigned in order to a history and given a number that increases from 1. It can be recalled using h(#) where # is the item previously chosen. This has changed from the old format of encasing the # in @ symbols. This is also useful because it allows you to use custom capitalization when recalling words, and may help in later versions to change verb tense and noun plurality.

(Spaztic) tickbot rsg p & p [were] r [a boat]. h(1) [fell out. And died.] m
(Tickbot) Jesus and Fidel Castro were behind a boat. Jesus fell out. And died. =)

Pattern Matching
Update: Recently Pattern Matching formats were overhauled to make a little more sense. The old format is no longer supported.

Pattern matching is basically searching through any of the regular word banks to find an item that meets certain criteria. The first part is the letter that references to which word bank to search, and the second is the pattern to match encased in ()'s after the letter. * are multi-character wildcards and ? are single character wildcards. It isn't very confusing if you are used to using operators like this in other programs. For example, ns(c?r*) would find a plural noun (ns) that began with 'c' and has 'r' as the third letter. This might return "cars" or "carpets", among other things. The result is also added to the history (see above).

(Spaztic) tickbot rsg [I have] v4(b*) a j(b*) n(b*).
(Tickbot) I have bent a blue basket.

Preset Choices
Preset choices are, in essence, a way of having having RSG pick between a number of textual items specified. If that sounds confusing, it's probably because I suck at explaining it. Basically preset choices are encased in {}'s with each choice seperated inside using a comma. So, for example, putting in {dog,cat,fish} would output either dog, cat, or fish. You can't use the word banks in these and they are space sensitive.

(Spaztic) tickbot rsg [Hello,] u! [You will die from] {AIDs,a car accident,a drug binge}.
(Tickbot) Hello, Spaztic! You will die from a drug binge.

Custom Capitalization
One problem with RSG was the inability to set when a word would be forced to capitalize or not. Now you can, and all you need to do is put a ^ before a letter. Putting a ^ before a lowercase letter will just capitalize the first letter of the first word, while putting it before an uppercase letter will capitalize the first letter of every word. You'll have to use it before every item you want to capitalize.

(Spaztic) tickbot rsg [Read my new book: A History of] ^J ^Ns. ^e, [it's great!]
(Tickbot) Read my new book: A History of Rare Toes. Golly gee whillickers, it's great!

Suggesting New Content for RSG
If you've come up with a good sentence structure, or have some random nouns, verbs, etc you'd like to see added, you can use the "add" subcommand to add suggestions. Simply state the letter of the suggestion and then after that the suggestion. You can only suggest for the standard word banks. Verbs are just 'v' and all nouns, plural or singular, are just 'n'. Sentences are 's' or +.

(Spaztic) tickbot rsg add e Oh my stars and garters!
(Tickbot) Spaztic: Suggestion added on line 32.

That's all of the information you currently need to know for RSG. Much thanks to EvilMike for compiling and sorting a ton of new words for the Tickbot version of RSG. Thanks to iCeD for compiling the original list of Locations and Trafton for going through the noun list to find irregular plurals.

quote archive
The quote archive centers around, appropriately, the 'quote' command and its subparts. It's basically just a long list of quotes - most of them geared towards being funny things people in and around the community have said, but many others more general. Many quotes are kept because they are fitting for rsg (see above) usage. Any person is allowed to add a quote, but only janitors are allowed to remove them (see quote remove in op / janitor commands). Each quote is divided into two parts, 1) the author of the quote, and 2) the quote itself. Lastly, each quote is assigned a number, being its placement in the quote file. Each new quote is appended to the end of the file when added. Now, here are all of the basics to the quote command:
  • quote - displays the total number of quotes
  • quote random - picks a random quote and displays it (also will display its number)
  • quote [#] - displays the quote corresponding to [#]
  • quote [...] - searches the quote file for all appearances of [...] and displays a random result from those
  • quote [find/search] [...] - searches the quotes file and returns the quote numbers that contain [...] (sequence of words irrelevant now)
  • quote [#] [#] - Picks a random quote within the range of # and #; it also recognizes t as the 'total' number of quotes and r as a random number; you may use math in conjuction to this - for example, to have it pick one of the 5 newest quotes, you could say: tickbot quote t t-5
  • quote save [author] [quote] - appends the quote to the end of the quotes file; you MUST keep in mind that the [author] cannot have spaces - if you use underscores (the "_" symbol), these are converted to spaces in the file, but only for the [author] and not for the [quote]
  • quote url - displays url to the quotes archive
links archive
The links archive is a replacement for the URL list. Tickbot had some 15,000 URLs caught from the channel, most of them were pointless and were just clutter. Trying to search through the URL list would take about a minute and a half per query, and slowed down my computer. So the links archive was conceived. It works much the same way the quotes archive does - anyone may add a link that they think is noteworthy, useful, funny, fun, etc. In addition, the links archive is organized well - each entry contains the URL, a description of the URL, and is strictly categorized. The time, nick, and host of the person who submitted the URL is also recorded but is not relevant during searches. Lastly, note that janitors can delete your links if they suck.

Adding a link is simple. First, I must emphasize that you should keep your descriptions short and concise. Think of the description as a title, almost. Secondly, avoid adding links that cannot be displayed directly in the browser. There is some checking for suspicious filetypes but generally you are on the honour system (remember your host and nick are saved with your entries, though). URLs and their descriptions can be up to 100 characters each. Lastly, there are several categories that your link can be filed under, try to pick the most appropriate one. Again, I stress, link to pages and items that are displayed in the browser. If something like a game or app requires being downloaded, don't link to the file needed to be saved, link to a page displaying a link. Here are the categories for links:

what is appropriate
a general website
direct image url or site displaying image
site where video can be played or downloaded
site where music can be played or downloaded
site where game can be played or downloaded
site where an application can be downloaded

Here are all of the link archive's commands and subcommands:
  • link - outputs the total number of links
  • link random - picks any random link to display
  • link [site/image/video] - picks a random site/image/video link
  • link [#] - displays the link corresponding to [#]
  • link [...] - searches the links archive for all appearances of [...] and displays a random result from those
  • link [find/search] [...] - searches for each individual word in [...] within every type of link, url, and description, and outputs the numbers corresponding to each positive result
  • link save [type] [url] [description] - save a link; [type] must be one of the categories mentioned in the table above; [url] and [description] are explained above the table

games / fun stuff
Tickbot has a very slim number of 'games' available, most of them custom-coded reproductions of AutoVoice's cames that game with ybbot. Some of them have been vastly expanded, such as the hot potato game, others have almost nothing changed. There are also a handful of commands whose only purpose is a brief period of empty-headed entertainment.

Scoring: There is now a points system that is saved based on winning a game or continuing a game (for HP). You can see what your current score is using tickbot score [nick]

Hot Potato Game (hp)
The hot potato game is a simulation of the classic game that involved neither potatos nor heat. Basically, an op or janitor starts the hot potato game (see hp in op / janitor commands) and one person posesses the potato with a limited amount of time to pass it to someone else. If you do not pass the potato in time, you get kicked. You pass the potato by typing toss [nick] (or other commands, discussed later). NEW: Players also recieve points based on how they toss the potato. No penalty is recieved for getting kicked. Those are the basics of the game, however in the tickbot version there are a number of other rules you should keep in mind:
  • passing to someone nonexistant/misspelling - 2 second penalty to your time to repass each time
  • passing the potato to Q - Q is a network bot and cannot respond; passing to Q makes you automatically lose
  • passing the potato to tickbot - will make tickbot retoss the potato back to you, but also give you 5 extra seconds; good to do if your time is slim
  • passing to an idle nick or someone who cannot respond - you cannot pass to Q, monobot, or yourself, but most nicks are game; if +m is set, you cannot pass to a devoiced user, with -m tickbot does not check to see if a person is banned for devoicing (yet), which means they could be kicked without returning; there is no 'penalty' for this, but people will be annoyed that you ruined the game
  • only janitors can steal the potato - stealing the potato is useful so that an idle nick does not get kicked needlessly; janitors do this with the divert toss command (see op / janitor commands)
  • you can't give someone no time to repass - the available time to pass lowers each toss, but the lowest it can go is 4 seconds
  • fumbling the potato - the chance of fumbling (dropping) the potato is different for each way method of passing; if you fumble you must repass the potato with 2 less seconds to do so
A tremendously useful chart detailing potato traversing (note: any fumble is -2 points):

time change/points
fumble odds
toss [nick]
pass [nick]
chuck [nick]
hurl [nick]
fling [nick]
0 to -6/+5
? [nick]
[nick] loses

High-Low Game
The high-low game is nearly the same as AV's was. Basically an op/janitor will start the highlow game and pick a number from 1 to 100000 that you must guess (see highlow in op / janitor commands). You do this by using the guess [#] command. Tickbot will tell you whether or not the chosen number is higher or lower. Whoever guesses the number first wins and their name is added to a list of winners. Winning a game gives you +10 points.

Acrophilia is basically another take on the somewhat well known IRC game 'Acrophobia'. This game is divided into two phases. In the first phase Tickbot provides an acronym 3 to 6 letters long that any person in the channel can make up a definition for by noticing submit [definition] to tickbot. The first letters have to match the acronym, obviously, and each person can only submit one definition. If you submit another definition, it will replace your old one. Only the first ten submissions given within a period of 60 to 90 seconds are used for the second phase: voting. Anyone in the channel can vote, once, for any definition that they like the best. The only restriction is that you cannot vote for your own definition. Voting is done by noticing vote [#] to tickbot. After a second period of 60 or 90 seconds the voting results are displayed, and each person's total is added to an overall score. Finally, acrophilia may only be started or turned off by an op / janitor.

Scores are now a function of Acrophilia. A play recieves +5 points for getting the most votes (including ties) as well as 1 point for every vote recieved. More complicated point stuff may be added in the future.

Tickbot's Trivia game is very simple and is almost completely similar to the old trivia game maintained by Link. A random question is chosen and displayed along with its answer where letters and numbers are replaced. Guessing the answer simply consists of typing what you think it is, there are no special commands to submit an answer. The first person to type the correct answer wins. The question and clue for the answer are displayed four times, each time with more letters of the answer displayed. Here is how clues are given and how many points you will recieve if you guess it:

help given
no letters
first letter of each word
first and last letter of each word
first, last, and one random letter of each word

Trivia can be enabled by an op using trivia on and disabled using trivia off. Janitors can skip questions using trivia skip. If you get three questions in a row, you are on a streak. The length of your streak will add to your score, so, for example, if you've gotten five in a row you will recieve 5 bonus points. Exclamations will also change to be from RSG. Streaks and trivia questions answered are tracked in your profile.

Fight Command
This 'game' is when you put in two competing things and Tickbot will choose a winner based on an algorithm it puts the text through to arrive at a number value. The item with the higher number value is the winner. There are some tricks to getting a higher value, which is fun to play around with, but so far no one has figured out the process exactly. The 'score' subcommand will list up to 30 different scores without any comparisons. Here's the syntax:

tickbot fight [item 1] [item 2]
tickbot fight scores [item 1] ... [item 30]

Any [item] must use an underscore (_) in place of any space character. Note that on 7-24-05 the algorithm for calculating scores was changed. The 'fun' and 'tick' bug/feature was also fixed to only work if the [item] is equal to 'fun' or 'tickbot' and also then alters the score differently. Also note that if you do not specify 2 and only 2 items for just 'fight', it will mimic the 'scores' subcommand.

Death Command
This command will predict the time and method of death for anything you want, and it is 100% accurate. The time of death remains constant, but the method of death is random.

Spin the Bottle Game
While spin the bottle isn't exactly a "game" (everyone is a winner!!!!1one), it's a fun waste of time that doesn't involve ops or janitors needing to activate it. Simply typing spin will have Tickbot pick a random name in the channel that you 'kiss'.

8Ball Command
The 8ball command is simple enough. You say 8ball [yes or no question] and Tickbot will reveal the truth in absolute certainty. Worship.

Dice Command
The dice is really only useful for RPG's (even though no one has essentially used it for such, just another command in the list of useless stuff). The dice command is formatted into the following syntax:

tickbot dice [rolls] [sides]

The [rolls] can be no more than 50 and there must be 2-200 [sides] on the existential dice. Tickbot will roll the dice [rolls] times and add up the total of each result while also displaying what each roll gave.

Implications are simply sentences that may or may not be implying something about a user despite sounding normal or random. There is no specific command, you just say tickbot [nick] and tickbot will choose a random implication. Originally these were applied towards Iri alone and not by Tickbot, but later returned after Dalspots mentioned orange juice (don't ask). This inspired adding the imply command to Tickbot. Several people contributed to the list, including Dalspots, Ninjapixie, iCeD, Trafton, Monolith, and Spaztic.

Laid Command
Predicts the likelihood that someone will get laid within a certain period and with whom.

text manipulation
Funnily enough, all of the remaining original special commands can be summed up as manipulators of text. Most of them are methods of encoding/decoding text or changing how text appears, or manipulating words and phrases people have said in the channel.

Jabber Command
The jabber command is a fun way of generating nonsense. Basically, the jabber file contains the last 100 lines of chat that meet certain critera (tickbot commands, monobot commands (including up/down votes), lines that contain 'haha', or lines less than 6 characters long are not saved), and then will mix together random words and phrases to create nonsense. Two new features are channel or nick specific jabbers, as well as a jabber of jabbers by specifying tickbot as the nick. A channel or user file needs 20 lines to do a jabber. Also, another new update was made when the 'jabber2' experiment to create a better nonsense algorithm was completed and replaced the old jabber. The old jabber is now usable with 'jabber2'.
  • jabber(2) - displays a jabber based on current channel
  • jabber(2) [nick/chan]- jabbers based on lines from [nick] or [chan]
  • jabber(2) tickbot- jabbers from previous 100 jabbers
  • jabber last- displays last user/channel jabber'd (useful with rsg feed)
  • jabber files- displays total number of jabber files on record (including incomplete files)
  • jabber jcf- displays a jabber based on the JCF using the jcf jabber php script by iCeD (broken)

Ascon Command
The ascon (ASCii CONvertor) command replaces the bin, debin, oct, deoct, hex, and dehex commands and expands upon them. It converts strings of regular text into strings of their ascii values in different bases. Here is the command format:

tickbot ascon [base1] [base2] [text]

This will convert [text] from [base1] into [base2]. Either [base] input must be a number from 1 to 36. Obviously there is no base 1, this instead represents normal text. It is important that [text] is a multiple of [base1]'s maximum string length per char for correct parsing, however this shouldn't normally be a problem. Sometimes [text]'s output in certain bases may be too long to fully display as well (usually only an issue with smaller bases).
Encode Command
Encoding text is a simple way of using a custom cipher to encode text. Here is how the encode command is set up:

tickbot encode [algorithm] [text]

The [algorithm] is a mathematical process where the letter x denotes the ascii value of each subsequent letter in [text]. For example, x+1 would make "abc" into "bcd". You can use any basic mathematical operation, but keep in mind that some will not work properly - for example, x/3 would give a lot of non-integers so decoding wouldn't work properly, or some letters might end up showing up as other letters.

To decode from something done in encode, you need to take the inverse of the original [algorithm]. If you don't know what I mean, I doubt I can explain it, but it's pretty easy to understand. If your original [algorithm] was x+1, then to decode the text, you would use x-1. If you want to get technical, let's say y=[algorithm], where [algorithm] contains the method containing x. On paper, switch the x and y, and then resolve for y. This will give the inverse.

(Spaztic) tickbot encode ((x*4)/2)+11 Avast, me hearties!
(Tickbot) Spaztic: cM
(Spaztic) tickbot encode ((x-11)*2)/4 cM
(Tickbot) Spaztic: Avast, me hearties!

Colour Commands
These are two entirely worthless commands, but oh well.
  • colour [text] - gives each letter of [text] a random foreground and background colour
  • colour2 [text] - gives each letter of [text] a random foreground colour
l33t Command
In the form l33t [text], the l33t command makes each letter of [text] into the annoying l33t style. For example, e becomes 3 and w becomes \^/.

ASCII Values Commands
'asc' gives you the ascii value for each character. 'chr' gives you the character from an ascii value. For chr, you must put a space between each number. asc will give you the character code for spaces as well which could be a waste.

Hash Command
Another pointless command, hash [...] gives you the md5 hash for [...].

Le fin.
I am not an animal.
Thanks for viewing the Tickbot readme! Continue checking this page for updates or I will kill you in your sleep. Tickbot is Copyright Spaztic 200x and proper credit is given where credit is due. Much thanks to everyone who has helped out and everyone in #jj2 for the years of stupid.