• Tutorials

  • Home
  • Annotated Races Database

    // Race database file
    // The line above **must** be the first line of the races file!!! "// Race database file"
    //
    // name (text)
    //	Names should not conflict with any of the names in the
    //	baseclass database, class database, items database, spells
    //	database, or abilities database, all baseclasses start
    //	with a lower case letter and classes with an upper case letter.
    //	eg:		name = Human
    

    //
    // wieght (equation or integer)
    //	Keyword weight lists the weight in pounds of the character
    //	eg:		weight = 6d10+100+40*Male
    

    //
    // height (equation or integer)
    //	Keyword height lists the height in inches of the character
    //	eg:		height = 2d10+59+1*Male
    

    //
    // age (equation or integer)
    //	Keyword age is the character's starting age
    //	eg:		age = 1d10+80+1*Male
    

    //
    // maxage (equation or integer)
    //	Keyword maxage is the maximum age that the character can reach
    //	eg:		maxage = 1d100 + 450
    

    //
    // BaseMovement (integer)
    //	BaseMovement is the distance a character of this race can
    //	move during combat while unencumbered.
    //	eg:		BaseMovement = 6
    

    //
    // AbilityRequirement (ability name, min/max)
    //	AbilityRequirement lists the ability name and the
    //	minimum and maximum numbers for the ability.
    //	One ability per instance of hte keyword.
    //	eg:		AbilityRequirement = Strength 8/18(99)
    

    //
    // AllowedMultiClass (class name)
    //	AllowedMultiClass lists the class name for each of the
    //	allowed multi-classes for the race.
    //	One multi-class per instance of the keyword.
    //	eg:		AllowedMultiClass = Fighter/Thief
    

    //
    // Special Ability (special ability name)
    //	Each Special Ability corresponds to the Special Ability
    //	database and list the name and parameter.
    //	One Special Ability per instance of the keyword, which
    //	may be listed multiple times.
    //	eg:		Special Ability = race_Infravision,60
    

    //
    // ChangeClass (yes/no)
    //	The ChangeClass keyword determines if a character
    //	of this race may change classes.
    //	eg:		//ChangeClass = no
    

    //
    // DwarfResistance (yes/no)
    //	Determines if the character of this race gets the Dwarf Resistance adjustments.
    //	Adjustments are to AC and HAC0 against monsters that have the penalty
    //	of Dwarf AC and/or Dwarf THAC0
    //	Cumulative with GnomeResistance
    //	eg:		DwarfResistance = yes
    

    //
    // GnomeResistance (yes/no)
    //	Determines if the character of this race gets the Gnome Resistance adjustments.
    //	Adjustments are to AC and HAC0 against monsters that have the penalty
    //	of Gnome AC and/or Gnome THAC0
    //	Cumulative with DwarfResistance
    //	eg:		GnomeResistance = no
    

    //
    // FindSecretDoor (integer)
    //	This keyword determines the chance of success of
    //	finding a secret door that a character of this
    //	race has.
    //	Values are the number needed for a 6-sided die
    //	eg:		FindSecretDoor = 0
    

    //
    // FindSecretDoorSearching (integer)
    //	This keyword determines the chance of success of
    //	finding a secret door that a character of this
    //	race has while searching.
    //	Values are the number needed for a 6-sided die
    //	eg:		FindSecretDoorSearching = 0
    

    //
    // Skill (text)
    // Skills consist of the skill name and the score
    //	Eg:	Skill = DetectGrade,75
    

    //
    // SkillAdjAbility (skill name,ability name, mod, num1-num25)
    //	SkillAdjAbility allows modification of a skill based upon
    //	an ability. Name, ability, type of modifier, score
    //	modifier for each of the 25 ability scores
    //	eg:		SkillAdjAbility = Read,Intelligence,%,0,0,0,0,0,0,0,0,85,90,95,100,100,100,100,100,105,110,115,115,115,115,115,115,115
    

    //
    // SkillAdjRace (skill name, race name, mod, value)
    //	SkillAdjRace allows modification of skills per each
    //	race, by listing the name of the skill, name of the
    //	race, percentage sign and number to modify it by
    //	eg:		SkillAdjRace = MaxLevel$SYS$,Half-Elf,\=,5
    

    //
    //	*****Notes*****
    // Adjustments are of the form:
    //    +/-n*(characteristic-k)/d
    // For example to adjust, say, height.  Any of these are legal and equivalent.
    //		height  =  +1*(Level-0)/1  ; Means (+1*(level-0))/1
    //		height  =   1*(Level-0)/1
    //		height  =   1*level/1
    //		height  =   level/1
    //		height  =   1*level
    //		height  =   level
    // Division throws remainder away.  +1/2 = 0   -1/2 = 0
    

    //
    // To suppress a race name at time of Character Creation, remove the "//" from:
    // // Special Ability = class_RaceSuppress,"Y"
    // in each Race as desired.
    

    
    \(BEGIN)
    name = Dwarf									// race's name, must be unique
    weight = 4d9+100+((30+1d4)*Male)				// uses dice plus format (see above)
    height = 2d5+40+(2d2*Male)						// uses dice plus format (see above)
    age = 5d6+40									// uses dice plus format (see above)
    maxage = 2d100+250								// uses dice plus format (see above)
    BaseMovement = 6								// integer for unmodified, unencumbered movement
    AbilityRequirement = Strength 8/18(99)			// ability names as from the ability
    AbilityRequirement = Intelligence 3/18			// database
    AbilityRequirement = Wisdom 3/18				// first value is minimum
    AbilityRequirement = Dexterity 3/17				// second value is maximum
    AbilityRequirement = Constitution 11/19			// value in parens is exceptional
    AbilityRequirement = Charisma 3/16				// strength
    AllowedMultiClass = Fighter/Thief				// 
    Special Ability = race_ShortSaveBonus,12		// first term is name of SA, second term is value
    ChangeClass = no								// can the race change classes?
    DwarfResistance = yes							// yes gives resistance against monsters with the penalties Dwarf AC and Dwarf THAC0 and is cumulative with GnomeResistance
    GnomeResistance = no							// yes gives resistance against monsters with the penalties Gnome AC and Gnome THAC0 and is cumulative with DwarfResistance
    FindSecretDoor = 0								// chance out of six of finding secret door
    FindSecretDoorSearching = 1						// cahnce out of six of finding secret door while searching
    Skill = DetectGrade,75							// name of skill followed by base value
    Skill = DetectApproxDepth,50					// any name and any base value
    Skill = Infravision,60							// may be used
    Skill = DetectNewConstruction,75				// 
    Skill = DetectSliding,67						// 
    Skill = MaxLevel$SYS$,40						// special named skill that allows designer to set a maximum class level
    SkillAdjAbility = MaxLevel$SYS$,Strength,+,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2
    // first term is the name of the skill to modify, second term is the abilty to use to control modification of skill - engine expects one of the six ability names, third value tells what to do with each of the following values, integer values that correspond one to each ability score in order from 1 to 25
    SkillAdjRace = OpenLocks,Dwarf,%,110			// first term is the name of the skill to adjust, second term is the name of the race - one which must appear in the race database, third term is the way that the following integer value will modify the skill
    SkillAdjRace = FindTraps,Dwarf,%,115			// race adjustments do not need to be in the race database
    SkillAdjRace = ClimbWalls,Dwarf,%,90			// 
    SkillAdjRace = ReadLanguages,Dwarf,%,95			// 
    // Special Ability = race_RaceSuppress,"Y"		// if uncommented, race will not be available to player as a choice to player
    \(END)
    
    // NPC and monster races
    
    \(BEGIN)
    name = Robot									// races are now completely defined
    height = 3d12+48								// in this database, so you can have
    weight = 4d50+200								// robots, munchkins, Canadians or
    age = 5d6										// anything else you can think of
    maxage = 5d100+1000								// 
    BaseMovement = 15								// 
    AbilityRequirement = Strength 1/25				// exceptional strength is only used if
    AbilityRequirement = Intelligence 1/25			// STR is 18
    AbilityRequirement = Wisdom 1/10				// 
    AbilityRequirement = Dexterity 1/25				// 
    AbilityRequirement = Constitution 10/25			// 
    AbilityRequirement = Charisma 1/15				// 
    AllowedMultiClass = Fighter/Magic User			// each multi-class must be listed
    AllowedMultiClass = Fighter/Thief				// in its own line
    AllowedMultiClass = Fighter/Magic User/Thief	// 
    AllowedMultiClass = Magic User/Thief			// 
    Special Ability = race_Robot					// while only one SA is shown in this example, you may use as many as you need
    ChangeClass = no								// 
    DwarfResistance = no							// 
    GnomeResistance = no							// 
    FindSecretDoor = 1								// 
    FindSecretDoorSearching = 2						// 
    Skill = Infravision,60							// all skills may be checked in game by
    Skill = SleepResistant,10						// Who Tries event and scripts
    Skill = MaxLevel$SYS$,40						// 
    SkillAdjAbility = MaxLevel$SYS$,Strength,+,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9
    // skills to be modified may be in the race, baseclass or class databases
    SkillAdjAbility = MageLevelCaps,Intelligene,+,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9
    // skills to be adjusted need not exist at time of
    SkillAdjBaseclass = MaxLevel$SYS$,fighter,\=,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
    // first term is the skill name, second term is the name of the baseclass - see the baseclass database,third term is what to do - an equal must be proceeded by a backslash
    SkillAdjBaseclass = MageLevelCaps,magicUser,\=,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
    // numbers are one each for the 40 possible levels
    SkillAdjRace = PickPockets,Robot,%,105			// 
    SkillAdjRace = OpenLocks,Robot,%,95				// 
    SkillAdjRace = MoveSilent,Robot,%,105			// 
    SkillAdjRace = HideInShadows,Robot,%,110		// 
    SkillAdjRace = HearNoise,Robot,%,105			// 
    Special Ability = race_RaceSuppress,"Y"			// you need not have all SAs listed together, also this line means that the player will not have this race to choose from
    \(END)