Atrinik Server  4.0


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 apply (sign) or the player triggering a button/handle/etc (magic mouth).

Type defined by:


Attribute Field Description
action notification_action Action to execute when the notification is triggered - either a keybinding macro (starting with a question mark, for example, ?HELP), or a command beginning with a slash.
activate by flying FLAG_FLY_ON If set, the player gets the message when flying (=levitating) ontop of the object. Usually this should be set together with walk_on.
activate by walking FLAG_WALK_ON If set, the player gets the message when walking ontop of the object. This is the typical configuration for a magic mouth: The player walks through a dungeon and suddenly he gets a message. Use this to create some roleplay atmosphere, and to inform the player about possible dangers or secrets.
adjacent direction FLAG_SPLITTING If direction is set and this is set as well, two adjacent directions will be considered instead of just the one direction.
align obj::align X align of the object on the map.
alpha obj::alpha Alpha value of the object.
anim speed obj::anim_speed How fast to play this animation.
animation obj::animation_id The animation-name defines what animation is displayed for this object in-game. Note that a set animation will overrule the face.
block view FLAG_BLOCKSVIEW If an item is set to block view, players (and monsters) cannot see beyond it unless they cross it or manage to stand on top of it.
connection connection value When a connection value is set, the message will be printed whenever the connection is triggered. This should be used in combination with <invisible> enabled and <activate by walking/flying> disabled. If activating your magic mouth this way, the message will not only be printed to one player, but all players on the current map.
counter liv::food

If a counter value is set (greater than zero), the sign/magic mouth can be applied (printing the message) only that many times. For signs this really shouldn't be used, while for magic mouths it is extremely helpful. Monsters walking over the magic mouth do not decrease the counter.

Often, you might want to have a message displayed only once. For example: The player enters your map and you put a magic mouth to tell him about the monsters and how dangerous they look and all. Later, when all the monsters are killed and the player leaves the map, displaying the same message a second time would be silly. <counter> 1 does a perfect job in such cases. Otherwise set <counter> zero/unset for infinite use (that is the default).

cursed FLAG_CURSED The item is cursed. This object can't be removed when wielded or worn (without uncursing it). Remove curse will remove this flag.
damned FLAG_DAMNED Stronger form of curse. Item can't be removed when wielded or worn. Remove damnation will remove this flag.
delay notification_delay Time in milliseconds that the notification will stay visible. About 5 seconds before the time runs out, the notification will start fading out (thus, the client forces the delay to be at least 5 seconds, even if you use a smaller value). The default delay is 30 seconds.
direction obj::direction The object's direction.
direction based drawing FLAG_DRAW_DIRECTION If enabled, the object will be shown depending on its direction and player's position. Usually used by wall decoration so the decoration doesn't appear from both sides of the wall.
glow radius obj::glow_radius If <glow radius> is set to a value greater than zero, the object appears lit up on dark maps. <glow radius> can be a value between 0 and 4, the higher, the more light does the object emit.
height obj::z Adjusts Y position of the object as it appears on the map.
horizontal zoom obj::zoom_x How much to horizontally zoom the object on the map.
identified FLAG_IDENTIFIED If an item is identified, the player has full knowledge about it.
ignore connection push FLAG_CONNECT_NO_PUSH If set, connection triggers that were done because something (such as a button being pressed) was pushed will be ignored.
ignore connection release FLAG_CONNECT_NO_RELEASE If set, connection triggers that were done because something (such as a button being unpressed) was released will be ignored.
image obj::face The image name defines what image is displayed for this object in-game.
inv. system object FLAG_SYS_OBJECT

Marks an object as system object. System objects are ALWAYS invisible and hidden from the players.

System objects are put in layer 0.

invisible FLAG_IS_INVISIBLE Generally makes the object invisible. Invisible objects will be shown if the player has "see invisible" (from an item). To hide objects totally from detection, use "sys_object".
is animated FLAG_ANIMATE

If set, the object is animated and animation is used.

Note: Some special objects will use an animation NOT as animation but as frame list. Examples are buttons (which frames are changed by the object status of the button). IS_TURNABLE will enable direction turning for some object types. These flags are all system related. Be VERY careful when changing them.

is turnable FLAG_IS_TURNABLE System flag. Object can be turned into directions.
layer obj::layer This is the map layer the object will put in. The selected layer will affect where and how this object is shown on the client side. Layer 0 is reserved for sys_object type objects and will NEVER be shown on the client side. Layer 1 is for floor objects and layer 2 for floor masks. Layer 3 and 4 are for items on the ground. Layer 5 is for walls, layer 6 is reserved for players and layer 7 is for spell effects and high flying/visible objects like arrows.
magical FLAG_IS_MAGICAL If set, this object counts as "magical". Detect magic or identify will show this flag and the player will see a small blue M in the client's inventory part.
match = having obj::last_sp Enabled means having that object is a match. Disabled means not having that object is a match.
match = slaying field liv::sp Enabled means key text is compared to the slaying field of an object and NOT to the name.
match arch name obj::race This string specifies the object we are looking for: We have a match if the player does/don't carry an object of archetype <match arch name>.
match key string obj::slaying This string specifies the object we are looking for: We have a match if the player does/don't carry a key object or a mark with identical <key string>. This string is compared to the name of an object. If the "match = slaying field" is set, the text is compared to the slaying field of the object we search for. This can make sense if we really want avoid any problems with user set names of objects.
match type liv::hp This value specifies the object we are looking for: We have a match if the player does/don't carry an object that is of type <match type>.
material obj::material_real

The material defines the exact material of which the object consists. It is much more specific than <material class>, however only one material can be selected, not multiple.

<material> is not required to be set, it can be left 'undefined'.

material class obj::material This bitmask-value informs the player of which basic material(s) the object consists. Material class does also affect how likely the object can be destroyed by hazardous spell-effects, like firestorm.
message notification_message Notification message to show below the map name.
message obj::msg This text will be displayed to the player.
name obj::name This is the name of the object, displayed to the player.
no spells FLAG_NO_MAGIC If enabled, it is impossible for players to use spells on that spot.
no teleport FLAG_NO_TELEPORT Marks an object as no teleport object. A no teleport object can't be teleported by teleporter except if the object is inside the inventory of another object which can be teleported.
non-pickable FLAG_NO_PICK If set, the object cannot be picked up (neither by players nor monsters).
number obj::nrof This value determines the number of objects in one stack (for example: 100 goldcoins => "number = 100"). You should set this at least to one, for any pickable object - otherwise it won't be mergeable into a stack.
one drop FLAG_ONE_DROP If this flag is set for an item inside monster's quest_container with the quest being quest item type, the player will only be able to get this item once.
permanent cursed FLAG_PERM_CURSED The item is permanently cursed. If this flag is set, applying or unapplying it will set "cursed 1" again. This flag can't be removed by remove curse.
permanent damned FLAG_PERM_DAMNED The item is permanently damned. If this flag is set, applying or unapplying it will set "damned 1" again. This flag can't be removed by remove damnation.
player only FLAG_PLAYER_ONLY If set, only players can enter the tile the object with this flag is on.
reflect missiles FLAG_REFL_MISSILE Object will reflect missiles.
reflect spells FLAG_REFL_SPELL Object will reflect spells.
rotate obj::rotate Rotation value of the object in degrees.
shortcut notification_shortcut Keybinding macro that will be temporarily used for the notification - for example, one could use ?CONSOLE to make the enter key (default) execute the notification action - until the notification disappears (fade out, or dismissed by actually triggering its action).
sound effect obj::title Optional sound effect to play when the sign is read (or triggered, in case of magic mouths).
stackable FLAG_CAN_STACK

If set, the item can be stacked. Careful, don't use on rings or other applyable items, it will lead to side effects.

Missiles are designed to be used as stacks for example.

start speed obj::speed_left

When an active object (with 'speed' being non-zero) is put on a map, this value is used as counter. Every 'tick', 'speed' (if negative, value is turned positive before) is added to this value - if it is bigger than 0 the object 'will do something' and this counter is decreased with -1.0.

By default a normal object will be put on the map with start speed 0. It 'will do something' with the next coming 'tick'. Setting this value to -1.0 will put it on map but wait one full 'lifetime' round until it does something.

A 'fire object' should be put on map with start speed 0 - it should try to burn something in the moment it comes in the game. A bomb for example should be put with speed -1.0 on the map - it will stay then on map until the bomb becomes active - it explodes.

The 'lifetime' round is determinated by speed. A speed of 1.0 will give a 'lifetime' round of 1 tick - a speed of 0.01 100 ticks.

Special case: A negative speed value will add to start speed a random value between 0.0 to 0.9 . So, a speed of -0.1 with a start speed of -1.0 will result in speed 0.1 and start speed between -1.0 and -0.1. This is useful to let a row of same objects act in different tick ranges.

sub layer obj::sub_layer Extension of the layer attribute. If you have an object with "layer 2 sub_layer 1" and an object with "layer 2", the former object will be rendered immediately following the latter object, thus allowing double floor masks, convincing bridges and the like to be created.
sub type obj::sub_type

This important value is used to define "sub types" for objects of the same object type. Examples are weapons, which are all from type WEAPON but can be different sub types like slash, cleave, two-handed, polearms and so on. This value goes to the client too.

Warning: Not all objects have a sub type and changing it without care can corrupt server AND/OR the clients. Normally this is not a subject to change outside arch definition.

unpaid FLAG_UNPAID An <unpaid> item cannot be used unless the player carried it over a shop mat, paying the demanded price. Setting this flag makes sense only for items inside shops.
use book GUI FLAG_XRAYS If set, instead of printing the sign's contents to text window, use the book GUI to show the message, using any fancy formatting books allow.
value obj::value Change an object's value.
vertical zoom obj::zoom_y How much to vertically zoom the object on the map.
weight obj::weight This value defines the object's weight in gram (1000g is 1kg). Objects with zero weight are not pickable for players. Still, set the "non-pickable" flag for explicitly non-pickable objects.
zoom obj::zoom How much to zoom the object on the map.