You are on page 1of 11

Roll Call Army List Program

WH40K Army Definition


File
Technical Reference

By John L. Martin
Table of Contents
Table of Contents.............................................................................................................................................2
Grant of License...............................................................................................................................................3
Documentation Conventions............................................................................................................................4
Army Definition File (.ADF)...........................................................................................................................5
[Army] Section.............................................................................................................................................6
[Category] section.......................................................................................................................................6
[UnitID] section............................................................................................................................................7
Example......................................................................................................................................................10
Grant of License
John L. Martin grants licensee the limited rights to possess and use the SOFTWARE, only under the terms and
conditions of this license. Licensee acknowledges its acceptance of this license by use or distribution of the
SOFTWARE.
No Warranty
THERE ARE NO WARRANTIES, EXPRESS, OR IMPLIED, INCLUDING BUT NOT LIMITED TO
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE FOR EITHER THIS
INSTRUCTION MANUAL OR FOR THE ROLL CALL PROGRAM (COLLECTIVELY, THE “SOFTWARE”)
Disclaimer
IN NO EVENT SHALL JOHN L. MARTIN OR IBBOARD BE LIABLE FOR ANY DAMAGE WHATSOEVER
INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR
SPECIAL DAMAGES, EVEN IF JOHN L. MARTIN OR IBBOARD HAVE BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
Copyright Notice
Copyright © 1998, John L. Martin, All rights reserved.
Modifications Copyright © 2004, IBBoard. All rights reserved.
John L. Martin and IBBoard recognize that Roll Call users may wish to circulate copies of the SOFTWARE to
others. Therefore, you may copy and distribute verbatim copies of the SOFTWARE as you receive it, provided you
conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all the notices
that refer to the copyright; and give recipients of the program the right to distribute a copy of this program. You
may charge a fee for the physical act of transferring a copy.
You may not modify, reverse engineer, decompile or disassemble the program.
Trademarks
Microsoft is a registered trademark and Word for Windows and Windows are trademarks of Microsoft Corporation.
Forehelp is a registered trademark of Forefront, Inc.. Warhammer and Games Workshop are registered trademarks
of Games Workshop, Inc.
Submissions
IBBoard encourages the submission of comments and suggestions concerning the SOFTWARE. All suggestions
will be given serious technical consideration. By submitting material, you are granting IBBoard the right, at his
discretion and without liability to you, to make any use of the material he deems appropriate.
Contacting the Original Author
You can contact John L. Martin as follows:
E-mail: jlmartin@nconnect.net
URL: www.nconnect.net/~jlmartin (website no longer available)
This publication was originally created using Microsoft Word for Windows 95, Version 7.0. The help file was
created using Forehelp version 2.95

Contacting the Modifier

You can contact IBBoard as follows:


Email: rollcall@ibboard.co.uk
URL: www.ibboard.co.uk or www.hiveworldterra.co.uk
This is revision 3 of the manual. It describes version 6.1 of Roll Call.
This publication was updated using OpenOffice.org v2.0.
Documentation Conventions
This manual uses the following typographic conventions.
Example of convention Description

bold Words you are instructed to type exactly as they appear. If you are instructed to type
CD\ROLLCALL, you should type all of the bold characters
exactly as shown.
This format will also be used to identify other actions such as pressing a button. You might be
instructed to press OK for example.
italic Placeholders for information that you must provide. For example, if you are instructed to type
unit name, you should type the actual unit's name instead of
the word shown in italic type.
Italic type also signals a new word. An explanation generally follows the italicized term or the
term will appear in the glossary. Italics are also occasionally
used for emphasis or book names.
ALL CAPITALS Words in all capital letters indicate directory names, file
names, and acronyms.
Some words used by the program also must specifically be in all capitals.
{driveletter:} Items inside braces are optional.
[Yes|No] Items enclosed in brackets separated by a vertical bar
indicate a choice between two or more items. You must
choose one of the items unless all of the items are also
enclosed in brackets.
File|Open Items separated by a vertical bar and not enclosed in brackets
signal a series of menu choices you are to make. The text
File|Open should be read as “Select File from the menu and
then select Open which is in the list of file menu choices.”
??? - Out of memory This font is used for error messages and computer responses.
 This symbol indicates typing continued from one line to the next in the book should be typed all
on one line into the computer.
ENTER Small capital letters are used to indicate the names of keys and key sequences.
Army Definition File (ADF) Acronyms or abbreviated phrases and symbols are usually
spelled out the first time they are used.
Version Numbers Features that were not present until a specific version of Roll
Call will be marked using a box in the margins like the one
shown here. The number is the first version of Roll Call in
which the feature was available.
Army Definition File (.ADF)
In order to avoid violating Games Workshop’s copyright on the information contained in their army
books. The Roll Call program manipulates data for a “Meta-Army” which is not copyrighted by Games
Workshop. By creating an Army Definition File from your copy of an army book, copyright
infringement remains your responsibility. I should warn you that technically creating an Army Definition
File would be a violation of U.S. Copyright law since you will be “reproducing the book, whole or in
part, without the permission of Games Workshop”. However, if you in the privacy of your own home
create an Army Definition File and you distribute this file to no other person, who is going to know?

Update: Games Workshop do actually allow Army Builder applications to be built, as long as they
conform to certain Intellectual Property rules. These rules can be found at
http://www.hiveworldterra.co.uk/Article/view_1.html

The purpose of an army definition file is to define what categories of troops an army may have, how
many of the army’s points can be in each category of troops, and what units are in each category. For the
purposes of convenience, a member of a category is called a unit even if the members of that category
might be individual characters or war machines such as cannons and chariots.

The Roll Call program must have at least one file with the extension “ADF” When the program
first begins it will prompt for the location of this file and thereafter look in the same directory for the file
and prompt only if the file cannot be found there. If more than one file is in the same directory. All
.ADF files in the directory will be read.

To use the Roll Call program, you must enter the data for some or all of the data from your army
book(s). You can use any text editor and this document describes in what format this file needs to be. If
the file is formatted incorrectly the Roll Call program may crash unexpectedly.

A r m y
C a t e g o r i e s C o n c e p t u a l
L e v e l

W a r O t h e r
C h a r a c t e Rr s e g i m e n t s
M a c h i n e Cs a t e g o r i e s

S p e a r - G r e a t O t h e r
G e n e r a l
m e n C a n n o n U n i t s

H e r o K n i g h t s

U n i t s C o n c e p t u a l L e v e l

Figure A
Definitions
32 bit number A number in the range from 0 to 2,147,483,647. Sometimes the specification may
allow the use of negative numbers which usually have special meaning.
16 bit number A number in the range from 0 to 32,768. Sometimes the specification may allow the
use of negative numbers which usually have special meaning.
Real number Any number with or without decimals.
The army definition file is divided into sections and each section has entries relative to
that section. The syntax of the army definition file is similar to that used in Windows INI [section]
files where each section has the format shown in Figure B. The order of the sections are key=entry
unimportant within the file and the order of the entries are not important within the 
section. In many cases an entry may be optional. An optional entry will be noted by the 
use of curly brackets { … } around the optional sections of the entry. For these entries a 
default value is used. The documentation will define a default value for a given entry Figure B
when one is appropriate.

Instructions on how each section is structured in given below.

[Army] Section
The army section has three entries:

Name The name entry contains the text that the program will use when referring to this army.

BitCodeID Each army must be given a unique 32 bit number to represent the army internally
within the program. Required numbers for the various Warhammer 40K armies are
given below:

Orks 1
Marines (All chapters) 2
Imperial Guard 4
Eldar 8
Dark Eldar 16
Chaos Marines 32
Tyranids 64
Witch Hunters/Sisters of Battle 128
Necrons 256
Heroes of the Imperium 512
Legion of the Damned 1024
Tau 2048
Kroot Mercenaries 4096
Daemon Hunters 8192

NeedsRCVersoion Old ADF files are backward compatible with newer versions of Roll Call. Newer
versions of Roll Call, however, may implement ADF features that make previous
versions of Roll Call unable to load a new ADF file. As you create ADF files, you
should specify a Roll Call version number that represents the earliest version able to
load a particular ADF. The number listed here is the earliest version in Major.Minor
format. If not present, the default is 0.0. This item is checked during load and ADF
files that are not compatible will create a warning message and be ignored.

UsesRetinue Some armies use a “retinue” system, which requires the purchase of rank and file troops
for the characters in the army. By placing the number 1 here, Roll Call treats this army
as a “retinue” army. Placing a zero here, tells Roll Call this is a traditional army list. If
not present, the default is 0. Consult the Roll Call manual for details on how retinue
armies are treated differently than traditional armies.

[Category] section
The category section defines each category of troops an army may have and what proportion of
their points can be spent in each category (as a percent of the total). All entries in this section are
formatted in one of two ways:

CategoryID = CategoryName, MinPercent, MaxPercent{, AllyCode}


CategoryID = CategoryName, AliasID

CategoryID This is a unique 32 bit number that distinguishes this category from the others within
the army. Other army definition files can have the same numbers, even if the armies are allies, but
within an army definition file, these ID’s must be unique.

MinPercent This number from 0 to 100 inclusive, gives the minimum amount of an army’s total
points that can be spent on units from this category.

MaxPercent This number from 0 to 100 inclusive, gives the maximum amount of an army’s total
points that can be spent on units from this category.

AllyCode Allies need to be handled as special cases within the program. When this field is
present, it identifies the category as an ally’s category as well as defining which armies can be allies.
The army BitCodeID s should be added together and the resulting number used to identify an allies
category. For a detailed explanation of how this field works, see the army definition file explanation on
page Error: Reference source not found. Note that only one category can have an AllyCode. (Not very
common in Warhammer 40,000)

AliasID This number gives the CategoryID number for which this category is an alias. Units
will be displayed in this category for creation purposes but their points will be charged against the aliased
category. Aliases cannot be nested.

[UnitID] section
An army definition file contains a number of sections all beginning with [Unit…] in which the
entries for a particular unit are given. Each entry within the unit section are explained below. Note that
the number given in ID as in Unit27 forms the unit ID.

ID and UnitID Each unit must be given a unique 32 bit non-zero positive number to distinguish this
unit from the others in the army. Other army definition files can have the same
numbers, even if the armies are allies, but within an army definition file, these ID
numbers must be unique.

Name = String
Name A unit’s name is what the program uses when referring to the unit. The name is the string from
immediately after the equal sign to the end of the line. This string can contain spaces
and punctuation as desired. Typical unit names are “Tactical Squad,” “Shoota Boyz,”
or “Whirlwind.”

Category = Number
Category This entry defines the category to which this unit belongs. The number given in the
entry is the same as the CategoryID used when defining the category in the [Category]
section.

{MinimumSize = Number}
MinimumSize The smallest size for the unit is given in this entry. For regiments this number is
usually five and when defining characters as units this number is one. Note that this
field is optional and has two possible default values. It will have the default value of
one when the MaximumSize field is one and a default value of five in all other cases.

MaximumSize = Number
MaximumSize The largest size for the unit is given in this entry. Where units do not have an upper
limit on size, use a value of -1 in this entry. For regiments this number will usually be
-1 and when defining characters as units this number is one.

UnitStat = Name, M, WS, BS, S, T, W, I, A, LD


UnitStat This entry gives the basic statistics for troops in the unit. On the line should be listed the name
of troop type (such as “Ork” or “Marine”). The name is assumed to end at the first
comma. The string should not be in quotes and is assumed to be from the equal sign
up to the first comma. A backslash (\) in the string means that the character
immediately following the backslash must be part of the string even if that character is
a comma. Note that this character will appear without the backslash. Two consecutive
backslashes can be used to include a single backslash in the string. After the name, in
a comma-delimited list, are the Warhammer statistics for the troop type.

All entries for M through LD must be integers. There are three special integers the will print
non-numbers. The first is -1 which will print a single dash “-“, -2 will leave a blank
entry, and numbers over 10 should be in the format CCDD where CC is the number of
dice and DD is the side of the dice. This is nice for random movement such as “2d6”
which would be entered as 206.

{MinNumber = Number}
MinNumber This entry lists the fewest number of times that this unit can be included in the army.
Ordinarily the taking of a troop type is optional and the number present would be zero.
In the case of a general, which must be in an army, the minimum number possible
would be one.
The default value for this entry is zero.

{MaxNumber = Number}
MaxNumber This entry lists the maximum number of times that this unit can be included in the
army. Ordinarily you can have as many units of a given type as you want and for this
case the number present would be -1. In the case of a general, which must be in an
army only once, the maximum number possible would be one.
The default value for this entry is -1.

{Save = Number}
Save This entry lists the basic save of the troops in the unit. Most often this is none (which is
represented by the number seven) but monsters and other troops types might have a
save below this.
The default value for this entry is 7.

{UseRestriction = UseCode, UnitIDList, …}


UseRestriction This entry lists the various use restrictions a unit may have. A unit may have multiple
use restrictions that are given by multiple code/IDList pairs. A UnitIDList can be a
single unit ID or, beginning in version 1.1, a list of unit IDs each separated by a vertical
bar. The meaning if the UseCodes are as follows:
N, UnitIDList In this case the army may have N of this unit for each unit in the
UnitIDList. Assume there are three X units and two Y units. Then
2,X|Y means you may have no more than 10 [2 * (3 + 2)] of this
unit while 2,X,2,Y means you may have no more than 6 [2 * 3] or
no more than 4 [2 * 2] of this unit.
-1, UnitIDList The army must have at least one unit listed in the UnitIDList to be
eligible to have this unit. Note that -1,X,-1,Y means the army must
have at least unit X AND one unit Y while -1,X|Y means the army
must have a unit X OR Y
-2. UnitIDList The army may not have any unit listed in the UnitIDList to be
eligible to have this unit. Note that -2,X,-2,Y is equivalent to -2,X|
Y with the exception that two entries produce two warning
messages.
-3, X This unit cannot be chosen. This unit is only used as a champion.
If X is 1 then the unit can have its own equipment, otherwise the
equipment will match that of the parent unit.
0, 0 There are no use restrictions on this unit.
The default value for this entry is 0,0

{ChampionIs = UnitID, UnitID, …}


ChampionIs This entry lists the UnitID’s of the unit that can be a champion for this unit. If this unit
has no champions, a UnitID of -1 should be listed. If this unit has more than one type
of champion a list can be given here.
The default value of this entry is -1.

{SpecialTextX = String}
SpecialText If the unit has any special text that should be printed on the unit description then the
string can be placed on this entry. All text after the equal sign to the end of the line is
used as the string. If more than one line is needed, this entry can be included more than
once. When there are multiple entries, each SpecialText entry will form a line of text.
Note also that each special text entry must be different using SpecialText1,
SpecialText2 for example. As long as each entry begins with “SpecialText” the strings
will be found.
This entry is optional, the default is an empty string.

{DesignTextX = String}
DesignText If the unit has any design text that should be printed on the unit description then the
string can be placed on this entry. All text after the equal sign to the end of the line is
used as the string. If more than one line is needed, this entry can be included more than
once. When there are multiple entries, each DesignText entry will form a line of text.
Note also that each special text entry must be different using DesignText1, DesignTex2t
for example. As long as each entry begins with “DesignText” the strings will be found.
This entry is optional, the default is an empty string.

EquipmentX = EquipmentID, Required, Name, Cost, ABCode, MuExGroup, {[Profile],} SaveAdj{,SpecialText}


EquipmentX = #MacroName
EquipmentX The equipment section lists the options available for the unit. Each item of equipment
is listed in its own entry so the section for a unit will probably have several Equipment
entries. Note also that each equipment entry must be different using EquipmentA,
EquipmentB for example. As long as each entry begins with “Equipment” the entries
will be found. The entry for equipment has several fields of its own detailed below.
EquipmentID This 32 bit number is a unique identifier for this piece of equipment.
All equipment must have a number and the numbers must be unique
within each Unit section. Care must be taken when using equipment
macros to make sure that EquipmentID’s remain unique. Also keep in
mind that the ID numbers must match between units and their
champions in order for champion units to handle equipment properly.

Required This flag tells the program if this particular item of equipment is
required for the unit and cannot be removed. Many archer units
already include the cost of a bow in the army list and this item cannot
be removed. To set an item as required, place the number one here.
If the item is an optional upgrade, place the number zero here.

Name This string is the name of the particular item of equipment. The string
is assumed to be from the first comma until the second comma not
proceeded by a backslash.

Cost This number is the per man cost of the equipment upgrade. Note that
it is possible to have negative costs as well as zero cost. A
particularly effective way of including basic equipment is to set the
Required flag and then set the cost to zero.

If the cost listed is preceded by an equal sign as in: =45, then this cost will be added to the unit
cost only once and is not multiplied by the unit size.

ABCode This number signifies what type of armor this piece of equipment is.
For equipment that is not armor, use zero.
'Shield' Armour 1 (e.g. Armour that can be
used along with other armour)
Standard Armour 2 (e.g. Power Armour)
Heavier Armour 4 (e.g. Terminator Armour)

MuExGroup The 32-bit non-zero entry, short for Mutual Exclusion Group, defines
which items of equipment are mutually exclusive when taken as
options for the unit. For example, a unit can only have one type of
mount so the file might list all equipment listings for mounts with the
MuExGroup number of one. This has the effect of excluding all other
entries from MuExGroup one when an item is already taken. Note
that MuExGroup numbers are unique within their section and other
unit sections can re-use group numbers. Caution should be taken,
however, when the equipment # macro is used.

[Profile] This optional section contains a profile that can be included on the
unit’s record when the unit has this item of equipment. Mounts for
example, have their own profiles that will be listed with the troop
profile. Note that this profile listing does not have a name as this is
taken from the Name field for the entry. It is also possible to have
partial profiles (as for war machines) by leaving the entries blank.
Note that the profile must be in square brackets and have the
following format: [M, WS, BS, S, T, W, I, A, LD].

SaveAdj Some items of equipment improve the save of the troopers. When an
item of equipment improves, the save value (not very common in
Warhammer 40,000) , the number should be listed here. When the
item of equipment does not affect the save, a zero should be placed in
this field.

SpecialText This optional section will list any special text that should be placed in
the notes section of the unit roster. This string is assumed to be all
text after the last comma to the end of the line. Each item of
equipment is allowed this one line of text that must not make the line
longer than 255 characters total. Longer lines will be truncated.

#MacroName Many times in the army definition file units will have the same
equipment lists. When this occurs, storage space can be conserved by
moving the Equipment= entries into their own section named
MacroName. A unit can then reference this list as if it were their own
by using the entry #MacroName instead of an actual equipment entry.
Care should be taken when using macros and MuEx Groups to avoid
inadvertently using the same group numbers

Example
[Army]
Name=Orks
BitCodeID=1

[Category]
1=HQ,0,100
2=Elites,0,100
3=Troops,0,100
4=Fast Attack,0,100
5=Heavy Support,0,100

[Unit1]
UnitID=1
Name=Warboss
Category=1
MinimumSize=1
MaximumSize=1
UnitStat=Warboss,6,5,2,5,4,3,4,4,9
MinNumber=1
MaxNumber=1
Save=6
TroopCost=60
SpecialTextC=HQ Choice
DesignTextA=May have 80pts of wargear
DesignTextB=Nobz for Nobz mob must be bought individually and renamed
EquipmentC=#NobWeapons
EquipmentD=#NobzWeapons
EquipmentZ=1,0,--Wargear--,0,0,0,0
EquipmentA=#NobWargear
EquipmentB=#Wargear

[Unit2]
UnitID=2
Name=Skarboyz
Category=2
MinimumSize=5
MaximumSize=20
UnitStat=Skarboy,6,4,2,4,4,1,2,2,7
MinNumber=0
MaxNumber=-1
Save=6
TroopCost=11
ChampionIs=1012
SpecialText=Elite Choice
DesignTextA=Up to 3 heavy weapons
EquipmentA=1,0,Shoota,0,0,1,0
EquipmentB=2,0,Slugga & choppa,0,0,1,0
EquipmentC=3,0,Mixed Shootas and Slugga & Choppa,0,0,1,0
EquipmentJ=#HvyWeapons

[NobWeapons]
EquipmentA=1,0,Slugga,1,0,1,0
EquipmentB=2,0,Choppa,2,0,1,0
EquipmentC=3,0,Power Claw,25,0,1,0
<etc>

You might also like