WardenObjective

GameData_WardenObjectiveDataBlock_bin.json (filled)

Fields

Type - eWardenObjectiveType (enum)

No description provided.

Header - LocalizedText (nested type)

No description provided.

MainObjective - LocalizedText (nested type)

No description provided.

WardenObjectiveSpecialUpdateType - eWardenObjectiveSpecialUpdateType (enum)

No description provided.

GenericItemFromStart - UInt32 (ItemDataBlock)

No description provided.

DoNotMarkPickupItemsAsWardenObjectives - Boolean

No description provided.

FindLocationInfo - LocalizedText (nested type)

No description provided.

FindLocationInfoHelp - LocalizedText (nested type)

No description provided.

GoToZone - LocalizedText (nested type)

No description provided.

GoToZoneHelp - LocalizedText (nested type)

No description provided.

InZoneFindItem - LocalizedText (nested type)

No description provided.

InZoneFindItemHelp - LocalizedText (nested type)

No description provided.

SolveItem - LocalizedText (nested type)

No description provided.

SolveItemHelp - LocalizedText (nested type)

No description provided.

GoToWinCondition_Elevator - LocalizedText (nested type)

No description provided.

GoToWinConditionHelp_Elevator - LocalizedText (nested type)

No description provided.

GoToWinCondition_CustomGeo - LocalizedText (nested type)

No description provided.

GoToWinConditionHelp_CustomGeo - LocalizedText (nested type)

No description provided.

GoToWinCondition_ToMainLayer - LocalizedText (nested type)

No description provided.

GoToWinConditionHelp_ToMainLayer - LocalizedText (nested type)

No description provided.

ShowHelpDelay - Single

No description provided.

WavesOnElevatorLand - List GenericEnemyWaveData (nested type)

No description provided.

EventsOnElevatorLand - List WardenObjectiveEventData (nested type)

No description provided.

WaveOnElevatorWardenIntel - LocalizedText (nested type)

No description provided.

FogTransitionDataOnElevatorLand - UInt32 (FogSettingsDataBlock)

No description provided.

FogTransitionDurationOnElevatorLand - Single

No description provided.

OnActivateOnSolveItem - Boolean

No description provided.

WavesOnActivate - List GenericEnemyWaveData (nested type)

No description provided.

EventsOnActivate - List WardenObjectiveEventData (nested type)

No description provided.

StopAllWavesBeforeGotoWin - Boolean

No description provided.

WavesOnGotoWin - List GenericEnemyWaveData (nested type)

No description provided.

WaveOnGotoWinTrigger - eRetrieveExitWaveTrigger (enum)

No description provided.

EventsOnGotoWin - List WardenObjectiveEventData (nested type)

No description provided.

EventsOnGotoWinTrigger - eRetrieveExitWaveTrigger (enum)

No description provided.

FogTransitionDataOnGotoWin - UInt32 (FogSettingsDataBlock)

No description provided.

FogTransitionDurationOnGotoWin - Single

No description provided.

ChainedPuzzleToActive - UInt32 (ChainedPuzzleDataBlock)

No description provided.

ChainedPuzzleMidObjective - UInt32 (ChainedPuzzleDataBlock)

No description provided.

ChainedPuzzleAtExit - UInt32 (ChainedPuzzleDataBlock)

No description provided.

ChainedPuzzleAtExitScanSpeedMultiplier - Single

No description provided.

Gather_RequiredCount - Int32

No description provided.

Gather_ItemId - UInt32 (ItemDataBlock)

No description provided.

Gather_SpawnCount - Int32

No description provided.

Gather_MaxPerZone - Int32

No description provided.

Retrieve_Items - List UInt32 (ItemDataBlock)

No description provided.

ReactorWaves - List ReactorWaveData (nested type)

No description provided.

LightsOnFromBeginning - Boolean

No description provided.

LightsOnDuringIntro - Boolean

No description provided.

LightsOnWhenStartupComplete - Boolean

No description provided.

DoNotSolveObjectiveOnReactorComplete - Boolean

No description provided.

SpecialTerminalCommand - String

No description provided.

SpecialTerminalCommandDesc - LocalizedText (nested type)

No description provided.

PostCommandOutput - List String

No description provided.

SpecialCommandRule - TERM_CommandRule (enum)

No description provided.

PowerCellsToDistribute - Int32

No description provided.

No description provided.

No description provided.

No description provided.

CentralPowerGenClustser_NumberOfGenerators - Int32

No description provided.

CentralPowerGenClustser_NumberOfPowerCells - Int32

No description provided.

CentralPowerGenClustser_FogDataSteps - List GeneralFogDataStep (nested type)

No description provided.

ActivateHSU_ItemFromStart - UInt32 (ItemDataBlock)

No description provided.

ActivateHSU_ItemAfterActivation - UInt32 (ItemDataBlock)

No description provided.

ActivateHSU_BringItemInElevator - Boolean

No description provided.

ActivateHSU_MarkItemInElevatorAsWardenObjective - Boolean

No description provided.

ActivateHSU_StopEnemyWavesOnActivation - Boolean

No description provided.

ActivateHSU_ObjectiveCompleteAfterInsertion - Boolean

No description provided.

ActivateHSU_RequireItemAfterActivationInExitScan - Boolean

No description provided.

ActivateHSU_Events - List WardenObjectiveEventData (nested type)

No description provided.

Survival_TimeToActivate - Single

No description provided.

Survival_TimeToSurvive - Single

No description provided.

Survival_TimerTitle - LocalizedText (nested type)

No description provided.

Survival_TimerToActivateTitle - LocalizedText (nested type)

No description provided.

GatherTerminal_SpawnCount - Int32

No description provided.

GatherTerminal_RequiredCount - Int32

No description provided.

GatherTerminal_Command - String

No description provided.

GatherTerminal_CommandHelp - LocalizedText (nested type)

No description provided.

GatherTerminal_DownloadingText - LocalizedText (nested type)

No description provided.

GatherTerminal_DownloadCompleteText - LocalizedText (nested type)

No description provided.

GatherTerminal_DownloadTime - Single

No description provided.

TimedTerminalSequence_NumberOfRounds - Int32

No description provided.

TimedTerminalSequence_NumberOfTerminals - Int32

No description provided.

TimedTerminalSequence_TimePerRound - Single

No description provided.

TimedTerminalSequence_TimeForConfirmation - Single

No description provided.

TimedTerminalSequence_UseFilterForSourceTerminalPicking - Boolean

No description provided.

TimedTerminalSequence_SourceTerminalWorldEventObjectFilter - String

No description provided.

TimedTerminalSequence_EventsOnSequenceStart - List List WardenObjectiveEventData (nested type)

No description provided.

TimedTerminalSequence_EventsOnSequenceDone - List List WardenObjectiveEventData (nested type)

No description provided.

TimedTerminalSequence_EventsOnSequenceFail - List List WardenObjectiveEventData (nested type)

No description provided.

Additional docs

All expeditions require at least 1 Warden Objective (for Main specifically), which determines if the objective for the level (or one of the layers within the level) is Reactor Startup, Central Generator Cluster and all that.

To begin with, you can find any of the DBs in GameData_WardenObjectiveDatablock.json as your base reference.

At first glance it looks quite intimidating, right? Don’t worry. Let’s do some categorizations and split those fields up. To make it more succinct, I will use one of the datablock copy-pasted from GameData_WardenObjectiveDatablock.json, but remove some redundant parts and add some comments where necessary.

General fields

Waves / Events / Fog / Chained Puzzle fields

These fields tells the objective manager to spawn enemy waves and execute events at given point.

On Elevator Land

Literally on elevator land (upon cage drop). The fields are all self-clarifying.

On Activate

At first glance it's rather perplexing that what is "On Activate". Sadly, I have no idea how to describe it clearly ; )

For now, you may refer to its usage in different objective type get some hints. "WavesOnActivate" and "EventsOnActivate" are not used as frequently as "WavesOnGotoWin" and "EventsOnGotoWin"; in addition, the first part, which is the explanation for field "OnActivateOnSolveItem", is quite long. So if you feel hard to understand this part, I suggest you skip this part and read "On Goto Win" first

On Goto Win

By "Goto Win", it means objective completion.

Objective Chained Puzzle

Objective-specific fields

The following fields are all Objective Specific. You can remove those irrelevant fields given your objective type.

Some objective types don't have their own objective-specific fields.

Some may require you to spawn certain item(s) in certain zone(s) in LevelLayoutDatablock to make the objective work properly.

3 - Gather Small Item

Objective Type for R6C1 and R6D4.

6 - Retrieve Big Item

Objective Type for R6A1 and R6C2 Secondary.

Note: for zones that spawn those Big Pickup Items (no matter if they are objective item or not), don't forget to set "BigPickupDistribution" in LevelLayoutDatablock to "true"

1/2 - Reactor Startup/Shutdown

Geomorph-tied objective type. To make a Reactor Startup / Shutdown work properly, you must set certain geomorph in the level.

Here's a list of the name of Reactor geomorph (use Ctrl + F in the doc 'All Geomorph' to see what they look like):

  • Mining Reactor Open HA 1 ****"Assets/AssetPrefabs/Complex/Mining/Geomorphs/geo_64x64_mining_reactor_open_HA_01.prefab"

  • Mining Reactor HA 2 ****"Assets/AssetPrefabs/Complex/Mining/Geomorphs/geo_64x64_mining_reactor_HA_02.prefab"

  • Lab Reactor HA 1 ****"Assets/AssetPrefabs/Complex/Tech/Geomorphs/geo_64x64_lab_reactor_HA_01.prefab"

  • Lab Reactor HA 2 ****"Assets/AssetPrefabs/Complex/Tech/Geomorphs/geo_64x64_lab_reactor_HA_02.prefab"

Note: For Reactor Shutdown, you can only use the Mining Reactor HA 2 as your Reactor Geomorph. Without aid of a plugin, Reactor Shutdown would be broken if using the other 3 geomorphs.

Finally, there's no Floodway Reactor so far.

5 - Special Terminal Command

The most phenomenal use of this objective type is probably R5C2 Overload, in which "WavesOnActivate", "EventsOnActivate", "ChainedPuzzleMidObjective" are all well used.

Also R5B3 Secondary (or Extreme) is an example for how to use this objective type.

7 - Distribute Powercell

R6C2 Main Objective.

Note:

  1. If you are using this objective type as your Main Layer objective, the required number of powercells will be given in the elevator cargo container.

  2. Otherwise (you are using it as your Secondary/Overload objective), the powercells will spawn in the first zone of the layer. Don't forget to set those zones' "ForceBigpickupDistribution" to "true"

  3. If you don't want the powercell to be given in the elevator cargo, you will need the help of Tweaker, a plugin that enables you to manipulate your elevator cargo.

In addition, you need to spawn the required number of PowerGenerator(s) in LevelLayoutDatablock in the desired zone(s). The objective manager would choose one of the unselected PowerGenerator(s) spawned in the zone as the objective generator.

R6B2 Secondary / R6D2 Secondary

To use this objective types, you need to spawn required number of terminals for each uplink in LevelLayoutDatablock.

Also, for Corrupted Uplink, sadly, for each Uplink, you CAN'T spawn the 2 terminals for the uplink in 2 different zone.

9 - Central Generator Cluster

Geomorph-tied objective type (same as Reactor Startup/Shutdown).

Here's a list of the name of valid generator geomorph (in which you can spawn a generator cluster) . Use Ctrl + F in the doc 'All Geomorph' to see what they look like:

  • Digsite hub HA 1 ****"Assets/AssetPrefabs/Complex/Mining/Geomorphs/Digsite/geo_64x64_mining_dig_site_hub_HA_01.prefab"

  • Digsite hub HA 2 ****"Assets/AssetPrefabs/Complex/Mining/Geomorphs/Digsite/geo_64x64_mining_dig_site_hub_HA_02.prefab"

  • Lab hub HA 2 ****"Assets/AssetPrefabs/Complex/Tech/Geomorphs/geo_64x64_tech_lab_hub_HA_02.prefab"

  • Lab HA 2 [Standard Geomorph] ****"Assets/AssetPrefabs/Complex/Tech/Geomorphs/geo_64x64_tech_lab_HA_02.prefab"

  • Lab HA 3 [Standard Geomorph] "Assets/AssetPrefabs/Complex/Tech/Geomorphs/geo_64x64_tech_lab_HA_03.prefab"

Note that I've marked the last 2 geomorph with [Standard Geomorph]. If you directly copy-paste them into "CustomGeomorph" in LevelLayoutDatablock, your console will flood with Errors. Without editing ComplexResourceSetDatablock, if you want to use the 2 standard geomorphs, you will need to roll subseed to change the Zone's layout and MarkerSubseed to finally get a Generator Cluster. I suggest you read the 'All Geomorph' doc to find out why.

Oh, finally, in LevelLayoutDatablock, don't forget to set "GeneratorClustersInZone" to 1 in the desired zone.

10 - Activate Neonate_HSU / Datasphere. Unseal Hi-Sec Cargo Crate.

Geomorph-tied objective type (same as Reactor Startup/Shutdown).

Here's a list of the name of available geomorph. Use Ctrl + F in the doc 'All Geomorph' to see what they look like:

  • Lab Dead End Room 1 ****"Assets/AssetPrefabs/Complex/Tech/Geomorphs/geo_64x64_Lab_dead_end_room_02.prefab"

  • Lab Dead End Room 2 ****"Assets/AssetPrefabs/Complex/Tech/Geomorphs/geo_64x64_Lab_dead_end_room_01.prefab"

  • Refinery Dead End HA 1 ****"Assets/AssetPrefabs/Complex/Mining/Geomorphs/Refinery/geo_64x64_mining_refinery_dead_end_HA_01.prefab"

11 - Survival

This type of objective begins upon entering the layer.

For example, if you set the Secondary objective as Survival, the timer won't starts until any of your teammates pace into the Secondary Bulkhead Door.

The objective completes upon the timer ends.

You can end the timer in advance by using a "ForceWin" event.

After the "prepare time" ends, the objective manager will start executing events in "EventsOnActivate", and spawn waves in "WavesOnActivate".

12 - Gather Terminal

How to write an Event?

First, let's take a look at an event copy-pasted from the vanilla datablock:

A bit intimidating, right? Luckily, for a certain event type only few fields are used, which means we can remove unused fields to make our file look cleaner.

Here's a list of EventType:

  • 0 - None

  • 1 - OpenSecurityDoor

  • 2 - UnlockSecurityDoor

  • 3 - AllLightsOff

  • 4 - AllLightsOn

  • 5 - PlaySound

  • 6 - SetFogSetting

  • 7 - DimensionFlashTeam

  • 8 - DimensionWarpTeam

  • 9 - SpawnEnemyWave

  • 10 - StopEnemyWaves

  • 11 - UpdateCustomSubObjective

  • 12 - ForceCompleteObjective

  • 999 - EventBreak

In the following I will try to explain what each event type does, and which fields are used. Also an example is provided for you to refer to and copy-paste.

0 - None

Does nothing. You can use it to display Warden Intel.

1 - OpenSecurityDoor

Open a given Sec-Door, even the door is locked with a security alarm.

Note: Without aid of a plugin, you can't open a sec-door that has already been "approached".

2 - UnlockSecurityDoor

Works similarly as OpenSecurityDoor.

3 - AllLightsOff

Shutdown all lights in the current level.

4 - AllLightsOn

Turn on all lights in the current level.

5 - PlaySound

Play certain sound in/from specific zone. You will need to collect the sound ID from vanilla data.

6 - SetFogSettings

Changed the fog for the entire level.

7 - DimensionFlashTeam

[Not 100% sure if my explanation is correct. Rectify if anywhere wrong]

Teleport your team to a given dimension, and teleport back after a certain duration.

This event is used in R6A1 and R6C1.

8 - DimensionWarpTeam

[Not 100% sure if my explanation is correct. Rectify if anywhere wrong]

Teleport your team to a given dimension. You need to execute another "DimensionWarpTeam" event in the dimension to teleport either to another dimension or back to reality.

This event is used in R6D1 and R6D4.

9 - SpawnEnemyWave

Like the name said.

Note: What's the difference between "WardenIntel" and "IntelMessage"?

I'm not pretty sure...

"WardenIntel" display intel message after "Delay" timer ends.

"IntelMessage" won't change [ZONE_4] into actual zone name, and is displayed after "SpawnDelay" timer ends.

10 - StopEnemyWave

Stop all waves. For example, scout wave, reactor wave, uplink wave... everything.

11 - UpdateCustomSubObjective

What's "Custom SubObjective"? It's the "[PROGRESSION]" shown in the upper left of your hud, right below the objective description text.

What's the difference between "CustomSubObjectiveHeader" and "CustomSubObjective"? I don't know how to explain this. It is used in R6D3 Overload, which tells you to shutdown the Error alarm in Zone 292.

Note: unlike "WardenIntel", "CustomSubObjectiveHeader" and "CustomSubObjective" only accept reference to datablock. Do not use string.

12 - ForceCompleteObjective

Used in R6D1 to make the Main objective complete after the boss death.

Use "Layer" to specify which layer to force win.

999 - EventBreak

Used in "EventsOnActivate"with "OnActivateOnSolveItem" set to true. Split up the event sequence to several parts and execute each on solving objective item.

Take R6C1, R6C2 Main, R6D4 as example.

Last updated

Was this helpful?