WangBot Instructions

WangBot Instructions




be greeted as though you had just entered the room
Usage: !topic [new topic]
wangbot sets the topic


check your score!
Usage: !tip [nick] (amount) (comment)
Example: !tip willwybrow 5 being a great guy
tip an amount of your current points to another user as a reward, bribe, or act of kindness. the amount and comment parameters are both optional. if the amount is not specified, the default value of 1 is used. if the amount is more than your score, you tip the bucket. the first word after the nick is always interpreted as the amount if it is numeric, so just be careful if you are doing, for example, !tip TrustworthySam 1337 hax, you would tip up to thirteen hundred and thirty-seven points away that you might not have intended
!makeitrain (amount)
Tip every eligible-to-vote user at once
see the three richest players in all the land
see the three poorest orphans in all the landfill


!rank (nick)
display the rank and stars of you or someone else
see which stars you can afford and how to buy them
Buy yourself a copper star
!copper [nick]
Give one of your copper stars to another user
!copper wangbot
Sell one of your copper stars (for 50% of the cost to buy)
!promote [nick]
consolidates many of a person's small-value stars into fewer high-value stars. does not increase a person's rank but makes them look cooler
!demote [nick]
knock someone down a peg without actually affecting them. like all medals and decorations, utterly meaningless


See when the next lottery will occur! lotteries are drawn every Friday!
see how much you could win by entering the lottery!
!buyticket (rows)
buy rows chances to win in the lottery! the lottery is performed by the selection of two random numbers from 0-15. if any of your tickets contain rows with those exact numbers (in order) then you win!
gather in any cards held or on the table and shuffle them into the channel deck
!draw (number)
take one or more cards into your hand
!deal (number) [nick] (space-separated nicks)
deal number cards to each nick listed. cards dealt to wangbot get placed on the table
!table (number)
display the cards on the table, or, if a number is supplied, deal that many cards face-up onto the table
privately check which cards you're holding in your hand
openly display your hand to the channel


!audit (nick)
check how long it's been since a user gave a !tip to someone else in the channel. after two weeks of inactivity and every week thereafter, a user can be subject to a wealth tax of 10%. this is added 15 minutes after each lottery draw. a taxation lozenge will appear in the user's !rank


Many of these commands can take additional arguments that provide seed words for wangbot to base its synthesis on.

have wangbot state a thought. coherence not guaranteed
wangbot puts a thought straight into the topic
Example: !m a * in the hand is worth two in the *
macroinstruction to !opine in all the gaps marked by a space-padded * character


Usage: !tweet [message]
wangbot tweets your message from the @wangingout account
Usage: !tweply [twitter status URL]
Example: !tweply
wangbot does its own reply to the specified tweet, if possible
Usage: !twat @[twitter_username]
Example: !twat @willwybrow
short for "tweet at". wangbot replies to a user's latest tweet
Usage: !rt [twitter status url]
Example: !rt
wangbot retweets a tweet


Usage: !tw (@[twitter_username]|[twitter status URL])
Example: !tw @willwybrow
Example: !tw
wangbot pulls a tweet from a twitter stream. use this sparingly, though, since it sucks up my API calls. try .tw if the twitter account is unprotected
Usage: !tr :[from_language] :[to_language] [words to translate]
Example: !tr :en :ja robot
Translates, with an optional from and to language, the supplied message. If no to_language is supplied, it assumes en. If no from_language is supplied, it tries to guess.
Usage: !ud [term]
Example: !ud cumpkin
Get an urban dictionary definition for your supplied word


Usage: !line [case-insensitive search term]
searches the log files in reverse for the most recent appearance of the search term. logs write out to disk every few minutes so the immediate past is usually excluded from the search
searches the log files in chronological order for the first appearance of the search term.
Usage: !context [case-insensitive search term]
by request, grabs a four line block containing the search term, if it appears in the logs, to provide more context than a simple !line search
like first line but with context.


Ask for the floor in order to propose democratic motions. you keep it until you cede it, or it can be seized by another user after 5 minutes
check who currently has the floor, and for how long they've had it
cede the floor if you have it and cancel any unseconded motion you have proposed
list the enfranchised channel participants
Example: !imove that this club sucks
propose a motion to put on the statute book. it requires a !second who believes this motion is worthy of voting upon. it will appear in the list as "This channel believes " followed by your motion text. frequently (but not always), motions begin with "that", so !imove that this club sucks shows up as This channel believes that this club sucks unless it fails, in which case it shows up as This channel does not believe that this club sucks.
to sponsor a proposed motion and open the channel for voting on it
!yea (argument)
Vote in the affirmative for a currently proposed and seconded motion
!nay (argument)
negatory on that, houston
!abstain (argument)
abstain from exercising your right to democracy
Check the status of any current motion
each statute gets an article number. supply that number here to view the statute it corresponds to. use negative numbers to get the most recent statutes


Example: !acronym BBC
picks words from the dictionary to match the initials you supply
Example: !anagram feathers fall
limitedly tries to anagram the supplied string
Usage: !rhyme [words to rhyme]
Look up rhymes with various and unguessable accuracy
Usage: !roll [xdy+z]
takes basic dice notation and runs with it
one of the ten good, five medium and five bad mattel eight-ball responses. eurgh.
Usage: !pokémon [name or number]
seek out details of pokémon
Usage: !% (0—100)
prints out a little progress bar with a specified or random value between 0 and 100.
Usage: !rand [number]
prints out number random digits
Example: !tab trutab
Tabcomplete a known username
Usage: !upper [string to modify]
turns input string to UPPERCASE
Usage: !lower [string to modify]
turns input string to lower case
Usage: !title [string to modify]
indiscriminately turns input string to title case. weird results on apostrophe words and words that oughtn't be Titled
Example: !vreplace willwybrow
each vowel is replaced by another vowel that it isn't


make wangbot say things how you want
your nick
normally the same as $self, but when inside the first level of a greeting, replaced by the nickname of the user who is being greeted
Replaced by a nickname chosen randomly from all the nicks present
Replaced by a nickname chosen randomly, without replacement, from the list of registered users
A random digit, 0-9
A random alpha character, [a-zA-Z]
A random alphanumeric character, [a-zA-Z0-9]
A random uppercase consonant
A random uppercase vowel (including Y)
One of the twelve months we have, as a word
A random weekday
A random colour (in words)!
A random pokémon!
A random noun phrase from the system list of noun phrases. Small pool to choose from. Also typing $nouns will substitute in the plural form
a nested command. okay, so most of the commands in this instruction booklet can be embedded into a !w line or a greeting.
Example: !w $here is on record as saying "$(!opine)"
wangbot will do the work in his head and spit out the result
note that any command inside these parentheses will act almost exactly the same as if you had invoked it on its own. so any $vars in there will not be evaluated. typing !w $(!tip $here) will not tip a random here person, but instead try to tip a user called "$here" which obviously makes no sense
however, multiple levels of nesting is supported and $()s are evaluated from the inside out, so if you were to write !w $(!tip $(!w $here)), the innermost $(), which is !w $here gets evaluated first. That might return, for example JamieDass. then the line is in an internal state like !w $(!tip JamieDass) which is then evaluated. it makes perfect sense and I don't know why you'd think it would work any other way, chezmax


!r and !r0 through !r9 set and then get eleven user-specific variables.
if you supply !r with an argument, the value of that !r is set. type it on its own, wangbot says the value currently stored in it
Example: !r0 hello $nick
Example: !r0
This is a shorthand for the following: !w $(!r)
Likewise you have !wr0 to !wr9 for the other ten registers
This lets you put bits of wanguage in them, for example, !r0 $(!tip JamieDass)
Then type !wr0 which evaluates to !w $(!tip JamieDass) which tips JamieDass
One more feature specific to registers. %* placed inside a register will be replaced with user-supplied arguments when the register is executed using !wr
Example: !r0 $(!tip %*)
Then !wr0 JamieDass evaluates to !w $(!tip JamieDass) which acts as above


These commands are best issued in private to wangbot in a /query

/query wangbot
For those of you who don't know, this will open up a new window where you can communicate in private with wangbot
Usage: !addgreeting [greeting text]
Adds or updates a draft greeting. wangbot will let you preview it before adding it to the database, to check for typos. The greeting text can contain any of the wanguage features!
Example: !addgreeting $user bought $nick a ₩5$rand0,000 gold $noun on the 1$randth of $mond. $nick was delighted, but $user rated the purchase $char
After you use !addgreeting, wangbot will read back your greeting with some generic substitutions so you can see if it worked okay. Then type !confirm to add it to the database
add a noun and its article and plural to be used in $noun substitution


Get ten points. Your nick gets turned into something we can use.
!nickof [main_nick]
add an alt nick to wangbot's memory brain


use this if ever wangbot has wrecked himself (i.e., is present in the channel without being an op)
use this to call up clambot whenever she has fallen over which happens often because she is terrible