There is no player inventory. All objects are either worn or carried within containers worn on a character. There are no limits with regard to the numbers of items any character may carry, however there is an effective weight limit. All objects have a weight and a volume. The weight is a real weight measure in pounds (or could be kilograms or any unit you prefer). The weight a character can carry with no penalties is based on their strength and size. A character may carry more than this with a greater penalties on the effectiveness in combat and other actions. Object volume is an abstract number (in this case inches) representing the longest dimension of an object (i.e. not really volume). It is used to determine whether an object can fit into the mouth of a container. Thus a container's volume determines what size objects may be placed inside. A container has its own intrinsic empty weight and also has a maximum weight capacity which determines how many objects may be contained within it before it is full. All equipment objects and treasures have a weight including coinage. Of course magically enspelled equipment might have significantly altered weights and volumes.
There are 112 theoretical wear positions. There are actually 28 wear positions in 4 layers.
The 28 wear positions are: head, face, l. ear, r. ear, l. eye, r. eye, nose, neck, l. shoulder, r. shoulder, back, chest, l. arm, r. arm, l. wrist, r. wrist, l. hand, r.hand, l. finger, r. finger, l. waist, r. waist, l. thigh, r. thigh, l. shin, r. shin, l. foot and r. foot.
The 4 layers consist of: Layer 0 - A layer where an unlimited number of objects can be placed. These objects are not equipment objects nor directly accessed by the player. Layer 1 - The clothing/jewelry layer. Layer 2 - The armor layer. Layer 3 - The accessory layer.
Why only 28? I could think of several more and perhaps some amusing ones. Well I made some compromises as to implementation and realism. I left out the obvious extra fingers for some game balance and playability concerns as opposed to reality. And it fits in 32-bits.
Technically this works as follows. There is some extra thought and effort required from the designers of objects. A prototype of an object contains 6 32-bit masking flags. These contain the possible wear locations of an object. Why 6? Completely arbitrary. The flags are checked in order (1-6) and flag 1 being the preferred location. Many objects such as clothing and armor when worn cover multiple locations. An actual object in play contains a single flag, which is its current location. A null mask would indicate the object is currently not worn. A character or NPC has 3 wear masks which correspond to layers 1-3. The wear command checks the object-prototype masks in preferred order and attempts to find the appropriate open wear positions. Currently objects are automatically replaced at the same level but wearing is blocked by objects worn at a higher level. The command 'wear shirt' for instance will automatically remove all objects occupying the matching layer 1 positions and display what was removed to the player in order to wear the shirt. However it would be blocked if the player was wearing arm greaves at layer 2 along with the message you must remove your greaves first. Lower level layers are hidden from view, this allows some measure of equipment hiding but is also useful for some RP aspects. Gloves would cover rings and will not be visible, for instance. If an object is successfully worn, the mask is applied to the appropriate character layer and the real objects mask is replaced. Enough technical details, suffice it to say all this is extremely efficient (bit operations) and the number of lines coded for wear/remove is quite small.
Some object examples:
A chain mail shirt - Flag 1 - chest, back, right arm, left arm and layer 2 bits. Flag 2 - left hand, right hand and layer 3 bits. Flags 3 - 6 are null A longbow - Flag 1 - l. shoulder and layer 3 Flag 2 - r. shoulder and layer 3 Flag 3 - back and layer 3 Flag 4 - l. hand and layer 3 Flag 5 - R. hand and layer 3
The player interface is not much more complicated than current ones. A player's "inventory" consists of the items worn and occupying carried containers. There is no virtual inventory. I'm thinking of adding a command to allow players to set their own search preferences regarding which containers are searched. I implement a 'wear all' command which wears objects at lower level layers before those of a higher layer. I also implement 'wear object location' where location can be specified any number of ways. Prefixing with left|right or post fixing with inside|outside for those objects that can be worn at different layers. Some jewelry for instance. In addition one should allow many alternative synonyms for locations (inner|inside or side|waist|abdomen).
There should be some situational limits on the wear command during normal combat. No more disrobing in front of your opponent. Weight and container limits should prevent stuffing 3 halberds in a backpack or other unrealistic combinations.
In most cases the wear object command will place the object in its correct location without any player override. Also much of the layer 1 equipment is considered clothing and generally isn't removed. Well I have heard of this occurring during some very private mud activities. The only possible problems I see are from player irritation at having to remove certain objects in order to wear lower layered ones. As far as combat useful items, this should be minimal.
The level zero layer contains objects such as wounds, tattoos, old scars, facial expressions, disguise applications and some other stuff which I haven't thought of yet. The character object does contain a level 0 mask which I call a wounds mask. Any location severely wounded enough to not allow wearing of an object is marked here. A combat system implementing an enhanced critical hit system which implements hit location and wound severity would use this layer. These are implemented in the form of virtual objects which are indirectly accessed through the healing system. A wound object has a timer and may disappear normally. A lost limb wound object would of course not have a timer and would cause equipment wearing problems. When a wound object is removed there is a chance that a scar object might take its place.
Depending on the initial wounds severity this scar object may be timed to disappear or be permanent. Tattoos, body piercings and other such niceties can purchased and applied to this layer. A player has the option of choosing hair color, eye color when creating their character. These are all implemented as layer 0 objects.
Expressions are an enhancement to socials/emotes. These are applied to the face location and consist of things like smiling, scowling, pouting, angry, etc. Disguise applications are most useful for those of the thief/assassin bent, though not wholly their province. I know many mudders who would like to enhance their character's appearance through the use of hair dyes, well-placed moles, the latest in mud hair-styles. All of which can be readily purchased at an appropriate shop. Some of this cool stuff is essential fluff for fans of Cyberpunk, Vampyre and similar RPing games. For those of you with a decidedly hack-n-slash bent, a well-placed scar with a story behind it might lend some credence to your boasting, although you might want to keep the one fido gave you as a newbie covered up.
The power of this layering comes into play in character descriptions. Player descriptions are given from the top layer down hiding all items underneath. Player names are only displayed if the character is recognizable as such. Brief descriptions could range from "a cowled and cloaked figure is here" to "a scowling faced male elf is here". Look/examine descriptions are much richer and detailed of course. This is something still in progress and I won't be happy with until the textual flow feels right. Disguise and other appearance changing objects are placed and removed at layer 0. Thus a character with a good disguise skill might be perceived as they intend while a player with no talent for disguise may appear as they are ("You see Bob wearing make-up, a wig and dress"). Characters can become quite unique and memorable.
I believe this might be useful and fun for role-playing and social environments and/or more detailed combat effects.