Modding Data Parser Schema Missions

From Cyber Knights: Flashpoint Wiki

References Links for Data Parser Schema

Modding Data Parser Schema Intro/Missions

Missions[edit | edit source]

Mission[edit | edit source]

A Mission defines a tactical operation the player's team can undertake. Each mission is identified by its MissionTypeId string and is composed of one or more MissionRoom records linked by that same ID.

Fields

Field Type Default Notes
PriceMod INTEGER 0

Modifier applied to the mission's base payout.

NoPayment INTEGER 0

If set to Yes, this mission pays no credits on completion.
See Value Mappings: NoPayment.

ExpMod INTEGER 0

Modifier applied to experience points awarded on completion.

TimeMod INTEGER 0

Modifier applied to the time limit.

TimeArbitrary INTEGER 0

If set, overrides the calculated time limit with a fixed value.

MaxMerc INTEGER 0

TODO: Describe MaxMerc.

SecurityDeck INTEGER 0

TODO: Describe SecurityDeck.
SQL column: SecurityDeckId

PowerLevelMod INTEGER 0

TODO: Describe PowerLevelMod.

MatrixPowerLevelMod INTEGER 0

TODO: Describe MatrixPowerLevelMod.

Type TEXT required

The unique string ID for this mission. Used as the FK in MissionRoom and MissionBlock.
Hand-authored primary key. Used as the WHERE key for UPDATE/DELETE.
SQL column: MissionTypeId

Desc TEXT ""

References a Dialog sequence that builds the mission description shown to the player.
SQL column: MissionDesc

Theme TEXT ""

The visual and audio theme applied to this mission's environment.
See Value Mappings: Theme.

ForContact TEXT ""

TODO: Describe ForContact.
Must start with one of: NCT_ NCP_ NTG_

ForFaction TEXT ""

TODO: Describe ForFaction.
Must start with one of: Faction_

AgainstContact TEXT ""

TODO: Describe AgainstContact.
Must start with one of: NCT_ NCP_ NTG_

AgainstFaction TEXT ""

TODO: Describe AgainstFaction.
Must start with one of: Faction_

Title TEXT ""

The mission title written to the localization JSON.
Written to localization JSON as MissionData.Title.{MissionTypeId}.
JSON output only — not written to SQL.

Value Mappings

Theme[edit | edit source]

The visual and audio theme for this mission's environment.

Authored Value SQL Value Meaning
Corp CORP Corporate environment
Lux LUX Luxury/high-end environment
Street STREET Street-level underworld environment

NoPayment[edit | edit source]

Controls whether this mission pays out credits on completion.

Authored Value SQL Value Meaning
true 1

MissionAdvantage[edit | edit source]

A MissionAdvantage is a special capability or resource that can be purchased before a mission begins through a contact. Advantages can provide combat buffs, intelligence, extra equipment, or other tactical benefits.

Fields

Field Type Default Notes
AdvantageTypeId INTEGER required

Hand-authored primary key for this advantage.
Hand-authored primary key. Used as the WHERE key for UPDATE/DELETE.

Class INTEGER 0

The advantage category controlling its UI placement and behavior.
SQL column: AdvantageClass

ActionType INTEGER 0

The action type this advantage triggers.
SQL column: ActionTypeId

ActionOpt INTEGER 0

An option parameter for the action type.
SQL column: ActionOptionId

MatrixOnly INTEGER 0

If set, this advantage only applies in Matrix combat.
SQL column: AdvantageIsMatrixOnly

Duration INTEGER 0

Number of turns this advantage's effect lasts.
SQL column: TurnDuration

Room INTEGER 0

The room level at which this advantage becomes available.
SQL column: RoomLevel

PowerLevel INTEGER 0

The power level of this advantage.

Base INTEGER 0

Base credit cost.
SQL column: BaseCost

Favor INTEGER 0

Favor cost.
SQL column: FavorCost

Item INTEGER 0

Item cost.
SQL column: ItemCost

Token INTEGER 0

Token cost.
SQL column: TokenCost

AutoPrice INTEGER 0

If set, the price is calculated automatically based on power level.

Trust INTEGER 0

Minimum trust required to purchase this advantage.
SQL column: TrustMin

Name TEXT ""

The advantage's display name.
Written to localization JSON as Advantage.Name.{AdvantageTypeId}.
JSON output only — not written to SQL.

Rule TEXT ""

A short rules text shown in the UI.
Written to localization JSON as Advantage.Rule.{AdvantageTypeId}.
JSON output only — not written to SQL.

Desc TEXT ""

The advantage's full description.
Written to localization JSON as Advantage.Desc.{AdvantageTypeId}.
JSON output only — not written to SQL.


MissionAdvantageMatch[edit | edit source]

A MissionAdvantageMatch defines the contact matching rules for a MissionAdvantage. The engine evaluates tag requirements against available contacts to find an eligible contact who can provide the advantage.

Fields

Field Type Default Notes
MissionAdvantageMatchId INTEGER Auto

Auto-assigned ID for this match entry.
Auto-assigned from StartingId if omitted. Hand-author to reserve a specific ID. Used as the WHERE key for UPDATE/DELETE.

Sort INTEGER 0

Sort order when multiple match entries compete.
SQL column: SortOrder

MissionAdvantageMatchGroup TEXT required

The group ID shared by all match entries in this set.
Inherited automatically from the parent group object. All Items in a group share the same value.

Always TEXT ""

A contact that is always eligible for this advantage regardless of tags.
Must start with one of: NCT_ NCP_ NTG_
SQL column: AlwaysContact

Never TEXT ""

A contact that is never eligible for this advantage.
Must start with one of: NCT_ NCP_ NTG_
SQL column: NeverContact

TagReq1 TEXT ""

Tag that the matched contact must have.

TagReq2 TEXT ""

Second required tag.

TagReq3 TEXT ""

Third required tag.

TagNot1 TEXT ""

Tag that the matched contact must NOT have.

TagNot2 TEXT ""

Second excluded tag.

TagNot3 TEXT ""

Third excluded tag.

Name TEXT ""

Display name for this match configuration.
Written to localization JSON as AdvantageMatch.Name.{MissionAdvantageMatchId}.
JSON output only — not written to SQL.

Desc TEXT ""

Description of what this match represents.
Written to localization JSON as AdvantageMatch.Desc.{MissionAdvantageMatchId}.
JSON output only — not written to SQL.


MissionBlock[edit | edit source]

A MissionBlock attaches story Block triggers to a MissionRoom. Each entry fires a Block Group when a specific in-mission event occurs — a room victory, a turn threshold, an alarm level change, or any of the other supported trigger types.

Fields

Field Type Default Notes
RoomId INTEGER required

The MissionRoom.JsonId this MissionBlock is attached to.
SQL column: MissionRoomId

Turn INTEGER 0

The turn number that triggers this block, when Trigger is Timer or MaxTurn.
SQL column: TriggerTurn

Filter INTEGER 0

An additional filter ID that must be satisfied for this trigger to fire.
SQL column: TriggerFilterId

Skip INTEGER 0

If Yes, this MissionBlock is skipped and not evaluated.
See Value Mappings: Skip.
SQL column: SkipBlock

Type TEXT ""

The MissionTypeId this block belongs to. Currently unused — may be removed in future.
SQL column: MissionTypeId

Trigger TEXT ""

The in-mission event that causes this Block to fire.
See Value Mappings: Trigger.
SQL column: TriggerType

Block TEXT ""

The Block GroupId to fire when the trigger condition is met.
Must start with one of: B_ MO_
SQL column: BlockGroup

Override TEXT ""

An optional override key passed to the fired Block for conditional behavior.
SQL column: OverrideKey

Value Mappings

Skip[edit | edit source]

Whether to skip this MissionBlock entry entirely.

Authored Value SQL Value Meaning
Yes 1 This MissionBlock is skipped and not evaluated

Trigger[edit | edit source]

The in-mission event that fires this block.

Authored Value Meaning
None
MissionPreMission Fires before the mission begins
MissionVictory Fires on mission victory
MissionDefeat Fires on mission defeat
DoorOpen Fires when a door is opened
DoorClose
DeviceOn
DeviceOff
LootItem Fires when a loot item is collected
MapTrigger
MatrixFileDownload
MatrixScanCPU
MatrixSpikeCPU
MatrixHackAPU
Terminal Fires when a terminal is activated
Timer Fires at a specific turn number
Alarm Fires when the alarm is triggered
MissionObjective Fires when an objective state changes
TimerOnly
AlarmOnly
MissionReminder
MissionExpiration
MonsterKill Fires when a specific monster is killed
MissionDiscussion Offered as a discussion choice on the mission list screen
MissionReload
RoomVictory Fires when this room's objective is completed
RoomDefeat Fires when this room's objective fails
MaxTurn Fires when the maximum turn limit is reached
ChangeCharacter
ChangeEnemy
ExtractedWin Fires when all characters are extracted
ExtractCharacter
HeadHunterKill
MonsterKillAll Fires when all monsters in a group are killed
MonsterAttacked
Leverage
PreRoom
BlockTerminal
MetaSpawnVIP
MetaIntroTurn0
MetaTriggerExit
MetaTriggerRevealEscape
MetaTriggerEnemyEscape
MetaTriggerBlackmailLeverage
MetaFreePrisoner
MetaKillPrisonWarden
MetaKillAssassinateVIP
MetaLootRedKey
MetaLootObjectiveFile
CharacterRequired
MapFeature
RoomFlag
SecPerTurn
SecPerEscalation

MissionLoot[edit | edit source]

A MissionLoot record defines a lootable item or resource that can be found during a mission. Loot has a group, type, power level, and rarity, and may have a name, description, and icon stored directly in SQL.

Fields

Field Type Default Notes
MissionLootId INTEGER required

Hand-authored primary key for this loot record.
Hand-authored primary key. Used as the WHERE key for UPDATE/DELETE.

Group INTEGER 0

The loot group this record belongs to, used for proc-gen loot table selection.
SQL column: LootGroupId

Type INTEGER 0

The loot type controlling what kind of item or resource this represents.
SQL column: LootTypeId

Key INTEGER 0

An integer key used to identify the specific loot item within its type.
SQL column: LootKey

PowerLevel INTEGER 0

The power level of this loot, controlling availability and mission scaling.

Rarity INTEGER 0

The rarity tier of this loot.

Name TEXT ""

The loot item's display name, stored directly in SQL.
SQL column: LootName

Desc TEXT ""

The loot item's description, stored directly in SQL.
SQL column: LootDesc

Icon TEXT ""

Asset path for the loot item's icon, stored directly in SQL.
SQL column: LootIcon


MissionPowerLevel[edit | edit source]

MissionPowerLevel defines the power tiers used to scale missions. Each tier controls which enemies, rewards, and encounters appear based on the current power level of the mission.

Fields

Field Type Default Notes
MissionPowerLevelId INTEGER required

Hand-authored primary key for this mission power level.
Hand-authored primary key. Used as the WHERE key for UPDATE/DELETE.

Class INTEGER 0

The action class associated with this power level.
SQL column: ActionClass

Level INTEGER 0

The numeric mission power level value.
SQL column: MissionPowerLevel

Fraction REAL 0

A fractional modifier used in mission scaling calculations.
SQL column: PowerLevelFraction

Name TEXT ""

Display name for this power level tier, stored in SQL.
SQL column: PowerLevelName


MissionRoom[edit | edit source]

A MissionRoom defines one segment of a mission map. A mission is assembled from one or more rooms linked by MissionTypeId. Each room has its own objective, layout overrides, and optional text.

Fields

Field Type Default Notes
JsonId INTEGER Auto

Auto-assigned ID for this MissionRoom record. Referenced by MissionBlock entries.
Auto-assigned from StartingId if omitted. Hand-author to reserve a specific ID. Used as the WHERE key for UPDATE/DELETE.

Segment INTEGER 0

The segment index of this room within the mission (0-based).
SQL column: SegmentIndex

RoomType INTEGER 0

Overrides the proc-gen room type for this segment.
SQL column: RoomTypeOverride

AltPath INTEGER 0

Overrides the alternate path option for this room.
SQL column: AltPathOverride

File INTEGER 0

Overrides the map file used for this room.
SQL column: FileOverride

MaxTurn INTEGER 0

The maximum turns allowed in this room before expiration.

SecurityDeck INTEGER 0

TODO: Describe SecurityDeck.
SQL column: SecurityDeckOverride

Turret INTEGER 0

The turret placement rule for this room.
SQL column: TurretRule

Objective TEXT ""

The objective type for this room.
See Value Mappings: Objective.
SQL column: ObjectiveKey

Type TEXT required

The MissionTypeId this room belongs to. Links this room to its parent Mission record.
SQL column: MissionTypeId

ObjectiveBlock TEXT ""

TODO: Describe ObjectiveBlock.
Must start with one of: B_

Title TEXT ""

The room title written to the localization JSON.
Written to localization JSON as MissionRoomData.Title.{JsonId}.
JSON output only — not written to SQL.

Desc TEXT ""

The room description written to the localization JSON.
Written to localization JSON as MissionRoomData.Desc.{JsonId}.
JSON output only — not written to SQL.

ObjectiveDesc TEXT ""

The objective description written to the localization JSON.
Written to localization JSON as MissionRoomData.ObjectiveDesc.{JsonId}.
JSON output only — not written to SQL.

Value Mappings

Objective[edit | edit source]

The objective type assigned to this room.

Authored Value Meaning
Scav Search and recover multiple objectives
Blacksite Infiltrate a high-security facility
Cybersite
HackCPU Hack a CPU node
HackCPUDouble
HackLoot
HackFile
Kill3 Eliminate multiple targets
AssassinVIP Assassinate a VIP target
EscortVIP Escort a VIP to extraction
Battle Tactical combat engagement
SiegeBattle
HeistCPU Steal data from a CPU
StealFiles Steal physical files
BlackmailVIP
BlackmailMsg
HeistFiles
Passage
ExposedVIP
KillBoss Eliminate a boss enemy
KillBossBattle
Prisoner Free a prisoner
MultiSkyrise
LockedExit Reach and unlock the exit


Modding: Home · Quick Start Guide · Modkit Uploader · Example Project · Data Modding · Data Parser Schema · Use Cases · Download Modding Resources