The Novice Archon's
Guide
to CoffeeMud 5.3
By Archon Grothus Gallslanger of the Free City of Maltan

World Construction and Destruction
Causing buildings and towers to appear along paved streets, mountains to rise from the dust, and then breathing life into this worlds denizens may seem like a daunting task, but you will quickly discover that it is not so. All it takes is some careful planning, and educated execution.
Towards that end, but before we get started properly on the business of molding a universe, we must needs take a moment to reflect on the powers of the Archon, and how the universes underlying laws are navigated. Herein, therefore, I have copied from the sacred scrolls the archaic and confusing runes of "CoffeeMud Administration" for your consideration.
The administration of your CoffeeMud server is done from within the game server itself, when you are logged in as your Archon player. Some functions can be performed from the MUDGrinder.
AHELP
This is the command that Archons will use to get help on all of the commands in this section, on various administrative topics, and
on all of the various building "tools" discussed elsewhere in this document, including such things as behaviors and properties. The atopics
command can give you a comprehensive list of all the topics you can get help on with ahelp.
ANNOUNCE
If there is some message you wish to give to everyone presently on your mud, this is the surest way to make sure they receive it.
AFTER
This command lets the Archon do things after an elapsed time, or even periodically.
AS
This command lets the Archon do anything as another player.
AT
This command lets the Archon do anything anywhere, regardless of where he is!
BAN
Deadly, but necessary, this command allows you to specify player names, or partial player names, or IP addresses or IP ranges that
you wish to keep OUT of your mud.
BEACON
The beacon command is used to change the unique home, start room, or recall room of either the Archon, or some targeted player.
Rarely used, it is typically invoked only as reward for a player or perhaps a lesser admin.
BOOT
If a player becomes troublesome, or you just want them to go away, you will use this power to knock them temporarily out of your mud,
regardless of where they are in your world. To make them STAY away, you will have to investigate commands such as destroy or ban.
CATALOG
This is a powerful command for managing templates for your customized mobs and items. This is discussed in more depth below.
CHARGEN
This little tool accepts a character class name and a level, and it shows you the stats of an "average" player of that class and
level. Although it's not a vital administration tool, CharGen can be a helpful aid in the construction of monsters, perhaps.
CLOAK
This command makes the player unlisted in commands like who, chanwho, and on web player lists.
COPY
Depending on the argument, this command can make copies of almost anything in your mud, from rooms to monsters and items. The thing
you want to copy must exist somewhere in the world for you to properly copy it. You can even specify how many things you wish to copy, for
those moments when one pot pie just won't do.
CREATE
Depending on the argument, this command can bring almost anything into existence, from rooms to doors, from monsters to items. The
create command is discussed at length in the sections on building rooms and areas. It is also featured prominantly in theGame Builders Guide.
DESTROY
This powerful command can be used to banish objects and mobs, rooms and areas, or even players -- permanently. A player (user) need
not be online to be destroyed. The destroy command, as it relates to rooms, exits, items, and mobs, is discussed further in the sections on
building rooms and areas, as well as the Game Builders Guide.
DEVIATIONS
Can show you the difference between your world as it is compared with the standards at the end of this document.
DRESS
The quick way to get clothing, weapons and armor on your mobs from the command line.
DUMPFILE
When you want to view some text file on your computer through the MUD.
EXPORT
If you need a backup to your database, you can save your areas one at a time as files, for reimportation in the event of a disaster.
This command will generate files with the extension .cmare. They are XML formatted text files containing all the data you told the system
to export. In addition to rooms and areas, you can also specifically export players, some items or mobs from a room. The import command
could then be used later to load the data you exported back in.
GMODIFY
Quickly search for all the monsters, items, or rooms that match your search criteria. You can also optionally modify the found fields
with this command.
GOTO
Allows the Archon to zap him or herself directly to the room or mob of his or her choice. The argument is a valid Room ID, room name,
mob name, or area name. You will find yourself using the goto command quite a bit. Walking everywhere sucks.
I3
This module is used to manage InterMud 3 chatting channels. I3 is a component of CoffeeMud that provides for chatting channels which
span across many many muds in cyperspace, allowing players and admins to talk to folks playing on other muds.
IMC2
This module is used to manage InterMud Chat 2 information. IMC2 is a component of CoffeeMud that provides for chatting channels which
span across many many muds in cyperspace, allowing players and admins to talk to folks playing on other muds.
JRUN
This command can be used to execute Javascript scripts located on the local hard drive. If the gods have given you this power, they
have great trust in you indeed.
IMPORT
Import will suck in one or more data files and recreate rooms, areas, players, mobs, items, and lots of other stuff from the contents
of those files. The data files that import will successfully read include (of course) the CoffeeMud .cmare files discussed under the export
command. In addition, import will also take in area data files from other MUDs, such as ROM, CircleMUD, and others. Of the non-CoffeeMud
area files, the ROM format is by far the best supported.
LINK
This command will cause two places to come together, making travel between them much easier.
LIST
The Archon is able to list lots of different things, for many different reasons. "list users" will show you all of the players, and
when they logged on last. This is useful for weeding out olde players (see DESTROY below). "list threads" will show you how many Java
threads are active. "list ticks" will show you all the objects making use of those threads! "list reports" will show you your resource
usage. "list staff" will show you a list of your areas and any Area staff defined for them. You may also list things like locales, items,
weapons, armor, mobs, and other things discussed further down in the sections on world building.
LOAD
This command will cause a text or file resource to be brought into memory. What happens to it from there is your business.
MERGE
This powerful tool is rarely used, but is vital if you need to make small changes to identical items or mobs scattered all around
your world. It uses item or mob data gathered from the export command to merge with the items and mobs you specify in the real world,
making the necessary world corrections that you want it to.
MODIFY
If something which exists is not quite right, this command can make it right. By telling the system exactly what you want to modify,
you can change it into what it ought to be. The modify command is discussed further in the sections on building rooms and areas, as well as
in the Game Builders Guide.
MULTIWATCH
A little tool which allows an Archon to gather evidence against multiplaying players.
NOPURGE
Prevent a player from ever being auto-purged due to not logging in.
ORDER
Although any player may order around their followers, an Archon can order ANYONE to do ANYTHING.
POOF
This command lets you modify the messages seen when you use GOTO to move from room to room.
POSSESS
Easily the most fun part of being an Archon is to possess one of the monsters and harass the players, making them think the monsters
have truely come to life! Some enjoy this so much that they forget to return to their true bodies!
PURGE
A moderate form of the DESTROY command which allows you to clear out mobs or items without affecting whether or not they will
repopulate (rejuv) later on.
RESET
Giving a parameter of "room" or "area", this command will make everything reset back to the state it was last saved at.
RESTRING
A moderate form of the MODIFY command which allows only editing a few fields on items.
SAVE
This command is used to update your CoffeeMud database. If you use "save user", the system will update the players data. "save room"
can make aspects of a room permanent by saving it to the database. Saving rooms is discussed further below in the section on building.
SESSIONS
This command will list all of the players online, and perhaps a few who are on their way to being online.
SHELL
This command will allow you to view the files in your coffeemud folder, copy and delete files, and even put them in your database.
Saving files in the database? See Appendix H for more info on the CoffeeMud VFS system.
SNOOP
This command can let you watch other players as they wander your world. This command gives you a second pair of eyes to look over the
shoulder of the player of your choice. You will see everything they see, almost as if you were them yourself.
STAT
This command allows you to do everything from view the statistical happenings on your world, to the simple charicteristics of a
target mob or player.
SYSMSGS
This important little trick is vital to those doing CoffeeMud development from the command line. It gives the Archon a unique vision
of the world sometimes necessary for his work. For one, it makes everything visible to the Archon regardless of its state of visibility,
darkness, fog, or any/all other conditions. It also reveals the unique identifying codes, classes, and names by which things are known or
identified. All of this is very important when trying to modify or destroy things you no longer want in your world.
SHUTDOWN
Although CoffeeMud can also be brought down by killing the Java virtual machine, the proper way to shut down CoffeeMud is by entering
the shutdown command. This will ensure that all users are saved back to disk, and that the system goes down in a polite and orderly
manner.
TAKE
Use this command if a player or monster has something that doesn't belong to them, and you need it back.
TICKTOCK
This simple little power will advance the world's time clock by one hour every time it is used. If it's day, and you want it to be
night, or vis-versa, this is the way to go.
TRAILTO
A tool to tell the Archon the twistings and turns from where he is, to where he'd like to be.
TRANSFER
Allows the Archon to zap someone directly to the room or mob of his or her choice. The argument is either ALL or the name of the
target, and a valid Room ID, room name, mob name, or area name. Use this when you want someone to go somewhere NOW.
UNLINK
This command will separate two places from one together.
UNLOAD
If you've made any changes to your help files or other resources, and don't want to have to reboot the whole MUD, you can use this
command as a short-cut. It unloads "resources" (try "list resources") that are in memory. By unloading resources from memory, you force
CoffeeMud to reload your changes from disk.
WHERE
Allows the Archon to see who all is online, and where they are on the map. With an argument, the WHERE command becomes a map search
tool. An argument such as "where orc", may be given to specify a specific mob name. That way, you can find out where you might have
misplaced that wandering zombie. Where can also be used to locate rooms, items, or almost anything else. The mind boggles at the
possibilities.
WIZEMOTE
The omnipresence of the Archon is reflected in this command, which causes a message to appear throughout the world.
WIZINV
Sometimes an Archon wants a little privacy, and this command gives it to him or her. It will make the Archon completely undetectable,
allowing free movement without harassment from players or monsters.
CoffeeMud has an extremely flexible and powerful security system. It allows the Archons to designate who has which powers, and where they may exercise them. Powers can be doled out to minions as they deserve and warrant.
By default, all players who have levels in the class of Archon are all powerful system administrators, who may perform all of the powers discussed in the last section and many many more. Of course, this does not NEED to be the definition of the all powerful, but since it is for starters, we will continue as if Archon and 'All Powerful Super Duper System Administrator' are indeed and always the same. If you wish to change it, the SYSOPMASK setting in your coffeemud.ini file is the place to go, or to the MUDGrinder has a wonderful tool for security in the Control Panel.
While players are just players, and are unable to wipe their own noses without an Archon to provide them a tissue, they may also be much more with the wave of an Archon's hand. The Security setting one sees when using the command MODIFY USER playername from the command line can be used to give players a small portion of the creative powers. By combining this with the Staff setting under Areas (see below), players can have their powers narrowed to certain spheres of influence. A customized Character Class can also be used to expand the creative power of players by adding Security Group Levels to your players character class. See the section on creating your own custom character classes for more information on this.
To upgrade the powers of a player, you may use the MODIFY command as mentioned previously. From the Security setting, players who are not SYSOPS may be granted very specific privileges by adding special security codes. Each of the privileges/flags may be limited to specific areas, or available globally. Each entry listed under Security for a player may be either a security Group, or a specific security code. Security Groups, like the SYSOPMASK mentioned above, are also defined in the coffeemud.ini file or from the MUDGrinder Control Panel. A Security Group consists of a group name, and a set of string codes representing privileges for that group. The string codes are the security flags. The Group names in the Control Panel start with the string "GROUP_", but only the part after that string is a valid group name. You should never include the "GROUP_" part when entering a group name into a players Security settings.
Now, each individual security code which makes up each of the groups is implicitly global (meaning the power may be used anywhere), but can be qualified as area-only by prefixing the code with the word AREA and a space. For example, the security code "ANNOUNCE" by itself confers the global ability to use the ANNOUNCE command. The security code "AREA ANNOUNCE" means that the ANNOUNCE command can only be used inside areas where the player is listed as Staff. See the section on Areas in this guide for more information on Staff.
Use HELP SECURITY, or access the Control Panel from the MUDGrinder for a list of recognized security codes.
Building Your World: Planning is the First Step
Before a single bird can flitter through the skies that you opened up, you must have planned the placement of that sky, and the song of that bird. I am assuming you have been given some general area to construct, some wicked kingdom, joyous elven city by the sea, or some other such nonsense. If not, get one; decide on the general theme of some area you wish to construct.
At this point I suggest you get a piece of graph paper or parchment. Upon it you shall draw small squares next to each other. Plot out
every location you will create. The squares need not be equal in size, but they need to all fit together somehow. Before invoking the
spells of creation, you should know where every door leads, where every path ends, and if X indeed marks the spot, where the X is.
Inside each square, you shall make small notes. What notes? Well, that's the next part of our story.
At the foundation of the CoffeeMud world is the room. Now, a room is not just some pink wallpapered play area, but simply a place. Certainly a kitchen can be a room, as can a pink wallpapered play area, but so can the bottom of a well, a stretch of rolling hills, the top of a tall mountain, or a dragon’s lair deep underground. Physical size does not matter with rooms; only your imagination can determine that.
Every room has a general foundational type that defines it. That type determines the behavior of that room day to day, whether it is outside or inside, made of wood or stone, a mountain or a plain, in darkness or light, a cliffside or deep in the ocean. The type determines whether one breathes water or air, chops wood or fishes, and how good the hunting is. This foundational type of every room has a name: Locale.
If you log into CoffeeMud right now, you can list the available Locales with the command "list locales". This list should include many different types of locales, most of which are self-explanatory. They include:
| CaveMaze | a dark, dank, multi-room maze of caves |
| CaveRoom | dark and dank |
| CaveSurface | dark and dank ClimbableSurface |
| CityStreet | outside urban area |
| ClimbableLedge | the edge you must climb up to |
| ClimbableSurface | an area that can only be climbed or flown through |
| Desert | a hot, dry, outside locale |
| DesertGrid | a hot, dry, multi-room outside locale |
| DesertMaze | a hot, dry, multi-room outside maze |
| DesertThinGrid | as DesertGrid but it uses less memory/more cpu |
| EndlessOcean | huge multi-room, locale on the ocean surface |
| EndlessSky | an endless, ~3D, multi-room, locale up in the sky |
| EndlessThinOcean | As EndlessOcean but using less memory/more cpu |
| EndlessThinSky | As EndlessSky but using less memory/more cpu |
| FrozenMountains | a cold, outside, mountanous room |
| FrozenPlains | the cold snowy plans |
| GreatLake | endless, ~3D, multi-room, locale below the lake surface |
| GreatThinLake | as GreatLake but using less memory/more cpu |
| Hills | green rolling hills |
| HillsGrid | a huge multi-room rolling hilly area |
| HillsThinGrid | as HillsGrid but using less memory/more cpu |
| HotRoom | a hot, stone, indoor place |
| IceRoom | a cold, icey, indoor place |
| IndoorInTheAir | such as a gap in a cave, or midway down a pit. |
| IndoorShallowWater | a layer of underground water perhaps |
| IndoorUnderWater | under an underground lake |
| IndoorWaterSurface | on the surface of an underground lake |
| InTheAir | a place up among the clouds |
| Jungle | a thick hot overgrown forest |
| JungleGrid | a large multi-room overgrown hot forest |
| JungleThinGrid | as JungleGrid but using less memory/more cpu |
| LargeCaveRoom | a cave room large enough to bring mounts into |
| LargeStoneRoom | a stone indoor room large enough to bring mounts into |
| LargeWoodRoom | a wooden indoor room large enough to bring mounts into |
| MagicFreeRoom | an indoor, stone place where magic always fails |
| MagicShelter | the basis for the mage "Shelter" spell -- do not use. |
| Mountains | an outside, mountanous region |
| MountainsGrid | an outside, mountanous multi-room of rock |
| MountainsThinGrid | as MountainsGrid but using less memory/more cpu |
| MountainsMaze | an outside, mountanous maze of rock |
| MountainSurface | a climable mountainous place |
| MountainSurfaceGrid | a large, multi-room, climable mountainous place |
| MountainSurfaceThinGrid | as MountainSurfaceGrid but using less mem/more cpu |
| OverTheLedge | a room you can walk into, but then fall doooowwwnn |
| Plains | out in the open fields |
| PlainsGrid | a huge multi-room, outdoor plains area |
| PlainsThinGrid | as PlainsGrid but using less memory/more cpu |
| Road | out in the open road |
| RoadGrid | a huge multi-room, outdoor stretch of road |
| RoadThinGrid | as RoadGrid but using less memory, more cpu |
| SaltWaterSurface | the surface of the ocean |
| SaltWaterThinSurface | as SaltWaterSurface but depths use less memory/more cpu |
| SewerMaze | a wet, cave-like maze |
| SewerRoom | a wet, cave-like room |
| ShallowWater | a wet, outdoor area |
| Shore | some solid ground to fish from, if water is nearby |
| StdGrid | the basis for all of the Grid locales -- do not use. |
| StdMaze | the basis for the maze locales -- do not use |
| StdRoom | the basis for all other Locales, do not use! |
| StdThinGrid | the basis for all of the ThinGrid locales -- do not use. |
| StoneMaze | well lit indoor multi-room maze with stone walls and ceiling |
| StoneRoom | well lit indoor room with stone walls and ceiling |
| StoneGrid | well lit indoor multi-room locale with stone walls and ceiling |
| StoneThinGrid | as StoneGrid but using less memory/more cpu |
| Swamp | damp outdoor swampy region |
| SwampGrid | a large multi-room damp outdoor swampy region |
| SwampThinGrid | as SwampGrid but using less memory/more cpu |
| TreeSurface | a wooden ClimbableSurface, such as the trunk of a tree |
| UnderSaltWater | beneath the ocean |
| UnderSaltWaterGrid | a multi-room 2D place beneath the ocean |
| UnderSaltWaterMaze | a multi-room 2D maze beneath the ocean |
| UnderSaltWaterThinGrid | as UnderSaltWaterGrid but using less mem/more cpu |
| UnderWater | as wet as it gets... unless you are a fish you won't live long |
| UnderWaterGrid | a huge multi-room underwater locale |
| UnderWaterThinGrid | as UnderWaterGrid but using less memory/more cpu |
| UnderWaterMaze | a huge multi-room maze of underwater locales -- be careful! |
| WaterSurface | the surface of a lake or river |
| WaterThinSurface | as WaterSurface but depths use less mem/more cpu |
| WetCaveMaze | as CaveMaze, but extremely wet and nasty |
| WetCaveRoom | a wet and nasty CaveRoom |
| WoodRoom | well lit indoor room with wooden walls and ceiling |
| WoodRoomGrid | well lit multi-indoor-room with wooden walls and ceiling |
| WoodRoomThinGrid | as WoodRoomGrid but uses less memory/more cpu |
| WoodRoomMaze | well lit multi-indoor-maze with wooden walls and ceiling |
| Woods | thick with trees and life, the bright forest |
| WoodsGrid | thick with trees and life, multi-room expanse |
| WoodsThinGrid | as WoodsGrid but using less memory/more cpu |
| WoodsMaze | thick with trees and life, a multi-room maze of woodlands |
The type of room you pick can have an important impact on the residents of your world. The type of room can determine whether there is a sky above the players, whether players in the room are affected by weather events, whether there is any light in the room by default, whether nightfall affects the lighting in the room, whether players drown or require swimming, what kinds of resources are available from the various player resource-gathering common skills, and whether certain spells, prayers, skills, or commands work properly (Dirt Kicking doesn't work in ShallowWater, for instance). Room types also determine the maximum range of weapons used there, and the number of movement points players must expend to cross it. For the purposes of weapon ranges, outdoor rooms are size 10, indoor size 1, and caves size 5. For the purposes of movement cost (which can be adjusted by encumbrance, condititions, and other factors: 1 point for street, roads, skies, and most indoor rooms; 2 for a cave, desert, plains, and water surface; 3 for hills, forest, jungle, under water movement, and swamps; 4 for a climbing surface; 5 for mountainous; 6 for mountain climbing surfaces; and 3-4 for LargeXRooms.
For each room you are drawing on your graph parchment, you should note in the Locale type of the room from the above list, or from the list you received when you entered "list locales" into CoffeeMud. Keep in mind that some rooms are multi-rooms. These Grids and Mazes represent 2-Dimensional grids of rooms of a single sort. The dimensions are entirely up to you, and can range from a thin 1x20 trail, to a wide 15x15 block. The mazes expand on this by creating weaving paths through the grids.
The detailed properties of rooms are discussed further in the section on creating rooms.
Now surely you did not expect everyone to conjure him or herself from place to place! Why, the pitiful halfling thieves would starve in their holes if this were so. No, each of the rooms you have drawn on your paper will be connected with things called Exits.
For any two rooms that one can travel between, there are always two exits. One exit leads from the first room to the second. Another exit leads from the second room to the first. Usually those exits are the same, but they need not be if you don't want them to be so.
All exits will take a person from one room to another, and may even take them back again if you choose. An exit can only be located in one of six directions: North, South, East, West, Up, and Down. The four compass directions are easy to fathom, but be careful with up and down, as they need not be unhindered flight, or a reckless fall. If, for instance, the destination room is a Locale like "InTheAir", then Up obviously represents the open sky. If it is another "StoneRoom", however, it probably represents a flight of stairs. The Down direction may represent falling off a cliff, but it may also represent a ladder down to the basement. Either way is fine.
Exits, like rooms, can be of many different types. If you are still in CoffeeMud, enter the command "list exits". The list you receive describes the many connectors that can be mixed and matched between rooms. Some include doors, and some include doors with locks. There are walkways with pits, doors with needle traps, and many others. By far the most common of these Exits is called "Open". It describes a completely free and clear path between the two rooms you are creating. Here is the official list:
| ClimbableExit | a passageway one must climb through |
| Door | an ordinary closed door |
| FlyingExit | a passageway one must fly through |
| GapExit | an exit one must jump across or fall and DIE! |
| Gate | an ordinary closed gate |
| GenDoor | the maleable generic door |
| GenExit | the maleable generic exit |
| Grate | an ordinary closed grate in the street |
| HiddenClosedDoorway | the venerable secret door |
| HiddenWalkway | a way that can be walked through, but not seen without searching |
| Impassable | no one may go that way |
| LockedDoor | an ordinary locked door |
| LockedGate | an ordinary locked gate |
| NeedleDoor | a door trapped with a needle |
| Open | a normal walkable passageway |
| OpenDescriptable | an open walkway thats describable |
| OpenNameable | an open walkway thats nameable |
| PitOpen | a walkable passageway with a pit! |
| StdClosedDoorway | base class for closed doors |
| StdExit | base class for all exits, do not use! |
| StdLockedDoorway | base class for locked doors |
| StdOpenDoorway | base class for open walkways |
| TrappedDoor | a trapped and closed door |
| TrappedLockedDoor | a trapped and locked and closed door |
| UnseenWalkway | a walkway that can not be seen by any means |
As you finish your graph parchment drawing, be sure to note those places where there are doors, locked doors, pit traps, and open walkways. If a door is one way, or if a door leads to one place when one enters, but does not go back to there when one leaves, make a note of that too. The doors listed above are ever vigilant in decorum-- doors that are opened by players will re-close in time, and locks are resecured.
However, it may come to pass that there is a rickety straw door to some hut you wish to have, but it was not listed among your choices. Fear not, for there is "GenExit" and "GenDoor". "GenExit" stands for "Generic Exit", and represents the finest in Archon power. A completely customizable exit flowing from one room to another. And thusly are exits divided from each other: the GenExits and GenDoors are customizable, flexible, changable, and otherwise maleable. All the other exits, however, are "Standard", meaning they are not very customizable at all, but they do load very quickly, and take up very little memory compared to a GenExit. GenExits, as well as the other features of exits, are discussed further in the section on creating exits.
Understanding That Which Creepeth Upon the Land
The denizens of your land are surely the greatest accomplishment you will claim. From the lowly cooks in your kitchens to the great beasts in the darkest dungeons, it is they who will be remembered by those who visit your realm.
Funny then that for things so important, they should have such a short, ugly sounding name: MOB. If you are in CoffeeMud, you can list them: "list mobs". It will show you every creature that can populate your cities, dwell in your dungeons, or hide in your pantries. They are too numerous to list here.
If a creature is not listed there that you require, there is always the GenMob, that nasty formless being that can be shaped by the Archon to appear and behave exactly as it should. GenShopkeepers, GenPostman, and GenBankers are available to provide valuable services for your community. GenDeitys give your Clerics employment. GenRideable mobs provide transport. For more devious spirits, however, the GenUndead is also available, to strike fear in the hearts of the purest cleric. These mobs just mentioned form the troupe of "Generic" mobs, meaning they are customizable and changeable from inside the mud. The other mobs listed are classified as species "Standard" mob, meaning they are not nearly as customizable, though they do load quickly, and take up much less memory than the "Generic" mobs do.
GenMobs, as well as the features of MOBs, are discussed further in the section on creating MOBs.
Our last planning topic is that of the items that will be found in your land. Some of them will be priceless once-in-a-lifetime creations. Others will be reoccurring trapped chests that always seem to have enough gold for those bold enough to continuously risk their guardians.
The items can be discovered using the "list items" command. Other items include weapons, which can be discovered through "list weapons", armor from "list armor", and other miscellaneous enchanted items through "list magic".
For those items you need by are not present, there is also the "GenItem", "GenBoat", "GenChair", "GenTable", "GenBed", "GenLimb", "GenCoins", "GenCorpse", "GenKey", "GenLantern", "GenLightSource", "GenCigar", "GenPipe", "GenMap", "GenResource", "GenLiquidResource", "GenFoodResource", "GenRideable", "GenWallpaper", "GenJournal", "GenBook", "GenContainer", "GenFood", "GenDrink", "GenWater", and "GenReadable". For the fighting spirit there is the "GenWeapon", "GenStaff", and "GenArmor". Among the formless magical items are "GenPill", "GenPowder", "GenPotion", "GenScroll", "GenWand", and "GenSuperPill". These items just mentioned form the gluttony of "Generic" items, meaning they are customizable and changeable from inside the mud. The other items listed are classified as "Standard" items, meaning they are not nearly as customizable, though they do load quickly, and take up much less memory than the "Generic" items do. These and the many properties of items are discussed below under the section on creating items.
Before beginning, you should log into CoffeeMud and take yourself to some place that is adjacent to the area you will be forming. You should also cast the spell of natural enlightenment using the following command: "sysmsgs". You should see an utterance that reads "Extended messages are now: ON".
Now your eyes will behold new wonders when you look around the rooms: You will see the Locale types of the room, the Room IDs that have been assigned uniquely to each room, the Area IDs of the area you are in. They should look like this:
Area :(MyArea)
Locale: (StoneRoom)
(MyArea#123) Joe Bob's Room
The first line lists the area name, the second line the locale type we talked about earlier, and the third line lists the Room ID, followed by the Room Name. Take note of them all, my friend, and learn to appreciate their beauty.
Now that you have your plan laid out, it is quite time to being execution. Gather your strength, and begin harnessing the power of the Archon, for you will need every ounce of it when the wood and rock chips start flying.
To create a new room most easily, you must first be standing in a room adjacent to it, one that will be connected to it through some exit. You will then utter the invocation of room creation, summoning the Locale in the direction that the new room should be. For instance, you wish to have a new room north of room "MyArea#123". If room "MyArea#123” is already created, and the new room is going to be of the "StoneRoom" Locale, you would bring yourself to room "MyArea#123" and utter the words: "create stoneroom north".

At this point, you should cover your ears, as the sound of a stone room falling to the north is often quite disturbing. Between the two rooms; the one you are standing in, and the one you have created, will be a default exit: the Open exit. Most times, that is ok, though changing it will be the subject of the next section.
However, once this is done, and the rooms are irrevocably linked, you can still throw a small twist on things. If you are still standing in room "MyArea#123" and wish to create a NEW StoneRoom in the SAME direction, it can be done. Uttering the words "create StoneRoom north" AGAIN and a new room is created. Now, what happened with "MyArea#124" you’re wondering? It is still there, and it still leads back to where you are standing -- a one way exit.

For now, once you have created a new room, it is time to design the landscape of it. To do this, you should enter the room through the default Open exit that was created for you. You will find the room plain and boring.
To give the room a new name and description, utter the invocation: "modify room" and follow the promptings. The display property is the short name that appears at the top of the room description, while the description field is the long text. Type whatever text you like into these fields, and feel the power as the place takes on a new form dictated by your creative magic. These two fields support the CoffeeMud color codes described in the Programmer's guide, as well as line breaks using either %0D or \n. Normally, that's all you need to know. However, these fields may also be customized to display different text depending on the weather, season, or the time of day. This last is done by starting the field with the string <VARIES>, and following it with text surrounded by the appropriate codes in the following format: <CODE>text</CODE>. In all of these cases, the codes must be in uppercase. Valid codes include: SUMMER, SPRING, WINTER, FALL, DAY, NIGHT, DUSK, DAWN, RAIN, SLEET, SNOW, CLEAR, HEATWAVE, THUNDERSTORM, BLIZZARD, WINDY, DROUGHT, DUSTSTORM, COLD, HAIL, CLOUDY.
Rooms of the Grid and Maze sort present unique challenges to the molder of universes. In the first place, if you have SYSMSGS turned on, you will notice that the room ID displayed is a little different. In addition to the room ID of the parent room, there is an additional set of parenthesis showing where you are in the big grid room. It would look something like this:
Area :(Coffee Grounds)
Locale:(Plains)
(Coffee Grounds#19#(0,2)) The Demitasse Demesnes
In this case, we are in Coffee Grounds#19, child room at X=0, Y=2.
You will notice that you are unable to modify child rooms like this one. In the case of Grids and Mazes, you must be inside the Parent room to perform modifications. To get to the parent room, use the GOTO command. In the example above, we would enter "goto Coffee Grounds#19". This will allow us to properly modify the room, and add any creatures (mobs) to it later on.
Once you are in the parent room of a Grid or Maze, you may use "modify room" to modify the properties of the entire grid or maze. You can modify things like the dimensions in the X and Y, to make your grid anything from a long hallway to a giant hedge maze.
Modifying the display and description fields also has unique consequences inside a Maze or Grid. You may enter a random selection of text strings to display into each of these fields, so long as you remember to separate each individual text selection by the <P> string. For example:
Display: 'First Display Title<P>Second Display Title<P>Third Display Title'
Description: 'First Description<P>Second Description<P>Third Description'
The above, when placed in a grid or maze locale, will cause CoffeeMud to select randomly among three different display title/description combinations. Since there is an equal number of display and descriptions given (3), the display and titles will always be matched up in the grid children rooms.
After you have made your modifications to the grid parent room display and description, use the "reset room" command to have them take effect.
The "reset room" command will force CoffeeMud not only to reset a grid or maze, but to reload the creatures and items last saved in the CoffeeMud database. This can be useful if you make a few critters or things you don't want to keep and havn't yet saved. A corresponding "reset area" command does the same for the whole area.
And speaking of areas, rooms also may have behaviors and effects added to them, including a few more. In this case, the behaviors and effects above will only be active for this particular room. Aside from those listed under Areas above, here are additional Behaviors you might enjoy:
"DelayedTransporter" causes all those who enter to be whisked elsewhere.
"Emoter" - yea -- this is mentioned under Areas, but it's just sooo cool.
"FasterRecovery" - makes the players recover their stats faster in this room.
"FieryRoom" - stuff catches on fire here! watch out!
"InstantDeath" - nuff said.
"Mime" causes the room to mimic players. Wierd.. yea, I know.
"MovingRoom" the fast train to somewhere.
"ProtectedCitizens" will allow resident mobs to scream for help and receive it when attacked.
"RandomMonsters" will cause monsters from a saved file to appear here.
"RandomItems" will cause items from a saved file to appear here.
"ItemGenerator" will create treasure and items for your rooms.
"RandomTraps" will cause random traps to be set here.
"ResourceOverride" if you want fishing in the desert, or sand in your swap, this is the way to go.
"Scriptable" makes the room react to events in a scripted way.
"ScriptableEverymob" same as scriptable, but applies itself to all the mobs born here.
"Sounder" is still a good alternative to Emoter.
Lots of other properties and effects are also available for rooms. In addition to all the ones listed above under Areas, here are a few
more you might want to add:
"Prop_AbilityImmunity" protects the room from specified targeted spells.
"Prop_ClosedDayNight" turns off the lights in a lit room at nighttime.
"Prop_ClosedSeason" turns off the lights in a lit room during a season.
"Prop_CommonTwister" jumbles up the usefulness of gathering common skills.
"Prop_Crawlspace" forces players to crawl through here.
"Prop_EnlargeRoom" forces players to use more movement traveling through here.
"Prop_EnterAdjuster" affect the occupants stats permanent when entering the room.
"Prop_HereAdjuster" affecst the occupants stats when in the room.
"Prop_HereSpellCast" affect the occupants with spells when in the room.
"Prop_ItemTransporter" drop it, and its gone -- elsewhere.
"Prop_ItemReceiver" is the elsewhere.
"Prop_LotsForSale" puts this room up for sale, and ensures that you never run out of new rooms to buy.
"Prop_ModExperience" makes kills more profitable in this room.
"Prop_MagicFreedom" makes the room an unhappy place for mages.
"Prop_NarrowLedge" makes this a room you can cross.. if you are very very careful.
"Prop_NoChannel" makes the room safe from channel messages.
"Prop_NoCharm" makes the room safe from charming.
"Prop_NoOrdering" makes the room safe from player ordering.
"Prop_NoPurge" makes the room safe for dropped garbage.
"Prop_NoPKill" makes the room safe from player killing.
"Prop_NoRecall" makes the room safe from recalling.
"Prop_NoSummon" makes the room safe from summoning.
"Prop_NoTeleport" makes the room safe from teleporting in.
"Prop_NoTeleportOut" makes the room safe from teleporting out.
"Prop_NoTelling" makes the room safe from telling between players.
"Prop_Peacemaker" makes the room safe.
"Prop_ReqAlignments" lets you limit the alignment of all who enter.
"Prop_ReqCapacity" lets you limit the number of folks or items in the rooms.
"Prop_ReqClasses" lets you limit the character class of those who enter.
"Prop_ReqNoMOB" to make your area a player-only place to be.
"Prop_RestrictSpells" lets you limit specific skills or spells from being used here.
"Prop_ReqEntry" lets you limit entry to folks by many different criteria.
"Prop_ReqHeight" keeps out tall people, or at least those unwilling to crawl.
"Prop_ReqLevels" lets you limit entry by levels.
"Prop_ReqRaces" lets you limit entry by race.
"Prop_ReqTattoo" lets you limit entry to players with certain builder-definable tags.
"Prop_ReqPKill" makes this a place that only the bloodthirsty may enter.
"Prop_RestrictSpells" shuts down a list of spells that you provide.
"Prop_RoomDark" makes the whole area a place in need of light.
"Prop_RoomForSale" puts this one little room on the market.
"Prop_RoomsForSale" designates that this room, and all others like it nearby, are for sale as a group.
"Prop_RoomUnmappable" makes the whole area unmappable by mundane means.
"Prop_RoomView" makes this room seem to be another...
"Prop_RoomWatch" allows folks in other rooms to watch what goes on here.
"Prop_Smell" gives the place a smell.
"Prop_SparringRoom" makes the consequences of death more palatable.
"Prop_SpellAdder" puts everyone who enters under its spell.
"Prop_TattooAdder" puts a little something on all who enter.
"Prop_Transporter" send those who enter to the room you designate.
"Prop_Trashcan" destroys stuff dropped on the ground.
"Prop_WeakBridge" makes cross this room very very dangerous.
"Spell_Silence" to quiet things down.
And lots and lots of traps to put in your rooms: "Thief_Caltrops", "Thief_DeathTrap", "Thief_Listen", "Thief_MinorTrap", "Thief_Trap",
"Trap_AcidPit", "Trap_Avalanche", "Trap_BearTrap", "Trap_Boulders", "Trap_CaveIn", "Trap_CrushingRoom", "Trap_Darkfall", "Trap_DeepPit",
"Trap_Enter", "Trap_EnterBlade", "Trap_EnterGas", "Trap_EnterNeedle", "Trap_EnterSpell", "Trap_FloodRoom", "Trap_MonsterCage",
"Trap_RatPit", "Trap_RoomPit", "Trap_SnakePit", "Trap_Snare", "Trap_SpikePit", "Trap_Tripline".
Ok! Back to work!
If you are ever wandering around, and wish to go directly to a room you have created, you may utter the magic matra "goto RoomID". For instance, entering "goto MyArea#123" would take you to the room we created above. This will especially come in handy when we begin to create and destroy the links between rooms, and there is no other way to get to a room.
Now that you have created a room, and wish to link one of the rooms in your area with one of another, you can use a command that utilizes the Room IDs mentioned above. If you would like to create a northerly link from room "MyArea#123" to a room whose room ID is "MyArea#124", then you need only stand in room "MyArea#123" (use the "goto" command if you must), and utter the invocation: "link MyArea#124 north". This will create an Open exit between the room you are standing in, and the room whose ID is born out.

You should note that this command could be used as it was in the last section to create one-way exits to existing rooms.
If you wish to detach two rooms from each other, you need only learn the "unlink" command. If you are standing in the room to the south of the one you wish to unlink, and the room you wish to detach from is to the north, utter the command: "unlink north". It will do the trick!

Keep in mind that just because there is no longer a route from the room you are in to the other via a northerly path, it does not mean that there is no path from the detached room back to here again. You may have to conjure yourself into the other place and enter a "unlink south" command to completely detach them forever.
Sometimes the pain born from a failed or evil place is too much to bear, and as an Archon, you can do something about it. This involves the destroy command. It does not merely unlink the room, but obliterates it altogether and forever. To do this, first make sure you are not standing in the room you wish to destroy. Such destructive magic would surely be your end as well. Then you must utilize the Room ID of the doomed place. If the room you wish to destroy has the Room ID of "MyArea#124", then enter: "destroy MyArea#124". It will obliterate that place from the planet forever.

The difference between Exits and Rooms is a very important one. Creating and destroying Rooms describes WHETHER two rooms are connected, and by which direction. Creating and destroying Exits describes HOW one gets from one room to the next. Two rooms must be connected together before exits between them can be modified.
For instance, suppose you linked "MyArea#123" and "MyArea#124" as described above. By default, you get an StdOpenDoorway, also known as an "Open" exit. These exits can be walked through freely. Now suppose you wish to have a Door between the two rooms. If the exits between the two rooms are both the same, and you are standing in the southernmost room of the two, then changing them both is simply a matter of issuing the command "create Door north".

Just as unlinking rooms disconnects them, destroying exits can SEEM to disconnect them. When you issue a simple destroy command, and refer specifically to the exit, then you will not be destroying the link between the two rooms, but merely the exit that travels between them. Archons can still travel through these missing links, but players will not be able to. Also, destroying an exit only deletes the exit in one direction, not both. For instance, if you are standing in the southerly room of two linked rooms that both have Exits between them, and you issue the command "destroy exit north", you will destroy the Open exit between the rooms. As an Archon, you can still travel north through the destroyed exit, but players will not be able to.

Now, that an exit has been deleted, it is possible to create a DIFFERENT kind of exit for the northerly direction from MyArea#123 to MyArea#124. Issuing a create command like "create Door north" will create a door that leads from MyArea#123 to MyArea#124, WITHOUT AFFECTING the Open path from MyArea#124 to MyArea#123. This is only possible when the exits between two rooms are different, or one is deleted, as is our case here.

Now, suppose you wanted to have the same Door going between two rooms. For sure this is a more common scenario than the example we just went through. To do this, you must first delete BOTH of the exits between two rooms as described above. That means entering MyArea#123 and entering "destroy exit north", and then entering MyArea#124 and entering "destroy exit south".

Now, with both exits deleted (and thus the same), you can create a single door between them as we did in the first part of this section using the "create Door south" command.

A town or village, country or demesnes can hardly come to be without the careful demarcation of their borders. What separates the town from the country, or one country from another? Like everything else, this is the decision of the Archon as he groups his rooms into Areas.
The best way to create your areas is to do so right from the start. The moment you create the first plot of land in your new area, or lay down the first building in your new town, you should designate it as such. Enter the new room in your new area and utter the mystic chant "modify room area New Area Name". Of course, where "New Area Name" can be anything you wish. Call it "Newarea Land" or "Goldfish Villiage" or "The Fruity Phantasm" or whatever strikes your fancy.
Now that you have designated your new room as belonging to a new area, it is important to remember to create all future rooms by doing so from rooms that already belong to the new area. Any future rooms that you build by standing in your new area room will bear its area mark, as well as any rooms created from any other room bearing the new area mark. If you fail then, you may be forced to invoke the power of the "modify room area..." command again to re-group the rooms you are creating.When you create a new area, you will be asked for the arcane "type of area" you want to create. We will now take a second to peruse the different area types:
| StdArea | This is a standard, every-day area in your every day world. All of CoffeeMuds features work just fine with it, as it has no restrictions or limitations. The standard area always has its own weather, and inherets its calendar. Use this type for your most often used areas, your areas with lots of special features, and your most important areas, especially when they are less than 700 rooms. |
| StdGridArea | The standard Grid area is identical to a standard area, except that there is a limitation on the number of rooms that can be in a grid area. That limitation is always based on the width and height dimensions you have defined for it. The maximum rooms is always width X height. You probably won't notice any differences between a standard area and a standard grid area unless you use the MUDGrinder visual area editor. This is because grid areas always position their rooms at a single coordinate location on the visual editor screen, and it never ever moves from that position. This can be a blessing for those creating carefully pre-planned areas that fit nicely in 2 dimensional graphs. It can also be a blessing for big areas (> 200 rooms), since the MUDGrinder will let you edit a grid area in sections, and the rooms won't move around on you when you re-link them. Use this area type if you do a lot of MUDGrinder visual work. It can be a curse for more organic area designers, however. |
| StdPlanet | A standard planet is mostly unimplemented at this time. It inherets the features of the StdArea and the StdTimeZone. |
| StdSpaceShip | The space ship is definitely unimplemented at this time. Don't bother with it. It lacks many of the features of the other area
types. |
| StdThinArea | A thin area is the same as a standard area with one difference. The rooms in a thin area are not loaded at mud boot time. Instead they are loaded only when a player, mob, or a special built feature (such as a random monsters behavior) causes one or more rooms to be loaded. Thin areas will also periodically unload their rooms when they havn't been accessed in 40 minutes or so. Thin areas are fantastic for enormous (>1000) room areas that span massive ranges. They won't gobble up your system resources. They are bad for popular areas though, and for areas with lots of special features. Things like the legal system and conquest system don't work well with them, since an officer may not know where to find the local judge when someone is arrested (if the judges chambers are one of the rooms not yet loaded). If you are short on memory, or your area is one you need to have, but doesn't have to do much, the thin area is for you. |
| StdTimeZone | A standard time zone is the same as a standard area, except that it can have its very own calendar. Any "child" areas of a time zone area will also inheret its calendar. |
| StdThinGridArea | A standard thin grid area is a mixture between the grid area and the thin area. It combines the benefits and limitations of both. Use them only when you need to have a largenormous area with not much going on, like a planet-girdling wilderness that surrounds your more standard areas, for instance. |
Areas also contain important properties which may be modified. Enter the secret code "modify area" to go through a list of these modifiable properties.
The name and description of the area may be changed by following the promptings. You may also tinker with the climate of your area, which will affect the types of weather that will blow through it, and how mild or severe the winters and summers may be. This is also where you may add Staff. A player whose name is listed as Staff has no additional powers unless their player Security settings grant them specific AREA privileges. In that case, the player would be able to use their area privileges in the area where they are listed as Staff. The section on Security above mentions all this stuff in more detail. Typically, a player is listed as Staff, and then given several area creation privileges in order to assist in area building and modifying. After all, sometimes creating a universe becomes a little bit too much work for one person.
Strange settings like Technology Level and Archive File Name are available on the area promptings. Don't worry about these. The former is not very important at the moment, and the second is a bit too obscure for these lessons. And then there are Blurb Flags, which are flags whose descriptions can be displayed when one displays the help for the area.
You will also be asked to add any behaviors and effects to the area that you wish to. These may seem strange at first, and usually you won't add any of these at all. After all, rarely does a plot of dirt exibit any behavior, and what the heck is an effect? Well! To the first, the wind blowing through the trees, the hoot of an owl, or a distant cackling noise are all considerable behaviors. In fact, it is a behavior called "Emoter". Enter "ahelp emoter" for more information about the Emoter behavior. There are other behaviors that Areas may benefit from too. Here are some examples:
"Arrest" will add law and order to your area, with resident mobs playing the cops and the judges.
"Conquerable" has all the features of Arrest, plus it makes the area conquerable by clans!
"Emoter" is what I mentioned above -- it's for inserting those cute little blurbs in the area.
"FasterRoom" makes everything happen twice as fast here (or faster!)
"InstantDeath" makes everything that comes here DIE!!!!!
"LinkedWeather" makes the weather in this area mimic the weather from another area.
"ProtectedCitizens" will allow resident mobs to scream for help and receive it when attacked.
"PuddleMaker" will scatter some puddles around after rain or snow.
"RandomMonsters" will populate the area with lots of hideously random creatures that you choose.
"RandomItems" will cause items from a saved file to appear here.
"ItemGenerator" will create treasure and items for your rooms.
"RandomTraps" will scatter some traps around your area.
"ResetWhole" will cause the whole area to re-boot every so often, thus supplementing the natural "rejuv" process.
"Scriptable" allows you to script the behavior of the room in a limited sense.
"ScriptableEverymob" allows you to script all the mobs in the area at once.
"Sounder" is also for inserting little blurbs, plus it reacts to player actions.
"WaterCurrents" will make those on the water bob and flow in the direction you specify.
"WeatherAffects" will make the players really FEEL the weather.
As for effects, well, effects are special properties which you can attach to your new little holes in the ground. There are lots of nice properties that one may add to an Area, which will affect every room in it, such as:
"Merchant" to establish a store front that follows the players from room to room.
"Prop_AreaForSale" to make the entire area purchasable by a shopkeeper in the area.
"Prop_CommonTwister" to mix up the resources gained from using gathering skills in the area.
"Prop_Crawlspace" to make the entire area require crawling through.
"Prop_EnlargeRoom" makes crossing the area eat up more Movement.
"Prop_MagicFreedom" to fluster any spell-using folks that happen along.
"Prop_Hidden" will make the area unlisted to normal players.
"Prop_ModExperience" modifies experience gained in this area..
"Prop_NoChannel" for a place of quiet.
"Prop_NoCharm" lets everyone remember who their REAL friends are.
"Prop_NoOrdering" keeps players from being bossy.
"Prop_NoPKill" keeps out the riffraff.
"Prop_NoRecall" keeps folks from taking the easy way out.
"Prop_NoSummon" makes sure that everyone leaves of their own free will.
"Prop_NoTeleport" keeps those silly mages from teleporting in.
"Prop_NoTelling" prevents players from using the TELL command to each other.
"Prop_NoTeleportOut" keeps those silly mages IN.
"Prop_PeaceMaker" to go with it if you want peace AND quiet.
"Prop_ReqAlignments" lets you limit the alignment of all who enter.
"Prop_ReqCapacity" lets you limit the number of folks or items in the rooms.
"Prop_ReqClasses" lets you limit the character class of those who enter.
"Prop_ReqNoMOB" to make your area a player-only place to be.
"Prop_RestrictSpells" lets you limit specific skills or spells from being used here.
"Prop_RoomDark" makes the whole area a place in need of light.
"Prop_RoomUnmappable" makes the whole area unmappable by mundane means.
"Prop_ReqEntry" lets you limit entry to folks by many different criteria.
"Prop_ReqHeight" keeps out tall people, or at least those unwilling to crawl.
"Prop_ReqLevels" lets you limit entry by levels.
"Prop_ReqRaces" lets you limit entry by race.
"Prop_ReqTattoo" lets you limit entry to players with certain builder-definable tags.
"Prop_ReqPKill" makes this a place that only the bloodthirsty may enter.
"Prop_Smell" gives off a unique aroma when players use their SNIFF command.
"Prop_Weather" to have the same weather in an Area all the time.
To learn more about the properties you can add to areas and rooms, enter "ahelp" while you are in CoffeeMud. Now, isn't this fun?
Remember, if you make a mistake, fear not, for the land does not grow weary of your molding.
The final settings are the Area Default Economic settings for your area and include the following: Currency, Ignore Mask, Inventory Reset Rate, Prejudice Factor, Item Pricing Factor, Devaluation Rate, and Budget . See the next section called "What Areas Are Worth" for more information on these.
What Areas are Worth
Currency
Currency is the system of money used by the inhabitants of the area. It is defined using the Currency field when creating and modifying Areas as discussed in the previous section. All of the bankers, money changers, tax collectors, postmen, and shopkeepers will deal in the currency that you define for the area. By default, all areas will use a system of currency that includes gold coins, and golden notes, whole notes, and Archon notes. You can change this system by defining your own, however. The way you do this is by entering a name for your currency, followed by an equal sign, and then a series of relative values and currency names, all separated by semicolons. Let's look at an example:
US=1.0 penny(s);10.0 dime(s);25.0 quarter(s);100.0 dollar(s)
In the currency we have defined here, we have four different currencies: the penny, the dime, the quarter, and the dollar. Notice that each currency is separated by a semicolon in our definition string. Each entry includes two or possibly three parts. The first part is the base value, the second part is the name of the currency, and the optional third part is a "short name" used by shopkeepers when listing prices.
The first part of each currency entry tell us how much one unit of that currency is worth relative to the base coffeemud unit of value. This base unit of value is used throughout the system, and can be thought of as equal to one gold coin in the default currency. For this reason, it is wise for Archons to become familiar with the value of things in the default currency before defining their own. Under the system we gave in our example, a penny is worth 1.0 or the same as 1 of a base coffeemud unit of value. The dollar is worth 100.0 or exactly one hundred times the base unit value. The only rule when defining the worth of your currency units is that all currency values MUST be evenly divisible by the lowest valued unit. In this case, all of our values are evenly divisible by the penny, so we are safe.
The second part of each currency entry is the name of the currency unit. This can be any name you choose. The fact that the name of the currency ends with (s) tells us that the system should include the trailing letter 's' when there are more than one of that currency unit listed.
It is completely optional, but if you wish, you may also include a short name for each currency unit entry. If an entry contains a short name, it will tell the shopkeeper to try and display its currency using just those units. If none of the unit entrys contain short names, then shopkeepers will tend to display their prices in multiples of the lowest valued unit, in this case, pennys. Here is an example of that same currency redefined with short names.:
US=1.0 penny(s) (p);10.0 dime(s) (d);25.0 quarter(s) (q);100.0 dollar(s) ($)
In this new example, we have defined short forms for each currency, allowing shopkeepers to choose the most appropriate one. The prices will END with the letter p, d, s, or q depending upon which currency the shopkeeper chooses to display the currency in.
Once you have defined your currency in at least one area, you may use it throughout your mud by simply entering its name alone in the Currency field when you edit your area settings. In our example, US would be a sufficient value for the Currency field to tell the system to re-use our US currency in that area. You may also redefine the default coffeemud currency throughout the entire system by NOT entering a name for your currency. For example.:
=1.0 penny(s) (p);10.0 dime(s) (d);25.0 quarter(s) (q);100.0 dollar(s) ($)
This last example, since it contains a blank currency name, would make our U.S. currency system the default one used throughout coffeemud, or wherever the Currency value in the area settings is also empty.
Economic Ladder
Economics in CoffeeMud begins way down at the lowly ShopKeeper, in whom all economic factors come directly to play. From there it winds its up through the Areas and into the heavens where the document called coffeemud.ini resides. Said another way, all of the economic settings are available for changing on a shopkeeper by shopkeeper basis if it pleases the Archons. If you choose not to give specific economic settings to a particular shopkeeper, then CoffeeMud will check that ShopKeepers home Area for a setting. If that fails, it will eventually end up taking the global value for an economic setting from the coffeemud.ini file; settings which are identical to those found in the MUDGrinder's Control Panel. Since these economic settings are found in all three places (on shopkeepers, on areas, and in the coffeemud.ini file/MUDGrinder), it seemed suitable to discuss them in one place, so away we go:
Budget
A Budget is the maximum amount of local currency, per a defined time period, which shopkeepers will spend when buying equipment from players.
The format of a budget definition is an amount of money (in base values only) followed by the name of period (HOUR, DAY, WEEK, MONTH, YEAR). All of these time periods are **MUD** time periods, where one hour is about 10 minutes of real life time. For example, a budget of "200 DAY" means that the shopkeeper will not buy more than 200 gold per day of any equipment from players, assuming that gold=1.0 in currency value.
Ignore Mask
An Ignore Mask tells ShopKeepers what sort of Riff-Raff to not do business with at ALL. If left blank, the shopkeeper will happily serve anyone, or defer to his Area or global settings regarding who to ignore. If not blank, the mask describes who the shopkeepers will do business with, leaving everyone else to be ignored.
The syntax for this mask is the all-powerful Zapper Mask, which is described best under the help entries for Prop_HaveZapper. A ignore mask such as:
-RACE +Elf
... will have the shopkeeper ignore everyone but elves.
Devaluation Rate
Devaluation Rates limit the number of EACH PARTICULAR item that a shopkeeper will keep in his inventory. This provides a ceiling on the number of unique items of a kind which a shopkeeper will purchase from players.
The way this works is by defining how far the price drops, in percentage, every time the player sells an item to a shopkeeper. Decimals (real numbers) are allowed in this field. This field may also be used to differentiate between the rate of devaluation of raw resources and other finished items. A devaluation rate consisting of a single integer represent the devaluation percentage % of all items, while a devaluation definition consisting of two integers seperated by a space would represent the devaluation of finished items and raw resources respectively.
For example, a value of "20" would mean that the shopkeepers value price drops by 20% every time this shopkeeper buys a particular item.
If the shopkeeper buys two, it would be 40%. Three would be 60% and so forth. This effectively limits the shopkeeper to buying to more than
5 of any item (5 * 20) == 100%. A value of "20 0.5" would mean a devaluation rate of 20% for finished items, and 0.5% (1/2%) for raw
resources.
Item Pricing Factors
Item Pricing factors allow the Archon to adjust the prices the ShopKeeper sells from the programmed normal, based solely on the type of
item. It always works in tandem with all the other pricing and rating factors described herein, of course, so this is hardly the only
fields that can affect item pricing.
If this list contains no item pricing factors, then the item pricing factor will be 1.0, which means NO adjustment for any items. However,
you may enter one or more pricing factors for different types of items which will cause the price of items to rise or fall depending upon
whether they meet the item criteria you specify. Here is an example of one such pricing factor:
0.5 -MATERIAL +WOODEN
This would mean that the price is adjusted by 0.5 (meaning its cut in half) for items that match the criteria described, which in this
case means wooden items. If the number had been 1.5, then the price would be adjusted upwards by 50% instead.
You can have as many item pricing factors as you need to describe all the types of items you'd like this shopkeeper to modify the price of. See the online help for Prop_HaveZapper for more information on the syntax for the masking syntax used to describe the types of items affected by your pricing factors.
Prejudice Factors
The prejudice factor allows the Archon to adjust the prices the ShopKeeper sells from the programmed normal, based on the buyers Race,
Alignment, Sex, Class, or Faction. It always works in tandem with the Devalue Rate below, as well as such factors as the Charisma of the
player dealing with your shopkeeper. The prejudice factor also serves as a catch-all for a few other shopkeeper settings.
An unspecified value will always return a value of 1.0 (which means NO adjustment). However, you may specify one or more adjustments
separated by semicolons (;). Here is an example:
SELL=5.5 Elf Dwarf ; BUY=0.4 Elf Dwarf ; SELL=1.0 ; BUY=1.0
Each adjustment must begin with the words "SELL=" or "BUY=" followed by a Real number designating the adjustment from normal. "SELL=" refers to the adjustment to prices players get when selling TO the shopkeeper. "BUY=" refers to the adjustment to prices players get when buying FROM the shopkeeper. A value above 1.0 for either of those will raise the applicable prices. A value below 1.0 (like 0.3 or 0.75) will lower prices. Values of 0.0 are NOT allowed. If you need to all but not allow buying and selling, a value of 0.000000001 should do.
Each adjustment may also contain the name of one or more Racial Categories (Elf, Dwarf, Gnome, Halfing, etc..). If a Racial Category is specified, then the adjustment will ONLY apply to that race. The adjustments are read from left to right, so adjustments without any racial categories should be listed LAST. In the above example, Dwarves and Elves are given a very good deal, where everyone else gets a normal one. In addition to Racial Categories, you may also list alignments (good, neutral, or evil), a sex (male, female, and neuter), a character class, or the name of a faction range. Remember that this field is evaluated from left to right, so any matches made on the left that apply to a player will cancel evaluation of the rest of the field!
Just as bonus feature, if the adjustment begins with the words "LIMIT=", then you may enter a number representing the maximum number of rows of inventory the shopkeeper will display whenever a LIST is done. If the adjustment begins with the words "RANGE=", then you may enter either a number or a percentage. This number will represent the maximum and minimum level range of the items which the shopkeeper will purchase from players. This level range is relative to the median level range of his area. For instance, if the median level of the shopkeepers area is 10, and RANGE=3 is entered, then the shopkeeper will only purchase items between levels 7 and 13. A value of 0 means no limit and no range, of course. These features have no relation with the above prejudice functionality -- they're just bonus.
Inventory Reset Rate
This is the rate, in ticks (4 second periods) at which the shopkeeper totally resets his inventory back to the last saved "stock" items. Leave this field empty to use the Area or coffeemud.ini defaults, or not to have a reset rate at all, depending. If this value is changed on an Area or in the MUDGrinder, the Archon may have to enter the RESET AREA command to cause all the shopkeepers to notice the change.
To modify an exit that is east of your present location, simply enter "modify east". If the exit to the east of you is a GenExit or a GenDoor, you will receive the properties mentioned above. If the exit is anything other, than you will be prompted to enter the Miscellaneous Text field. For a standard exit, like Open or Door, this field represents the secret code that must also be specified in the StdKey item in order for you to unlock this door without spells or thief picking. For a readable exit, this field represents the text that is written on the door.
As mentioned briefly earlier, the GenExit is an undefined exit that one can mold to fit ones needs. Whenever a GenExit is created or modified, you will be presented with a series of properties to change. Hitting return will leave most of these properties without modification. Entering new values will replace the old values. These properties include:
| Property | Description |
| Name | the general name of this exit. Such as "the grand portal", or "the wooden gate". |
| Description | what one sees when this exit is LOOKed at with the LOOK command |
| Display Text | what one sees when the EXITS command is issued and the way is OPEN. |
| Level | The Level of the door can determine how difficult it is to PICK or KNOCK. |
| Has A Door | I think thou canst figure these next few out. |
| Door Defaults Closed | |
| Has A Lock | |
| Door Defaults Locked | |
| Reset Delay # | Whenever this exit is opened after previously being closed, this is the number of ticks (where a tick is currently 4 seconds) that will transpire before the exit is reset to its default state. |
| Closed Text | what one sees when the EXITS command is issued and the way is CLOSED. |
| Assigned Key Item | This is the secret code that must be present in the StdKey for you to be able to unlock it. The StdKey must have it's Miscellaneous Text property set the same as this value in order to open this exit using the UNLOCK command. If the level is sufficiently low, the door can still be KNOCKed or PICKed without the key. |
| Door Name | Is it a gate, door, grate, or portcullis. Specify that here. |
| Close Word | When you close it, are you really lowering it, or sliding it? Specify the correct verb here. |
| Open Word | When you open it, are you really raising it, or sliding it? Specify the correct verb here. |
| Is.. flags |
I think thou doest grok most of these flags. You may also require a little climbing or flying for this exit, in case it is a mere gulf the player must traverse, instead of the wide expanse that a climable room entails. |
| Behaviors | Like mentioned above when we talked about Rooms, there are not many behaviors that one can give to an item, but "Emoter" and "Sounder" works with exits very well. |
| Effects | As mentioned in the section on Rooms, there are many properties that one may attach to items. Use "list properties" to see them all, and "ahelp propertyname" for more information. |
As for Effects, well, effects are special properties which you can attach to your new little holes in the ground. There are lots of nice properties that one may add to an Area, which will affect every room in it, such as:
"Prop_AbilityImmunity" protects the exitfrom specified targeted spells.
"Prop_ClosedDayNight" shuts and locks any doors at night.
"Prop_ClosedSeason" shuts and locks any doors for a season.
"Prop_Crawlspace" requires crawling through this exit.
"Prop_EnterAdjuster" modifies the players stats permanently when they cross through this exit.
"Prop_Hidden" makes the exit hidden.
"Prop_Invisibility" makes the exit invisible.
"Prop_NarrowLedge" makes this an exit you can cross.. if you are very very careful.
"Prop_NoPKill" keeps out the riffraff.
"Prop_OpenPassword" requires a spoken password to open the door.
"Prop_ReqNoMOB" to make your exit a player-only place to be.
"Prop_ReqAlignments" lets you limit the alignment of all who enter.
"Prop_ReqCapacity" lets you limit the number of folks or items here.
"Prop_ReqClasses" lets you limit the character class of those who enter.
"Prop_ReqEntry" keeps out people that fit your specific requirements.
"Prop_ReqHeight" keeps out tall people, or at least those unwilling to crawl.
"Prop_ReqLevels" lets you limit entry by levels.
"Prop_ReqPKill" lets you limit entry by bloodthirstiness.
"Prop_ReqRaces" lets you limit entry by race.
"Prop_ReqTattoo" checks out a mobs forearm before letting them in.
"Prop_RoomView" makes looking at this exit more revealing.
"Prop_Smell" gives the exit an aroma when using the SNIFF command.
"Prop_TattooAdder" puts a little something on all who enter.
"Prop_Transporter" send those who enter to the room you designate.
"Prop_WeakBridge" makes cross this room very very dangerous.
Popular traps for exits include: Trap_AcidSpray", "Trap_ElectricShock", "Trap_Enter", "Trap_EnterGas", "Trap_EnterNeedle",
"Trap_EnterPit", "Trap_EnterSpell", "Trap_Launcher", "Trap_Needle", "Trap_Noise", "Trap_Open", "Trap_OpenBlade", "Trap_OpenGas",
"Trap_OpenNeedle", "Trap_OpenSpell", "Trap_PoisonGas", "Trap_SleepGas", "Trap_SpellBlast", "Trap_SporeTrap", "Trap_Unlock",
"Trap_UnlockBlade", "Trap_UnlockGas", "Trap_UnlockNeedle", "Trap_UnlockSpell", "Trap_WeaponSwing"
To learn more about the properties you can add to exits, enter "ahelp" while you are in CoffeeMud.
For our purposes, an item is any normal item, piece of armor, a weapon, a container, or any magical item, armor, or weapon. To bring one of these things into the world, you have only to call its true name using the create command. To create a Longsword, for instance, issue the command "create Longsword". It will then fall from the sky onto the floor or ground before you.
To find out what items are available for you to create, you can enter "list items". Entering "create <itemname>" will prove the true incantation for almost all of the items on this list. An exception, however, is the GenRideable. Since there is both an Item and a MOB version of that name, you will need to further qualify your create command by entering "create item GenRideable" or "create mob GenRideable".
The "GenItem", "GenResource", "GenMirror", and "GenReadable"
These represent some of the basic items your ordinary denizen will use every day. A GenItem and GenMirror represent nothing-special THINGS. GenResource is a raw material, like iron, coal, or wood, from which other things are made, especially with the common skills. GenReadables are GenItems with something to read on them, like a book or parchment.
Whenever a GenItem is created, much like the GenExit above, you are presented with a list of properties to fill in. Pressing enter will leave the property unchanged. The properties include:
| Property | Description |
| Name | the name of the item, like "a stone", or "a pencil" |
| Description | what one sees when one looks at the item. |
| Display Text | what one sees when an item is laying in a room. if you enter 'null' here, the item becomes blended, meaning that it does not show up in the listing of room contents, but may still be "looked" at, "read", or (if allowed) picked up! |
| Secret Identity | what one sees when the Identify spell is cast on the item. |
| Level | the level of the item, dictating the lowest level a character must attain to possess or hold it. |
| Uses Remaining | This property applies especially to GenWand, GenStaff, and GenScroll, discussed below. This tells how many times the magic in the item may be reused before requiring a recharge. |
| Rejuv/Pct |
This field has two different meanings, depending upon whether the item is in the room, or in a mobs inventory. |
| Is This Item Gettable | whether the item can be picked up off the ground. |
| Is This Item Droppable | whether the item can be dropped into a room. |
| Is This Item Removable | whether the item, once held or worn, can be removed. |
| Is This Item Locatable | whether the item can be found with the Locate Object spell. |
| Is This Item Readable | whether there are any readable markings on the item. Normally, an item must be in a players inventory to be read. However, if the item is set as not being Gettable, then it may be read even on the ground, like a sign or billboard. |
| Assigned Readable Text | if this item is marked, what those markings say. If this text begins with FILE=, then a text file from the resources directory will be displayed. For example: FILE=text/intro.txt |
| Material | this is the material that the item is made of. This affects the classes with armor restrictions, and the effects of certain spells. Choices include: cloth, metal, wood, leather, glass, and mithril. |
| Value | the items monetary value, for the purposes of buying from and selling to shopkeepers who price the item at default values. The value is expressed in multiples of the the base value. A value of 20 will mean that the item is worth 20 gold (or whatever the local currency is), assuming gold is valued at 1.0 of base. If the local currency has only Latinum Bars valued at 0.5, then a money value of 20 here would mean that the item is worth 40 Latinum Bars. |
| Weight | the items weight. |
| Is Flags... (Disposition) | most these flags, my faith tells me, thou canst discern. To clarify, however, a glowing item gives off light. An invisible item can not be seen, except by magic. An unseen item cannot be seen at all. |
| Behaviors | Like mentioned above when we talked about Areas, there are not many behaviors that one can give to an item, but "Emoter" works with items very well. |
| Effects | As mentioned in the section on Areas, there are many properties that one may attach to items. Use "list properties" to see them all. |
| Uses Remaining | A few items, notably wands, scrolls, and ammutiion can only be used a few times. For all other items, this may be left unchanged. |
| Magical Ability | although meaningless for most Generic Items, and absent on others, this property does have meaning for specific items described below. In general, items which a magical ability above 0 are considered magical. The exception to this is the GenCoins object. For coins, this denotes the number of coins in the pile! |
The "GenCoins"
A GenCoins item represents one or more instances of a unit of currency, such as a dollar bill, a gold coin, a stack of bills, or a pile of
coins.
Whenever these GenCoins are created, much like the GenItem above, you are presented with a list of properties to fill in. Pressing enter will leave the property unchanged. The properties include all of the fields listed above under GenItem, plus two more:
| Property | Description |
| Money Data | A three part field, including the Currency type, which can be either "DEFAULT", another of the stock currency types, or a custom
currency defined for your area. See the section on area currencies for more information on this. The next part is the decimal
absolute-value denomination within the given currency, followed by the number of items in the "stack" of money. Together, these three
fields define the nature, value, and size of the GenCoins stack. You will be prompted for each of the three parts, beginning with currency. |
| Base Value | For a GenCoins item, this field is, ironically, useless. |
The "GenLightSource", "GenCigar", "GenPipe", and
"GenLantern"
A GenLightSource and GenLantern provide light for players whenever they are HELD. GenCigars and GenPipes are WORN on the mouth for enjoyment. GenLightSources and GenCigars will burn away after a time, while GenLanterns can be refilled with oil from an oil flask, and GenPipes must be filled with an herb.
Whenever these GenLightSources are created, much like the GenItem above, you are presented with a list of properties to fill in. Pressing enter will leave the property unchanged. The properties include all of the fields listed above under GenItem, plus two more:
| Property | Description |
| Light Duration | the number of ticks (4 second intervals) which will transpire before the light source will burn out. See the next field for more information on burning out. |
| Is Destroyed after burnout | Whether the item is destroyed after burnout. This defaults to true for GenCigar and GenLightSource (torches), which vanish after use. GenLanterns and GenCigars default this to false, meaning the item remains after it burns out (though no longer gives off light). The GenLantern may be refilled with oil at this time, or the GenPipe may be refilled with herbs to continue. |
The "GenJournal" and "GenBook"
GenJournals and GenBooks are similar ways of persistant message storage. GenJournals represent message boards for players to commonly post
on and everyone to read. All GenJournals who have the same NAME field will display the same set of messages to readers, regardless of how
many instances of the same journal/book there are. GenBooks display a table of contents listing the "chapters" available for reading.
Players who have access to GenJournals or GenBooks, and who have the Write skill may write new messages/chapters (or post replies to old
ones on GenJournals).
GenJournals may be used by individual players to carry around and magically chat with each other on (assuming all their journals have the same name). They may also be large public posting boards. To make one of this last sort, simply make the journal non-gettable. That way, people can write on them even if they can't pick them up.
One special kind of journal is called "CoffeeMud News". If a Journal is given that name (without the quotes, and yes -- watch your spelling and case), then all messages posted to it will be echoed to all players whenever they log on next. For this reason, you will want to keep journals with than name close to your vest.
Archons can also create special "persistant" entries, whether they be in custom journals/books or in CoffeeMud News. These entries remain "new" longer than normal ones. These are created by starting off an entry subject with the letters MOTD (for message of the day), MOTM, or MOTY. If a subject starts with those letters, in uppercase, the entry will persist as new for a day, month, or year respectively.
Archons can also make use of the Web Macros system inside the body or message part of an entry. To do so, the message must start with the characters <cmvp>. If those six characters start the message, then the message may contain web macros. See the WebServer Guide for more information on this feature.
Whenever a GenJournal or GenBook is created, much like the GenItem above, you are presented with a list of properties to fill in. Pressing enter will leave the property unchanged. The properties include all of the fields listed above under GenItem, plus one that works a little bit differently than described above:
| Property | Description |
| Assigned Readable Text | A Journal/Book is always readable, so this field is really redundant. Therefore, it is now used as a field where you may set requirements for reading from and writing to the journa/bookl. If no requirements are mentioned, anyone may read from, write to, or reply it. A reading requirement is specified by putting READ= followed by some requirements. A reply requirement is specified by putting REPLY= followed by some requirements. A writing requirement is specified by putting WRITE= followed by some requirements. An optional administrative requirement is specified by putting ADMIN= followed by some requirements. The requirements for each of these settings can be seen by checking out the help entry for Prop_HaveZapper. The same mask criteria used for that property are also used for these options. |
The "GenWeapon", "GenBow", "GenLasso", "GenNet", "GenSling", "GenSpear",
"GenBoffWeapon"
These are the assorted weapons players and mobs use to attack each other. They are typically worn in the WIELD position, though some may also go in the HOLD position, either as a requirement (for two handed weapons) or as an option (for those with two-weapon fighting).
Weapons can be anything from swords to daggers, from bows you shoot ammunition at, to spears that you throw. It all depends on how you design them. The GenBow, GenSling, and GenSpear classes don't actually offer any functionality you couldn't get out of a properly molded GenWeapon, but are provided as good examples of how to make them. The GenBoffWeapon, on the other hand, is another form of GenWeapon, but it provides some silly and random hit messages during combat.
The GenNet and GenLasso, however, are quite different. Each of those are capable of ensnaring someone who is hit by them when they are thrown. They do default to thrown weapons.
Whenever any of these GenWeapons are created, much like the GenItem above, you are presented with a list of properties to fill in. Pressing enter will leave the property unchanged. The properties include all of the fields listed above under GenItem, plus a few more:
| Property | Description |
| Attack Adjustment | a number representing the quality of the weapon. The most common value is zero, representing a normal quality item. Typical ranges include -10 for a poor quality weapon up to 10 for an exceptional quality weapon. |
| Damage | the highest amount of damage this weapon does when used in a fight. Typical range is 2 - 8 for low level weapons, up to 20 or 30 for high-level weapons. |
| Weapon Attack Type | this dictates how the weapon is used in combat, whether in a bashing manner, slicing, piercing, or as a natural (fingers and claws) item. |
| Weapon Classification | this tells how the weapon fits into the several weapon specialization categories, and also determines which classes can use the weapon without penalty. Choices include blunt, dagger, edged, flailed, hammer, karate (fingers and claws), polearm, ranged, and sword. |
| Two-Handed | Whether the weapon occupies both the wielded and held position when used. |
| Magical Ability | This number represents an adjustment to both attack adjustment and damage, denoting whether the weapon is magical. Typical ranges include -2 for a badly cursed item, up to 5 for an extremely high level magical item. |
| Condition | a number from 0 to 100 denoting the condition of the weapon. A 100 means that the weapon is in top condition. A 0 means that it is all but destroyed and worthless as a weapon. |
| Minimum range | this is the closest position required to use the weapon. 0 means the weapon may be used in melee, where 1 means that a minimum range of 1 pace is required. |
| Maximum range | this is the farthese position required to use this weapon. When combat begins, it will denote how far away the wielder is from their foe. The same values as above apply, though the maximum range must always equal or exceed the minimum range. |
| Requires Ammunition | whether this weapon requires ammunition in order to use. |
| Ammunition Type | This is the type of ammunition required by this weapon. Ammunition is a special kind of item called GenAmmunition (see below) which must have an ammunition type field matching that of its intended weapon (such as "arrows" or "bolts" or "rocks") and has a Uses Remaining property above 0. |
| Ammunition Capacity | This is the amount of the ammunition which can be held by the weapon at one time. Usually this is only 1. |
The "GenContainer", "GenCorpse", "GenCage"
The GenContainer represents the standard container of other things, whether it be a piggy bank, a chest, or a holster. Lids, capacity, and even restrictions on what can be placed in it are all settable from here. Containers are also smart enough to re-close themselves after awhile when they are opened, and re-lock themselves after awhile when they are unlocked (assuming they have lids and locks, of course). A GenCorpse is a special sort of container, and should not be created in your world without good reason. It is designed to stand as the corpse of fallen creatures and foes. The GenCage is a GenContainer that one can see the contents of even when the lid is closed.. this simulates bars or other see-through doors and lids.
Whenever a GenContainer is created, much like the GenArmor above, you are presented with a list of properties to fill in. Pressing enter will leave the property unchanged. The properties include everything listed under GenItem, plus a few more:
| Property | Description |
| Has A Lid | Well, does it have one?. |
| Has A Lock | If it has a lid, can you lock it? |
| Can Contain | This can help you limit what goes inside. |
| Capacity | this denotes the maximum amount of weight that can be placed in the container. |
One more thing to keep in mind. Always make the weight of a container less than its capacity. A container must be able to hold its own weight in addition to anything put in it!
The GenAmmunition is a very special kind of item that can not be worn or held. It represents a package of ammunition for a GenWeapon (or GenBow, etc..) which requires ammunition. To make the ammunition work with your weapon, the values in the ammunitionType fields in both the GenWeapon and the GenAmmunition must match. Whenever a player runs out of ammunition for their weapon, it will be drawn from GenAmmunition objects, provided they are in the players inventory.
GenAmmunition differs from other items not only in its inability to be held, but also in its ability to transfer any Effects on itself to the weapon. Whenever a weapon draws ammunition from a GenAmmunition type, properties, spells, and other Effects on the Ammunition will be transferred to the weapon. This allows one to make Magical ammunition.
Whenever a GenAmmunition is created, much like the GenItem above, you are presented with a list of properties to fill in. Pressing enter will leave the property unchanged. The properties include everything listed under GenItem, plus a few more:
| Property | Description |
| Ammunition Type | arrows, bolts, bullets, etc. MUST match the ammunition type field of the weapon. Also, the Uses Remaining field for ammunition represents the AMOUNT of ammunition in this bundle. |
The "GenArmor" and "GenShield"
These represent all manner of clothing, shoes, worn jewelry, armor, and of course shields. Of these, only a shield MUST be made from GenShield. Everything else may be made from GenArmor. Plus, GenArmors are also containers, meaning that you can make armor that things can be sheathed in or placed in like pockets.
Whenever a GenArmor piece is created, much like the GenContainer above, you are presented with a list of properties to fill in. Pressing enter will leave the property unchanged. The properties include everything listed under GenItem and GenContainer, plus a few more:
| Property | Description |
| Worn Locations | this little menu allows you to describe either all the different places a piece of armor MAY be worn, or to describe ALL the places that a piece of armor MUST be worn. Entering the specified numbers will toggle the locations. Entering '1' will toggle whether it is a MAY or MUST situation. Enter '0' when done. |
| Layer |
a number designating what can be worn on top of or beneath this piece of armor. Generally higher numbers are worn on
top of lower numbers, with negative numbers generally meaning underwear. However, a layer number must be 2 higher than the next
lowest worn item on the same location to cover it. For instance a layer 3 can cover a layer 1 or 0, but not a layer 2 or 4. This
entry also allows you to designate whether this item hides anything worn beneath it or is see-through, and whether multiple of these
can be worn on the same location at the same time (such as jewelry). |
| Armor Protection | the base amount of protection provided when wearing this piece of armor. Unline MOBS, the higher the number here, the better for the wearer. |
| Magical Ability | This number represents an adjustment to the armor protection, denoting whether the armor is magical. Typical ranges include -2 for a badly cursed item, up to 5 for an extremely high level magical item. |
| Capacity | if the armor piece has pockets, this denotes the maximum amount of weight that can be placed in it. 0 is a typical value, denoting that you cannot store items in this armor. The capacity should always exceed the weight. |
| Can Contain | For armor with capacity, this can help you limit what goes inside. This value must be changed to something specific, and a sufficient capacity must be set, in order for this item to be a SHEATH. |
| Condition | a number from 0 to 100 denoting the condition of the armor. A 100 means that the armor is in top condition. A 0 means that it is all but destroyed and is not longer providing any protection at all. |
| Size | the size of the piece of armor. 0 means that the piece has a variable size, and will fit anyone until it is worn for the first time. Any other number means that the wearer must be near to the size in inches to wear it. |
The "GenBed" "GenChair", "GenTable", "GenBoat", "GenRideable", "GenCageRideable", "GenTub"
These represent the GenRideable group -- a group of things which may be sat one, slept in, ridden on the seas, or pulled by horses. The GenRideable, GenBed, GenChair, GenTable, and GenBoat all represent different incarnations of GenRideable, but are interchangable otherwise. The GenTub is unique in that it provides the functionality of GenDrink as well as GenRideable. GenCageRideable is very different, since it has the unique property of the GenCage -- able to be seen in even when lids or doors are closed.
Whenever a GenRideable item is created, much like the GenContainer above, you are presented with a list of properties to fill in. Pressing enter will leave the property unchanged. The properties include all of the fields listed above under GenItem, and GenContainer, plus a few more:
| Property | Description |
| Rideable Type | the type of rideable item this is, from sittable, to sleepable, etc. Some of these types may be ridden from room to room, like "LAND-BASED","WATER-BASED","AIR-FLYING", and "WAGON" while others may not. "WAGON", unlike the others, may be hitched to another Rideable (such as a GenRideable MOB made into a horse.) "LADDER" will help those trying to get through climable rooms. The others are just furniture for sitting on, sleeping on, or climbing into. |
| MOBs Held | th emaximum number of mobs which may occupy this piece of furniture at once. |
These items represent the edibles and drinkables on CoffeeMud. The GenFood is a simple edible food, while a GenFoodResource is a raw edible material that can be used for cooking or other resource-requiring common skills. GenWater, GenDrink, and GenFountain are all templates for drinkable containers, with a GenFountain differing only in a lack of need to ever fill it. A GenLiquidResource represents a liquid resource for potion making or other skills.
Whenever a GenFood, GenDrink, GenFountain, or GenWater is created, much like the GenItem above, you are presented with a list of properties to fill in. Pressing enter will leave the property unchanged. The properties include everything listed under GenItem, plus GenContainer for the drinkables, plus a few more:
| Property | Description |
| Nourishment/Eat | when eaten, h |