Jump to content

Map scripts


wghost81

Recommended Posts

I followed in footsteps of Drakous79 and decompressed/unpacked a DLC2_1_Portent_CovExt.upk. Actually, I started with DLC2_1_Portent.upk (as I tried to find DLC scripts), but couldn't find anything there, so I tried some other map with similar name. In there I found XComWaveSystem_0.XComWaveSystem — an object of XComWaveSystem type. And it seems to hold all the data on XComWaveSystem object initialization for this particular map.

 

Data format seems to be the following:

// object reference to import table
98 FF FF FF // import table: Class'XComGame.XComWaveSystem'
98 FF FF FF // import table: Class'XComGame.XComWaveSystem'
// something, I don't have a clue about :)
FF FF FF FF
6D 00 00 00
00 00
FF FF FF FF
D2 01 00 00
/////////////// m_arrAlienSets begin ///////////////
20 01 00 00 00 00 00 00 // name table: m_arrAlienSets (XComWaveSystem.AlienSet m_arrAlienSets)

14 00 00 00 00 00 00 00 // name table: ArrayProperty
7B 0B 00 00 00 00 00 00 // data size, including array length and objects (2939 bytes)
05 00 00 00 // array length (5 objects)

///// m_arrAlienSets[0] /////

C3 00 00 00 00 00 00 00 // name table: EventName (XComWaveSystem.AlienSet.EventName)

48 01 00 00 00 00 00 00 // name table: NameProperty
08 00 00 00 00 00 00 00 // data size
2E 02 00 00 00 00 00 00 // name table: StartWaveSpawner

etc ...
Which can be decompiled (manually) to

XComWaveSystem.AlienSet m_arrAlienSets;
m_arrAlienSets[0].EventName = StartWaveSpawner;
m_arrAlienSets[0].DisableEvent = StopWaveSpawner;
m_arrAlienSets[0].Waves[0].TurnAppearance = 0;
m_arrAlienSets[0].Waves[0].Groups[0].Scalable = true;

etc ...
This code contains all data variables initialization. What's interesting here are the names of events triggered: StartWaveSpawner, StopWaveSpawner, Wave1Spawned, SpawnArray1Reinforcements... etc, which appear to be some scripts, related to dynamic aliens deployment. But I can't seem to find them anywhere.

 

I tried to unpack map file by myself, but ran into export table data format problems: it is different from one we've already seen in XComGame.upk and XComStartegyGame.upk.

 

UPD: upk format is OK, made and error reading it. :smile:

Edited by wghost81
Link to comment
Share on other sites

  • 3 weeks later...

My quest to find how dynamic aliens are placed on maps continues. :smile:

 

First, I found that UE Explorer completely ignores TheWorld object. Is is sad, as it seems to contain the most interesting info. And that info consists of serialized properties, so UE Explorer can read it.

 

I tried to unpack and extract objects from TempleShip package.

 

TheWorld.PersistentLevel.Main_Sequence seems to contain a list of "sequences" to execute. Some of them are narrative, some are remote events and some are SpawnAlien (!) actions. There also are delay and destroy actions. I'm trying to understand how it all works together. My current plan is to try and add Mechtoids to first group of aliens on the ship.

Link to comment
Share on other sites

Would definitely be interested in being able to mod how the Temple Ship mission works. I figured it was going to involve cracking open the map file.

 

Unsuprisingly the map files do contain script code, which goes a long way in explaining why Firaxis can't release a "simple map editor" -- maps just aren't simple :)

Link to comment
Share on other sites

It seems, I can't add Mechtoids to Temple Ship. :sad:

 

There is a LOT of things I still don't understand about maps. But. TheWorld object contains PersistentLevel object, which seems to describe all persistent (i.e. serializable/savable) level (i.e. map) objects: action sequences, world data, meshes... Structure is very complicated. And alien types are defined via EPawnType enum, which does not contain Mechtoids for Temple Ship Name List Table:

0x3c0 (960): EPawnType
0x3c1 (961): ePawnType_Chryssalid
0x3c2 (962): ePawnType_CyberDisc
0x3c3 (963): ePawnType_Elder
0x3c4 (964): ePawnType_EtherealUber
0x3c5 (965): ePawnType_Floater
0x3c6 (966): ePawnType_Floater_Heavy
0x3c7 (967): ePawnType_Muton
0x3c8 (968): ePawnType_Muton_Berserker
0x3c9 (969): ePawnType_Muton_Elite
0x3ca (970): ePawnType_Sectoid
0x3cb (971): ePawnType_Sectoid_Commander
0x3cc (972): ePawnType_Sectopod
0x3cd (973): ePawnType_SectopodDrone
0x3ce (974): ePawnType_ThinMan
There are many interconnected objects which are describing an alien. SeqAct_SpawnAlien* objects seems to determine dynamic aliens (Cyberdiscs, Chryssalids, etc). I might try to change some inner properties (like bUseOverwatch variable, for example), but seems it's the only thing I'll be able to do. :sad: It seems, I can't change the number of aliens either, as it seems SeqAct_SpawnAlien* objects are responsible for individual aliens, not for alien pods. Edited by wghost81
Link to comment
Share on other sites

  • 4 weeks later...

With a lots of unsafe guesses I was able to deserialize XComWaveSystem object. Turns out that it's an Archetype object, defined as a Subobject via default properties of other object. Yes, I got crazy with this too and still don't understand it entirely, but somehow it works. :smile: So, meet the Exalt wave example:

 

 

FindObjectEntry
Name to find: TheWorld.PersistentLevel.XComWaveSystem_0
Found Export Object:
0x000001E5 (485): XComWaveSystem'TheWorld.PersistentLevel.XComWaveSystem_0'
	TypeRef: 0xFFFFFFAF -> XComWaveSystem
	ParentClassRef: 0x00000000 -> 
	OwnerRef: 0x0000000C -> PersistentLevel
	NameIdx: 0x000001EE (Index) 0x00000001 (Numeric) -> XComWaveSystem_0
	ArchetypeRef: 0x00000000 -> 
	ObjectFlagsH: 0x00000000
	ObjectFlagsL: 0x02070001
		0x00000001: Transactional
		0x00010000: LoadForClient
		0x00020000: LoadForServer
		0x00040000: LoadForEdit
		0x02000000: HasStack
	SerialSize: 0x00000AAC (2732)
	SerialOffset: 0x0005A51A
	ExportFlags: 0x00000000
	NetObjectCount: 0
	GUID: 00000000000000000000000000000000
	Unknown1: 0x00000000
Attempting deserialization:
UObject:
	PrevObjRef = 0xFFFFFFAF -> XComWaveSystem
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x000000D8 (Index) 0x00000000 (Numeric) -> m_arrAlienSets
	TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty
	PropertySize: 0x00000A0D
	ArrayIdx: 0x00000000
	NumElements = 0x00000005 = 5
	ArrayInnerType = None
	m_arrAlienSets[0]:
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x00000092 (Index) 0x00000000 (Numeric) -> EventName
	TypeIdx: 0x000000F8 (Index) 0x00000000 (Numeric) -> NameProperty
	PropertySize: 0x00000008
	ArrayIdx: 0x00000000
	Name: 0x0000019E (Index) 0x00000000 (Numeric) = StartWaveSpawner
UDefaultProperty:
	NameIdx: 0x00000071 (Index) 0x00000000 (Numeric) -> DisableEvent
	TypeIdx: 0x000000F8 (Index) 0x00000000 (Numeric) -> NameProperty
	PropertySize: 0x00000008
	ArrayIdx: 0x00000000
	Name: 0x000001A4 (Index) 0x00000000 (Numeric) = StopWaveSpawner
UDefaultProperty:
	NameIdx: 0x000001DA (Index) 0x00000000 (Numeric) -> Waves
	TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty
	PropertySize: 0x000002B5
	ArrayIdx: 0x00000000
	NumElements = 0x00000001 = 1
	ArrayInnerType = None
	Waves[0]:
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x000001BD (Index) 0x00000000 (Numeric) -> TurnAppearance
	TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Integer: 0x00000000 = 0
UDefaultProperty:
	NameIdx: 0x000000AC (Index) 0x00000000 (Numeric) -> Groups
	TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty
	PropertySize: 0x00000275
	ArrayIdx: 0x00000000
	NumElements = 0x00000002 = 2
	ArrayInnerType = None
	Groups[0]:
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x0000015A (Index) 0x00000000 (Numeric) -> Scalable
	TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x000000FF (Index) 0x00000000 (Numeric) -> NumAliens
	TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Integer: 0x00000001 = 1
UDefaultProperty:
	NameIdx: 0x00000196 (Index) 0x00000000 (Numeric) -> SpawnPoints
	TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty
	PropertySize: 0x0000001C
	ArrayIdx: 0x00000000
	NumElements = 0x00000006 = 6
	ArrayInnerType = None
	SpawnPoints[0]:
	Unsafe guess: It's an Integer: 0x000001D6 = 470 or a Reference: 0x000001D6 -> XComSpawnPoint_Alien_40
	SpawnPoints[1]:
	Unsafe guess: It's an Integer: 0x000001D2 = 466 or a Reference: 0x000001D2 -> XComSpawnPoint_Alien_37
	SpawnPoints[2]:
	Unsafe guess: It's an Integer: 0x000001D3 = 467 or a Reference: 0x000001D3 -> XComSpawnPoint_Alien_38
	SpawnPoints[3]:
	Unsafe guess: It's an Integer: 0x000001D4 = 468 or a Reference: 0x000001D4 -> XComSpawnPoint_Alien_39
	SpawnPoints[4]:
	Unsafe guess: It's an Integer: 0x000001D7 = 471 or a Reference: 0x000001D7 -> XComSpawnPoint_Alien_41
	SpawnPoints[5]:
	Unsafe guess: It's an Integer: 0x000001D8 = 472 or a Reference: 0x000001D8 -> XComSpawnPoint_Alien_42
UDefaultProperty:
	NameIdx: 0x00000119 (Index) 0x00000000 (Numeric) -> OriginationPoints
	TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty
	PropertySize: 0x0000001C
	ArrayIdx: 0x00000000
	NumElements = 0x00000006 = 6
	ArrayInnerType = None
	OriginationPoints[0]:
	Unsafe guess: It's an Integer: 0x000001CD = 461 or a Reference: 0x000001CD -> XComSpawnPoint_Alien_32
	OriginationPoints[1]:
	Unsafe guess: It's an Integer: 0x000001CC = 460 or a Reference: 0x000001CC -> XComSpawnPoint_Alien_31
	OriginationPoints[2]:
	Unsafe guess: It's an Integer: 0x000001CE = 462 or a Reference: 0x000001CE -> XComSpawnPoint_Alien_33
	OriginationPoints[3]:
	Unsafe guess: It's an Integer: 0x000001D1 = 465 or a Reference: 0x000001D1 -> XComSpawnPoint_Alien_36
	OriginationPoints[4]:
	Unsafe guess: It's an Integer: 0x000001D0 = 464 or a Reference: 0x000001D0 -> XComSpawnPoint_Alien_35
	OriginationPoints[5]:
	Unsafe guess: It's an Integer: 0x000001CF = 463 or a Reference: 0x000001CF -> XComSpawnPoint_Alien_34
UDefaultProperty:
	NameIdx: 0x00000193 (Index) 0x00000000 (Numeric) -> SpawnMethod
	TypeIdx: 0x000001A8 (Index) 0x00000000 (Numeric) -> StructProperty
	PropertySize: 0x00000062
	ArrayIdx: 0x00000000
	InnerNameIdx: 0x00000194 (Index) 0x00000000 (Numeric) -> SpawnMethodData
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x00000198 (Index) 0x00000000 (Numeric) -> SpawnType
	TypeIdx: 0x0000004A (Index) 0x00000000 (Numeric) -> ByteProperty
	PropertySize: 0x00000008
	ArrayIdx: 0x00000000
	InnerNameIdx: 0x0000008E (Index) 0x00000000 (Numeric) -> ESpawnMethod
	Name: 0x0000008F (Index) 0x00000000 (Numeric) = eSpawnMethod_WalkIn
UDefaultProperty:
	NameIdx: 0x0000013E (Index) 0x00000000 (Numeric) -> PlaySound
	TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x00000154 (Index) 0x00000000 (Numeric) -> RevealSpawn
	TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None
UDefaultProperty:
	NameIdx: 0x000000DE (Index) 0x00000000 (Numeric) -> m_strOnGroupActivated
	TypeIdx: 0x000000F8 (Index) 0x00000000 (Numeric) -> NameProperty
	PropertySize: 0x00000008
	ArrayIdx: 0x00000000
	Name: 0x000001D8 (Index) 0x00000000 (Numeric) = Wave1Spawned
UDefaultProperty:
	NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None
	Groups[1]:
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x0000015A (Index) 0x00000000 (Numeric) -> Scalable
	TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x000000FF (Index) 0x00000000 (Numeric) -> NumAliens
	TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Integer: 0x00000001 = 1
UDefaultProperty:
	NameIdx: 0x00000196 (Index) 0x00000000 (Numeric) -> SpawnPoints
	TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty
	PropertySize: 0x0000001C
	ArrayIdx: 0x00000000
	NumElements = 0x00000006 = 6
	ArrayInnerType = None
	SpawnPoints[0]:
	Unsafe guess: It's an Integer: 0x000001BE = 446 or a Reference: 0x000001BE -> XComSpawnPoint_Alien_19
	SpawnPoints[1]:
	Unsafe guess: It's an Integer: 0x000001C1 = 449 or a Reference: 0x000001C1 -> XComSpawnPoint_Alien_21
	SpawnPoints[2]:
	Unsafe guess: It's an Integer: 0x000001C3 = 451 or a Reference: 0x000001C3 -> XComSpawnPoint_Alien_23
	SpawnPoints[3]:
	Unsafe guess: It's an Integer: 0x000001C5 = 453 or a Reference: 0x000001C5 -> XComSpawnPoint_Alien_25
	SpawnPoints[4]:
	Unsafe guess: It's an Integer: 0x000001C7 = 455 or a Reference: 0x000001C7 -> XComSpawnPoint_Alien_27
	SpawnPoints[5]:
	Unsafe guess: It's an Integer: 0x000001C9 = 457 or a Reference: 0x000001C9 -> XComSpawnPoint_Alien_29
UDefaultProperty:
	NameIdx: 0x00000119 (Index) 0x00000000 (Numeric) -> OriginationPoints
	TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty
	PropertySize: 0x0000001C
	ArrayIdx: 0x00000000
	NumElements = 0x00000006 = 6
	ArrayInnerType = None
	OriginationPoints[0]:
	Unsafe guess: It's an Integer: 0x000001C0 = 448 or a Reference: 0x000001C0 -> XComSpawnPoint_Alien_20
	OriginationPoints[1]:
	Unsafe guess: It's an Integer: 0x000001C2 = 450 or a Reference: 0x000001C2 -> XComSpawnPoint_Alien_22
	OriginationPoints[2]:
	Unsafe guess: It's an Integer: 0x000001C4 = 452 or a Reference: 0x000001C4 -> XComSpawnPoint_Alien_24
	OriginationPoints[3]:
	Unsafe guess: It's an Integer: 0x000001C6 = 454 or a Reference: 0x000001C6 -> XComSpawnPoint_Alien_26
	OriginationPoints[4]:
	Unsafe guess: It's an Integer: 0x000001C8 = 456 or a Reference: 0x000001C8 -> XComSpawnPoint_Alien_28
	OriginationPoints[5]:
	Unsafe guess: It's an Integer: 0x000001CB = 459 or a Reference: 0x000001CB -> XComSpawnPoint_Alien_30
UDefaultProperty:
	NameIdx: 0x00000193 (Index) 0x00000000 (Numeric) -> SpawnMethod
	TypeIdx: 0x000001A8 (Index) 0x00000000 (Numeric) -> StructProperty
	PropertySize: 0x00000065
	ArrayIdx: 0x00000000
	InnerNameIdx: 0x00000194 (Index) 0x00000000 (Numeric) -> SpawnMethodData
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x00000198 (Index) 0x00000000 (Numeric) -> SpawnType
	TypeIdx: 0x0000004A (Index) 0x00000000 (Numeric) -> ByteProperty
	PropertySize: 0x00000008
	ArrayIdx: 0x00000000
	InnerNameIdx: 0x0000008E (Index) 0x00000000 (Numeric) -> ESpawnMethod
	Name: 0x0000008F (Index) 0x00000000 (Numeric) = eSpawnMethod_WalkIn
UDefaultProperty:
	NameIdx: 0x00000154 (Index) 0x00000000 (Numeric) -> RevealSpawn
	TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x00000079 (Index) 0x00000000 (Numeric) -> DropHeight
	TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Integer: 0x00000100 = 256
UDefaultProperty:
	NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None
UDefaultProperty:
	NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None
UDefaultProperty:
	NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None
UDefaultProperty:
	NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None
	m_arrAlienSets[1]:
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x00000092 (Index) 0x00000000 (Numeric) -> EventName
	TypeIdx: 0x000000F8 (Index) 0x00000000 (Numeric) -> NameProperty
	PropertySize: 0x00000008
	ArrayIdx: 0x00000000
	Name: 0x0000018F (Index) 0x00000000 (Numeric) = SpawnArray1Reinforcements
UDefaultProperty:
	NameIdx: 0x000001DA (Index) 0x00000000 (Numeric) -> Waves
	TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty
	PropertySize: 0x0000017D
	ArrayIdx: 0x00000000
	NumElements = 0x00000001 = 1
	ArrayInnerType = None
	Waves[0]:
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x000001BD (Index) 0x00000000 (Numeric) -> TurnAppearance
	TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Integer: 0x00000000 = 0
UDefaultProperty:
	NameIdx: 0x000000AC (Index) 0x00000000 (Numeric) -> Groups
	TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty
	PropertySize: 0x0000013D
	ArrayIdx: 0x00000000
	NumElements = 0x00000001 = 1
	ArrayInnerType = None
	Groups[0]:
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x0000015A (Index) 0x00000000 (Numeric) -> Scalable
	TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x000000FF (Index) 0x00000000 (Numeric) -> NumAliens
	TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Integer: 0x00000002 = 2
UDefaultProperty:
	NameIdx: 0x00000196 (Index) 0x00000000 (Numeric) -> SpawnPoints
	TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty
	PropertySize: 0x0000001C
	ArrayIdx: 0x00000000
	NumElements = 0x00000006 = 6
	ArrayInnerType = None
	SpawnPoints[0]:
	Unsafe guess: It's an Integer: 0x000001B7 = 439 or a Reference: 0x000001B7 -> XComSpawnPoint_Alien_12
	SpawnPoints[1]:
	Unsafe guess: It's an Integer: 0x000001B6 = 438 or a Reference: 0x000001B6 -> XComSpawnPoint_Alien_11
	SpawnPoints[2]:
	Unsafe guess: It's an Integer: 0x000001B5 = 437 or a Reference: 0x000001B5 -> XComSpawnPoint_Alien_10
	SpawnPoints[3]:
	Unsafe guess: It's an Integer: 0x000001E3 = 483 or a Reference: 0x000001E3 -> XComSpawnPoint_Alien_9
	SpawnPoints[4]:
	Unsafe guess: It's an Integer: 0x000001E2 = 482 or a Reference: 0x000001E2 -> XComSpawnPoint_Alien_8
	SpawnPoints[5]:
	Unsafe guess: It's an Integer: 0x000001E1 = 481 or a Reference: 0x000001E1 -> XComSpawnPoint_Alien_7
UDefaultProperty:
	NameIdx: 0x00000193 (Index) 0x00000000 (Numeric) -> SpawnMethod
	TypeIdx: 0x000001A8 (Index) 0x00000000 (Numeric) -> StructProperty
	PropertySize: 0x00000088
	ArrayIdx: 0x00000000
	InnerNameIdx: 0x00000194 (Index) 0x00000000 (Numeric) -> SpawnMethodData
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x00000000 (Index) 0x00000000 (Numeric) -> AdditionalSoundCue
	TypeIdx: 0x0000010D (Index) 0x00000000 (Numeric) -> ObjectProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Object: 0x00000190 = HelicopterFlyByCue
UDefaultProperty:
	NameIdx: 0x000001CB (Index) 0x00000000 (Numeric) -> UseOverwatch
	TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x000001BB (Index) 0x00000000 (Numeric) -> TriggerOverwatch
	TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x0000013E (Index) 0x00000000 (Numeric) -> PlaySound
	TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x00000154 (Index) 0x00000000 (Numeric) -> RevealSpawn
	TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None
UDefaultProperty:
	NameIdx: 0x000000DE (Index) 0x00000000 (Numeric) -> m_strOnGroupActivated
	TypeIdx: 0x000000F8 (Index) 0x00000000 (Numeric) -> NameProperty
	PropertySize: 0x00000008
	ArrayIdx: 0x00000000
	Name: 0x0000010C (Index) 0x00000000 (Numeric) = ObjectiveWaveSpawned
UDefaultProperty:
	NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None
UDefaultProperty:
	NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None
UDefaultProperty:
	NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None
	m_arrAlienSets[2]:
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x00000092 (Index) 0x00000000 (Numeric) -> EventName
	TypeIdx: 0x000000F8 (Index) 0x00000000 (Numeric) -> NameProperty
	PropertySize: 0x00000008
	ArrayIdx: 0x00000000
	Name: 0x00000190 (Index) 0x00000000 (Numeric) = SpawnArray2Reinforcements
UDefaultProperty:
	NameIdx: 0x000001DA (Index) 0x00000000 (Numeric) -> Waves
	TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty
	PropertySize: 0x0000017D
	ArrayIdx: 0x00000000
	NumElements = 0x00000001 = 1
	ArrayInnerType = None
	Waves[0]:
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x000001BD (Index) 0x00000000 (Numeric) -> TurnAppearance
	TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Integer: 0x00000000 = 0
UDefaultProperty:
	NameIdx: 0x000000AC (Index) 0x00000000 (Numeric) -> Groups
	TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty
	PropertySize: 0x0000013D
	ArrayIdx: 0x00000000
	NumElements = 0x00000001 = 1
	ArrayInnerType = None
	Groups[0]:
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x0000015A (Index) 0x00000000 (Numeric) -> Scalable
	TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x000000FF (Index) 0x00000000 (Numeric) -> NumAliens
	TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Integer: 0x00000002 = 2
UDefaultProperty:
	NameIdx: 0x00000196 (Index) 0x00000000 (Numeric) -> SpawnPoints
	TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty
	PropertySize: 0x0000001C
	ArrayIdx: 0x00000000
	NumElements = 0x00000006 = 6
	ArrayInnerType = None
	SpawnPoints[0]:
	Unsafe guess: It's an Integer: 0x000001B4 = 436 or a Reference: 0x000001B4 -> XComSpawnPoint_Alien_0
	SpawnPoints[1]:
	Unsafe guess: It's an Integer: 0x000001BF = 447 or a Reference: 0x000001BF -> XComSpawnPoint_Alien_2
	SpawnPoints[2]:
	Unsafe guess: It's an Integer: 0x000001CA = 458 or a Reference: 0x000001CA -> XComSpawnPoint_Alien_3
	SpawnPoints[3]:
	Unsafe guess: It's an Integer: 0x000001D5 = 469 or a Reference: 0x000001D5 -> XComSpawnPoint_Alien_4
	SpawnPoints[4]:
	Unsafe guess: It's an Integer: 0x000001DF = 479 or a Reference: 0x000001DF -> XComSpawnPoint_Alien_5
	SpawnPoints[5]:
	Unsafe guess: It's an Integer: 0x000001E0 = 480 or a Reference: 0x000001E0 -> XComSpawnPoint_Alien_6
UDefaultProperty:
	NameIdx: 0x00000193 (Index) 0x00000000 (Numeric) -> SpawnMethod
	TypeIdx: 0x000001A8 (Index) 0x00000000 (Numeric) -> StructProperty
	PropertySize: 0x00000088
	ArrayIdx: 0x00000000
	InnerNameIdx: 0x00000194 (Index) 0x00000000 (Numeric) -> SpawnMethodData
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x000001CB (Index) 0x00000000 (Numeric) -> UseOverwatch
	TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x000001BB (Index) 0x00000000 (Numeric) -> TriggerOverwatch
	TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x0000013E (Index) 0x00000000 (Numeric) -> PlaySound
	TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x00000154 (Index) 0x00000000 (Numeric) -> RevealSpawn
	TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x00000079 (Index) 0x00000000 (Numeric) -> DropHeight
	TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Integer: 0x000000C0 = 192
UDefaultProperty:
	NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None
UDefaultProperty:
	NameIdx: 0x000000DE (Index) 0x00000000 (Numeric) -> m_strOnGroupActivated
	TypeIdx: 0x000000F8 (Index) 0x00000000 (Numeric) -> NameProperty
	PropertySize: 0x00000008
	ArrayIdx: 0x00000000
	Name: 0x0000010C (Index) 0x00000000 (Numeric) = ObjectiveWaveSpawned
UDefaultProperty:
	NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None
UDefaultProperty:
	NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None
UDefaultProperty:
	NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None
	m_arrAlienSets[3]:
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x00000092 (Index) 0x00000000 (Numeric) -> EventName
	TypeIdx: 0x000000F8 (Index) 0x00000000 (Numeric) -> NameProperty
	PropertySize: 0x00000008
	ArrayIdx: 0x00000000
	Name: 0x00000191 (Index) 0x00000000 (Numeric) = SpawnArray3Reinforcements
UDefaultProperty:
	NameIdx: 0x000001DA (Index) 0x00000000 (Numeric) -> Waves
	TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty
	PropertySize: 0x0000017D
	ArrayIdx: 0x00000000
	NumElements = 0x00000001 = 1
	ArrayInnerType = None
	Waves[0]:
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x000001BD (Index) 0x00000000 (Numeric) -> TurnAppearance
	TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Integer: 0x00000000 = 0
UDefaultProperty:
	NameIdx: 0x000000AC (Index) 0x00000000 (Numeric) -> Groups
	TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty
	PropertySize: 0x0000013D
	ArrayIdx: 0x00000000
	NumElements = 0x00000001 = 1
	ArrayInnerType = None
	Groups[0]:
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x0000015A (Index) 0x00000000 (Numeric) -> Scalable
	TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x000000FF (Index) 0x00000000 (Numeric) -> NumAliens
	TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Integer: 0x00000002 = 2
UDefaultProperty:
	NameIdx: 0x00000196 (Index) 0x00000000 (Numeric) -> SpawnPoints
	TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty
	PropertySize: 0x0000001C
	ArrayIdx: 0x00000000
	NumElements = 0x00000006 = 6
	ArrayInnerType = None
	SpawnPoints[0]:
	Unsafe guess: It's an Integer: 0x000001B8 = 440 or a Reference: 0x000001B8 -> XComSpawnPoint_Alien_13
	SpawnPoints[1]:
	Unsafe guess: It's an Integer: 0x000001B9 = 441 or a Reference: 0x000001B9 -> XComSpawnPoint_Alien_14
	SpawnPoints[2]:
	Unsafe guess: It's an Integer: 0x000001BA = 442 or a Reference: 0x000001BA -> XComSpawnPoint_Alien_15
	SpawnPoints[3]:
	Unsafe guess: It's an Integer: 0x000001BB = 443 or a Reference: 0x000001BB -> XComSpawnPoint_Alien_16
	SpawnPoints[4]:
	Unsafe guess: It's an Integer: 0x000001BC = 444 or a Reference: 0x000001BC -> XComSpawnPoint_Alien_17
	SpawnPoints[5]:
	Unsafe guess: It's an Integer: 0x000001BD = 445 or a Reference: 0x000001BD -> XComSpawnPoint_Alien_18
UDefaultProperty:
	NameIdx: 0x00000193 (Index) 0x00000000 (Numeric) -> SpawnMethod
	TypeIdx: 0x000001A8 (Index) 0x00000000 (Numeric) -> StructProperty
	PropertySize: 0x00000088
	ArrayIdx: 0x00000000
	InnerNameIdx: 0x00000194 (Index) 0x00000000 (Numeric) -> SpawnMethodData
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x000001CB (Index) 0x00000000 (Numeric) -> UseOverwatch
	TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x000001BB (Index) 0x00000000 (Numeric) -> TriggerOverwatch
	TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x0000013E (Index) 0x00000000 (Numeric) -> PlaySound
	TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x00000154 (Index) 0x00000000 (Numeric) -> RevealSpawn
	TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x00000079 (Index) 0x00000000 (Numeric) -> DropHeight
	TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Integer: 0x000000C0 = 192
UDefaultProperty:
	NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None
UDefaultProperty:
	NameIdx: 0x000000DE (Index) 0x00000000 (Numeric) -> m_strOnGroupActivated
	TypeIdx: 0x000000F8 (Index) 0x00000000 (Numeric) -> NameProperty
	PropertySize: 0x00000008
	ArrayIdx: 0x00000000
	Name: 0x0000010C (Index) 0x00000000 (Numeric) = ObjectiveWaveSpawned
UDefaultProperty:
	NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None
UDefaultProperty:
	NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None
UDefaultProperty:
	NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None
	m_arrAlienSets[4]:
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x00000092 (Index) 0x00000000 (Numeric) -> EventName
	TypeIdx: 0x000000F8 (Index) 0x00000000 (Numeric) -> NameProperty
	PropertySize: 0x00000008
	ArrayIdx: 0x00000000
	Name: 0x00000192 (Index) 0x00000000 (Numeric) = SpawnArray4Reinforcements
UDefaultProperty:
	NameIdx: 0x000001DA (Index) 0x00000000 (Numeric) -> Waves
	TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty
	PropertySize: 0x0000017D
	ArrayIdx: 0x00000000
	NumElements = 0x00000001 = 1
	ArrayInnerType = None
	Waves[0]:
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x000001BD (Index) 0x00000000 (Numeric) -> TurnAppearance
	TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Integer: 0x00000000 = 0
UDefaultProperty:
	NameIdx: 0x000000AC (Index) 0x00000000 (Numeric) -> Groups
	TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty
	PropertySize: 0x0000013D
	ArrayIdx: 0x00000000
	NumElements = 0x00000001 = 1
	ArrayInnerType = None
	Groups[0]:
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x0000015A (Index) 0x00000000 (Numeric) -> Scalable
	TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x000000FF (Index) 0x00000000 (Numeric) -> NumAliens
	TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Integer: 0x00000002 = 2
UDefaultProperty:
	NameIdx: 0x00000196 (Index) 0x00000000 (Numeric) -> SpawnPoints
	TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty
	PropertySize: 0x0000001C
	ArrayIdx: 0x00000000
	NumElements = 0x00000006 = 6
	ArrayInnerType = None
	SpawnPoints[0]:
	Unsafe guess: It's an Integer: 0x000001D9 = 473 or a Reference: 0x000001D9 -> XComSpawnPoint_Alien_43
	SpawnPoints[1]:
	Unsafe guess: It's an Integer: 0x000001DA = 474 or a Reference: 0x000001DA -> XComSpawnPoint_Alien_44
	SpawnPoints[2]:
	Unsafe guess: It's an Integer: 0x000001DB = 475 or a Reference: 0x000001DB -> XComSpawnPoint_Alien_45
	SpawnPoints[3]:
	Unsafe guess: It's an Integer: 0x000001DC = 476 or a Reference: 0x000001DC -> XComSpawnPoint_Alien_46
	SpawnPoints[4]:
	Unsafe guess: It's an Integer: 0x000001DD = 477 or a Reference: 0x000001DD -> XComSpawnPoint_Alien_47
	SpawnPoints[5]:
	Unsafe guess: It's an Integer: 0x000001DE = 478 or a Reference: 0x000001DE -> XComSpawnPoint_Alien_48
UDefaultProperty:
	NameIdx: 0x00000193 (Index) 0x00000000 (Numeric) -> SpawnMethod
	TypeIdx: 0x000001A8 (Index) 0x00000000 (Numeric) -> StructProperty
	PropertySize: 0x00000088
	ArrayIdx: 0x00000000
	InnerNameIdx: 0x00000194 (Index) 0x00000000 (Numeric) -> SpawnMethodData
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x00000000 (Index) 0x00000000 (Numeric) -> AdditionalSoundCue
	TypeIdx: 0x0000010D (Index) 0x00000000 (Numeric) -> ObjectProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Object: 0x00000190 = HelicopterFlyByCue
UDefaultProperty:
	NameIdx: 0x000001CB (Index) 0x00000000 (Numeric) -> UseOverwatch
	TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x000001BB (Index) 0x00000000 (Numeric) -> TriggerOverwatch
	TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x0000013E (Index) 0x00000000 (Numeric) -> PlaySound
	TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x00000154 (Index) 0x00000000 (Numeric) -> RevealSpawn
	TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None
UDefaultProperty:
	NameIdx: 0x000000DE (Index) 0x00000000 (Numeric) -> m_strOnGroupActivated
	TypeIdx: 0x000000F8 (Index) 0x00000000 (Numeric) -> NameProperty
	PropertySize: 0x00000008
	ArrayIdx: 0x00000000
	Name: 0x0000010C (Index) 0x00000000 (Numeric) = ObjectiveWaveSpawned
UDefaultProperty:
	NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None
UDefaultProperty:
	NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None
UDefaultProperty:
	NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None
UDefaultProperty:
	NameIdx: 0x000000D1 (Index) 0x00000000 (Numeric) -> Location
	TypeIdx: 0x000001A8 (Index) 0x00000000 (Numeric) -> StructProperty
	PropertySize: 0x0000000C
	ArrayIdx: 0x00000000
	InnerNameIdx: 0x000001D0 (Index) 0x00000000 (Numeric) -> Vector
	Vector (X, Y, Z) = (0xC33C3ABA, 0x451F3FC9, 0x43044844) = (-188.229, 2547.99, 132.282)
UDefaultProperty:
	NameIdx: 0x00000018 (Index) 0x00000000 (Numeric) -> bDirtyComponents
	TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x00 = false
UDefaultProperty:
	NameIdx: 0x000001AA (Index) 0x00000000 (Numeric) -> Tag
	TypeIdx: 0x000000F8 (Index) 0x00000000 (Numeric) -> NameProperty
	PropertySize: 0x00000008
	ArrayIdx: 0x00000000
	Name: 0x000001EE (Index) 0x00000000 (Numeric) = XComWaveSystem
UDefaultProperty:
	NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None
Stream relative position: 0x00000AAC (2732)
UObjectUnknown:
	Object unknown, can't deserialize!

 

So, this is how the waves are defined inside maps.

And about spawning aliens on Temple Ship. Here is another example of similar object:

 

 

FindObjectEntry
Name to find: TheWorld.PersistentLevel.Main_Sequence.SeqAct_SpawnAlien_0
Found Export Object:
0x000016A4 (5796): SeqAct_SpawnAlien'TheWorld.PersistentLevel.Main_Sequence.SeqAct_SpawnAlien_0'
	TypeRef: 0xFFFFFF45 -> SeqAct_SpawnAlien
	ParentClassRef: 0x00000000 -> 
	OwnerRef: 0x00001709 -> Main_Sequence
	NameIdx: 0x00000741 (Index) 0x00000001 (Numeric) -> SeqAct_SpawnAlien_0
	ArchetypeRef: 0x00000000 -> 
	ObjectFlagsH: 0x00000000
	ObjectFlagsL: 0x00070001
		0x00000001: Transactional
		0x00010000: LoadForClient
		0x00020000: LoadForServer
		0x00040000: LoadForEdit
	SerialSize: 0x0000056A (1386)
	SerialOffset: 0x00455468
	ExportFlags: 0x00000000
	NetObjectCount: 0
	GUID: 00000000000000000000000000000000
	Unknown1: 0x00000000
Attempting deserialization:
UObject:
	PrevObjRef = 0x000020FD -> StaticMeshComponent_143
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x0000043B (Index) 0x00000000 (Numeric) -> ForceAlienType
	TypeIdx: 0x0000026D (Index) 0x00000000 (Numeric) -> ByteProperty
	PropertySize: 0x00000008
	ArrayIdx: 0x00000000
	InnerNameIdx: 0x000003C0 (Index) 0x00000000 (Numeric) -> EPawnType
	Name: 0x000003C1 (Index) 0x00000000 (Numeric) = ePawnType_Chryssalid
UDefaultProperty:
	NameIdx: 0x00000245 (Index) 0x00000000 (Numeric) -> bRevealSpawn
	TypeIdx: 0x00000219 (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x000004AE (Index) 0x00000000 (Numeric) -> InputLinks
	TypeIdx: 0x000001AA (Index) 0x00000000 (Numeric) -> ArrayProperty
	PropertySize: 0x00000047
	ArrayIdx: 0x00000000
	NumElements = 0x00000001 = 1
	ArrayInnerType = None
	InputLinks[0]:
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x00000513 (Index) 0x00000000 (Numeric) -> LinkDesc
	TypeIdx: 0x00000800 (Index) 0x00000000 (Numeric) -> StrProperty
	PropertySize: 0x00000007
	ArrayIdx: 0x00000000
	StrLength = 0x00000003 = 3
	String = In
UDefaultProperty:
	NameIdx: 0x00000369 (Index) 0x00000000 (Numeric) -> DrawY
	TypeIdx: 0x000004C4 (Index) 0x00000000 (Numeric) -> IntProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Integer: 0x00000826 = 2086
UDefaultProperty:
	NameIdx: 0x000005F7 (Index) 0x00000000 (Numeric) -> None
UDefaultProperty:
	NameIdx: 0x00000633 (Index) 0x00000000 (Numeric) -> OutputLinks
	TypeIdx: 0x000001AA (Index) 0x00000000 (Numeric) -> ArrayProperty
	PropertySize: 0x000000D6
	ArrayIdx: 0x00000000
	NumElements = 0x00000002 = 2
	ArrayInnerType = None
	OutputLinks[0]:
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x00000516 (Index) 0x00000000 (Numeric) -> Links
	TypeIdx: 0x000001AA (Index) 0x00000000 (Numeric) -> ArrayProperty
	PropertySize: 0x00000028
	ArrayIdx: 0x00000000
	NumElements = 0x00000001 = 1
	ArrayInnerType = None
	Links[0]:
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x00000514 (Index) 0x00000000 (Numeric) -> LinkedOp
	TypeIdx: 0x0000060A (Index) 0x00000000 (Numeric) -> ObjectProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Object: 0x00001695 = SeqAct_SetBool_17
UDefaultProperty:
	NameIdx: 0x000005F7 (Index) 0x00000000 (Numeric) -> None
UDefaultProperty:
	NameIdx: 0x00000513 (Index) 0x00000000 (Numeric) -> LinkDesc
	TypeIdx: 0x00000800 (Index) 0x00000000 (Numeric) -> StrProperty
	PropertySize: 0x00000008
	ArrayIdx: 0x00000000
	StrLength = 0x00000004 = 4
	String = Out
UDefaultProperty:
	NameIdx: 0x00000369 (Index) 0x00000000 (Numeric) -> DrawY
	TypeIdx: 0x000004C4 (Index) 0x00000000 (Numeric) -> IntProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Integer: 0x0000081C = 2076
UDefaultProperty:
	NameIdx: 0x000005F7 (Index) 0x00000000 (Numeric) -> None
	OutputLinks[1]:
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x00000513 (Index) 0x00000000 (Numeric) -> LinkDesc
	TypeIdx: 0x00000800 (Index) 0x00000000 (Numeric) -> StrProperty
	PropertySize: 0x00000012
	ArrayIdx: 0x00000000
	StrLength = 0x0000000E = 14
	String = Fully Spawned
UDefaultProperty:
	NameIdx: 0x00000369 (Index) 0x00000000 (Numeric) -> DrawY
	TypeIdx: 0x000004C4 (Index) 0x00000000 (Numeric) -> IntProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Integer: 0x00000830 = 2096
UDefaultProperty:
	NameIdx: 0x000005F7 (Index) 0x00000000 (Numeric) -> None
UDefaultProperty:
	NameIdx: 0x000008E6 (Index) 0x00000000 (Numeric) -> VariableLinks
	TypeIdx: 0x000001AA (Index) 0x00000000 (Numeric) -> ArrayProperty
	PropertySize: 0x000002FF
	ArrayIdx: 0x00000000
	NumElements = 0x00000005 = 5
	ArrayInnerType = None
	VariableLinks[0]:
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x000003E3 (Index) 0x00000000 (Numeric) -> ExpectedType
	TypeIdx: 0x0000060A (Index) 0x00000000 (Numeric) -> ObjectProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Object: 0xFFFFFF78 = SeqVar_Object
UDefaultProperty:
	NameIdx: 0x00000515 (Index) 0x00000000 (Numeric) -> LinkedVariables
	TypeIdx: 0x000001AA (Index) 0x00000000 (Numeric) -> ArrayProperty
	PropertySize: 0x00000008
	ArrayIdx: 0x00000000
	NumElements = 0x00000001 = 1
	ArrayInnerType = None
	LinkedVariables[0]:
	Unsafe guess: It's an Integer: 0x000017D7 = 6103 or a Reference: 0x000017D7 -> SeqVar_Object_7
UDefaultProperty:
	NameIdx: 0x00000513 (Index) 0x00000000 (Numeric) -> LinkDesc
	TypeIdx: 0x00000800 (Index) 0x00000000 (Numeric) -> StrProperty
	PropertySize: 0x00000010
	ArrayIdx: 0x00000000
	StrLength = 0x0000000C = 12
	String = SpawnPoints
UDefaultProperty:
	NameIdx: 0x00000368 (Index) 0x00000000 (Numeric) -> DrawX
	TypeIdx: 0x000004C4 (Index) 0x00000000 (Numeric) -> IntProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Integer: 0x000014E6 = 5350
UDefaultProperty:
	NameIdx: 0x000005F7 (Index) 0x00000000 (Numeric) -> None
	VariableLinks[1]:
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x000003E3 (Index) 0x00000000 (Numeric) -> ExpectedType
	TypeIdx: 0x0000060A (Index) 0x00000000 (Numeric) -> ObjectProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Object: 0xFFFFFF78 = SeqVar_Object
UDefaultProperty:
	NameIdx: 0x00000513 (Index) 0x00000000 (Numeric) -> LinkDesc
	TypeIdx: 0x00000800 (Index) 0x00000000 (Numeric) -> StrProperty
	PropertySize: 0x00000012
	ArrayIdx: 0x00000000
	StrLength = 0x0000000E = 14
	String = Spawned Alien
UDefaultProperty:
	NameIdx: 0x000006D2 (Index) 0x00000000 (Numeric) -> PropertyName
	TypeIdx: 0x000005E9 (Index) 0x00000000 (Numeric) -> NameProperty
	PropertySize: 0x00000008
	ArrayIdx: 0x00000000
	Name: 0x000007C9 (Index) 0x00000000 (Numeric) = SpawnedUnit
UDefaultProperty:
	NameIdx: 0x0000026C (Index) 0x00000000 (Numeric) -> bWriteable
	TypeIdx: 0x00000219 (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x00000368 (Index) 0x00000000 (Numeric) -> DrawX
	TypeIdx: 0x000004C4 (Index) 0x00000000 (Numeric) -> IntProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Integer: 0x0000152A = 5418
UDefaultProperty:
	NameIdx: 0x000005F7 (Index) 0x00000000 (Numeric) -> None
	VariableLinks[2]:
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x000003E3 (Index) 0x00000000 (Numeric) -> ExpectedType
	TypeIdx: 0x0000060A (Index) 0x00000000 (Numeric) -> ObjectProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Object: 0xFFFFFF7C = SeqVar_Bool
UDefaultProperty:
	NameIdx: 0x00000513 (Index) 0x00000000 (Numeric) -> LinkDesc
	TypeIdx: 0x00000800 (Index) 0x00000000 (Numeric) -> StrProperty
	PropertySize: 0x0000000F
	ArrayIdx: 0x00000000
	StrLength = 0x0000000B = 11
	String = Play Sound
UDefaultProperty:
	NameIdx: 0x000006D2 (Index) 0x00000000 (Numeric) -> PropertyName
	TypeIdx: 0x000005E9 (Index) 0x00000000 (Numeric) -> NameProperty
	PropertySize: 0x00000008
	ArrayIdx: 0x00000000
	Name: 0x0000023D (Index) 0x00000000 (Numeric) = bPlaySound
UDefaultProperty:
	NameIdx: 0x0000026C (Index) 0x00000000 (Numeric) -> bWriteable
	TypeIdx: 0x00000219 (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x00000368 (Index) 0x00000000 (Numeric) -> DrawX
	TypeIdx: 0x000004C4 (Index) 0x00000000 (Numeric) -> IntProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Integer: 0x0000156F = 5487
UDefaultProperty:
	NameIdx: 0x000005F7 (Index) 0x00000000 (Numeric) -> None
	VariableLinks[3]:
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x000003E3 (Index) 0x00000000 (Numeric) -> ExpectedType
	TypeIdx: 0x0000060A (Index) 0x00000000 (Numeric) -> ObjectProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Object: 0xFFFFFF7C = SeqVar_Bool
UDefaultProperty:
	NameIdx: 0x00000513 (Index) 0x00000000 (Numeric) -> LinkDesc
	TypeIdx: 0x00000800 (Index) 0x00000000 (Numeric) -> StrProperty
	PropertySize: 0x00000011
	ArrayIdx: 0x00000000
	StrLength = 0x0000000D = 13
	String = Reveal Spawn
UDefaultProperty:
	NameIdx: 0x000006D2 (Index) 0x00000000 (Numeric) -> PropertyName
	TypeIdx: 0x000005E9 (Index) 0x00000000 (Numeric) -> NameProperty
	PropertySize: 0x00000008
	ArrayIdx: 0x00000000
	Name: 0x00000245 (Index) 0x00000000 (Numeric) = bRevealSpawn
UDefaultProperty:
	NameIdx: 0x0000026C (Index) 0x00000000 (Numeric) -> bWriteable
	TypeIdx: 0x00000219 (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x01 = true
UDefaultProperty:
	NameIdx: 0x00000368 (Index) 0x00000000 (Numeric) -> DrawX
	TypeIdx: 0x000004C4 (Index) 0x00000000 (Numeric) -> IntProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Integer: 0x000015AE = 5550
UDefaultProperty:
	NameIdx: 0x000005F7 (Index) 0x00000000 (Numeric) -> None
	VariableLinks[4]:
Unsafe guess (it's a Property List):
UDefaultPropertiesList:
UDefaultProperty:
	NameIdx: 0x000003E3 (Index) 0x00000000 (Numeric) -> ExpectedType
	TypeIdx: 0x0000060A (Index) 0x00000000 (Numeric) -> ObjectProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Object: 0xFFFFFF7C = SeqVar_Bool
UDefaultProperty:
	NameIdx: 0x00000513 (Index) 0x00000000 (Numeric) -> LinkDesc
	TypeIdx: 0x00000800 (Index) 0x00000000 (Numeric) -> StrProperty
	PropertySize: 0x00000016
	ArrayIdx: 0x00000000
	StrLength = 0x00000012 = 18
	String = Spawn Immediately
UDefaultProperty:
	NameIdx: 0x000006D2 (Index) 0x00000000 (Numeric) -> PropertyName
	TypeIdx: 0x000005E9 (Index) 0x00000000 (Numeric) -> NameProperty
	PropertySize: 0x00000008
	ArrayIdx: 0x00000000
	Name: 0x00000253 (Index) 0x00000000 (Numeric) = bSpawnImmediately
UDefaultProperty:
	NameIdx: 0x00000368 (Index) 0x00000000 (Numeric) -> DrawX
	TypeIdx: 0x000004C4 (Index) 0x00000000 (Numeric) -> IntProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Integer: 0x00001601 = 5633
UDefaultProperty:
	NameIdx: 0x000005F7 (Index) 0x00000000 (Numeric) -> None
UDefaultProperty:
	NameIdx: 0x0000060B (Index) 0x00000000 (Numeric) -> ObjInstanceVersion
	TypeIdx: 0x000004C4 (Index) 0x00000000 (Numeric) -> IntProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Integer: 0x00000005 = 5
UDefaultProperty:
	NameIdx: 0x00000658 (Index) 0x00000000 (Numeric) -> ParentSequence
	TypeIdx: 0x0000060A (Index) 0x00000000 (Numeric) -> ObjectProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Object: 0x00001709 = Main_Sequence
UDefaultProperty:
	NameIdx: 0x00000608 (Index) 0x00000000 (Numeric) -> ObjComment
	TypeIdx: 0x00000800 (Index) 0x00000000 (Numeric) -> StrProperty
	PropertySize: 0x00000018
	ArrayIdx: 0x00000000
	StrLength = 0x00000014 = 20
	String = Chryssalids Spawned
UDefaultProperty:
	NameIdx: 0x00000255 (Index) 0x00000000 (Numeric) -> bSuppressAutoComment
	TypeIdx: 0x00000219 (Index) 0x00000000 (Numeric) -> BoolProperty
	PropertySize: 0x00000000
	ArrayIdx: 0x00000000
	Boolean value: 0x00 = false
UDefaultProperty:
	NameIdx: 0x00000367 (Index) 0x00000000 (Numeric) -> DrawWidth
	TypeIdx: 0x000004C4 (Index) 0x00000000 (Numeric) -> IntProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Integer: 0x0000017B = 379
UDefaultProperty:
	NameIdx: 0x00000364 (Index) 0x00000000 (Numeric) -> DrawHeight
	TypeIdx: 0x000004C4 (Index) 0x00000000 (Numeric) -> IntProperty
	PropertySize: 0x00000004
	ArrayIdx: 0x00000000
	Integer: 0x00000065 = 101
UDefaultProperty:
	NameIdx: 0x000005F7 (Index) 0x00000000 (Numeric) -> None
Stream relative position: 0x0000056A (1386)
UObjectUnknown:
	Object unknown, can't deserialize!

 

UPD: fixed examples with updated tool output.

Edited by wghost81
Link to comment
Share on other sites

Very nice! Do you see SpawnMethod dropin or walkin somewhere?

enum ESpawnMethod
{
    eSpawnMethod_DropIn,
    eSpawnMethod_WalkIn,
    eSpawnMethod_FlyIn,
    eSpawnMethod_MAX
};

---

HelicopterFlyByCue ... TriggerOverwatch = true ... for exalt sniper :)

Link to comment
Share on other sites

Nice! I noticed not all waves have ESpawnMethod defined. Strange is eSpawnMethod_WalkIn has defined DropHeight = 256 in the first spoiler.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...