Main /

Fiction Help


  • VARG








edit SideBar

Fiction Help

This manual for the Fiction room has been provided to you by
the most excellent elephant saviour, traces.

Give the kid some props, will ya?

Nevermind most of the stuff it says down there. It's outdated. Here's what you need to know.

You can use the fiction room in chat to connect to fiction. This is good for talking to people in chat while being in fiction at the same time. Not good for a whole lot else because it really just ruins screenshots.

When you use the fiction room to connect to fiction, you'll have to login as a guest (-connect guest), login as an existing character (-connect yourname yourpass), or create a new account (-create yourname yourpass).

Now if you leave the fiction room, you can talk to people in chat normally (just type) and you can talk to folks in fiction by typing -"message (dash quote message).

If for whatever reason nobody can hear you, type -+p message (dash plus p message) to talk on the public channel. That way you don't end up curled in a fetal position like erik.

You can also get to fiction by downloading mushclient here:

The address you need to connect to is: on port 9956

If you need a premade file that you can just click and use, you can use the following

You can open that with mushclient and connect to fiction.

Rules for connecting with Mushclient:

1. If there was a dash in a command before, it ain't there now. You talk by saying "hello, and talk on the channel with +p hello.

2. There are a number of globals you can try out. Type "block message" no quotes or "imply message" also no quotes into mushclient for some interesting text results. You can use "hug bee" to avoid a court conviction or "+splist" for a list of font colors that you can choose from/edit etc and "+sphelp" for the appropriate help file.

use mushclient. it's better.

IF you're in a situation where you can't use mushclient (work, school, prison) but do have access to a computer, there is always the option of raw telnet. Though it's nasty and you can't see what you're typing (unless you're extremely sure of your spelling it's best to keep a notepad open under the telnet window and copy your text in when you need to say it).

Connecting with raw telnet: on windows: start+run, type telnet, hit enter. If for whatever reason you don't see run on your start menu, just hold the windows key and hit the r button. then type in telnet and hit enter. You should get a command window up, type the letter "o" and hit enter

It'll ask you where you want to connect to, type " 9956" and hit enter You should be connected. And remember to switch to netbsd.

Now back to your scheduled program:

Hallo, this be a guide to livin and buildin stuff in fiction, argh.
For clarity, anything in parenthesis is stuff you need to think of yourself. I think.
Oh, and if you're connecting to fiction from anywhere other than chat
(only difference being is stuff is more colorful), tell the *'s to fuck off and
just skip them entirely. Life's easier that way. As you get towards the more advanced
stuff, i'm gonna assume that you're not using chat anymore, and I wont add the *'s. 
cause pingas. now then:

When you register in fiction, you get a certain amount of drips a day
(think cookies) that you can use to do stuff. 

First things first:

Join fiction in chat, and type create (user) (password) to register. 

Now you've registered. 

What to do now:

Set your Gender:
Command: *@sex me = (sex)

Explanation: Set your sex, be it m, f, or anything in between, which becomes neuter.

Example: *@sex me = F

Lock yourself down:
Command: *@lock me = me

Explanation: Locks you so people can't pick you up. One of them noob things. 

Example: Self explanatory.

Give yerself a description:
Command *@desc me = (A description)

Make it as long and fancy as you like. 

Example: *@desc me = I am pingas, hear me roar. 

Put what you're doing atm on the who list (discussed in a moment):
Command: *@doing (whatever you're doing)

Explanation: When people check who's online, it will also display what you're doing.
Just a fun thing.

Example: *@doing Working on a guide to fiction.

You are now set to go and explore fiction.
Though here are some commands that can help you along the way.

Elementary Commands (For survival and otherwise)

Talking and /me'ing:
If you use chat, there's no command to talk. It's just done.

To pose, or /me:
Command: :what you're doing 
(that is semicolon, then what you're doing).


Command: POSE what you're doing. 
shows up as: traces dances. 

Joining rooms:
Command *(roomname)

Explanation: Very simple, to join a room that isn't locked, just type it's name. 

Example: *public. (joins public)

Command: *look (object)

Explanation: When you look at an object, you see whatever someone set as it's description.
You can also say *look me to look at your own description or
*look here to see the current room's description.
It will also tell you who's in the room, and if you look at a person,
it will tell you what they're carrying.

Command: *examine (object)
(also, *exa (object)

Explanation: Just like look, but gives you tons and tons of other info.
Can only be used on objects/rooms you created and yourself.

Command: *enter (object)

Explanation: If the object can be entered, say it's a ship or something,
then you'll enter it that way.
The opposite is *leave, which does not need anything after it.

Command: *take (object)
         *drop (object)

Explanation: Either picks up an object or  

Command: *help (command)

Explanation: If you don't understand the usage of a command,
type *help in front of it for a refresher. Can't overstate how 
important this command is. Ignore at your own peril.

Finding out who's online:
Command: *who

Explanation: Lists who's online, how long they've been online,
how long they've been idle, and what they're doing.
(Set with @doing).
If you want to know exactly where someone is,
you can buy a finder from lunboks (more on money later),
or just ask traces.

Go home:
Command: *home

Explanation: Ifyou ever get lost in a cave, get stuck somewhere,
get swallowed by lunboks, etc, you can type this command 
that will send you back to your home (limbo). 

Ex: *home
There's no place like home...

Now you are generally set to live a healthy life in fiction. 
tl;dr, the important commands again:

Some final notes: you can talk in fiction from any room.
To do so, join fiction, log in, then join whatever room, like To talk to fiction, you have to put -" in front of your words.
To do commands, it's just a -.
Basically, replace all your *'s with -'s and you're good.
Confusion breeds chaos and chaos is delicious.

kthxbai. But wait, you want more?

Object Stuffs:
So you want to create stuff. I dunno how much of this stuff you can do,
but if you become a builder, you can do all of it.
Becoming a builder is done by poking either of the gods until they
magically 'splode and you become a builder.
Or just ask for it.
Builder is one of the many rights you can have.
But you can read into that on your own if you care.

Object Creation:
Command: *@create (objectname)

Explanation: Creates an object by that name.
You now own this object, and if you *examine it, you'll see that the owner is you.
You may want to *@lock (object) = me, or lock the object to yourself so people
don't go around picking your stuff up and dropping it elsewhere.
*DROP YOUR OBJECTS ONCE YOU MAKE THEM. DO IT! SRS. else you'll baw. (fo'realz)

Command: *@desc (object) = (description)

Explanation: Give your baby a description.
When people *look at it, they'll see your message.

Command: *@lock (object) = me

Explanation: Lock the object to yourself.
The lock command has a million other uses too, like locking rooms, setting up 
different kinds of keys to open the locks, and oodles of other stuff.
Read up on that if you care by typing *help @lock. 
and at

Command: *@success (objectname) = (message)

Explanation: If someone manages to *use or *take you, or an object you made, the message
will appear. Works the same with locks.
If they pass a lock, they get the success message, they fail it, they get the fail message.

Command: *@fail (objectname) = (message)

Explanation: See above, but with moar fail.

If you're not going to be building rooms,
you might want to continue to the commands section below it. 

Room stuffs:

Creating Rooms:

Command: *@dig (roomname)

Explanation: Makes a room with that name.
It's now floating in mid air, so you gotta link it to wherever you are.
You'll be given a room number, the "dbref".
Remember this number, else your room is kinda lost. 

Opening doors to Rooms:

Command: *@open (doorname;othernames) = (room #)

Explanation: Opens a door to a room with that number.
Now you can go in through that door and end up in that room. 

Example: *@open Door to Hell;Door;Hell;d;h = #188

as you can see, the other names are just shorteners.
I can type *door to hell, or *d to get through that door.

Your own commands:

Consider the following: You want to make your own commands.
Possible? Yes. And here's how. (lawl)

The easy way, using listening and hearing:

Command: @listen (object) = (*what to listen for*)  
the word is surrounded by asterisks, which signify wildcards.
don't worry bout that for now.

Command: @ahear (object) = ("what it will say)
Has to start with a quote if you want it to say something. 

Explanation: The object will listen for someone to say or pose that word,
and it will execute the @ahear portion.
if it don't work, you forgot to drop the object after you made it. 

@create Bird (bird is created)

@listen Bird = *Look a birdie!*
(you'll now get a message that it grew ears or something)

@ahear Bird = "tweet tweet. 

Now, you'll say the words "look a birdie!", and the bird will say tweet tweet.
if it don't work, *drop the bird.
Easiest mistake to make.

The more complicated but more satisfying way, using $'s. (no not cash lulz)

Command: &VA (object) = $(command) : (commands to do). 
looks confusing huh. 

Explanation. &va is an attribute you're setting on the object.
If you want to add more, you'd say &vb, &vc, and so on.
If you want to be a nonconformist, call it whatever you want.
It can be &PINGAS. These attributes can be seen when you
*examine an object. 


@create Gun

&VA Gun = $shoot gun:"BANG BANG

when you type *shoot gun, gun will say "bang bang".
And remember, items can do whatever you can.
If instead of "BANG BANG you type say Public, the gun will fly into public.
example of that:

&VA BUS = $Drive *:%0

The * is a wildcard. It can be anything.
The %0 is whatever the wildcard was. If your wildcard was public, your %0 is 
public. Confusing. here's an example:

I'm in a room and there's an exit called "public".
When i type *drive public, the bus will go to public.
If there's an exit called Dining room, and i type *drive dining room,
the bus will go there.
More examples:

&Va Spatula = $Flip: POSE flips.

The spatula will do a /me and flip. easy stuff.

Trivial Extra shit that you'll probably never use
and will discover on your own if you ever find the need to use it:

Expanded Descriptions:
These are pretty trivial, but can add to the experience.
Most descriptive elements have an 'A' type, an 'O' type, and some 
have an 'I' or an 'OX' type and many other rarer types. 

'O' types:
Command: *@odesc, *@ofail, *@osucc, *@ouse, *@odrop (object)= (description)

Explanation: Take @odesc for example.
This is what is shown to people when you look at the object, prefixed by your name. 

Example: @odesc cat = looks at the cat.

What others in the room see when "shi" *looks at the cat: shi looks at the cat. 
Simple amirite? It puts your name infront, and everyone else sees that message.

*@odrop: When you drop the object, everyone else will see the message
except for you, and it is prefixed by your name. 

Example: @odrop cat = puts the kitty down on the ground. 

Everyone else will see: traces puts the kitty down on the ground. 

*@ofail: When you fail to pass a lock or use something, everyone else sees this message.

Example: @ofail dungeon door = bangs on the doors but can't get out.

Everyone in the room sees: pingas bangs on the doors but can't get out.

The rest follow the same pattern. check *help if you need clarification. 

'A' types:
Command: *@adesc, *@afail, etc etc etc (object) = (commands)

Everything is exactly the same as above, but this is the stuff the OBJECT
does when looked at, or dropped, or taken, or failed, etc.

Come to think of it, those are the only two common ones. ox, al, i,
and the rest are really rare. You can look for them in help if you care.

more random nonsense to follow here. or not. 

Moving further into the rabbit hole and into the realm of wet_ratio's perverted dreams.

K so you're still interested. Go download a copy of SimpleMU, and stop torturing yourself with chat.
 If you're 'fraid of downloads, go to 

"", which works almost as well cept it's a bit slow, and java. eh. 
either way, i'm ignoring the *'s that chat makes you use from now on. If you're this interested and 
you're still using chat, gtfo.

Btw, started a client or and can't talk? TRY PUTTING A QUOTATION MARK BEFORE YO
UR WORDS. "pingas. like that.
in exchange for getting to lose all those pesky *'s, you get to use lots of "'s whenever you want to
 say something. It'll become second nature.
REMEMBER REMEMBER the fifth of november, and that you can type help commandname if there's something
 you see that you don't understand.

Have a seat or something, there's gonna be a whole lot of 'splainin here. so bear with me. 
1. Everything has a reference number. Objects, exits, people, gods. everything. A ref number (or dbr
ef# for short) looks like "#129". You'll see these    everywhere, especially when creating stuff.
2. You're gonna hear a lot about substitutions. The major ones are: 

 %#   - DBREF# of person using command.
 %n   - Name of person using command.
 %0-9 - Whatever the hell was in the asterisk.

You can learn all the other wonderful ones by typing "help substitution" and "help substitutions2".

Just putting these out, you'll get them in a sec.
3. Every time you wanna use a comma, backslash, or percent sign, something or other will fuck up. Th
at's because you have to escape it. That means put a    backslash in front of it. , becomes \,  \ be
comes \\, % becomes \%. 

Now, there are many different elements in fiction that fit together. An object that you create can u

1. built in commands, 
2. custom commands, 

3. functions, custom functions, 
4. system attributes, 
5. custom attributes, 
6. flags, powers, maybe even a zone.

The fuck does that all mean? Let's cover one at a time with as 

many examples as we can, cause examplez is gewd. And lots of sidetracked bull that I thought was imp
ortant or gave me hell when I was trying to learn it so I thought i'd try explaining it myself:


This being all your commands that are built into the mush, like examine, who, look, take.

1. A simple teleporter. (taking advantage of @aenter, which executes your commands when you enter an
This one in particular takes the person entering it and teleports them to room #130.

   @aenter teleporter=@teleport %#=#130

%# is a substitution. It grabs the user's dbref#, and inserts that in there (har). That way it can t
eleport anything.
When the computer sees that command, it says to itself: traces entered this teleporter. Make %# equa
l to trace's dbref (#119). Then teleport traces to room #130. It will be just like if you said: @tel
eport #119=#130.

2. An pet that gets lonely when you fail to pick it up and goes home (har rakiro).

   @afail pet=SAY I'm feeling kind of lonely;home

The semicolon seperates two commands. More on SAY later.

Commands that you or someone else creates. For example, the Order command in Mcdonalds can get you s
ome food, but it wont work anywhere else.
How to create these is already mentioned above, but here's a refresher.

    &commandname_cmd object = $command:action1;action2;action3

The & creates a custom attribute, the $command is what the user types to run it, and the actions are
, well actions. the _cmd part is just a formality, but it 

does a bit to help make your code a bit easier to read.

here's some examples:

1. Make a rabbit hop.

    &hop_cmd rabbit=$hop:POSE jumps up and down. 

when someone types "hop", the rabbit will jump up and down. note: this does not mean SAYING hop. jus
t using the command. 

2. Make a puppy fetch a bone from a room called "hall" then come home. (always same item)

    &fetch_cmd puppy=$fetch:hall;take bone;home

The puppy joins room hall, takes the bone and goes home (probably whatever room it was created in).

Variation: You tell it what to fetch:

    &gofetch_cmd puppy=$Gofetch *:hall;take %0;home

This is a variable substitution. %0 will equal whatever was in your * is. If you said Gofetch ball, 
the %0 now equals "ball". If you say Gofetch ferret, %0 equals ferret. And so on. Also notice that m
ultiple actions are separated by semicolons. 

Variation: Where does it go to fetch?:

    &SUPERFETCH_cmd puppy=$fetch * *:%1;take %0;home

You'd run that command like this: fetch bone public
See the numbering scheme? Every * becomes one bigger number. The next * would be %3. In this case, p
uppy will go to public and fetch bone.


In most cases, having your objects use SAY or @emit is bad. bad bad bad. Bad.
Use @pemit/@oemit instead. It seems like extra work, but it'll work no matter what, whereas you may 
run into trouble with SAY/POSE/emit.

@pemit sends a message to a person. @oemit sends a message to everyone BUT a person. Combine and con
The usage for @pemit is: @pemit name=message
The usage for @oemit is: @oemit name=message

with @pemit, only name will get the message. with @oemit, everyone BUT name will get it. ya dig?

Let's start simple. I've got a cat that purrs when you pet it. But it only purrs to the person who p
ets it.

   &pet_cmd cat=$pet:@pemit %#=Cat purrs loudly...

When you pet it, it pemits and sends "cat purrs loudly..." only to whoever petted it. 

   &turn_cmd wheel=$turn:@pemit %#=The wheel turns.
   &drive_cmd car=$drive:@pemit %#=You step on the gas pedal and fly into space.
   &smash_cmd guitar=$smash:@pemit %#=You've smashed your guiter ohoes.

Here's an example of using the pemit/oemit combo in action.

   &SLAP_CMD puppy=$slap:@pemit %#=Stop slapping me!;@oemit %#=Puppy doesn't like getting slapped.

As usual, the %# means whoever did the command. Puppy tells you to stop slapping, and bawws to the r
est of the room.

Take just the spoken portion of the ban command:

   &BAN_cmd room=$ban *:@pemit %0=You got banned!;@oemit %0=%0 got banned by %n!

When you use the ban command, you will type "ban name".
%0 now equals that name, so you're sending the personal emit (pemit) to them. (@pemit %0). The @oemi
t sends to the rest of the room. %n is the same as %#, cept it equals a name, not just a dbref numbe
r. %#=#122, and %n=trace. I want it to say, "lunboks got banned by trace", not "lunboks got banned b
y #119". That's just stupid.


Spoken commands are the the icing on the cake. You say these commands out loud. Litterally say them.
 And they happen.
Way these are done is a bit different. But you'll get it. These are mainly used for pets. So if you 
want a companion, keep these in mind.

Before you can use these, you have to set your item to MONITOR. Monitor is a flag that allows an ite
m to listen for these spoken commands. 
@set item=monitor. it'll grow ears. srs lul. To turn monitor off, @set item=!monitor.

So how do I make my own spoken command, now that my item is monitoring:

Syntax: &commandname_cmd object=^* says, "What needs to be said":action1;action2;action3;action4 etc

Appart from the way the command is worded (^* says instead of $command), everything is the same.
* is still a *. That means that IT TAKES THE PLACE OF %0. Just keep that in mind.

1. A puppy that barks when you tell it to:

  &BARK_CMD puppy=^* says, "Puppy, bark!":POSE barks.

To use this command, you'd say "Puppy, bark!". Not command it, but "say it.

2. A guard dog that bites people you want bitten. omnomnom. (with oemit/pemit, cause those are good 

  &Bite_cmd Dog=^* says, "Dog, bite *!":@pemit %1=The guard dog goes wild tearing at your clothes an
d trying to get at your soft meat;@oemit %1=The guard dog goes into a wild rage and attacks %1.

Simple substitutions. You say Dog, bite trace! and it will tear me to shreads. easy enough. btw, don
't do that lol.

3. You tell the vaccum what to clean up, it goes and picks it up:

  &Suck_cmd vaccuum=^* says, "Vaccuum, clean that * up!:@pemit %#=Yessir;@oemit %#=Zips around and p
icks up a %1;TAKE %1

  &Empty_cmd dog=^* says, "Dog, spit that * out!:@pemit %#=Dog spits %1 out;@oemit %#=The dog coughs
 and hacks and spits up a %1;DROP %1

*'s can be lulzy sometimes.


Consider the following: You have three puppies, all different colors, in a vending machine. One's re
d, one's green, and one's beige. How would make the vending machine hand out only the puppy you that
 someone asks for? @switch, and sometimes @ifelse! The differences will make sense when you get into

First, @create a vending machine
-@create Puppy Vendor

Lock it to yourself
-@lock Puppy Vendor=me

Give it some fail messages (what you're shown if you try to pick it up)
-@fail Puppy Vendor=The machine is firmly latched to the ground. 
-@ofail Puppy Vendor=tried to steal all the puppies.

Gonna need some pay messages.
-@pay Puppy Vendor=You give the vendor 25 coins. 
-@opay Puppy Vendor=pays for a brand new puppy.

Give it a nice description.
-@desc Puppy Vendor=A large metallic object about the size of an american fridge. On the front, ther
e's a transparent plastic window, and when you look through it you can see a bunch of puppies of var
ious colors hanging by their shoulders off some metal poles. Some are green, some are red, and some 
are beige. All the puppies are wearing oxygen masks and seem to be hibernating. A shiny black tube g
oes into each puppy's stomach, and some thinner wires snake out and attach to various parts of their
 little bodies. You can hear the soft whir of multiple fans that control the humidity inside the ven
dor. The whole contraption smells oddly like chicken fried steak. 

Create some puppies and set the chown_ok so people who buy them can own them too. Give them some des
cs too if you want. 
-@create Red Puppy
-@set Red Puppy=chown_ok
-@desc Red Puppy=A delicious red puppy. High in protein. 

-@create Beige Puppy
-@set Beige Puppy=chown_ok
-@desc Beige Puppy=A tasty beige puppy. Remember to let it cool and stir well.

-@create Green Puppy
-@set Green Puppy=chown_ok
-@desc Green Puppy=A puppy for vegetarians. Contains no gluten or horse derivatives. 

Then give them all to your vendor.
-give vendor=Red Puppy
-give vendor=Beige Puppy
-give vendor=Green Puppy

At this point, we're just gonna keep it simple. All three puppies will cost the same amount. 
Well, if we want it to drop the right puppy, we need to make a command to choose the little bastard.

Let's start with a $ command for the time being. We'll call it select.

-&select puppy vendor=$^select (red|green|beige)$:{commands go here}

this makes a command called select, it will only work for red, blue, and beige (cause that's all we'
re selling) and that will let us know what puppy to drop. Your @apay will contain the code to drop t
he right puppy. @apay means what the vendor does when you give it the right amount of money. for ref
erence (red|green|beige) is just a way you make only three options selectable. There are longer ways
, but this is the easiest to teach.

moving on:

-&select puppy vendor=$^select (red|green|beige)$:@emit %n selects a %1 puppy.;&selected me=%1;@cost
 me=25;@pemit %#=Give me 25 coins to vend.

Break it down: "%n selects a %1 puppy" means [name of the player who's buying] selects a [color chos
en] puppy. We do @va me=%1 to let the vendor know that it will be dropping a [color chosen] pu
ppy. We do @cost me=25 to set the cost, and basically turn all the money functions on. When you buy 
a puppy, we'll set cost back to nothing, so you can't buy anything until you select a puppy color ag

also remember to set it regexp, because we're performing regexp matching here instead of regular glo
bbing.(don't worry about it too much, just set it)

-@set vendor/select=regexp

We're also gonna add an automatic cancel so that you can walk away and the machine will reset itself
 if you decide you don't want a puppy after all. 20 second timeout. 

@wait 20={@cost me;@va me}

&select puppy vendor=$^select (red|green|beige)$:@emit %n selects a %1 puppy.;@va me=%1;@cost 
me=25;@pemit %#=Give me 25 coins to vend.;@wait 20={@cost me;@va}

All the commands that get executed when you give an object money are in @apay

-@apay puppy vendor=@clone %va puppy.;@va me;@cost me;@emit Enjoy your new puppy responsibly.

%va will be a variable that contains the color that the player chose. then you need to clear
 the variable, so the next person has to choose before buying, and clear the cost so you can't buy.

And if you followed all that or just copied scraps of code from here or there, you should have your 
own puppy vendor and still know nothing about @switch because i've been doing regular expressions for so long i barely ever use @switch. 

go here:
save the lessons on your computer, and start working through them.
there is no better teacher. 
You can also read amberyl's manual at
which is good but it's a little bit outdated and often too broad (because it tries to cover just abo
ut every aspect of coding and mush management in one big manual) has code written by others, and some good and some ok lectures on various topics.

format your text with fold they said. it'll look alright they said. >:(
Recent Changes (All) | Edit SideBar Page last modified on June 12, 2012, at 08:14 PM Edit Page | Page History
Powered by PmWiki