			      LPMud FAQ
		      Frequently Asked Questions
	 written by George Reese (Descartes of Borg) 94/07/11
			Last Modified: 95/07/08

The LPMud FAQ was originally authored 7 November 1994 by George Reese.
It could not, however, have been completed on the efforts of a single
person. See the credits section for a full list of contributors. To make
comments or suggestions on this FAQ, mail borg@imaginary.com.

Copyright (c) 1994-1995 George Reese.
---------------------------------------------------------------------------
This is a list of Frequently Asked Questions asked about LPMuds and the
newsgroup devoted to them, rec.games.mud.lp. This FAQ is posted twice a
month to rec.games.mud.lp, rec.games.mud.announce, news.answers, and
rec.answers. All readers are strongly advised to read this FAQ before
posting questions to the LPMud news group, as your question may already be
answered in here.  This FAQ is also available on WWW at:
	    http://www.imaginary.com/LPMud/lpmud_faq.html

This FAQ is not intended to be a substitute for the general 3 part MUD
FAQ's. I strongly recommend people new to MUDs read those first. This FAQ
deals with a particular class of MUDs known as LPMuds, and therefore does
not even attempt to cover information important to other classes of MUDs.
---------------------------------------------------------------------------
The LPMud FAQ is divided into four sections:

* Section I: Introduction
* Section II: Playing LPMuds
* Section III: Coding on an LPMud
* Section IV: Starting Your Own LPMud

---------------------------------------------------------------------------

                                 Section I

                                Introduction

Contents

  1.  What sort of posts belong in rec.games.mud.lp?
  2.  What is an LPMud?
  3.  Isn't Amylaar an LPMud?
  4.  Which is the real LPMud?
  5.  How did LPMuds get started?
  6.  What do the terms "alpha testing", "beta testing", and "fully open"
     mean?
  7.  Where are some ftp sites with LPMud stuff?
  8.  Is there anything about MUDs on WWW?
  9.  What are some MUD related mailing lists?

---------------------------------------------------------------------------

What sort of posts belong in rec.games.mud.lp?

ALMOST anything dealing with LPMuds. Rule number 1 being that the topic of
your posts must someway affect the LPMud community. We do not care about
Dikus and MOOs and so on. They may be very nice servers, but if we wanted
to be reading about them, we would be reading rec.games.mud.diku and so on.
The second rule is to avoid posting on the following topics:

* Where is CheeseMUD? I have not been able to connect all day!
     If it is going to be down a long time, the admins should post to
     rec.games.mud.announce. Otherwise, it is either a short connection
     loss or it is just your problem. Do not post these questions here or
     anywhere!!!
* Advertisements for MUDs
     These belong in the newsgroup rec.games.mud.announce
* FascistMUD's admins are such jerks!!! They ...
     Why would you post this? I guarantee you will accomplish nothing by
     this. First of all, ALL MUD admins have bad days where they may do
     something very unfair. It is the nature of things. So you may be the
     unfortunate victim of a rare set of circumstances rather than of a
     mean admin. Secondly, even if the MUD admin is a jerk, no one on this
     newsgroup cares. People will play such MUDs either because the admin
     is damn good at creating a game or because the players are other jerks
     who like the atmosphere of lawlessness. Players like you may login
     from time to time, but eventually they will figure it out.
* Do not post mudsex sessions
     These things belong in rec.games.mud.tiny

---------------------------------------------------------------------------

What is an LPMud?

An LPMud is one of many classes of MUDs, or multi-user domains. A
multi-user domain is defined solely with respect to its ability to allow
multiple real individuals to come together in some sort of environment.
Although the most common environment is a gaming environment, MUDs need not
be games. In fact, among other uses of MUDs that I know of, there are
virtual colleges, a MUD where victims of abuse can come together in a
productive environment, and MUDs designed to bring students with
disabilities into social contact with one another and others. The single
defining theme for MUD is therefore being a virtual environment where
multiple people come in contact.

An LPMud specifically allows the users to manipulate the environment
through a language called LPC. LPMuds are computer programs which listens
to the internet for people attempting to connect, reads LPC files, and acts
upon those LPC files according to the rules of the LPC language to create
the virtual environment. Currently, I know of 6 major LPMud servers:

* CD
* DGD
* LPC4
* LPMud
* MudOS
* Urimud

With most other MUD games, users do not have access to create in the
language used by the MUD. LPC is used not only to give users such an
ability, but it is also designed with both ease and power in mind.
---------------------------------------------------------------------------

Isn't Amylaar an LPMud?

Amylaar is a person, not an LPMud. He is the primary author and torch
bearer of the LPMud name. Given the generic sound of the term "LPMud" these
days, people often refer to LPMud 3.2 as the Amylaar driver.
---------------------------------------------------------------------------

Which is the real LPMud?

LPMud 3.2 is the official continuation of the original LPMud server,
however, all servers listed above (with the possible exception of Urimud)
are equally real. All have two traits that make a MUD an LPMud:

  1.  The environment is created through files written in LPC.
  2.  The environment can change as new files are added and old ones
     changes, even while the game is running.

---------------------------------------------------------------------------

How did LPMuds get started?

I am not the greatest historian, and may be wrong on some important facts
here, but this is the first shot at the FAQ, so here goes... Once upon a
time, there was Lars Pensj(the being an o with two dots over it... to
an American, that is roughly pronounced "Penscha"), who wrote the original
LPMud coming from an AberMUD background. If you play current LPMud's of the
LPMud type, you won't really notice much of a difference from the original.
From the coders' point of view however, LPC is nothing like it was with the
original. For a long time, there was only LPMud run by Lars with patches by
everyone under the sun. The original LPMud run by Lars was called Genesis.
Its base town called Larstown was taken mostly from AberMUD.

Eventually, others got tired of waiting to see their patches added to Lars'
driver, and Lars was working on version 3.0 of his driver as he was
gradually losing interest in the project altogether. Version 3.0 turned out
to be buggy as hell, and generally unworkable for a real LPMud. CD, LPC4,
LPMud, and MudOS, all derive from this server as people saw good things in
it and began creating working versions of LPMud 3.0 after their own
concepts of MUD server design.

Unlike the others, DGD was created from scratch. It therefore is missing a
lot of the baggage which has come down from the beginning of time in the
other drivers. Urimud, on the other hand, is derived from LPMud 2.4.5.
---------------------------------------------------------------------------

What do the terms "alpha testing", "beta testing", and "fully open" mean?

Generally, a MUD goes through three basic stages. The first stage, "alpha
testing", is a developmental mode in which players are rarely allowed
access to the MUD. Things are in such a disarray or in a flurry of changes
that playing a consistent game is impossible. In the "beta testing" stage,
a MUD is generally opened to players solely for the sake of testing that
the MUD works. Without actual play testing, it is impossible to determine
if a MUD can handle being fully open. MUDs in either of the above stages
generally will not compensate players for mishaps due to bugs in the game,
and they will often even purge players from the MUD. The purging is done
either because old player objects are no longer compatible with new ones or
because the MUD needs to be re-balanced to fit new code.

In the final stage, "fully open", a MUD is just that, fully open. That
means you can expect certain standards from the MUD, including such things
as not dying from bugs. Nothing is ever bug free, so generally fully open
MUDs will compensate players for mishaps which occur because of a bug. On
the flip side, these MUDs usually also smite players who gain from bugs in
the system.
---------------------------------------------------------------------------

Where are some ftp sites with LPMud stuff?

See Section IV: Where can I find all of this stuff?
---------------------------------------------------------------------------

Is there anything about MUDs on WWW?

The following is a list of LPMud related WWW URL's, a few of which are even
written in the MUD programming language LPC:

* http://bat.cs.hut.fi
     The BatMUD WWW Server
* http://www.lostsouls.org
     The Lost Souls WWW Server
* http://tmi.imaginary.com:5550
     The TMI-2 WWW Server written in LPC
* http://www.imaginary.com
     The Imaginary WWW Server
* http://www.pvv.unit.no/viking
     The Viking MUD WWW Server

---------------------------------------------------------------------------

What are some MUD related mailing lists?

The following lists use the majordomo software. To subscribe, mail
majordomo at the sites mentioned with "subscribe list-name" in the body of
your mail. To get more information on the lists below, mail majordomo at
the site mentioned with "info list-name" in the body of the mail.
Naturally, list-name should be replaced with the appropriate list name.

* intermud@imaginary.com
     The Intermud Protocols Mailing List
* lpc-language@imaginary.com
     The LPC Language Mailing List
* nightmare-mudlib@imaginary.com
     The Nightmare LPC Library Mailing List

In addition to the above for information on LPMud 3.2 and 3.2.1, try
mailing to majordomo@ibr.cs.tu-bs.de with "help" in the body of the
message.

Individual MUDs may have their own mailing lists as well. Check with your
LPMud for details. For people running lists with an audience beyond a
single MUD, please let me know of your list. If you use list software not
listed, I need the name of the list, how to subscribe, and how to get more
information.
---------------------------------------------------------------------------

                                 Section II

                               Playing LPMuds

Contents

  1.  How do I play an LPMud?
  2.  How do I get a list of LPMuds?
  3.  Are all LPMuds in English?
  4.  Ok, the MUD is asking me for a name, what do I do?
  5.  They told me I had to register!
  6.  Name and password set, what next?
  7.  I don't want anyone knowing my email address!
  8.  Is it asking me for my gender?
  9.  What does it mean by race?
 10.  What is a class? What is a guild?
 11.  I am in the MUD, what do I do?
 12.  What are some common commands?
 13.  What is an alias?
 14.  Why doesn't the MUD save my equipment when I quit?
 15.  What else is there?
 16.  Why is the MUD admin ignoring me?

---------------------------------------------------------------------------

How do I play an LPMud?

You must first find the internet address of the MUD you wish to play. Once
you find the address, most often people use the "telnet" program to connect
to this address. The MUD FAQ has an excellent section on MUD clients, which
are alternatives to the plain vanilla "telnet" program. However, generally
speaking, with "telnet", you can access the MUD of your choice by issuing
the command:

        telnet address port

For example (% is considered your prompt):

        % telnet nightmare.imaginary.com 1701
        % telnet 129.10.114.86 5555

And so on. Some telnet programs do not allow you to pass arguments at the
command line. Instead, you get something like this:

        % telnet
        telnet> open
        (to) nightmare.imaginary.com 1701

Once you succeed, you will get a welcoming screen which should say the name
of the LPMud and ask you for a name. A common error people will make is
leaving off the number at the end. If you do that, the telnet program
assumes you mean to go to port 23, and it will give you a login prompt to
the host machine.

In addition, some VMS telnet programs use the following syntax:

        telnet 199.199.122.10/port=1701

---------------------------------------------------------------------------

How do I get a list of LPMuds?

I know of no place that lists ONLY LPMud's, however, there is Doran's
Mudlist, which is produced semi-regularly and lists MUDs by type. You thus
have all your LPMuds grouped together. You can find it posted to
rec.games.mud.announce.

From the web, you can connect to these sites to get mudlists:

* http://www.magicnet.net/~cowana/mud.html
     The MUD Connector

MUDs connected to the Intermud generally have mudlists which they maintain
dynamically based on which MUDs they are currently talking to:

* http://ie.imaginary.com:7880/gateways/mudlist
     The Idea Exchange Dynamic Intermud Mudlist
* http://tmi.imaginary.com:5550/gateways/mudlist
     The TMI-2 Dynamic Intermud Mudlist

Keep in mind, however, these dynamic lists hold only LPMuds which support
intermud communication. They are by no means full lists. You will also find
that many MUDs on this list are in some sort of developmental stage.
---------------------------------------------------------------------------

Are all LPMuds in English?

No. To provide a list of such MUDs is beyond the scope of this FAQ. Check
the mudlists for a full and current listing. However, I would like to know
about other languages which might be supported in the LPMud world, so
please mail me if you have a MUD in a language in other than English,
German, or Swedish. Known languages:

* Chinese
* Dutch
* English
* German
* Swedish

---------------------------------------------------------------------------

Ok, the MUD is asking me for a name, what do I do?

Make up a name. Avoid using your real name or common names, real and
mythical. You want not only to give character to your persona, but you also
do not want everyone saying "Hey! Aren't you Bob from JustAnotherMUD"? I
chose the name Descartes, because I was a philosophy major in college. In
general, it is safe to assume any name consisting only of more than two
characters and less than ten (a to z) is acceptable on any MUD. Some MUDs
allow really long names with spaces, apostrophes, hyphens, and other marks.
Others are in between the extremes. Try the name you want. If the MUD will
not allow it, it will tell you, and it should tell you why.

After making up a name, one of two things will happen. Either you will be
prompted for a password, meaning you have picked a name someone else is
using, or it will ask you to create a password, meaning you are a new
character. If the first thing happens, just try again with another name. If
the second happens, you are in good shape.

To create passwords, make up one different than the one you use to access
computers. Although MUDs encrypt passwords for storage, nothing prevents an
unscrupulous MUD admin from intercepting that password and using it for
unethical purposes. It is also recommended that you use a password with
numbers and mixed upper and lower case letters in it.
---------------------------------------------------------------------------

They told me I had to register!

Some MUDs require all their players to register before being allowed to
play. Also, it may be the case that someone from the same place as you has
been causing trouble, so the admins of the MUD in question have decided to
require only people from that site to register. If this is the case with
the MUD you wish to play, simply follow the instructions they give. In most
cases they will give you an email address where you should send your
registration.

---------------------------------------------------------------------------

Name and password set, what next?

This is where you get to see why there is so little in common among LPMuds
from the player's point of view. Some LPMud's will ask you a series of
questions about who you are and what sort of character you would like.
Others ask nothing more. Among the questions you might be asked are: what
is your email address? what is your real name? what gender would you like
to play? what race would you like to be? what class would you like to be?
etc.
---------------------------------------------------------------------------

I don't want anyone knowing my email address!

MUD Administrators have a legitimate need to know your email address. No
one else does. If a MUD requires you to give your email address it should
either offer you the option of keeping it private, or it should
automatically keep the email private. If they do not keep your email
private and you desire privacy, do not play the MUD. Do not complain,
however, that they ask for it.

Note:
There seems to be some difference of opinion on this one, so I decided to
quote one of the comments:

     "Well, I have to disagree with this section: E-mail addresses are
     very difficult to verify in bulk, and really not worth the
     trouble unless you perform site registration. I believe the only
     people you have a legitimate need for an email address from is
     your wizards. Other than that, knowing the ip they log in from
     should be more than sufficient." -Rust (John Viega)

---------------------------------------------------------------------------

Is it asking me for my gender?

No. The game wants to know what gender you would like your character to be.
This means you can play a character of the opposite gender, your own
gender, or one of the alternate gender types which might be offered. The
other side of the coin to this, however, is that you should never count on
other people in real life being the gender of the character they play.
---------------------------------------------------------------------------

What does it mean by race?

Many LPMuds have a feature called character races. The term "race" in these
instances is not the same as the term used in modern society. In fact, the
LPMud term race would more correctly be referred to as species. In fantasy
type LPMuds, you will often see a selection of "races" like human, orc,
artrell, gnome, etc. When you are asked to choose a race, a list of
possible races should be provided for you.
---------------------------------------------------------------------------

What is a class? What is a guild?

In general, a class is a grouping of players with common abilities. A guild
as well can be said to have the same definition. Many MUDs, if they use
either of these concepts at all, add some very individual nuances. To MUDs
which do not have classes or guilds, the concepts are naturally irrelevant.
Those which have one or the other are often using the terms in an
interchangeable fashion. Finally, those MUDs which have both often define
class in a more generic manner than guild. For example, on Nightmare, a
class is like a profession and the guild like a particular job. You might
have people in the fighter class who are in the templars guild, and others
who are in the rangers guild. In short, the guild is a way of specializing
your class abilities.

Other MUDs allow "multi-classing", which may mean joining multiple guilds,
classes, or both. It is always best to check out the "help guild" and "help
class" command on any given MUD to see how it defines these terms.
---------------------------------------------------------------------------

I am in the MUD, what do I do?

There is no one answer to this question, as the answer will vary from MUD
to MUD. No matter what, however, you should see if the MUD has a "faq"
command to get a listing of that MUD's frequently asked questions. In
addition, you should learn how to use the "help" command as well as find
out about the rules governing that MUD.
---------------------------------------------------------------------------

What are some common commands?

The following commands exist on virtually all LPMuds. () around part of a
command indicate that that part is optional. [] indicates that the text
should not be taken literally. These commands naturally are not likely to
be found on non-English MUDs.

* help ([topic])
     Gives you help. If you specify a topic, you get help on that topic. If
     you just type help, you will either get help on where to find other
     help, or you will be put into a help menu.
* tell [player] [message]
     Sends the string [message] to the player whose name is [player]
     anywhere on the MUD. Some LPMuds do not allow players to tell to one
     another as it is viewed unrealistic.
* say [message]
     Sends [message] to everyone who is in the same MUD room as you. This
     command is almost always aliased to "'", such that "'hi!" is the same
     thing as typing "say hi!".
* who
     Gives you a list of everyone connected to that MUD.
* look
     Gives you a description of the MUD room in which you are in.
* look at [object]
     Gives you a description of the object in question.

---------------------------------------------------------------------------

What is an alias?

As with UNIX, most LPMuds provide some sort of method for creating
"aliases". An alias is simply a way in which you can have a easy to type
command represent another command. For example, you will often want to type
the phrase "get all from corpse" on any LPMud. It is much easier to make an
alias so that whenever you type "gac", the LPMud interprets that as "get
all from corpse".

In order to create aliases, you need to know how your particular MUD
handles aliasing. Older MUDs use a device called a quicktyper. Newer MUDs
have alias commands built in. Try issuing "help alias" and "help
quicktyper" commands in order to find out how aliases are handled on your
MUD. If your MUD uses quicktypers, you will have to go find the quicktyper
object before you can create aliases. Ask any other player on such a MUD
where there quicktyper can be found.
---------------------------------------------------------------------------

Why doesn't the MUD save my equipment when I quit?

Balancing a MUD so that everyone is not dripping in wealth and that all
players actually have a chance to die is hard work. It is nearly
impossible. One thing that makes it easier on balance admins is the
non-permanance of objects (in other words, objects do not save). For a MUD
to save equipment, it requires a complete rethink of the way that MUD is
balanced.

It goes beyond the difficulty of balancing the MUD however. There are MUDs
which do save equipment. The character of the game itself however gets
changed by what appears to be a simple change. Therefore asking your mud
admin, "can't you change the game so that it saves equipment" is not so
simple or limited as it might seem. To make such a change to an existing
MUD would actually change that MUD in such a way as it would be unfamiliar
to you.

Putting it simply, saving equipment is not an impossible thing. However,
the consequences of doing so are way beyond what most players are capable
of realising unless they have been involved with MUDs before. To do so on
an existing MUD would change it forever. Every now and then, new MUDs
appear with this feature. In fact, it is becoming more and more common.
Nevertheless, the concept foes have its downsides.
---------------------------------------------------------------------------

What else is there?

Explore the MUD! Most gaming MUDs have places called "newbie" areas which
are simplistic places for people new to the game to go and get the hang of
things. When you first log in to a new MUD, you should ask the others where
the newbie area is. Also, read the login screen and news which scrolls
across your screen at login time, as they contain important information
about characteristics unique to the MUD you are playing.

Ask people questions. Just make sure you have read the help files first, or
you will be sure to annoy someone. In addition, try not to choose a single
person for your queries. Constantly being asked questions by the same
person can often annoy people as easily as stupid questions.
---------------------------------------------------------------------------

Why is the MUD admin ignoring me?

Admins in particular are prone to a MUD disease called "idling". This means
that the lights are on, but nobody is home. An idle person is simply
someone logged in to the game, but who is perhaps not actually at their
computer terminal. That person is thus not really ignoring your question,
since the person is never actually seeing it.

If the admin is not idling, chances are that person is being overwhelmed
with questions or is actually coding online. Many LPMuds will tell you that
the person to whom you are talking is "idle" or "editing". If you get that
response to a tell, do not expect an answer back right away. In addition,
if it says the admin is editing (or anyone else for that matter), then it
is generally considered rude to continue telling to that person as it makes
it difficult for the person to edit.

Many people these days have the ability to be on several MUDs at the same
time. It is therefore entirely possible that the person to whom you are
trying to talk is in fact looking at another window. To get that person's
attention, it may be ok to "beep" them (by sending a control-G in a say or
tell). Some people do not like others to do this to them, however, so be
careful about doing it too much.
---------------------------------------------------------------------------

                                Section III

                             Coding on an LPMud

Contents

  1.  What is coding?
  2.  What is LPC?
  3.  How do I get to code on an LPMud?
  4.  How do I learn to code?
  5.  What are TMI-2 and The Idea Exchange?
  6.  How do I learn to code a room/monster/weapon/armou...?
  7.  But you said that all LPMuds use LPC!
  8.  My code is not working! How do I fix it?
  9.  What is an efun? an lfun? a kfun? a sefun?...
 10.  Can I take my area from LPMud X to LPMud Y?
 11.  Can I code offline?
 12.  Why does the MUD use ed? Why not have the MUD use vi/emacs...?
 13.  How do I put my code into the game?

---------------------------------------------------------------------------

What is coding?

Coding is writing files for the computer to read. In the case of LPMuds,
this means writing files in a computer language called LPC. The LPMud
server reads these files and interprets what those files are telling the
computer to do when certain player actions occur. Often that means things
like displaying a description of a room when you enter it and so on. The
LPC files which make up the backbone of any MUD are called the mudlib.
Coders use the mudlib code in such a way as not to have to rewrite many of
the most common instructions over and over again. With most good mudlibs,
therefore, there is more creation involved than coding.
---------------------------------------------------------------------------

What is LPC?

LPC is an object building language created by the author of the original
LPMud server, standing for Lars PensjC. Structurally, it is much like the
more popular programming language C. Designed with LPMud object building
specifically in mind, it puts the power of game building in the hand of the
general user.
---------------------------------------------------------------------------

How do I get to code on an LPMud?

Policies vary from MUD to MUD. Some MUDs require you to make a certain
player level before being allowed to code. Others require you to pass a
test or fillout an application. Still others just let anyone come on and
code. If you really want to get in on things, the best thing to do is
either to talk to the admins of the MUD you are playing, or go to The Idea
Exchange (ie.imaginary.com 7890) or TMI-2 (tmi-2.lp.mud.org 5555). The Idea
Exchange has a newsgroup for coders looking to code and another for MUDs
looking for coders. TMI-2 has boards which serve the same purposes. Keep in
mind that many MUDs which are open to players already have more coders than
they need.
---------------------------------------------------------------------------

How do I learn to code?

There are two parts to learning how to code on your MUD:

  1.  Learning LPC
  2.  Learning your MUD's object library (mudlib)

Each MUD should have detailed documentation on part 2. Two LPC textbooks, a
beginner and an intermediate, exist to take care of part 1. You can get the
textbooks via ftp at ftp://ftp.imaginary.com/pub/LPC/doc. Documentation,
however, will not really do anything without looking at examples,
practicing, and talking to more experienced coders. Examples should be
everywhere on your MUD (though they are not necessarily good examples).
Practicing is simply just copying code you do not understand, making small
changes to it to see what they do, and learning from what happens. To learn
more about how to code from others, talk to more experienced coders on your
own MUD or visit TMI-2 or The Idea Exchange which have centres designed for
teaching LPC.
---------------------------------------------------------------------------

What are TMI-2 and The Idea Exchange?

These are two MUDs which are centred around the advancement of LPMud
technology and the promotion of its use. TMI-2 stands for "The MUD
Institute". On both MUDs you will find many of the people responsible for
the software commonly used to build LPMud environments, including the
authors of drivers and mudlibs. They are both excellent places for learning
about LPC and discussing new ideas.
---------------------------------------------------------------------------

How do I code a monster/room/weapon/armour...?

Read your MUD's documentation, as this varies greatly from MUD to MUD.

     "Also, questions like that are almost impossible to answer in any
     other way than showing an example. Thus, a much better question
     is: 'Where can I find an example of how to create a XXX?' or 'I
     don't quite understand this part of the example on how to...'"
     -Drevreck (Lars Syrstad)

---------------------------------------------------------------------------

But you said all LPMuds use LPC!

Yes, they do. However, they do not all use the same mudlib. The mudlib is
the basic LPC files you make use of then you write your LPC files. The
LPMud server in turn interprets your files and stores them in memory. Two
MUDs using different mudlibs therefore can be wildly different from one
another. And since the mudlibs are so different, the files you will write
will be equally different.

An analogy might be that of a human dialect. Quebecois French and
Continental French often use different words and such in order to express
ideas. In spite of this, the language structure is the same. So, both are
still French even though you sometimes need to say different things in
order to mean the same thing.

In writing an object in LPC, you are almost always using the mudlib's LPC
files rather than totally writing files from scratch. You do this through
something called inheritances. Inherited code which exists on one mud may
not exist on your mud, or may exist differently. Therefore when you try to
use that code, it will not work as you expect even though both are in LPC.
---------------------------------------------------------------------------

My code is not working! How do I fix it?

First, determine if the problem is with...

   *  the object failing to load
   *  the code causing an error when it runs
   *  no errors, it is just the expected things do not happen

Now that you know what "type" of error you have, you need to isolate it.
Isolating it depends on the type of bug...

the object fails to load
     You have the bug isolated for you you in your error file. The location
     of the error log depends on the file name of the object with the
     error. It also depends on the way your mudlib logs such errors.
     Nightmare, for example, logs compile errors to /log/errors/std for
     obejcts in /std, etc, and /log/errors/descartes for objects from
     /realms/descartes. TMI-2 would log my errors to /u/d/descartes/log. I
     am not sure where they put mudlib errors. I know with MudOSthe driver
     does isolate the error for you to a useful degree of certainty. More
     on this later.
     For LPMud 3.2.1, you can use the: #pragma verbose_errors preprocessor
     directive to make compile time errors include a bit of context in
     error messages. Some mudlibs turn this #pragma on by default.
an error occurs during execution
     These are logged in the mud's runtime error logged, and they ALWAYS
     reflect the exact line where something happened. On MudOS muds before
     0.9.20, the system runtime log was /log/debug.log. The mudlib in later
     versions has the option of naming it whatever.

          "Brought over from LPMud 3.[01].x , LPMud 3.2 uses
          /`hostname`/debug.log. LPMud 3.2.1 allows you to pass the
          option --debug_file to change this default. If there is a
          triple fault (i.e. an error while the master was processing
          an error in error processing), and you compiled the driver
          with the TRACE_CODE option, there will also be a trace of
          the last instructions executed. Moreover, if the driver is
          not out of memory, and there is no triple fault, the apply
          runtime_error() is called in the master, with the error
          message, file name, object name and line number as
          arguments." -Amylaar

     Note that for drivers which can compile LPC code to C and then link it
     into the driver, no line number information will exist to help you in
     debugging. You should therefore debug your LPC code thoroughly before
     compiling it to C.
no errors, you just do not get expected results
     These are the hardest to debug. You need to go through the code and
     test
       1.  Which code is being executed
       2.  The values of the variables in the executed code
     How do you do this? Take the following code with a priveledges bug...

     /* from /cmds/adm/_rid.c */

     int cmd_rid(string str) {
         if(!archp(previous_object())) return 0;
         if(!str || !user_exists(str = lower_case(str))) return 0;
         if(!((int)USERS_D->rid_user(str))) return 0;
         message("system", "You rid "+capitalize(str)+".", previous_object());
         return 1;
     }

     /* EOF */

     /* /secure/daemon/users.c */

     int rid_user(string str) {
         return rm(DIR_USERS+"/"+str[0..0]+"/"+str+SAVE_EXTENSION);
     }

     /* OTHER CODE DELETED FOR BREVITY */

     This is not real code (as a lot more should exist in such an
     operation). However it does serve the point. This code will load fine
     and execute without error. However, it will not delete the save file
     of any user. If anyone executes it, the following will happen:

     > rid weenieplayer
     What?
     >

     So what do you know? You know you typed "rid weenieplayer", and you
     know you got 0 returned. One of the following things happened:
       1.  The "rid" command never got executed
       2.  The archp() returned false for the person executing the command
       3.  For some reason, str was equal to 0
       4.  rid_user() in users.c returned 0 to the command
     How do you know if 1 is the problem? put the line... write("rid
     command executed") as the first line of the cmd_rid() function in the
     rid command. If the rid command is executed, you will see that it is
     executed before you see "What?". If it is not, you will just see
     "What?". If you do not see that line in write(), then you know your
     bug is with you whatever calls the "rid" command. If you do, then you
     know you must proceed further.

Do the same after each line which returns 0. Make sure each write() string
is unique so you know *which* line is being written out. This will tell you
exactly *which* line is returning 0 in the rid command.

In this case, it is #4 which is the problem. The users daemon is returning
0 for for rid_user(). This means that rm() is definitely returning 0. rm()
only returns 0 when an rm fails. rm() only fails when an object does not
have proper access. Therefore, in this case, you need to fix the bug in
your security.

If for some reason you cannot go editing the files in question (i.e. they
are in the base lib files to which you have no access, changing them would
be even more troublesome, etc), you should consider the efuns trace() and
traceprefix().

Do you need to go through all of these tedious steps? No, you can generally
make good guesses as to where to look the more familiar you become with the
code. For example, in this case you pretty much could have elimited step 1
if that command is an old command which used to work. After all, it is
highly unlikely that the mud would suddenly stop executing that one
command!

Furthermore, if you had just made a change to the security system, you
would immediately suspect that rm() failed and thus would have checked that
first.

This is why presenting me with your entier rid command would have been
useless to me. I would have looked at it and said it *looks* ok. But I have
no idea what changes you have recently made to your mud, nor do I know from
looking at the code which of those lines is returning 0. I can only
basically tell you that one of those lines is failing.

However, if you were to tell me that for some reason your user object was
returning 0 in trying to rm() the user file during the rid command, I could
tell you details about the relevant parts of the Nightmare LPC Library
security to this daemon. And then you could use that information to debug
further and ultimately fix the bug.
---------------------------------------------------------------------------

What is an efun? an lfun? a kfun? an sefun?...

For any function in LPC, there are three distinct parts...

  1.  the prototype
  2.  the call
  3.  the definition

Whate differentiates all of these different types of functions is where
they are defined. The definition of the function is the part which says
what it does.

afun (auto function, DGD only)
     the function is defined in the auto object and behaves like and efun
     from other drivers. This function is really very special type of lfun.
apply
     a function defined in the mudlib designed to be called only by the
     driver. All applies are also lfuns. Most of the functions in the DGD's
     driver object and other's master object are applies. In addition, the
     functions create(), init(), and reset() are also applies for LPMud 3.2
     (not 3.2.1), MudOS, CD, and Urimud.
efun (external function)
     this type of function is defined external with respect to the mudlib.
     In other words, in the driver. Since it is defined inside the driver,
     it is faster, but the mudlib is left with little control over what it
     does.
kfun (kernel function, DGD only)
     This type of function is much like an efun in that it is defined
     external to the mudlib in the driver kernel. There are some ways
     beyond the scope of this FAQ in which kfuns differ from efuns, ways
     which have little bearing to daily coding.
lfun (local function)
     Any function defined inside an object in the mudlib. The functions you
     write (like create() or reset()) are lfuns.
sefun (simulated external function)
     lfuns defined in an object known as the simul efun object. Any object
     in the mudlib is allowed to use these functions as if they were efuns
     (treat them like local calls).

You might also want to keep in mind the difference between a local call and
a call_other. A local call is a call to a function defined in your object
or to one of the objects it inherits. A call other is a call to a function
defined in another object. Efuns and simul efuns, though not defined in
your object, act like local calls. Afuns and kfuns are in fact local calls,
since all objects inherit the auto object to which they are local.
---------------------------------------------------------------------------

Can I take my area from LPMud X to LPMud Y?

Can you? If they use the same mudlib, yes. May you? Often MUDs have
restrictions against importing code in order to keep the MUD unique. Talk
to the administration of both MUDs for local details.
---------------------------------------------------------------------------

Can I code offline?

There are many different methods of coding offline, and which one is
available to you depends on your MUD. The methods are:

  1.  CreRemote
  2.  ange-ftp
  3.  your favourite editor + ftp
  4.  cut-and-paste

Editing offline allows you a faster response time, the ability to
multitask, and the ability not to be bothered by incoming tells screwing up
your edit window. It also allows you to make use of editing environments
which may be much more robust than standard MUD ed.

CreRemote has both UNIX and Windows versions. This program basically allows
you to edit files on your MUD as if they were on your local machine. You do
not have to mess with transferring files, and you can do things like update
the files to see if they load. CreRemote for UNIX requires:

   *  any kind of UNIX
   *  perl 5 or later
   *  a direct internet connection using TCP/IP
   *  an RCP server on the host MUD

CreRemote for Windows requires:

   *  Windows 3.1, Windows 3.11, Win-OS2, Windows NT, or Windows 95
   *  Winsock support
   *  an RCP server on the host MUD

ange-ftp is an emacs mode which allows you to edit files in emacs and have
them automatically ftp'ed to your MUD and back. ange-ftp requires:

   *  emacs with ange-ftp mode
   *  an FTP server which gives access to host MUD files

Using a local editor and ftp allows you free choice of which editors you
use, but you have to manually transfer each file. If going from a DOS
environment, you also need to watch for carriage-return/line-feed
translation. FTP requires:

   *  An FTP server which gives you access to your MUD files

Cut and paste requires no file transfer and allows you to use any editor
which has immediate access to your MUD files. For example, you can edit on
your home computer using Notepad, then cut that from Notepad and paste to
your MUD window which is likely in ed. Cut and paste requires:

   *  The ability to cut and paste from editor to MUD window.

---------------------------------------------------------------------------

Why does the MUD use ed? Why not have the MUD use vi/emacs...?

See Section IV: How do I get my MUD to use vi/emacs instead of ed?
---------------------------------------------------------------------------

How do I put my code into the game?

A file is considered "in the game" if another file already visible to
players references it. So, to put your stuff in the game, you need to
change code already in the game to reference your code. This action
normally requires the action of MUD administrator. Most MUDs have some sort
of quality control policies which state rules for having your code
reviewed.
---------------------------------------------------------------------------

                                 Section IV

                          Starting Your Own LPMud

Contents

  1.  How do I start my own LPMud?
  2.  How do I find a site?
  3.  Can I charge players to play my MUD?
  4.  Why can't I use any of the other servers or mudlibs?
  5.  Our system needs upgrading, can't I get donations?
  6.  I have a site, now how do I choose a server/library?
  7.  Where can I find all this stuff?
  8.  Help! I can't get my driver to compile, what should I do?
  9.  I have applied patch XXX, and now nothing works any more
 10.  How do I do ANSI colours?
 11.  Why not just hard code the colours?
 12.  How to I make the MUD use vi/emacs instead of ed?
 13.  Is it possible to connect multiple MUDs together?
 14.  Can a MUD server run on DOS?
 15.  Can a MUD run under AmigaOS? OS2? Windows NT? etc...?

---------------------------------------------------------------------------

How do I start my own LPMud?

  1.  Come up with a unique and interesting idea
  2.  Find a site
  3.  And do:
       1.  Choose a server
       2.  Choose an object library
     Or:
       1.  Choose an object library
       2.  Choose a server
     Or:
       1.  Choose a server
       2.  Write your own object library
     Or:
       1.  Write your own server
       2.  Write your own object library
  4.  Define administrative policies
  5.  Find people to code areas for the MUD
  6.  Get some areas completed
  7.  Open to players (with a beta test stage recommended

---------------------------------------------------------------------------

How do I find a site?

The most common method is to talk to the administrator of the machine from
which you access MUDs and the rest of the Internet. If the resources are
available, they will often allow you to run your MUD server unless
something political like a no-games policy is preventing it. If you are not
running a MUD as a game, however, this is not relevant.

Never run a MUD without talking to your system administrator. LPMuds take
up a lot of system resources, and many places simply cannot spare those
resources on a single project, especially if the project is non-essential
to the functioning of the entity running the machine. Not only is it just
plain wrong to run a MUD without permission, it also predisposes sysadmins
to saying no to people who ask them when the resources are free.

If you cannot run it on your local machine, post a note on the sites-wanted
board at TMI-2 or to the ie.sites.wanted newsgroup on The Idea Exchange. Do
not post to USENET newsgroups unless you have a working MUD. It does not
need to be complete, but posting notes saying "I have a cool idea, will
someone give me a site" is inappropriate, unless that idea is completely
fleshed out with some sweat in the form of work on paper and such.

Another avenue of finding a site is talking to local internet access
providers. Often, they have extra small machines on which a MUD could be
run (sometimes for a fee). The most expensive route is to buy your own
machine and your own Internet hookup.
---------------------------------------------------------------------------

Can I charge players to play my MUD?

If you write the server from scratch AND you wrote your mudlib from scratch
and you have agreements with the coders who wrote areas on your MUD, the
answer, of course, is yes. The above will take roughly 3-5 years of
full-time work to accomplish as well.

If you do not wish to go through all of that time to write your own server
and object library, then you may only choose from DGD or MudOS as your
server. For both servers, you will need to get express permission from
their copyright holders, Dworkin for DGD and Beek for MudOS. No DGD object
libraries currently may be used on such MUDs, and only Nightmare and
Foundation may be licensed for MudOS.
---------------------------------------------------------------------------

Why can't I use any of the other servers or mudlibs?

They all come with some variation of the same copyright. Since all drivers
except DGD were derived from LPMud 3.0, they all require a copyright at
least as strict as that one, which basically states that you can use the
server as you like, so long as you do not make a profit off of its use.
Most current servers have much more strict and explicitly copyrights. On
top of that, many of the mudlibs which exist also have similar copyrights.
To require money of your players is therefore a violation of international
copyright laws. Although MudOS was originally derived from LPMud 3.0, Lars
has recently suggested modifying the LPMud 3.0 copyright and has
specifically given the developers of that server the right to work under a
modified copyright given the degree to which MudOS has changed since LPMud
3.0.
---------------------------------------------------------------------------

Our system needs upgrading, can't I get donations?

Yes, you can request that your players donate money as long as the end of
that money is to run the MUD and donations are not a prerequisite for play
on the MUD. In other words, they must be donations, not fees.

Note:
I am not a lawyer, nor am I the author of all the MUD code out there...
Therefore, keep in mind that what I am saying about copyrights is my
interpretation and not binding upon ANY of the server or mudlib authors out
there. For reference to what is binding with respect to my code, see the
copyright notice which accompanies it.
---------------------------------------------------------------------------

I have a site, now how do I choose a server/library?

Some people have a favourite mudlib, and therefore go at building their own
MUD from the angle of using that mudlib. Others have a favourite server and
start from that angle. Others simply want to start a MUD fast, while others
want to really tinker with it and make it their own. The following is a
rough guide to what is out there:

Note:
Also, I only publish software which the authors have somehow made known to
me to be available, or in fact are widely known to be available. I will not
publish information about software which I have no such verification, since
being on a public ftp site is not the same as being publically available.

                                  Servers

CD
     Generally considered a slow driver, however it is designed to work
     very closely with the CD-lib. Therefore tests showing the CD driver to
     be slower are not necessrily fair as sole factors since they are
     mudlib-independent tests. The CD-lib is considered a well designed lib
     which is often a factor which leads people to choose this server. To
     see a CD server MUD, visit Genesis.
DGD
     DGD is built on the belief that small is good. This is absent of much
     of the extra baggage which exists in all other drivers since it was
     created from scratch. There currently exist two native mudlibs for
     DGD, one of which is a MOO simulation. DGD's documentation is sparse.
     It does support compile time LPC->C compiling, meaning that when you
     compile the driver you can have some of your LPC files converted to C
     and compiled with the driver. In addition, unlike other LPMud servers,
     it is disk-based, meaning you can run a huge MUD on virtually no RAM.
     You therefore never need to reboot or save objects. Dark has written
     intermud support for DGD which can be gotten separately from the
     driver.
LPC4
     Maintained by Profezzorn, it supports a scripting feature that allows
     you to execute LPC files as atomic programs without running the MUD in
     the traditional sense. In addition it features lambda closure types
     which are actually understandable to most people. It is designed for
     speed through the philosophy of creating large numbers of efuns to
     perform CPU intensive work. I know of no MUDs using this driver in
     practice. LPC4 also has socket efuns with TCP support.
LPMud
     Once the fastest of all the drivers, it has lost this crown to MudOS.
     Nevertheless, it is an extremely fast driver which supports the old
     LPMud 2.4.5 Mudlib. It also supports closures, though its closure
     syntax is beyond general ease of comprehension. There is only one
     mudlib in wide release which is native to this server.
MudOS
     The fastest and most feature-filled of the LPMud drivers, this one
     comes with TCP support for mudlib objects allowing you things like
     WWW, finger, SMTP, USENET, and other such access to Internet resources
     from inside the mud. It also comes with a choice of well-developed
     mudlibs native to the server. MudOS allows you to choose between UID
     support and no-UID support, which makes it easy to hack a LPMud 2.4.5
     MUD to work with MudOS if that is your cup of tea. MudOS supports a
     new function pointer syntax which is as functional as LPMud's closures
     without LPMud's obscure closure syntax.
Urimud
     Urimud is descended directly from LPMud 2.4.5, as opposed to the other
     LPMud's (except DGD, which is created from scratch), which are all
     descended from LPMud 3.0. Its most prominent feature is that it can
     handle running multiple MUDs on a single process.

                              Object Libraries

CD-lib
     I am told this is a very well-designed mudlib. Some features of it are
     an enhanced sense of reality through player recognition (you must make
     the acquaintance of players before knowing who they are) and UDP
     intermud communications.
     Runs under: CD (native)
Discworld
     Advanced command parsing system and user interface, as well as many
     concepts you will not see in other mudlibs for any server. Too many
     frogs and wombles.
     Runs under: MudOS 0.9.20 (native)
Foundation II
     A basic mudlib with nothing extra for people who want a solid design
     base from which to design a unique mudlib. No combat or anything else
     fancy is included. Nothing about it is pre-disposed towards fantasy or
     even game playing for that matter. On the positive side, there is
     nothing to deconstruct in order to build your own mudlib and there is
     more of a solid base to work from than something like Lil. The
     downside is that you will have to put in a lot of work to make a
     playable game from this.
     Runs under: MudOS v21.3 (native)
Heaven 7
     Runs in both compat and native modes with autoconfiguration for
     whichever driver you are chosing. Since it runs under 3 different
     drivers, you have the advantage of portability. Security under native
     mode is questionable, and it does not take full advantage of any one
     driver. It also advances very little beyond LPMud 2.4.5.
     Runs under: LPMud 3.1.2 (native), LPMud 3.2 (non-native), MudOS
     (non-native)
Lil
     A small, essentials only mudlib. Designed basically to give you
     examples of files as they must minimally be for the MudOS driver to
     run. Only useful if you plan really to write something totally from
     scratch.
     Runs under: MudOS (native)
LPMud 2.4.5
     The most well-known mudlib in existence. It is rather simple, not the
     best design, but if you know it, it is useful. Also, the widest range
     of drivers support it. Good for putting up and running a MUD quickly.
     It is very ancient and inferior in design, flexibility, and
     functionality to modern mudlibs.
     Runs under: DGD (non-native), LPMud 3.2 (non-native), LPC4
     (non-native)
Melville
     Extremely minimalist mudlib for DGD. Documentation is sparse and it
     has few features.
     Runs under: DGD (native)
Nightmare IV
     Nightmare IV is a complete rewrite of the Nightmare Mudlib from
     scratch, using Foundation II as a base. It has a highly object
     oriented design which makes it easy to customize, multi-classing,
     limb-oriented combat, and a stack-based security system which
     addresses the flaws of UID-based security. Being virtually a 1.0
     release, it is still extremely buggy and unbalanced.
     Runs under: MudOS v21.4 (native)
TMI-2 1.2
     Generic, designed for those who want to tinker around with their
     mudlib rather than get a MUD up in no-time flat. Designed to be easily
     modified and comes with a full-range of intermud support as well WWW
     support. Features include the ability to take over monster bodies.
     Downside is its poor design and performance.
     Runs under: MudOS v21 (native)
TubMUD
     Very intricate, and, according to Rust, "it is beautiful if you can
     figure it out." Intended more for Tub wizards to run at home than for
     wide-release.
     Runs under: LPMud 3.2 (native)

If I have missed a lib, or stated something incorrect about your server or
mudlib, or simply ommitted something, don't go flaming me. Email me the
correct information so I can include it in the FAQ. I did my best to be
fair in this, but in simply undertaking this task I have opened myself up
to flames from anyone who I might have gotten wrong or simply does not like
what I said. So please be gentle, and understand I mean no malice or
ill-will anywhere in there!
---------------------------------------------------------------------------

Where can I find all this stuff?

These first set of sites are generic "goto" sites when looking for LPMud
stuff:

* bat.cs.hut.fi
* ftp.actlab.utexas.edu
* ftp.ccs.neu.edu
* ftp.imaginary.com
* ftp.lysator.liu.se

In addition, the primary site for individual pieces of software:

* CD (server and library)
     ftp://ftp.cd.chalmers.se
* DGD (server)
     ftp://ftp.lysator.liu.se/pub/lpmud/drivers/dgd
* Discworld (library)
     ftp://ftp.imaginary.com/pub/LPC/lib/Discworld
* Foundation (library)
     ftp://ftp.imaginary.com/pub/LPC/lib/Foundation
* Lil (library)
     ftp://ftp.actlab.utexas.edu
* LPC4 (server)
     ftp://ftp.lysator.liu.se/pub/lpmud/drivers/profezzorn
* LPMud 2.4.5 (library)
     ftp://ftp.lysator.liu.se
* LPMud 3.2 (server)
     ftp://ftp.ibr.cs.tu-bs.de/pub/games/lpmud
* Melville (library)
     ftp://ftp.ccs.neu.edu
* MudOS (server)
     ftp://ftp.imaginary.com/pub/LPC/servers/MudOS
* Nightmare (library)
     ftp://ftp.imaginary.com/pub/LPC/lib/Nightmare
* TMI-2 (library)
     ftp://ftp.ccs.neu.edu
* Urimud (server)
     ftp://ftp.netcom.com/pub/urimud

---------------------------------------------------------------------------

Help! I can't get my driver to compile, what should I do?

Thanks to Rust for putting together an answer for this question.

First of all, learn how to redirect stderror to a file if you don't already
know how, or at least find a computer where you can cut and paste. Then,
you have 3 options for getting these errors to a more experienced driver
person:

* You can try The Idea Exchange or TMI-2, two MUDs dedicated to MUD
development, where people who may be able to solve your problem, or at the
very least you can post it on your target driver's board on TMI-2 or the
appropriate newsgroup on The Idea Exchange, where they will be seen by
knowlegeable people fairly quickly.
* You can post it to rec.games.mud.lp, but don't cross post, and it
probably wastes a lot more bandwidth on this newsgroup than on The Idea
Exchange or TMI-2.
* You can mail the maintainers of your driver:
   o  CD: jacob@dd.chalmers.se
   o  LPC4: hubbe@lysator.liu.se
   o  LPMud 3.2: amylaar@meolyon.hanse.de
   o  MudOS: tim@handel.princeton.edu
   o  Urimud: urimud@netcom.com

For MudOS help, you are most likely to get a timely response by posting to
the MudOS newsgroup on The Idea Exchange (ie.imaginary.com 7890). For 3.2
help, and probably DGD and URI help as well, you're probably more likely to
get a timely response by posting on the proper board on TMI-2
(tmi.imaginary.com 5555), since the creators and the people who use their
drivers tend to congregate there. For LPC4, your best bet is direct mail,
for CD, either direct mail or visiting Genesis (hamal2.cs.chalmers.se 3011)
and mailing Tintin et al, and for DGD you might also want to visit The
Pattern (epsilon.me.chalmers.se 6047).
---------------------------------------------------------------------------

I have applied patch XXX, and now nothing works any more.

Answer from Joern Rennecke (Amylaar)
Have you supplied the proper -p option to patch? If not, you might end up
with a patch applied to the wrong file. Check with the appropriate man page
to "patch" for more details.
---------------------------------------------------------------------------

How do I do ANSI colours?

There are several misconceptions about colours. The first misconception is
that all of the world is an IBM PC using ANSI style colours. In fact, there
are many different sets of escape sequences which have the same effects
depending on terminal emulation. If your goal is providing colour support
to players, then limiting yourself to just ANSI support is very similar to
saying "Only people with IBM compat's can play my MUD." Well, maybe not
quite that drastic, but you get the point.

Also, you should keep in mind that the term ANSI has nothing to do with
colours. ANSI is a standards organization, and one of the zillion things
for which they have standards is escape sequences and what they do. Keep in
mind that your goal is to have colours.

Finally, about giving your MUD colour support. The Discworld Mudlib has
developed a protocol now supported by at least Foundation, Nightmare, and
TMI-2. There is no reason, however, that other libs cannot add support this
protocol. It enables creators to code to a single set of codes and have
those codes dynamically interpreted into colours proper to the terminal
emulation being used by a given player. If a certain player has no colour
support, that person does not see the colour codes. For more information on
this protocol, stop by The Idea Exchange at ie.imaginary.com 7890.
---------------------------------------------------------------------------

Why not just hard code the colours?

There are multiple colour escape sequence protocols. Some players cannot
support colour escape sequences at all. Sending colour escape sequences to
people who cannot handle them, or to people who use different protocols can
mess up their displays severely, making the game unplayable.
---------------------------------------------------------------------------

How to I make the MUD use vi/emacs instead of ed?

This question gets asked constantly. When you come around to ask it, think
about what exactly you want. Do you want to have vi or emacs on your MUD?
Or is it that you really want to have a convenient way of editing MUD files
(which ed certainly is not)? In truth, the real problem is the need for
something more convenient than the very inconvenient ed which MUDs use. The
kneejerk response to this need is the belief that your UNIX editing tools
will solve this need. The fact is, however, there are better ways to
accomplish this goal which are listed in Section III: Can I code offline?

Not convinced? There are the technical reasons that people often give, such
as the fact that any visual editor will require character mode, which is
non-trivial in the current batch of MUDs and very network intensive. The
bottom line as to why this is not generally done is that it provides
nothing, yet costs a lot.
---------------------------------------------------------------------------

Is it possible to connect multiple MUDs together?

Is it possible? Yes.

Why do you want to connect MUDs? There are two common meanings behind this:

  1.  Distributed mudding
  2.  Connecting multiple MUDs

Distributed mudding is basically a single MUD whose resources are spread
across multiple servers. Distributed anything is generally required of
resource intensive, mission-critical applications. MUDs are not, in the
scheme of things, resource intensive and they generally are not
mission-critical applications. Distributed computing basically gives you
the ability to expand horizontally rather than vertically. That means
instead of buying yourself a sparc 20 to run your MUD, you can architect it
in such a way that two sparc 2 computers will give the same performance.

The fact of the matter, however, is that no MUD currently in existence uses
the resources which require this kind of scalability. In addition, most
MUDs have a hard enough time finding one site, much less getting two.

More commonly, however, people are thinking of the ability to connect
multiple MUDs together. Before deciding this is a good thing, you should
define the problem you want solved by connecting MUDs. As of yet, I have
not heard a problem which connecting MUDs solves. The most vocal reason is
to allow a person to have the same character across multiple MUDs. At that
point, however, you have to define what it is to be that person. Most
people will quickly say that what defines their character is that they
control it. If that is the case, then connecting MUDs does not solve this
problem. A client which allows the person to login to multiple MUDs is what
solves this problem.

The response then might be to have the same level/skills/whatever across
the multiple MUDs. At this point, however, they cease to be multiple MUDs
connected, but instead one huge distributed MUD. This would be a poor way
to design a distributed MUD, and would also lead to political headaches and
a huge waste of creative talent.
---------------------------------------------------------------------------

Can a MUD server run on DOS?

Yes, most of the servers have DOS binaries available. In addition, most of
the mudlibs have had their files arranged and ported so they fir in the FAT
8.3 naming scheme. If you wish to allow others access to the MUD over modem
lines, be sure to get the comdrv17.com file with your server and mudlib.
For those who choose mudlibs with colours in them, the current batch of
drivers was compiled in such a way that the drivers do not send output
through ANSI.SYS (thus no colour).
---------------------------------------------------------------------------

Can a MUD run under AmigaOS? OS/2? Windows NT? etc...?

These are the ports of which I am aware:

AmigaOS
     DGD, LPMud 3.2, 3.2.1, MudOS
Atari
     DGD, LPMud 3.2, 3.2.1
System 6
     MacMUD (which is LPMud 3.1.2)
MacOS
     MacMUD, DGD
OS/2
     LPMud 3.2, 3.2.1, MudOS
Windows NT
     Nothing

---------------------------------------------------------------------------

Credits

Credits for information in this FAQ beyond the information provided by the
author:

Abigail, Stig Bakken, Jose Corrales, Felix Croes, Joshua P. Dady, Lars
Duening, Monique Girgis, Pelle Johansson, Andru Luvisi, Joern Rennecke,
Danne A Solli, Christina Sterman-Hack, Lars Syrstad, Pekka Timonen, Linus
Tolke, John Viega, Petri Virkkula
---------------------------------------------------------------------------
Copyright (c) 1994-1995 George Reese
This document may not be reproduced outside of USENET newsgroups, ftp
archives, electronic mailings, and other similar not for-profit endeavors
without the express written consent of George Reese.
---------------------------------------------------------------------------
This FAQ is maintained by George Reese, borg@imaginary.com
