Table of Contents

Notice

See Also

Type Information

List of object types

List of object types, their attributes and functionality

type 0: misc

Type 0 means: The object has no special functionality. This usually applies for walls, floors and monsters.

floors:

All the unique and permanent apartments have this flag set to every floor tile.

walls:

monsters / NPCs:

type 3: rod

Functionality of rods:
A rod contains a spell. The player can use this spell by applying and firing the rod. Rods need time to regenerate their “internal” spellpoints, lowering the effectiveness in combat. But unlike wands/scrolls, rods can be used endlessly.

see also: horn (35), wand (109)

type 4: treasure

Functionality of treasure:
A treasure-object turns into certain randomitems when the map is loaded into the game.

About usage of the random-artifact treasurelist:
This will generate powerful stuff like girdles, xray helmets, special swords etc. If you put this as reward to your quest, players might be motivated to do it more than once. BUT, by doing so they will get a huge number of different artifacts! Besides, players will always seek the place with the most easy-to-get random artifact and ignore all others. My advice: Don't use it! Attract players with good fighting experience (from monsters), potions, spellbooks, money, and non-random artifacts.

type 5: potion

Functionality of potions:
The player can drink these and gain various kinds of benefits (/penalties) by doing so.

type 6: food

Functionality of food:
By eating/drinking food-objects, the player can fill his stomach and gain a little health.

see also: type 72: flesh

type 7: poison food

Functionality of poison food:
When eating, the player's stomach is drained by 1/4 of food. If his food drops to zero, the player might even die.

type 8: book

Functionality of books:
Applying a book, the containing message is displayed to the player.

see also: spellbook (85), sign (98), scroll (111)

type 9: clock

Functionality of clocks:
Applying a clock, the time is displayed to the player

type 13: arrow / bolt

Functionality of arrows/bolts:
Arrows can be shot with bows, bolts with crossbows. They are usually weaker than melee but players can shoot from a safe distance.

type 14: shooting weapon

Functionality of Shooting Weapons:
Bows can fire arrows, crossbows can fire bolts. You could also create your own pair of projectile & shooting weapon. When the “race”-attribute of both matches, it should work.

see also: type 15: weapon

type 15: weapon

Functionality of weapons:
Wielding a weapon, the object's stats will directly be inherited to the player. Usually enhancing his fighting-abilities. Non-magical weapons can be improved with scrolls.

General notes on artifacts (equipment) with stats- or resistance-bonus:
Keep playbalance in mind! Such items mustn't be reachable without hard fighting AND questing. See “golden rules of map-making”.

type 16: armour

Functionality of mail / breastplate armour:
Wearing an armour, the object's stats will directly be inherited to the player. Usually enhancing his defense.

see also: type 33: shield , type 34: helmet , type 39: amulet , type 70: ring , type 87: cloak , type 99: boots , type 100: gloves , type 104: bracers , type 113: girdle

These all work more or less exactly like breastplate armour.

type 17: pedestal

Functionality of pedestals:
Pedestals are designed to detect certain types of living objects. When a predefined type of living creature steps on the pedestal, the connected value is triggered.

Notes on usage:
If you want to create a place where only players of a certain race can enter, put a type 41: teleporter over your pedestal. So the teleporter is only activated for players of the matching race. Do not use gates, because many other players could sneak in. If you put powerful artifacts into such places, generally set “startequip 1”, so that they are preserved for that one race and can't be traded to others.

see also: type 51: detectors , type 64: inventory checker , type 18: altar

type 18: altar

Functionality of altars:
When a player puts a defined number of certain items on the altar, then either a spell is casted (on the player) or a connector is triggered. If the latter is the case, the altar works only once. Either way, the sacrificed item dissapears.

see also: type 31: altar_trigger , type 56: holy altar

type 20: locked door

Functionality of locked doors:
A locked door can be opened only when carrying the appropriate type 21: special key.

Notes on usage:
If you want to create a locked door that cannot be opened (no key), set a slaying like “no_key_available”. This will clarify things and only a fool would create a key matching that slaying. Door-objects can not only be used for “doors”. In many maps these are used with all kinds of faces/names, especially often as “magic force”. A good example is the map “Lake_Country/ebony/masterlev”. There you have magic forces (door objects) put under certain artifact items. To get your hands on the artifacts, you need to bring up the appropriate quest items (key objects).

see also: type 21: special key

type 21: special key

Functionality of special keys:
When carrying the appropriate special key, a locked door can be opened. The key will disappear. This object-type can also be used for “passport”-like items: When walking onto an inventory checker, a gate for example might get opened. The “passport” will stay in the player's inventory.

Notes on usage:
How to make a “passport”: You take the special key arch (archetype name is “key2”), set the face to something like card.111 and the name to “passport” - that's all. The slaying certainly must match with the appropriate inventory checker.

Of course you can be creative with names and faces of key-objects. A “mysterious crystal” or a “big dragon claw” (with appropriate faces) appear more interesting than just a “strange key”, or “passport”.

see also: type 20: locked door , type 64: inventory checker

type 29: magic ear

Functionality of magic_ears:
Magic_ears trigger a connected value when the player speaks a specific keyword.

Notes on usage:
Whenever you put magic_ears on your maps, make sure there are CLEAR and RELIABLE hints about the keywords somewhere. Don't make something like a gate that is opened by speaking “open” or “sesame”, expecting the player to figure this out all by himself.

Magic_ears are typically used for interaction with NPCs. You can create the impression that the NPC actually *does* something according to his conversation with a player. Mostly this means opening a gate or handing out some item, but you could be quite creative here.

type 31: altar_trigger

Functionality of altar_triggers:
Altar_triggers work pretty much like normal altars (drop sacrifice → connection activated), except for the fact that they reset after usage. Hence, altar_triggers can be used infinitely.

If “slaying money” is set, then the value of the sacrificed money must be equal to <value> (ie, if food=200, then 200 silver, 20 gold, or 4 platinum will all work.) Note that the maximum possible for <value> is 32767.

Hints on usage:
Altar_triggers are very useful if you want to charge a price for…

The big advantage over normal altars is the infinite usability of altar_triggers! If there are ten players on one server, they're quite grateful if things work more than once. =)

see also: type 18: altar

type 33: shield

FIXME

type 34: helmet

FIXME

type 35: horn

FIXME

see also: type 3: rod

type 39: amulet

FIXME

type 40: mover

Functionality of movers:
Movers move the objects above them. However, only living objects are affected (monsters/NPCs always, players optional). Movers have a direction, so players can be made to move in a pattern, and so can monsters. Motion is involuntary. Additionally, players or monsters can be “frozen” while ontop of movers so that they MUST move along a chain of them.

Multisquare monsters can be moved as well, given enough space. Movers are usually invisible.

Notes on usage:
NEVER EVER consider a mover to be impassable in the backwards direction. Setting “attacktype 1” makes it seemingly impossible but there is still a trick: One player can push a second player past the mover, in opposite to the mover's direction! The more movers, the more players needed. Hence, don't make a treasure room that is surrounded by movers instead of solid walls/gates. It should be noted though that this behavior can be used for intentionally multi-player maps, and there is one such example in Pupland , however it should be noted that forcing players to use that to get through would usually be considered a bit too counter-intuitive unless it is hinted to.

Btw, it does not make a difference putting movers above or below the floor. Moreover, movers that are “invisible 1” cannot be discovered with the show_invisible spell.

Note on directors:
Movers and Directors are separate objects, even though they look and act similar. Directors only do spells/missiles, while movers only do living creatures (depending on how it is set: monsters and players).

see also: type 112: director

type 41: teleporter

Functionality of teleporters:
When the player walks into a teleporter, he is transferred to a different location. The main difference to the object-type type 66: exit is the possibility to have teleporters connected to levers/buttons/etc. Sometimes teleporters are activated even against the players will.

Unlike exits, teleporters can transfer also items and monsters to different locations on the same map.

Notes on usage:
Teleporters must always be placed above the floor in order to work correctly!

When creating maps, I guess sooner or later you'll want to have an invisible teleporter. If using “invisible 1”, the teleporter can still be discovered with the show_invisible spell. And you can't place it under the floor to prevent this. Fortunately, there is a cool trick to make a perfectly invisible teleporter: You simply add teleporter functionality to the floor itself. That means: You take the floor arch (e.g. “flagstone”), set “type 41”, and add slaying/hp/sp/connected… everything you need.

see also: type 66: exit

type 42: creator

Functionality of creators:
A creator is an object which creates another object when it is triggered. The child object can be anything. Creators are VERY useful for all kinds of map-mechanisms.

Notes on usage:
Don't hesitate to hide your creators under the floor. The created items will still always appear ontop of the floor.

see also: type 154: rune / trap

type 51: detectors

Functionality of detectors:
Detectors work quite much like inv. checkers/pedestals: If the detector finds a specific object, it toggles its connected value.

What is “unique” about them, compared to inv. checkers/ pedestals? - First, detectors check their square for a match periodically, not instantly. Second, detectors check directly for object names. Third, detectors do not check the inventory of players/monsters.

Notes on usage:
There is one major specialty about detectors: You can detect spells blown over a detector! To detect a lightning bolt for example, set “slaying lightning” and “speed 1.0”. In combination with spellcasting walls, this can be very useful for map-mechanisms.

see also: type 17: pedestal , type 64: inventory checker , type 18: altar

type 55: marker

Functionality of markers:
A marker is an object that inserts an invisible force (a mark) into a player stepping on it. This force does nothing except contain a string in its slaying field which can be discovered by detectors or inv. checkers. It is also possible to use markers for removing marks again. Note that the player has no possibility to “see” his own marks, except by the effect that they cause on the maps.

Notes on usage:
Markers hold real cool possibilities for map-making. I encourage you to use them frequently. However there is one negative point about markers: Players don't “see” what's going on with them. It is your task, as map-creator, to make sure the player is always well informed and never confused.

Please avoid infinite markers when they aren't needed. They're using a little space in the player file after all, so if there is no real purpose, set an expire time.

see also: type 64: inventory checker

type 56: holy altar

Functionality of holy_altars:
Holy_altars are altars for the various religions. Praying at a holy_altar will make you a follower of that god, and if you already follow that god, you may get some extra bonus. (See: god intervention)

Altars located in temples should have at least “level 100”. Some characters might need those altars, they would be very unhappy to see them re-consecrated to another cult.

see also: type 18: altar

type 59: peacemaker

An object owned by a player that can convert a monster into a peaceful being incapable of attack. This item type is the basis by which the peace spell functions. If the attack succeeds, the victim becomes unaggressive, will run away, assumes random movement, and is no longer considered a monster. All the creature's experience is transferred to the owner of the peacemaker.

type 62: magic wall

Functionality of magic walls:
Magic walls fire spells in a given direction, in regular intervals. Magic walls can contain any spell. However, some spells do not operate very successfully in them. The only way to know is to test the spell you want to use with a wall.

Several types of magical walls are predefined for you in the archetypes, and can be found on a pick-map available in crossedit .

Notes on usage:
Spellcasting walls pose an interesting alternative to monsters. Usually they are set to be non-destroyable (“alive 0”). Thus, while monsters in a map can be cleared out, the magic walls remain. Low level characters for example will not be able to pass through their spell-area, hence they cannot loot a map that a high level character might have cleared out.

Another point of magic walls is that if the player dies, he has to face them all again. Magic walls can add a kind of “permanent thrill” to your maps.

Be careful that your magic walls don't kill the monsters on a map. If placing monsters, eventually take ones that are immune to the walls' spell(s).

It is possible to make walls rotate when triggered. But that is so confusing (and useless IMHO) that I did not mention it above. You can find a working example on the map ”/pup_land/castle_eureca/castle_eureca8“.

type 64: inventory checker

Functionality of inventory checkers:
Inventory checkers passively check the players inventory for a specific object. You can set a connected value that is triggered either if that object is present or missing (→ “last_sp”) when a player walks over the inv. checker. A valid option is to remove the matching object (usually not recommended, see “last_heal”).

Alternatively, you can set your inv. checker to block all players that do/don't carry the matching object (→ “no_pass”). As you can see, inv. checkers are quite powerful, holding a great variety of possibilities.

So, *if* you set last_heal, make sure to inform the player what's going on!

General usage notes:
Putting a check_inventory space in front of a gate (one below) and one on the opposite side works reasonably well as a control mechanism. Unlike the key/door-combo, this one works infinite since it is independent from map reset. Use it to put a “structure” into your maps: Player must solve area A to gain access to area B. This concept can be found in nearly every RPG - simple but effective.

see also: type 21: special key , type 55: marker , type 17: pedestal , type 51: detector

type 65: mood floor

Functionality of mood floors:
As the name implies, mood floors can change the “mood” of a monsters/NPC. For example, an unaggressive monster could be turned mad to start attacking. Similar, an aggressive monster could be calmed.

Notes on usage:
Notes on usage: Mood floors are absolutely cool for NPC interaction. To make an unaggressive monster/NPC attack, put a creator with “other_arch furious_floor” under it. Connect the creator to a magic_ear, so the player speaks a keyword like “stupid sucker” - and the monster attacks.

To turn an NPC into a pet, put a charm_floor under it and connect it directly to a magic_ear. Then the player speaks a keyword like “help me” - and the NPC joins him as pet.

(Of course you must always give clear hints about keywords! And there is no reason why you couldn't use a button/lever/pedestal etc. instead of a magic_ear.)

type 66: exit

Functionality of exits:
When the player applies an exit, he is transferred to a different location. (Monsters cannot use exits.) Depending on how it is set, the player applies the exit just by walking into it, or by pressing <a>pply when standing on the exit.

Notes on usage:
If you want to have an invisible exit, set “invisible 1” (, of course “walk_on 1”), and put it *under* the floor. Otherwise it could be detected with the show_invisible spell.

You can be quite creative with the outlook of secret exits (their “face”). Don't forget to give the player relyable hints about them though.

see also: type 41: teleporter

type 70: ring

FIXME

type 72: flesh

FIXME

se also type 6: food

type 85: spellbook

Functionality of spellbooks:
By reading a spellbook, the player has a chance of learning the contained spell. Once learned from a book, the spell is available forever. Spellbooks with high level spells require some skill-level to read.

Notes on usage:
Don't put any of the godgiven spells into a spellbook! These are reserved for the followers of the appropriate cults. Handing them out in a spellbook would violate the balance between different religions.

If you want to have a random spellbook, you must use the type 4: treasure arch “random_spells” instead.

see also: type 8: book

type 87: cloak

FIXME

type 94: hole

Holes send objects that fall through them to a new location on the current map.

Examples

Special Object Attributes

CrossfireEditor arch map Description
connection connected When a connection value is set, the pit can be opened/closed by activating the connection.
destination X
destination Y
hp
sp
The pit will transport creatures (and items) randomly into a two-square radius of the destination coordinates. If the destination square becomes blocked, the pit will act like it is filled up and will not work any more.
position state wc The position state defines the position of the gate: Zero means completely open/down, the “number of animation-steps” (usually about 6 or 7) means completely closed/up state. The default value is usually recommended.
affected movement move_on move_on Make creatures using these movement types fall into the pit. Movement types other than walking is not the behavior expected from a pit, and other settings should only be used for map-mechanisms (e.g. for transporting flying monsters). An interesting side-effect is if this flag is enabled, spell effects like fire/snow also make their way through the pit.
maxsp Whether the initial state is open (1) or closed (0).

type 98: sign / magic mouth

Functionality of signs / magic_mouths:
The purpose of a sign or magic_mouth is to display a certain message to the player. There are three ways to have the player get this message: The player walking onto it (→ magic_mouth), the player pressing <a>pply (→ sign) or the player triggering a button/handle/etc (→ magic_mouth).

Notes on usage:
Use signs and magic_mouths, plenty of them! Place magic_mouths to add some true roleplay feeling to your maps, support your storyline or give hints about hidden secrets/dangers. Place signs to provide the player with all kinds of useful information for getting along in your maps.

see also: type 8: book

type 99: boots

FIXME

type 100: gloves

FIXME

type 103: converter

Functionality of converters:
Converters are like “exchange tables”. When the player drops a specific type of items, they get converted into other items, at a predefined exchange-ratio.

Notes on usage:
Converters are better than shopping with doormats, because the converters never get sold out. For some items like food or jewels those “exchange tables” are really nice, while for the more important stuff like potions converters should not exist.

VERY IMPORTANT:
Be careful with the exchange-ratio! When you drop items on a converter, the stuff you get must be of equal or lesser value than before! (Except if you are using “rare” items like dragon-scales for payment). The code will not check if your ratio is sane, so the player could gain infinite wealth by using your converter.

See also: type 42: creator

type 104: bracers

FIXME

type 106: savebed

Functionality of savebeds:
When the player applies a savebed, he is not only saved. Both his respawn-after-death and his word-of-recall positions are pointing to the last-applied savebed.

Notes on usage:
Put savebed locations in towns, do not put them into dungeons. It is absolutely necessary that a place with savebeds is 100% secure. That means:

type 109: wand / staff

Functionality of wands / staves:
Wands contain a certain spell. The player can apply (ready) and fire the wand. After a defined number of casts, the wand is “used up”. It is possible to recharge a wand with scrolls of charging, but usually that isn't worth the cost.

Notes on usage: Wands are quite seldom used. The reason probably is that they're generally not cost-efficient. Handing out high-level wands with powerful special spells isn't a good idea either, because of the recharge ability.

For low levels, staffs of healing/cure and word of recall are quite desirable though.

see also: type 3: rod , type 5: potion , type 111: scroll

type 111: scroll

FIXME

see also: type 3: rod , type 5: potion , type 109: wand / staff

type 113: girdle

FIXME

type 122: container

Functionality of containers: A player can put (certain kinds of) items in the container. The overall weight of items is reduced when put inside a container, depending on the settings.

A special feature of containers is the “cauldron”, capable of mixing alchemical receipes.

Note on chests: There are two types of chests: First the random treasure chests - Those are NOT containers (but object type 4), they create random treasures when applied. Archetype name is “chest”. Second there are the permanent chests - Those are containers, they can be opened and closed again. Archetype name is “chest_2”.

type 154: rune / trap

Functionality of runes/ traps: A rune is a magical enscription on the dungeon floor. Traps are just like runes except they are not magical in nature, and generally have a physical attack.

Runes hit any monster or person who steps on them for 'dam' damage in 'attacktype' attacktype. Alternatively, the rune could contain any spell, and will cast this spell when it detonates. Yet another kind is the “summoning rune”, summoning predefined monsters of any kind, at detonation.

Many traps and runes are already defined in the archetypes.

Notes on usage: Avoid monsters stepping on your runes. For example, summoning runes together with spellcasting- and attack-runes is usually a bad idea. One can use this feature intentionally though to create chain-reactions of summoning runes and such things, however one should be careful about doing this.

Common Object Attributes

The following attributes are used for many different object-types: (These are only mentioned here, not in the detailed list of object-types above. Apply them to all objects where they make any “sense”.)

CrossfireEditor arch/map field Description
name name <name> The name of the object displayed to players.
title title <title> An object's title. Once the object is identified the title is attached to the name. Typical titles are “of mostrai”, “of xray vision” etc.
image face <name_of_face> The image name defines what picture is displayed for the object. Look through the arches to get an idea of existing faces.
nrof <number The number of objects in one stack (for example: 100 goldcoins ⇒ “nrof 100”). You should set at least “nrof 1” for any pickable object, otherwise it won't be mergeable!
weight <grams> Makes an object weigh <grams> grams (1000g is 1kg). Objects with “weight 0” are not pickable for players. Still, set “no_pick 1” for explicitly non-pickable objects.
value <num>
material <number> <number> is a bitmask, containing the information of what material the object is made of. An object's material affects its likelihood to get destroyed by certain hazards (fire/cold/acid..). Material 0 or 256 means the object cannot be destroyed at all (this is VERY important for special keys!). Read more about materials here.
msg
<text>
endmsg
<text> is the “story” or description of the object (for the players). This should work for all pickable items in some way. For other object-types (living creatures/magic mouth..) this message has special meanings. In crossedit you can write this kind of message into the big text-frame in an object's attribute window. Add stories to all the special artifacts you create!
glow\ radius If glow radius is set to a value greater than zero, the object appears lit up on dark maps. It can be a value between 0 and 4 with higher values emitting greater amounts of light.
identified identified <0/1> Whether the item is identified or not. If it is, both the name and title are shown to the player.
invisible invisible 1 Makes the object invisible. Depending on the object-type, some can be made visible by the show_invisible spell. If in doubt, test it. Putting an invisible object under the floor always prevents it from being shown, but, in some cases, might cause malfunction to the object. You may find more detailed info about this matter in the description of the affected object types.
smooth level If smooth level is set to a value greater than zero, the object will be drawn partially over adjacent squares having a lower smooth level. The value must be between 0 and 255 (inclusive) where 0 means “never overlap adjacent squares”.
elevation The elevation, or height above sea level) of this tile. It is used for weather calculations and should be in the range -32000 to 32000. The elevation of a tile must be set in the bottom-most game object; elevation values for non-bottom-most game objects are ignored by the Crossfire server.
block view blocksview <0/1> If set, players (and monsters) cannot see beyond the object unless they cross it or manage to stand on top of it. For multi-tile objects, this flag may be set uniquely for each part.

Note: When attributes are specified in multi-tile arch, most attributes need only be set in the head part, though there are some which may be uniquely set for each non-head part.

Server define.h Object Type Excerpt

/**
 * @defgroup OBJECT_TYPE Object types.
 *
 * Only add new values to this list if somewhere in the program code, it is
 * actually needed.  Just because you add a new monster does not mean it has to
 * have a type defined here.  That only needs to happen if in some .c file, it
 * needs to do certain special actions based on the monster type, that can not
 * be handled by any of the numerous flags.  Also, if you add new entries, try
 * and fill up the holes in this list.  Additionally, when you add a new entry,
 * include it in the table in common/item.c
 *
 * type 0 is undefined and indicates non-valid type information.
 */
/*@{*/
#define PLAYER                      1
#define TRANSPORT                   2     /* see doc/Developers/objects */
#define ROD                         3
#define TREASURE                    4
#define POTION                      5
#define FOOD                        6
#define POISON                      7
#define BOOK                        8
#define CLOCK                       9
/*#define FBULLET                   10 */
/*#define FBALL                     11 */
/*#define LIGHTNING                 12 */
#define ARROW                       13
#define BOW                         14
#define WEAPON                      15
#define ARMOUR                      16
#define PEDESTAL                    17
#define ALTAR                       18
/*#define CONFUSION                 19 */
#define LOCKED_DOOR                 20
#define SPECIAL_KEY                 21
#define MAP                         22
#define DOOR                        23
#define KEY                         24
/*#define MMISSILE                  25 */
#define TIMED_GATE                  26
#define TRIGGER                     27
#define GRIMREAPER                  28
#define MAGIC_EAR                   29
#define TRIGGER_BUTTON              30
#define TRIGGER_ALTAR               31
#define TRIGGER_PEDESTAL            32
#define SHIELD                      33
#define HELMET                      34
#define HORN                        35
#define MONEY                       36
#define CLASS                       37    /* object for applying character class
                                           * modifications to someone */
/*#define GRAVESTONE                38 */
#define AMULET                      39
#define PLAYERMOVER                 40
#define TELEPORTER                  41
#define CREATOR                     42
#define SKILL                       43    /* also see SKILL_TOOL (74) below */
#define EXPERIENCE                  44    /* This is basically obsolete now.
                                           * It used to contain experience for
                                           * broad skill categories.  This
                                           * value is now automatically
                                           * converted at load time. */
#define EARTHWALL                   45
#define GOLEM                       46
/*#define BOMB                      47 */
#define THROWN_OBJ                  48
#define BLINDNESS                   49
#define GOD                         50
#define DETECTOR                    51    /* peterm:  detector is an object */
                                          /* which notices the presense of */
                                          /* another object and is triggered */
                                          /* like buttons.  */
#define TRIGGER_MARKER              52    /* inserts an invisible, weightless */
                                          /* force into a player with a
                                           * specified string WHEN TRIGGERED. */
#define DEAD_OBJECT                 53
#define DRINK                       54
#define MARKER                      55    /* inserts an invisible, weightless
                                           * force into a player with a
                                           * specified string. */
#define HOLY_ALTAR                  56
#define PLAYER_CHANGER              57
#define BATTLEGROUND                58    /* battleground, by Andreas Vogl */
#define PEACEMAKER                  59    /* Object owned by a player which can
                                           * convert a monster into a peaceful
                                           * being incapable of attack.  */
#define GEM                         60
/*#define FIRECHEST                 61 */ /* FIRECHEST folded into FIREWALL */
#define FIREWALL                    62
/*#define ANVIL                     63 */
#define CHECK_INV                   64    /* b.t. thomas@nomad.astro.psu.edu */
#define MOOD_FLOOR                  65    /* b.t. thomas@nomad.astro.psu.edu
                                           * values of last_sp set how to
                                           * change:
                                           * 0 = furious, all monsters become
                                           *     aggressive
                                           * 1 = angry, all but friendly become
                                           *     aggressive
                                           * 2 = calm, all aggressive monsters
                                           *     calm down
                                           * 3 = sleep, all monsters fall asleep
                                           * 4 = charm, monsters become pets */
#define EXIT                        66
#define ENCOUNTER                   67
#define SHOP_FLOOR                  68
#define SHOP_MAT                    69
#define RING                        70
#define FLOOR                       71    /* Floor tile -> native layer 0 */
#define FLESH                       72    /* animal 'body parts' -b.t. */
#define INORGANIC                   73    /* metals, minerals, dragon scales */
#define SKILL_TOOL                  74    /* Allows the use of a skill */
#define LIGHTER                     75
/* The trap_part, wall, light_source, misc_object, monster, and spawn_generator
 * types are not used in any archetypes, and should perhaps be removed.
 */
/*#define TRAP_PART                 76 */ /* Needed by set traps skill -b.t. */
#define WALL                        77    /* Wall. Put it always in layer 1 if
                                           * not set is_floor */
/*#define LIGHT_SOURCE              78 */ /* torches, lamps, etc. */
#define MISC_OBJECT                 79    /* misc. objects are for objects
                                           * without a function in the engine.
                                           * Like statues, clocks, chairs...
                                           *  If perhaps we create a function
                                           * where we can sit on chairs, we
                                           * create a new type and remove all
                                           * chairs from here. */
#define MONSTER                     80    /* A real, living creature */
/*#define SPAWN_GENERATOR           81 */ /* Spawn point or monster generator */
#define LAMP                        82    /* Lamp */
#define DUPLICATOR                  83    /* Duplicator/multiplier object */
/*#define TOOL                      84 */ /* Tool for building objects */
#define SPELLBOOK                   85
/*#define BUILDFAC                  86 */ /* Facilities for building objects */
#define CLOAK                       87
/*#define CONE                      88 */
/*#define AURA                      89 */ /* Aura spell object */
#define SPINNER                     90
#define GATE                        91
#define BUTTON                      92
#define CF_HANDLE                   93
#define HOLE                        94
#define TRAPDOOR                    95
/*#define WORD_OF_RECALL            96 */
/*#define PARAIMAGE                 97 */
#define SIGN                        98
#define BOOTS                       99
#define GLOVES                      100
#define SPELL                       101
#define SPELL_EFFECT                102
#define CONVERTER                   103
#define BRACERS                     104
#define POISONING                   105
#define SAVEBED                     106
/*#define POISONCLOUD               107*/
/*#define FIREHOLES                 108*/
#define WAND                        109
/*#define ABILITY                   110*/
#define SCROLL                      111
#define DIRECTOR                    112
#define GIRDLE                      113
#define FORCE                       114
#define POTION_EFFECT               115   /* A force, holding the effect of a
                                           * potion */
#define EVENT_CONNECTOR             116   /* Lauwenmark: an invisible object
                                           * holding a plugin event hook */
#define CLOSE_CON                   121   /* Eneq(@csd.uu.se): Id for
                                           * close_container archetype. */
#define CONTAINER                   122
#define ARMOUR_IMPROVER             123
#define WEAPON_IMPROVER             124
/* unused: 125 - 129
 * type 125 was MONEY_CHANGER
 */
#define SKILLSCROLL                 130   /* can add a skill to player's
                                           * inventory -bt.*/
#define DEEP_SWAMP                  138
#define IDENTIFY_ALTAR              139
/*#define CANCELLATION              141*/ /* not used with new spell code */
#define SHOP_INVENTORY              150   /* Mark Wedel (mark@pyramid.com) Shop
                                           * inventories */
/*#define BALL_LIGHTNING            151*/ /* peterm:  ball lightning and color
                                           * spray */
/*#define SWARM_SPELL               153*/
#define RUNE                        154
#define TRAP                        155
#define POWER_CRYSTAL               156
#define CORPSE                      157
#define DISEASE                     158
#define SYMPTOM                     159
#define BUILDER                     160   /* Generic item builder, see subtypes
                                           * below */
#define MATERIAL                    161   /* Material for building */
#define OBJECT_TYPE_MAX             161   /* Update if you add new types */
/* END TYPE DEFINE */
/*@}*/