-
Notifications
You must be signed in to change notification settings - Fork 224
Expand file tree
/
Copy pathattribute-reference.html
More file actions
2680 lines (1355 loc) · 156 KB
/
Copy pathattribute-reference.html
File metadata and controls
2680 lines (1355 loc) · 156 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>FLARE Documentation - Attribute Reference</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<style type="text/css">
body {
font-family: Arial, sans-serif;
margin-left: auto;
margin-right: auto;
width: 70%;
}
.logo {
text-align: center;
background: #000;
color: #fff;
}
code {
background: #e5e5e5;
}
</style>
</head>
<body>
<div class="logo">
<img src="../mods/default/images/menus/logo.png" alt="FLARE"/>
<h1>Attribute Reference</h1>
<hr/>
</div>
<div class="content">
<h3>Attribute description</h3>
<p>Attribute descriptions are in the following format: section.attributename, <code>valuetype</code>, short attribute description</p>
<p><strong>This reference is generated from in-source documentation, so please do not edit it directly.</strong></p>
<h4>Valuetype syntax</h4>
<p><code>[val1, ...]</code>, Multiple values between a set of square brackets denotes possible types/values for a single field.</p>
<p><code>"..."</code>, Anything between double quotes is a string literal. This is mostly used in conjunction with the above square brackets syntax.</p>
<p><code>list(...)</code>, Lists are a series of values that can repeat on a single line, separated by commas/semicolons. Example of list(int, bool): "1,false;2,true"</p>
<p><code>repeatable(...)</code>, Repeatable keys can be used for multiple lines. An example of this would be an item with multiple "bonus" lines.</p>
<h4>List of available valuetypes</h4>
<p><code>bool</code>, a string value of <code>true</code> or <code>false</code></p>
<p><code>int</code>, a signed integer value</p>
<p><code>string</code>, a text string value</p>
<p><code>float</code>, a floating point number</p>
<p><code>item_id</code>, specifies an integer item identifer (greater than 0)</p>
<p><code>power_id</code>, specifies an integer power identifer (greater than 0)</p>
<p><code>icon_id</code>, specifies an integer icon identifer (greater than or equal to 0)</p>
<p><code>point</code>, defined as: <code>int, int : X, Y</code></p>
<p><code>rectangle</code>, defined as: <code>int, int, int, int : X, Y, Width, Height</code></p>
<p><code>filename</code>, a string path to a file relative to the base of the mod directory (e.g. "animations/hero.txt")</p>
<p><code>color</code>, defined as: <code>int, int, int : Red, Green, Blue</code></p>
<p><code>predefined_string</code>, same as a string, but uses a value defined elsewhere</p>
<p><code>alignment</code>, defined as: <code>["topleft", "top", "topright", "left", "center", "right", "bottomleft", "bottom", "bottomright", "frame_topleft", "frame_top", "frame_topright", "frame_left", "frame_center", "frame_right", "frame_bottomleft", "frame_bottom", "frame_bottomright"]</code></p>
<p><code>direction</code>, defined as: <code>["N", "NE", "E", "SE", "S", "SW", "W", "NW", int]</code>. If defined as an integer, the value must be between 0-7 inclusive, mapping to <code>["SW", "W", "NW", "N", "NE", "E", "SE", "S"]</code> respectively.</p>
<p><code>duration</code>, durations can be specified in seconds and milliseconds with integer suffix s, ms (eg. 20s, 20000ms)</p>
<p><code>label</code>, defined as: <code>"hidden"</code> <strong>or</strong> <code>int, int, ["left", "right", "center"], ["top", "center", "bottom"], string : X, Y, Justify, Vertical Align, Font style</code>. The font style can be any style defined in engine/font_settings.txt.</p>
<p><code>loot</code>, defined as: <code>filename</code> <strong>or</strong> <code>["currency", item_id], ["fixed", float], int, int : Item, Drop chance, Min quantity, Max quantity</code>. There is a limitation when defining as part of a list(...): filenames can only be used in the first list element.</p>
<p><code>version</code>, defined as: a string of three numbers, separated by dots (e.g. "1.2.03")</p>
<p><code>raw</code>, This is plain text, including line breaks. It is used only for map layer data.</p>
<p><code>stat_id</code>, a string that can be any of the following: A base stat (e.g. <code>hp</code> or <code>avoidance</code>); A min or max damage type from <code>engine/damage_types.txt</code> (e.g. <code>dmg_melee_min</code> or <code>dmg_ment_max</code>); An elemental resistance from <code>engine/elements.txt</code>. To use an element as a resistance, <code>_resist</code> is appened to the element id (e.g. <code>fire_resist</code>)</p>
<p><code>level_scaled_value</code>, a string representing a key/value pair that is delimited by a colon (':'). The first half represents the scaling method, and can be one of the following values: <code>base</code>, <code>player_level</code>, <code>item_level</code>, or a primary stat ID. The second half is the value, which is a float. For convenience, it is possible to specify only the value part to define the 'base' value (e.g. <code>price=10</code> is the same as <code>price=base:10</code>). Level scaling assumes level 1 is included in the base. So a level 5 item with <code>price=item_level:1</code> would equate to 4, not 5. Additionally, the result can be rounded and/or clamped. To round, use <code>round:true</code>. To set the minimum to, for example, 0, use <code>min:0</code>. Likewise, <code>max:1</code> would set the maximum to 1.</p>
<hr />
<h4>AnimationSet</h4>
<p>Description of animations in animations/</p>
<p><strong>image</strong> | <code>filename, string : Filename, ID</code> | Filename of sprite-sheet image along with an identifier string. The identifier string may be omitted if there is only a single image.</p>
<p><strong>render_size</strong> | <code>int, int : Width, Height</code> | Width and height of animation.</p>
<p><strong>render_offset</strong> | <code>int, int : X offset, Y offset</code> | Render x/y offset.</p>
<p><strong>blend_mode</strong> | <code>["normal", "add"]</code> | The type of blending used when rendering this animation.</p>
<p><strong>alpha_mod</strong> | <code>int</code> | Changes the default alpha of this animation. 255 is fully opaque.</p>
<p><strong>color_mod</strong> | <code>color</code> | Changes the default color mod of this animation. "255,255,255" is no color mod.</p>
<p><strong>animation.position</strong> | <code>int</code> | Number of frames to the right to use as the first frame. Unpacked animations only.</p>
<p><strong>animation.frames</strong> | <code>int</code> | The total number of frames</p>
<p><strong>animation.duration</strong> | <code>duration</code> | The duration of the entire animation in 'ms' or 's'.</p>
<p><strong>animation.type</strong> | <code>["play_once", "back_forth", "looped"]</code> | How to loop (or not loop) this animation.</p>
<p><strong>animation.active_frame</strong> | <code>[list(int), "all"]</code> | A list of frames marked as "active". Also, "all" can be used to mark all frames as active.</p>
<p><strong>animation.active_sub_frame</strong> | <code>["end", "start", "all"]</code> | Each frame of animation gets rendered for multiple "sub-frames" based on playback speed and the max_fps setting. This property controls which of these sub-frames will trigger active frames. Defaults to "end".</p>
<p><strong>animation.image</strong> | <code>predefined_string</code> | Uncompressed animations only. Sets the image to be used by its ID. For compressed animations, use the last parameter of the 'frame' property instead.</p>
<p><strong>animation.frame</strong> | <code>int, int, int, int, int, int, int, int, string : Index, Direction, X, Y, Width, Height, X offset, Y offset, Image ID</code> | A single frame of a compressed animation. The image ID may be omitted, in which case the first available image will be used.</p>
<hr />
<h4>Avatar: Step sounds</h4>
<p>Description of items/step_sounds.txt</p>
<p><strong>id</strong> | <code>string</code> | An identifier name for a set of step sounds.</p>
<p><strong>step</strong> | <code>filename</code> | Filename of a step sound effect.</p>
<hr />
<h4>CombatText</h4>
<p>Description of engine/combat_text.txt</p>
<p><strong>duration</strong> | <code>duration</code> | Duration of the combat text in 'ms' or 's'.</p>
<p><strong>speed</strong> | <code>float</code> | Motion speed of the combat text.</p>
<p><strong>offset</strong> | <code>int</code> | The vertical offset for the combat text's starting position.</p>
<p><strong>fade_duration</strong> | <code>duration</code> | How long the combat text will spend fading out in 'ms' or 's'.</p>
<p><strong>font</strong> | <code>predefined_string</code> | The font to use for combat text.</p>
<hr />
<h4>CursorManager</h4>
<p>Description of engine/mouse_cursor.txt</p>
<p><strong>normal</strong> | <code>filename</code> | Filename of an image for the normal cursor.</p>
<p><strong>interact</strong> | <code>filename</code> | Filename of an image for the object interaction cursor.</p>
<p><strong>talk</strong> | <code>filename</code> | Filename of an image for the NPC interaction cursor.</p>
<p><strong>attack</strong> | <code>filename</code> | Filename of an image for the cursor when attacking enemies.</p>
<p><strong>lowhp_normal</strong> | <code>filename</code> | Filename of an image for the normal cursor when health is low.</p>
<p><strong>lowhp_interact</strong> | <code>filename</code> | Filename of an image for the object interaction cursor when health is low.</p>
<p><strong>lowhp_talk</strong> | <code>filename</code> | Filename of an image for the NPC interaction cursor when health is low.</p>
<p><strong>lowhp_attack</strong> | <code>filename</code> | Filename of an image for the cursor when attacking enemies and health is low.</p>
<hr />
<h4>EnemyGroupManager</h4>
<p>Description of enemies in enemies/</p>
<p><strong>level</strong> | <code>int</code> | Level of the enemy</p>
<p><strong>rarity</strong> | <code>["common", "uncommon", "rare"]</code> | Enemy rarity</p>
<p><strong>categories</strong> | <code>list(predefined_string)</code> | Comma separated list of enemy categories</p>
<hr />
<h4>EngineSettings: Misc</h4>
<p>Description of engine/misc.txt</p>
<p><strong>save_hpmp</strong> | <code>bool</code> | When saving the game, keep the hero's current HP and MP.</p>
<p><strong>corpse_timeout</strong> | <code>duration</code> | Duration that a corpse can exist on the map in 'ms' or 's'. Use 0 to keep corpses indefinitely.</p>
<p><strong>sell_without_vendor</strong> | <code>bool</code> | Allows selling items when not at a vendor via CTRL-Click.</p>
<p><strong>aim_assist</strong> | <code>int</code> | The pixel offset for powers that use aim_assist.</p>
<p><strong>window_title</strong> | <code>string</code> | Sets the text in the window's titlebar.</p>
<p><strong>save_prefix</strong> | <code>string</code> | A string that's prepended to save filenames to prevent conflicts between mods.</p>
<p><strong>sound_falloff</strong> | <code>int</code> | The maximum radius in tiles that any single sound is audible.</p>
<p><strong>party_exp_percentage</strong> | <code>float</code> | The percentage of XP given to allies.</p>
<p><strong>enable_ally_collision</strong> | <code>bool</code> | Allows allies to block the player's path.</p>
<p><strong>enable_ally_collision_ai</strong> | <code>bool</code> | Allows allies to block the path of other AI creatures.</p>
<p><strong>currency_id</strong> | <code>item_id</code> | An item id that will be used as currency.</p>
<p><strong>interact_range</strong> | <code>float</code> | Distance where the player can interact with objects and NPCs.</p>
<p><strong>menus_pause</strong> | <code>bool</code> | Opening any menu will pause the game.</p>
<p><strong>save_onload</strong> | <code>bool</code> | Save the game upon changing maps.</p>
<p><strong>save_onexit</strong> | <code>bool</code> | Save the game upon quitting to the title screen or desktop.</p>
<p><strong>save_pos_onexit</strong> | <code>bool</code> | If the game gets saved on exiting, store the player's current position instead of the map spawn position.</p>
<p><strong>save_oncutscene</strong> | <code>bool</code> | Saves the game when triggering any cutscene via an Event.</p>
<p><strong>save_onstash</strong> | <code>[bool, "private", "shared"]</code> | Saves the game when changing the contents of a stash. The default is true (i.e. save when using both stash types). Use caution with the values "private" and false, since not saving shared stashes exposes an item duplication exploit.</p>
<p><strong>save_anywhere</strong> | <code>bool</code> | Enables saving the game with a button in the pause menu.</p>
<p><strong>camera_speed</strong> | <code>float</code> | Modifies how fast the camera moves to recenter on the player. Larger values mean a slower camera. Default value is 10.</p>
<p><strong>save_buyback</strong> | <code>bool</code> | Saves the vendor buyback stock whenever the game is saved.</p>
<p><strong>keep_buyback_on_map_change</strong> | <code>bool</code> | If true, NPC buyback stocks will persist when the map changes. If false, save_buyback is disabled.</p>
<p><strong>sfx_unable_to_cast</strong> | <code>filename</code> | Sound to play when the player lacks the MP to cast a power.</p>
<p><strong>combat_aborts_npc_interact</strong> | <code>bool</code> | If true, the NPC dialog and vendor menus will be closed if the player is attacked.</p>
<p><strong>fogofwar</strong> | <code>int</code> | Set the fog of war type. 0-disabled, 1-minimap, 2-tint, 3-overlay.</p>
<p><strong>save_fogofwar</strong> | <code>bool</code> | If true, the fog of war layer keeps track of the progress.</p>
<p><strong>mouse_move_enabled</strong> | <code>bool</code> | If true, enables the use of the "Move hero using mouse" input option. Defaults to true.</p>
<p><strong>mouse_move_deadzone</strong> | <code>float, float : Deadzone while moving, Deadzone while not moving</code> | Adds a deadzone circle around the player to prevent erratic behavior when using mouse movement. Ideally, the deadzone when moving should be less than the deadzone when not moving. Defaults are 0.25 and 0.75 respectively.</p>
<p><strong>passive_trigger_effect_stacking</strong> | <code>bool</code> | For backwards compatibility. Allows adding multiple of the same effect from a power with the same passive trigger. False by default.</p>
<p><strong>fade_wall_alpha</strong> | <code>int</code> | The minimum opacity which walls will be faded to when covering the player, ranging from 0-255. Use 255 to disable this feature.</p>
<p><strong>raycast_resolution</strong> | <code>float</code> | Determines the number of steps used when testing line-of-sight and line-of-movement. A smaller value equates to more accurate results at the cost of performance. Defaults to 0.1.</p>
<hr />
<h4>EngineSettings: Resolution</h4>
<p>Description of engine/resolutions.txt</p>
<p><strong>menu_frame_width</strong> | <code>int</code> | Width of frame for New Game, Configuration, etc. menus.</p>
<p><strong>menu_frame_height</strong> | <code>int</code> | Height of frame for New Game, Configuration, etc. menus.</p>
<p><strong>icon_size</strong> | <code>int</code> | Size of icons.</p>
<p><strong>required_width</strong> | <code>int</code> | Minimum window/screen resolution width.</p>
<p><strong>required_height</strong> | <code>int</code> | Minimum window/screen resolution height.</p>
<p><strong>virtual_height</strong> | <code>list(int)</code> | A list of heights (in pixels) that the game can use for its actual rendering area. The virtual height chosen is based on the current window height. The width will be resized to match the window's aspect ratio, and everything will be scaled up to fill the window.</p>
<p><strong>virtual_dpi</strong> | <code>float</code> | A target diagonal screen DPI used to determine how much to scale the internal render resolution.</p>
<p><strong>ignore_texture_filter</strong> | <code>bool</code> | If true, this ignores the "Texture Filtering" video setting and uses only nearest-neighbor scaling. This is good for games that use pixel art assets.</p>
<hr />
<h4>EngineSettings: Gameplay</h4>
<p>Description of engine/gameplay.txt</p>
<p><strong>enable_playgame</strong> | <code>bool</code> | Enables the "Play Game" button on the main menu.</p>
<hr />
<h4>EngineSettings: Combat</h4>
<p>Description of engine/combat.txt</p>
<p><strong>absorb_percent</strong> | <code>float, float : Minimum, Maximum</code> | Limits the percentage of damage that can be absorbed. A max value less than 100 will ensure that the target always takes at least 1 damage from non-elemental attacks.</p>
<p><strong>resist_percent</strong> | <code>float, float : Minimum, Maximum</code> | Limits the percentage of damage that can be resisted. A max value less than 100 will ensure that the target always takes at least 1 damage from elemental attacks.</p>
<p><strong>block_percent</strong> | <code>float, float : Minimum, Maximum</code> | Limits the percentage of damage that can be absorbed when the target is in the 'block' animation state. A max value less than 100 will ensure that the target always takes at least 1 damage from non-elemental attacks.</p>
<p><strong>avoidance_percent</strong> | <code>float, float : Minimum, Maximum</code> | Limits the percentage chance that damage will be avoided.</p>
<p><strong>miss_damage_percent</strong> | <code>float, float : Minimum, Maximum</code> | The percentage of damage dealt when a miss occurs.</p>
<p><strong>crit_damage_percent</strong> | <code>float, float : Minimum, Maximum</code> | The percentage of damage dealt when a critical hit occurs.</p>
<p><strong>overhit_damage_percent</strong> | <code>float, float : Minimum, Maximum</code> | The percentage of damage dealt when an overhit occurs.</p>
<p><strong>resource_round_method</strong> | <code>[none, round, floor, ceil]</code> | Rounds the numbers for most combat events that affect HP/MP. For example: damage taken, HP healed, MP consumed. Defaults to 'round'.</p>
<p><strong>offscreen_enemy_encounters</strong> | <code>bool</code> | If true, enemies can enter combat even if they are off-screen. Defaults to false.</p>
<hr />
<h4>EngineSettings: Equip flags</h4>
<p>Description of engine/equip_flags.txt</p>
<p><strong>flag.id</strong> | <code>string</code> | An identifier for this equip flag.</p>
<p><strong>flag.name</strong> | <code>string</code> | The displayed name of this equip flag.</p>
<hr />
<h4>EngineSettings: Primary Stats</h4>
<p>Description of engine/primary_stats.txt</p>
<p><strong>stat.id</strong> | <code>string</code> | An identifier for this primary stat.</p>
<p><strong>stat.name</strong> | <code>string</code> | The displayed name of this primary stat.</p>
<hr />
<h4>EngineSettings: Classes</h4>
<p>Description of engine/classes.txt</p>
<p><strong>name</strong> | <code>string</code> | The displayed name of this class.</p>
<p><strong>description</strong> | <code>string</code> | A description of this class.</p>
<p><strong>currency</strong> | <code>int</code> | The amount of currency this class will start with.</p>
<p><strong>equipment</strong> | <code>list(item_id)</code> | A list of items that are equipped when starting with this class.</p>
<p><strong>equipment_set</strong> | <code>int, list(item_id) : Equipment set ID, Item IDs</code> | A list of items that are equipped to the specified equipment set when starting with this class.</p>
<p><strong>carried</strong> | <code>list(item_id)</code> | A list of items that are placed in the normal inventorty when starting with this class.</p>
<p><strong>primary</strong> | <code>predefined_string, int : Primary stat name, Default value</code> | Class starts with this value for the specified stat.</p>
<p><strong>actionbar</strong> | <code>list(power_id)</code> | A list of powers to place in the action bar for the class.</p>
<p><strong>powers</strong> | <code>list(power_id)</code> | A list of powers that are unlocked when starting this class.</p>
<p><strong>campaign</strong> | <code>list(string)</code> | A list of campaign statuses that are set when starting this class.</p>
<p><strong>power_tree</strong> | <code>string</code> | Power tree that will be loaded by MenuPowers</p>
<p><strong>hero_options</strong> | <code>list(int)</code> | A list of indicies of the hero options this class can use.</p>
<p><strong>default_power_tab</strong> | <code>int</code> | Index of the tab to switch to when opening the Powers menu</p>
<hr />
<h4>EngineSettings: Damage Types</h4>
<p>Description of engine/damage_types.txt</p>
<p><strong>damage_type.id</strong> | <code>string</code> | The identifier used for Item damage_type and Power base_damage.</p>
<p><strong>damage_type.name</strong> | <code>string</code> | The displayed name for the value of this damage type.</p>
<p><strong>damage_type.name_short</strong> | <code>string</code> | An optional, shorter displayed name for this damage type. Used for labels for 'Resist Damage' stats. If left blank, 'name' will be used instead.</p>
<p><strong>damage_type.description</strong> | <code>string</code> | The description that will be displayed in the Character menu tooltips.</p>
<p><strong>damage_type.min</strong> | <code>string</code> | The identifier used as a Stat type and an Effect type, for the minimum damage of this type. If not defined, the ID is wrapped with 'dmg_' and '_min' (ex: 'fire' creates 'dmg_fire_min').</p>
<p><strong>damage_type.max</strong> | <code>string</code> | The identifier used as a Stat type and an Effect type, for the maximum damage of this type. If not defined, the ID is wrapped with 'dmg_' and '_max' (ex: 'fire' creates 'dmg_fire_max').</p>
<p><strong>damage_type.resist</strong> | <code>string</code> | The identifier used as a Stat type and an Effect type, for the resistance to this type. If not defined, '_resist' is appended to the ID (ex: 'fire' creates 'fire_resist').</p>
<p><strong>damage_type.elemental</strong> | <code>bool</code> | If true, this damage type will be flagged as elemental. Elemental damage will be additionally applied to Powers with non-elemental base damage.</p>
<hr />
<h4>EngineSettings: Elements</h4>
<p>(Deprecated in v1.14.85, use engine/damage_types.txt instead) Description of engine/elements.txt</p>
<p><strong>element.id</strong> | <code>string</code> | An identifier for this element. When used as a resistance, "_resist" is appended to the id. For example, if the id is "fire", the resist id is "fire_resist".</p>
<p><strong>element.name</strong> | <code>string</code> | The displayed name of this element.</p>
<hr />
<h4>EngineSettings: Death penalty</h4>
<p>Description of engine/death_penalty.txt</p>
<p><strong>enable</strong> | <code>bool</code> | Enable the death penalty.</p>
<p><strong>permadeath</strong> | <code>bool</code> | Force permadeath for all new saves.</p>
<p><strong>currency</strong> | <code>float</code> | Remove this percentage of currency.</p>
<p><strong>xp_total</strong> | <code>float</code> | Remove this percentage of total XP.</p>
<p><strong>xp_current_level</strong> | <code>float</code> | Remove this percentage of the XP gained since the last level.</p>
<p><strong>random_item</strong> | <code>bool</code> | Removes a random item from the player's inventory.</p>
<hr />
<h4>EngineSettings: Tooltips</h4>
<p>Description of engine/tooltips.txt</p>
<p><strong>tooltip_offset</strong> | <code>int</code> | Offset in pixels from the origin point (usually mouse cursor).</p>
<p><strong>tooltip_width</strong> | <code>int</code> | Maximum width of tooltip in pixels.</p>
<p><strong>tooltip_margin</strong> | <code>int</code> | Padding between the text and the tooltip borders.</p>
<p><strong>npc_tooltip_margin</strong> | <code>int</code> | Vertical offset for NPC labels.</p>
<p><strong>tooltip_background_border</strong> | <code>int</code> | The pixel size of the border in "images/menus/tooltips.png".</p>
<p><strong>tooltip_visible_max</strong> | <code>int</code> | The maximum number of floating tooltips on screen at once. Defaults to 3.</p>
<hr />
<h4>EngineSettings: Loot</h4>
<p>Description of engine/loot.txt</p>
<p><strong>tooltip_margin</strong> | <code>int</code> | Vertical offset of the loot tooltip from the loot itself.</p>
<p><strong>autopickup_currency</strong> | <code>bool</code> | Enable autopickup for currency</p>
<p><strong>autopickup_range</strong> | <code>float</code> | Minimum distance the player must be from loot to trigger autopickup.</p>
<p><strong>currency_name</strong> | <code>string</code> | Define the name of currency in game</p>
<p><strong>vendor_ratio_buy</strong> | <code>float</code> | Global multiplier for item prices on the "Buy" tab of vendors. Defaults to 1.0.</p>
<p><strong>vendor_ratio_sell</strong> | <code>float</code> | Global multiplier for the currency gained when selling an item and the price of items on the "Sell" tab of vendors. Defaults to 0.25.</p>
<p><strong>vendor_ratio_sell_old</strong> | <code>float</code> | Global multiplier for item prices on the "Sell" tab of vendors after the player has left the map or quit the game. Falls back to the value of vendor_ratio_sell by default.</p>
<p><strong>sfx_loot</strong> | <code>filename</code> | Filename of a sound effect to play for dropping loot.</p>
<p><strong>drop_max</strong> | <code>int</code> | The maximum number of random item stacks that can drop at once</p>
<p><strong>drop_radius</strong> | <code>int</code> | The distance (in tiles) away from the origin that loot can drop</p>
<p><strong>hide_radius</strong> | <code>float</code> | If an entity is within this radius relative to a piece of loot, the label will be hidden unless highlighted with the cursor.</p>
<p><strong>vendor_ratio</strong> | <code>int</code> | (Deprecated in v1.12.85; use 'vendor_ratio_sell' instead) Percentage of item buying price to use as selling price. Also used as the buyback price until the player leaves the map.</p>
<p><strong>vendor_ratio_buyback</strong> | <code>int</code> | (Deprecated in v1.12.85; use 'vendor_ratio_sell_old' instead) Percentage of item buying price to use as the buying price for previously sold items.</p>
<p><strong>extended_items_offset</strong> | <code>item_id</code> | Sets the starting item ID that extended items will be stored at. The default value, 0, will place extended items at the directly after the last item ID defined in items/items.txt.</p>
<hr />
<h4>EngineSettings: Tileset config</h4>
<p>Description of engine/tileset_config.txt</p>
<p><strong>tile_size</strong> | <code>int, int : Width, Height</code> | The width and height of a tile.</p>
<p><strong>orientation</strong> | <code>["isometric", "orthogonal"]</code> | The perspective of tiles; isometric or orthogonal.</p>
<hr />
<h4>EngineSettings: Widgets</h4>
<p>Description of engine/widget_settings.txt</p>
<p><strong>misc.selection_rect_color</strong> | <code>color, int : Color, Alpha</code> | Color of the selection rectangle when navigating widgets without a mouse.</p>
<p><strong>misc.selection_rect_corner_size</strong> | <code>int</code> | Size of the corners on the selection rectangle shown when navigating widgets. Set to 0 to drawn the entire rectangle instead.</p>
<p><strong>misc.colorblind_highlight_offset</strong> | <code>int, int : X offset, Y offset</code> | The pixel offset of the '*' marker on highlighted icons in colorblind mode.</p>
<p><strong>tab.padding</strong> | <code>int, int : Left/right padding, Top padding</code> | The pixel padding around tabs. Controls how the left and right edges are drawn.</p>
<p><strong>tab.text_padding</strong> | <code>int : Left/right padding</code> | The padding (in pixels) on the left and right sides of the tab's text label. In contrast to 'padding', this does not affect how the tab background is drawn.</p>
<p><strong>slot.quantity_label</strong> | <code>label</code> | Setting for the slot quantity text.</p>
<p><strong>slot.quantity_color</strong> | <code>color</code> | Text color for the slot quantity text.</p>
<p><strong>slot.quantity_bg_color</strong> | <code>color, int : Color, Alpha</code> | If a slot has a quantity, a rectangle filled with this color will be placed beneath the text.</p>
<p><strong>slot.hotkey_label</strong> | <code>label</code> | Setting for the slot hotkey text.</p>
<p><strong>slot.hotkey_color</strong> | <code>color</code> | Text color for the slot hotkey text.</p>
<p><strong>slot.hotkey_bg_color</strong> | <code>color, int : Color, Alpha</code> | If a slot has a hotkey, a rectangle filled with this color will be placed beneath the text.</p>
<p><strong>listbox.text_margin</strong> | <code>int, int : Left margin, Right margin</code> | The pixel margin to leave on the left and right sides of listbox element text.</p>
<p><strong>horizontal_list.text_width</strong> | <code>int</code> | The pixel width of the text area that displays the currently selected item. Default is 150 pixels;</p>
<p><strong>scrollbar.bg_color</strong> | <code>color, int : Color, Alpha</code> | The background color for the entire scrollbar.</p>
<p><strong>log.padding</strong> | <code>int</code> | The padding in pixels of the log text area.</p>
<p><strong>sound.activate</strong> | <code>filename</code> | The sound effect file to play when certain widgets are activated/clicked.</p>
<hr />
<h4>EngineSettings: XP table</h4>
<p>Description of engine/xp_table.txt</p>
<p><strong>level</strong> | <code>int, int : Level, XP</code> | The amount of XP required for this level.</p>
<hr />
<h4>EngineSettings: Number Format</h4>
<p>Description of engine/number_format.txt</p>
<p><strong>player_statbar</strong> | <code>int</code> | Number of digits after the decimal place to display for values in the player's statbars (HP/MP).</p>
<p><strong>enemy_statbar</strong> | <code>int</code> | Number of digits after the decimal place to display for values in the enemy HP statbar.</p>
<p><strong>combat_text</strong> | <code>int</code> | Number of digits after the decimal place to display for values in combat text.</p>
<p><strong>character_menu</strong> | <code>int</code> | Number of digits after the decimal place to display for values in the 'Character' menu.</p>
<p><strong>item_tooltips</strong> | <code>int</code> | Number of digits after the decimal place to display for values in item tooltips.</p>
<p><strong>power_tooltips</strong> | <code>int</code> | Number of digits after the decimal place to display for values in power tooltips (except durations).</p>
<p><strong>durations</strong> | <code>int</code> | Number of digits after the decimal place to display for durations.</p>
<p><strong>death_penalty</strong> | <code>int</code> | Number of digits after the decimal place to display for death penalty messages.</p>
<hr />
<h4>EngineSettings: Resource Stats</h4>
<p>Description of engine/resource_stats.txt</p>
<p><strong>resource_stat.stat_base</strong> | <code>string</code> | The identifier used for the base ("Max") stat.</p>
<p><strong>resource_stat.stat_regen</strong> | <code>string</code> | The identifier used for the regeneration stat.</p>
<p><strong>resource_stat.stat_steal</strong> | <code>string</code> | The identifier used for steal stat.</p>
<p><strong>resource_stat.stat_resist_steal</strong> | <code>string</code> | The identifier used for the resistance to steal stat.</p>
<p><strong>resource_stat.stat_heal</strong> | <code>string</code> | The identifier used for heal-over-time effects.</p>
<p><strong>resource_stat.stat_heal_percent</strong> | <code>string</code> | The identifier used for percentage-based heal-over-time effects.</p>
<p><strong>resource_stat.menu_filename</strong> | <code>filename</code> | The MenuStatBar definition file to use for displaying this stat.</p>
<p><strong>resource_stat.text_base</strong> | <code>string</code> | The printed name of the base ("Max") stat as seen in-game.</p>
<p><strong>resource_stat.text_base_desc</strong> | <code>string</code> | The printed description of the base ("Max") stat as seen in-game.</p>
<p><strong>resource_stat.text_regen</strong> | <code>string</code> | The name of the regeneration stat as seen in-game.</p>
<p><strong>resource_stat.text_regen_desc</strong> | <code>string</code> | The description of the regeneration stat as seen in-game.</p>
<p><strong>resource_stat.text_steal</strong> | <code>string</code> | The name of the steal stat as seen in-game.</p>
<p><strong>resource_stat.text_steal_desc</strong> | <code>string</code> | The description of the steal stat as seen in-game.</p>
<p><strong>resource_stat.text_resist_steal</strong> | <code>string</code> | The name of the resistance to steal stat as seen in-game.</p>
<p><strong>resource_stat.text_resist_steal_desc</strong> | <code>string</code> | The description of the resistance to steal stat as seen in-game.</p>
<p><strong>resource_stat.text_combat_heal</strong> | <code>string</code> | The name of the stat in combat text as seen during heal-over-time.</p>
<p><strong>resource_stat.text_log_restore</strong> | <code>string</code> | The text in the player's log when this stat is restored via EventManager's 'restore' property.</p>
<p><strong>resource_stat.text_log_low</strong> | <code>string</code> | The text in the player's log when trying to use a Power that requires more than the available amount of this resource.</p>
<p><strong>resource_stat.text_tooltip_heal</strong> | <code>string</code> | The text in Power tooltips used for heal-over-time Effects.</p>
<p><strong>resource_stat.text_tooltip_cost</strong> | <code>string</code> | The text in Power tooltips that describes the casting cost of this resource.</p>
<hr />
<h4>EventManager</h4>
<p>Description of events in maps/ and npcs/</p>
<p><strong>event.type</strong> | <code>string</code> | (IGNORED BY ENGINE) The "type" field, as used by Tiled and other mapping tools.</p>
<p><strong>event.activate</strong> | <code>["on_trigger", "on_interact", "on_load", "on_leave", "on_mapexit", "on_clear", "static"]</code> | Set the state in which the event will be activated (map events only). on_trigger = the player is standing in the event area or the player interacts with the hotspot. on_interact = the player ineracts with the hotspot. on_mapexit = as the player leaves the map. on_leave = as the player steps outside of an event area they were previously inside of. on_load = as the player enters a map. on_clear = all of the enemies on a map have been defeated. static = constantly, every frame.</p>
<p><strong>event.location</strong> | <code>rectangle</code> | Defines the location area for the event.</p>
<p><strong>event.hotspot</strong> | <code>["location", rectangle]</code> | Event uses location as hotspot or defined by rect.</p>
<p><strong>event.cooldown</strong> | <code>duration</code> | Duration for event cooldown in 'ms' or 's'.</p>
<p><strong>event.delay</strong> | <code>duration</code> | Event will execute after a specified duration.</p>
<p><strong>event.reachable_from</strong> | <code>rectangle</code> | If the hero is inside this rectangle, they can activate the event.</p>
<p><strong>event.tooltip</strong> | <code>string</code> | Tooltip for event</p>
<p><strong>event.intermap</strong> | <code>filename, int, int, string : Map file, X, Y, Spawn point ID</code> | Jump to specific map. X/Y (optional) can be used to specifiy the spawn position. Alternatively, use position (-1, -1) and an ID to use the location of an intermap_id event as the spawn point.</p>
<p><strong>event.intermap_id</strong> | <code>string</code> | Identifier used to specify an alternate spawn point for intermap events.</p>
<p><strong>event.intermap_random</strong> | <code>filename</code> | Pick a random map from a map list file and teleport to it.</p>
<p><strong>event.intramap</strong> | <code>int, int : X, Y</code> | Jump to specific position within current map.</p>
<p><strong>event.mapmod</strong> | <code>list(predefined_string, int, int, int) : Layer, X, Y, Tile ID</code> | Modify map tiles</p>
<p><strong>event.mapmod_toggle</strong> | <code>list(predefined_string, int, int, int, int) : Layer, X, Y, Tile ID A, Tile ID B</code> | Same as mapmod, except this will alternate between two tile IDs.</p>
<p><strong>event.soundfx</strong> | <code>filename, int, int, bool : Sound file, X, Y, loop</code> | Filename of a sound to play. Optionally, it can be played at a specific location and/or looped. Note: Sounds attached to 'on_load' events will loop by default.</p>
<p><strong>event.loot</strong> | <code>list(loot)</code> | Add loot to the event.</p>
<p><strong>event.loot_count</strong> | <code>int, int : Min, Max</code> | Sets the minimum (and optionally, the maximum) amount of loot this event can drop. Overrides the global drop_max setting.</p>
<p><strong>event.msg</strong> | <code>string</code> | Adds a message to be displayed for the event.</p>
<p><strong>event.shakycam</strong> | <code>duration</code> | Makes the camera shake for this duration in 'ms' or 's'.</p>
<p><strong>event.requires_status</strong> | <code>list(string)</code> | Event requires list of statuses</p>
<p><strong>event.requires_not_status</strong> | <code>list(string)</code> | Event requires not list of statuses</p>
<p><strong>event.requires_level</strong> | <code>int</code> | Event requires hero level</p>
<p><strong>event.requires_not_level</strong> | <code>int</code> | Event requires not hero level</p>
<p><strong>event.requires_currency</strong> | <code>int</code> | Event requires atleast this much currency</p>
<p><strong>event.requires_not_currency</strong> | <code>int</code> | Event requires no more than this much currency</p>
<p><strong>event.requires_item</strong> | <code>list(item_id)</code> | Event requires specific item (not equipped). Quantity can be specified by appending ":Q" to the item_id, where Q is an integer.</p>
<p><strong>event.requires_not_item</strong> | <code>list(item_id)</code> | Event requires not having a specific item (not equipped). Quantity can be specified by appending ":Q" to the item_id, where Q is an integer.</p>
<p><strong>event.requires_class</strong> | <code>predefined_string</code> | Event requires this base class</p>
<p><strong>event.requires_not_class</strong> | <code>predefined_string</code> | Event requires not this base class</p>
<p><strong>event.requires_tile</strong> | <code>list(predefined_string, int, int, int) : Layer, X, Y, Tile ID</code> | Event requires tile at this layer and X/Y to match the ID</p>
<p><strong>event.requires_not_tile</strong> | <code>list(predefined_string, int, int, int) : Layer, X, Y, Tile ID</code> | Event requires tile at this layer and X/Y to not match the ID</p>
<p><strong>event.set_status</strong> | <code>list(string)</code> | Sets specified statuses</p>
<p><strong>event.unset_status</strong> | <code>list(string)</code> | Unsets specified statuses</p>
<p><strong>event.remove_currency</strong> | <code>int</code> | Removes specified amount of currency from hero inventory</p>
<p><strong>event.remove_item</strong> | <code>list(item_id)</code> | Removes specified item from hero inventory. Quantity can be specified by appending ":Q" to the item_id, where Q is an integer.</p>
<p><strong>event.reward_xp</strong> | <code>int</code> | Reward hero with specified amount of experience points.</p>
<p><strong>event.reward_currency</strong> | <code>int</code> | Reward hero with specified amount of currency.</p>
<p><strong>event.reward_item</strong> | <code>(list(item_id)</code> | Reward hero with a specified item. Quantity can be specified by appending ":Q" to the item_id, where Q is an integer. To maintain backwards compatibility, the quantity must be defined for at least the first item in the list in order to use this syntax.</p>
<p><strong>event.reward_item</strong> | <code>item_id, int : Item, Quantity</code> | Reward hero with y number of item x. NOTE: This syntax is maintained for backwards compatibility. It is recommended to use the above syntax instead.</p>
<p><strong>event.reward_loot</strong> | <code>list(loot)</code> | Reward hero with random loot.</p>
<p><strong>event.reward_loot_count</strong> | <code>int, int : Min, Max</code> | Sets the minimum (and optionally, the maximum) amount of loot that reward_loot can give the hero. Defaults to 1.</p>
<p><strong>event.restore</strong> | <code>list(["hp", "mp", "hpmp", "status", "all", predefined_string])</code> | Restore the hero's HP, MP, and/or status. Resource stat base IDs are also valid.</p>
<p><strong>event.power</strong> | <code>power_id</code> | Specify power coupled with event.</p>
<p><strong>event.power_path</strong> | <code>int, int, ["hero", point] : Source X, Source Y, Destination</code> | Path that an event power will take.</p>
<p><strong>event.power_damage</strong> | <code>float, float : Min, Max</code> | Range of power damage</p>
<p><strong>event.power_stats</strong> | <code>filename</code> | Entity stat file to use for this event's power spawner.</p>
<p><strong>event.power_level</strong> | <code>["default", "fixed", "source_level", "source_stat", "hero_level", "hero_stat"], float, predefined_string : Mode, Multiplier, Primary stat</code> | Level of this event's power spawner. The need for the last two parameters depends on the mode being used. The "default" mode will just use the entity's normal level and doesn't require any additional parameters. The "fixed" mode sets the multiplier as the enemy level. The level modes multiply with the target's level. The stat modes multiply by one of the target's primary stats. The stat is defined with the last parameter, which is simply the ID of the primary stat that should be used for scaling. Because the map has no level/stats of its own, the source modes use the hero's level/stats.</p>
<p><strong>event.spawn</strong> | <code>list(predefined_string, int, int) : Enemy category, X, Y</code> | Spawn an enemy from this category at location</p>
<p><strong>event.spawn_level</strong> | <code>["default", "fixed", "source_level", "source_stat", "hero_level", "hero_stat"], float, predefined_string : Mode, Multiplier, Primary stat</code> | Level of the spawned entities. The need for the last two parameters depends on the mode being used. The "default" mode will just use the entity's normal level and doesn't require any additional parameters. The "fixed" mode sets the multiplier as the entity level. The level modes multiply with the target's level. The stat modes multiply by one of the target's primary stats. The stat is defined with the last parameter, which is simply the ID of the primary stat that should be used for scaling. Because the map has no level/stats of its own, the source modes use the hero's level/stats.</p>
<p><strong>event.stash</strong> | <code>bool</code> | If true, the Stash menu if opened.</p>
<p><strong>event.npc</strong> | <code>filename</code> | Filename of an NPC to start dialog with.</p>
<p><strong>event.music</strong> | <code>filename</code> | Change background music to specified file.</p>
<p><strong>event.cutscene</strong> | <code>filename</code> | Show specified cutscene by filename.</p>
<p><strong>event.repeat</strong> | <code>bool</code> | If true, the event to be triggered again.</p>
<p><strong>event.save_game</strong> | <code>bool</code> | If true, the game is saved when the event is triggered. The respawn position is set to where the player is standing.</p>
<p><strong>event.book</strong> | <code>["close", filename]</code> | Opens a book by filename. 'close' can be used in place of the filename to close an already open book.</p>
<p><strong>event.script</strong> | <code>filename</code> | Loads and executes an Event from a file.</p>
<p><strong>event.chance_exec</strong> | <code>float</code> | Percentage chance that this event will execute when triggered.</p>
<p><strong>event.respec</strong> | <code>["xp", "stats", "powers"], bool : Respec mode, Ignore class defaults</code> | Resets various aspects of the character's progression. Resetting "xp" also resets "stats". Resetting "stats" also resets "powers".</p>
<p><strong>event.show_on_minimap</strong> | <code>bool</code> | If true, this event will be shown on the minimap if it is the appropriate type (e.g. an intermap teleport).</p>
<p><strong>event.parallax_layers</strong> | <code>filename</code> | Filename of a parallax layers definition to load.</p>
<p><strong>event.random_status</strong> | <code>repeatable(["append", "clear", "roll", "set", "unset"], list(string)) : Action, Statuses (append action only)</code> | Used to randomly pick a status from a list, and then set or unset it. Statuses are added to the list with the "append" action. The "roll" action will randomly pick from the list and set it as the current random status. The "set" and "unset" commands will function like set_status and unset_status, with the parameter being the current random status. Lastly, the "clear" action will empty the pool of random statuses. It is recommended to clear the list before you use it, as well as after you're done to prevent unintended side-effects.</p>
<p><strong>event.procgen_filename</strong> | <code>filename</code> | Filename of procedural map generation rules file.</p>
<p><strong>event.procgen_link</strong> | <code>["north", "south", "west", "east"]</code> | Only used in maps with the procgen_type of "links". Defines a region to be used as a link. The tiles and objects in this region will replace the matching region of the target chunk that has the specified link.</p>
<p><strong>event.procgen_door_level</strong> | <code>int</code> | Event will only be active on a specific door level. For procedural generation chunks only.</p>
<hr />
<h4>EventManager: Random Map List</h4>
<p>Description of maps/random/lists/</p>
<p><strong>map</strong> | <code>filename, int, int : Map file, X, Y</code> | Adds a map and optional spawn position to the random list of maps to teleport to.</p>
<hr />
<h4>FogOfWar</h4>
<p>Description of engine/fow_mask.txt</p>
<p><strong>header.radius</strong> | <code>int</code> | Fog of war mask radius, also how far the player can see.</p>
<p><strong>header.bits_per_tile</strong> | <code>int</code> | How may bits(subdivisions) a tile is made of. In powers of two. Example: if it is set to 4 then the tile will be subdivided in 4, let's say North, South, East, West.</p>
<p><strong>header.color_dark</strong> | <code>color</code> | Tint color for dark tiles. Used by fog of war type 2-tint.</p>
<p><strong>header.color_fog</strong> | <code>color</code> | Tint color for fog tiles. Used by fog of war type 2-tint.</p>
<p><strong>header.tileset_dark</strong> | <code>filename</code> | Filename of a tileset definition to use for unvisited areas. Used by fog of war type 3-overlay.</p>
<p><strong>header.tileset_fog</strong> | <code>filename</code> | Filename of a tileset definition to use for foggy areas. Used by fog of war type 3-overlay.</p>
<p><strong>bits.bit</strong> | <code>string, int : Name, Value</code> | A fog of war bit definition can have any name. Better to keep it simple and short. There must be a bit definition that has the value 0. Example: If we have 4 bits per tile then we define: bit=BIT_0,0, bit=BIT_N,1, bit=BIT_W,2, bit=BIT_S,3, bit=BIT_E,4.</p>
<p><strong>tiles.tile</strong> | <code>string, repeatable(predefined_string) : Name, Bit definitions</code> | A fog of war tile definition can have any name. Better to keep it simple and short. There must be a tile definition that contains no bits and a tile definition that contains all bits. Example: A tile containing North and West bits will be tile=NW,BIT_N,BIT_W.</p>
<p><strong>mask.data</strong> | <code>raw</code> | The mask definition is a matrix (2*radius+1 by 2*radius+1) that contains fog of war tile definitions. All the margins of the matrix must be the tile definition that contains all bits.</p>
<hr />
<h4>FontEngine: Font colors</h4>
<p>Description of engine/font_colors.txt</p>
<p><strong>menu_normal</strong> | <code>color</code> | Basic menu text color. Recommended: white.</p>
<p><strong>menu_bonus</strong> | <code>color</code> | Positive menu text color. Recommended: green.</p>
<p><strong>menu_penalty</strong> | <code>color</code> | Negative menu text color. Recommended: red.</p>
<p><strong>widget_normal</strong> | <code>color</code> | Basic widget text color. Recommended: white.</p>
<p><strong>widget_disabled</strong> | <code>color</code> | Disabled widget text color. Recommended: grey.</p>
<p><strong>combat_givedmg</strong> | <code>color</code> | Enemy damage text color. Recommended: white.</p>
<p><strong>combat_takedmg</strong> | <code>color</code> | Player damage text color. Recommended: red.</p>
<p><strong>combat_crit</strong> | <code>color</code> | Enemy critical damage text color. Recommended: yellow.</p>
<p><strong>combat_buff</strong> | <code>color</code> | Healing/buff text color. Recommended: green.</p>
<p><strong>combat_miss</strong> | <code>color</code> | Missed attack text color. Recommended: grey.</p>
<p><strong>requirements_not_met</strong> | <code>color</code> | Unmet requirements text color. Recommended: red.</p>
<p><strong>item_bonus</strong> | <code>color</code> | Item bonus text color. Recommended: green.</p>
<p><strong>item_penalty</strong> | <code>color</code> | Item penalty text color. Recommended: red.</p>
<p><strong>item_flavor</strong> | <code>color</code> | Item flavor text color. Recommended: grey.</p>
<p><strong>hardcore_color_name</strong> | <code>color</code> | Permadeath save slot player name color. Recommended: red.</p>
<hr />
<h4>Cutscene</h4>
<p>Description of cutscenes in cutscenes/</p>
<p><strong>caption_margins</strong> | <code>float, float : X margin, Y margin</code> | Percentage-based margins for the caption text based on screen size</p>
<p><strong>caption_background</strong> | <code>color, int : Color, Alpha</code> | Color (RGBA) of the caption area background.</p>
<p><strong>vscroll_speed</strong> | <code>float</code> | The speed at which elements will scroll in 'vscroll' scenes. Defaults to 0.5.</p>
<p><strong>menu_backgrounds</strong> | <code>bool</code> | This cutscene will use a random fullscreen background image, like the title screen does</p>
<p><strong>music</strong> | <code>filename</code> | The music file that will play during this cutscene.</p>
<p><strong>scene.caption</strong> | <code>string</code> | A caption that will be shown.</p>
<p><strong>scene.image</strong> | <code>filename, int : Filename, Scaling type</code> | Filename of an image that will be shown. The scaling type is a value between 0-2, corresponding to: none, fit height, fit screen.</p>
<p><strong>scene.pause</strong> | <code>duration</code> | Pause before next component in 'ms' or 's'. A value of '-1' may be used to pause indefinitely.</p>
<p><strong>scene.soundfx</strong> | <code>filename</code> | Filename of a sound that will be played</p>
<p><strong>vscroll.text</strong> | <code>string</code> | A single, non-wrapping line of text.</p>
<p><strong>vscroll.image</strong> | <code>filename</code> | Filename of an image that will be shown.</p>
<p><strong>vscroll.separator</strong> | <code>int</code> | Places an invisible gap of a specified height between elements.</p>
<hr />
<h4>GameStateLoad</h4>
<p>Description of menus/gameload.txt</p>
<p><strong>button_new</strong> | <code>int, int, alignment : X, Y, Alignment</code> | Position of the "New Game" button.</p>
<p><strong>button_load</strong> | <code>int, int, alignment : X, Y, Alignment</code> | Position of the "Load Game" button.</p>
<p><strong>button_delete</strong> | <code>int, int, alignment : X, Y, Alignment</code> | Position of the "Delete Save" button.</p>
<p><strong>button_exit</strong> | <code>int, int, alignment : X, Y, Alignment</code> | Position of the "Exit to Title" button.</p>
<p><strong>portrait</strong> | <code>rectangle</code> | Position and dimensions of the portrait image.</p>
<p><strong>gameslot</strong> | <code>rectangle</code> | Position and dimensions of the first game slot.</p>
<p><strong>name</strong> | <code>label</code> | The label for the hero's name. Position is relative to game slot position.</p>
<p><strong>level</strong> | <code>label</code> | The label for the hero's level. Position is relative to game slot position.</p>
<p><strong>class</strong> | <code>label</code> | The label for the hero's class. Position is relative to game slot position.</p>
<p><strong>map</strong> | <code>label</code> | The label for the hero's current location. Position is relative to game slot position.</p>
<p><strong>slot_number</strong> | <code>label</code> | The label for the save slot index. Position is relative to game slot position.</p>
<p><strong>loading_label</strong> | <code>label</code> | The label for the "Entering game world..."/"Loading saved game..." text.</p>
<p><strong>sprite</strong> | <code>point</code> | Position for the avatar preview image in each slot</p>
<p><strong>visible_slots</strong> | <code>int</code> | The maximum numbers of visible save slots.</p>
<p><strong>text_trim_boundary</strong> | <code>int</code> | The position of the right-side boundary where text will be shortened with an ellipsis. Position is relative to game slot position.</p>
<p><strong>show_frame_background</strong> | <code>bool</code> | If true, the frame background image is drawn behind the menu.</p>
<hr />
<h4>GameStateNew: Layout</h4>
<p>Description of menus/gamenew.txt</p>
<p><strong>button_prev</strong> | <code>int, int, alignment : X, Y, Alignment</code> | Position of button to choose the previous preset hero.</p>
<p><strong>button_next</strong> | <code>int, int, alignment : X, Y, Alignment</code> | Position of button to choose the next preset hero.</p>
<p><strong>button_exit</strong> | <code>int, int, alignment : X, Y, Alignment</code> | Position of "Cancel" button.</p>
<p><strong>button_create</strong> | <code>int, int, alignment : X, Y, Alignment</code> | Position of "Create" button.</p>
<p><strong>button_permadeath</strong> | <code>int, int, alignment : X, Y, Alignment</code> | Position of checkbox for toggling permadeath.</p>
<p><strong>button_randomize</strong> | <code>int, int, alignment : X, Y, Alignment</code> | Position of the "Randomize" button.</p>
<p><strong>name_input</strong> | <code>int, int, alignment : X, Y, Alignment</code> | Position of the hero name textbox.</p>
<p><strong>portrait_label</strong> | <code>label</code> | Label for the "Choose a Portrait" text.</p>
<p><strong>name_label</strong> | <code>label</code> | Label for the "Choose a Name" text.</p>
<p><strong>permadeath_label</strong> | <code>label</code> | Label for the "Permadeath?" text.</p>
<p><strong>classlist_label</strong> | <code>label</code> | Label for the "Choose a Class" text.</p>
<p><strong>classlist_height</strong> | <code>int</code> | Number of visible rows for the class list widget.</p>
<p><strong>portrait</strong> | <code>rectangle</code> | Position and dimensions of the portrait image.</p>
<p><strong>class_list</strong> | <code>int, int, alignment : X, Y, Alignment</code> | Position of the class list.</p>
<p><strong>show_classlist</strong> | <code>bool</code> | Allows hiding the class list.</p>
<p><strong>class_tip</strong> | <code>int, int, alignment : X, Y, Alignment</code> | Position of the class description tooltip.</p>
<p><strong>show_class_tip</strong> | <code>bool</code> | When true, shows a persistent tooltip with the description of the selected class. Defaults to false.</p>
<p><strong>show_randomize</strong> | <code>bool</code> | Toggles the visibility of the "Randomize" button.</p>
<p><strong>show_permadeath</strong> | <code>bool</code> | Toggles the visibility of the "Permadeath?" checkbox.</p>
<p><strong>random_option</strong> | <code>bool</code> | Initially picks a random character option (aka portrait/name).</p>
<p><strong>random_class</strong> | <code>bool</code> | Initially picks a random character class.</p>
<p><strong>show_frame_background</strong> | <code>bool</code> | If true, the frame background image is drawn behind the menu.</p>
<hr />
<h4>GameStateNew: Hero options</h4>
<p>Description of engine/hero_options.txt</p>
<p><strong>option</strong> | <code>int, string, string, filename, string : Index, Base, Head, Portrait, Name</code> | A default body, head, portrait, and name for a hero.</p>
<hr />
<h4>GameStatePlay: Titles</h4>
<p>Description of engine/titles.txt</p>
<p><strong>title.title</strong> | <code>string</code> | The displayed title.</p>
<p><strong>title.level</strong> | <code>int</code> | Requires level.</p>
<p><strong>title.power</strong> | <code>power_id</code> | Requires power.</p>
<p><strong>title.requires_status</strong> | <code>list(string)</code> | Requires status.</p>
<p><strong>title.requires_not_status</strong> | <code>list(string)</code> | Requires not status.</p>
<p><strong>title.primary_stat</strong> | <code>predefined_string, predefined_string : Primary stat, Lesser primary stat</code> | Required primary stat(s). The lesser stat is optional.</p>
<hr />
<h4>GameStateTitle</h4>
<p>Description of menus/gametitle.txt</p>
<p><strong>logo</strong> | <code>filename, int, int, alignment : Image file, X, Y, Alignment</code> | Filename and position of the main logo image.</p>
<p><strong>play_pos</strong> | <code>int, int, alignment : X, Y, Alignment</code> | Position of the "Play Game" button.</p>
<p><strong>config_pos</strong> | <code>int, int, alignment : X, Y, Alignment</code> | Position of the "Configuration" button.</p>
<p><strong>credits_pos</strong> | <code>int, int, alignment : X, Y, Alignment</code> | Position of the "Credits" button.</p>
<p><strong>exit_pos</strong> | <code>int, int, alignment : X, Y, Alignment</code> | Position of the "Exit Game" button.</p>
<hr />
<h4>GameSwitcher: Default music</h4>
<p>Description of engine/default_music.txt</p>
<p><strong>music</strong> | <code>filename</code> | Filename of a music file to play during game states that don't already have music.</p>
<hr />
<h4>GameSwitcher: Background images</h4>
<p>Description of engine/menu_backgrounds.txt</p>
<p><strong>background</strong> | <code>repeatable(filename)</code> | Filename of a background image to be added to the pool of random menu backgrounds</p>
<hr />
<h4>GameSwitcher: FPS counter</h4>
<p>Description of menus/fps.txt</p>
<p><strong>position</strong> | <code>int, int, alignment : X, Y, Alignment</code> | Position of the fps counter.</p>
<p><strong>color</strong> | <code>color</code> | Color of the fps counter text.</p>
<hr />
<h4>IconManager</h4>
<p>Description of engine/icons.txt</p>
<p><strong>icon_set</strong> | <code>repeatable(icon_id, filename) : First ID, Image file</code> | Defines an icon graphics file to load, as well as the index of the first icon.</p>
<p><strong>text_offset</strong> | <code>point</code> | A pixel offset from the top-left to place item quantity text on icons.</p>
<hr />
<h4>InputState: Default Keybindings</h4>
<p>Description of engine/default_keybindings.txt. Use a bind value of '-1' to clear all bindings for an action. Type may be any of the follwing: 0 = Keyboard, 1 = Mouse, 2 = Gamepad button, 3 = Gamepad Axis. Human-readable key and gamepad mapping names may be used by prefixing the bind with "SDL:" (e.g. "SDL:space" or "SDL:leftstick"). If using the "SDL:" prefix for a gamepad axis, add ":-" to the end of the bind to get the negative direction (e.g. "SDL:leftx:-").</p>
<p><strong>default.cancel</strong> | <code>[int, string], int : Bind, Type</code> | Bindings for "Cancel".</p>
<p><strong>default.accept</strong> | <code>[int, string], int : Bind, Type</code> | Bindings for "Accept".</p>
<p><strong>default.up</strong> | <code>[int, string], int : Bind, Type</code> | Bindings for "Up".</p>