FurryMUCK Mucker Policy
I'm still in the process of hypertexting this document. Until I'm done,
here's the flat ASCII version. -- Telzey
Furry Mucker Policy version 2.2
-------------------------------
1.0 How can I be a MUCKER?
We welcome both experienced and neophyte MUCKERs! We ask only that (a)
you help the general Furry public, not just yourself, by writing useful
programs of some social benefit or aid to building, and (b) that you abide
by the spirit and letter of our MUCKER policy.
If a program you would like to write or use falls into a "gray area" of
these guidelines, please ask us for clarification! We may be able to
suggest ways to accomodate your needs.
2.0 What does a MUCKER do?
2.1 Learning to Program
Start by reading the MUF tutorial and the MUF manual.
Find them with the INFO command.
If you need more help than this, we may be able to put you in touch with
a MUCKER willing to tutor you.
If you write small programs to test something, or no longer need a
program, please remember to clean up after yourself! FurryMUCK is low on
available space, so save where you can.
2.2 Differences in FurryMUCK Programming
On Furry, "home" is used to abort programs that are waiting for your
input. So if you think you may be trapped in a program, try "home" first,
not "@Q" as it is defined on many MUCKs.
Furry's MUF also defines several new primitives:
awake? ( d -- i ) returns 0 if the player dbref given is not connected,
a 1 otherwise.
timefmt ( i -- s ) returns the formatted time in an English string.
However you must strip off the ending linefeed-- this is a known bug.
Other Furry MUF primitives may exist but are not documented here.
2.3 "The Big Time" -- Public Programming
Whenever you write a program, and especially when a program is publicly
accessible (link_ok), please make sure it adheres to our guidelines:
1. It should be useful in some way, social or building.
2. It should not violate guidelines of privacy, respect, or honesty.
(see section 3.0 of this policy)
3. It should not be wasteful-- do not use more space or CPU time than
is reasonable, or duplicate things that already exist.
If one of your programs meets the guidelines above, you may ask to have
it made publicly available. Such a program must be set link_ok in order for
other people to use it.
A program that would be useful as a command for everyone may be
installed as a global. Type 'globals' to see some commands available.
Many programs are already publicly available; type 'programs' for a
list, then list these programs for more information, or go to the Anastasia
Programming Library and look through their files. If you are looking for a
program that would be a modification of an existing one, you might find it
more convenient to ask the programmer to change it appropiately.
3.0 Guidelines to Proper Programming Etiquette
3.1 Privacy
Players of Furry are entitled to privacy. If you couldn't find
something out by normal means or without the permission of the users
involved, you should not find it out with a program.
However, when you use certain programs, it is understood that the
program may store, relay, or use _reasonable_ information for _reasonable_
purposes.
If you aren't sure a program would fit this guideline, please ask!
(a) Bugs relay information to another person, room, or stores it for
later reading, without your implicit consent.
Examples of legal programs:
1. Public programs such as page and spoof, which only use information for
administrative purposes, and are documented as to this use.
2. Programs that broadcast messages for the purposes of "virtual reality"
such as a program to let you be heard from a stage. However it is
possible to disguise the use of such programs. This is unethical.
3. Bulletin boards, mailing systems, and other programs meant to record
and display messages for the public, with the user's explicit consent.
Examples of illegal programs:
1. Programs that duplicate "page", "whisper", "say", or "pose" in order
to record or relay information without the player's knowledge.
(b) Scanners find information about other players, their properties, or
belongings, that would not normally be available, and which the player does
not wish revealed.
Examples of legal programs:
1. A program that only shows you messages or properties which are set
specifically for that program. E.G. a smell program might show you
people's smell messages, but it would be unethical to write programs
to read people's smell messages at a distance, without their consent.
2. Programs that show you information which you could obtain another way,
e.g. a program to tell you which of a selected group of people are on
the WHO list, or a program to tell you what exits go from rooms that
you own. Owners can always examine anything they own.
3. In reasonable circumstances, programs may show you information such as
which players are in another room if it is known to the people in
this room that they may be observed. E.G. a transparent exit
description for windows.
Examples of illegal programs:
1. Programs that show you properties or messages on players, objects,
and so forth that you do not own and could not normally find out.
2. Programs that reveal private exits in rooms without the permission of
the room's owner. (similarly, programs to locate players without
their permission)
3.2 Respect
Certain programs may, while not invading a player's privacy, harass that
player, or make it possible to do so in a way that is undetectable. Players
are entitled to respect and dignity.
(a) Spoofers allow a player to simulate another player's actions. This
would allow players to forge incriminating or insulting messages under that
player's name.
Messages that could potentially be spoofed should be made apparent in
some plain manner or changed to remove this danger.
(b) Markers are programs that change, add to, or remove player
properties without their implicit permission.
Examples of legal programs:
1. Programs may set temporary properties, or properties that obviously
belong to the program, and do not interfere with other programs or
the user's convenience. E.G. the page program sets a number of
properties for records keeping.
2. Programs that explicitly give the user full knowledge of what changes
are about to be made. E.G. role-playing systems and shape-shifting
programs that modify your description.
3. Programs for building assistance, which change your properties and/or
objects in an approved way.
Examples of illegal programs:
1. Programs to overwrite another player's descriptions, messages, etc.
without their consent.
2. Programs meant to harass them by insulting, annoying, or otherwise
inconveniencing them, e.g. programs to send a spoof message directly
to a player without the player's permission, or to whisper to all but
one player.
3.3 Other Prohibited Programs
Furry prohibits general teleporter programs that would allow players to
invade private rooms or that are intended to violate virtual reality, e.g.
encouraging people to teleport directly to a room, ignoring intervening
areas.
Teleporters may be allowed in limited cases, but only for very specific
reasons and purposes. They must follow these restrictions:
1. Players must agree explicitly, or implicitly by entering a vehicle,
following another player, being picked up by that player, etc. to
be moved.
2. Programs to move players can only move players from or to rooms
for which they have permission, and under such circumstances as are
appropiate, e.g. a taxi might have stops in different rooms with the
permissions of these rooms' owners.
3. Such programs must be appropiate to the circumstances, the "virtual
reality" of the situation in question, etc.
3.4 What Happens If I Make A Mistake?
There are three steps, depending on seriousness of the offense.
Accidents and oversights happen; on the other hand, a deliberate infraction
may well lose you your MUCKER bit immediately. You will be informed of the
reasons for any actions we take as regards you or your programs.
1. If you write a program considered abusive or forbidden, you will be
talked to about why you need such a program.
(a) If the reasons are acceptable, the program may be allowed as is,
or we may suggest how it can be modified to make it fit the
guidelines.
(b) If the reasons are unacceptable or inadequate, you may be warned
to remove the program, or else modify it so that it will be
acceptable.
2. If you don't comply with requests to modify or remove a program that
is particularly abusive, then the program may be removed. Programs that may
crash the server may also be confiscated or removed. You will be told how
and why the program crashes the server
3. If you repeatedly upload programs that were removed as abusive, or
crash the server, or otherwise abuse your MUCKER bit, then you may be
deMUCKERed and offending programs will be removed.
Appeals will be allowed under extenuating circumstances.
4.0 Program Libraries and Macros
4.1 Documentation
Please document your programs where possible, so that those who are
meant to use them can do so.
If programs are link_ok, therefore publicly usable, you should put
comments at the top, or else provide some obvious way of getting help. For
instance, the page program allows you to type 'page #help' for instructions.
We suggest that programs have comment headers describing the basic code
(two or three lines to synopsize the program's purpose, how it should be
used, and unusual things that users should know), naming the owner, and
providing any copyrights you wish to include.
Please don't complicate your code more than MUF normally reads;
deliberately obfuscating your code beyond a capable MUCKER's ability to read
is considered impolite.
Macros should be commented, or else obvious from name or definition as
to what they are intended to do.
4.2 Information Ownership
Many programs are set link_ok so that they can be readily used. This
does not mean that you are free to copy them to other systems, or for your
own uses. Please ask the permission of the creator before you copy programs!
5.0 The Final Word
If you have any questions about this policy, MUCKing, or other related
issues, please ask a knowledgeable player, MUCKER, or wizard. They may be
able to offer you answers, suggest where you can look quickly and
conveniently for information, or suggest how MUCKER policy applies to your
question.
In all disputes related to MUCKER policy and programming on Furry, the
judgement of the Furry MUF wizard is final and supercedes the guidelines of
this policy.
6.0 Credits
Adapted from the Crossroads MUCKER Policy
Original draft v1.0 written 2/4/91 by Tygryss (Insane Mucker in Residence)
Revised v1.1 3/12/91 by Lynx (Lynxiwynxipooflemuffins)
Revised v1.2 3/29/91 by Cinnibar
Revised v2.0 2/28/92 by Lynx
Revised v2.1 3/ 8/92 by Lynx
Revised v2.2 3/15/92 by Lynx
MUCKER LEVELS
There are now four levels of MUCKERs in fb4.0. Level zero is a
non-mucker. They cannot use the editor, and MUF programs owned by them
cannot be run.
Level one MUCKER's are apprentices. Their powers are restricted as they
cannot get information about any object that is not in the same room they
are. ie: OWNER, NAME, LOCATION, etc all fail if the object isn't in the
same room as the player. Level one MUCKER programs always run as if they
are set SETUID. NOTIFY, NOTIFY_EXCEPT, and NOTIFY_EXCLUDE will refuse to
send messages to rooms the user is not in. Level one programs cannot use
ADDPENNIES. Level one programs don't list DARK objects or rooms in the
contents of a room, unless they are controlled by the program owner.
Additionally, level one programs have an absolute instruction limit that
is the same size as the PREEMPT instruction limit. This is usually
around 20,000 instructions.
Level two MUCKERs are also called Journeymen. Their permissions are
equivalent to the permissions for a normal MUCKER under older versions
of the server. Level two programs can run as many as four times the
number of instructions that a preempt program could. This is usually
around 80,000 instructions.
Level three MUCKERs are referred to as Masters. They can use the con-
nection info primitives (ie: CONDBREF, ONLINE, etc.), read the EXITS list
of any room, use NEXTPROP on objects, can use NEWROOM, NEWOBJECT, NEWEXIT,
and COPYOBJ without limitations, can use QUEUE and KILL, and can override
the permissions restrictions of MOVETO. You only give a player MUCKER
level 3 if they are very trusted. There is no absolute instruction count
limit for level three or above, except for programs running in PREEMPT mode.
A player who is wizbitted is effectively Mucker Level 4. MUCKER level
four is required for the RECYCLE primitive, the CONHOST primitive, the
FORCE primitive, and the SETOWN primitive. ML4 also allows overriding
of permissions of the SET* primitives, and property permissions. Props
not listed by NEXTPROP with ML3 are listed with ML4. Programs running
ML4 do not even have instruction limits on PREEMPT mode programs.
The MUCKER level permissions that a program runs at is the lesser of
it's own MUCKER level and the MUCKER level of it's owner.
If it is owned by a player who is MUCKER level 2, and it is MUCKER
level 3, then it runs at Muckr level 2. The one exception to this is
programs owned by a Wizard player. They run at Mucker level 2 if the
program itself is not wizbit, and at Mucker level 4 if the program IS
set wizbit.
Mucker level is referred to in flags lists by M# where the # is the
Mucker level. Level zero objects don't show a flag for it. Example:
Revar(#37PM3)
In verbose flags lists, Mucker levels greater than zero are shown
by MUCKER# where # is the mucker level.
To set a level on a player or program, use the level number as the
flag name. MUCKER is the same as 2, and !MUCKER is the same as 0.
Example: @set Revar=2
A player may set the MUCKER level on a program they own to any level
lower than or equal to their own level, and a wizard may set a program
or player to any MUCKER level.
When a program is created, it is automatically set to the same MUCKER
level as the creating player. When a program is loaded from an old db,
if it is Mucker Level 0, it is upgraded to Mucker Level 2.
Return to the Programming Page
Page created by Telzey, and maintained by Tugrik d'Itichi.
Comments/Questions/Flames
to: FMPages@furry.com