A MUCKER is a person that is allowed to write in the TinyMUCK extension language known as Multi-User-Forth (MUF). MUF is a stack oriented language that can be used to provide complicated decision making and processing logic to actions on EMuck.
A MUCKER is identified by a MUCKER
bit on the player,
which allows the player access to three special commands:
@EDIT
@LIST
LINK_OK
, not HIDDEN
, and globally
accessible.
@PROG
@EDIT
.
There are a LOT of things that a MUCKER can do. It's very easy to abuse a MUCKER bit, so EMuck has come up with a set of rules under which all MUCKER's are subject:
SAY
or POSE
actions on places or
objects, unless OK'ed by the EMuck technical advisor (lar3ry).
What this means is that you are asked NOT to
attach a program to an action that a player normally uses.
SAY
and POSE
are two very commonly
used actions; it's quite possible to create your own program
that does something unexpected and attach it to a action named
SAY
on an object in a room.
Then, whenever a player tries to speak, instead of running the
expected program, the substituted program would run instead.
This is not an ability limited to MUCKER's, but a player with a
MUCKER
bit has a lot more things that he could do
with such a hidden command, such as eavesdropping on what some
players may think are private conversations.
Please don't take this rule too literally; programs that emulate any commonly used global action for any reason will be disallowed under this rule.
Normal players should not need a general purpose scanner.
For the record, a "scanner" is a program which tells you
things you wouldn't normally see about any object, such as
location, @SUCCESS
, @OFAIL
,
properties, etc.
Note that this is not a restriction on a player creating a tool for other users that will show that information on objects for which they normally would be able to see using system commands such as 'examine.'
A tracer is a program which tracks character movement or commands.
Note that programs that do a simple count (and do not keep track of names) are OK, and are not considered tracers.
Additionally, programs that keep track of names of players that have solved a particular puzzle are OK as well, but should let the player know that their name is being added to the list.
A "spoofer" is a program which is able to create generic output so that others cannot discern the source of that output.
An easy way to avoid this is to prefix all messages generated from a program run by one player to other players with the name of the player who is running the program.
This is an important rule. EMuck provides a very rigid distinction between workers and other players. A worker character is differentiated by the presence of [] or () in their names. These workers are NOT allowed to converse with other players except as necessary to fulfill their roles as administrators on EMuck (such as when a worker is performing an inspection of an apartment).
To fulfill their roles as administrators, worker's are given extra powers and commands that are only available to them. Since regular players do not have access to these powers or commands, it is unfair for a MUCKER to create a program that would unfairly give such a power to himself or herself.
In addition to the above rules, players are asked that their MUCKER activities be spent in helping out the general EMuck public, and not just themselves. This means that there should be some general use for the programs that they write, or that they help other (non-MUCKER) players in some way.
In all the rules above, there may be some exceptions for unique conditions. In that case, contact the EMuck technical advisor and describe the situation and see if a waiver of one rule or another may be obtained.
EMuck welcomes experienced and neophyte programmers to join the MUCKER ranks.
Players wishing to get MUCKER
status are asked to make
their request to the EMuck technical advisor, who is currently the
player lar3ry.
You can contact lar3ry in one of three ways:
In your request, you should indicate that you understand the rules
under which MUCKER's are required to operate and agree to abide by
them.
It is preferred that a player be online when MUCKER
status is granted, but if schedules can not permit an online meeting
in a reasonable period, MUCKER
status will be granted and
a confirmation note sent to the player.
Currently, the best reference (and usually the most up to date) for the programming language used by EMuck can be found online using the 'man' program.
Examples of MUF programming and other information may be found in ftp://ftp.tcp.com/pub/mud/TinyMUCK.
If you find that you need more help than this, you may want to find somebody that is already knowledgeable about MUF and is willing to help.
If you are a seasoned Mucker and wish to provide some additional tutorial or other information that we can make available to other people, contact lar3ry... we are ALWAYS looking for helpers!
Finally, if you write small programs to test something, or to figure out how a certain primitive works, please remember to recycle them when you are finished. Each tiny program is an actual object in the EMuck database, and being thrifty in your use of test programs can be a big help in keeping the EMuck database from growing out of control.
Whenever you've completed a program, you may want to make the program publicly accessible. Before you do this, please make sure that it adheres to the EMuck MUCKER Policy guidelines:
If your program meets the guidelines above, you may ask that it be made publicly available. This is done by sending a request to the Technical advisor (lar3ry) describing your program's function and how it is to be used.
Within a short time, the advisor will review your program and discuss it with you. If there seems to be a possible problem with the program, it will be pointed out and you may be asked to modify your program appropriately. If everything seems to be OK with the program, it will be made into a globally accessible program.
From time to time, people write legitimate programs that require special privileges. There are varying degrees of privileges that might be required:
WORKER
bit.
AUTOSTART
bit).
Currently, the model is to discuss your need with the technical
advisor, who will check the program for integrity, and if it doesn't
violate any of the rules under which programs are scrutinized, he will
@CHOWN
the program to the Programming Gofer [!] and set
the appropriate permissions on the program and/or the exit.
Players on EMuck are entitled to their privacy. If there is some information you wish to find out about another player that you cannot find by normal means (existing global program) or without the permission of the players involved, you should NOT find it out with a program. However, it is understood that a program may need to store, relay, or use reasonable information for reasonable purposes.
The SAY
/POSE
restriction on actions is not
all encompassing.
For instance, a program that uses SAY
and
POSE
to transmit messages to players outside a room would
be allowed for the purposes of creating a certain environment (say, a
radio station).
It's just that the people subject to being "broadcast" should be aware
of what is happening.
Creating an action that intercepts such commands, stores the
information for later reading, or relays them to another player or
players, is an example of an ILLEGAL program.
People should have a right not to be bombarded with information that they do not want to see. For example, if a player thinks too much talking is taking place, that player can leave the current room. Likewise, any "broadcast" type actions should have options for people to determine if they desire to receive such messages. A very good example is the 'think' program, which allows people to turn the action on or off, or to switch to a private channel. For this reason, a program that sends a message to every player online is extremely discouraged unless that message is of paramount importance. You might want to discuss such a program first with the technical advisor or any of the game admins.
EMuck also prohibits the writing of programs that are designed
specifically to violate (or cheat) EMuck policies.
It is illegal to write a program that emulates a
feature that is usually only available to the administrators (e.g., a
program to shut down EMuck).
It is also illegal to write a program that subverts
the security of EMuck, such as granting WORKER
privileges
to a regular player.
Programs that intentionally crash EMuck will not be tolerated. If you have a program that causes the muck to crash, you will be informed as to how and why it happened and you will be expected to correct your program IMMEDIATELY or risk losing it entirely. If there is a bug in the game server (they have been known to happen), all attempts will be made to ensure that the bug is fixed as soon as possible so that you can continue to use your program legitimately.
If your program is a simple action, providing a "-help" option is very useful. If the program is made global, you will want to set the description of the action to display help. (A common method of doing this is to set the description to automatically call your program with the "-help" option.) Doing these two little things will give you the benefit of automatically tying you into the EMuck HELP system.
If your program is instead useful for other programs (e.g., a
subroutine), you should make the program LINK_OK
and
inform the EMuck technical advisor.
You will be informed how to place the entry into the @REG
database, or the @DOC
database.
It is a common technique on EMuck to prefix your program names with something unique to easily identify the author. For instance, the technical advisor uses the prefix "l3-" in front of all his programs. You do not have to follow this scheme, but we do ask you not to use prefixes that another player has already picked. If you are in doubt, contact the technical advisor.
One very important rule we have on EMuck is that all players may claim ownership of their own "possessions." This includes the intellectual property inherent within them.
If you have an idea to enhance another player's program, you should find out the author of the program and discuss your idea with that person. If the author is not available for some reason, you may contact the technical advisor.
Note that the technical advisor may not allow you to modify another player's program directly, but may work with you to find suitable alternatives.
If you don't wish to have your programs listable by other players, you
can set the HIDDEN
flag on your programs.
The game administrators will respect the HIDDEN
flag on a
program; in no event will they reveal the contents of a program that
has this flag set to any player.
Accidents happen. All the players on EMuck (except the "r." players) are human, and people sometime cross the lines of propriety without intending to do so. This is understood, and can even be expected.
However, deliberate infractions of the rules of EMuck may easily lose
you your MUCKER
bit, or worse.
If you have a program whose use is questionable, it would be to your benefit to first talk to the technical advisor about it. At the very least, it will show that you have given these guidelines some thought.
You are not solely responsible for your programs on EMuck... there
are some legitimate programs whose use can violate certain EMuck rules
and guideline when used by people with less than honest intentions.
For example, a player may use @COSTUME
to make himself or
herself appear as another player; or may customize the
PAGE
program to appear as a different player.
In these cases, EMuck's policy is to weigh the benefits of the program
over the problems of having the program abused; in these two cases,
the game admins will find the player abusing a program to be at fault,
and not the person that created the program.
Again, it's always safe to discuss such possibilities with the game
admins.
Decisions made by the EMuck technical advisor on matters of programming may be considered EMuck policy. The technical advisor HAS been known to reverse himself in some decisions if presented in a thoughtful matter. As in all manners of EMuck policy, if you have a serious disagreement in a judgment made, you can also appeal to the other game admins.