wghost81 Posted December 5, 2013 Share Posted December 5, 2013 (edited) 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) toXComWaveSystem.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 December 5, 2013 by wghost81 Link to comment Share on other sites More sharing options...
wghost81 Posted December 21, 2013 Author Share Posted December 21, 2013 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 More sharing options...
Amineri Posted December 21, 2013 Share Posted December 21, 2013 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 More sharing options...
wghost81 Posted December 22, 2013 Author Share Posted December 22, 2013 Found "missed" objects in UE Explorer Exports view. Unfortunately, UE Explorer can't deserialize them. :sad: It says "Array type was not detected" and "Exception thrown while deserializing..." Link to comment Share on other sites More sharing options...
wghost81 Posted December 22, 2013 Author Share Posted December 22, 2013 (edited) 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 December 22, 2013 by wghost81 Link to comment Share on other sites More sharing options...
wghost81 Posted January 13, 2014 Author Share Posted January 13, 2014 (edited) 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 January 18, 2014 by wghost81 Link to comment Share on other sites More sharing options...
Drakous79 Posted January 15, 2014 Share Posted January 15, 2014 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 More sharing options...
wghost81 Posted January 16, 2014 Author Share Posted January 16, 2014 That was just one map. I haven't examined all of them yet. Similar system have to be used for Thinman's as well. Link to comment Share on other sites More sharing options...
wghost81 Posted January 18, 2014 Author Share Posted January 18, 2014 Fixed upk utils, seems all the data are extracted properly now (see previous post, I've updated it). Link to comment Share on other sites More sharing options...
Drakous79 Posted January 18, 2014 Share Posted January 18, 2014 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 More sharing options...
Recommended Posts