diff --git a/README.mkdn b/README.mkdn
index 503f337..6b7c6c4 100644
--- a/README.mkdn
+++ b/README.mkdn
@@ -56,8 +56,8 @@ and plain text.
- Idling. You can set yourself idle manually, and the computer will
set it for you after a configurable amount of time.
- Improved /me. Any letters immediately following /me will be
-processed correctly. e.g. /me'd rather be fishing -> -- ghostDunk'd
-[GD'D] rather be fishing --
+processed correctly. e.g. /me'd rather be fishing -> `-- ghostDunk'd
+[GD'D] rather be fishing --`
- Hyperlinks! Now if someone types http://whatever it will turn into a
link you can just click and follow. No more copy/paste.
- Memo links. Link your friends to your memos.
@@ -67,8 +67,8 @@ list later on in this readme.
FA%
---
-Q: Norton says it has a virus and then deletes it!
-A: Read this helpful Norton FAQ:
+__Q:__ Norton says it has a virus and then deletes it!
+__A:__ Read this helpful Norton FAQ:
Alright, here's a guide to by-passing Norton:
@@ -98,52 +98,54 @@ Alright, here's a guide to by-passing Norton:
------------------------------------------------------------------------------------
-Q: I can't connect because my school/university/network/stolen wifi is blocking my connection! OR I can't seem to connect to the server at all and I'm not running any firewalls!
-A: Edit your pesterchum.js file. Open it up in notepad or something, and then edit the beginning so it looks like this:
+__Q:__ I can't connect because my school/university/network/stolen wifi is blocking my connection! OR I can't seem to connect to the server at all and I'm not running any firewalls!
+__A:__ Edit your pesterchum.js file. Open it up in notepad or something, and then edit the beginning so it looks like this:
+```
{"port": "1413", ....
+```
where the .... is the rest of the gobbledygook there.
------------------------------------------------------------------------------------
-Q: The mood buttons on Pesterchum 6.0 don't match up to what it sets your mood to! What gives?
-A: The mood names are just there to look canon. It is intentional.
+__Q:__ The mood buttons on Pesterchum 6.0 don't match up to what it sets your mood to! What gives?
+__A:__ The mood names are just there to look canon. It is intentional.
------------------------------------------------------------------------------------
-Q: I'm appearing as offline to 2.5 users/other users appear the wrong
-mood? What's happeninggggg
-A: The 2.5 people decided to change the mood protocol. When I made
+__Q:__ I'm appearing as offline to 2.5 users/other users appear the wrong
+mood? What's happeninggggg
+__A:__ The 2.5 people decided to change the mood protocol. When I made
this program, I decided to go with Tinychat's original protocol (and
extend it). So some moods will appear wrong between 2.5
-users. (*COUGH*tell them to switch to 3.14*COUGH*)
+users. (\*COUGH\*tell them to switch to 3.14\*COUGH\*)
------------------------------------------------------------------------------------
-Q: Pesterchum 2.5 users don't get my /me messages correctly!
-A: That's because they implemented the /me command differently.
+__Q:__ Pesterchum 2.5 users don't get my /me messages correctly!
+__A:__ That's because they implemented the /me command differently.
------------------------------------------------------------------------------------
-Q: Can we resize the main window?
-A: No. This is done so we can offer more flexible UI creation. It's a
+__Q:__ Can we resize the main window?
+__A:__ No. This is done so we can offer more flexible UI creation. It's a
lot easier to make themes that look canon this way.
------------------------------------------------------------------------------------
-Q: Can we have different chum rolls for different users?
-A: No. Instead what we now have crum groups to organize people.
+__Q:__ Can we have different chum rolls for different users?
+__A:__ No. Instead what we now have crum groups to organize people.
------------------------------------------------------------------------------------
-Q: Can we delete profiles?
-A: Yes. Go to the profile switcher, choose a profile and press DELETE.
+__Q:__ Can we delete profiles?
+__A:__ Yes. Go to the profile switcher, choose a profile and press DELETE.
------------------------------------------------------------------------------------
-Q: You should make it so you can ban specific time frames in memos.
-A: This was too complicated to implement, and I don't have the UI
+__Q:__ You should make it so you can ban specific time frames in memos.
+__A:__ This was too complicated to implement, and I don't have the UI
quite figured out. This will probably go in a future update.
@@ -160,6 +162,7 @@ this your default profile.
BASIC PESTERING
---------------
+
To begin pestering, first click the "ADD CHUM" button and type in
their pester handle. The handle must be all lower case except for one
capital letter. Once you've added that person, they will appear on
@@ -179,33 +182,44 @@ pestered by someone you don't have on your list yet!)
While pestering your chum, here are some useful features:
* Type /me to create a system message. "/me facepalms." will generate:
--- ghostDunk [GD] facepalms. --
+
+ ```
+ -- ghostDunk [GD] facepalms. --
+ ```
+
You can also append 's after /me like so: "/me's computer exploded."
--- ghostDunk's [GD'S] computer exploded. --
+
+ ```
+ -- ghostDunk's [GD'S] computer exploded. --
+ ```
+
In fact, any characters you type after a /me before the space will
be added: "/meing is the Ghost Nation's official pastime."
--- ghostDunking [GDING] is the Ghost Nation's official pastime. --
+
+ ```
+ -- ghostDunking [GDING] is the Ghost Nation's official pastime. --
+ ```
* Color tags! If you feel the need to talk about The Green Sun or add
some appleberry blast to your conversation, just use color
- tags. These work like in TC 1.5:
- PREFIX: ":33 < " +* __Prefix/Suffix:__ + This will put text before or after everything you + say. So for example, we can use prefixes to emulate part of Nepeta or + Equius' quirks: + + ``` + PREFIX: ":33 < " You type: "*ac twitches her friendly whiskers at ct*" Result: - AC: :33 < *ac twitches her friendly whiskers at ct* -+ AC: :33 < *ac twitches her friendly whiskers at ct* + ``` -
- PREFIX: "D --> " + ``` + PREFIX: "D --> " You type: "Hi" Result: - CT: D --> Hi -+ CT: D --> Hi + ``` Suffixes work the same way, but at the end of the message: -
+ ``` SUFFIX: "!!!" You type: hey there Result: GD: hey there!!! -+ ``` Remember that it doesn't automatically add a space! You'll need to add it in (see CT and AC examples again!) -* Simple Replace: +* __Simple Replace:__ This will simply take a set of characters and replace them with other characters. * Let's add a quirk to our Nepeta: -
+ + ``` Replace: "ee" With: "33" You type: "*ac saunters from her dark cave a little bit sleepy from the recent kill*" Result: - AC: :33 < *ac saunters from her dark cave a little bit sl33py from the + AC: :33 < *ac saunters from her dark cave a little bit sl33py from the recent kill* -+ ``` * Let's add two to Equius: -
+ + ``` Replace: "loo" With: "100" Replace: "x" With "%" You type: "look" Result: - CT: D --> 100k + CT: D --> 100k + ``` + ``` You type: "What are you expecting to accomplish with this" Result: - CT: D --> What are you e%pecting to accomplish with this -+ CT: D --> What are you e%pecting to accomplish with this + ``` * Aradia: -
+ + ``` Replace: "o" With: "0" You type: "and the reward would be within our reach" Result: AA: and the reward w0uld be within 0ur reach -+ ``` Notice that it is CASE SENSITIVE. So in the above case, if you typed "ABSCOND", it would not replace the "O". * Sollux: -
+ + ``` Replace: "i" With: "ii" Replace: "s" With: "2" -+ ``` * Eridan: -
+ + ``` Replace: "v" With: "vv" Replace: "w" With: "ww" -+ ``` * Feferi: -
+ + ``` Replace: "h" with: ")(" Replace: "H" with: ")(" Replace: "E" with: "-E" -+ ``` -* Regexp Replace: -This is a more complex kind of replacement. Regexp stands for "regular -expression", a kind of programming language (yes, it is a language) -used to find and replace text. PC 3.14 also includes a function to -handle capitalization (upper()). If you want to learn it on your own, -I suggest you start with the Python tutorial -(http://docs.python.org/howto/regex.html) since PC 3.14 uses Python's -regexps. Check out V2.5's tutorial too, as that is a pretty good start -as well. +* __Regexp Replace:__ +This is a more complex kind of replacement. [Regexp](http://en.wikipedia.org/wiki/Regexp) +stands for "regular expression", a kind of programming language (yes, it is a language) +used to find and replace text. PC 3.14 also includes a few functions (`upper()`, +`lower()`, `scramble()`). If you want to learn it on your own, +I suggest you start with the [Python tutorial](http://docs.python.org/howto/regex.html) +since PC 3.14 uses Python's regexps. Check out V2.5's tutorial too, as that is a pretty +good start as well. * Let's start with Karkat. Regexps are just like your every day find and replace: they search for a string that matches what you want to replace, and replaces it with... the replacement. -
Regexp: "(.)" Replace with: "upper(\1)"+ + ``` + Regexp: "(.)" Replace with: "upper(\1)" + ``` Three concepts here. Let's look at the regexp. "(.)" has two things going on. The first is that ".". In regexp speak, "." is the wildcard: @@ -531,7 +582,7 @@ as well. means, "put the match inside parentheses #1 here". You can have any number of parentheses. - * "upper()" is a function special to PC 3.14 -- it will uppercase + * __"upper()"__ is a function special to PC 3.14 -- it will uppercase anything inside the parentheses. So in this case, upper will uppercase "\1" -- which, as you recall is what we found inside the parentheses. Which was *every* character. So to sum up, it replaces @@ -539,12 +590,13 @@ as well. MAKES YOU TALK LIKE THIS. * Let's look at Terezi next. -
+ + ``` Regexp: "[aA]" Replace with: "4" Regexp: "[iI]" Replace with: "1" Regexp: "[eE]" Replace with: "3" Regexp: "(.)" Replace with: "upper(\1)" -+ ``` We already know what the last line does. But what's up with those brackets? What's their deal? Basically, in regular expressions, @@ -554,25 +606,27 @@ as well. "i" and "I" will be replaced with "1", and "e" and "E" will be replaced with "3." - Just like there is an "upper()" function, there is also a "lower()" - function. It acts just like "upper()" but instead makes everything + Just like there is an `upper()` function, there is also a `lower()` + function. It acts just like `upper()` but instead makes everything inside the parentheses lowercase. This allows you to do things like: -
+ + ``` Regexp: "(.)" Replace with: "lower(\1)" You type: "I AM YELLING" Result: GD: i am yelling -+ ``` - Along with the upper and lower functions is a "scramble()" function. + Along with the upper and lower functions is a `scramble()` function. The purpose of this function is to randomly scramble anything inside the parentheses. -
+ + ``` Regexp: "(\w)(\w*)(\w)" Replace with: "\1scramble(\2)\3" You type: "hello there" Result: GD: hlelo trhee -+ ``` This particular regular expression scrambles all of the letters in the middle of a word. Notice that the "h" and "o" at the beginning @@ -583,38 +637,43 @@ as well. brackets instead match every character *except* the ones in the brackets. So, for example, if you wanted to have a quirk where you capitalized all your letters *except* o, you'd do this: -
+ + ``` Regexp: "([^o])" Replace with: "upper(\1)" You type: "hello there" Result: GD: HELLo THERE -+ ``` You can also specify a *range* of characters inside the brackets, by using the "-" character. [a-z] will match any lowercase letter. You can combine them, too: [a-z0-9] will match any digit and lowercase letter. There are also different shortcuts for character types: -
+ + ``` \d matches any digit; same as [0-9] \D matches any non-digit; same as [^0-9] \s matches any spaces \S matches any non-space \w matches any alphanumeric character; same as [a-zA-Z0-9_] \W matches any non-alphanumeric character; same as [^a-zA-Z0-9_] -+ + Note \w and \W also match extended Latin or Unicode alphanumerics. + ``` You can include this inside brackets, too. There's also a special character, \\b. What \\b does is make sure that you are at the beginning or end of a word. * So with that knowledge, let's try Kanaya: -
+ + ``` Regexp: \b(\w) Replace with: upper(\1) You type: "i suggest you come to terms with it" Result: GA: I Suggest You Come To Terms With It -+ ``` Another feature of regular expressions is the ability to match *repeated* characters. There are three repeat characters: the "\*", the @@ -622,7 +681,7 @@ as well. or character type you want to match. (So, you could say "\s+" or ".*") The "\*" character matches ZERO or more of that character. So, for - example, "f\*" would match "f" and "ff" -- and any other character! + example, "f\*" would match "", "f" and "ff" -- and any other character! That's right, every character counts as matching it zero times. Yeah, it's weird. I suggest you use... @@ -630,32 +689,37 @@ as well. wanted to have a character that wanted to elongate their s's so that they used four 's's every time, like sssso, but didn't want to have eight s's when using words with double s's, like pass, we'd do this: -
+ + ``` Regexp: "s+" Replace with: "ssss" You type: "you shall not pass" Result: UU: you sssshall not passss -+ ``` As for the other two, I can't really think of any useful quirks to be made with them. But to let you know, "?" matches either 0 or 1 of that character, so "trolls?" would match "troll" and "trolls". "{m,n}" matches between m and n characters. (If you leave out 'n', any number - of characters more than m will be matched.) So "s{2,4}" will match - "ss", "sss", and "ssss" and that's it. + of characters more than m will be matched: "s{3,}" will match 3 or more 's'.) + So "s{2,4}" will match "ss", "sss", and "ssss" and that's it. + + Also, "?" is equivalent to "{0,1}", "*" is equivalent to "{0,}", and + "+" is equivalent to "{1,}". Now with repeating expressions, we can do something like make EVERY other WORD capitalized: -
+ + ``` Regexp: "(\w+) (\w+)" Replace with: "upper(\1) \2" You type: "this is pretty annoying i bet" Result: GD: THIS is PRETTY annoying I bet -+ ``` - The \1 matches the first word -- which has been matched because the + The \1 represents the first word -- which has been matched because the word is alphanumeric characters, repeated once or more -- and \2 - matches the second word. + represents the second word. Another operator to use is the "|", which will match more than one set of characters. For example, "black|red" will match "black" or @@ -670,9 +734,10 @@ as well. behaviors. For example, if we have a quirk that adds "..." to the end of all our messages, we can set it up so it doesn't do that if we put punctuation [?!.] at the end. So: -
+ + ``` Regexp: "([^?!.])$" Replace with: "\1..." -+ ``` This will match the end of any message as long as it doesn't have "?", "!", or "." at the end. Then it will replace it with whatever the @@ -683,30 +748,32 @@ as well. one, you may not get what you expect because they will ALL be applied, one after the other! This is a bug in my opinion, that I plan to fix! -* Random replace: -Just like the regexp replace, except that instead of just one thing to -replace it with, you give it a list. PC will then choose from that -list randomly. So let's say I want to randomly end my sentences with -either "bro" or "dog": -
+* __Random replace:__ + Just like the regexp replace, except that instead of just one thing to + replace it with, you give it a list. PC will then choose from that + list randomly. So let's say I want to randomly end my sentences with + either "bro" or "dog": + + ``` Regexp: "$" Replace with: "bro" and "dog" -+ ``` * You can also imitate Araida's random "ribbits" in between words: -
+ + ``` Regexp: "\s" Replace with: " ribbit ", " ", " ", " ", " ", " ", etc.... -+ ``` - where " " is just a blank space added a bunch of times. (You can see - how many blank spaces you've added by clicking on the list.) You have - to add the spaces because each entry has the same chance of being - selected. (Yes, I know this could be improved.) If you add " ribbit " - and 9 spaces, " ribbit " will have a 1/10 chance of being picked. + where " " is just a blank space added a bunch of times. (You can see + how many blank spaces you've added by clicking on the list.) You have + to add the spaces because each entry has the same chance of being + selected. (Yes, I know this could be improved.) If you add " ribbit " + and 9 spaces, " ribbit " will have a 1/10 chance of being picked. Also note that if you add more than one prefix or more than one suffix, it will pick randomly from them instead of adding them both! -* Mispeller: +* __Mispeller__: Be careful with thsi one. The mispeller will randomly mispell x% of the words you type -- where x is the percentage you set the slider to. I have attempted to mimic SBaHJ mispelling style but whoof knows @@ -717,57 +784,57 @@ SMILIES ------- Here's a list of smilies: -* :rancorous: -* :apple: -* :bathearst: -* :cathearst: -* :woeful: -* :pleasant: -* :blueghost: -* :slimer: -* :candycorn: -* :cheer: -* :duhjohn: -* :datrump: -* :facepalm: -* :bonk: -* :mspa: -* :gun: -* :cal: -* :amazedfirman: -* :amazed: -* :chummy: -* :cool: -* :smooth: -* :distraughtfirman -* :distraught: -* :insolent: -* :bemused: -* :3: -* :mystified: -* :pranky: -* :tense: -* :record: -* :squiddle: -* :tab: -* :beetip: -* :flipout: -* :befuddled: -* :pumpkin: -* :trollcool: -* :jadecry: -* :ecstatic: -* :relaxed: -* :discontent: -* :devious: -* :sleek: -* :detestful: -* :mirthful: -* :manipulative: -* :vigorous: -* :perky: -* :acceptant: -* :olliesouty: -* :billiards: -* :billiardslarge: -* :whatdidyoudo: \ No newline at end of file +* `:rancorous:` +* `:apple:` +* `:bathearst:` +* `:cathearst:` +* `:woeful:` +* `:pleasant:` +* `:blueghost:` +* `:slimer:` +* `:candycorn:` +* `:cheer:` +* `:duhjohn:` +* `:datrump:` +* `:facepalm:` +* `:bonk:` +* `:mspa:` +* `:gun:` +* `:cal:` +* `:amazedfirman:` +* `:amazed:` +* `:chummy:` +* `:cool:` +* `:smooth:` +* `:distraughtfirman:` +* `:distraught:` +* `:insolent:` +* `:bemused:` +* `:3:` +* `:mystified:` +* `:pranky:` +* `:tense:` +* `:record:` +* `:squiddle:` +* `:tab:` +* `:beetip:` +* `:flipout:` +* `:befuddled:` +* `:pumpkin:` +* `:trollcool:` +* `:jadecry:` +* `:ecstatic:` +* `:relaxed:` +* `:discontent:` +* `:devious:` +* `:sleek:` +* `:detestful:` +* `:mirthful:` +* `:manipulative:` +* `:vigorous:` +* `:perky:` +* `:acceptant:` +* `:olliesouty:` +* `:billiards:` +* `:billiardslarge:` +* `:whatdidyoudo:`