This documentation is free, but it is licensed under the terms of the GNU Free Documentation License as published by the Free Software Foundation; either version 1.2 of the License, or (at your option) any later version. http://www.gnu.org |
Nope. | Invalid connection. |
Invalid name or password. | Invalid login. |
Name already taken: Please select another name. | Provided name is already taken. |
Dragonroar | Plays introduction sound (Welcome!). |
V{XXXX} | Version of the protocol the client should be reading. |
END | End of MOTD; begin login. |
&&&&&&&&&&&&& | Successful login. |
!(n) | Client plays sound 'n'. |
%(n) | Item 'n' is placed at furre's feet. |
%0{name} | 'Name' is offline. |
%1{name} | 'Name' is online. |
([{foo}] | Writes to output ['foo']. |
)(x1)(y1) | Furre is removed from (x1,y1). |
/{colors}(x1)(y1)(n)(x2)(y2) | Animates a furre from (x1,y1) to (X2,y2) with frame number 'n'. |
1(x1)(y1)(n) | Draws floor number 'n' at (x1,y1). |
6(x1)(y1)(x2)(y2)(n) | Execute a self-induced DS trigger. x and y are furre coordinates. 'n' is trigger location in DS. |
7(x1)(y1)(x2)(y2)(n) | Execute an other-induced DS trigger. x and y are furre coordinates. 'n' is trigger location in DS. |
8-trigger | It exists, but I'm not quite sure yet. :) |
;{map.map} | Client loads map.map. |
<{colors}(x1)(y1)(n)" | Draws a furre at (x1,y1) with frame number 'n'. |
= | Draw all queued drawing data; refresh client. |
>(x1)(y1)(n) | Draws object number 'n' at (x1,y1). |
@(x1)(y1)[(x2)(y2)] | Camera positioned at [from] (x1,y1) [to (x2,y2)]. |
[[{foo}] | Client is booted [with message 'foo']. |
]! | Display warning of adult content. |
]#{n} {o} | Display message box ID 'n' with style 'o'. |
]&{key} pp{name} {n} | Display portrait of 'name'. |
]-#(n)[o][(gender)(species)(markings)] | Draws specitag 'n'. [If 'n' = A then draw furre specitag using 'gender', 'species', and 'markings'.] [If 'n' = B then draw Beekin badge 'o'.] |
]a | Client requests gate data. |
]cc{background.pcx} | Client uses background.pcx as background. |
]f{colors}(gender)(species)(markings){name} | Portrait is displayed with 'colors' depending on 'gender', 'species', and 'markings' with 'name'. |
]j(n) | Plays m(n).mid from the client's path. |
]q {n} {n} | Request to download dream 'n'. |
]r {patch} | Uses 'patch' as the client's graphics. |
]s(x1)(y1)(foo) | Renders text 'foo' at (x1,y1). |
]t(x1)(y1) | Removes text as (x1,y1). |
]u | Client requests rgate data. |
]va(x1)(y1) | Dragon breath at (x1,y1). |
]vb(x1)(y1) | Phoenix flame at (x1,y1). |
]w | Client version request. |
]}{color} | Color buffer check for client. |
^(n) | Item 'n' is placed in furre's paws. |
polo {n} | Pong. |
"cookies-accept | Accept cookies from others. |
"cookies-reject | Reject cookies from others. |
"eat-cookie | Eat a cookie from one's description. |
"give-cookie {n} [{o}] | Give a cookie from one's description to furre 'n' [with message 'o']. |
"make-cookie {n} [{o}] | Makes a cookie for furre 'n' [with message 'o']. |
"make-secret {n} [{o}] | Makes a cookie for furre 'n' [with message 'o'] without alerting others. |
"munch-cookie | Eat a cookie from one's description and alert others. |
"secret-cookie {n} [{o}] | Makes a cookie for furre 'n' [with message 'o'] without alerting others. |
"{foo} | Says 'foo'. |
-{foo} | Yells 'foo'. |
:{foo} | Emotes 'foo'. |
decline | Reject a joining/summoning furre's request. |
get | Picks up or drops an object. |
goalleg | Go directly to Allegria map. |
goback | Go directly to previous map. |
gomap {n} | Go directly to map 'n'. |
gostart | Go directly to Vinca map. |
help | Requests help from Beekin Help Channel. |
"info | Displays information held about one's character on the server. |
join [{n}] | Request to join the company of a furre ['n']. |
l (x1)(y1) | Looks at a furre at (x1,y1). |
onln {n} | Request 'n' online status. |
summon [{n}] | Request a furre ['n'] to join one's company. |
use | Use the object in the furre's paws. |
wh {n} {o} | Whisper 'o' to 'n'. |
vascodagama | Finished download dream or patch. |
which | Displays the heimdall (server process that controls character interaction) that one's character resides on, current index, and one's global ID. |
who | Retrieve list of users on map from the server. |
breath | Breaths dragon breath while in Dragon form. |
chcol {colors}(gender)(species)(markings) | Silver Sponsorship members can change colors, gender, species, or markings online. |
chdesc {description} | Silver Sponsorship members can change description to 'description' online. |
color {colors}(gender)(species)(markings) | Silver Sponsorship members can change colors, gender, species, or markings online. |
dragon | Transform into Dragon form. |
desc {description} | Change description to 'description' online. |
eagle | Transform into Eagle form while in Gryphon form. |
flame | Flames Phoenix flame while in Phoenix form. |
gryffe | Transform into Gryphon form. |
phoenix | Transform into Phoenix form. |
portrchng | Swap to next available portrait. |
wings | Transform into furre with wings. |
< | Rotate counter-clockwise. |
> | Rotate clockwise. |
lie | Toggles from lying to sitting to standing. |
liedown | Go directly to lying down frame. |
m 1 | Move southwest. |
m 3 | Move northwest. |
m 7 | Move northeast. |
m 9 | Move southeast. |
sit | Go directly to sitting down frame. |
stand | Go directly to standing up frame. |
"discard-rose | Removes a rose from one's description. |
"discard-red-rose | Removes a red rose from one's description. |
"discard-white-rose | Removes a white rose from one's description. |
"discard-yellow-rose | Removes a yellow rose from one's description. |
"give-rose {n} [{o}] | Give a rose to furre 'n' [with message 'o']. |
"give-red-rose {n} [{o}] | Give a red rose to furre 'n' [with message 'o']. |
"give-white-rose {n} [{o}] | Give a white rose to furre 'n' [with message 'o']. |
"give-yellow-rose {n} [{o}] | Give a yellow rose to furre 'n' [with message 'o']. |
=news | Toggles news channel. |
=event | Toggles event channel. |
ROLL {n}d{o} | Rolls 'n' die with 'o' sides with detailed results. |
Winver {X} | Version of user's Windows. |
connect {name} {password} {hash} | Connect to server using 'name' and 'password'. 'hash' is sent to the server and a response is sent back activating the client. |
create {name} {password} {e-mail} N Y | Create a character with 'name' using 'password' at 'e-mail'. Not sure what N Y means. |
desctags | Toggles description tags. |
iamhere | Keep the client's connection alive. |
marco {n} | Ping. |
polon {n} | Pong. |
quit | Quit Furcadia. |
reconnect | Force a reconnection. |
repq {n} {o} | Reply to question 'n' with answer 'o'. |
rgate | Request to upload a dream. |
roll {n}d{o} | Rolls 'n' die with 'o' sides. |
setemail {n} | Set one's e-mail address to 'n'. |
tdgate {n} | Register dream ID 'n'. |
time | Request Furcadia central time. |
version {n} | Send client's version 'n'. |
"trade-accept | Finalize a trade. |
"trade-add {n} | Add item 'n' to trade. * |
"trade-end | Ends a trade. |
"trade-reject | Reject a trade. |
"trade-remove {n} | Remove item 'n' from trade. * |
"trade-start [{n}] | Begin a trade [with furre 'n']. |
"trade-status | View status of a trade. |
"eject {n} | Eject user 'n' from dream. |
"emit {n} | Emit message 'n' to furres in radius. |
"emitloud {n} | Emit message 'n' to everyone. |
"entrymusic {n} | Set dream music to 'n'. |
"entrytext {n} | Set dream text to 'n'. |
"pads-all | Furres can upload dreams to any upload pad. |
"pads-owner | Only dream owner can upload dreams to upload pad. |
"pads-shared | Dream owner and shared users can upload dreams to upload pad. |
parental | Set a parental rating on one's dream. |
"share {n} | Share control of dream with 'n'. |
shield | Direct all summoned furres to the entrance of one's dream. |
unload | Unload a dream. |
unload all | Unload all dreams. |
unload {n} | Unload dream 'n'. |
"unshare {n} | Unshare dream ownership with 'n'. |
"uploads-all | All furres can upload a dream to any empty spot. |
"uploads-owner | Only dream owner can upload a dream to any empty spot. |
"uploads-shared | Only dream owner and shared users can upload a dream to any empty spot. |
bb | Join Beekin channel. |
"block {n} {o} {p} | Ban furre 'n' for 'o' hours because reason 'p'. |
"boot {n} {o} | Boot furre 'n' with reason 'o'. |
"booty {n} {o} | Boot furre 'n' with reason 'o'. |
c {n} | Claim 'n' help request. |
claim {n} | Claim 'n' help request. |
clear {n} | Clear 'n' help request from help queue. |
isbeek {n} | Beekin access levels for 'n'. |
jg {n} | Join group 'n'. |
leave | Go off duty. |
"list | List available Beekin commands. |
"listf | Furres requesting assistance and Beekins on duty. |
ob | Join Guardian channel. |
onduty | Count of available Beekins in their respective groups. |
que | Queued help requests in Help Channel. |
rap {n} | View rap sheet of 'n'. |
report 'n' | Report of a furre and their history. |
"sendd {n} {o} | Send 'n' to Dream Channel with reason 'o'. |
"sendg {n} {o} | Send 'n' to Guardian Channel with reason 'o'. |
"sendh {n} {o} | Send 'n' to Help Channel with reason 'o'. |
"sendw {n} {o} | Send 'n' to Welcome Channel with reason 'o'. |
staffdream | Go to staff dream map. |
tellgroup {n} | Tell 'n' to one's Beekin group. |
telltrainees {n} | Tell 'n' to all Beekin trainees. |
"transd {n} | Transfer 'n' to Dream Channel. |
"transg {n} | Transfer 'n' to Guardian Channel. |
"transh {n} | Transfer 'n' to Help Channel. |
"transw {n} | Transfer 'n' to Welcome Channel. |
"url {n} | Transfer 'n' to Dream Channel. |
Map File Format: This format is for unencrypted maps only. MAP V01.XX Furcadia\n height=NUMBER\n width=NUMBER\n revision=NUMBER\n patcht=PATCH TYPE\n patchs=DIRECTORY OR SERVER-NAME\n encoded=1 OR 0\n BODY\n width * height = Floor entry (unsigned short, entries stored starting at 0,0, then 0,1, etc.) width * height = Object entry (unsigned short, entries stored starting at 0,0, then 0,1, etc.) width * height * direction = Wall entry (unsigned byte, entries stored starting at 0,0, then 0,1, etc... direction consists of northwest wall, then the northeast wall) |
FSH File Format: This format applies to both encrypted and unencrypted FSHes. The only difference is that the palette entries for encrypted FSHes vary from entry to entry, so I think it's possible that there's some sort of checksum involved. unsigned short - chunk count (a chunk is a FSH entry) unsigned short * (chunk count) - chunk size chunk * chunk count - chunks Chunk: unsigned byte - width unsigned byte - height signed byte - X Offset signed byte - Y Offset width * height - Index of palette color used at specified pixel (The entries are reflected, that is, the last row is stored first. So, in a 32 by 64 entry, drawn location 0,64 is the first byte read, 1,64 is the second byte read, etc.) |
FS2 File Format: This file format is very similar to the FSH in the respect that it stores images the same way.
Entry: unsigned byte - width unsigned byte - height signed byte - X Offset signed byte - Y Offset unsigned? short - Object # to replace width * height - Index of palette color used at specified pixel (The entries are reflected, that is, the last row is stored first. So, in a 32 by 64 entry, drawn location 0,64 is the first byte read, 1,64 is the second byte read, etc.) |
FBJ File Format: This format can be tricky because the entries' properties can range from one to three bytes.
Entries (length dependent upon if x, y coords are used) (all bytes are signed): Properties: (X == 0) && (Y == 0) (length: 1 byte) ---------------------------------
(X <> 0) && (Y == 0) (length: 2 bytes) ---------------------------------
(X == 0) && (Y <> 0) (length: 2 bytes) ---------------------------------
(X <> 0) && (Y <> 0) (length: 3 bytes) ---------------------------------
|
DSB File Format: The last file format is quite useful because if you get it in your cache, you can get the DS to the dream.
|
if (((unsigned char) charin[0] < 32) || ((unsigned char) charin[0] > 127))}
return -1;if (((unsigned char) charin[1] < 32) || ((unsigned char) charin[1] > 127))
return -1;return (((unsigned char) charin[0] - 32) * 95) + ((unsigned char) charin[1] - 32);
// Boundaries}
if (intin <= 0)
intin = 0;if (intin >= 9025)intin = 9025;
// Conversion
charout[0] = (unsigned char)( (intin / 95) + 32 );
charout[1] = (unsigned char)( (intin % 95) + 32);
charout[2] = '\0';
'Converts a Furcadian number string to an IntegerEnd Function
Dim NumberString As String
Dim BigNumber As Integer, SmallNumber As Integer, WholeNumber As Integer
NumberString = Text
BigNumber = (Asc(Left$(NumberString, 1)) - 32)
BigNumber = BigNumber * 95
SmallNumber = Asc(Right$(NumberString, 1)) - 32
WholeNumber = BigNumber + SmallNumber
FurcToInt = WholeNumber
'Change Integer to a Furcadia number stringEnd Function
Dim RetStr As String
Dim charnum As Integer
Dim FrameValue As Integer
charnum = Int(Number / 95) + 32
RetStr = Chr$(charnum)
FrameValue = Number Mod 95
charnum = Int(FrameValue) + 32
RetStr = RetStr + Chr$(charnum)
IntToFurc = RetStr