• Tutorials

  • Home
  • Text Monster Database

    Total validation is performed when reading this data. Nothing you do can cause the program to crash. It may spit error messages and quit for lack of something decent to do but it will not crash or do unexpected things. It shouldn't anyway. If it does, please let us know.

    The first item has the name "template" and will be ignored. You can use it as a 'template'. Copy it to the bottom of the file and edit the copy to add your item to the database.

    Each line is of the form name = value (value may be omitted) Eg:

    		Special Ability = 
    This line will be interpreted as setting 'Special Ability' to the empty string. This is commonly the default so in many cases it is the same as omitting the line entirely.

    White space is a bit important. Because names and values can contain blanks. So the rule is....leading and trailing whitespace are ignored. So, for example:

    		attack bonus         =     3         
    		attack bonus=3
    are equivalent. But,
    		attack    bonus = 3
    		attack bonus = 3
    are different.

    Lines starting with two slashes are comment lines.

    Attribute names are case-insensitive.

    		Name = Wimpy Axe
    		namE = Wimpy Axe
    		NAME = Wimpy Axe
    are equivalent.

    Text values retain their case. Values with enumerated possibilities are case-insensitive. Eg:

    		baseclass = PaLaDiN     + FiGhTeR+ThIeF

    File names can use the UNIX syntax with slashes because the backslash is used to escape special characters and it gets ugly to put double backslashes everywhere. If you like to use backslashes you may. We will accept either. Even mixed in a single filename. Eg:

    		C:/UAF\\src\\guild of ravens/release1/beta\\art/barkeep.bmp

    Item definitions are delimited by \(BEGIN) ........ \(END) which must start in column 1.

    ************ Now for the interesting part ***********

    Each monster is defined by the following fields.

    Name - text, required - monster record ignored if missing or blank. Each monster must have a uniue name. You may add a qualifier to a name to make it unique. For example:

    		Kobold
    		Kobold|Mean
    		Kobold|Kind
    The qualifier is only used when editing a design. The qualifier is discarded when the binary files for the design are created. But the unique name is necessary during the design stage to allow unambiguous references to the monsters. During gameplay they are identified by a binary integer 'key' so there is no confusion between the three Kobalds.
    default - none. Missing name will cause entire monster to be skipped.
    eg:
    		name = blue legged pussycat

    Icon - icon image file used during combat, or "default", or "none". A typical combat icon is 1x1 with 2 48x48 pixel frames. Both frames should face to the right and be on the same row. The left frame will be the 'ready' pose, and the right will be the 'attack' pose. Comma-separated text format: filename,delay,num frames, frame width, frame height, style, filename can be blank to use DEFAULT or "none", delay in millisecs where 1 sec=1000 ms (should be 0 for monsters), Num frames is total frames in image. Width is pixel width of single frame in image, should be 48 for monsters. Height is pixel height, should be 48 for monsters. Style is animation style, should be 0 for monsters.The only values that actually change should be filename and num frames.
    default - DEFAULT
    eg:

    		icon = icon_kobold.png,0,2,48,48,0

    Hit Sound File - text, WAV file played when monster hits opponent, or Deault, or None. default - DEFAULT
    eg:

    		hit sound = sound_Hit.wav

    Miss Sound File - text, WAV file played when monster misses opponent, or default, or None. default - DEFAULT
    eg:

    		miss sound = DEFAULT

    Move Sound File -text, WAV file played when monster moves, or default, or None.
    default - DEFAULT
    eg:

    		move sound = DEFAULT

    Death Sound File - text, WAV file played when monster dies, or default, or None.
    default - DEFAULT
    eg:

    		death sound = DEFAULT

    Intelligence - integer in range of 0 to 25
    default - 0
    eg:

    		intelligence = 10

    Armor class - integer.
    default - 0
    eg:

    		armor class = -1

    Movement rate - integer, maximum unmodified character move rate is 12.
    default - 1
    eg:

    		movement rate = 3

    Hit dice - real number of dice.
    default - 2.71828
    eg:

    		hit dice = 2

    Hit dice bonus - integer.
    default - 0
    eg:

    		hit dice bonus = 2

    Treat HD as hit points - yes or no. If no, the 'Hit Dice' value is treated as actual hitpoints value instead of how many dice to roll to determine hitpoints.
    default - yes
    eg:

    		treat HD as hit points = true

    THACO - integer representing 'to hit armor class 0'.
    default - 10
    eg:

    		THAC0 = 14

    Magic Resistance - integer.
    default - 0
    eg:

    		magic resistance = 3

    Size - small, medium, or large.
    default - small
    eg:

    		size = medium

    Morale - integer.
    default - 0
    eg:

    		morale = 3

    Experience point value - integer, representing value of XP to party when defeated in combat.
    default - 0
    eg:

    		experience point value = 20

    Special Ability - names of Special Abilities (consult the special ability database in specialAbilties.txt) Note that these are cumulative and should be listed one to a line.
    default - none
    eg:

    		Special Ability = SA_Bless
    		Special Ability = monsterPoisonousBite

    Class - compared to classes permitted for each item to determine if an item can be readied by this monster, compared to legal classes from Class database. Saving throws will be assigned based upon this designation as well.
    default - Fighter
    eg:

    		Class = Fighter

    Form - combinable - none, mammal, animal, snake, giant, large (even if icon is 1x1).
    default - mammal
    eg:

    		form = animal + giant + snake

    Penalty - combinable - none, DwarfAC, GnomeAC, DwarfTHACO, GnomeTHACO, RangerDmg.
    default - none
    eg:

    		penalty = dwarfac + rangerdmg

    Immunity - combinable - none, poison, death magic, confusion, vorpal wpn.
    default - none
    eg:

    		immunity = confusion + poison

    Misc Options - combinable - none, can be held/charmed, affected by dispel evil.
    default = none
    eg:

    		misc options = affected by dispel evil

    Item - text, name of item that is added to monster's inventory. Add multiple items by using multiple 'item = ' lines.
    default - none
    eg:

    		item = Long Sword

    Attack - text, attack dice. Attack dice formatted as: dice sides,nbr dice,bonus per roll, message the attack message is limited to 20 characters. Add multiple attacks by using multiple 'attack = ' lines.
    default - none
    eg:

    		Attack = 4,1,0,attacks

    Undead - text, the undead type. Choose one of: none, Skeleton, Zombie, Ghoul, Shadow, Wight, Ghast, Wraith, Mummy, Spectre, Vampire, Ghost, Lich, Special.
    default - none
    eg:

    		Undead = Skeleton


    Example:
    \(BEGIN)
    name = Azer
    icon file = icon_Azer.png,0,2,48,48,0,1,0
    miss sound = sound_Miss.wav
    hit sound = sound_Hit.wav
    move sound = sound_CharMove.wav
    death sound = sound_CharDeath.wav
    intelligence = 9
    armor class = 2
    movement rate = 12
    hit dice = 3.000000
    treat HD as hit points = yes
    hit dice bonus = 2
    THAC0 = 17
    magic resistance = 0
    size = medium
    morale = 45
    experience point value = 185
    Special Ability = monsterLevel,4
    Special Ability = monster_ElementalImmunity,fire
    Special Ability = monster_ElementalVulnerability,cold
    Special Ability = Summoned,plane
    Class = Fighter
    form = none
    penalty = none
    immunity = none
    Misc Options = can be held/charmed + none
    item = Azer Mallet
    attack = 4,1,0,attacks,
    Undead = none
    \(END)