If it needed to communicate the number 1, it would send ascii value 32+1=33 which is the '!' character. So for example if the server needed to communicate the number 0, it would send ascii value 32+0=32 which is a space. This is done by taking whatever number needs communicated and adding 32 to it, which effectively puts all the values into the range of typable characters. Much of the data used by the server/client are "encoded" into ascii values. I'll leave it up to you to see which letter maps to which emoticon you can just type #SA in the primary furcadia client and it should appear in your typing. There are also a set of special emoticon characters the primary furcadia client uses these are represented as a 3-character piece of data beginning with a '#' 'S' and followed by a character between 'A' and 'P'.
All '|' characters (shift + \) are interpreted a space all spaces inside a player's name are '|' characters. The primary furcadia client performs some filtering on the text that it displays. They should be performed in that order first thing after connecting to the server. Logging into furcadia is done with a succession of 3 commands: connect, desc, and color. Commands sent to the server vary in their format. Most commands received from the server begin with a single character that tells what type of command it is, followed by the rest of the data associated with the command. One thing to watch out for is sometimes you will recieve more than 1 command (each ending in a line break) in a single socket read. Similarly, every command the server sends will end in a line break. The server expects all commands sent to it to end in a line break (numeric value 10, or '\n' on win32). There are no binary data transfers involved. The furcadia server communacates completely through text. If you find something wrong, I can be contacted via AIM at TrekGate.
I plan to regularly update this as I have time to and as I figure out new commands. I won't make any guarentees about the accuracy of this information most of it is from stuff I learned years ago when I ran the mail bot Mailbox, or from things I've parsed and figured out recently.
This is written with C/C++ in mind for the windows platform, but most of it should be applicable to any programming or scripting language. This is primarily being done to aid in my work on a second attempt at a 3d furcadia client: Furc3D2. This is an attempt to consolidate as much as possible into one spot. Most of this information is already out there, but it seems to be spread randomly in tiny pieces. This page is intended to be a referance of all known server commands (both those sent to the server, and those recieved by the server). Hopefully I'll have time to update this page soon, for the new protocol.) (NOTE: 2007 april - connect, movement and color codes here are out of date due to the new protocol.