1Game Mode: sizeAdjustment.lst
2=============================
3
4The `sizeAdjustment.lst` is a part of the "game mode".
5
6`sizeAdjustment.lst` defines:
7
8* what size categories exist in the game mode, such as 'Small', 'Medium', and 'Large'.
9* what bonuses apply to each size category; i.e. small creatures having better Hide checks, or big creatures being able to carry more weight.
10* what penalties apply to each size category; i.e. small creatures having a reduced carrying capacity, or big creatures having to pay more for weapons and armour.
11
12The `sizeAdjustment.lst` files can be found in the `system/gameModes/<game_mode_name>/` directory for each game mode.
13
14## Structure of the `sizeAdjustment.lst` file
15
16Each creature size is identified by a `SIZENAME`.
17
18Tokens are added to the `SIZENAME` to indicate the in-game effects of the creature's size. The `SIZENUM` token is mandatory; all others are optional.
19
20A typical size definition, from `system/gameModes/35e/sizeAdjustment.lst`, looks like:
21
22    SIZENAME:S
23      →  ABB:S
24      →  DISPLAYNAME:Small
25      →  BONUS:ITEMCOST|TYPE=Ammunition,TYPE=Armor,TYPE=Shield,TYPE=Weapon|1
26    SIZENAME:S
27      →  BONUS:ITEMWEIGHT|TYPE=Ammunition,TYPE=Armor,TYPE=Shield,TYPE=Weapon|0.5
28      →  BONUS:ITEMWEIGHT|TYPE=Goods|0.25
29    SIZENAME:S
30      →  BONUS:ACVALUE|TYPE.Armor,TYPE.Shield|1
31      →  BONUS:COMBAT|AC|1|TYPE=Size
32      →  BONUS:COMBAT|TOHIT|1|TYPE=SIZE
33      →  BONUS:COMBAT|TOHIT.GRAPPLE|-5|TYPE=Size
34    SIZENAME:S
35      →  BONUS:ITEMCAPACITY|TYPE=Goods|0.25
36    SIZENAME:S
37      →  BONUS:SKILL|Hide|4|TYPE=SIZE
38    SIZENAME:S
39      →  BONUS:LOADMULT|TYPE=SIZE|0.25|PRELEGSGTEQ:4
40    SIZENAME:S
41      →  BONUS:STAT|STR|2|PREBASESIZELT:Tiny|PREVAREQ:BypassSizeMods,0
42      →  BONUS:STAT|STR|4|PREBASESIZELT:Small|PREVAREQ:BypassSizeMods,0
43    SIZENAME:S
44      →  BONUS:STAT|DEX|-2|PREBASESIZEEQ:Fine|PREVAREQ:BypassSizeMods,0
45      →  BONUS:STAT|DEX|-2|PREBASESIZELT:Tiny|PREVAREQ:BypassSizeMods,0
46      →  BONUS:STAT|DEX|-2|PREBASESIZELT:Small|PREVAREQ:BypassSizeMods,0
47    SIZENAME:S
48      →  SIZENUM:040
49
50
51----
52
53## Tags
54
55<h3 id="ABB">ABB</h3>
56
57**Optional:** A one letter abbreviation of the size name.
58
59#### Syntax
60
61`ABB:X`, where `X` is a single letter.
62
63#### Example
64
65`SIZENAME:Fine  →  ABB:F` sets the abbreviation for the `Fine` size to the letter `F`.
66
67#### Notes
68
69The `ABB` tag is implemented in [code/src/java/plugin/lsttokens/sizeadjustment/AbbToken.java](https://github.com/PCGen/pcgen/blob/master/code/src/java/plugin/lsttokens/sizeadjustment/AbbToken.java).
70
71------------------------------------------------------------------------
72
73<h3 id="ISDEFAULTSIZE">ISDEFAULTSIZE</h3>
74
75**Mandatory:** Marks which of the creature sizes is the default for the game mode.
76
77#### Syntax
78
79`SIZENAME:size_1 → ISDEFAULTSIZE:Y` indicates that `size_1` **is** the default size for the game mode.
80
81`SIZENAME:size_2 → ISDEFAULTSIZE:N` indicates that `size_2` **is not** the default size.
82
83#### Example
84
85`SIZENAME:Medium → ISDEFAULTSIZE:Y` makes `Medium` the default size for this game mode.
86
87
88#### Notes
89
90There must be one, and only one, size marked as the default size.
91
92- It is an error to have no size marked as the default size.
93- It is an error to have more than one default size.
94
95If the `ISDEFAULTSIZE` tag is missing for a particular `SIZENAME`, then  `ISDEFAULTSIZE:N` is assumed.
96
97------------------------------------------------------------------------
98
99<h3 id="SIZENAME">SIZENAME</h3>
100
101Identifies a creature size category.
102
103Each line of the `sizeAdjustment.lst` file **MUST** begin with a `SIZENAME` tag. Features are added to the category by adding sub-tags after the `SIZENAME`, such as `BONUS` tags.
104
105The same `SIZENAME` may appear on multiple lines. The tokens following the `SIZENAME` are appended to any tokens for the same `SIZENAME` on preceding lines.
106
107#### Status
108
109New in 5.10.1.
110
111#### Syntax
112
113`SIZENAME:size_name`, where `size_name` is a single letter, i.e. `S`, `M`, `L`. This is the current standard for all game modes included in PCGen.
114
115Alternately, `size_name` may be a single word such as `Small`, `Medium`, `Large`, etc.
116
117**Example:**
118
119`SIZENAME:F` defines a creature size named `F`. (This form is preferred.)
120
121`SIZENAME:Fine` defines a creature size `Fine`.
122
123----
124
125<h3 id="SIZENUM">SIZENUM</h3>
126
127**Mandatory:** Defines the sorting order for the size categories.
128
129#### Status
130
131New in 6.05.04.
132
133Before 6.05.04, the size order was inferred from the order of the `SIZENAME` tags in the `sizeAdjustment.lst` file. As of 6.05.04, the order is explicitly indicated using the `SIZENUM` tag.
134
135* [JIRA NEWTAG-480](https://pcgenorg.atlassian.net/browse/NEWTAG-480) / [GitHub PR #397](https://github.com/PCGen/pcgen/pull/397) - token parser changes.
136* [JIRA DATA-2507](https://pcgenorg.atlassian.net/browse/DATA-2507) / [GitHub PR #410](https://github.com/PCGen/pcgen/pull/410) - added `SIZENUM` tags to all the default game modes.
137
138#### Syntax:
139
140`SIZENAME:size_name  →  SIZENUM:size_number`
141
142`size_number` is an integer. Bigger numbers correspond to larger size categories.
143
144#### Example:
145
146The following code, included in the `35e` version of `sizeAdjustment.lst`, defines the ordering of the `35e` size categories:
147
148    SIZENAME:F	SIZENUM:010
149    SIZENAME:D	SIZENUM:020
150    SIZENAME:T	SIZENUM:030
151    SIZENAME:S	SIZENUM:040
152    SIZENAME:M	SIZENUM:050
153    SIZENAME:L	SIZENUM:060
154    SIZENAME:H	SIZENUM:070
155    SIZENAME:G	SIZENUM:080
156    SIZENAME:C	SIZENUM:090
157    SIZENAME:P	SIZENUM:100
158
159------------------------------------------------------------------------
160
161## Global BONUS tags which are useful in `sizeAdjustment.lst`
162
163All global `BONUS` tags may be used in `sizeAdjustment.lst`.
164
165Some useful tags include:
166
167* `BONUS:COMBAT|AC|1|TYPE=Size` - grant a +1 size AC bonus due to size.
168* `BONUS:COMBAT|TOHIT|1|Type=Size` - grant a +1 attack bonus due to size.
169* `BONUS:COMBAT|TOHIT.GRAPPLE|5|Type=Size` - grant a bonus on Grapple checks due to large size.
170* `BONUS:SKILL|Hide|4|TYPE=Size` - grant a bonus on Hide checks due to small size.
171
172----
173
174## BONUS tags specific to `sizeAdjustment.lst`
175
176The following `BONUS` tags function only in the `sizeAdjustment.lst` file.
177
178<h3 id="BONUSACVALUE">BONUS:ACVALUE</h3>
179
180Multiplies the AC bonus from a particular type of armour, such as `Armor` or `Shield`, based on the creature's size.
181
182#### Status
183
184New in 5.10.1.
185
186#### Syntax
187
188`BONUS:ACVALUE|TYPE:type_1,TYPE:type_2, ...|ac_multiplier`
189
190* `type_1`, `type_2`, ... may include armour types such as `TYPE:Armor` and `TYPE:Shield`.
191	* *[Ed: do things like `TYPE:Natural`, `TYPE:Dodge`, `TYPE:Sacred` ... also work?]*
192
193
194* `ac_multiplier` is the multiplier to AC for the given armour types.
195	* `0.5` would cause the creature to only receive half the normal AC bonus from the given armour types.
196	* `2` would cause the creature to gain twice the AC bonus from the given armour types.
197
198#### Examples
199
200* `BONUS:ACVALUE|TYPE.Armor,TYPE.Shield|0.5`
201
202  Halves the benefit from armour and shields.
203
204* `BONUS:ACVALUE|TYPE.Armor,TYPE.Shield|2`
205
206  Doubles the benefit from armour and shields.
207
208------------------------------------------------------------------------
209
210<h3 id="BONUSITEMCAPACITY">BONUS:ITEMCAPACITY</h3>
211
212Changes the "item carrying capacity" based on the size of the character.
213
214This is used to implement the DnD 3.5 rule for equipment made in different sizes for different creatures, such as backpacks and bed-rolls. These items  *"... weigh one-quarter this amount when made for Small characters. Containers for Small characters also **carry one-quarter the normal amount.**"* ([Refer to the d20 SRD.](http://www.d20srd.org/srd/equipment/goodsAndServices.htm#adventuringGear))
215
216
217
218#### Status
219
220New in 5.10.1
221
222#### Syntax
223
224`BONUS:ITEMCAPACITY|TYPE=item_type|capacity_multiplier`
225
226* `item_type` is a type of equipment from the data set's equipment files, i.e. the `35e` files `rsrd_equip_arms_and_armor.lst`, `rsrd_equip_general.lst`, and `rsrd_equip_magic_items.lst`. Such types might include:
227  * `Resizable` - for items which are [supposed to come in different sizes for different characters](http://www.d20srd.org/srd/equipment/goodsAndServices.htm#adventuringGear), like backpacks, blankets, bedrolls, and so on.
228  * `Goods` - seems to include the majority of things in the `rsrd_equip_general.lst`, which covers general [goods and services](http://www.d20srd.org/srd/equipment/goodsAndServices.htm#adventuringGear).
229
230* `capacity_multiplier` is a number.
231
232#### Examples
233
234* `BONUS:ITEMCAPACITY|TYPE=Resizable|0.25`
235
236  Reduces the carrying capacity of items of `TYPE=Resizable` to one quarter of the normal value.
237
238* `BONUS:ITEMCAPACITY|TYPE=Goods|2`
239
240  Increases the carrying capacity of `TYPE=Goods` to double the normal value.
241
242------------------------------------------------------------------------
243
244<h3 id="BONUSITEMCOST">BONUS:ITEMCOST</h3>
245
246Modifies the cost of items based on the item's size category, i.e. the size of the creature the item was made for.
247
248For example, in 3.5e, a large-sized weapon [costs twice as much](http://www.d20srd.org/srd/equipment/weapons.htm#cost) as a medium-sized weapon, and large-sized armour [costs twice as much](http://www.d20srd.org/srd/equipment/armor.htm#armorForUnusualCreatures) as medium-sized armour.
249
250#### Status
251
252New in 5.10.1
253
254#### Syntax
255
256`BONUS:ITEMCOST|TYPE=item_type_1,TYPE=item_type_2,...|cost_multiplier`
257
258* `item_type` is a type of equipment from the data set's equipment files, i.e. the `35e` files `rsrd_equip_arms_and_armor.lst`, `rsrd_equip_general.lst`, and `rsrd_equip_magic_items.lst`. Such types might include:
259	* `Armor`
260	* `Weapon`
261	* `Potion`
262	* Very specific types such as `Quarterstaff`.
263* `cost_multiplier` is a number.
264
265#### Examples
266
267* `BONUS:ITEMCOST|TYPE=Weapon|0.5`
268
269  Halves the cost of weapons.
270
271* `BONUS:ITEMCOST|TYPE=Weapon,TYPE=Armor|2`
272
273  Doubles the cost of weapons and armour.
274
275* `BONUS:ITEMCOST|TYPE=Scrolls,TYPE=Potions|1`
276
277  Leaves the cost of scrolls and potions un-modified.
278
279* `BONUS:ITEMCOST|TYPE=Alchemical,TYPE=Liquid,TYPE=Clothing,TYPE=Food|2`
280
281  Doubles the costs of all items of type Alchemical, Liquid, Clothing, or Food.
282
283------------------------------------------------------------------------
284
285<h3 id="BONUSITEMWEIGHT">BONUS:ITEMWEIGHT</h3>
286
287Modifies the weight of items based on the item's size category, i.e. the size of the creature the item was made for.
288
289For example, in 3.5e, armour for small-size creatures [weighs half as much](http://www.d20srd.org/srd/equipment/armor.htm#armorForUnusualCreatures) as armour for medium-sized creatures.
290
291#### Status
292
293New in 5.10.1.
294
295#### Syntax
296
297`BONUS:ITEMWEIGHT|TYPE=item_type_1,TYPE=item_type_2,...|weight_multiplier`
298
299* `item_type` is a type of equipment from the data set's equipment files, as per `BONUS:ITEMCOST` above.
300* `weight_multiplier` is a number.
301
302#### Example
303
304* `ITEMWEIGHT|TYPE=Armor|2`
305
306  Doubles the weight of armour made for a creature of this size.
307
308* `ITEMWEIGHT|TYPE=Resizable|0.25`
309
310  Reduces the weight of `Resiable` items, such as backpacks and bedrolls, to one-quarter the normal value.
311
312------------------------------------------------------------------------
313
314<h3 id="BONUSLOADMULT">BONUS:LOADMULT</h3>
315
316Adds to the `SIZEMULT` value as defined in the `load.lst` game mode file.
317
318Mostly, the rules for "Large creatures can carry twice as much weight" [and so on](http://www.d20srd.org/srd/carryingCapacity.htm#biggerandSmallerCreatures) are implemented in `load.lst`. The `BONUS:LOADMULT` tag is used to implement rules for creatures with four legs having greater load-carrying capacity.
319
320#### Status
321
322New in 5.10.1
323
324#### Syntax
325
326`BONUS:LOADMULT|TYPE=SIZE|sizemult_modifier`
327
328* `sizemult_modifier` is a number. This number is added to the `SIZEMULT` in the `load.lst` file to determine the "effective" carrying capacity multiplier, relative to a normal sized creature.
329
330##### Examples
331
332* `SIZENAME:H  →  BONUS:LOADMULT|TYPE=SIZE|2`
333
334  Increases the creature's carrying capacity by one multiple of the normal carrying capacity. This adds with the multiplier already defined for the creature's size category, in `load.lst`.
335
336  For example, in DnD 3.5e, a huge-size creature can already carry four times the load of a medium-size creature. This is defined by the code `SIZEMULT:H|4` in `load.lst`.
337
338  The above `BONUS:LOADMULT|...|2` increases this by a further two multiples of the medium-size creature's carrying capacity, to a total of six times.
339
340* `SIZENAME:H  →  BONUS:LOADMULT|TYPE=SIZE|2|PRELEGSGTEQ:4`
341
342  Like the above, but will only apply if the creature has at least four legs.
343