Updated November 13, 2013
E2D2 is an E2 account-holding chatterbox bot written in C# by in10se. He is named after the lovable droid from Star Wars, R2-D2. While he was lurking in the catbox for about a week or so before this, he said his first words in the catbox on May 8, 2009 by giving a karma update. In March 2011, version 2 of the bot was completed with several new features.
View his homenode which includes a lovely picture of him, or view the E2 Annex to find him on a world map.
News and Announcements
(If linked, the date points to a daylog with details about the announcement.)
- November 13, 2013 - You can now ask the bot, "What should I vote on?" and it will return a low-vote writeup for you to spend your vote on.
- April 24, 2012 - Fixed/improved the "favorite words" feature (which also has an effect on the "topic" feature
- April 18, 2012 - New Feature! The bot can now "auto-softlink" any writeup. Example command: "E2D2 softlink Brian Eno"
- November 29, 2011 - The bot now feeds the statistics of the E2 Annex. Also added a FAQ below.
- August 9, 2011 - Changed the cXP and cGP values awarded. Mostly increased cXP you earn for actions and decreased the cGP cost of things.
- March 25, 2011 - Version 2.0 released
- January 14, 2011 - Karma explained
How to Interact with E2D2
Publicly, you can interact by the bot by issuing it commands (see below), or speaking to it ensuring that you mention its name, 'e2d2', somewhere in your message. Typically this is done by starting your message with its name such as:
e2d2: Hello! How are you?
You can also send private messages to the bot. Private messages do not have to include the bot's name since it is already assumed.
E2D2 is case in-sensitive meaning it doesn't matter whether you use upper case or lower case when interacting with it.
Features
In addition to running any of the commands and its chatterbot functionality, the bot also keeps track of various information and statistics related to the chatterbox and users in the chatterbox. Some of this information includes:
Chatterbox XP and GP (cXP and cGP)
It is important to note that these stats are not official in any way, and are simply for fun - similar to karma.
E2 has XP (experience) and GP (gold pieces) based on your writeup contributions and votes. Now E2D2 will track your Chatterbox XP and GP based on the chatterbox conversation. The ways you can earn or lose/spent cXP and cGP are detailed lower in this writeup. While most commands are completely free, the 'Price' associated with certain commands below is how much cGP it costs to use the command.
cXP is similar to E2's XP. While there are several ways to earn it, it is most commonly earned by other users linking to your writeups in the chatterbox (note: nodevertising gets you negative cXP), using eggs or getting egged, and getting karma. See below for a more detailed list.
cGP is similar to E2's GP. Again, there are numerous ways to earn cGP, you most commonly get it at the same time you earn cXP - you get one point of cGP for every point of cXP. While there is no way to spend cXP, you can spend cGP on certain using certain bot commands.
Swear Jar
This is just for fun. I don't care if you swear, and no one is trying to censor you.
Besides cXP and cGP, a third stat is also tracked - the swear jar. Each time you swear, a specified amount of cGP is subtracted from your account based on how 'bad' the word is. For the sake of family-friendliness of this writeup, the list of bad words and their cost can be viewed in E2D2's draft titled 'Swear Jar'. Compound bad words (single words with more than one bad word contained in it) are compounded in cost.
Karma
Noders in the chatterbox like to append '++' and '--' to users, words, and phrases. ++ is good, -- is bad, and the bot keeps track of the totals.
Commands
All commands can be performed in the public chatterbox or through private message to the bot. Unless specified otherwise, private messages will be responded to privately. In most cases the syntax below is for the public command. The private command is exactly the same except instead of starting the command with 'e2d2', you simply send a message to the bot with '/msg e2d2'.
While it doesn't matter to the bot if you send your commands via public or private message, some commands are more appropriate for private /msg than others, and it is suggested that you submit them that way unless the output would be useful, interesting, or amusing to other online users. Examples include the user stats feature, many karma requests, and any testing you want to do with the bot. It should be noted that it can take up to 2 minutes for a private message response, though responses are typically a bit faster than that.
User Stats
Command: e2d2 stats for {username}
Price: Free to ask for your own stats via private message; 5 to ask for your own stats publicly; 2 to ask for someone's stats other than your own (public or private)
Returns the cXP, cGP, and Swear Jar value for the specified user.
Command: e2d2 subscribe stats
Note: Though swearing subtracts from your cGP, you will NOT receive notifications for each time you swear.
An opt-in way to subscribe to your stats (cXP/cGP) updates. Notifications will be sent to your account via private message. There is no attempt to limit, combine, or throttle the number of messages, so if for some reason you or your nodes become the topic of discussion in the chatterbox, you may receive a lot of messages in a short period of time. You are given a 1cGP test credit when you subscribe to show that the subscription is turned on and to give you an example of how it works.
One of the nicer things about this feature is that you will be notified anytime someone links to one of your writeups or your homenode in the chatterbox.
Command: e2d2 unsubscribe stats
Unsubscribe from stats notifications. The 1cGP test credit you received when you subscribed is taken back to show that the subscription is turned off.
Alias
Command: e2d2 add alias {alias_name}
Optional Commands: 'add' can be replaced with 'create' or 'insert'
Price: 50
Add a chatterbox alias for yourself. Aliases must be unique, and cannot be an existing username (even if they have never logged in). They must reflect actual names/abbreviations that people call you in the chatterbox. Abuse of the alias command will result in a 10,000 cGP fine and removal of all existing aliases.
Command: e2d2 remove alias {alias_name}
Optional Commands: 'remove' can be replaced with 'delete'
Removes an existing chatterbox alias for yourself. You are not refunded cGP for removing an alias.
Command: e2d2 show aliases for {username}
Optional Commands: various similar commands like 'what are the aliases for', 'list the aliases for', 'read aliases for', etc.
Shows the alias(es) belonging to the specified user
Command: e2d2 who is alias {alias_name}
Optional Commands: various similar commands like 'identify alias'
Shows the user who owns the alias.
Attack
Command: e2d2 attack {username}
Optional Commands: 'attack' can be replaced with 'kill', 'protect me from', 'smite', 'rough up'
Response: The response from this command will be displayed publicly even if sent via private message
Price: 35 (net 25)
Will 'attack' another user. Also steals 10cXP from the attacked user.
Insult
Karma
See 'Additional Features' for more on karma.
Command: e2d2 karma {word_or_phrase}
Optional Commands: can also say 'karma for'
Price: 1 if asking about yourself, 1 for asking publicly
Note: Unlike other commands with prices, you will not be blocked from looking up karma even if you have 0 (or less) cGP, but you will still be charged.
Will display the Karma value based on the ++s and --s in the chatterbox
Markov chains are semi-random text generated based on the word frequencies and word orders found from other sources such as chatterbox text or writeups.
Command: e2d2 tell me about {word_or_phrase}
Optional Commands: Similar phrases such as 'what are people saying about', 'tell us about', 'what is', 'who is', etc.
Special Values: If you enter 'me' for the {word_or_phrase} (i.e., 'what are people saying about me'), it will respond with information about your username and aliases.
Response: The response from this command will be displayed publicly even if sent via private message
If {word_or_phrase} is a hard/pipe link, it will return a Markov chain based on the node linked. If it is not a link, it will return a Markov chain based on chatterbox messages containing the keywords.
Command: e2d2 what would {username} say
Optional Commands: you can also say summarize {username}
Response: The response from this command will be displayed publicly even if sent via private message
This will take all the combined messages of the specified user and generate a Markov chain in the style of that user.
Command: e2d2 what would {username} say about {word_or_phrase}
Response: The response from this command will be displayed publicly even if sent via private message
This will take all the combined messages of the specified user that mention the word or phrase and generate a Markov chain the style of that user.
See also the 'process my writeups' command below.
Nodes and Writeups
The Markov Chain heading above also contains commands that, if formatted as links, can work with nodes and writeups.
Command: e2d2 what should I vote on
Response: The response from this command will be displayed publicly even if sent via private message
This will return a link to a writeup with few votes
Command: e2d2 {any phrase containing the words 'good', 'bad', and 'ugly' (in that order)}
Response: The response from this command will be displayed publicly even if sent via private message
This will return 3 writeups: good will have a high reputation, bad will have a low reputation, and ugly will have upvotes and dowvotes but have a rep close to 0.
Command: e2d2 process my writeups
Price: 100 (100cGP will be refunded and an additional 100 will be awarded if you chose to have the writeup published)
This will cause the bot to download all of your writeups and generate several paragraphs of Markov chains based on your writing. You can choose to have the bot publish a daylog containing paragraphs of your choice from the generated content.
Random and Vs.
The 'random' command is simple to use, but offers a variety of different output based on what random 'thing' you are asking for.
Command: random {username}
Response: The response from this command will be displayed publicly even if sent via private message
This will return a random quote from the specified user.
Command: random {nodetype}
Response: The response from this command will be displayed publicly even if sent via private message
This will return a random node of the specified nodetype. Examples include: user, e2node, writeup, room, superdoc, superdocnolinks, and usergroup.
Command: random {writeuptype}
Response: The response from this command will be displayed publicly even if sent via private message
This will return a random writeup of the specified writeuptype. Examples include: definition, dream, essay, event, fiction, how-to, idea, lede, log, person, personal, place, poetry, recipe, review, and thing.
Command: random nodeshell
Response: The response from this command will be displayed publicly even if sent via private message
This will return a random nodeshell.
Command: random {word_or_phrase}
Response: The response from this command will be displayed publicly even if sent via private message
If the specified word or phrase does not fall into any of the categories above, this command will be nearly equivalent to the 'e2d2 tell me about {word_or_phrase}' command in the Markov Chain heading above.
Command: e2d2 {keyword_1} vs {keyword_2}
Response: The response from this command will be displayed publicly even if sent via private message
Optional Commands: can use 'vs.', 'v', 'v.', or 'versus' instead of 'vs'
Based on the rules above for the 'random' command will generate two messages based on {keyword_1} and {keyword_2} (which could be users, nodetypes, writeuptypes, or any word/phrase).
Puppetmaster
You can now become a puppet master and control the bot yourself! This command is only available through private message to the bot.
Command: /msg e2d2 say {text_for_the_bot_to_say}
Price: 25
Response: The response from this command will be displayed publicly even if sent via private message
This will cause the bot to publicly say exactly what is specified in the {text_for_the_bot_to_say} text. You can potentially use any valid free chatterbox command including /me, /sing, /whisper, etc (e.g., '/msg e2d2 say /me is hungry'). You may NOT attempt to use eggs, change the topic, or perform any other actions that would cost the bot GP or tokens. While there are mechanisms to prevent this, you are also not permitted to attempt to give yourself karma or increase your cXP or cGP in any way. Abuse of this command (which is determined by in10se or any Content Editor or chanop who contacts me) will result in a 100,000 cGP fine and the possibility of being put on the bot's ignore list.
NOTE: It is your responsibility to ensure the bot is online and in the correct room before sending this command. There are no refunds because you weren't online, or the bot wasn't outside when the message was posted.
Trends
NOTE: This feature is in beta and may not always produce meaningful information until the bugs are worked out.
{time_period} below can be hour/hourly, day/daily, week/weekly, or month/monthly. 'year' and 'decade' are also available, but the bot doesn't have an archive of that size yet, so the results will not be accurate.
Command: e2d2 topic
Optional Commands: can use 'favorite words', 'summary', 'summarize', 'what's going on', or 'what's happening' instead of 'topic'
Response: The response from this command will be displayed publicly even if sent via private message
Will generate an 'on-topic' message based on the last hour of chatter.
Command: e2d2 topic by {time_period}
Optional Commands: see above
Response: The response from this command will be displayed publicly even if sent via private message
Will generate an 'on-topic' message based on the specified time period.
Command: e2d2 summarize {username} for the {time_period}
Optional Commands: 'favorite words of {username} by {time_period}', 'topic {username} this {time_period}', 'what's going on with {username}...', and various similar commands.
Example: 'e2d2 summarize in10se for the week'
Response: The response from this command will be displayed publicly even if sent via private message
Will generate a list of the 'trending' keywords used by the user over the specified time period, and a Markov chain including those keywords.
Command: e2d2 summarize {keywords} for the {time_period}
Optional Commands: see above
Response: The response from this command will be displayed publicly even if sent via private message
Similar to the command above, except it will generate trends based on the keyword as opposed to the user.
Command: e2d2 summarize {username}
Response: The response from this command will be displayed publicly even if sent via private message
Same as above, but defaults to 'week' for the time period.
Command: e2d2 summarize {keywords}
Response: The response from this command will be displayed publicly even if sent via private message
Same as above, but defaults to 'day' for the time period.
Version
Softlink
The bot can "auto-softlink" and e2node or writeup. This means it will read through and click on each link a specified node to fill the softlink table for you. You will receive a basic summary report via private message when the bot has finished. If the report says that 1 or more of your links is "unsoftlinkable", this means that clicking on the link leads to a Findings: page or links to a non-e2node (such as a superdoc). Only e2nodes are able to be softlinked.
Freeform Chat
The commands above expect specific format/syntax to work, but the bot can also respond to freeform dialog (as long as the dialog contains 'e2d2' somewhere - including pipe links). E2D2 one of two methods to do this: Artificial Intelligence Markup Language (AIML) and a hybrid Markov-like system which attempts to pull out the most important words from your message and figure out how to reply. The second option is very much in beta and will occur on average 1 out of 3 times a free form message is encountered.
Earning, Losing, and Spending cXP and cGP
While I hope to never have to use it, all cXP and cGP updates are logged, so please don't try to work in groups to artificially increase your stats. Trends will be quite easy to pick out.
cXP
-
Links
- +25 cXP: Someone links directly to a writeup by you (or a linked e2node only contains a single writeup by you)
- +10 cXP: Someone links to an e2node containing a writeup by you
- +1 cXP: Someone links to a nodeshell you created
- +5 cXP: Someone links to your homenode
- -(variable) cXP: If you nodevertise, your cXP is decremented instead of incremented based on the values above
-
Bot Commands
- +1 cXP: Being included as a user in a Random, Versus, Markov, or Trending command that you didn't initiate. There is no penalty for including yourself in a command - you just won't get the cXP.
- +10 cXP: Attacking another user (see Attack command above)
- -10 cXP: Being attacked by another user
- -1 cXP: Being insulted by the Insult command
- +1 cXP: Someone checks your user stats publicly
-
Eggs
- +1 cXP: Egging someone (other than yourself)
- +3 cXP: Being hit by a 'good' egg (/beer, /highfive, /hug, /omelet, /omelette, /tea)
- -3 cXP: Being hit by a 'bad' egg (/anvil, /egg, /guacamole, /maul, /pie, /pizza, /smite, /tomato)
- Random from -3 to 3 cXP: Being hit by an 'ambiguous' egg (/hugg, /giantsquid, /rubberchicken, /special)
- -25 cXP: Egging yourself
-
Karma
- +1 cXP: Receiving ++ karma
- -1 cXP: Receiving -- karma
- -1 cXP: Looking up your own karma
- +1 cXP: Someone looks up your karma
-
Other
- -(variable) cXP: Doing something stupid. The bot will let you know...
cGP
- +1000 cGP: Reporting a REPRODUCIBLE bug.
- +1000 cGP: Being welcomed by the bot for the first time2
- +(variable) cGP: For every 1 point of cXP, you receive a matching 1 point of cGP. Receiving negative cXP does not subtract cGP.
-
Bot Commands
- -50 cGP: Create an alias
- -50 cGP: Being attacked by another user
- -100 cGP: Using the 'process my writeups' command (see next item for refund info)
- +200 cGP: Having your processed writeup published (net gain of 100)
- -25 cGP: Using the 'say' (i.e., puppet master) command
- -2 cGP: Requesting another user's stats (publicly or privately)
- +1 cGP: Having someone request your user stats publicly
- -5 cGP: Requesting your own user stats publicly (private requests for your own stats are free)
-
Karma
- -1 cGP: Looking up any karma publicly
- -1 cGP: Looking up your own karma (public or private)
- +1 cGP: Someone looks up your karma
-
Eggs
- -5 cGP: Hitting someone with a 'good' egg (You are 'giving' cGP to the user. See above for list of 'good' eggs)
- +5 cGP: Hitting someone with a 'bad' egg (You are 'stealing' cGP from the user. See above for list of 'bad' eggs)
- Random from -5 to 5 cXP: Hitting someone with an 'ambiguous' egg (See above for list of 'ambiguous' eggs)
- -5 cGP: Egging yourself
-
Other
- -(variable) cGP: Swearing (see swear jar above)
- -(variable) cGP: Doing something stupid. The bot will let you know...
- +(variable) cGP: I may be willing to barter for cGP if you run out
F.A.Q. (Frequently Asked Questions)
Q: What happens if I don't have enough cGP for an action/command?
In most cases you will be prevented from executing a command (karma is a notable exception). Nothing fancy is done if you are charged for something and don't have enough credit - your cGP value just moves into negative range.
Q: What date did you begin calculating stats?
Stats for cXP, cGP, and the Swear Jar began accumulating some time on March 24, 2011. I considered going back into the archive and calculating old messages, but that would be a very slow, painful task.
Q: What are the 'bad words' counted for the swear jar?
You can see E2D2's public draft on this topic in swear jar.
The writeup for E2D2 version 1 is archived in my scratch pads