-
Notifications
You must be signed in to change notification settings - Fork 5
Reference: Interface‐based data
Interface-based classes are used across many databases in Phantom Brigade. They offer a way to separate responsibilities and streamline serialized data. Instead of including every possible piece of functionality directly into the data structure (e.g. "is this config a weapon? if yes, what is its projectile? if it has a projectile, what is it's model? ..."), data types can declare collections with interface values. Those collections might be empty or include many different entries of different types implementing a given interface, each with different fields and execution logic.
This article covers most commonly utilized interface types based on annotations provided in code. Refer to FunctionInterfaces.cs in the SDK codebase and inspect the code for types inheriting from a given interface to learn more about each of the interfaces used by the game.
ℹ️ Used to execute arbitrary logic not requiring a target entity in the overworld context. Signature void Run ()
Classes inheriting from this interface: 106
No description available.
!ApplyProvinceArrivalEffects {}
No description available.
-
string type(nullable) bool displayDialog
!ApplySimLockEffect
type: ''
displayDialog: true
No description available.
-
string partKey(nullable)-
DataMultiLinkerBasePartdatabase key
-
!BasePartInstall
partKey: ''
No description available.
-
string typeName(nullable) -
string methodName(nullable) -
string argument(nullable) int frameDelay
!CallMethodStatic
typeName: ''
methodName: ''
argument: ''
frameDelay: 0
No description available.
-
string assetKey(nullable)
!ChangeSelfView
assetKey: ''
No description available.
int units-
List<ICombatUnitValidationFunction> checks(nullable) -
List<ICombatFunctionTargeted> functions(nullable)
!CombatModifyPlayerUnits
units: 0
checks: []
functions: []
No description available.
int units-
List<ICombatUnitValidationFunction> checks(nullable) -
List<ICombatFunctionTargeted> functions(nullable)
!CombatModifyUnits
units: 0
checks: []
functions: []
No description available.
-
string comment(nullable)
!Comment
comment: ''
No description available.
!CompleteWorkshopQueue {}
No description available.
bool log-
List<DataBlockVirtualParts> parts(nullable)
!CreateParts
log: false
parts:
- levelMin: 1
levelMax: 1
levelRandom: false
qualityTableKey: ''
preset: ''
tagsUsed: true
tags:
'': false
countMin: 1
countMax: 1
countRandom: false
No description available.
-
PilotIdentificationLocOnly identification(nullable) -
string bio(nullable) -
DataBlockPilotAppearanceOverlay appearanceOverlay(nullable) -
DataBlockPilotAppearance appearanceCustom(nullable) -
List<string> appearancePresets(nullable)-
DataMultiLinkerPilotAppearancePresetdatabase key
-
-
SortedDictionary<string,float> memory(nullable)
!CreatePilot
identification:
callsignLoc:
textSector:
textKey:
namePrimaryLoc:
textSector:
textKey:
nameSecondaryLoc:
textSector:
textKey:
bio: ''
appearanceOverlay:
key: ''
variant: ''
appearanceCustom:
version: 0
model: ''
skinMain: ''
heightOffset: 0
skinOverlay: ''
pilotSuitColorVariant: ''
skinTintPreset: ''
hairMain: ''
hairMainTintPreset: ''
hairFacial: ''
hairEyebrows: ''
hairFacialTintPreset: ''
eyesTintPreset: ''
eyesIrisPreset: ''
lipsTintPreset: ''
makeupPatternKey: ''
makeupColorVariantKey: ''
accessoryHeadTop: ''
accessoryHeadTopVariant: ''
accessoryHeadFront: ''
accessoryHeadFrontVariant: ''
blendPresetArchetype: ''
blendAppearanceCustomization: {}
blendShapes:
- key:
value: 0
portrait: ''
portraitVariant: ''
cameraAnglePreset: ''
appearancePresets:
- ''
memory:
'': 0
No description available.
PointDistancePriority spawnPriority-
string spawnGroup(nullable) -
DataBlockVector2 spawnRange(nullable) -
string provinceOverride(nullable) -
string nameOverride(nullable) -
string questKey(nullable) -
List<IOverworldTargetedFunction> functionsOnSpawn(nullable) bool tagsUsed-
List<string> keys(nullable) -
SortedDictionary<string,bool> tags: @GetTooltip () (nullable) -
DataContainerLink<DataContainerOverworldPointPreset>DataContainerLink<DataContainerOverworldPointPreset>> configsFiltered(nullable)
!CreatePoint
spawnPriority: None
spawnGroup: ''
spawnRange:
v:
x: 0
y: 0
provinceOverride: ''
nameOverride: ''
questKey: ''
functionsOnSpawn: []
tagsUsed: true
keys:
- ''
tags:
'': false
No description available.
-
SortedDictionary<string,bool> filter(nullable)
!CreatePointFiltered
filter:
'': false
No description available.
int pointLimit-
SortedDictionary<string,bool> filter(nullable)
!CreatePointFilteredBatch
pointLimit: 3
filter:
'': false
No description available.
!CreatePointRandom {}
No description available.
-
SortedDictionary<string,int> rewards(nullable)
!CreateRewards
rewards:
'': 0
No description available.
bool randomSingleEntry-
List<DataBlockOverworldPointReward> rewards(nullable) bool generated-
SortedDictionary<string,int> rewardsProcessed(nullable) -
List<string> rewardKeysFiltered(nullable)
!CreateRewardsFiltered
randomSingleEntry: false
rewards:
- chance: 1
repeats: 1
tagsUsed: true
keys:
- ''
tags:
'': false
No description available.
!CreateSimplePatrol {}
No description available.
bool log-
List<DataBlockVirtualSubsystems> subsystems(nullable)
!CreateSubsystems
log: false
subsystems:
- ratingRange:
min: 0
max: 0
blueprint: ''
tagsUsed: true
tags:
'': false
countMin: 1
countMax: 1
countRandom: false
No description available.
int levelOffset-
string qualityTable(nullable)-
DataMultiLinkerQualityTabledatabase key
-
-
string factionBranch(nullable)-
DataMultiLinkerOverworldFactionBranchdatabase key
-
-
string presetKey(nullable)-
DataMultiLinkerUnitPresetdatabase key
-
-
SortedDictionary<string,bool> presetTags(nullable) -
SortedDictionary<string,float> memory(nullable)
!CreateUnit
levelOffset: 0
qualityTable: ''
factionBranch: ''
presetKey: ''
presetTags:
'': false
memory:
'': 0
No description available.
-
List<DataBlockVirtualWorkshopProject> projects(nullable)
!CreateWorkshopProjects
projects:
- countMin: 1
countMax: 1
countRandom: false
tagsUsed: false
key: ''
tags:
'': false
No description available.
float delay-
List<IOverworldFunction> functions(nullable)
!DelayGroupRealtime
delay: 0
functions: []
No description available.
Mode modeint targetbool onlyCombatbool onlyHostile-
List<IOverworldEntityValidationFunction> checks(nullable)
!DeletePoints
mode: DeleteUntilTarget
target: 0
onlyCombat: false
onlyHostile: false
checks: []
No description available.
!ImplementSimLockEffectCamp {}
No description available.
!ImplementSimLockEffectResupply {}
No description available.
!ImplementSimLockEffectTravel {}
No description available.
-
string message(nullable)
!Log
message: ''
No description available.
-
DataBlockLocString data(nullable) -
string colorKey(nullable)-
DataMultiLinkerUIColordatabase key
-
!LogMessage
data:
textSector: ui_combat
textKey: ''
colorKey: ''
No description available.
-
List<DataBlockMemoryChangeFloat> changes(nullable)
!ModifyMemoryBase
changes:
- change: Offset
key: ''
value: 1
valueFromMemory: false
valueFromMemoryKey: ''
No description available.
-
string keyInput(nullable) -
string keyOutput(nullable) -
List<IFloatOperation> operations(nullable)
!ModifyMemoryBaseAdv
keyInput: ''
keyOutput: ''
operations: []
No description available.
-
List<DataBlockMemoryChangeFloat> changes(nullable)
!ModifyMemoryProvinceCurrent
changes:
- change: Offset
key: ''
value: 1
valueFromMemory: false
valueFromMemoryKey: ''
No description available.
int countbool onlyCombatbool onlyHostile-
List<IOverworldEntityValidationFunction> checks(nullable) -
List<IOverworldTargetedFunction> functions(nullable)
!ModifyOverworldPoints
count: 0
onlyCombat: true
onlyHostile: true
checks: []
functions: []
No description available.
int pilotsbool deployed-
List<IPilotValidationFunction> checks(nullable) -
List<IPilotTargetedFunction> functions(nullable)
!ModifyPilots
pilots: 0
deployed: false
checks: []
functions: []
No description available.
-
List<DataBlockResourceChange> resourceChanges(nullable)
!ModifyResources
resourceChanges:
- key: ''
check: true
checkStrict: false
offset: true
value: 0
No description available.
int unitsfloat value
!ModifyUnitHealth
units: 0
value: 0.5
No description available.
int units-
List<IOverworldUnitValidationFunction> checks(nullable) -
List<IOverworldUnitFunction> functions(nullable)
!ModifyUnitsOverworld
units: 0
checks: []
functions: []
No description available.
float timebool holdCountdown
!OffsetTime
time: 0
holdCountdown: true
No description available.
!OverworldAfterTravelDebug {}
No description available.
-
string eventKey(nullable)
!OverworldAudioEvent
eventKey: ''
No description available.
-
string syncKey(nullable) float value
!OverworldAudioSync
syncKey: ''
value: 0
No description available.
float delaybool positionOverrideVector3 position-
string positionFromEntityName(nullable) bool rotationXOverridefloat rotationXbool rotationYOverridefloat rotationYbool zoomOverridefloat zoom
!OverworldCameraChange
delay: 0
positionOverride: false
position:
x: 0
y: 0
z: 0
positionFromEntityName: ''
rotationXOverride: false
rotationX: 45
rotationYOverride: false
rotationY: 180
zoomOverride: false
zoom: 0.5
No description available.
-
string effectKey(nullable) -
DataBlockCampaignEffect effectFallback(nullable)
!OverworldCampaignEffect
effectKey: ''
effectFallback:
functionsGlobal: []
functionsBase: []
No description available.
float chance-
IOverworldFunction function(nullable)
!OverworldChance
chance: 0.5
function: !LogMessage
data:
textSector: ui_combat
textKey:
colorKey: ''
No description available.
float chance-
IOverworldFunction function(nullable) -
IOverworldFunction functionElse(nullable)
!OverworldChanceBranch
chance: 0.5
function: !LogMessage
data:
textSector: ui_combat
textKey:
colorKey: ''
functionElse: !LogMessage
data:
textSector: ui_combat
textKey:
colorKey: ''
No description available.
float chance-
List<IOverworldFunction> functions(nullable) -
List<IOverworldFunction> functionsElse(nullable)
!OverworldChanceBranchGroup
chance: 0.5
functions: []
functionsElse: []
No description available.
float chance-
List<IOverworldFunction> functions(nullable)
!OverworldChanceGroup
chance: 0.5
functions: []
No description available.
-
Dictionary<float,IOverworldFunction> functions(nullable)
!OverworldChanceWeighted
functions: {}
No description available.
-
List<IOverworldFunction>List<IOverworldFunction>> functions(nullable)
!OverworldChanceWeightedGroup
functions:
0: []
No description available.
-
string scenarioKey(nullable)-
DataMultiLinkerScenariodatabase key
-
-
string areaKey(nullable)-
DataMultiLinkerCombatAreadatabase key
-
!OverworldCombatForced
scenarioKey: ''
areaKey: ''
No description available.
float hue-
DataBlockLocString textPrimary(nullable) -
DataBlockLocString textSecondary(nullable) -
DataBlockLocString textTertiary(nullable)
!OverworldDisplayTitle
hue: 0
textPrimary:
textSector: ui_combat
textKey: ''
textSecondary:
textSector: ui_combat
textKey: ''
textTertiary:
textSector: ui_combat
textKey: ''
No description available.
-
List<IOverworldGlobalValidationFunction> checksGlobal(nullable) -
List<IOverworldEntityValidationFunction> checksBase(nullable) -
List<DataBlockOverworldResolvedIntCheck> checksBaseValues(nullable) -
List<IOverworldFunction> functions(nullable) -
List<IOverworldFunction> functionsElse(nullable)
!OverworldGroupConditional
checksGlobal: []
checksBase: []
checksBaseValues:
- resolver: !OverworldIntValuePointInstances
onlyCombat: false
onlyHostile: false
checks: []
check: Less
value: 0
functions: []
functionsElse: []
No description available.
-
List<IOverworldEntityValidationFunction> checks(nullable) -
List<IOverworldTargetedFunction> functions(nullable)
!OverworldGroupTargetFiltered
checks: []
functions: []
No description available.
-
string nameInternal(nullable) -
List<IOverworldTargetedFunction> functions(nullable)
!OverworldGroupTargetNamed
nameInternal: ''
functions: []
No description available.
!OverworldInteractionExit {}
No description available.
bool overrideOngoingbool tagsUsed-
List<string> keys(nullable) -
SortedDictionary<string,bool> tags: @GetTooltip () (nullable) -
DataContainerLink<DataContainerOverworldInteraction>DataContainerLink<DataContainerOverworldInteraction>> configsFiltered(nullable)
!OverworldInteractionStartFilter
overrideOngoing: true
tagsUsed: true
keys:
- ''
tags:
'': false
No description available.
-
List<IOverworldFunction> functionsFallback(nullable) bool overrideOngoingbool tagsUsed-
List<string> keys(nullable) -
SortedDictionary<string,bool> tags: @GetTooltip () (nullable) -
DataContainerLink<DataContainerOverworldInteraction>DataContainerLink<DataContainerOverworldInteraction>> configsFiltered(nullable)
!OverworldInteractionStartFilterFallback
functionsFallback: []
overrideOngoing: true
tagsUsed: true
keys:
- ''
tags:
'': false
No description available.
-
string targetNameInternal(nullable) bool overrideOngoingbool tagsUsed-
List<string> keys(nullable) -
SortedDictionary<string,bool> tags: @GetTooltip () (nullable) -
DataContainerLink<DataContainerOverworldInteraction>DataContainerLink<DataContainerOverworldInteraction>> configsFiltered(nullable)
!OverworldInteractionStartFilterTargeted
targetNameInternal: ''
overrideOngoing: true
tagsUsed: true
keys:
- ''
tags:
'': false
No description available.
-
string key(nullable)-
DataMultiLinkerOverworldProvinceModifierdatabase key
-
!OverworldModifierAdd
key: ''
No description available.
-
string key(nullable)-
DataMultiLinkerOverworldProvinceModifierdatabase key
-
!OverworldModifierRemove
key: ''
No description available.
int units-
List<ICombatUnitValidationFunction> checks(nullable) -
List<ICombatFunctionTargeted> functions(nullable)
!OverworldModifyPlayerUnits
units: 0
checks: []
functions: []
No description available.
int hours
!OverworldOffsetCountdownStartTime
hours: 0
No description available.
!OverworldRemoveCountdown {}
No description available.
int repeats-
IOverworldFunction function(nullable)
!OverworldRepeat
repeats: 1
function: !LogMessage
data:
textSector: ui_combat
textKey:
colorKey: ''
No description available.
int repeats-
List<IOverworldFunction> functions(nullable)
!OverworldRepeatGroup
repeats: 1
functions: []
No description available.
!OverworldResetCountdownStartTime {}
No description available.
int minint max
!OverworldSetCountdown
min: 1
max: 1
No description available.
-
string durationMemoryKey(nullable)-
DataMultiLinkerOverworldMemorydatabase key
-
int durationFallback
!OverworldSetCountdownFromMemory
durationMemoryKey: ''
durationFallback: 24
No description available.
-
string provinceKey(nullable)-
DataMultiLinkerOverworldProvinceBlueprintsdatabase key
-
-
List<IOverworldFunction> functionsGlobal(nullable) -
List<IOverworldTargetedFunction> functionsBase(nullable) -
List<IOverworldTargetedFunction> functionsDestination(nullable)
!OverworldTravel
provinceKey: ''
functionsGlobal: []
functionsBase: []
functionsDestination: []
No description available.
-
string key(nullable)-
DataMultiLinkerCutsceneVideodatabase key
-
bool instant
!PlayCutscene
key: ''
instant: false
No description available.
-
string effectKey(nullable) bool questMain-
string questKey(nullable)
!QuestActiveApplyEffectGroup
effectKey: ''
questMain: true
questKey: ''
No description available.
-
DataBlockOverworldEventSubcheckInt countCheck(nullable) -
List<IOverworldEntityValidationFunction> pointChecks(nullable) -
List<IOverworldFunction> functions(nullable) -
List<IOverworldFunction> functionsElse(nullable) bool questMain-
string questKey(nullable)
!QuestActivePointConditional
countCheck:
check: Less
value: 0
pointChecks: []
functions: []
functionsElse: []
questMain: true
questKey: ''
No description available.
bool onlyCombatbool onlyHostile-
List<IOverworldEntityValidationFunction> checks(nullable) bool questMain-
string questKey(nullable)
!QuestDeletePoints
onlyCombat: false
onlyHostile: false
checks: []
questMain: true
questKey: ''
No description available.
bool effectOnExitbool questMain-
string questKey(nullable)
!QuestExit
effectOnExit: true
questMain: true
questKey: ''
No description available.
int pointsPreserved-
List<IOverworldEntityValidationFunction> pointChecks(nullable) -
string progressMemoryKey(nullable)-
DataMultiLinkerOverworldMemorydatabase key
-
-
SortedDictionary<string,bool> filter(nullable) -
string spawnGroup(nullable) bool spawnShuffleint spawnLimitbool spawnLimitOverridesVariant-
string spawnVariantsKey(nullable) -
List<QuestLiberationSpawnVariant> spawnVariantsCustom(nullable) bool questMain-
string questKey(nullable)
!QuestLiberationUpdate
pointsPreserved: 1
pointChecks: []
progressMemoryKey: ''
filter:
'': false
spawnGroup: ''
spawnShuffle: true
spawnLimit: 0
spawnLimitOverridesVariant: false
spawnVariantsKey: ''
spawnVariantsCustom:
- escalationValue: 0
progressMemoryValue: 1
countdownOffset:
x: 0
y: 0
questMain: true
questKey: ''
No description available.
-
string memoryKey(nullable)-
DataMultiLinkerOverworldMemorydatabase key
-
int value-
DataBlockInt min(nullable) -
DataBlockInt max(nullable) bool questMain-
string questKey(nullable)
!QuestMemoryOffset
memoryKey: ''
value: 0
min:
i: 0
max:
i: 0
questMain: true
questKey: ''
No description available.
-
string memoryKey(nullable)-
DataMultiLinkerOverworldMemorydatabase key
-
bool questMain-
string questKey(nullable)
!QuestMemoryRemove
memoryKey: ''
questMain: true
questKey: ''
No description available.
-
string memoryKey(nullable)-
DataMultiLinkerOverworldMemorydatabase key
-
int valuebool questMain-
string questKey(nullable)
!QuestMemorySet
memoryKey: ''
value: 0
questMain: true
questKey: ''
No description available.
-
string stepRequired(nullable) -
string stepNext(nullable) bool effectOnExitbool effectOnEntrybool questMain-
string questKey(nullable)
!QuestProgress
stepRequired: ''
stepNext: ''
effectOnExit: true
effectOnEntry: true
questMain: true
questKey: ''
No description available.
bool questMain-
string questKey(nullable)
!QuestProvinceCapture
questMain: true
questKey: ''
No description available.
-
string key(nullable) -
string spawnGroupOverride(nullable) -
string nameOverride(nullable) -
List<IOverworldTargetedFunction> functionsOnSpawn(nullable) bool questMain-
string questKey(nullable)
!QuestProvinceCreatePoint
key: ''
spawnGroupOverride: ''
nameOverride: ''
functionsOnSpawn: []
questMain: true
questKey: ''
No description available.
Vector2 spawnRangePointDistancePriority spawnPriority-
SortedDictionary<string,bool> filter(nullable) -
string spawnGroupOverride(nullable) -
string nameOverride(nullable) -
List<IOverworldTargetedFunction> functionsOnSpawn(nullable) bool questMain-
string questKey(nullable)
!QuestProvinceCreatePointFiltered
spawnRange:
x: 0
y: 0
spawnPriority: None
filter:
'': false
spawnGroupOverride: ''
nameOverride: ''
functionsOnSpawn: []
questMain: true
questKey: ''
No description available.
int pointLimitint escalationMinint escalationMax-
SortedDictionary<string,bool> filter(nullable) -
List<IOverworldTargetedFunction> functionsOnSpawn(nullable) bool questMain-
string questKey(nullable)
!QuestProvinceCreatePointFilteredBatch
pointLimit: 3
escalationMin: 0
escalationMax: 0
filter:
'': false
functionsOnSpawn: []
questMain: true
questKey: ''
No description available.
bool activebool questMain-
string questKey(nullable)
!QuestProvinceWarState
active: false
questMain: true
questKey: ''
No description available.
int countTargetbool questMain-
string questKey(nullable)
!QuestReducePointsToCount
countTarget: 1
questMain: true
questKey: ''
No description available.
-
string questKey(nullable)
!QuestStart
questKey: ''
No description available.
-
string questKeyOngoing(nullable) -
string questKey(nullable)
!QuestStartWithQuestProvince
questKeyOngoing: ''
questKey: ''
No description available.
bool onlyCombatbool onlyHostile-
List<IOverworldEntityValidationFunction> checks(nullable) bool questMain-
string questKey(nullable)
!QuestUnlinkPoints
onlyCombat: false
onlyHostile: false
checks: []
questMain: true
questKey: ''
No description available.
bool questMain-
string questKey(nullable)
!RebuildTravelPoints
questMain: true
questKey: ''
No description available.
!SelectBase {}
No description available.
-
string nameInternal(nullable) float delaybool selectbool focus
!SelectEntity
nameInternal: ''
delay: 0
select: true
focus: true
No description available.
-
string key(nullable) float delay
!SelectEntityByPreset
key: ''
delay: 0
No description available.
bool active
!SetGameplayUIActive
active: false
No description available.
bool activebool instant
!SetScreenFade
active: true
instant: false
No description available.
!StartRetreat {}
No description available.
float duration-
string type(nullable)
!StartSimLock
duration: 12
type: ''
No description available.
-
string key(nullable)-
DataMultiLinkerTutorialdatabase key
-
bool allowRepeat
!StartTutorial
key: ''
allowRepeat: true
No description available.
-
string nameInternal(nullable) float interactionRangeMultiplier
!TeleportBaseToEntityName
nameInternal: ''
interactionRangeMultiplier: 0
No description available.
Vector3 position
!TeleportBaseToPosition
position:
x: 0
y: 0
z: 0
No description available.
-
string actionKey(nullable)-
DataMultiLinkerOverworldActiondatabase key
-
!TerminateAction
actionKey: ''
No description available.
-
string key(nullable)
!UnlockAchievement
key: ''
No description available.
-
string key(nullable)
!UnlockCodex
key: ''
No description available.
-
HashSet<string> keys(nullable)
!UnlockCodexGroup
keys:
- ''
No description available.
!UpdateCampaignOnFullStart {}
No description available.
!UpdateCampaignOnProvinceArrival {}
No description available.
-
string partPresetKey(nullable)-
DataMultiLinkerPartPresetdatabase key
-
int ratingint offset
!WorkshopProgressPart
partPresetKey: ''
rating: 1
offset: 1
No description available.
-
string subsystemBlueprintKey(nullable)-
DataMultiLinkerSubsystemdatabase key
-
int offset
!WorkshopProgressSubsystem
subsystemBlueprintKey: ''
offset: 1
This wiki is a work in progress. Please make sure to check the built-in tutorials within the SDK or the modding articles on the game wiki to supplement this page. If you get stuck or experience a bug, please don't hesitate to ask questions in the #phantom-modding channel of the official Discord server. We can't wait to see what you create!