Modding Data Parser Schema Contacts and Services

From Cyber Knights: Flashpoint Wiki

References Links for Data Parser Schema

Modding Data Parser Schema Intro/Contacts and Services

Contacts and Services[edit | edit source]

ContactBackstory[edit | edit source]

A ContactBackstory record defines the template for generating a new NPC contact. It sets the contact's type, influence, power level, favor, trust, faction affiliation, and traits. BlockCondition entries with Type: AddCharacter reference a ContactBackstory by its group ID.

Fields

Field Type Default Notes
ContactBackstoryId INTEGER Auto

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

Group INTEGER required

The group ID used by AddCharacter BlockConditions to reference this contact backstory.
SQL column: BackstoryGroup

NewGame INTEGER 0

TODO: Describe NewGame.

ContactType INTEGER required

The contact type, controlling what services and behaviors this contact has.

Status INTEGER required

The contact's initial active status. Set to 1 for active.

InfluenceScore INTEGER required

The contact's influence score, affecting their available services.

PowerLevel INTEGER required

The contact's power level, affecting mission and service availability.

Favor INTEGER 0

Starting favor the player has with this contact.

Trust INTEGER 0

Starting trust score with this contact.

Cosmetic INTEGER required

TODO: Describe Cosmetic.

ServiceGroupId1 INTEGER 0

TODO: Describe ServiceGroupId1.

ServiceLevel1 INTEGER 0

TODO: Describe ServiceLevel1.

ServiceGroupId2 INTEGER 0

TODO: Describe ServiceGroupId2.

ServiceLevel2 INTEGER 0

TODO: Describe ServiceLevel2.

ServiceGroupId3 INTEGER 0

TODO: Describe ServiceGroupId3.

ServiceLevel3 INTEGER 0

TODO: Describe ServiceLevel3.

Weight INTEGER "1"

Selection weight when multiple contact backstories exist in the same group.

Trait1A TEXT ""

First trait option in trait slot 1.

Trait1B TEXT ""

Second trait option in trait slot 1.

Trait1C TEXT ""

TODO: Describe Trait1C.

Trait1D TEXT ""

TODO: Describe Trait1D.

Trait1E TEXT ""

TODO: Describe Trait1E.

Trait1F TEXT ""

TODO: Describe Trait1F.

Trait2A TEXT ""

First trait option in trait slot 2.

Trait2B TEXT ""

TODO: Describe Trait2B.

Trait2C TEXT ""

TODO: Describe Trait2C.

Trait2D TEXT ""

TODO: Describe Trait2D.

Trait2E TEXT ""

TODO: Describe Trait2E.

Trait2F TEXT ""

TODO: Describe Trait2F.

ContactLink TEXT ""

The story ID assigned to the contact for dialog interpolation.
Must start with one of: NCP_
SQL column: ContactStoryId

FactionTag TEXT ""

The faction tag applied to this contact.
SQL column: TagFactionGroup

BlockGroup TEXT ""

A BlockCondition group applied when this contact is created.

Tag1 TEXT ""

First tag applied to the generated contact.

Tag2 TEXT ""

Second tag applied to the generated contact.

Tag3 TEXT ""

TODO: Describe Tag3.

TagID TEXT ""

A PersonalID tag applied to identify this specific contact in story events.

TagRandom1 TEXT ""

TODO: Describe TagRandom1.

TagRandom2 TEXT ""

TODO: Describe TagRandom2.

CodeName TEXT ""

The contact's code name written to the localization JSON.
Written to localization JSON as ContactBackstory.CodeName.{ContactBackstoryId}.
JSON output only — not written to SQL.

Location TEXT ""

The contact's location text written to the localization JSON.
Written to localization JSON as ContactBackstory.Location.{ContactBackstoryId}.
JSON output only — not written to SQL.

GivenName TEXT ""

The contact's given name written to the localization JSON.
Written to localization JSON as ContactBackstory.GivenName.{ContactBackstoryId}.
JSON output only — not written to SQL.

Surname TEXT ""

The contact's surname written to the localization JSON.
Written to localization JSON as ContactBackstory.Surname.{ContactBackstoryId}.
JSON output only — not written to SQL.


ContactPowerLevel[edit | edit source]

ContactPowerLevel defines the power tiers used to classify contacts. Each tier has an action class, a numeric power level, a fractional modifier, and a display title stored directly in SQL.

Fields

Field Type Default Notes
ContactPowerLevelId INTEGER required

Hand-authored primary key for this power level tier.
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 power level value.
SQL column: ActionPowerLevel

Fraction REAL 0

A fractional modifier (0.0–1.0) used in power level calculations.
SQL column: PowerLevelFraction

Title TEXT ""

Display title for this power level tier, stored in SQL.
SQL column: ContactPowerLevelTitle


ContactService[edit | edit source]

A ContactService defines a single service or item available through a contact. Services can be purchased with credits, favor, or items. They can be gated by tags, game states, power play conditions, and faction relationships.

Fields

Field Type Default Notes
ServiceTypeId INTEGER required

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

Class INTEGER 0

The service classification controlling its category and behavior.
SQL column: ServiceClass

Influence INTEGER 0

Influence score gained when this service is purchased.
SQL column: InfluenceScore

Flow INTEGER 0

The flow type controlling how this service is presented.
SQL column: ServiceFlow

Group INTEGER 0

The service group this service belongs to.
SQL column: ServiceGroupId

Level INTEGER 0

The service level at which this service is available.
SQL column: ServiceLevel

Display INTEGER 0

The display level controlling UI presentation.
SQL column: DisplayLevel

Option INTEGER 0

A service option parameter.
SQL column: ServiceOptionId

Upgrade INTEGER 0

If set, this service upgrades an existing item or capability.
SQL column: UpgradeReady

TraitGroup INTEGER 0

A ContactTrait group associated with this service.
SQL column: ContactTraitGroupId

Cooldown INTEGER 0

Turns before this service can be purchased again.
SQL column: CooldownTurns

OneTime INTEGER 0

If set, this service can only be purchased once.
SQL column: OneTimeService

MinRep INTEGER 0

Minimum reputation required to access this service.
SQL column: MinimumRep

Cost INTEGER 0

Credit cost for this service.
SQL column: UseCost

CostMod INTEGER 0

A modifier applied to the base credit cost.

TimeMod INTEGER 0

A modifier applied to the delivery time.

Against INTEGER 0

A faction this service works against, affecting faction relationships.
SQL column: AgainstFactionId

TagMatch TEXT ""

Tag filter for eligibility.

PowerPlay TEXT ""

A power play tag condition required to access this service.
SQL column: PowerPlayTag

GroupTag TEXT ""

A group tag condition required.
SQL column: GroupTagReq

TagReq1 TEXT ""

First tag requirement.

TagReq2 TEXT ""

Second tag requirement.

TagReq3 TEXT ""

Third tag requirement.

TagReq4 TEXT ""

Fourth tag requirement.

Block TEXT ""

A Block GroupId fired when this service is purchased.
SQL column: BlockGroup

GameState TEXT ""

A game state ID checked or set when this service is used.
SQL column: GameStateId

Name TEXT ""

The service's display name.
Written to localization JSON as ContactService.Name.{ServiceTypeId}.
JSON output only — not written to SQL.

Desc TEXT ""

The service's description.
Written to localization JSON as ContactService.Desc.{ServiceTypeId}.
JSON output only — not written to SQL.


ContactTrait[edit | edit source]

A ContactTrait is a persistent characteristic of a contact that modifies their behavior, available services, and relationship dynamics. Traits have levels and can be part of upgrade chains. They may require certain tags to be present on the contact.

Fields

Field Type Default Notes
ContactTraitId INTEGER required

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

Class INTEGER 0

The trait classification controlling its category.
SQL column: TraitClass

Level INTEGER 0

The upgrade level of this trait.
SQL column: TraitLevel

Group INTEGER 0

The trait group for organizational purposes.
SQL column: TraitGroupId

TraitGroup INTEGER 0

The ContactTrait group ID used when assigning proc-gen traits.
SQL column: ContactTraitGroupId

Influence INTEGER 0

Influence score modification applied by this trait.
SQL column: InfluenceScore

Effect INTEGER 0

An effect type applied by this trait.
SQL column: EffectTypeId

Score INTEGER 0

Numeric score used in proc-gen weighting.
SQL column: TraitScore

TagMatch TEXT ""

Tag filter controlling which contacts can have this trait.

Name TEXT ""

The trait's display name.
Written to localization JSON as ContactTrait.Name.{ContactTraitId}.
JSON output only — not written to SQL.

Desc TEXT ""

The trait's description.
Written to localization JSON as ContactTrait.Desc.{ContactTraitId}.
JSON output only — not written to SQL.


ContactType[edit | edit source]

A ContactType defines the role and capabilities of a contact archetype. It controls the contact's class, influence level, version, and the service groups available at each service level. A contact's type determines what they can offer the player.

Fields

Field Type Default Notes
ContactTypeId INTEGER required

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

Class INTEGER 0

The contact's class, controlling their general role and behavior.
SQL column: ContactClass

Level INTEGER 0

The base influence level of contacts of this type.
SQL column: ContactLevel

Version INTEGER 0

The version of this contact type for upgrade tracking.
SQL column: ContactVersion

Expand1 INTEGER 0

First expansion group unlocked as this contact's relationship grows.
SQL column: ExpandGroup1

Expand2 INTEGER 0

Second expansion group.
SQL column: ExpandGroup2

Expand3 INTEGER 0

Third expansion group.
SQL column: ExpandGroup3

OneTime INTEGER 0

A service group offered only once.
SQL column: OneTimeGroup

Heat INTEGER 0

Maximum heat this contact can accumulate before going dark.
SQL column: HeatMax

Svc1 INTEGER 0

Service group available at service level 1.
SQL column: ServiceGroupId1

Lvl1 INTEGER 0

The service level threshold to unlock Svc1.
SQL column: ServiceLevel1

Svc2 INTEGER 0

Service group available at service level 2.
SQL column: ServiceGroupId2

Lvl2 INTEGER 0

The service level threshold to unlock Svc2.
SQL column: ServiceLevel2

Svc3 INTEGER 0

Service group at level 3.
SQL column: ServiceGroupId3

Lvl3 INTEGER 0

Level threshold for Svc3.
SQL column: ServiceLevel3

Svc4 INTEGER 0

Service group at level 4.
SQL column: ServiceGroupId4

Lvl4 INTEGER 0

Level threshold for Svc4.
SQL column: ServiceLevel4

Svc5 INTEGER 0

Service group at level 5.
SQL column: ServiceGroupId5

Lvl5 INTEGER 0

Level threshold for Svc5.
SQL column: ServiceLevel5

Svc6 INTEGER 0

Service group at level 6.
SQL column: ServiceGroupId6

Lvl6 INTEGER 0

Level threshold for Svc6.
SQL column: ServiceLevel6

Svc7 INTEGER 0

Service group at level 7.
SQL column: ServiceGroupId7

Lvl7 INTEGER 0

Level threshold for Svc7.
SQL column: ServiceLevel7

TagMatch TEXT ""

Tag filter used when matching contacts of this type.

Name TEXT ""

The contact type's display name.
Written to localization JSON as ContactType.Name.{ContactTypeId}.
JSON output only — not written to SQL.

Abbrev TEXT ""

A short abbreviation shown in compact UI contexts.
Written to localization JSON as ContactType.Abbrev.{ContactTypeId}.
JSON output only — not written to SQL.

Desc TEXT ""

Description of this contact type's role.
Written to localization JSON as ContactType.Desc.{ContactTypeId}.
JSON output only — not written to SQL.



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