Superchat Shareware Version 1.0 Documentation Created by John Krajewski Disclaimer ========== Warning: This program does have swearing in it! Continue at your own risk! Not I nor anyone associated with this program will be responsible for any damage Superchat or any of it's components does to your computer. It is extremely unlikely, but in the event of such an occurrence, WE WILL NOT BE HELD RESPONSIBLE! Introduction: ============= Welcome to Superchat, created by John Krajewski. Superchat is a complex artificial intelligence program that makes it look like you're talking to an actual sysop, when you're really talking to a computer! Superchat works on or off a BBS, and can be configured totally to your desire! Everything from typing speed to the number of mistakes the computer makes to everything the computer says, you can easily change and configure it right in the privacy of your own home! Use Superchat on unsuspecting friends, see if they can figure out they're actually talking to a computer! It isn't easy. Great at parties! Or even better, set Superchat up on your BBS and give that pesky user who always pages just what he deserves. Features: ========= Listed below are some of Superchat's many features for the registered version. This is the shareware version.: * Totally configurable! Every word Superchat says you can change, edit, fix, or alter! You can also add as many responses as you want to make Superchat more and more intelligent. * Easy setup! Superchat will set it's typing style to match your yours, including such aspects as mistake speed, odds of making two mistakes in a row, so that Superchat will be typing virtually the same way you do! * IT WORKS ON YOUR BBS! * For BBS users, the sysop can break into chat and start typing instead of the computer typing, and the user won't notice a thing! You can then leave just as easy you came, and let the computer take over! See door info for more information. * Colorful layout for ANSI users! Set the chat screen to your liking in Startup.exe. It couldn't be easier! * When Superchat makes a typing mistake, the key it makes a mistake with will be next to the key it was trying to type! It's that realistic! * If some users already know about Superchat, you can edit the chat screens to not say Superhat, but instead say whatever you like! All you need is an ASCII editer, such as EDIT! * And much, much more! Registered ========== If for any reason you are not satisfied, contact me in the following place: John Krajewski 6010, 136th St. SE Everett, WA 98208 USA To register, send $15 along with your name and address to this address. Sorry, no credit cards accepted. Make checks payable to John Krajewski. And.. If you register and then get a friend to register, we will send you $5! All you need to do is have the friend write a note with his registration money stating your name, and if you have been recorded as a registered buyer, I will personally send you $5! Cool, huh? Any compliments, comments, or complaints you send me will be greatly appreciated! List of files: ============== You should have all these files in the same directory as Superchat: 1) Suprchat.exe This is the main program file, with all the artificial intelligence programming in it. 2) Startup.exe This is the config file. With it, you can set the name of the sysop, user, the emergency password, and much more. A special feature that will have the computer match your typing style and speed is also included! 3) Talk.dat All the language you see in Superchat is taken from from this file. You can not edit this file unless Superchat is registered, otherwise the program will halt. 4) Chatlog.txt Superchat puts everything the computer and users say into this file! Read it after letting your friend play for some laughs, they probably won't figure out it's a computer they're talking to! You may distribute this file freely. !WARNING! This file has a habit of becoming very large. Beware, and check it occasionally. It's OK to delete this file, Superchat will rebuild it. 5) Chat.txt You're looking at it. 6) Key.lst When the computer makes a mistake, it looks up this file to see what key is close to the letter it messed up on, so it seems like an actual person is typing! It's that detailed! 7) Key.loc Records the place marks in the talk.dat file for easy recall. 8) Menu.bat A file to make navigating through Superchat easier. 9) Names.dat Holds all the data from the Startup.exe file about your BBS name, sysop name, etc. 10) Speeds.dat A record of your typing style and speed. Contains information about everything from how fast you type, to the odds of Superchat making two mistakes in row! 11) Chat1.asc The file that Superchat reads from for display of the starting menu in Superchat. Feel free to edit this to you're hearts content, all you need is an ASCII editor such as EDIT in DOS or NOTEPAD in Windows. 12) Chat2.asc This is the file Superchat reads for display of the main chat screen. See above for editing tips. If you are missing any of these files, it could cause problems. Door Info: ========== Superchat will only work as a door when registered, but the info about it is shown here to let you see what it's like. One of the major highlights of Superchat is it's ability to work with your BBS as a door! To set it up, all you need to do is set the name of your BBS system path, BBS name, and sysop first and last name in the Startup.exe file and Superchat will do the rest! Direct your BBS to the BBS.bat file, which will initiate Superchat as a door. When a user is playing Superchat, or you are using it in local mode, there are some options you can access with the F-keys. Following are descriptions of each: F4 - Toggle page bell. Turning this off will prevent you from hearing the little beeps Superchat normally makes. It will not, however, stop the beeps on the users side. F5 - Shell to DOS. A message will be displayed on the screen for the user to see, and he/she will be prevented from doing anything until you return from DOS. Be careful to do this at an appropriate time, so the user doesn't figure out it's really a computer! F8 - Force caller to exit. This key and escape both force the user to return to the BBS. F10 - Perhaps one of the more interesting and not to mention more amusing features of Superchat, pushing F10 will initiate the sysop into chat. The computer will finish typing whatever it is currently typing (if anything) and will no longer reply to what the user says until you hit F10 again. After pushing F10, the sysop will be free to type whatever he/she likes to the user. But the best part is that the user will not know that anything has changed, so if the user asks a personal question or something you know Superchat won't answer to well, you can break in and say it for Superchat! For example: If the user is starting to suspect that Superchat is a computer and asks something like: If this isn't the computer, say "toy" now. You could push F10 and type: What are you talking about? TOY, there. Happy now? Then push F10 again and let the computer take over! Editing the language file: ========================== You can only edit the language file of Superchat when you are using the registered version. Yet another reason to shell out an cheap $15!! One of the great things about Superchat is that you can configure it however you want! The possibilities are endless. The talk.dat file allows you to use all of Superchat's advanced artificial intelligence techniques. I suggest using Superchat for a while to get an idea of how it works before editing the talk.dat file. Following is a brief description of each area in talk.dat: ----ONEWORD---- The entries in oneword are for statements the user says that are only one word long. The first entry is always in all caps, and can only be one word It is what the computer scans for from the user. After that, in the second place, is what the computer will reply with. In the third entry, where it says YES, is what the most likely response will be from the user. It can be any number of words (unlike the first), and after that, the response from the computer. Confused yet? Don't worry, you'll get it. Go into Superchat and type awesome, wait for it's reply, then type yes and watch. Ah ha! *example* AWESOME,Yeah it is pretty cool.,YES,CooL!!! ----TWOWORD---- This works exactly the same as one word, only the first entry is always two words instead of one. All the rest is the same. *example* KNOCK KNOCK,Who's there?,ORANGE,Orange Who? ----THREEWORD----- Same as above, but replace two with three. Notice the ~ symbol in the example. This causes the computer to hang up on the user after typing the message. You can use this symbol in ANY section of the talk.dat file, not just ThreeWord. You still need to put responses, even though they won't be seen because the computer scans for them. That's why NO is there. *example* I GOTTA GO,~Ok see you later!,NO,No. ----FOURWORD---- Same as one, except with four words instead of one. See the ONEWORD section. The | symbol you see will be replaced with whatever you set the emergency password to in startup.exe This symbol can be used anywhere. *example* WHATS THE EMERGENCY PASSWORD,I'll tell you if you say please.,PLEASE,It's |. ----FIVEWORD---- Same as above, but with five words instead of four. Notice the use of modifiers in this entry. The @ symbol means the user is starting to figure out Superchat is a computer. If Superchat runs into 3 @ symbols, it will display a special message. *example* I KNOW YOURE A COMPUTER,@Oh I am; am I?,YES,~A computer wouldn't do THIS! ----MOREWORDS---- Same as all the above sections, except it's for 6 OR MORE words. *example* DONT TELL ME WHAT TO DO,I'll tell you to do whatever I damn want!,NO,Fine I guess you have SOME say in what you do. ----WAITFOR--- One of the more obscure, but still important sections. If a user says the word in the first entry, it will increase the time it waits for the user to type before it starts complaining. See the forgot section for details. *example* WAIT,Ok I'll hold for a while.,IM BACK,Took you long enough! ----COMMONS---- This is one of the more useful sections, I recommend using it above the ONEWORD, TWOWORD etc. sections. However, both are helpful. The first entry (OK in this example) is what the computer scans for from the user. The following number after that is how many times the user is expected to say OK, or whatever is at the first entry. The line that starts with 'Ok sounds' has three entries on it. The first time OK is said, Superchat will choose one of those entries at random for a response. The second time it's said, Superchat chooses a response from the NEXT line. The third ok is said, a response from the line after that is chosen. It's complex, but if you can figure out, you'll have a powerful tool. *example* OK,4 Ok sounds good.,Ok cool.,All righty then. OK OK!,Okilee Dokelle.,Yeah ok. Ok ok ok.,Ok yeah.,Um... OK! Okkkkkkkkkkkk.,Ok!!,Okkkay. ----LEFTPART---- If Superchat finds that the left part of what the user says is 'YOU SPELLED' it will choose one of the following three lines randomly for a response. After that response is the most likely following response. Try it in superchat by typing 'You spelled that wrong you idiot!' and watch. *example* YOU SPELLED Oh really? Guess what? I DONT GIVE A CRAP ABOUT SPELLING!!,SORRY,Spelling doesn't matter unless it's for school or something. Who cares about how I spelled it?,I DO,Well I don't! OH NO! I HOPE THE SPELLING POLICE DONT CAPTURE ME!,FUCK YOU,HAHAHAHAHAHAHAH!!! ----BYE---- This section is simple. If the user says bye, the computer chooses one of the responses in the BYE section at random. They should have a ~ symbol so that they hang the user up after typing BYE. *example* ~C U L8R! ----WORDBUSY---- If the user types a sentence and pushes return WHILE the computer is typing, the computer will add one of these responses onto whatever it says next. *example* Hey I'm typing here.. ----OPENER---- For the very first remark, the computer reads from this list. If you want the computer to say nothing and let the user talk, leave it blank. If you do this you must still put the commas in, or Superchat will not work correctly. First comes the computer response, which is followed by three sets of different things the user could say and the computer's response to them. For example: You start Superchat, and the computer says: Yeah? The user responds with: Nothing. His/her words go through the screening process, and come out capitalized with punctuation removed, so now the user has said NOTHING. This matches the response in superchat (see example below), so the computer responds with: Why page me for nothing you twit. You see? It's not so complex, is it? It doesn't seem complex to me, but maybe that's just because I made the thing! :) *example* Yeah?,HI,Hi what's up?,NOTHING,Why page for nothing you twit.,YES,Yeah yeah.... ----FORGOT---- If the user doesn't type anything for a long period of time, the computer will type the first entry on the screen. It is followed by two sets of user responses and computer responses, just like I explained above for OPENER. The only difference is that there are only two sets of responses instead of 3. *example* Are you there?,YES,I thought I lost you for a second!,NO,Yes you are! How else could you type?!?! ----BEFORENONE---- When the computer is going to ask a question (see question section), it will choose one of the responses from this section at random and put it in front of what it is about to ask. *example* Uh hu. I was gonna ask you. ----QUESTIONS---- Superchat is designed so that it will not only answer questions by the user, but ask questions of it's own! The format is as follows: The first number is the number of responses to the question the computer is set to look for. In this case, it is four. After that is what the computer asks. On the next line are the responses that the computer scans for, there must be exactly the number of responses as the number says! Anymore or less, and the program will mess itself up. Here's how it works: The computer says: Do you still want to talk? If the user says yes, the computer will say: Good me too. If the user says no instead of yes, the computer will say: Bye then. Remember that the ~ symbol hangs up the user after the sentence is typed, and is not printed. *example* 4,Do you still want to talk? YES,Good me too.,NO,~Bye then.,MAYBE,Well I'll stay then if you don't know.,OK,Good lets stay and chat hmmm? ----SAY---- The computer scans each word of what the user types, and if it finds the word (or multiple words) in the first entry, it will put the following entry as a response. If the user had a question mark at the end of their sentence, it will type the response after that. *example* LEAVE,~Please don't leave me! Never mind get outta here.,No why would you even THINK that? ----COSAY---- This section is similar to the SAY section, only in this one there is no special response if there's a question mark, but you can have several different responses each time that word is found in a sentence! The first entry is the word Superchat scans for, followed by the number of times it will be found. The first time cool (or whatever you have written in there) is said by the user, it will randomly choose one of the 3 responses from the second line to respond with. The second time the user says cool, a response will be chosen from the third line, and so on. You can have as many different responses as you like! *example* COOL,3 That's cool.,Cool,Really? Cool. All right!.,That's cool.,Cool! Yeah, that's cool allright...,Cool this; and cool that; arrgh!, Enough with 'cool' already! ----THEANSWERS---- When a user types a sentence using a question mark at the end and no other response can be found using the other sections, it will take one of the responses from here. *example* I dunno. ----LETTER1---- If the user types only one letter and pushes return, a response will be chosen from here. The second entry is the expected response form the user, followed by what the computer replies to it with. *example* Just take it one letter at a time,OK,Whoa! Two letter! ----LETTER2---- This sub is exactly the same as Letter1 (above) except for one exception: As the name implies, the computer will take a response from here if they type only two letters and push return. The rest is identical to letter1. *example* Oh really? Two letters really says alot.,IT DOES,No; I'm kidding! ----GENERICWORDS---- When the user types something which is not found in the talk.dat file, it goes to this section. This section is the last resort, the final stand, the.. well you get the point. Responses in this section must be generic, something that will make at least a little bit of sense no matter what is said, hence the name GENERICWORDS. Following that are two sets of user answers, and the computer's reply to them. Take note that their can only be TWO, no more, no less. *example* Oh.,OH,That's what I just said oh.,OK,Ok fine... ----REPEATWORDSUSER----- If a user says something more than twice, a response from here will be taken. Each line has the info that is taken for each time the user repeats itself. So if the user says cool three times (not necessarily in a row) the computer will randomly choose one of the responses from the first line in the REPEAT- WORDSUSER section. The fourth time the say cool (or whatever), a response will be randomly chosen from the second line, and so on. There MUST be 3 responses on each line. You can have it respond to a user who repeats them- self over and over as many times as you like, but after I while, I'd hang up on them (remember the ~ symbol! See modifiers for details) *example* Didn't you just say that?,Yeah I know!,That's like the third time you've said that. ----REPEATWORDSCOMP---- If the computer is about to say a response it has already said, it will instead say a response from this section. Like the repeat words user section, responses are randomly chosen from a selection of three, and it goes in order starting with responses for when the computer is about to repeat itself once, then twice on the next line, and so on. This is used to make Superchat seem more like a real person, since most people don't repeat themselves over and over. *example* Hmm I dunno..,I see...,Ahhh. ----ADMIT---- Throughout the talk.dat file, @ symbols are placed at key responses that the user makes implying that Superchat is just a computer speaking. If Superchat runs across 3 of these symbols, It will type the entire section of admit out to the computer at an increased speed, and then raise the speed of the text to instantaneous (I hope I spelled that right!). *example* Ok ok I'm a computer. You figured it out... There's no fooling you. ----CONTRACTIONS---- In order to lessen the number of responses you need to type in that mean the same thing, Superchat scans the users sentence for the first two entries of CONTRACTIONS and combines them (if it finds them) into one. This is mainly used so that you won't have to have separate entries in the talk.dat file, such as DONT and DO NOT, because they will have been combined in the contractions section. IMPORTANT! Because of the combining of the two words, superchat WILL NOT find any entries you make that contain the first two words that were combined! That means you must change all THANK YOUs in the talk.dat file to THANKSs! *example* THANK,YOU,THANKS ----WORDEQUALS---- This section is, at the same time, one of the single most helpful sections of the talk.dat file, and one of the single largest source of errors in the talk.dat file! What the WORDEQUALS sub does, exactly, is scan the user's sentence for the first entry, and change it to the second. One reason I put this in was so you wouldn't have to type in 7 or 8 different things every time you wanted to scan for the word YES, such as YEAH, YA, YEA, YAH, etc, etc. This section can prove very helpful in such things as correcting spelling mistakes, eliminating slang or bad words, and so on. VERY IMPORTANT! You can not have the computer scan for the words that you change in the WORDEQUALS sub, because they will not be found! You can still use them in the computer's responses, only not in the users. *example* OKAY,OK Modifiers ========= * When entering something the user says, always use all capitals and no punctuation. THIS INCLUDES NUMBERS! If the user enters number or punctuation, it will be scanned and removed, so if you put numbers or punctuation (such as , . & ! ? etc.) in the talk.dat entry, it will not be found by the computer! * Only use commas to separate entries, DO NOT USE COMMAS IN TEXT!!!!!!!!!!!!! If you want to use a comma in the text, use a ; symbol instead, it will be replaced with a comma. * If you put a ~ symbol in your entry, the computer will hang up on the user once the message is typed. * If you put a _ symbol in your entry, the computer will put whatever the user told it to say in the previous entry he/she typed. If you don't understand, don't worry. It's only for the word SAY, and you will most likely never need to use it. * If the computer runs across 3 @ symbols over a period of messages, the computer will assume that the user has figured out that it is a computer, not a real person, and will display a special message. Trouble shooting: ================= Q. Superchat says something about 'You edited talk.dat' or 'You edited chat1.asc' What's that about? A. You can only edit files such as talk.dat, chat1.asc, and chat2.asc with the registered version. Otherwise, the program will not work. If you do register, you can modify Superchat to say whatever you want! You can easily change any and all text in the talk.dat file, where Superchat gets all it's information. Q. Superchat types to slow or makes to many mistakes. A. Run startup.exe and choose option 3, adjust speeds. There, you can change the number of mistakes the computer makes, the speed it types at, and more. You can also type a sentence shown by the computer and Superchat will model it's typing speed after yours! Choose option 1 for that feature. Thanks, and have fun! John Krajewski (NO CARRIER)