The communication protocol is a set of rules and ways the server/client use to communicate with each other. On
this page I will focus more on the server->client protocol, so if you are interested in the other way, go to
the Furcadia Commands page. Otherwise, if you are interested in what does the server
send you and what does each line mean, stay here and read further...
Nope. | Invalid connection syntax |
Invalid name or password. | Invalid login information |
Name already taken: Please select another name. | Provided name is already taken - creation denied |
Dragonroar | Plays the introduction sound (welcome.wav) |
V{version} | A 4-byte version of the comm protocol we will be using |
END | End of MOTD phase (usually followed by two blank lines) |
&&&&&&&&&&&&& | Successful login |
\{hash} | Response hash that is supposed to activate the client |
!(sound) | Client plays the sound with specific number (two-digit base95 #) |
%(object) | Shows a specific object at your feet (to the right from the portrait) |
]%0{name} | The specific name is offline (see onln) |
]%1{name} | The specific name is online (see onln) |
([{data}] | Writes the specific data (or an empty line) to the chatbox |
)(x)(y) | Remove a character from specific coordinates |
/(colormap)(dx)(dy)(frame)(sx)(sy) | Animates movement from (sx,sy) to (dx,dy) of a specific frame number (Colormap: 10 digits) |
0(startvar)(var0.x)(var0.y)[(var1.x)(var1.y)...]!mL(emptyvars) | Synchronize the client's variables to the presented data. startvar is a 2-digit base95 number, other arguments are 3-digit ones! |
1(x)(y)(floor)[(x#)(y#)(floor#)...] | Draws a specific floor tile (or more) |
6(x1)(y1)(x2)(y2)(line)(x3)(y3)[(line#)(x#)(y#)...] | Execute a self-induced DragonSpeak line (or more). The coordinates depend on the DS! |
7(x1)(y1)(x2)(y2)(line)(x3)(y3)[(line#)(x#)(y#)...] | Execute a DragonSpeak line (or more), induced by another person. |
8(#)(random)(arguments) | Comes with every 6/7 instruction. The argument is normally 0, but changes on number-capturing DS, etc. Undocumented |
;{mapfile} | Load a local map (one in the furcadia folder) |
<(colormap)(x)(y)(frame) | Draw a specific furre frame with set colors at (x,y) |
~ | Suppress output - stops screen refresh |
= | Resume output - returns from suppress mode |
>(x)(y)(object)[(x#)(y#)(object#)...] | Draws an object at (x,y) |
@(dx)(dy)[(sx)(sy)] | Changes the camera position to (dx,dy) - either by moving it from (sx,sy) or rapidly (requires =) |
[[{data}] | Display a custom error message and simulate disconnection (you don't really quit yet!) |
]! | Display warning of adult content |
]#{id} {style} {data} | Displays a message box (style: one byte) - repq string is sent on confirmation! |
]&{id} pp{id} | Download a specific portrait (decimal number) from the file server and display it (1 - 15000+) |
]-{data} | Prefix the future line in the chatbox with specific data. #A(full_colormap) will show a specitag! |
]a | Client requests gate data (?) |
]cc {picfile} | Load a PCX image as a background (usually marbled.pcx) and initialize map/portrait/etc. |
]f(colormap){name} | Display a default portrait with a name above it - using full colormap |
]j(music) | Plays m(music).mid from the specific patch folder (MODs and MP3s are also valid) |
]q {name} {id} | Request to download a specific patch |
]r {name} {id} | Uses a specific (probably local) patch for the client's graphics |
]s(x)(y)1 {name} {subtext} | Renders custom text at (x,y) with an optional subtext, both must use pipes for spaces! |
]t(x)(y) | Clears any custom text at (x,y) |
]u | Dream upload request |
]va(x)(y) | Display dragon breath (client determines the direction - does nothing if there's no dragon there) |
]vb(x)(y) | Phoenix flame (character-intependent - lasts less if there's no furre at specific coordinates) |
]w | Request for client's version |
]x | Request the client to download updates and execute them |
]z{number} | Undocumented Instruction - returned once you use the command uid (see ]{) |
]}(colormap) | The custom portrait to be displayed after initialization (]cc string) - full colormap |
]{{number} | Undocumented Instruction - returned once you use the command mvrwm |
]A {num} {byte} | Undocumented Instruction - both arguments are decimal and seem to be somewhat static |
]] | Undocumented Instruction - doesn't seem to do anything, comes after the rejection ]#xxxx box |
]|{1/0} | Flip the game screen upside-down (April Fool's 2005) |
^(object) | Shows a specific object in your paws (to the right from the
portrait) |
polo {num} | PONG (echo) |
If you happen to know more instructions that I haven't mentioned here or have more correct details about the
existing ones, you are welcome to approach me and point them out. That's all to it for now...