forked from tomsaunders/pyrite
-
Notifications
You must be signed in to change notification settings - Fork 0
/
XvT-format.txt
executable file
·1051 lines (958 loc) · 26.3 KB
/
XvT-format.txt
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
XvT Mission File
Author: Michael Gaisser (mjgaisser@gmail.com)
Site: http://idmr.empirereborn.net
Updated: 2011.08.11
=====
This is going to be a very lengthy definition of the XvT mission file. Due
to the size of the files we'll be dealing with, I'll be using the extended
structure write-up first seen in the TIE95 Mission File definition. If you see
portions of this write-up that look similar to the TIE95 write-up, that's
because they're probably word-for-word.
The file itself is made of up multiple sections, equatable to a single resource
in a LFD with multiple subheaders. For the purpose of these file descriptions,
each section will will begin at '0', such that to find an offset in a later
section, you simply add the total length of the sections before it to get
there. This is what I use in my personal notes, so this is what I am forcing
upon you. I win. I'll try to keep the mission design comments to a minimum,
but I promise nothing.
=====
XvT Mission Overview
The mission files are found in the \TRAIN directory, have the .TIE file
extension and no required naming convention, just that the appropriate .LST
has the filename spelled correctly to be able to play it. The LEC naming
convention for the files is a little more involved than in TIE95 and varies
depending on the type of mission you're creating. Since the naming convention
doesn't have any effect on playing the mission, I'm going to skip over this.
There are already a couple editors out there for XvT missions, most notably
XvTEd. Anyone with a lot of spare time and a hex editor can map out these
values, and whadya know, I was bored :P
=====
XvT Mission Structure
The following values are used through this and all of my file definitions
unless otherwise specified:
NAME LENGTH DESC
---- ------ ----
BOOL 1 0=false, 1=true
BYTE 1 unsigned 8-bit
SBYTE 1 signed 8-bit, [-128, +127]
CHAR 1 ASCII character
SHORT 2 signed Int16
INT 4 signed Int32
STR(*) * null-terminated string, * is an integer
NOTE: Any byte locations that are between defined values and are not explicitly
defined are deemed as Reserved(0), and have only been found to have zero
values. Unknown bytes that have non-zero values have been called out in the
structure. Rest assured you have everything here to piece together a mission
file from scratch, but please note offsets if creating read/write procedures.
NOTE2: Since XvT is a step up from TIE95, the mission file is larger and more
complex. There are many sections that are repeated, and several additional
sections that are introduced, some of which being dynamic in size. You'll see
the appropriate notes as needed.
--
FileHeader
FlightGroup[NumFGs]
Message[NumMessages]
GlobalGoal[10]
Team[10]
Briefing[8]
STR(64)[NumFGs,8,3] FGGoalStrings
STR(64)[10,3,4,3] GlobalGoalStrings
#if (PlatformID==12) (XvT)
STR(1024) MissionDescription
#elseif (PlatformID==14) (BoP)
STR(4096)[3]
#endif
--
struct FileHeader (size 0xA4)
{
0x00 SHORT PlatformID
0x02 SHORT NumFGs
0x04 SHORT NumMessages
0x06 BYTE Unknown1
0x08 BYTE Unknown2
0x0B BOOL Unknown3
0x28 CHAR[16] Unknown4 [seen only in BoP]
0x50 CHAR[16] Unknown5 [seen only in BoP]
0x64 BYTE MissionType
0x65 BOOL Unknown6
0x66 BYTE TimeLimitMinutes
0x67 BYTE TimeLimitSeconds
}
struct FlightGroup (size 0x562)
{
0x000 STR(20) Name
0x014 Role[4]
0x028 STR(20) Cargo
0x03C STR(20) SpecialCargo
0x050 BYTE SpecialCargoCraft
0x051 BOOL RandomSpecialCargo
0x052 BYTE CraftType (enum)
0x053 BYTE NumberOfCraft
0x054 BYTE Status1 (enum)
0x055 BYTE Warhead (enum)
0x056 BYTE Beam (enum)
0x057 BYTE IFF
0x058 BYTE Team
0x059 BYTE GroupAI (enum)
0x05A BYTE Markings (enum)
0x05B BYTE Radio (enum)
0x05D BYTE Formation (enum)
0x05E BYTE FormationSpacing
0x05F BYTE GlobalGroup
0x060 BYTE LeaderSpacing
0x061 BYTE NumberOfWaves
0x062 BYTE Unknown1
0x063 BOOL Unknown2
0x064 BYTE PlayerNumber
0x065 BYTE ArriveOnlyIfHuman
0x066 BYTE PlayerCraft
0x067 BYTE Yaw
0x068 BYTE Pitch
0x069 BYTE Roll
0x06D BYTE ArrivalDifficulty (enum)
0x06E Trigger Arrival1
0x072 Trigger Arrival2
0x078 BOOL Arrival1OrArrival2
0x079 Trigger Arrival3
0x07D Trigger Arrival4
0x083 BOOL Arrival3OrArrival4
0x084 BOOL Arrival12OrArrival34
0x085 BYTE Unknown3 [ARR_DELAY_30SECONDS?]
0x086 BYTE ArrivalDelayMinutes
0x087 BYTE ArrivalDelaySeconds
0x088 Trigger Departure1
0x08C Trigger Departure2
0x092 BOOL Departure1OrDeparture2
0x093 BYTE DepartureDelayMinutes
0x094 BYTE DepartureDelaySeconds
0x095 BYTE AbortTrigger (enum)
0x096 BYTE Unknown4
0x098 BYTE Unknown5
0x09A BYTE ArrivalMothership
0x09B BYTE ArriveViaMothership
0x09C BYTE AlternateArrivalMothership
0x09D BYTE AlternateArriveViaMothership
0x09E BYTE DepartureMothership
0x09F BYTE DepartViaMothership
0x0A0 BYTE AlternateDepartureMothership
0x0A1 BYTE AlternatDepartViaMothership
0x0A2 Order[4]
0x1EA Trigger[2] SkipToOrder4
0x1F4 BOOL Skip1OrSkip2
0x1F5 GoalFG[8]
0x466 Waypt[4]
0x516 BOOL Unknown17
0x518 BOOL Unknown18
0x520 BOOL Unknown19
0x521 BYTE Unknown20
0x522 BYTE Unknown21
0x523 BYTE Countermeasures
0x524 BYTE CraftExplosionTime
0x525 BYTE Status2 (enum)
0x526 BYTE GlobalUnit
0x527 BOOL Unknown22
0x528 BOOL Unknown23
0x529 BOOL Unknown24
0x52A BOOL Unknown25
0x52B BOOL Unknown26
0x52C BOOL Unknown27
0x52D BOOL Unknown28
0x52E BOOL Unknown29
0x530 BYTE[8] OptionalWarheads
0x538 BYTE[4] OptionalBeams
0x53E BYTE[3] OptionalCountermeasures
0x542 BYTE OptionalCraftCategory
0x543 BYTE[10] OptionalCraft
0x54D BYTE[10] NumberOfOptionalCraft
0x557 BYTE[10] NumberOfOptionalCraftWaves
}
struct Role (size 0x4)
{
0x0 CHAR[1] Team
0x1 CHAR[3] Designation (enum)
}
struct Trigger (size 0x4)
{
0x0 BYTE Condition (enum)
0x1 BYTE VariableType (enum)
0x2 BYTE Variable
0x3 BYTE Amount (enum)
}
struct Order (size 0x52)
{
0x00 BYTE Order (enum)
0x01 BYTE Throttle
0x02 BYTE Variable1
0x03 BYTE Variable2
0x04 BYTE Unknown6
0x05 BYTE Unknown7
0x06 BYTE Target3Type (enum VariableType)
0x07 BYTE Target4Type (enum VariableType)
0x08 BYTE Target3
0x09 BYTE Target4
0x0A BOOL Target3OrTarget4
0x0B BYTE Unknown8
0x0C BYTE Target1Type (enum VariableType)
0x0D BYTE Target1
0x0E BYTE Target2Type (enum VariableType)
0x0F BYTE Target2
0x10 BOOL Target1OrTarget2
0x11 BYTE Unknown9
0x12 BYTE Speed
0x13 STR(16) Designation
}
struct GoalFG (size 0x4E)
{
0x00 BYTE Argument
0x01 BYTE Condition (enum)
0x02 BYTE Amount (enum)
0x03 SBYTE Points
0x04 BOOL Enabled
0x05 BYTE Team
0x06 BOOL Unknown10
0x07 BOOL Unknown11
0x08 BOOL Unknown12
0x0B BYTE Unknown13
0x0C BOOL Unknown14
0x0D BYTE Reserved (0) Unknown15
0x0E BYTE Unknown16
}
struct Waypt (size 0x2C)
{
0x00 SHORT[4] StartPoints
0x08 SHORT[8] Waypoints
0x18 SHORT Rendezvous
0x1A SHORT Hyperspace
0x1C SHORT[8] Briefings
}
struct Message (size 0x74)
{
0x00 SHORT MessageIndex
0x02 CHAR[64] Message
0x42 BYTE[10] SentToTeams
0x4C Trigger[2]
0x56 BOOL Trigger1OrTrigger2
0x57 Trigger[2]
0x61 BOOL Trigger3OrTrigger4
0x62 STR(16) EditorNote
0x72 BYTE DelaySeconds
0x73 BOOL Trigger12OrTrigger34
}
struct GlobalGoal (size 0x80)
{
0x00 SHORT Reserved (3)
0x02 GoalGlobal[3]
}
struct GoalGlobal (size 0x2A)
{
0x00 Trigger[2]
0x0A BOOL Trigger1OrTrigger2
0x0B Trigger[2]
0x15 BOOL Trigger2OrTrigger3
0x27 BOOL Trigger12OrTrigger34
0x29 SBYTE Points
}
struct Team (size 0x1E7)
{
0x000 SHORT Reserved (1)
0x002 STR(16) Name
0x01A BOOL[10] Allegiances
0x024 CHAR[64][6] EndOfMissionMessages
}
struct Briefing
{
0x000 SHORT RunningTime
0x002 SHORT Unknown1
0x004 SHORT StartEvents
0x006 INT EventsLength
0x00A Event[]
0x334 Tag[32]
String[32]
}
struct Event
{
0x0 SHORT Time
0x2 SHORT Type (enum EventType)
0x4 SHORT[] Variables
}
struct Tag
{
0x0 SHORT Length
0x2 CHAR[Length]
}
struct String
{
0x0 SHORT Length
0x2 CHAR[Length]
}
=====
XvT Mission Detail
Hopefully I named the variables descriptive enough for you that you can figure
out what they mean, but I'm going to delve into each section anyway.
Supplementary definitions and lists follow after the detail.
-- FileHeader --
Much like TIE95, the first 6 bytes are well-defined. The PlatformID byte can be
one of two values.
12 XvT
14 BoP
The only known difference between platforms is seen at the very end, and a few
more Unknown values
The MissionType value defines the mission as either a Training (normal) mission
or a combat mission.
00 Training
01 Unknown
02 Melee
03 Multiplayer Training
04 Multiplayer Combat
Following that are the TimeLimit values, and a seemingly bunch of blank space.
-- FlightGroup --
The first string is obvious. The Pilot string from TIE95 has been removed, and
instead there's a new section for craft roles. This is where the specialized
messages are controlled. The full listing will be below. Roles can only be
set for Imperials, Rebels, Team 3 and Team 4. It is also possible to set a
role for all teams. The Designation stored is only the first three letters of
the full item. The Team is a CHAR and can have these values:
31 '1' Imperial
32 '2' Rebel
33 '3' Team 3
34 '4' Team 4
61 'a' All
68 'h' Unknown
It is unknown if the remaining teams can have roles, but they have been seen
in LEC-produced missions. An alternate usage seen in LEC missions is defining
an AI level across both the Team and Designation fields, instead using this
area as a different string value. The effect of this is unknown, as the strings
seen don't match the craft's, but it's possible that it may instead give the
Designation to a team, it may give it to a certain AI level.
Now we're back to traditional values, with both Cargo strings, and a bunch of
familiar values you've seen in TIE95. The only item inserted here is Team,
which should be easy enough to figure out. Radio operates differently
in XvT. Instead of a binary switch, the value can be set to any team or
player, 1-8. The full listing is defined later.
Formation is obvious, but I'll explain the next couple. FormationSpacing is
the spacing between the craft. GlobalGroup is a great way grouping (gasp)
craft primarily for order and trigger use. Instead of listing out each FG
or craft type in a order you can lump everything to a GG and use a single
target. LeaderSpacing is how far ahead of the rest of the flight group the
flight leader is. Having a flight leader way out front can absorb fire and let
the rest of the group fire salvos before being attacked themselves.
NumberOfWaves is zero-indexed, but the number you'll likely see in editors is
the number of total waves. A few values have been inserted here, the first
being PlayerNumber. One-indexed, with zero meaning AI-controlled. Next is
ArriveOnlyIfHuman, which is a boolean value that as its name suggests, when
active will prevent a Flight Group from appearing in the mission if there isn't
a human pilot behind the controls. PlayerCraft works the same as TIE, with
00 being the default and 01 starting at position 2.
Yaw, Pitch and Roll values only work for Space Objects (mines, buoys, etc), and
like TIE the flight engine automaticlly adds a -90° (nose down) pitch angle.
Another obvious value, then the Arrival Triggers. In sentence form, Triggers
are "if Amount of VariableType Variable are Condition, then true". The Arrival
and Departure triggers are just that. The Alternate triggers are there for if
the originals can't be satisfied (mothership isn't in play). *Or* booleans are
evaluated as And=false, Or=true. For the case of Triggers, determines if one or
both Triggers must be completed to evaluate to true. The 12Or34 value likewise
detmines if both trigger pairs must evaluate to true or not. The ARR_DELAY
works as expected, with the countdown starting after the Trigger has been
fired. The DEP_DELAY changed from TIE, in that it now too starts the countdown
from the firing of the Trigger. The AbortTrigger value applies only to
individual craft, not the entire flight group. The Arrive/DepartViaMothership
values when false will cause craft to use hyperspace.
Orders, they're what make the world go 'round. Pick the Order from the list
and go from there. Throttle is expressed as (10 - %Throttle / 10). So 100%
Throttle would be 00, 90% would be 01, 80% would be 02, etc. The Variables are
controlled by the order itself, as different orders take different amounts for
different reasons. Target# and Target#Type are the same as a Trigger's Variable
and VariableType. The Speed value can override the simple Throttle method
and set Flight Group's speed in MGLT. Helpful for convoys of differing craft.
The value stored is not actually the MGLT value, but a fairly close
approximation of MGLT / 2.2235 (I say fairly close because that's what I
tweaked the multipler to get no difference up to index 100). The Designation
string is a note that will show in the CMD as the craft's orders when you
target it.
XvT also gives us the first attempt at a dynamic mission with the
SkipToOrder4 triggers. As you can guess, if this trigger fires the FG will
immediately jump to their Order[3]. There is a number of uses for this, but
that's best saved for a mission creation guide.
Goals are for that specific flight group. In XvT you have 8 for a given FG,
and all can be given point values, stored as (Points / 250), yielding a range
of [-32000, +31750]. A new value in XvT is the Argument, which is defined as
00 must
01 must NOT
02 BONUS must
03 BONUS must NOT
The Team values lets you assign to which team the goals apply, and the Enabled
is just another boolean on/off switch. One of the Unkonwns in the goal may be
time related, as XvTEd has a "Time?" box, but this isn't something I've played
with yet. For the love of God use these goals instead of Global Goals if
possible.
Waypoints are pretty simple, the array is X, Y, Z and Enabled in that order.
The values are expressed as (Coordinate * 160), such that a value of 50 is
0.50km, A0 is 1.00km, etc. The Enable value just tells the application if it
needs to pay attention to it or not and is boolean, although it does occupy a
SHORT. If more than one StartPoint is enabled, the application will pick one to
use. Note that there are 8 different briefing WPs you can use, one for each.
Now here is where the bulk of the new material has been placed. Starting off
with the Countermeasures, this is a very short list of
00 None
01 Chaff
02 Flare
CraftExplosionTime acts strangely, and I haven't pinned it down exactly yet.
It does affect how long it takes for a dying craft to dissappear, but seems to
act differently with different ship classes and there is an unknown multipler
from the stored value to seconds.
Another Status value for you to use, followed by GlobalUnit. Similar to GG,
GU can take multiple Flight Groups and assign them a single number for easy
triggers and targets. Another use is to share craft numbering.
The Optional values are the alternate loadouts that the player can select when
going over his craft. As you can see you can list the majority of items and
several craft at any given time. The Category value allows you to easily
select a given ship list.
00 None
01 All Flyable
02 All Rebel Flyable
03 All Imperial Flyable
04 User Defined
-- Section 2a - Backdrops --
Backdrops (stars, planets, etc) are special types of flight groups. Value
definitions change for these purposes, which will be laid out here.
The primary value here is Status1, which becomes the Backdrop value. This
determines the graphic used. The majority of other values are ignored.
-- Message --
A simple section, there is the message string, the SendTo* array, the triggers,
a delay, and the *Or* value. The EditorNote serves no purpose within the game
itself, and is merely there for bookkeeping use in the editor. The only special
item of note is that the Delay value is evaluated to (seconds / 5), such that
01 is 5s, 03 is 15s, etc.
The message string actually holds a second purpose, that is defining the color
of the message itself. The default message color is red, if the message starts
with '1' it is green, '2' is blue and '3' is yellow. The number will not appear
when displayed in-game.
-- GlobalGoal --
When FG goals just won't cut it, that's what there are for. Nothing really new
here, Points is the same as GoalFG.Points. The array is Primary, Prevent and
Secondary in that order. This Section is repeated 10 times, once for each team.
-- Team --
This section also repeats 10 times, once for each team. In here we have
obviously the Name, its alliances (boolean values), and the mission goal
messages. There's enough blank space at the end of the section for another
string, but as far as I know it's never used. The goal messages also follow
the same color behaviour as in-flight messages.
EndOfMissionMessages are 64 character strings, not terminated. It's really a
[64][3,2] array, as the strings are PrimaryComplete1, PrimaryComplete2,
PrimaryFailed1, PrimaryFailed2, SecondaryComplete1, SecondaryComplete2.
-- Briefing --
Okay, we finally get to the briefing. The command listing itself I'll leave
for the list definition, that'll also have the variable listing as well. The
first value is the duration of the briefing itself in ticks. XvT uses 0x14
ticks per second.
Each Event is marked by the briefing time (in ticks) and the EventType,
followed by 0-4 additional variables. These variables are to be omitted if
they are not used for a given command. The last four active bytes in the Event
array is always 0F 27 22 00, which is the EndBriefing command at time 9999, and
usually isn't the last four bytes in the section (that would be a rather busy
briefing).
The StartsLength value is the number of SHORTs, Variables included, that occur
at Time=0. EventsLength is the total number of SHORTs occupied in the Events
array up to and including the EndBriefing command.
The Tag and String arrays are not fixed sizes. They have a minimum length of
64 bytes, which is the case of every length being zero. If a Length is zero,
then the CHAR[] is omitted. That's the real highlight right there.
-- FGGoalStrings --
Simple, fast, and the majority of the time empty. Instead of using the default
strings on the goal listing you can define your own here. This section is a
fixed size, and occurs once for each Flight Group.
The array structure is 3 strings per goal, 8 goals per FG. Incomplete, Complete
and Failed in that order.
-- GlobalGoalStrings --
For the most part, the same as FGGoalStrings. Define your own strings, this
section is always here with a fixed size and repeats 10 times, once for each
team.
The array structure here is 3 strings per Trigger, 4 Triggers per goal, 3 goals
per Team. Strings are Incomplete, Complete and Failed in that order. Goals are
Primary, Prevent and Secondary in that order.
Prevent Failed is always empty. Secondary Incomplete and Failed are always
empty.
-- MissionDescription --
As noted in the structure listing, this section differs depending on platform.
It's a really long string(s), it's so hard. For BoP, the array is
SuccessfulDebrief, FailedDebrief, MissionDescription in that order.
There you have it, the XvT Mission file format. Enjoy :P
=====
List Definitions
Designation
00 None
01 Base
02 Command Ship
03 Convoy Craft
04 Manufacturing Facility
05 Mission Critical Craft
06 Primary Target
07 Reload Craft
08 Resource Center
09 Secondary Target
0A Station
0B Strike Craft
0C Tertiary Target
CraftType
00 None
01 X-wing
02 Y-wing
03 A-wing
04 B-wing
05 TIE Fighter
06 TIE Interceptor
07 TIE Bomber
08 TIE Advanced
09 *TIE Defender
0A Unused
0B Unused
0C *Missile Boat
0D T-wing
0E Z-95 Headhunter
0F R-41 Starchaser
10 Assault Gunboat
11 Shuttle
12 Escort Shuttle
13 System Patrol Craft
14 *Scout Craft
15 Stormtrooper Transport
16 Assault Transport
17 Escort Transport
18 Tug
19 Combat Utility Vehicle
1A Container A
1B Container B
1C Container C
1D Container D
1E Heavy Lifter
1F Unused
20 Bulk Freighter
21 Cargo Ferry
22 Modular Conveyor
23 *Container Transport
24 Medium Transport
25 Murrian Transport
26 Corellian Transport
27 Unused
28 Corellian Corvette
29 Modified Corvette
2A Nebulon-B Frigate
2B Modified Frigate
2C *C-3 Passenger Liner
2D *Carrack Cruiser
2E Strike Cruiser
2F Escort Carrier
30 Dreadnaught
31 Mon Calamari Cruiser
32 Light Mon Calamari Cruiser
33 Interdictor Cruiser
34 Victory-class Star Destroyer
35 Imperator-class Star Destroyer
36 Executor-class Star Destroyer
37 Container E
38 Container F
39 Container G
3A Container H
3B Container I
3C Platform A
3D Platform B
3E Platform C
3F Platform D
40 Platform E
41 Platform F
42 Asteroid R&D Station
43 Asteroid Laser Battery
44 Asteroid Warhead Battery
45 X/7 Factory
46 Satellite 1
47 Satellite 2
48 Unused
49 Unused
4A Unused
4B Mine A
4C Mine B
4D Mine C
4E Gun Emplacement
4F Unused
50 Probe A
51 Probe B
52 Unused
53 Nav Buoy A
54 Nav Buoy B
55 Unused
56 Asteroid Field
57 Planet
58 Unused
59 Unused
5A Shipyard
5B Repair Yard
5C Modified Strike Cruiser
Status
00 None
01 2X Warheads
02 1/2 Warheads
03 Disabled
04 1/2 Shields
05 No Lasers
06 No Hyperdrive
07 Shields 0%, charging
08 Shields added or 200%
09 Hyperdrive added
0A Unknown
0B Unknown
0C (200% Shields)
0D Shields 50%, Charging
0E (No Lasers)
0F Unknown
10 Shields + Hyperdrive added
11 Unknown
12 200% Shields
13 (50% Shields)
14 Invincible
15 Infinite Warheads
Warhead
00 None
01 Heavy Rocket
02 Space Bomb
03 Concussion Missile
04 Torpedo
05 Advanced Concussion Missile
06 Advanced Torpedo
07 Mag Pulse Torpedo
Beam
00 None
01 Tractor Beam
02 Jamming Beam
03 Decoy Beam
GroupAI
00 Rookie (None)
01 Officer
02 Veteran
03 Ace
04 Top Ace
05 Jedi (Invincible)
Markings
00 Red (TIE - None)
01 Gold (TIE - Red)
02 Blue (TIE - Gold)
03 Green (TIE - Blue)
Radio
00 None
01 Team 1 (Imperial)
02 Team 2 (Rebel)
03 Team 3
04 Team 4
05 Team 5
06 Team 6
07 Team 7
08 Team 8
09 Player 1
0A Player 2
0B Player 3
0C Player 4
0D Player 5
0E Player 6
0F Player 7
10 Player 8
Formation
00 Vic
01 Finger Four
02 Line Astern
03 Line Abreast
04 Echelon Right
05 Echelon Left
06 Double Astern
07 Diamond
08 Stack
09 High X
0A Vic Abreast
0B High Vic
0C Reverse High Vic
0D Reverse Line Astern
0E Stacked Low
0F Abreast Right
10 Abreast Left
11 Wing Forward
12 Wing Back
13 Line Astern Up
14 Line Astern Down
15 Abreast V
16 Abreast Inverted V
17 Double Astern Mirror
18 Double Stacked Astern
19 Double Stacked High
1A Diamond 1
1B Diamond 2
1C Flat Pentagon
1D Side Pentagon
1E Front Pentagon
1F Flat Hexagon
20 Side Hexagon
21 Front Hexagon
22 Single Point
ArrivalDifficulty
00 All
01 Easy
02 Medium
03 Hard
04 Medium, Hard
05 Easy, Medium
Condition
00 Always (true)
01 Created
02 Destroyed
03 Attacked
04 Captured
05 Inspected
06 Boarded
07 Docked
08 Disabled
09 Survived (exist)
0A None (false)
0B Unknown (---)
0C Completed mission
0D Completed Primary Goals
0E Failed Primary Goals
0F Completed Secondary Goals
10 Failed Secondary Goals
11 Completed Bonus Goals
12 Failed Bonus Goals
13 Dropped off
14 Reinforced
15 0% Shields
16 50% Hull
17 Out of Warheads
18 Unknown (arrive?)
19 be dropped off
1A destroyed in 1 hit
1B NOT be disabled
1C NOT be picked up
1D destroyed w/o Inspection
1E be docked with
1F NOT be docked with
20 begin boarding
21 NOT begin boarding
22 50% Shields
23 25% Shields
24 75% Hull
25 25% Hull
26 Unknown
27 Unknown
28 Unknown
29 be all Player Craft
2A reinforced by AI?
2B come and go
2C be picked up
2D withdraw
2E be carried away
VariableType
00 None
01 Flight Group
02 CraftType (enum)
03 CraftCategory (enum)
04 ObjectCategory (enum)
05 IFF
06 Order (enum)
07 CraftWhen (enum)
08 Global Group
0C Team
15 All Teams except
17 Global Unit
CraftCategory
00 Starfighters
01 Transports
02 Freighters/Containers
03 Starships
04 Utility Craft
05 Platforms/Facilities
06 Mines
ObjectCategory
00 Craft
01 Weapons
02 Space Objects
Amount
00 100%
01 75%
02 50%
03 25%
04 At least one
05 All but one
06 Special craft
07 All non-special craft
08 All non-player craft
09 Player's craft
0A 100% of first wave
0B 75% of first wave
0C 50% of first wave
0D 25% of first wave
0E At least one of first wave
0F All but one of first wave
10 66%
11 33%
12 Each craft
AbortTrigger
00 None
01 0% Shields
02 Unknown
03 Out of warheads
04 50% Hull
05 Attacked
06 50% Shields
07 25% Shields
08 75% Hull
09 25% Hull
Order
00 Hold Station
01 Go Home
02 Circle
Var1 Number of Loops
03 Circle and Evade
Var1 Number of Loops
04 Rendezvous
Var1 Number of Dockings
05 Disabled
Var1 Number of Dockings
06 Await Boarding
Var1 Number of Dockings
07 Attack
08 Attack Escorts
09 Protect
0A Escort
Var2 Attack Player (0/1)
0B Disable
0C Board and Give Cargo
Var1 Docking Time (seconds / 5)
Var2 Number of Dockings
0D Board and Take Cargo
Var1 Docking Time (seconds / 5)
Var2 Number of Dockings
0E Board and Exchange Cargo
Var1 Docking Time (seconds / 5)
Var2 Number of Dockings
0F Board and Capture Cargo
Var1 Docking Time (seconds / 5)
Var2 Number of Dockings
10 Board and Destroy Cargo
Var1 Docking Time (seconds / 5)
Var2 Number of Dockings
11 Pick up
Var1 Docking Time (seconds / 5)
12 Drop off
Var1 Deploy Time?
Var2 Flight Group
13 Wait
Var1 Wait time (seconds / 5)
14 SS Wait
Var1 Wait time (seconds / 5)
15 SS Patrol Loop
Var1 Number of Loops
16 SS Await Return
17 SS Launch
18 SS Protect
19 SS Wait and Protect
1A SS Patrol and Attack
1B SS Patrol and Disable
1C SS Hold Steady
Var1 Wait time (seconds / 5)
1D SS Go Home
1E SS Wait
Var1 Wait time (seconds / 5)
1F SS Board
Var1 Docking Time (seconds / 5)
Var2 Number of Dockings
20 Board to Repair
Var1 Docking Time (seconds / 5)
Var2 Number of Dockings
21 Hold Station
22 Hold Steady
23 SS Hold Station
24 Self-destruct
Var1 Delay Time (seconds / 5)
25 Kamikaze
26 SS Disabled
27 SS Hold Steady
CraftWhen
01 Inspected
02 Boarded
04 Disabled
05 Attacked
06 0% Shields?
07 Special craft
08 Non-special craft
09 Player's craft
0A Non-player's craft
0C not disabled
EventType
03 Stop
04 Title Text
Var1 String#
05 Caption Text
Var1 String#
06 Move Map
Var1 X
Var2 Y
07 Zoom Map
Var1 X
Var2 Y
08 Clear FG Tags
09 FG Tag 1
Var1 Flight Group
0A FG Tag 2
Var1 Flight Group
0B FG Tag 3
Var1 Flight Group
0C FG Tag 4
Var1 Flight Group
0D FG Tag 5
Var1 Flight Group
0E FG Tag 6