Difference between revisions of "CRAFT.DAT"

From UFOpaedia
Jump to navigation Jump to search
(→‎Structure: Added a couple more entries due to recent tests.)
 
(33 intermediate revisions by 8 users not shown)
Line 1: Line 1:
This file contains information specific to the crafts in the game. Both XCom and Alien crafts (including hidden ones) are in this file, though the values for the alien craft are still shrouded in mystery.
+
This file contains information specific to the crafts in the game. Both X-COM and Alien crafts (including hidden ones) are in this file, though the values for the alien craft are still shrouded in mystery.
  
==Structure==
+
Note that [[CRAFT.DAT (TFTD)|TFTD uses a different version of this file]].
 +
 
 +
 
 +
==UFO Structure==
 
There are 50 records each having 104 bytes long for a maximum file size of 5,200 bytes. All offsets and values are in decimal.
 
There are 50 records each having 104 bytes long for a maximum file size of 5,200 bytes. All offsets and values are in decimal.
  
* '''0 (1 Byte)''' - Craft Type, Possible Values are the same as [[GEODATA.DAT]]:
+
{| class="wikitable"
 +
|-
 +
!Offset<br>(Decimal)
 +
!Offset<br>(Hex)
 +
!Usage
 +
|- valign="top"
 +
!<span id="0"></span>0
 +
!<span id="0x00"></span>0x00
 +
|Craft type, Possible values are the same as [[GEODATA.DAT]]:
 
     *HUMAN*          *ALIEN*         
 
     *HUMAN*          *ALIEN*         
  0 - Skyranger    5 - Small Scout      255 - Entry Not Used
+
  0 - [[Skyranger]]     5 - [[Small Scout]]     255 - Entry Not Used
  1 - Lightning    6 - Medium Scout
+
  1 - [[Lightning]]     6 - [[Medium Scout]]
  2 - Avenger      7 - Large Scout
+
  2 - [[Avenger]]       7 - [[Large Scout]]
  3 - Interceptor  8 - Harvester
+
  3 - [[Interceptor]]   8 - [[Harvester]]
  4 - Firestorm    9 - Abductor
+
  4 - [[Firestorm]]     9 - [[Abductor]]
                   10 - Terror Ship
+
                   10 - [[Terror Ship]]
                   11 - Battleship
+
                   11 - [[Battleship]]
                   12 - Supply Ship
+
                   12 - [[Supply Ship]]
 
+
|- valign="top"
Offsets 1 and 5 refer to the weapon placed in the left and right slots respectively. (The Lightning does not have a center weapon type, only a left). Their possible values are listed here:
+
|colspan=3|Offsets 1 and 5 refer to the weapon placed in the left and right slots respectively. (The Lightning does not have a center weapon type, only a left). Their possible values are listed here:
  0 - Stingray
+
  0 - [[Stingray]]
  1 - Avalanche
+
  1 - [[Avalanche]]
  2 - Cannon
+
  2 - [[Cannon]]
  3 - Fusion Ball
+
  3 - [[Fusion Ball]]
  4 - Laser Cannon
+
  4 - [[Laser Cannon]]
  5 - Plasma Cannon
+
  5 - [[Plasma Beam]]
 
  255 - No Weapon
 
  255 - No Weapon
 
+
|- valign="top"
* '''1 (1 Byte)''' - Left Weapon Type
+
!<span id="1"></span>1
* '''2-3 (2 Bytes)''' - Left Ammo*
+
!<span id="0x01"></span>0x01
* '''4 (1 Byte)''' - Unknown, NEED HELP
+
|Left weapon type
* '''5 (1 Byte)''' - Right Weapon Type
+
|- valign="top"
* '''6-7 (2 Bytes)''' - Right Ammo*
+
!<span id="2-3"></span>2-3
<small>('''*NOTE''': Ammo values normally do not exceed 100, but since the variable is stored as 2 bytes you can crank the total up to 32,767).</small>
+
!<span id="0x02-0x03"></span>0x02-0x03
 
+
|Left ammo
* Offsets 8 - 9 are unknown
+
|- valign="top"
* '''10-11 (2 Bytes)''' - Damage, that is the amount it currently has taken. This value divided by the crafts damage capacity gives the percentage shown in-game.
+
!<span id="4"></span>4
* '''12-13 (2 Bytes)''' - Altitude of craft. Is a lookup within English.dat for string.
+
!<span id="0x04"></span>0x04
 +
|Indicates flight mode
 +
0 - No destination set [at base]
 +
1 - Single destination
 +
2 - Multiple destinations determined randomly by in-game routine [UFO only]
 +
|- valign="top"
 +
!<span id="5"></span>5
 +
!<span id="0x05"></span>0x05
 +
|Right weapon type
 +
|- valign="top"
 +
!<span id="6-7"></span>6-7
 +
!<span id="0x06-0x07"></span>0x06-0x07
 +
|Right ammo
 +
|- valign="top"
 +
!<span id="8-9"></span>8-9
 +
!<span id="0x08-0x09"></span>0x08-0x09
 +
|Unused.
 +
|- valign="top"
 +
!<span id="10-11"></span>1011
 +
!<span id="0x0A-0x0B"></span>0x0A-0x0B
 +
|Damage, that is the amount it currently has taken. This value divided by the crafts damage capacity gives the percentage shown in-game.
 +
|- valign="top"
 +
!<span id="12-13"></span>12-13
 +
!<span id="0x0C-0x0D"></span>0x0C-0x0D
 +
|Altitude of craft. Is a index within [[ENGLISH.DAT]] for string.
 
  0 = GROUND *
 
  0 = GROUND *
 
  1 = VERY LOW
 
  1 = VERY LOW
Line 39: Line 74:
 
  3 = HIGH
 
  3 = HIGH
 
  4 = VERY HIGH
 
  4 = VERY HIGH
5 = Detected
 
6 = SIZE
 
etc
 
 
<small>('''*NOTE''': If craft is airborne and you change it to this value the altitude will remain the same. Speed must be edited to 0 for the change to hold.)</small>
 
<small>('''*NOTE''': If craft is airborne and you change it to this value the altitude will remain the same. Speed must be edited to 0 for the change to hold.)</small>
 
+
|- valign="top"
* '''14-15 (2 Bytes)''' - Speed of craft.  
+
!<span id="14-15"></span>14-15
 
+
!<span id="0x0E-0x0F"></span>0x0E-0x0F
* Offsets 16-23 are unknown
+
|Speed of craft.
* '''24-25 (2 bytes)''' - Fuel, amount remaining. This value divided by the crafts total fuel capacity gives the percentage shown in-game.
+
|- valign="top"
* '''26 (1 Byte)''' - Base Reference as an index to [[LOC.DAT]]
+
!<span id="16-17"></span>16-17
* Offsets 27-41 are unknown
+
!<span id="0x10-0x11"></span>0x10-0x11
* '''42 (1 Byte)''' - Status
+
|Index into [[LOC.DAT]] referencing the destination - for example, waypoints for X-COM craft, or X-COM bases for alien craft.
 +
|- valign="top"
 +
!<span id="18-19"></span>18-19
 +
!<span id="0x12-0x13"></span>0x12-0x13
 +
|Index into [[INTER.DAT]] when the ship is in interception mode.
 +
|- valign="top"
 +
!<span id="20-21"></span>20-21
 +
!<span id="0x14-0x15"></span>0x14-0x15
 +
|Next UFO waypoint coordinate X (longitude).
 +
|- valign="top"
 +
!<span id="22-23"></span>22-23
 +
!<span id="0x16-0x17"></span>0x16-0x17
 +
|Next UFO waypoint coordinate Y (latitude).
 +
|- valign="top"
 +
!<span id="24-25"></span>24-25
 +
!<span id="0x18-0x19"></span>0x18-0x19
 +
|Fuel, amount remaining. This value divided by the crafts total fuel capacity gives the percentage shown in-game.
 +
|- valign="top"
 +
!<span id="26-27"></span>26-27
 +
!<span id="0x1A-0x1B"></span>0x1A-0x1B
 +
|Base reference as an index to [[LOC.DAT]].
 +
|- valign="top"
 +
!<span id="28-29"></span>28-29
 +
!<span id="0x1C-0x1D"></span>0x1C-0x1D
 +
|Mission type craft is on. Is an index within [[ENGLISH.DAT]] for the string (558 + this value).
 +
0 = Alien Research
 +
1 = Alien Harvest
 +
2 = Alien Abduction
 +
3 = Alien Infiltration
 +
4 = Alien Base
 +
5 = Alien Terror
 +
6 = Alien Retaliation
 +
7 = Alien Supply
 +
|- valign="top"
 +
!<span id="30-31"></span>30-31
 +
!<span id="0x1E-0x1F"></span>0x1E-0x1F
 +
|Zone where mission is being carried out. Is an index within [[ENGLISH.DAT]] for string (543 + this value).
 +
0 = North America
 +
1 = Arctic
 +
2 = Antarctica
 +
3 = South America
 +
4 = Europe
 +
5 = North Africa
 +
6 = Southern Africa
 +
7 = Central Asia
 +
8 = South East Asia
 +
9 = Siberia
 +
10 = Australasia
 +
11 = Pacific
 +
12 = North Atlantic *
 +
13 = South Atlantic *
 +
14 = Indian Ocean *
 +
<small>('''*NOTE''': Unused zones.)</small>
 +
|- valign="top"
 +
!<span id="32-33"></span>32-33
 +
!<span id="0x20-0x21"></span>0x20-0x21
 +
|UFO trajectory segment (ranges from 0-7).
 +
|- valign="top"
 +
!<span id="34-35"></span>34-35
 +
!<span id="0x22-0x23"></span>0x22-0x23
 +
|UFO trajectory type (ranges from 0-9).
 +
|- valign="top"
 +
!<span id="36-37"></span>36-37
 +
!<span id="0x24-0x25"></span>0x24-0x25
 +
|Alien Race found on craft. Is index within [[ENGLISH.DAT]] for the string (466 + this value).
 +
    '''UFO'''                '''TFTD'''
 +
0 = [[Sectoid]]            [[Aquatoid]]
 +
1 = [[Snakeman]]          [[Gillman]]
 +
2 = [[Ethereal]]          [[Lobsterman]]
 +
3 = [[Muton]]              [[Tasoth]]
 +
4 = [[Floater]]            [[Mixed Crew]] (Type I)
 +
5 = Final mission mix  [[Mixed Crew]] (Type II)
 +
|- valign="top"
 +
!<span id="38-39"></span>38-39
 +
!<span id="0x26-0x27"></span>0x26-0x27
 +
|UFO attack timer.
 +
|- valign="top"
 +
!<span id="40-41"></span>40-41
 +
!<span id="0x28-0x29"></span>0x28-0x29
 +
|UFO escape manuever timer.
 +
|- valign="top"
 +
!<span id="42-43"></span>42-43
 +
!<span id="0x2A-0x2B"></span>0x2A-0x2B
 +
|Craft status. Is an index within [[ENGLISH.DAT]] for the string (268 + this value).
 
  0 - Ready
 
  0 - Ready
 
  1 - Out
 
  1 - Out
Line 56: Line 171:
 
  3 - Refueling
 
  3 - Refueling
 
  4 - Re-arming
 
  4 - Re-arming
* '''43 (1 Byte)''' - Unknown, NEED HELP
+
|- valign="top"
The rest of the known values detail the items on board of the craft. 49-98 refer to offsets 0-49 in [[OBDATA.DAT]].
+
|colspan=3|The rest of the known values detail the items on board of the craft. 49-98 refer to offsets 0-49 in [[OBDATA.DAT]].
* '''44 (1 Byte)''' - Tank/Cannon
+
|- valign="top"
* '''45 (1 Byte)''' - Tank/Rocket Launcher
+
!<span id="44"></span>44
* '''46 (1 Byte)''' - Tank/Laser Cannon
+
!<span id="0x2C"></span>0x2C
* '''47 (1 Byte)''' - Hover Tank/Plasma
+
|Tank/Cannon
* '''48 (1 Byte)''' - Hover Tank/Launcher
+
|- valign="top"
* '''49 (1 Byte)''' - PISTOL
+
!<span id="45"></span>45
* '''50 (1 Byte)''' - PISTOL CLIP
+
!<span id="0x2D"></span>0x2D
* '''51 (1 Byte)''' - RIFLE
+
|Tank/Rocket Launcher
* '''52 (1 Byte)''' - RIFLE CLIP
+
|- valign="top"
* '''53 (1 Byte)''' - HEAVY CANNON
+
!<span id="46"></span>46
* '''54 (1 Byte)''' - CANNON AP-AMMO
+
!<span id="0x2E"></span>0x2E
* '''55 (1 Byte)''' - CANNON HE-AMMO
+
|Tank/Laser Cannon
* '''56 (1 Byte)''' - CANNON I-AMMO
+
|- valign="top"
* '''57 (1 Byte)''' - AUTO-CANNON
+
!<span id="47"></span>47
* '''58 (1 Byte)''' - AUTO-CANNON AP-AMMO
+
!<span id="0x2F"></span>0x2F
* '''59 (1 Byte)''' - AUTO-CANNON HE-AMMO
+
|Hover Tank/Plasma
* '''60 (1 Byte)''' - AUTO-CANNON I-AMMO
+
|- valign="top"
* '''61 (1 Byte)''' - ROCKET LAUNCHER
+
!<span id="48"></span>48
* '''62 (1 Byte)''' - SMALL ROCKET
+
!<span id="0x30"></span>0x30
* '''63 (1 Byte)''' - LARGE ROCKET
+
|Hover Tank/Launcher
* '''64 (1 Byte)''' - INCENDIARY ROCKET
+
|- valign="top"
* '''65 (1 Byte)''' - LASER PISTOL
+
!<span id="49"></span>49
* '''66 (1 Byte)''' - LASER GUN
+
!<span id="0x31"></span>0x31
* '''67 (1 Byte)''' - HEAVY LASER
+
|PISTOL
* '''68 (1 Byte)''' - GRENADE
+
|- valign="top"
* '''69 (1 Byte)''' - SMOKE GRENADE
+
!<span id="50"></span>50
* '''70 (1 Byte)''' - PROXIMITY GRENADE
+
!<span id="0x32"></span>0x32
* '''71 (1 Byte)''' - HIGH EXPLOSIVE
+
|PISTOL CLIP
* '''72 (1 Byte)''' - MOTION SCANNER
+
|- valign="top"
* '''73 (1 Byte)''' - MEDI-KIT
+
!<span id="51"></span>51
* '''74 (1 Byte)''' - PSI-AMP
+
!<span id="0x33"></span>0x33
* '''75 (1 Byte)''' - STUN ROD
+
|RIFLE
* '''76 (1 Byte)''' - Flare
+
|- valign="top"
* '''77 (1 Byte)''' - empty
+
!<span id="52"></span>52
* '''78 (1 Byte)''' - empty
+
!<span id="0x34"></span>0x34
* '''79 (1 Byte)''' - empty
+
|RIFLE CLIP
* '''80 (1 Byte)''' - CORPSE
+
|- valign="top"
* '''81 (1 Byte)''' - CORPSE & ARMOUR
+
!<span id="53"></span>53
* '''82 (1 Byte)''' - CORPSE & POWER SUIT
+
!<span id="0x35"></span>0x35
* '''83 (1 Byte)''' - Heavy Plasma
+
|HEAVY CANNON
* '''84 (1 Byte)''' - Heavy Plasma Clip
+
|- valign="top"
* '''85 (1 Byte)''' - Plasma Rifle
+
!<span id="54"></span>54
* '''86 (1 Byte)''' - Plasma Rifle Clip
+
!<span id="0x36"></span>0x36
* '''87 (1 Byte)''' - Plasma Pistol
+
|CANNON AP-AMMO
* '''88 (1 Byte)''' - Plasma Pistol Clip
+
|- valign="top"
* '''89 (1 Byte)''' - BLASTER LAUNCHER
+
!<span id="55"></span>55
* '''90 (1 Byte)''' - BLASTER BOMB
+
!<span id="0x37"></span>0x37
* '''91 (1 Byte)''' - SMALL LAUNCHER
+
|CANNON HE-AMMO
* '''92 (1 Byte)''' - STUN MISSILE
+
|- valign="top"
* '''93 (1 Byte)''' - ALIEN GRENADE
+
!<span id="56"></span>56
* '''94 (1 Byte)''' - ELERIUM-115
+
!<span id="0x38"></span>0x38
* '''95 (1 Byte)''' - MIND PROBE
+
|CANNON I-AMMO
* '''96 (1 Byte)''' - >>UNDEFINED <<
+
|- valign="top"
* '''97 (1 Byte)''' - >> empty <<
+
!<span id="57"></span>57
* '''98 (1 Byte)''' - >> empty <<
+
!<span id="0x39"></span>0x39
* Offsets 99-103 are unknown
+
|AUTO-CANNON
 +
|- valign="top"
 +
!<span id="58"></span>58
 +
!<span id="0x3A"></span>0x3A
 +
|AUTO-CANNON AP-AMMO
 +
|- valign="top"
 +
!<span id="59"></span>59
 +
!<span id="0x3B"></span>0x3B
 +
|AUTO-CANNON HE-AMMO
 +
|- valign="top"
 +
!<span id="60"></span>60
 +
!<span id="0x3C"></span>0x3C
 +
|AUTO-CANNON I-AMMO
 +
|- valign="top"
 +
!<span id="61"></span>61
 +
!<span id="0x3D"></span>0x3D
 +
|ROCKET LAUNCHER
 +
|- valign="top"
 +
!<span id="62"></span>62
 +
!<span id="0x3E"></span>0x3E
 +
|SMALL ROCKET
 +
|- valign="top"
 +
!<span id="63"></span>63
 +
!<span id="0x3F"></span>0x3F
 +
|LARGE ROCKET
 +
|- valign="top"
 +
!<span id="64"></span>64
 +
!<span id="0x40"></span>0x40
 +
|INCENDIARY ROCKET
 +
|- valign="top"
 +
!<span id="65"></span>65
 +
!<span id="0x41"></span>0x41
 +
|LASER PISTOL
 +
|- valign="top"
 +
!<span id="66"></span>66
 +
!<span id="0x42"></span>0x42
 +
|LASER GUN
 +
|- valign="top"
 +
!<span id="67"></span>67
 +
!<span id="0x43"></span>0x43
 +
|HEAVY LASER
 +
|- valign="top"
 +
!<span id="68"></span>68
 +
!<span id="0x44"></span>0x44
 +
|GRENADE
 +
|- valign="top"
 +
!<span id="69"></span>69
 +
!<span id="0x45"></span>0x45
 +
|SMOKE GRENADE
 +
|- valign="top"
 +
!<span id="70"></span>70
 +
!<span id="0x46"></span>0x46
 +
|PROXIMITY GRENADE
 +
|- valign="top"
 +
!<span id="71"></span>71
 +
!<span id="0x47"></span>0x47
 +
|HIGH EXPLOSIVE
 +
|- valign="top"
 +
!<span id="72"></span>72
 +
!<span id="0x48"></span>0x48
 +
|MOTION SCANNER
 +
|- valign="top"
 +
!<span id="73"></span>73
 +
!<span id="0x49"></span>0x49
 +
|MEDI-KIT
 +
|- valign="top"
 +
!<span id="74"></span>74
 +
!<span id="0x4A"></span>0x4A
 +
|PSI-AMP
 +
|- valign="top"
 +
!<span id="75"></span>75
 +
!<span id="0x4B"></span>0x4B
 +
|STUN ROD
 +
|- valign="top"
 +
!<span id="76"></span>76
 +
!<span id="0x4C"></span>0x4C
 +
|Flare
 +
|- valign="top"
 +
!<span id="77"></span>77
 +
!<span id="0x4D"></span>0x4D
 +
|empty
 +
|- valign="top"
 +
!<span id="78"></span>78
 +
!<span id="0x4E"></span>0x4E
 +
|empty
 +
|- valign="top"
 +
!<span id="79"></span>79
 +
!<span id="0x4F"></span>0x4F
 +
|empty
 +
|- valign="top"
 +
!<span id="80"></span>80
 +
!<span id="0x50"></span>0x50
 +
|CORPSE
 +
|- valign="top"
 +
!<span id="81"></span>81
 +
!<span id="0x51"></span>0x51
 +
|CORPSE & ARMOUR
 +
|- valign="top"
 +
!<span id="82"></span>82
 +
!<span id="0x52"></span>0x52
 +
|CORPSE & POWER SUIT
 +
|- valign="top"
 +
!<span id="83"></span>83
 +
!<span id="0x53"></span>0x53
 +
|Heavy Plasma
 +
|- valign="top"
 +
!<span id="84"></span>84
 +
!<span id="0x54"></span>0x54
 +
|Heavy Plasma Clip
 +
|- valign="top"
 +
!<span id="85"></span>85
 +
!<span id="0x55"></span>0x55
 +
|Plasma Rifle
 +
|- valign="top"
 +
!<span id="86"></span>86
 +
!<span id="0x56"></span>0x56
 +
|Plasma Rifle Clip
 +
|- valign="top"
 +
!<span id="87"></span>87
 +
!<span id="0x57"></span>0x57
 +
|Plasma Pistol
 +
|- valign="top"
 +
!<span id="88"></span>88
 +
!<span id="0x58"></span>0x58
 +
|Plasma Pistol Clip
 +
|- valign="top"
 +
!<span id="89"></span>89
 +
!<span id="0x59"></span>0x59
 +
|BLASTER LAUNCHER
 +
|- valign="top"
 +
!<span id="90"></span>90
 +
!<span id="0x5A"></span>0x5A
 +
|BLASTER BOMB
 +
|- valign="top"
 +
!<span id="91"></span>91
 +
!<span id="0x5B"></span>0x5B
 +
|SMALL LAUNCHER
 +
|- valign="top"
 +
!<span id="92"></span>92
 +
!<span id="0x5C"></span>0x5C
 +
|STUN MISSILE
 +
|- valign="top"
 +
!<span id="93"></span>93
 +
!<span id="0x5D"></span>0x5D
 +
|ALIEN GRENADE
 +
|- valign="top"
 +
!<span id="94"></span>94
 +
!<span id="0x5E"></span>0x5E
 +
|ELERIUM-115
 +
|- valign="top"
 +
!<span id="95"></span>95
 +
!<span id="0x5F"></span>0x5F
 +
|MIND PROBE
 +
|- valign="top"
 +
!<span id="96"></span>96
 +
!<span id="0x60"></span>0x60
 +
|>>UNDEFINED <<
 +
|- valign="top"
 +
!<span id="97"></span>97
 +
!<span id="0x61"></span>0x61
 +
|>> empty <<
 +
|- valign="top"
 +
!<span id="98"></span>98
 +
!<span id="0x62"></span>0x62
 +
|>> empty <<
 +
|- valign="top"
 +
!<span id="99"></span>99
 +
!<span id="0x63"></span>0x63
 +
|No known use for this offset.
 +
|- valign="top"
 +
!<span id="100-103"></span>100-103
 +
!<span id="0x64-0x67"></span>0x64-0x67
 +
|Bitfield (only 1st byte is used):
 +
bit 0  (1): Craft is in hangar (0=craft's been flew away)
 +
bit 1  (2): Want to go home (set after mission or when out of fuel), blocks craft
 +
            from re-targeting
 +
bit 2  (4): [runtime] Out of elerium (0=fueled)
 +
bit 3  (8): [runtime] Out of left ammo (0=left weapon rearmed)
 +
bit 4 (16): [runtime] Out of right ammo (0=right weapon rearmed)
 +
bit 5 (32): [runtime] Flag of processed UFO in interception window, to avoid
 +
            multiple escape/attack timers decrementing in case when UFO is
 +
            pursued in more than 1 window at once.
 +
bit 6 (64): Hyperwaved extra info
 +
|-
 +
|}
  
 
==See Also==
 
==See Also==
 
* [[LOC.DAT]] - For information on the position the craft are at
 
* [[LOC.DAT]] - For information on the position the craft are at
* [[GEODATA.DAT]] - Contains information about the craft(s) used in combat
+
* [[GEODATA.DAT]] - Contains information about the craft(s) when used as terrain objects in ground combat (Battlescape)
 +
* [[Talk:GEOSCAPE.EXE#Craft_type_data]] Stats of XCom and UFO craft types
 
* [http://www.stonepool.com/xcom/hacking/craft.html Hatfarm's website] where most, if not all of this information was gathered from
 
* [http://www.stonepool.com/xcom/hacking/craft.html Hatfarm's website] where most, if not all of this information was gathered from
 +
* [[CRAFT.DAT (TFTD)]] - Terror From The Deep's craft file
 
* [[Saved Game Files]]
 
* [[Saved Game Files]]
 
[[Category:Game Files]]
 
[[Category:Game Files]]
 +
[[Category:Enemy Unknown/UFO Defense]]

Latest revision as of 06:42, 10 April 2014

This file contains information specific to the crafts in the game. Both X-COM and Alien crafts (including hidden ones) are in this file, though the values for the alien craft are still shrouded in mystery.

Note that TFTD uses a different version of this file.


UFO Structure

There are 50 records each having 104 bytes long for a maximum file size of 5,200 bytes. All offsets and values are in decimal.

Offset
(Decimal)
Offset
(Hex)
Usage
0 0x00 Craft type, Possible values are the same as GEODATA.DAT:
    *HUMAN*          *ALIEN*         
0 - Skyranger     5 - Small Scout      255 - Entry Not Used
1 - Lightning     6 - Medium Scout
2 - Avenger       7 - Large Scout
3 - Interceptor   8 - Harvester
4 - Firestorm     9 - Abductor
                 10 - Terror Ship
                 11 - Battleship
                 12 - Supply Ship
Offsets 1 and 5 refer to the weapon placed in the left and right slots respectively. (The Lightning does not have a center weapon type, only a left). Their possible values are listed here:
0 - Stingray
1 - Avalanche
2 - Cannon
3 - Fusion Ball
4 - Laser Cannon
5 - Plasma Beam
255 - No Weapon
1 0x01 Left weapon type
2-3 0x02-0x03 Left ammo
4 0x04 Indicates flight mode
0 - No destination set [at base]
1 - Single destination
2 - Multiple destinations determined randomly by in-game routine [UFO only]
5 0x05 Right weapon type
6-7 0x06-0x07 Right ammo
8-9 0x08-0x09 Unused.
1011 0x0A-0x0B Damage, that is the amount it currently has taken. This value divided by the crafts damage capacity gives the percentage shown in-game.
12-13 0x0C-0x0D Altitude of craft. Is a index within ENGLISH.DAT for string.
0 = GROUND *
1 = VERY LOW
2 = LOW
3 = HIGH
4 = VERY HIGH

(*NOTE: If craft is airborne and you change it to this value the altitude will remain the same. Speed must be edited to 0 for the change to hold.)

14-15 0x0E-0x0F Speed of craft.
16-17 0x10-0x11 Index into LOC.DAT referencing the destination - for example, waypoints for X-COM craft, or X-COM bases for alien craft.
18-19 0x12-0x13 Index into INTER.DAT when the ship is in interception mode.
20-21 0x14-0x15 Next UFO waypoint coordinate X (longitude).
22-23 0x16-0x17 Next UFO waypoint coordinate Y (latitude).
24-25 0x18-0x19 Fuel, amount remaining. This value divided by the crafts total fuel capacity gives the percentage shown in-game.
26-27 0x1A-0x1B Base reference as an index to LOC.DAT.
28-29 0x1C-0x1D Mission type craft is on. Is an index within ENGLISH.DAT for the string (558 + this value).
0 = Alien Research
1 = Alien Harvest
2 = Alien Abduction
3 = Alien Infiltration
4 = Alien Base
5 = Alien Terror
6 = Alien Retaliation
7 = Alien Supply
30-31 0x1E-0x1F Zone where mission is being carried out. Is an index within ENGLISH.DAT for string (543 + this value).
0 = North America
1 = Arctic
2 = Antarctica
3 = South America
4 = Europe
5 = North Africa
6 = Southern Africa
7 = Central Asia
8 = South East Asia
9 = Siberia
10 = Australasia
11 = Pacific
12 = North Atlantic *
13 = South Atlantic *
14 = Indian Ocean *

(*NOTE: Unused zones.)

32-33 0x20-0x21 UFO trajectory segment (ranges from 0-7).
34-35 0x22-0x23 UFO trajectory type (ranges from 0-9).
36-37 0x24-0x25 Alien Race found on craft. Is index within ENGLISH.DAT for the string (466 + this value).
    UFO                TFTD
0 = Sectoid            Aquatoid
1 = Snakeman           Gillman
2 = Ethereal           Lobsterman
3 = Muton              Tasoth
4 = Floater            Mixed Crew (Type I)
5 = Final mission mix  Mixed Crew (Type II)
38-39 0x26-0x27 UFO attack timer.
40-41 0x28-0x29 UFO escape manuever timer.
42-43 0x2A-0x2B Craft status. Is an index within ENGLISH.DAT for the string (268 + this value).
0 - Ready
1 - Out
2 - Repairs
3 - Refueling
4 - Re-arming
The rest of the known values detail the items on board of the craft. 49-98 refer to offsets 0-49 in OBDATA.DAT.
44 0x2C Tank/Cannon
45 0x2D Tank/Rocket Launcher
46 0x2E Tank/Laser Cannon
47 0x2F Hover Tank/Plasma
48 0x30 Hover Tank/Launcher
49 0x31 PISTOL
50 0x32 PISTOL CLIP
51 0x33 RIFLE
52 0x34 RIFLE CLIP
53 0x35 HEAVY CANNON
54 0x36 CANNON AP-AMMO
55 0x37 CANNON HE-AMMO
56 0x38 CANNON I-AMMO
57 0x39 AUTO-CANNON
58 0x3A AUTO-CANNON AP-AMMO
59 0x3B AUTO-CANNON HE-AMMO
60 0x3C AUTO-CANNON I-AMMO
61 0x3D ROCKET LAUNCHER
62 0x3E SMALL ROCKET
63 0x3F LARGE ROCKET
64 0x40 INCENDIARY ROCKET
65 0x41 LASER PISTOL
66 0x42 LASER GUN
67 0x43 HEAVY LASER
68 0x44 GRENADE
69 0x45 SMOKE GRENADE
70 0x46 PROXIMITY GRENADE
71 0x47 HIGH EXPLOSIVE
72 0x48 MOTION SCANNER
73 0x49 MEDI-KIT
74 0x4A PSI-AMP
75 0x4B STUN ROD
76 0x4C Flare
77 0x4D empty
78 0x4E empty
79 0x4F empty
80 0x50 CORPSE
81 0x51 CORPSE & ARMOUR
82 0x52 CORPSE & POWER SUIT
83 0x53 Heavy Plasma
84 0x54 Heavy Plasma Clip
85 0x55 Plasma Rifle
86 0x56 Plasma Rifle Clip
87 0x57 Plasma Pistol
88 0x58 Plasma Pistol Clip
89 0x59 BLASTER LAUNCHER
90 0x5A BLASTER BOMB
91 0x5B SMALL LAUNCHER
92 0x5C STUN MISSILE
93 0x5D ALIEN GRENADE
94 0x5E ELERIUM-115
95 0x5F MIND PROBE
96 0x60 >>UNDEFINED <<
97 0x61 >> empty <<
98 0x62 >> empty <<
99 0x63 No known use for this offset.
100-103 0x64-0x67 Bitfield (only 1st byte is used):
bit 0  (1): Craft is in hangar (0=craft's been flew away)
bit 1  (2): Want to go home (set after mission or when out of fuel), blocks craft
            from re-targeting
bit 2  (4): [runtime] Out of elerium (0=fueled)
bit 3  (8): [runtime] Out of left ammo (0=left weapon rearmed)
bit 4 (16): [runtime] Out of right ammo (0=right weapon rearmed)
bit 5 (32): [runtime] Flag of processed UFO in interception window, to avoid 
            multiple escape/attack timers decrementing in case when UFO is 
            pursued in more than 1 window at once.
bit 6 (64): Hyperwaved extra info

See Also