-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTest.mediawiki
More file actions
9629 lines (8814 loc) · 368 KB
/
Test.mediawiki
File metadata and controls
9629 lines (8814 loc) · 368 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
<div style="background:#ffdddd;">
'''DID YOU KNOW?'''
OpenXcom (and also OpenXcom Extended) have a ruleset syntax validation and auto-completion tool (a plugin for VSCode), which automatically finds and highlights all your syntax errors.
'''More info''': https://openxcom.org/forum/index.php/topic,6552.0.html
'''Give it a try!'''
</div>
A reference of the customizable values of everything in a [[Rulesets (OpenXcom)|ruleset]], according to the latest OpenXcom nightly.
* '''Last dev update''': 29th December 2025, by Meridian
* '''Synchronized with''': OpenXcom v1.0 (2025-12-07 nightly build) <span style="background:#ddffdd;">and OpenXcom Extended v8.5 (2025-12-14)</span>
<div style="background:#ddffdd;">
'''IMPORTANT''': The OpenXcom Extended (OXCE) ruleset is highlighted using '''light green background''', just like the one used in this disclaimer. Anything marked green does not work with OpenXcom (OXC).
</div>
Some guidelines:
* If a value is omitted from the ruleset, the default is used. You cannot omit ''required'' values.
* Text strings (eg. names) are represented by string IDs from the [[Translations (OpenXcom)|language files]]
* Numerical IDs (used for sprites, sounds, etc.) start at 0, not 1.
* Boolean (yes/no) values are represented by true/false.
* World coordinates are represented in degrees (see [[WORLD.DAT]]).
* Money amounts (prices, costs, etc.) are represented in dollars.
* All file paths are case insensitive, but IDs (such as string IDs, music names, or cutscene names) are case sensitive. In general, though, if it works on one operating system, it will work on all operating systems.
* Items are ordered as they come in the ruleset. To override this, you can specify a '''listOrder''' attribute. You can find the default listOrders in [[Ruleset List Order (OpenXcom)|Ruleset List Order]].
* <span style="background:#ddffdd;">The YAML parser ''yaml-cpp'' used by OXC and OXCE doesn't support the '''<<:''' operator (see https://support.atlassian.com/bitbucket-cloud/docs/yaml-anchors/). OXCE therefore implemented its own support for the same/similar functionality. It allows you to copy YAML code using anchors and override some of the copied values. OXCE allows this for almost all types of rulesets, via the '''refNode''' attribute. Below is an example for creating a new Laser Sniper Rifle item from an existing Laser Rifle item:</span>
items:
- &STR_LASER_RIFLE # Let's mark laser rifle info with an anchor
type: STR_LASER_RIFLE
size: 0.2
costSell: 36900
weight: 8
#
# a million other attributes...
#
- type: STR_LASER_SNIPER_RIFLE
refNode: *STR_LASER_RIFLE # First, let's copy everything from the STR_LASER_RIFLE anchor. Please note this is NOT inheritance, just a glorified copy-paste.
bigSprite: xxx # And now let's give it a new sprite,
accuracyAimed: 160 # increase aimed shot accuracy
tuAuto: 0 # and disable auto shot.
* <span style="background:#ddffdd;"> OXCE allows changing how lists are overriden in sub-mods using YAML tags:</span>
#base mod:
items:
- type: STR_WEAPON
compatibleAmmo: !info #this tag does not change anything, but when used it will show (in the log file) if the list supports this functionality or not
- STR_AMMO_1
- STR_AMMO_2
#sub-mod
items:
- type: STR_WEAPON
compatibleAmmo: !add #now `STR_WEAPON` will have ammo list equal to `[STR_AMMO_1, STR_AMMO_2, STR_AMMO_3]`
- STR_AMMO_3
#another sub-mod
items:
- type: STR_WEAPON
compatibleAmmo: !remove #now `STR_WEAPON` will have ammo list equal to `[STR_AMMO_1, STR_AMMO_3]`
- STR_AMMO_2
* <span style="background:#ddffdd;"> Another feature (added in OXCE v7.9) allows modders to better control how rulesets are overridden between mods and submods:</span>
items: !info # this tag can be used to check if a given ruleset supports the new features
- type: STR_RANDOM # from OXC, this was effectively split into `update:` and `new:` to make modder's intention clearer
- delete: STR_X # from OXC
- new: STR_UNIQUE_NAME # if an item with this name exists already (i.e. was created by another mod), the game raises a hard error
- override: STR_OLD_NAME # check if this name was used already and update the given item, hard error if the item did not exist
- update: STR_OPTIONAL # check if this name was used already and update the given item, do nothing if the item did not exist
- ignore: STR_TECHNICAL # don't load this ruleset directly (for example because it's used only as a YAML anchor)
=== metadata.yml ===
Special file that defines a mod's metadata.
{| class="wikitable" width="100%"
! width="150"| Value
! width="*" | Description
! width="80" | Default
|-
| '''id'''
| Mod's unique identifier.
| CrossPlatform::baseFilename(path)
|-
| '''name'''
| Mod's name.
| CrossPlatform::baseFilename(path)
|-
| '''description'''
| Mod's description.
| No description.
|-
| '''author'''
| Mod's author(s).
| unknown author
|-
| '''version'''
| Mod's version number. Recommended format is two or three numbers divided by a dot, e.g. '''9.9.9''' or '''1.5.12'''
| 1.0
|- style="background-color:#ddffdd;"
| '''versionDisplay'''
| More human friendly version number (for display purposes), can contain letters and other characters, e.g. '''1.5.12 Blue Skies edition'''.
| Same as '''version'''
|-
| '''isMaster'''
| Is this a master mod?
| false
|-
| '''master'''
| Unique identifier of this mod's required master mod. Use '''*''' to indicate that this mod can be used with any master mod.
| xcom1
|- style="background-color:#ddffdd;"
| '''requiredMasterModVersion'''
| Minimum version number of the required master mod.
|
|-
| '''reservedSpace'''
| How much space (memory) is available for this mod's surface sets and sound sets. Allowed values: from 1 to 100. (1 = 1000 indices, 100 = 100000 indices.)
| 1
|-
| '''requiredExtendedEngine'''
| Name of an OpenXcom engine required by this mod. E.g. '''Extended'''.
|
|-
| '''requiredExtendedVersion'''
| Minimum version of an OpenXcom engine required by this mod. E.g. '''7.9'''.
|
|-
| '''loadResources'''
| '''DO NOT USE''' List of special directories where the game searches for OG resources.
Only relevant for ''top-level master mods'' (e.g. xcom1, xcom2).
Not relevant for normal mods (e.g. Final mod pack).
Also not relevant for master mods, which themselves have a master mod (e.g. XcomFiles, 40k, ...).
|
|-
| '''resourceConfig'''
| Name of a rule file where some OG resource mappings/definitions are located (transparency lookup table definitions, CAT file sound mappings). Usually file named '''vars.rul'''.
At the moment, the only reason why you might want to use this, is when you want to define your own transparency rules for projectile vapor particles.
|
|}
=== vars.rul ===
One file (per mod) selected by '''metadata.yml''', all such files are loaded before any other files in any active mod (since they have impact on how OG resources are loaded/processed).
{| class="wikitable" width="100%"
! width="150"| Value
! width="*" | Description
! width="80" | Default
|-
| '''soundDefs'''
| Mapping of sound effects, between OG CAT file and the game's internal sound set(s).
|
|-
| '''transparencyLUTs'''
| Definitions of different types of transparency for projectile vapor trail.
|
|}
=== Starting Base ===
Defines the content of the base at the start of game.
<div style="background:#ddffdd;">In OXCE, you can optionally define different starting bases for each game difficulty using the following top-level names:
* startingBaseBeginner
* startingBaseExperienced
* startingBaseVeteran
* startingBaseGenius
* startingBaseSuperhuman
If you don't define some of them, the default starting base will be used instead of the missing ones.
The default starting base will also be used for New Battle screen.
</div>
{| class="wikitable" width="100%"
! width="150"| Value
! width="*" | Description
! width="80" | Default
|-
| '''randomSoldiers'''
| Determines number and type of starting X-Com soldiers.
If a mod contains more than one type of soldiers, this can also be specified with:
randomSoldiers:
STR_SOLDIER: 3
STR_ANOTHER_SOLDIER: 7
| 0
|-
| '''scientists'''
| Determines number of starting scientists.
| 0
|-
| '''engineers'''
| Determines number of starting engineers.
| 0
|-
| '''facilities'''
| List of starting base facilities and their position (x and y coordinates being 0-5).
| -
|-
| '''items'''
| List of starting items in the base, excluding items on crafts.
| -
|-
| '''crafts'''
| List of starting crafts in the base and items on board.
| -
|}
OpenXcom uses the same format to define a starting base as for saving/loading a real base (except for '''randomSoldiers''' attribute).
That means you can also define various other parameters in your mod, for example:
* <span style="background:#ddffdd;">predefined location (longitude and latitude in radians)</span>
* <span style="background:#ddffdd;">predefined name</span>
* predefined soldiers (if you don't like to start with randomly generated ones, but like it a bit more RPG)
* transfers that arrive at specified times (you could control various game events/progression with these items)
* base detected by aliens flag (which would allow you for example to start the campaign with an early scripted base defense mission)
* and so on...
The easiest way to create this ruleset, is to copy it from an existing saved game, correct the indentation and manually change the actual content.
The following table completes the list of highest-level attributes you can use.
{| class="wikitable" width="100%"
! width="150"| Value
! width="*" | Description
! width="80" | Default
|- style="background-color:#ddffdd;"
| '''lon'''
| Longitude of the base location, in radians.
| 0.0
|- style="background-color:#ddffdd;"
| '''lat'''
| Latitude of the base location, in radians.
| 0.0
|- style="background-color:#ddffdd;"
| '''name'''
| Base name.
| -
|-
| '''soldiers'''
| List of starting base soldiers, their names, stats and everything else.
| -
|-
| '''transfers'''
| List of items, soldiers, engineers and/or scientists inbound to the starting base with a specified time lag.
| -
|-
| '''research'''
| List of ongoing research projects in the starting base.
| -
|-
| '''productions'''
| List of ongoing manufacturing projects in the starting base.
| -
|-
| '''retaliationTarget'''
| Flag saying whether the aliens know about your starting base or not.
| false
|}
=== Globe ===
Defines the drawing of landmasses and borders on the globe. Also defines mapping between geoscape textures and battlescape appearance.
{| class="wikitable" width="100%"
! width="150"| Value
! width="*" | Description
! width="80" | Default
|-
| '''data'''
| Path to a file, which contains polygon and texture information. (For example WORLD.DAT).
| -
|-
| '''polygons'''
| List of polygons drawn on the globe surface. A triangle consist of seven values: the first number defines the texture, followed by three pairs of (x,y) globe coordinates. Only polygons with 3 or 4 vertices are reliably shown on the globe, i.e. 7 or 9 values per entry.
Note that:
* '''data''' and '''polygons''' define the same thing... use one or another, not both
* each time you define data or polygons, their previous definition is completely deleted (i.e. globe can be defined only as a whole, not incrementally)
| -
|-
| '''polylines'''
| List of border lines. Each list entry consist of a list of (x,y) globe coordinates.
Note that:
* each time you define polylines, their previous definition is completely deleted (i.e. they can be defined only as a whole, not incrementally)
| -
|-
| '''textures'''
| List of globe textures that determine the battlescape appearance of a certain place on the globe.
| -
|-
| '''countryColor'''
| Color of the country labels (0-255).
| 239
|-
| '''cityColor'''
| Color of the city labels (0-255).
| 138
|-
| '''baseColor'''
| Color of the xcom base labels (0-255).
| 133
|-
| '''lineColor'''
| Border line color (0-255).
| 162
|-
| '''oceanPalette'''
| Color range (defined as palette offset) of the "oceans", or better said of the "globe sections not covered by polygons" (0-15).
| 12
|-
| '''oceanShading'''
| Whether ocean shading (32-color) should be used or not.
Notes:
* normally land uses 16-color shading and ocean uses 32-color shading... where "ocean" is defined as "lack of texture", i.e. for UFO lack of land and for TFTD lack of water
* for hybrids (i.e. mods that combine UFO and TFTD textures together), there is no "ocean" anymore, because the globe is fully covered by textures (land and water textures)
* thus the original 32 colors used for ocean shading can be:
** re-used to provide more colors for the textures (2 distinct color ranges, 16 colors each)
** ignored for ocean shading purposes, and used for texture shading purposes instead
| true
|}
==== (Globe) Textures ====
{| class="wikitable" width="100%"
! width="150"| Value
! width="*" | Description
! width="80" | Default
|-
| '''id'''
| ID of the texture.
* Terrain-based textures have positive IDs (0, 1, 2, ...) and are used for drawing globe polygons
* AlienDeployment-based textures have negative IDs (-1, -2, -3, ...) and are '''not''' used for drawing globe polygons
| required
|-
| '''terrain'''
| List of terrains (can be more than one) that correspond to each [[TEXTURE.DAT|Geoscape texture]].
Terrains can be restricted to certain areas on the globe with '''area: (''[lon1, lon2, lat1, lat2]'')''' and '''weight: NUMBER''' that gives their chance of appearance.
These textures are primarily used for UFO landing/crash sites.
Example 1:
globe:
textures:
- id: 0
terrain:
- name: FOREST
area: [0, 360, -90, 0]
- name: JUNGLE
area: [0, 360, 0, 90]
Example 2:
globe:
textures:
- id: 11
terrain:
- name: PIPES
weight: 50
- name: SEABED
weight: 25
- name: CORAL
weight: 25
| -
|-
| '''deployments'''
| Defined by weighted alien deployments (can be more than one), which determine appearance for mission sites (e.g. terror sites, artifact sites, shipping lanes, etc.).
Example:
globe:
textures:
- id: -4
deployments:
STR_CARGO_SHIP_P1: 50
STR_CRUISE_SHIP_P1: 50
| -
|- style="background-color:#ddffdd;"
| '''baseTerrain'''
| In OXCE, the terrain-based textures can additionally have separate terrain defined for base defense missions.
This terrain can be used in map scripting to replace the generic "dirt" blocks with something more fitting (e.g. snow in the arctic or jungle near the equator).
More info: https://openxcom.org/forum/index.php/topic,5108.0.html
| -
|- style="background-color:#ddffdd;"
| '''baseGridSprite'''
| Allows to override xcom base grid sprite (=sprite for a place with no base facility), based on the globe texture, where the base is located.
More info: https://openxcom.org/forum/index.php?topic=12800.0
| 0
|- style="background-color:#ddffdd;"
| '''startingCondition'''
| In OXCE, the textures can have their own starting conditions (with lower priority than deployment starting conditions).
| -
|- style="background-color:#ddffdd;"
| '''fakeUnderwater'''
| In OXCE, the (land) textures can also be flagged as fake underwater textures using this boolean attribute.
Such terrain can support underwater missions, underwater bases/facilities and have separate starting conditions.
More info: https://openxcom.org/forum/index.php/topic,11063.0.html
| false
|- style="background-color:#ddffdd;"
| '''isOcean'''
| In OXCE, the (land) textures can also be flagged as "being ocean", i.e. "not being a texture for anything other than drawing".
More info: https://openxcom.org/forum/index.php?topic=12439.0
| false
|}
=== Countries ===
Defines one of the [[Country Funding (EU)|funding nations]], listed in ''"countries:"''. They're used for activity graphs and player scoring.
<div style="background:#ddffdd;">In OXCE, the same kind of ruleset can be used to define "extra globe labels" so that you can label continents, or anything else on non-Earth globes (e.g. Moon, Mars, Dune, etc.). Of course, nothing is stopping you from using this on the Earth globe too. Listed under its own top-level category ''"extraGlobeLabels:"''.
</div>
{| class="wikitable" width="100%"
! width="150"| Value
! width="*" | Description
! width="80" | Default
|-
| '''type'''
| String ID of the country name.
| ''required''
|- style="background-color:#ddffdd;"
| '''provideBaseFunc'''
| A list of services an xcom base in this country provides after being built.
| -
|- style="background-color:#ddffdd;"
| '''forbiddenBaseFunc'''
| A list of services that cannot be used anymore after an xcom base is built in this country.
| -
|- style="background-color:#ddffdd;"
| '''signedPactEvent'''
| String ID of the event triggered when the country leaves Xcom project.
| -
|- style="background-color:#ddffdd;"
| '''rejoinedXcomEvent'''
| String ID of the event triggered when the country rejoins Xcom project.
| -
|-
| '''fundingBase'''
| Country's base funding, in thousands. The starting funding can be anywhere between 1x and 2x the base funding.
| 0
|-
| '''fundingCap'''
| Country's funding cap, in thousands. Once a country reaches this maximum, it will no longer increase its funding.
| 0
|-
| '''labelLon'''
'''labelLat'''
| Longitude and latitude coordinates of the country's label on the globe. This label is only shown when the globe is zoomed in and "detail" is turned on.
| 0.0
0.0
|- style="background-color:#ddffdd;"
| '''labelColor'''
| Color (0-255) of the country label.
| 0 (not used)
|-
| '''areas'''
| List of "rectangles" on the globe defined as [''lon1'' ''lon2'' ''lat1'' ''lat2'']. Any activity within these areas counts towards the country's graph activity and affects their opinion of the player.
| -
|- style="background-color:#ddffdd;"
| '''zoomLevel'''
| Minimum globe zoom level at which this extra globe label becomes visible.
Note: doesn't work for countries. Only for extra globe labels.
| 0
|}
=== Regions ===
Defines one of the [[Geoscape (EU)#World Regions/Countries|world regions]], listed in ''"regions:"''. They're used for base placement, activity graphs and mission spawning.
{| class="wikitable" width="100%"
! width="150"| Value
! width="*" | Description
! width="80" | Default
|-
| '''type'''
| String ID of the region name.
| ''required''
|- style="background-color:#ddffdd;"
| '''provideBaseFunc'''
| A list of services an xcom base in this region provides after being built.
| -
|- style="background-color:#ddffdd;"
| '''forbiddenBaseFunc'''
| A list of services that cannot be used anymore after an xcom base is built in this region.
| -
|-
| '''cost'''
| Amount of money spent building an X-COM base in this region (first base is free).
| 0
|-
| '''areas'''
| List of "rectangles" on the globe defined as ''[lon1, lon2, lat1, lat2]''. Any activity within these areas counts towards the region's graph activity.
Example:
regions:
- type: STR_EUROPE
areas:
- [335, 60, -70, -35]
| -
|- style="background-color:#ddffdd;"
| '''deleteOldAreas'''
| Can be used in mods to delete areas defined by a parent mod.
| false
|-
| '''regionWeight'''
| Weight of this region when selecting regions for alien missions.
| 0
|-
| '''missionWeights'''
| Weighted list of the different mission types for this region (eg. ''STR_ALIEN_RESEARCH: 14'').
| -
|-
| '''missionZones'''
| List of mission zones. Mission zones are used for generating waypoints for UFO trajectories, and also for spawning mission sites and alien bases.
Each mission zone itself is a list of '''mission areas''', where each area is defined by:
* a "rectangle" (''[lon1, lon2, lat1, lat2]'') defining a relevant section of the globe (does not need to be within the region itself)
* or a single point (''[lon1, lon1, lat1, lat1]'') (a city) on the globe
Example:
missionZones:
- - [326, 353, -85, -81]
- [132, 173, -79, -76]
- - [302, 323, -80, -78]
- [62, 66, -76, -75]
Areas used for mission site spawning additionally have:
* a texture ID (from globe ruleset, this should be the alienDeployment-based texture, usually the ID is a negative number)
* and optionally a city string ID (will be displayed on the globe if defined)
Example:
missionZones:
- - [326, 353, -85, -81, textureID, STR_CITY_NAME]
- [132, 173, -79, -76, textureID, STR_CITY_NAME]
'''Important:''' Crossing the prime meridian in '''missionZones''' requires a different syntax - ''lon2'' cannot be smaller than ''lon1''! This syntax exception does not apply to region '''areas'''.
Example:
# Wrong crossing:
[350, 8, 20, 30]
# Correct crossing:
[350, 368, 20, 30] # 368 (=8+360) also represents 8 degrees, and satisfies the ''lon2 >= lon1'' condition
| -
|-
| '''missionRegion'''
| Spawn mission in this region instead (used for regions without land).
| -
|}
=== Base Facilities ===
Defines one of the [[Base Facilities (EU)|facilities]] that can be built in an X-COM base, listed in ''"facilities:"''.
{| class="wikitable" width="100%"
! width="150"| Value
! width="*" | Description
! width="80" | Default
|-
| '''type'''
| String ID of the facility name.
| ''required''
|- style="background-color:#ddffdd;"
| '''ufopediaType'''
| String ID of alternate ufopedia article for this base facility (when accessed via middle-button click).
More info: https://openxcom.org/forum/index.php?topic=12813.0
| -
|- style="background-color:#ddffdd;"
| '''fakeUnderwater'''
| Defines whether the facility can be built in a standard base, fake underwater base (used by hybrid mods), or both.
Possible options:
* -1 = both (default)
* 0 = only standard base
* 1 = only fake underwater base
| -1
|-
| '''requires'''
| List of [[#Research|topics]] (string IDs) that must be researched to unlock this facility. If none are specified, this facility is unlocked from the start.
| -
|- style="background-color:#ddffdd;"
| '''requiresBaseFunc'''
| A list of services required to build this facility.
| -
|- style="background-color:#ddffdd;"
| '''provideBaseFunc'''
| A list of services this facility provides after being built.
| -
|- style="background-color:#ddffdd;"
| '''forbiddenBaseFunc'''
| A list of services that cannot be used anymore after this facility is built.
| -
|-
| '''spriteShape'''
| Sprite ID from [[BASEBITS.PCK]] used to draw the facility's outer shape in the Basescape and UFOpaedia.
| -1
|-
| '''spriteFacility'''
| Sprite ID from [[BASEBITS.PCK]] used to draw the facility's contents in the Basescape and UFOpaedia. Drawn on top of '''spriteShape'''. Not required for buildings size 2 or larger.
| -1
|- style="background-color:#ddffdd;"
| '''spriteEnabled'''
| Should '''spriteFacility''' over '''spriteShape''' behavior be enabled for this facility? (For 1x1 facilities, it's enabled by default, as in vanilla.)
| false
|- style="background-color:#ddffdd;"
| '''connectorsDisabled'''
| Should the game draw facility connectors leading from/to this facility in the base view?
| false
|- style="background-color:#ddffdd;"
| '''missileAttraction'''
| A weight (i.e. not a percentage) of how likely will alien missiles/bombardments hit this type of facility.
| 100
|- style="background-color:#ddffdd;"
| '''destroyedFacility'''
| String ID of the destroyed version of this facility (must have the same size).
Note: destruction can happen either in Base Defense mission or via Alien missiles/bombardment.
| -
|-
| '''lift'''
| Is this facility an [[Access Lift]]? All base facilities must be connected to the lift.
| false
|-
| '''hyper'''
| Is this facility a [[Hyperwave Decoder]]? Displays extra information for detected UFOs. Only valid for radar facilities. If "true", the radar detection chance will be taken from '''radarChance''' value.
| false
|-
| '''mind'''
| Is this facility a [[Mind Shield]]? Reduces the chance of UFOs finding your base. Does stack (detection chance is inversely proportional to the number of mind shields).
| false
|- style="background-color:#ddffdd;"
| '''mindPower'''
| The power of the mind shield provided by this facility.
| 1
|-
| '''grav'''
| Is this facility a [[Grav Shield]]? Each shield allows for an extra defense round in which all of your base defenses can fire again.
| false
|-
| '''size'''
| Size of the facility, in grid units. Every facility is square, so a size of 1 means 1x1, 2 means 2x2, etc. Bigger facilities are made up of multiple sprites, for example a 2x2 facility will use 4 sprites for '''spriteShape''' and 4 sprites for '''spriteFacility''' (top-left, top-right, bottom-left, bottom-right).
| 1
|- style="background-color:#ddffdd;"
| '''sizeX'''
| Size of the facility in the X direction. Overrides '''size'''.
| 1
|- style="background-color:#ddffdd;"
| '''sizeY'''
| Size of the facility in the Y direction. Overrides '''size'''.
| 1
|-
| '''buildCost'''
| Amount of money spent to build this facility in the base.
| 0
|- style="background-color:#ddffdd;"
| '''refundValue'''
| Amount of money refunded when the facility is dismantled.
| 0
|- style="background-color:#ddffdd;"
| '''buildCostItems'''
| Items needed to build a facility and items "refunded" when the facility is dismantled.
- type: STR_MY_FACILITY
buildCostItems:
STR_ALIEN_ALLOYS:
build: 100
refund: 75
STR_ALIEN_ENTERTAINMENT:
build: 1
refund: 1
| -
|-
| '''buildTime'''
| Amount of days it takes for this facility to be built.
| 0
|-
| '''monthlyCost'''
| Amount of money spent monthly for the maintenance of this facility.
| 0
|-
| '''storage'''
| Amount of storage space (for items) this facility provides. See [[Base Stores]].
| 0
|- style="background-color:#ddffdd;"
| '''storageTiles'''
| A list of tile positions where to place items in this facility's storage. If empty, vanilla checkerboard pattern will be used.
| -
|-
| '''personnel'''
| Amount of personnel (soldiers, scientsts, engineers) these quarters can contain.
| 0
|-
| '''aliens'''
| Amount of live aliens this facility can contain. Only checked if the ''storageLimitsEnforced'' option is enabled.
| 0
|- style="background-color:#ddffdd;"
| '''prisonType'''
| What type of prisoners (aliens) can be held in this facility.
More info: https://openxcom.org/forum/index.php/topic,4830.msg69933.html#msg69933
| 0
|-
| '''crafts'''
| Amount of X-COM craft this facility can contain.
| 0
|-
| '''labs'''
| Amount of lab space this facility provides for research projects.
| 0
|-
| '''workshops'''
| Amount of workshop space this facility provides for manufacture projects.
| 0
|-
| '''psiLabs'''
| Amount of soldier space this facility provides for psionic training.
| 0
|- style="background-color:#ddffdd;"
| '''trainingRooms'''
| Amount of soldier space this facility provides for combat/martial training.
| 0
|-
| '''radarRange'''
| Maximum radar detection range of this facility, in nautical miles.
| 0
|-
| '''radarChance'''
| Chance (0-100%) of this radar detecting a UFO that enters its range.
| 0
|- style="background-color:#ddffdd;"
| '''sightRange'''
| Range at which the facility can detect alien bases in nautical miles.
| 0
|- style="background-color:#ddffdd;"
| '''sightChance'''
| Chance (0-100%) of this facility detecting an alien base that enters its sight range. More info: https://openxcom.org/forum/index.php/topic,8119.0.html
| 0
|-
| '''defense'''
| Offensive power provided by this base defense against attacking UFOs.
| 0
|-
| '''hitRatio'''
| Chance (0-100) of the base defense hitting an attacking UFO.
| 0
|- style="background-color:#ddffdd;"
| '''unifiedDamageFormula'''
| Should unified damage formula/approach be used?
More info: https://openxcom.org/forum/index.php?topic=12315.0
| false
|- style="background-color:#ddffdd;"
| '''shieldDamageModifier'''
| Defines the percent of power that a weapon does to shields (during base defense).
| 100
|- style="background-color:#ddffdd;"
| '''ammoItem'''
| Specifies the ammo item needed for this facility during base defense. More info: https://openxcom.org/forum/index.php/topic,7651.msg133495.html#msg133495
| -
|- style="background-color:#ddffdd;"
| '''ammoMax'''
| Specifies the maximum amount of ammo that can be loaded into this air defense system.
More info: https://openxcom.org/forum/index.php/topic,11760.0.html
| 0
|- style="background-color:#ddffdd;"
| '''rearmRate'''
| Specifies how much ammunition will be loaded into this air defense system per game hour.
| 1
|- style="background-color:#ddffdd;"
| '''ammoNeeded'''
| Specifies the amount of ammo spent when firing once.
| 1
|-
| '''fireSound'''
| Sound ID from [[#Extra_Sounds|GEO.CAT]] played when the base defense fires.
| 0
|-
| '''hitSound'''
| Sound ID from [[#Extra_Sounds|GEO.CAT]] played when the base defense hits a target.
| 0
|- style="background-color:#ddffdd;"
| '''placeSound'''
| Sound ID from [[#Extra_Sounds|GEO.CAT]] played when the facility is placed (or when the facility remains after dismantling another facility).
| 0
|-
| '''mapName'''
| [[MAPS|Map]] associated to this facility in Battlescape base defenses.
| -
|- style="background-color:#ddffdd;"
| '''verticalLevels'''
| Can be used instead of '''mapName'''. Allows generating a base facility map as if it were an ''addBlock'' map script command.
More info: https://openxcom.org/forum/index.php/topic,5316.0.html
| -
|- style="background-color:#ddffdd;"
| '''maxAllowedPerBase'''
| Maximum number of facilities of this type allowed to be built per base.
| 0 (not used)
|- style="background-color:#ddffdd;"
| '''manaRecoveryPerDay'''
| How much mana does the facility recover per day. The facility setting is NOT cumulative, more facilities don't provide more regen. If there are multiple facilities of different type with different regen rate, the best (highest) regen rate is used.
| 0
|- style="background-color:#ddffdd;"
| '''healthRecoveryPerDay'''
| How much health/HP does the facility recover per day. The facility setting is NOT cumulative, more facilities don't provide more regen. If there are multiple facilities of different type with different regen rate, the best (highest) regen rate is used.
FIXME: add a link to more detailed description of this feature!
| 0
|- style="background-color:#ddffdd;"
| '''sickBayAbsoluteBonus'''<br/>'''sickBayRelativeBonus'''
| How much additional HP is healed per day.
- type: STR_FIELD_HOSPITAL
sickBayAbsoluteBonus: 0.75
sickBayRelativeBonus: 0.0
- type: STR_SURGERY_ROOM
sickBayAbsoluteBonus: 0.25
sickBayRelativeBonus: 1.0
- type: STR_REGENERATION_ROOM
sickBayAbsoluteBonus: 0.0
sickBayRelativeBonus: 10.0
- type: STR_GOAULD_SARCOPHAGUS
sickBayAbsoluteBonus: 90.0
sickBayRelativeBonus: 0.0
Examples, considering the ruleset above:
* with no facilities: 1 hp healed per day
* with one field hospital: 1.75 hp per day
* with one surgery room: 1.25 hp per day + 1% of soldier's max hp
* with 2 field hospitals and 2 surgery rooms: 3 hp per day + 2% of soldier's max hp
* with regeneration room: 10% of soldier's max hp... i.e. fully recovered in 10 days or less
* with Goa'uld sarcophagus: 90 hp per day... i.e. fully healed overnight
| 0.0<br/>0.0
|- style="background-color:#ddffdd;"
| '''leavesBehindOnSell'''
| A facility to leave behind a dismantled facility (must be of the same size); or a list of 1x1 facilities to fill in the old facility's place.
| -
|- style="background-color:#ddffdd;"
| '''removalTime'''
| How long facilities left behind when this one is sold should take to build.
Possible options:
* -1 = take '''buildTime''' from the other facilities' rulesets
* 0 = instant
* 1+ = that many days
Note: doesn't do anything without '''leavesBehindOnSell'''
| 0
|- style="background-color:#ddffdd;"
| '''canBeBuiltOver'''
| Can this facility be built over?
| false
|- style="background-color:#ddffdd;"
| '''upgradeOnly'''
| False = a normal facility; true = cannot be built from scratch, can only be upgraded to.
| false
|- style="background-color:#ddffdd;"
| '''buildOverFacilities'''
| A list of other base facilities this one can be built over. If empty, it can be built over anything with ''canBeBuiltOver: true''.
| -
|- style="background-color:#ddffdd;"
| '''rightClickActionType'''
| Which screen should open when R-clicking on this facility in the base view?
Possible options:
* 0 = OpenXcom default
* 1 = Prison (Alien Containment)
* 2 = Manufacturing
* 3 = Research
* 4 = Martial Training
* 5 = Psi Training
* 6 = Barracks
* 7 = Market (Sell)
* other = go to Geoscape
| 0
|}
=== Crafts ===
Defines one of the [[Craft|X-COM crafts]] that go on interception missions, listed in ''"crafts:"''.
{| class="wikitable" width="100%"
! width="150"| Value
! width="*" | Description
! width="80" | Default
|-
| '''type'''
| String ID of the craft name.
| ''required''
|- style="background-color:#ddffdd;"
| '''selectSound'''
| Sound ID from [[#Extra_Sounds|GEO.CAT]] played when a craft is selected on the globe. Can be a list with multiple options.
More info: https://openxcom.org/forum/index.php/topic,10195.msg143053.html#msg143053
| -
|- style="background-color:#ddffdd;"
| '''takeoffSound'''
| Sound ID from [[#Extra_Sounds|GEO.CAT]] played when a craft is taking off from a base. Can be a list with multiple options.
| -
|-
| '''requires'''
| List of [[#Research|topics]] (string IDs) that must be researched to unlock this craft. If none are specified, this craft is unlocked from the start.
| -
|- style="background-color:#ddffdd;"
| '''requiresBuyBaseFunc'''
| A list of services required to buy this craft.
| -
|- style="background-color:#ddffdd;"
| '''requiresBuyCountry'''
| An allied country required to be able to buy this craft.
| -
|-
| '''sprite'''
| Sprite ID from [[BASEBITS.PCK]] used to draw this craft in the Basescape and from [[INTICON.PCK]] used to draw the damage indicator in dogfights.
Note that:
* the corresponding id for INTICON.PCK for the minimized craft icon is sprite+0
* the corresponding id for INTICON.PCK for the dogfight image is sprite+11
* the corresponding id for BASEBITS.PCK is sprite+33
| -1
|- style="background-color:#ddffdd;"
| '''maxSkinIndex'''
| A maximum number of skins supported by this craft. Zero-based. I.e. a craft with 4 possible skins should set this attribute to 3.
| 0
|- style="background-color:#ddffdd;"
| '''skinSprites'''
| A list of additional '''sprite'''s used for alternate craft skins.
| -
|-
| '''marker'''
| Sprite ID from GlobeMarkers spritesheet, used for drawing craft icon on the globe. Usually 3x3 pixels, but can be modded to be bigger.
Note: if not modded, sprite id 1 is used (=vanilla craft marker)
| -1
|-
| '''weapons'''
| Amount of craft weapons this craft can equip. The UI can only display a max of 2 weapons.
<span style="background:#ddffdd;">In OXCE, you can have up to '''4 weapons''' (or other accessories)</span>
| 0
|- style="background-color:#ddffdd;"
| '''weaponTypes'''
| A list defining compatible weapon types for this craft type. Up to 4 slots, and each slot can have up to 4 compatible weapon types.
Example: [0, [0, 1], [2,3], [0,2,4]]
| [0, 0, 0, 0]
|- style="background-color:#ddffdd;"
| '''weaponStrings'''
| A list describing the craft's weapon slots (up to 4 slots).
| [STR_WEAPON_ONE, STR_WEAPON_TWO]
|- style="background-color:#ddffdd;"
| '''fixedWeapons'''
| A list with fixed built-in craft weapons (up to 4 slots). More info: https://openxcom.org/forum/index.php/topic,9047.0.html
| -
|-
| '''soldiers'''
| Amount of units (soldiers and vehicles) this craft can carry.
| 0
|- style="background-color:#ddffdd;"
| '''allowedSoldierGroups'''
| List of soldier type groups allowed onboard. If empty, no restriction.
| -
|- style="background-color:#ddffdd;"
| '''allowedArmorGroups'''
| List of armor groups allowed onboard. If empty, no restriction.
| -
|- style="background-color:#ddffdd;"
| '''onlyOneSoldierGroupAllowed'''
| Whether only one soldier type group (can consist of multiple soldier types) is allowed onboard.
| false
|- style="background-color:#ddffdd;"
| '''maxUnitsLimit'''
| Amount of units (soldiers and vehicles) this craft can carry, INCLUDING all potential extensions provided by craft weapons/modules.
| same as '''soldiers'''
|-
| '''vehicles'''
| Amount of vehicles this craft can carry.
<span style="background:#ddffdd;">Note: in OXCE, it's the amount of vehicles '''and''' 2x2 soldiers. In OXCE, it can also have a value of -1, which means unlimited. Since OXCE v7.10, value -1 is '''not''' supported anymore.</span>
| 0
|- style="background-color:#ddffdd;"
| '''maxHWPUnitsLimit'''