Skip to content

C++ classes

Programmer · reference · C++

Generated from source — do not edit by hand.

This page is written by Docs/Manual/tools/gen_reference.py from the plugin's headers. Edit the source comment and re-run the generator instead. See Docs/Manual/tools/README.md.

Every reflected class, struct and enum in the plugin's public headers, grouped by module and folder. Property labels are Unreal's automatic split of the C++ name unless the source sets a display name, so they match the Details panel. Defaults are the C++ initialisers; a constructor or a Blueprint child can change them, so check the asset for the live value.

For the designer-facing data assets in full, see Data assets. For latent nodes and function libraries, see Blueprint nodes.

Contents

  • XenoCoreRuntime / (root) — UXenoCoreAlwaysCookList, UXenoCoreContentSettings
  • XenoCoreRuntime / AI — FXenoCoreAbilityReadyCondition, FXenoCoreAbilityReadyConditionInstanceData, FXenoCoreActivateAbilityTask, FXenoCoreActivateAbilityTaskInstanceData, FXenoCoreChaseTargetTask, FXenoCoreChaseTargetTaskInstanceData, FXenoCoreCombatAIProfile, FXenoCoreCompanionArtsTask, FXenoCoreCompanionArtsTaskInstanceData, FXenoCoreCompanionFightTask, FXenoCoreCompanionFightTaskInstanceData, FXenoCoreEnemyPatrolTask, FXenoCoreEnemyPatrolTaskInstanceData, FXenoCoreHasAggroTargetCondition, FXenoCoreHasAggroTargetConditionInstanceData, FXenoCoreInAttackRangeCondition, FXenoCoreInAttackRangeConditionInstanceData, FXenoCorePartyFollowLeaderTask, FXenoCorePartyFollowLeaderTaskInstanceData, FXenoCorePartyFollowTask, FXenoCorePartyFollowTaskInstanceData, FXenoCorePartyGazeTask, FXenoCorePartyGazeTaskInstanceData, FXenoCorePartyHoldTask, FXenoCorePartyHoldTaskInstanceData, FXenoCorePartyInBattleCondition, FXenoCorePartyInBattleConditionInstanceData, FXenoCorePartyRecalculatePositionTask, FXenoCorePartyRecalculatePositionTaskInstanceData, FXenoCoreTargetHasTagCondition, FXenoCoreTargetHasTagConditionInstanceData, UEnvQueryContext_XenoCoreCombatTarget, UEnvQueryContext_XenoCorePartySpacing
  • XenoCoreRuntime / AbilitySystem/Attributes — UXenoCoreStatSet
  • XenoCoreRuntime / AbilitySystem/Calculations — UXenoCoreMMC_EffectLevel
  • XenoCoreRuntime / AbilitySystem/Executions — UXenoCoreDamageExecution
  • XenoCoreRuntime / Animation — FXenoCoreFaceExpressionRow, FXenoCoreFaceExpressionRule, FXenoCoreReactionMontages, FXenoCoreWeightedExpression, UXenoCoreAnimInstance, UXenoCoreAnimNotify_GameplayEvent, UXenoCoreAnimProfileStatics, UXenoCoreCharacterAnimProfile, UXenoCoreFaceAnimInstance
  • XenoCoreRuntime / Arts — EXenoCoreArtAICheck, EXenoCoreArtArea, EXenoCoreArtAttribute, EXenoCoreArtCategory, EXenoCoreArtEffect, EXenoCoreArtEffectCondition, EXenoCoreArtEffectRecipient, EXenoCoreArtPositional, EXenoCoreArtTargetType, FXenoCoreArtAICondition, FXenoCoreArtEffectEntry, FXenoCoreArtPositionalBonus, FXenoCoreArtUnlock, UXenoCoreArtDefinition, UXenoCoreGameplayAbility_Art, UXenoCoreGameplayAbility_TalentArt, UXenoCoreTalentArtDefinition
  • XenoCoreRuntime / Audio — AXenoCoreAreaMusic
  • XenoCoreRuntime / Battle — EXenoCoreAttackTargetSource, FXenoCoreBattleWonMessage, FXenoCoreHitLunge, FXenoCoreThreatEntry, UXenoCoreAggroIndicatorComponent, UXenoCoreBattleVictorySubsystem, UXenoCoreGameplayAbility_AutoAttack, UXenoCoreGameplayAbility_DazeReact, UXenoCoreGameplayAbility_DefenceReact, UXenoCoreGameplayAbility_Downed, UXenoCoreGameplayAbility_EvadeReact, UXenoCoreGameplayAbility_GuardReact, UXenoCoreGameplayAbility_HitReact, UXenoCoreGameplayAbility_KnockdownReact, UXenoCoreGameplayAbility_Reaction, UXenoCoreGameplayAbility_RecoilReact, UXenoCoreGameplayAbility_ToppleReact, UXenoCoreStatusEffect, UXenoCoreStatusPercentCalc, UXenoCoreThreatComponent
  • XenoCoreRuntime / Camera — UXenoCoreGameplayAbility_CameraRecentre
  • XenoCoreRuntime / Characters — AXenoCoreCombatantCharacter, FXenoCoreAISteering, UXenoCoreCosmeticStatics, UXenoCoreHealthComponent, UXenoCoreHeroComponent
  • XenoCoreRuntime / Debug — AXenoCoreTestInteractable, UXenoCoreSystemCheats, UXenoCoreTestRunner, UXenoCoreTestSaveProbe
  • XenoCoreRuntime / Dialogue — AXenoCoreDialogueAnchor, EXenoCoreDialogueSpeaker, FXenoCoreDialogueLine, UXenoCoreDialogueFramingCameraNode, UXenoCoreDialogueSubsystem, UXenoCorePlayDialogue, UXenoCoreShowDialogue
  • XenoCoreRuntime / Enemies — AXenoCoreEnemyCharacter, AXenoCoreEnemyController, AXenoCoreEnemySpawner, EXenoCoreEnemyDetection, FXenoCoreEnemyDefeatedMessage, FXenoCoreLevelColourBand, FXenoCoreSpawnerEntry, UXenoCoreEnemySettings, UXenoCoreEnemyStatics
  • XenoCoreRuntime / Equipment — EXenoCoreEquipBlocker, EXenoCoreEquipSlot, FXenoCoreEquipmentSlotChangedMessage, FXenoCoreEquippedSlot, FXenoCoreMemberLoadout, FXenoCoreStartingEquipment, FXenoCoreStartingItem, FXenoCoreWeaponAnimLayerRule, FXenoCoreWeaponAnimLayers, UXenoCoreEquipmentComponent, UXenoCoreGameplayAbility_EquipmentStats, UXenoCoreWeaponTypeDefinition
  • XenoCoreRuntime / Feedback — AXenoCoreBeamFX
  • XenoCoreRuntime / Interaction — AXenoCoreInteractableActor, UXenoCoreInteractionSubsystem
  • XenoCoreRuntime / Inventory — EXenoCoreEquipType, EXenoCoreItemCategory, FXenoCoreFixedGem, FXenoCoreInventoryChangedMessage, FXenoCoreItemRarityRow, FXenoCoreItemView, FXenoCoreSocketedGem, FXenoCoreStatDefinition, FXenoCoreStatLine, UXenoCoreAbilityCost_PartyItem, UXenoCoreFragment_EquipSlots, UXenoCoreFragment_Gem, UXenoCoreFragment_ItemCategory, UXenoCoreFragment_ItemDisplay, UXenoCoreGemRegistry, UXenoCoreGemStatics, UXenoCoreInventoryStatics, UXenoCoreInventoryWatchSubsystem, UXenoCoreItemIconSet, UXenoCoreItemRarityStatics, UXenoCoreStatRowBase
  • XenoCoreRuntime / Locomotion — UXenoCoreLocomotionStatics
  • XenoCoreRuntime / Loot — AXenoCoreCollectableOrb, AXenoCoreTreasureChest, EXenoCoreChestTier, FXenoCoreChestOpenedMessage, FXenoCoreCollectableCollectedMessage, FXenoCoreDropEntry, FXenoCoreDropPool, UXenoCoreDropTable, UXenoCoreLootPopupBase, UXenoCoreLootPopupSubsystem, UXenoCoreLootStatics
  • XenoCoreRuntime / Lyra — FXenoCoreGrantedHandles
  • XenoCoreRuntime / Map — AXenoCoreMapArea, FXenoCoreMapMarkerStyle, UXenoCoreAreaDefinition, UXenoCoreGameplayAbility_MinimapOverlay, UXenoCoreMapMarkerSubsystem, UXenoCoreMinimap
  • XenoCoreRuntime / Merchant — EXenoCoreMerchantSort, UXenoCoreMerchantScreenBase
  • XenoCoreRuntime / Npc — AXenoCoreNpcCharacter, EXenoCoreNpcLine, EXenoCoreRecruitGate
  • XenoCoreRuntime / Party — AXenoCorePartyCharacter, AXenoCorePartyMemberController, AXenoCorePartyRecruitTrigger, EXenoCoreArtsOrder, EXenoCoreAttackOrder, EXenoCoreCrowdQuality, EXenoCorePartyCommandInput, EXenoCorePartyCursorPurpose, EXenoCorePartyNoticeType, EXenoCorePartySwitchMode, EXenoCorePartyWipePhase, EXenoCoreRole, EXenoCoreTactic, EXenoCoreTacticsDirection, FXenoCoreMemberOrders, FXenoCorePartyChangedMessage, FXenoCorePartyGaugeChangedMessage, FXenoCorePartyNotice, FXenoCorePartyOrders, FXenoCorePartyWipedMessage, FXenoCoreTacticChangedMessage, FXenoCoreTacticInfo, FXenoCoreTacticValue, UXenoCoreGameplayAbility_PartyCommand, UXenoCoreGameplayAbility_PartySwitch, UXenoCorePartyComponent, UXenoCorePartyGaugeComponent, UXenoCorePartyMemberDefinition, UXenoCorePartyNoticeSubsystem
  • XenoCoreRuntime / Player — AXenoCorePlayerController
  • XenoCoreRuntime / Progression — EXenoCoreArtSource, FXenoCoreArtSlot, FXenoCoreExperienceCurveRow, FXenoCoreLevelUpEntry, FXenoCoreLevelUpMessage, FXenoCoreMemberGain, FXenoCoreMemberProgress, FXenoCoreProgressionChangedMessage, FXenoCoreSkillLearntMessage, UXenoCoreLevelUpBannerBase, UXenoCoreProgressionCheats, UXenoCoreProgressionComponent
  • XenoCoreRuntime / Quest — AXenoCoreQuestLocation, EXenoCoreObjectiveIcon, EXenoCoreObjectiveKind, EXenoCoreQuestGateKind, EXenoCoreQuestKind, EXenoCoreQuestSort, EXenoCoreQuestStatus, FXenoCoreQuestChangedMessage, FXenoCoreQuestGate, FXenoCoreQuestObjective, FXenoCoreQuestRecord, FXenoCoreQuestReward, FXenoCoreQuestRowInfo, FXenoCoreQuestTurnedInMessage, UXenoCoreOfferQuest, UXenoCoreQuestComponent, UXenoCoreQuestDefinition, UXenoCoreQuestLogBase, UXenoCoreQuestLogRowBase, UXenoCoreQuestOfferBase, UXenoCoreQuestRewardBase, UXenoCoreQuestTrackerBase, UXenoCoreQuestUIStatics
  • XenoCoreRuntime / Save — AXenoCoreSavePoint, EXenoCoreSaveScreenMode, FXenoCoreSaveBody, FXenoCoreSaveHeader, FXenoCoreSaveRecord, FXenoCoreSavedArt, FXenoCoreSavedChest, FXenoCoreSavedEquip, FXenoCoreSavedGem, FXenoCoreSavedItem, FXenoCoreSavedMapChests, FXenoCoreSavedMember, FXenoCoreSavedQuest, FXenoCoreSavedSkillBranch, UXenoCoreAutosaveBadgeBase, UXenoCoreSaveGame, UXenoCoreSaveParticipantComponent, UXenoCoreSaveRowBase, UXenoCoreSaveScreenBase, UXenoCoreSaveSettings, UXenoCoreSaveSubsystem, UXenoCoreTitleScreenBase, UXenoCoreTitleStateComponent
  • XenoCoreRuntime / Shop — EXenoCoreShopMode, EXenoCoreShopStage, FXenoCoreShopBagEntry, FXenoCoreShopOffer, UXenoCoreOpenShop, UXenoCoreShopScreenBase, UXenoCoreShopStatics, UXenoCoreShopTable
  • XenoCoreRuntime / Skills — EXenoCoreSkillCondition, EXenoCoreSkillOperation, EXenoCoreSkillPointLevelBasis, EXenoCoreSkillScope, EXenoCoreSkillShape, EXenoCoreSkillTiming, EXenoCoreSkillTrigger, FXenoCoreBranchProgress, FXenoCoreSkillBranchRow, FXenoCoreSkillBranchUnlock, FXenoCoreSkillBranchView, FXenoCoreSkillCostCurveRow, FXenoCoreSkillEntry, FXenoCoreSkillPointRewardRow, FXenoCoreSkillStatMod, FXenoCoreSkillTraitLadderRow, FXenoCoreSkillView, FXenoCoreSkillsProgress, UXenoCoreGameplayAbility_Skill, UXenoCoreInvisibleButtonStyle, UXenoCoreSkillAbility_TimedBuff, UXenoCoreSkillBranchHeaderBase, UXenoCoreSkillCellBase, UXenoCoreSkillGrant, UXenoCoreSkillIconBase, UXenoCoreSkillIconSet, UXenoCoreSkillsUIStatics
  • XenoCoreRuntime / Targeting — FXenoCoreTargetChangedMessage, UXenoCoreGameplayAbility_TargetMode, UXenoCoreOffscreenArrowComponent, UXenoCoreTargetingStatics
  • XenoCoreRuntime / Trade — EXenoCoreTradeStage, FXenoCoreOvertradeBonus, FXenoCoreTradeBagEntry, FXenoCoreTradeOffer, FXenoCoreTradeRowInfo, UXenoCoreOpenTrade, UXenoCoreTradeRowBase, UXenoCoreTradeScreenBase, UXenoCoreTradeStatics, UXenoCoreTradeTable
  • XenoCoreRuntime / Tutorial — FXenoCoreTutorialCardStyle, FXenoCoreTutorialPrompt, FXenoCoreTutorialRow, UXenoCoreTutorialCardBase, UXenoCoreTutorialLogBase, UXenoCoreTutorialSubsystem
  • XenoCoreRuntime / UI — AXenoCorePreviewStage, EXenoCoreArtsScreenMode, EXenoCoreItemSort, EXenoCorePaletteState, EXenoCoreStatBlockMode, FXenoCoreArtDetailLine, FXenoCoreArtView, FXenoCoreBattleNotification, FXenoCoreMenuEntry, FXenoCorePaletteEntry, FXenoCorePaletteSideSlot, FXenoCorePartyRowInfo, FXenoCoreSaveRowInfo, FXenoCoreUIEffect, FXenoCoreUIEffectPlayback, UXenoCoreArtRowBase, UXenoCoreArtsPaletteBase, UXenoCoreArtsScreenBase, UXenoCoreArtsUIStatics, UXenoCoreAskConfirmAsync, UXenoCoreBattleNotifyBase, UXenoCoreBattleNotifySubsystem, UXenoCoreBootScreenBase, UXenoCoreBuildStampSubsystem, UXenoCoreCharacterMenuScreenBase, UXenoCoreConfirmPopupBase, UXenoCoreDamageNumberSubsystem, UXenoCoreDefeatBannerBase, UXenoCoreDialogueBoxBase, UXenoCoreEnemyLabelBase, UXenoCoreGameplayAbility_PaletteCycle, UXenoCoreGemPopupBase, UXenoCoreGemRowButton, UXenoCoreHudPlateBase, UXenoCoreInteractPromptBase, UXenoCoreItemBadgeBase, UXenoCoreItemBadgeStackBase, UXenoCoreItemSortControl, UXenoCoreListWrap, UXenoCoreListWrapSubsystem, UXenoCoreLoadingScreenBase, UXenoCoreLogoBootScreenBase, UXenoCoreMainMenuBase, UXenoCoreMenuAction, UXenoCoreMenuAction_OpenArts, UXenoCoreMenuAction_OpenLoadScreen, UXenoCoreMenuAction_OpenQuestLog, UXenoCoreMenuAction_OpenSaveScreen, UXenoCoreMenuAction_OpenSkills, UXenoCoreMenuAction_QuitGame, UXenoCoreMenuAction_ReturnToTitle, UXenoCoreMenuCondition, UXenoCoreMenuEntryButton, UXenoCoreMenuEntrySet, UXenoCoreMenuStatics, UXenoCoreMovieBootScreenBase, UXenoCorePartyCardBase, UXenoCorePartyGaugeWidget, UXenoCorePartyJoinBannerBase, UXenoCorePartyMemberPlateBase, UXenoCorePartyUIStatics, UXenoCorePlayerPlateBase, UXenoCorePreviewControls, UXenoCoreSaveUIStatics, UXenoCoreShaderBootScreenBase, UXenoCoreSkillsScreenBase, UXenoCoreStatBlockBase, UXenoCoreTacticsPanelBase, UXenoCoreTargetPlateBase, UXenoCoreUIEffectStatics, UXenoCoreUISettings, UXenoCoreWorldLabelBase, UXenoCoreWorldReadySubsystem
  • XenoCoreRuntime / Voice — FXenoCoreVisemeKey, FXenoCoreVoiceLineRow, FXenoCoreVoiceRuleRow, FXenoCoreVoiceSpokeMessage, FXenoCoreVoiceTake, UXenoCoreBattleVoiceConfig, UXenoCoreBattleVoiceSubsystem
  • XenoCoreRuntime / World — AXenoCoreEnvironmentDirector, EXenoCorePhaseMask, EXenoCoreTimePhase, FXenoCoreTimeChangedMessage, FXenoCoreWeatherChanceRow, FXenoCoreWeatherChangedMessage, FXenoCoreWeatherTypeRow, UXenoCoreChangeTimeScreen, UXenoCoreClockDial, UXenoCoreEnvironmentSettings, UXenoCoreSkyProfile, UXenoCoreTimeOfDaySubsystem, UXenoCoreWeatherSubsystem
  • XenoCoreEditor / (root) — FXenoCoreRandomPlayerEntry, UXenoCoreAITools, UXenoCoreAnimLayerTools, UXenoCoreCameraTools, UXenoCoreCosmeticTools, UXenoCoreEnvironmentTools, UXenoCoreGameplayEffectTools, UXenoCoreGraphTools, UXenoCoreMapTools, UXenoCoreMaterialTools, UXenoCoreMinimapTools, UXenoCoreNiagaraTools, UXenoCoreProjectSetup, UXenoCoreReleaseTools, UXenoCoreSkyTools, UXenoCoreStateTreeTools

XenoCoreRuntime / (root)

UXenoCoreAlwaysCookList

Class · derives from UPrimaryDataAsset · header XenoCoreRuntime/Public/XenoCoreAlwaysCookList.h · BlueprintType

No description.

Properties

Property C++ name Type Category Specifiers Default Description
Assets Assets TArray<TSoftObjectPtr<UObject>> XenoCore › Packaging EditAnywhere Everything here is cooked into every build that includes XenoCore. Add an asset the moment code loads it by path.

UXenoCoreContentSettings

Class · derives from UDeveloperSettings · header XenoCoreRuntime/Public/XenoCoreContentSettings.h

Assets XenoCore spawns or applies from code that are not UI. Project Settings > Game > XenoCore Content. Every entry defaults to the shipped asset.

Properties

Property C++ name Type Category Specifiers Default Description
Starting Roster Override StartingRosterOverride TArray<TSoftObjectPtr<UXenoCorePartyMemberDefinition>> Startup Config, EditAnywhere Non-empty replaces the party component's authored StartingRoster for a New Game. A load restores from the save.
New Game Map Override NewGameMapOverride TSoftObjectPtr<UWorld> Startup Config, EditAnywhere Set = New Game opens this map instead of the title screen's authored NewGameMap.
Title Music TitleMusic TSoftObjectPtr<USoundBase> Startup Config, EditAnywhere Played 2D while the title screen is up. Cleared = a silent title.
Title Music Volume TitleMusicVolume float Startup Config, EditAnywhere, ClampMin=0.0, ClampMax=2.0 1.0 Volume multiplier for the title music.
Fallback Field Music FallbackFieldMusic TSoftObjectPtr<USoundBase> Startup Config, EditAnywhere Played by an Area Music actor whose own Field Music slot is empty. The map's own track always wins; cleared = that area is silent.
Fallback Battle Music FallbackBattleMusic TSoftObjectPtr<USoundBase> Startup Config, EditAnywhere As Fallback Field Music, for an Area Music actor whose Battle Music slot is empty.
Dialogue Anchor DialogueAnchor TSoftClassPtr<AXenoCoreDialogueAnchor> Dialogue Config, EditAnywhere The actor that carries the dialogue box over whoever is speaking. Must derive from XenoCoreDialogueAnchor.
Dialogue Camera Rig DialogueCameraRig TSoftObjectPtr<UCameraRigAsset> Dialogue Config, EditAnywhere The camera that frames a conversation: it blends in when an NPC starts talking and back out when the talk ends. Cleared = the camera stays where it was.
Dialogue Turn Seconds DialogueTurnSeconds float Dialogue Config, EditAnywhere, ClampMin=0.0, ClampMax=2.0, Units=s 0.3 How long the player and the NPC take to turn and face each other when a conversation opens (and the NPC to turn back after). 0 snaps.
Beam Material BeamMaterial TSoftObjectPtr<UMaterialInterface> Feedback Config, EditAnywhere The material of the light shaft a heal or buff raises over its target. Drives Colour, Intensity and Opacity parameters.
Victory Fanfare VictoryFanfare TSoftObjectPtr<USoundBase> Battle Config, EditAnywhere Played once, 2D, the moment a battle is won. Cleared = no fanfare (the party still celebrates).
Battle Voice Config BattleVoiceConfig TSoftObjectPtr<UXenoCoreBattleVoiceConfig> Voice Config, EditAnywhere Pacing and playback for every party voice line. Cleared = the party is silent.
Gem Registry GemRegistry TSoftObjectPtr<UXenoCoreGemRegistry> Items Config, EditAnywhere Every gem, by id, and the effect gem stats are applied through. Cleared = the shipped registry.
Ally Damage Taken Sound AllyDamageTakenSound TSoftObjectPtr<USoundBase> Battle Config, EditAnywhere Played at a companion when it takes damage. Cleared = companions take hits silently.
Ally Damage Taken Critical Sound AllyDamageTakenCriticalSound TSoftObjectPtr<USoundBase> Battle Config, EditAnywhere As Ally Damage Taken Sound, on a critical hit. Cleared = the normal sound plays for crits too.
Ally Damage Taken Volume AllyDamageTakenVolume float Battle Config, EditAnywhere, ClampMin=0.0, ClampMax=2.0 0.7 Volume of the companion hit sounds. Below 1 so the player's own hits stay the loudest.
Critical Hit Text CriticalHitText FText Critical Hit Config, EditAnywhere The line raised over the target on a critical hit. Says hit, so it cannot be read as "critical health".
Critical Hit Scale CriticalHitScale float Critical Hit Config, EditAnywhere, ClampMin=0.25, ClampMax=4.0 1.15 Resting size of the critical line. Break / topple / daze are 1.
Critical Hit Punch CriticalHitPunch float Critical Hit Config, EditAnywhere, ClampMin=1.0, ClampMax=4.0 1.7 The critical line starts this many times its resting size and snaps down to it. 1 = no punch.
Critical Hit Stop Seconds CriticalHitStopSeconds float Critical Hit Config, EditAnywhere, ClampMin=0.0, ClampMax=0.5, Units=s 0.0 Hit-stop on a critical hit, in real seconds. 0 = off (XC1 has none).
Critical Hit Stop Dilation CriticalHitStopDilation float Critical Hit Config, EditAnywhere, ClampMin=0.01, ClampMax=1.0 0.05 World speed during the hit-stop.
Reaction Break Effect ReactionBreakEffect TSoftClassPtr<UGameplayEffect> Debug Config, EditAnywhere The Break effect the XenoCore.Reaction debug command reads its duration from.
Reaction Topple Effect ReactionToppleEffect TSoftClassPtr<UGameplayEffect> Debug Config, EditAnywhere The Topple effect the XenoCore.Reaction debug command reads its duration from.
Reaction Daze Effect ReactionDazeEffect TSoftClassPtr<UGameplayEffect> Debug Config, EditAnywhere The Daze effect the XenoCore.Reaction debug command reads its duration from.

XenoCoreRuntime / AI

FXenoCoreAbilityReadyCondition

Struct · derives from FStateTreeConditionCommonBase · header XenoCoreRuntime/Public/AI/XenoCoreCombatConditions.h

True when the pawn was granted an ability under this tag and it can activate right now.

FXenoCoreAbilityReadyConditionInstanceData

Struct · header XenoCoreRuntime/Public/AI/XenoCoreCombatConditions.h

No description.

Properties

Property C++ name Type Category Specifiers Default Description
Ability Tag AbilityTag FGameplayTag Parameter EditAnywhere The art to test for, by tag - the same contract the activation task uses.

FXenoCoreActivateAbilityTask

Struct · derives from FStateTreeTaskCommonBase · header XenoCoreRuntime/Public/AI/XenoCoreActivateAbilityTask.h

Activate one of the pawn's granted abilities, by tag.

FXenoCoreActivateAbilityTaskInstanceData

Struct · header XenoCoreRuntime/Public/AI/XenoCoreActivateAbilityTask.h

Tuning and running state for FXenoCoreActivateAbilityTask.

Properties

Property C++ name Type Category Specifiers Default Description
Ability Tag AbilityTag FGameplayTag Parameter EditAnywhere Which ability to run, by tag rather than by class.
Wait For End bWaitForEnd bool Parameter EditAnywhere true Hold the state until the ability ends, rather than firing and moving on immediately.
Max Hold Time MaxHoldTime float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 8.0 Safety net, in seconds. 0 disables it.

FXenoCoreChaseTargetTask

Struct · derives from FStateTreeTaskCommonBase · header XenoCoreRuntime/Public/AI/XenoCoreChaseTargetTask.h

Chase the controller's aggro target, and walk home when the leash breaks.

FXenoCoreChaseTargetTaskInstanceData

Struct · header XenoCoreRuntime/Public/AI/XenoCoreChaseTargetTask.h

Tuning and running state for FXenoCoreChaseTargetTask.

Properties

Property C++ name Type Category Specifiers Default Description
Acceptable Radius AcceptableRadius float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 140.0 How close the enemy tries to get. Should sit inside the attack ability's AttackRange.
Repath Interval RepathInterval float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 0.25 Seconds between re-issuing MoveTo, so a moving target is tracked without per-tick path spam.
Chase Speed ChaseSpeed float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 380.0 Chase move speed. Deliberately below the player's run speed: XC1 lets you outrun most things, which is what keeps its zones traversable.
Return Speed ReturnSpeed float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 150.0 Walking home is slower than chasing - a giving-up enemy should read as disengaged.
Home Tolerance HomeTolerance float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 120.0 How close to home counts as home.

FXenoCoreCombatAIProfile

Struct · header XenoCoreRuntime/Public/AI/XenoCoreCombatAIProfile.h · BlueprintType

How one AI combatant - companion or enemy - behaves in a fight: decision pace, post-art cooldown, heal threshold, positioning.

Properties

Property C++ name Type Category Specifiers Default Description
Decision Interval DecisionInterval float AI EditAnywhere, BlueprintReadOnly, ClampMin=0.1, Units=Seconds 1.5 Seconds between art decisions. The auto-attack keeps swinging in between.
Decision Jitter DecisionJitter float AI EditAnywhere, BlueprintReadOnly, ClampMin=0.0, ClampMax=0.9 0.3 Random spread on each interval, as a fraction: 0.3 = 70-130 % (XC3's jitter). Stops companions acting in lockstep.
Post Art Cooldown PostArtCooldown float AI EditAnywhere, BlueprintReadOnly, ClampMin=0.0, Units=Seconds 3.0 After using an art, choose no other for this long - on top of the art's own cooldown. (XC3's IntervalArts.)
Heal Threshold HealThreshold float AI EditAnywhere, BlueprintReadOnly, ClampMin=0.0, ClampMax=100.0, Units=Percent 30.0 An ally below this much health makes heal arts eligible. 30 is XC2's number; XC1's is unsourced.
Reliability Reliability float AI EditAnywhere, BlueprintReadOnly, ClampMin=0.0, ClampMax=100.0, Units=Percent 100.0 Chance to act at all on a decision, 0-100. Below 100 makes a character less dependable, as XC2 does on purpose.
Seek Positional Bonus bSeekPositionalBonus bool AI EditAnywhere, BlueprintReadOnly true Move behind or beside the target for an art's positional bonus before using it (XC3). Off = fire from wherever it stands (XC1).
Positional Timeout PositionalTimeout float AI EditAnywhere, BlueprintReadOnly, ClampMin=0.0, EditCondition=bSeekPositionalBonus, Units=Seconds 2.0 Give up on reaching position after this long and use the art anyway. Never circles.
Attacking Me Weight AttackingMeWeight float Target Choice EditAnywhere, BlueprintReadOnly 3.0 Engage at Will: score for an enemy that is attacking this character.
Attacking Ally Weight AttackingAllyWeight float Target Choice EditAnywhere, BlueprintReadOnly 1.5 Engage at Will: score for an enemy that is attacking another party member. Raise it on a defender.
Leader Target Weight LeaderTargetWeight float Target Choice EditAnywhere, BlueprintReadOnly 1.0 Raise it to stay with the player's fight.
Current Target Weight CurrentTargetWeight float Target Choice EditAnywhere, BlueprintReadOnly 2.0 Engage at Will: score for the enemy this character is already fighting - stops it flip-flopping.
Per Ally On Target Weight PerAllyOnTargetWeight float Target Choice EditAnywhere, BlueprintReadOnly -1.0 Engage at Will: added once per other companion already on an enemy. Negative spreads the party out.
Distance Penalty Per Metre DistancePenaltyPerMetre float Target Choice EditAnywhere, BlueprintReadOnly, ClampMin=0.0 0.1 Engage at Will: subtracted per metre of distance, so the near enemy wins a tie.
Target Reconsider Interval TargetReconsiderInterval float Target Choice EditAnywhere, BlueprintReadOnly, ClampMin=0.1, Units=Seconds 1.0 Engage at Will: how often the choice is reconsidered. A dead target is replaced at once regardless.

FXenoCoreCompanionArtsTask

Struct · derives from FStateTreeTaskCommonBase · header XenoCoreRuntime/Public/AI/XenoCoreCompanionArtsTask.h

An AI body chooses and uses its arts - a companion its slotted arts, an enemy its Arts list - scored by each art's Companion AI section.

FXenoCoreCompanionArtsTaskInstanceData

Struct · header XenoCoreRuntime/Public/AI/XenoCoreCompanionArtsTask.h

Running state for FXenoCoreCompanionArtsTask. Nothing here is tuning - that is the member's AI profile.

FXenoCoreCompanionFightTask

Struct · derives from FStateTreeTaskCommonBase · header XenoCoreRuntime/Public/AI/XenoCoreCompanionFightTask.h

An AI body fights its target with its own auto-attack: a companion the party's target, an enemy its aggro target.

FXenoCoreCompanionFightTaskInstanceData

Struct · header XenoCoreRuntime/Public/AI/XenoCoreCompanionFightTask.h

Tuning and running state for FXenoCoreCompanionFightTask.

Properties

Property C++ name Type Category Specifiers Default Description
Retry Interval RetryInterval float Parameter EditAnywhere, ClampMin=0.05 0.5 How often a refused auto-attack is asked again, in seconds.
Draw Delay Min DrawDelayMin float Parameter EditAnywhere, ClampMin=0.0, Units=s 0.15 A companion draws this long after the party enters battle - before it closes in, so it never walks up to an enemy unarmed. Rolled per member between Min and Max, so the party does not draw in unison.
Draw Delay Max DrawDelayMax float Parameter EditAnywhere, ClampMin=0.0, Units=s 0.6 Upper bound of the per-member draw delay, in seconds.

FXenoCoreEnemyPatrolTask

Struct · derives from FStateTreeTaskCommonBase · header XenoCoreRuntime/Public/AI/XenoCoreEnemyPatrolTask.h

An unprovoked enemy walks its patrol route back and forth. Succeeds the moment it is provoked.

FXenoCoreEnemyPatrolTaskInstanceData

Struct · header XenoCoreRuntime/Public/AI/XenoCoreEnemyPatrolTask.h

Running state for FXenoCoreEnemyPatrolTask. The route itself is per enemy, on the enemy.

FXenoCoreHasAggroTargetCondition

Struct · derives from FStateTreeConditionCommonBase · header XenoCoreRuntime/Public/AI/XenoCoreCombatConditions.h

True when the controller currently has an aggro target.

FXenoCoreHasAggroTargetConditionInstanceData

Struct · header XenoCoreRuntime/Public/AI/XenoCoreCombatConditions.h

No description.

Properties

Property C++ name Type Category Specifiers Default Description
Invert bInvert bool Parameter EditAnywhere false Invert to branch the other way - "no target" is what freeroam selects on.

FXenoCoreInAttackRangeCondition

Struct · derives from FStateTreeConditionCommonBase · header XenoCoreRuntime/Public/AI/XenoCoreCombatConditions.h

True when the controller has an aggro target and the pawn is within Range of it.

FXenoCoreInAttackRangeConditionInstanceData

Struct · header XenoCoreRuntime/Public/AI/XenoCoreCombatConditions.h

Tuning for FXenoCoreInAttackRangeCondition.

Properties

Property C++ name Type Category Specifiers Default Description
Range Range float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 300.0 Should match the art's own AttackRange, or the state selects and the swing then whiffs.

FXenoCorePartyFollowLeaderTask

Struct · derives from FStateTreeTaskCommonBase · header XenoCoreRuntime/Public/AI/XenoCorePartyTravelTasks.h

Trail the leader with one long-lived MoveToActor, speed-matched. Succeeds once the leader has stopped and the member has arrived; the transition then runs RecalculatePosition.

FXenoCorePartyFollowLeaderTaskInstanceData

Struct · header XenoCoreRuntime/Public/AI/XenoCorePartyTravelTasks.h

Tuning and running state for FXenoCorePartyFollowLeaderTask.

Properties

Property C++ name Type Category Specifiers Default Description
Trail Distance TrailDistance float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 260.0 The distance a member settles at behind a moving leader. Roughly XC1's trailing distance.
Per Slot Spacing PerSlotSpacing float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 90.0 Added per party slot, so members string out rather than converging on one distance.
Arrive Slack ArriveSlack float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 60.0 Once the leader has stopped, arrive within TrailDistance + this and hand over to RecalculatePosition.
Leader Stopped Speed LeaderStoppedSpeed float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 20.0 The leader counts as stopped below this ground speed.
Speed Gain SpeedGain float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 1.2 Speed correction per unit of distance error: speed = leader speed + Gain x (distance - trail).
Catch Up Ratio CatchUpRatio float Parameter › Pace EditAnywhere, ClampMin=1 1.5 Catch-up never runs faster than leader speed x this, plus CatchUpMargin.
Catch Up Margin CatchUpMargin float Parameter › Pace EditAnywhere, ClampMin=0, Units=CentimetersPerSecond 120.0 Flat speed added to the catch-up cap on top of leader speed x CatchUpRatio.
Arrive Speed ArriveSpeed float Parameter › Pace EditAnywhere, ClampMin=0, Units=CentimetersPerSecond 380.0 The pace a member comes in at once the leader has stopped.
Pace Smoothing PaceSmoothing float Parameter › Pace EditAnywhere, ClampMin=0.1 3.0 How fast the chosen pace eases toward its target, per second. Lower is smoother and laggier.
Min Speed MinSpeed float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 180.0 Never slower than this while following.
Max Speed MaxSpeed float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 850.0 Never faster than this. Above the player's run, so a member that lost ground regains it.
Too Close Fraction TooCloseFraction float Parameter EditAnywhere, ClampMin=0.0, ClampMax=1.0, UIMin=0.0, UIMax=1.0 0.55 Closer than TrailDistance x this is too close - e.g. the leader walked back into the member. Hand over to RecalculatePosition rather than push through the leader's capsule.
Repath Interval RepathInterval float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 0.5 After a failed or finished path, wait this long before asking the pathfinder again.

FXenoCorePartyFollowTask

Struct · derives from FStateTreeTaskCommonBase · header XenoCoreRuntime/Public/AI/XenoCorePartyFollowTask.h

The party member's legs in battle, plus the left-behind teleport at all times.

FXenoCorePartyFollowTaskInstanceData

Struct · header XenoCoreRuntime/Public/AI/XenoCorePartyFollowTask.h

Tuning and running state for FXenoCorePartyFollowTask.

Properties

Property C++ name Type Category Specifiers Default Description
Trail Distance TrailDistance float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 260.0 How close a member is content to get to the leader before it stops.
Per Slot Spacing PerSlotSpacing float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 90.0 Extra spacing added per party slot, so two members do not aim for an identical stopping distance and grind against each other on arrival. Detour Crowd resolves the rest.
Follow Speed FollowSpeed float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 600.0 Normal pace. Matched to the player's jog so a member neither drifts back nor overruns.
Catch Up Speed CatchUpSpeed float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 850.0 Used when badly out of position, so a member that lost ground actually regains it.
Catch Up Distance CatchUpDistance float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 700.0 Beyond this from the leader, use CatchUpSpeed.
Teleport Distance TeleportDistance float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 4000.0 Teleport to the leader beyond this distance. 0 disables it.
Failed Move Retry Interval FailedMoveRetryInterval float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 1.0 After a move request fails, wait this long before asking again.
Engage Distance EngageDistance float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 180.0 How close to stand to the target in battle.
Spot Accept Radius SpotAcceptRadius float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 40.0 How close counts as "at" a claimed combat spot.
Spot Repath Distance SpotRepathDistance float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 60.0 A re-picked spot closer than this to the current one keeps the current move.
Max Hold For Draw MaxHoldForDraw float Parameter EditAnywhere, ClampMin=0.0, Units=s 1.5 A still-sheathed member holds position this long at the start of a fight, waiting for its draw (XenoCore Fight Target draws it), and only then closes in - arm, then approach, never the reverse.
Sheathe Reassert Delay SheatheReassertDelay float Parameter EditAnywhere, ClampMin=0.0, Units=s 1.5 Out of battle, a member still holding its weapon this long is asked to sheathe again.

FXenoCorePartyGazeTask

Struct · derives from FStateTreeTaskCommonBase · header XenoCoreRuntime/Public/AI/XenoCorePartyGazeTask.h

What this party member looks at, picked on its own clock. Writes the controller's gaze; moves only the head.

FXenoCorePartyGazeTaskInstanceData

Struct · header XenoCoreRuntime/Public/AI/XenoCorePartyGazeTask.h

No description.

Properties

Property C++ name Type Category Specifiers Default Description
Glance Interval Min GlanceIntervalMin float Parameter › Timing EditAnywhere, ClampMin=0.2, Units=Seconds 1.8 How long one look lasts before the next is picked.
Glance Interval Max GlanceIntervalMax float Parameter › Timing EditAnywhere, ClampMin=0.2, Units=Seconds 5.0 Upper bound of a look's duration; each look rolls between Min and Max.
Leader Chance LeaderChance float Parameter › Out Of Battle EditAnywhere, ClampMin=0 2.5 Relative chance out of battle of looking at the leader.
Ally Chance AllyChance float Parameter › Out Of Battle EditAnywhere, ClampMin=0 2.5 Relative chance out of battle of looking at another party member.
Enemy Chance EnemyChance float Parameter › Out Of Battle EditAnywhere, ClampMin=0 2.0 Relative chance out of battle of looking at a nearby enemy that has not noticed the party.
View Chance ViewChance float Parameter › Out Of Battle EditAnywhere, ClampMin=0 1.5 Relative chance out of battle of looking out at the view.
Ahead Chance AheadChance float Parameter › Out Of Battle EditAnywhere, ClampMin=0 1.5 Relative chance out of battle of looking straight ahead.
Walking Ahead Multiplier WalkingAheadMultiplier float Parameter › Out Of Battle EditAnywhere, ClampMin=0 4.0 Multiplies AheadChance while this member is walking - eyes go where the feet go.
Eye Contact Multiplier EyeContactMultiplier float Parameter › Out Of Battle EditAnywhere, ClampMin=0 2.5 Multiplies an ally's chance when that ally is already looking at this member.
Max Gaze Distance MaxGazeDistance float Parameter › Out Of Battle EditAnywhere, ClampMin=0, Units=Centimeters 2000.0 Nothing further than this is looked at.
Enemy Notice Radius EnemyNoticeRadius float Parameter › Out Of Battle EditAnywhere, ClampMin=0, Units=Centimeters 2200.0 An unengaged enemy inside this is worth a wary look.
View Distance ViewDistance float Parameter › Out Of Battle EditAnywhere, ClampMin=100, Units=Centimeters 1500.0 "The view": a point this far out, within this yaw of the body's facing, at this pitch.
View Yaw Range ViewYawRange float Parameter › Out Of Battle EditAnywhere, ClampMin=0, ClampMax=120, Units=Degrees 70.0 How far either side of the body's facing a view point may be picked.
View Pitch Min ViewPitchMin float Parameter › Out Of Battle EditAnywhere, ClampMin=-60, ClampMax=60, Units=Degrees -6.0 Lowest pitch of a view point; negative looks down.
View Pitch Max ViewPitchMax float Parameter › Out Of Battle EditAnywhere, ClampMin=-60, ClampMax=60, Units=Degrees 12.0 Highest pitch of a view point.
Battle Glance Chance BattleGlanceChance float Parameter › Battle EditAnywhere, ClampMin=0, ClampMax=1 0.2 In battle: the chance each look is a quick glance at an ally instead of the target.
Battle Glance Time Min BattleGlanceTimeMin float Parameter › Battle EditAnywhere, ClampMin=0.1, Units=Seconds 0.5 Shortest duration of an in-battle glance at an ally.
Battle Glance Time Max BattleGlanceTimeMax float Parameter › Battle EditAnywhere, ClampMin=0.1, Units=Seconds 1.1 Longest duration of an in-battle glance at an ally.

FXenoCorePartyHoldTask

Struct · derives from FStateTreeTaskCommonBase · header XenoCoreRuntime/Public/AI/XenoCorePartyTravelTasks.h

Rest near the party, on this member's own clock. Succeeds when the leader has moved past this member's slack.

FXenoCorePartyHoldTaskInstanceData

Struct · header XenoCoreRuntime/Public/AI/XenoCorePartyTravelTasks.h

Tuning and running state for FXenoCorePartyHoldTask.

Properties

Property C++ name Type Category Specifiers Default Description
Follow Start Distance FollowStartDistance float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 520.0 Leave Hold (-> Follow) once the leader is this far away.
Per Slot Spacing PerSlotSpacing float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 60.0 Added per party slot.
Leash Jitter LeashJitter float Parameter › Slack EditAnywhere, ClampMin=0, Units=Centimeters 260.0 Extra slack rolled per rest, 0..this, on top of FollowStartDistance.
Reaction Delay Min ReactionDelayMin float Parameter › Slack EditAnywhere, ClampMin=0, Units=Seconds 0.2 Seconds between the leader leaving the slack and this member noticing - rolled per departure.
Reaction Delay Max ReactionDelayMax float Parameter › Slack EditAnywhere, ClampMin=0, Units=Seconds 1.0 Upper bound of the per-departure reaction delay.
Immediate Follow Multiplier ImmediateFollowMultiplier float Parameter › Slack EditAnywhere, ClampMin=1 1.6 Past this multiple of the slack the member goes at once - a reaction delay is for a stroll, not a sprint.
Leader Moving Speed LeaderMovingSpeed float Parameter › Activities EditAnywhere, ClampMin=0, Units=CentimetersPerSecond 60.0 No new rest activity starts while the leader moves faster than this - a group whose leader is walking off does not wander.
Activity Interval Min ActivityIntervalMin float Parameter › Activities EditAnywhere, ClampMin=0.5, Units=Seconds 3.5 Shortest wait between rest activities, rolled per member.
Activity Interval Max ActivityIntervalMax float Parameter › Activities EditAnywhere, ClampMin=0.5, Units=Seconds 9.0 Longest wait between rest activities, rolled per member.
Stroll Chance StrollChance float Parameter › Activities EditAnywhere, ClampMin=0 3.0 Relative chance a rest activity is a Stroll: a few steps to a free spot inside the group.
Social Chance SocialChance float Parameter › Activities EditAnywhere, ClampMin=0 3.0 Relative chance a rest activity is Social: step toward a companion and turn to them.
Solo Chance SoloChance float Parameter › Activities EditAnywhere, ClampMin=0 1.0 Relative chance a rest activity is Solo: pull a face from the character's SoloExpressions.
Stay Chance StayChance float Parameter › Activities EditAnywhere, ClampMin=0 2.0 Relative chance a rest activity is Stay: do nothing.
Stroll Min Distance StrollMinDistance float Parameter › Activities EditAnywhere, ClampMin=0, Units=Centimeters 100.0 Shortest distance a stroll goes.
Stroll Max Distance StrollMaxDistance float Parameter › Activities EditAnywhere, ClampMin=0, Units=Centimeters 320.0 Longest distance a stroll goes.
Stroll Slack Fraction StrollSlackFraction float Parameter › Activities EditAnywhere, ClampMin=0.1, ClampMax=1 0.7 A stroll stays inside this fraction of the member's slack, so it never wanders into following.
Min Separation MinSeparation float Parameter › Activities EditAnywhere, ClampMin=0, Units=Centimeters 100.0 No stroll or social spot closer than this to another party member.
Amble Speed AmbleSpeed float Parameter › Activities EditAnywhere, ClampMin=50, Units=CentimetersPerSecond 190.0 Walk speed for rest moves. Under the blend space's walk (200) reads as an amble.
Max Activity Move Time MaxActivityMoveTime float Parameter › Activities EditAnywhere, ClampMin=0.5, Units=Seconds 4.0 A rest move that has not arrived after this long is abandoned.
Social Max Partner Distance SocialMaxPartnerDistance float Parameter › Social EditAnywhere, ClampMin=0, Units=Centimeters 900.0 Companions further than this are not picked to turn to.
Social Stand Distance Min SocialStandDistanceMin float Parameter › Social EditAnywhere, ClampMin=0, Units=Centimeters 115.0 Closest distance to stand from the partner - conversational, never in its face.
Social Stand Distance Max SocialStandDistanceMax float Parameter › Social EditAnywhere, ClampMin=0, Units=Centimeters 165.0 Furthest distance to stand from the partner; keep it short, or the pair reads as too far apart to talk.
Turn To Attention Angle TurnToAttentionAngle float Parameter › Social EditAnywhere, ClampMin=0, ClampMax=180, Units=Degrees 55.0 A resting member turns (one short step) toward its attention target when it is this far off its facing. 0 = never.
Turn To Attention Cooldown TurnToAttentionCooldown float Parameter › Social EditAnywhere, ClampMin=0, Units=Seconds 2.0 At most one such turn this often.
Turn In Place Rate TurnInPlaceRate float Parameter › Social EditAnywhere, ClampMin=0, Units=DegreesPerSecond 140.0 Too close to step: turn on the spot at this rate instead. There is no turn clip, so keep it gentle.
Social Turn Step SocialTurnStep float Parameter › Social EditAnywhere, ClampMin=0, Units=Centimeters 80.0 Already this close: a short step toward the partner instead, which is how a body turns without a turn clip.
Social Attention Min SocialAttentionMin float Parameter › Social EditAnywhere, ClampMin=0, Units=Seconds 3.0 Shortest time the pair look at each other.
Social Attention Max SocialAttentionMax float Parameter › Social EditAnywhere, ClampMin=0, Units=Seconds 6.0 Longest time the pair look at each other.
Social Expression Chance SocialExpressionChance float Parameter › Social EditAnywhere, ClampMin=0, ClampMax=1 0.7 Chance the member pulls one of its SocialExpressions during a social activity.
Reply Expression Chance ReplyExpressionChance float Parameter › Social EditAnywhere, ClampMin=0, ClampMax=1 0.6 Chance the partner answers with one of its own SocialExpressions.
Reply Delay Min ReplyDelayMin float Parameter › Social EditAnywhere, ClampMin=0, Units=Seconds 0.5 The partner's answer comes this late - an answer on the same frame reads as a mirror.
Reply Delay Max ReplyDelayMax float Parameter › Social EditAnywhere, ClampMin=0, Units=Seconds 1.3 Latest the partner's answer may come.

FXenoCorePartyInBattleCondition

Struct · derives from FStateTreeConditionCommonBase · header XenoCoreRuntime/Public/AI/XenoCoreCombatConditions.h

Is the party in battle?

FXenoCorePartyInBattleConditionInstanceData

Struct · header XenoCoreRuntime/Public/AI/XenoCoreCombatConditions.h

No description.

Properties

Property C++ name Type Category Specifiers Default Description
Invert bInvert bool Parameter EditAnywhere false Invert, so one condition covers both the pre-battle and in-battle branches.

FXenoCorePartyRecalculatePositionTask

Struct · derives from FStateTreeTaskCommonBase · header XenoCoreRuntime/Public/AI/XenoCorePartyTravelTasks.h

Stop, settle, then choose where to stand and step onto it. Succeeds when the member is in place (-> Hold); fails if the leader walks off (-> Follow).

FXenoCorePartyRecalculatePositionTaskInstanceData

Struct · header XenoCoreRuntime/Public/AI/XenoCorePartyTravelTasks.h

Tuning and running state for FXenoCorePartyRecalculatePositionTask.

Properties

Property C++ name Type Category Specifiers Default Description
Settle Time SettleTime float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 0.3 Stand still this long after stopping before choosing a spot - the beat of "arriving".
Settle Jitter SettleJitter float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 0.3 Random extra settle time, per entry.
Rest Distance RestDistance float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 260.0 How far from the leader the first follower rests. Match Follow's TrailDistance.
Rest Slot Spacing RestSlotSpacing float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 60.0 Added to RestDistance per slot after the first, so the party rests in shallow tiers.
Slot Spread Degrees SlotSpreadDegrees float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 35.0 Angular spread between slots, in degrees, around the point directly behind the leader. Slot 1 swings one way, slot 2 the other, slot 3 twice as far one way, and so on.
Min Reposition Distance MinRepositionDistance float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 90.0 Closer than this to the chosen spot and the member stays exactly where it stopped.
Max Reposition Distance MaxRepositionDistance float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 400.0 Further than this from the slot behind the leader - e.g. the leader turned round and walked back past the member - and the member instead rests on its own side of the leader. Walking all the way round the leader to reach "behind" reads as fussing.
Reposition Speed RepositionSpeed float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 200.0 Walk, not run, onto the spot - it is a small correction, not a chase.
Max Reposition Time MaxRepositionTime float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 2.5 Give up stepping onto the spot after this long, and hold wherever the member is.
Abort Distance AbortDistance float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 520.0 If the leader is this far away the member should be following, not tidying up: fail, and the transition goes straight back to Follow. Match Hold's FollowStartDistance.
Per Slot Spacing PerSlotSpacing float Parameter EditAnywhere, ClampMin=0.0, UIMin=0.0 90.0 Added to AbortDistance per party slot. Match Hold's and Follow's PerSlotSpacing.

FXenoCoreTargetHasTagCondition

Struct · derives from FStateTreeConditionCommonBase · header XenoCoreRuntime/Public/AI/XenoCoreCombatConditions.h

Lets the enemy choose an art that can actually land, instead of one that is merely off cooldown.

FXenoCoreTargetHasTagConditionInstanceData

Struct · header XenoCoreRuntime/Public/AI/XenoCoreCombatConditions.h

No description.

Properties

Property C++ name Type Category Specifiers Default Description
Tag Tag FGameplayTag Parameter EditAnywhere Tag to look for on the target's ASC. Hierarchical, so a parent matches its children.
Invert bInvert bool Parameter EditAnywhere false True passes when the target does not have the tag.

UEnvQueryContext_XenoCoreCombatTarget

Class · derives from UEnvQueryContext · header XenoCoreRuntime/Public/AI/XenoCoreEnvQueryContexts.h

The enemy the querying companion is fighting - its controller's combat target. Empty if none.

UEnvQueryContext_XenoCorePartySpacing

Class · derives from UEnvQueryContext · header XenoCoreRuntime/Public/AI/XenoCoreEnvQueryContexts.h

Every other party member's position, plus the spot each other companion has claimed.

XenoCoreRuntime / AbilitySystem/Attributes

UXenoCoreStatSet

Class · derives from ULyraAttributeSet · header XenoCoreRuntime/Public/AbilitySystem/Attributes/XenoCoreStatSet.h · BlueprintType

Every per-character scalar the XC1 damage formula reads.

Properties

Property C++ name Type Category Specifiers Default Description
Max Character Level MaxCharacterLevel float XenoCore › Progression Config, EditDefaultsOnly, ClampMin=1, UIMin=1 99.0 The level cap CharacterLevel is clamped to. XC1's is 99.
Strength Strength FGameplayAttributeData XenoCore › Stats BlueprintReadOnly Drives auto-attacks and physical arts. Does nothing for ether arts - the split is deliberate and is what makes physical and ether characters play differently at a stat level.
Ether Ether FGameplayAttributeData XenoCore › Stats BlueprintReadOnly Drives ether arts only.
Agility Agility FGameplayAttributeData XenoCore › Stats BlueprintReadOnly Both evasion and accuracy - it reads on offence and defence from the same number.
Physical Defence PhysicalDefence FGameplayAttributeData XenoCore › Stats BlueprintReadOnly No description.
Ether Defence EtherDefence FGameplayAttributeData XenoCore › Stats BlueprintReadOnly No description.
Critical Rate CriticalRate FGameplayAttributeData XenoCore › Stats BlueprintReadOnly 0-1. A crit is x1.25, or x1.5 against a toppled or dazed target.
Block Rate BlockRate FGameplayAttributeData XenoCore › Stats BlueprintReadOnly 0-1. Chance to block a physical hit; a blocked hit keeps the damage execution's Block Multiplier (0 by default, so it is negated - XC1 halves it).
Weight Weight FGameplayAttributeData XenoCore › Stats BlueprintReadOnly Summed from equipped armour. Heavier armour trades Agility for defence, so this is an input to Agility rather than a carry limit - XC1 has no encumbrance.
Weapon Attack Min WeaponAttackMin FGameplayAttributeData XenoCore › Weapon BlueprintReadOnly The wpn term is a uniform roll in [Min, Max], and the game caps the spread at Min+99.
Weapon Attack Max WeaponAttackMax FGameplayAttributeData XenoCore › Weapon BlueprintReadOnly No description.
Character Level CharacterLevel FGameplayAttributeData XenoCore › Progression BlueprintReadOnly Feeds the level-difference correction, which swings damage from x0.5 to x2.0. An attribute rather than save data because buffs and debuffs read it.
Experience Experience FGameplayAttributeData XenoCore › Progression BlueprintReadOnly EXP banked toward the next level, not a running total.
Experience To Next Level ExperienceToNextLevel FGameplayAttributeData XenoCore › Progression BlueprintReadOnly What Experience must reach to level. Written from the character's experience curve on every level change, so the curve is the single source and nothing recomputes it independently.
Talent Gauge TalentGauge FGameplayAttributeData XenoCore › Talent BlueprintReadOnly 0-100. Fills as auto-attacks land, and pays for the Talent Art.
Talent Charge Per Hit TalentChargePerHit FGameplayAttributeData XenoCore › Talent BlueprintReadOnly Talent Gauge added per landed auto-attack. A percentage of the 0-100 gauge, not a multiplier.
Auto Attack Speed AutoAttackSpeed FGameplayAttributeData XenoCore › Combat BlueprintReadOnly How fast auto-attacks come round, as a multiplier on the swing cadence. 1 is normal.
Move Speed MoveSpeed FGameplayAttributeData XenoCore › Locomotion BlueprintReadOnly Field movement speed, as a percent bonus on the pawn's authored walk speed. 0 is normal.

XenoCoreRuntime / AbilitySystem/Calculations

UXenoCoreMMC_EffectLevel

Class · derives from UGameplayModMagnitudeCalculation · header XenoCoreRuntime/Public/AbilitySystem/Calculations/XenoCoreMMC_EffectLevel.h

Returns the level the GameplayEffect was applied at.

XenoCoreRuntime / AbilitySystem/Executions

UXenoCoreDamageExecution

Class · derives from UGameplayEffectExecutionCalculation · header XenoCoreRuntime/Public/AbilitySystem/Executions/XenoCoreDamageExecution.h

XC1's damage formula.

Properties

Property C++ name Type Category Specifiers Default Description
Level Difference Curve LevelDifferenceCurve TObjectPtr<UCurveTable> XenoCore › Damage EditDefaultsOnly Rows Damage.LevelDiff.Physical and .Ether, keyed by (attacker level - target level).
Max Defence Fraction MaxDefenceFraction float XenoCore › Damage EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0 0.9 Defence cannot reduce damage by more than this. XC1: capped at 90%.
Minimum Modifiers MinimumModifiers float XenoCore › Damage EditDefaultsOnly, ClampMin=0.0 0.1 The mods bucket floor. XC1: 10%.
Critical Multiplier CriticalMultiplier float XenoCore › Damage EditDefaultsOnly, ClampMin=0.0, UIMin=0.0 1.25 Damage multiplier for a critical hit. XC1: x1.25.
Critical Multiplier Vs Reacting CriticalMultiplierVsReacting float XenoCore › Damage EditDefaultsOnly, ClampMin=0.0, UIMin=0.0 1.5 Damage multiplier for a critical hit against a toppled or dazed target. XC1: x1.5.
Block Multiplier BlockMultiplier float XenoCore › Damage EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0 0.0 Damage a blocked physical hit keeps. 0 = a block negates the hit (XC1 halves it: 0.5).
Agility Hit Per Point AgilityHitPerPoint float XenoCore › Damage EditDefaultsOnly, ClampMin=0.0 0.01 Hit chance gained per point of Agility advantage. XC1: one point of Agility is one percent.
Hit Chance Cap HitChanceCap float XenoCore › Damage EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0 1.0 Highest hit chance an attack can have. Tuning value, not sourced; 1.0 means equal agility never misses.
Hit Chance Floor HitChanceFloor float XenoCore › Damage EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0 0.05 Lowest hit chance an attack can have. XC1: the maximum evade rate is 95%, so hit chance floors at 5%.
Physical Hit By Level Gap PhysicalHitByLevelGap TArray<float> XenoCore › Damage › Level Difference EditDefaultsOnly { 0.0, 0.0, 0.0, 0.24, 0.32, 0.4, 1.2, 1.4, 1.6, 1.8, 2.0 } Physical hit-rate change by level gap 0..10+ (XC1: 3=24%, 4=32%, 5=40%, 6=120% ... 10+=200%).
Ether Hit By Level Gap EtherHitByLevelGap TArray<float> XenoCore › Damage › Level Difference EditDefaultsOnly { 0.0, 0.0, 0.0, 0.18, 0.24, 0.32, 0.66, 0.77, 0.88, 0.99... Ether hit-rate change by level gap 0..10+ (XC1: 3=18%, 4=24%, 5=32%, 6=66% ... 10+=110%).
Block Rate Per Level BlockRatePerLevel float XenoCore › Damage › Level Difference EditDefaultsOnly, ClampMin=0.0 0.05 Block-rate change per level of gap, in the defender's favour when the attacker is lower. XC1: 5%, capped at BlockLevelModifierCap.
Block Level Dead Zone BlockLevelDeadZone int32 XenoCore › Damage › Level Difference EditDefaultsOnly, ClampMin=0 0 Level gap inside which the block-rate change is zero. XC1 sources disagree within +/-2 levels (5% per level all the way to zero, versus 0% from +2 to -2); both agree from 3 outwards.
Block Level Modifier Cap BlockLevelModifierCap float XenoCore › Damage › Level Difference EditDefaultsOnly, ClampMin=0.0 1.0 Largest block-rate bonus (and penalty) a level gap can give. XC1: +/-100%.
Miss Colour MissColour FLinearColor XenoCore › Damage › Notifications EditDefaultsOnly FLinearColor(0.75, 0.78, 0.82, 1.0) Colour of the miss battle notification.
Critical Colour CriticalColour FLinearColor XenoCore › Damage › Notifications EditDefaultsOnly FLinearColor(1.0, 0.85, 0.2, 1.0) Colour of the critical-hit battle notification.
Blocked Colour BlockedColour FLinearColor XenoCore › Damage › Notifications EditDefaultsOnly FLinearColor(0.55, 0.75, 1.0, 1.0) Colour of the blocked battle notification.

XenoCoreRuntime / Animation

FXenoCoreFaceExpressionRow

Struct · derives from FTableRowBase · header XenoCoreRuntime/Public/Animation/XenoCoreFaceExpression.h · BlueprintType

One named facial expression, as a weighted mix of face curves.

Properties

Property C++ name Type Category Specifiers Default Description
Curves Curves TMap<FName, float> Face EditAnywhere, BlueprintReadOnly Face curve -> weight at full intensity. VRM presets (happy, angry, blink, aa...) or raw Fcl_* morphs.
Suppress Blink bSuppressBlink bool Face EditAnywhere, BlueprintReadOnly false Stop the procedural blink while this is shown - for an expression whose eyes are already shut or squeezed.
Pulse Curve PulseCurve FName Face › Pulse EditAnywhere, BlueprintReadOnly A curve that oscillates on top of the mix (a laugh's mouth). None = no pulse.
Pulse Weight PulseWeight float Face › Pulse EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=1 0.5 Peak weight of the pulse curve, 0..1.
Pulse Rate PulseRate float Face › Pulse EditAnywhere, BlueprintReadOnly, ClampMin=0.1 4.0 Cycles per second.

FXenoCoreFaceExpressionRule

Struct · header XenoCoreRuntime/Public/Animation/XenoCoreFaceAnimInstance.h · BlueprintType

One row of the face's "what is this character feeling" table. First matching row wins.

Properties

Property C++ name Type Category Specifiers Default Description
Required Tag RequiredTag FGameplayTag XenoCore › Face EditAnywhere, BlueprintReadOnly Owned by the character's ASC (parents match children, so Status.Death covers Dying and Dead).
Expression Expression FName XenoCore › Face EditAnywhere, BlueprintReadOnly A row of the face's ExpressionTable (Happy, Laugh, Pained...), or - when no row has the name - a single curve the face pose asset knows: happy, angry, sad, relaxed, surprised, blink, aa...
Weight Weight float XenoCore › Face EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=1 1.0 How strongly the expression shows, from 0 (not at all) to 1 (full).
Suppress Blink bSuppressBlink bool XenoCore › Face EditAnywhere, BlueprintReadOnly false For expressions that already close the eyes (VRoid's "happy" is a closed-eye smile), or that must hold them shut (death). A blink on top reads as a twitch.

FXenoCoreReactionMontages

Struct · header XenoCoreRuntime/Public/Animation/XenoCoreCharacterAnimProfile.h · BlueprintType

One reaction's clips for one character. Every slot is optional: an empty slot falls back to the reaction ability's own montage for that slot, so a profile only has to name what differs.

Properties

Property C++ name Type Category Specifiers Default Description
Front Front TObjectPtr<UAnimMontage> Reaction EditAnywhere, BlueprintReadOnly Played when the other body is in front. Empty = the ability's own Front montage.
Back Back TObjectPtr<UAnimMontage> Reaction EditAnywhere, BlueprintReadOnly Played when the other body is behind. Empty = the ability's own Back montage.
Left Left TObjectPtr<UAnimMontage> Reaction EditAnywhere, BlueprintReadOnly Played when the other body is to the left. Empty = the ability's own Left montage.
Right Right TObjectPtr<UAnimMontage> Reaction EditAnywhere, BlueprintReadOnly Played when the other body is to the right. Empty = the ability's own Right montage.
Follow Up FollowUp TObjectPtr<UAnimMontage> Reaction EditAnywhere, BlueprintReadOnly Crossfaded in after the main clip - a get-up. Empty = the ability's own FollowUpMontage.

FXenoCoreWeightedExpression

Struct · header XenoCoreRuntime/Public/Animation/XenoCoreFaceExpression.h · BlueprintType

An expression a character may pick, how likely, how strongly, and for how long.

Properties

Property C++ name Type Category Specifiers Default Description
Expression Expression FName Face EditAnywhere, BlueprintReadOnly A row of the face's ExpressionTable.
Chance Chance float Face EditAnywhere, BlueprintReadOnly, ClampMin=0 1.0 Relative chance against the other entries in the same list.
Intensity Intensity float Face EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=1 1.0 0..1 - how strongly the expression is worn.
Duration Duration float Face EditAnywhere, BlueprintReadOnly, ClampMin=0.1 2.5 No description.

UXenoCoreAnimInstance

Class · derives from UAnimInstance · header XenoCoreRuntime/Public/Animation/XenoCoreAnimInstance.h

The anim instance every XenoCore character ABP derives from.

Properties

Property C++ name Type Category Specifiers Default Description
Gameplay Tag Property Map GameplayTagPropertyMap FGameplayTagBlueprintPropertyMap GameplayTags EditDefaultsOnly Gameplay tags mapped to the variables below. Use this rather than querying tags by hand.
Ground Speed GroundSpeed float XenoCore › Locomotion BlueprintReadOnly 0.0 Horizontal speed. Vertical motion must not read as running, so this is 2D.
Direction Direction float XenoCore › Locomotion BlueprintReadOnly 0.0 Signed -180..180 against the actor's facing. Drives the blend space X axis.
Is Moving bIsMoving bool XenoCore › Locomotion BlueprintReadOnly false No description.
Is Falling bIsFalling bool XenoCore › Locomotion BlueprintReadOnly false No description.
Falling Alpha FallingAlpha float XenoCore › Locomotion BlueprintReadOnly 0.0 0/1 mirror of bIsFalling, for transition rules that compare floats. GroundSpeed covers the moving/idle transitions; this covers the airborne ones.
In Battle bInBattle bool XenoCore › Battle BlueprintReadOnly false Battle stance: does the owner's ASC have XenoCoreGameplayTags::Status_XenoCore_InBattle.
Target Yaw Delta TargetYawDelta float XenoCore › Battle BlueprintReadOnly 0.0 Signed yaw from the character's facing to the held target, in degrees, damped and clamped.
Has Target bHasTarget bool XenoCore › Battle BlueprintReadOnly false A target is held. Fades the twist out rather than snapping it to zero when one is dropped.
Max Target Twist MaxTargetTwist float XenoCore › Battle EditDefaultsOnly, ClampMin=0.0, ClampMax=179.0 70.0 How far the chest may turn, total, across the three spine bones.
Target Twist Interp Rate TargetTwistInterpRate float XenoCore › Battle EditDefaultsOnly, ClampMin=0.1 10.0 Degrees-per-second-ish damping on the twist. Higher snaps, lower drifts.
Smoothed Ground Speed SmoothedGroundSpeed float XenoCore › Locomotion BlueprintReadOnly 0.0 GroundSpeed eased over time, and what the locomotion blend space's Speed axis reads.
Speed Smoothing Rate SpeedSmoothingRate float XenoCore › Locomotion EditDefaultsOnly, ClampMin=0.1, UIMin=0.1 6.0 FInterpTo rate for SmoothedGroundSpeed. Lower is smoother and laggier; too low and the feet visibly disagree with the ground.
Stride Scale StrideScale float XenoCore › Locomotion BlueprintReadOnly 1.0 Drives the Stride Warping node so cadence can stay native while the body moves faster. GroundSpeed / AuthoredClipSpeed, floored by MinStrideScale.
Authored Clip Speed AuthoredClipSpeed float XenoCore › Locomotion EditDefaultsOnly, ClampMin=1.0, UIMin=1.0 400.0 The speed of the fastest clip in the locomotion blend space - the point above which there is no faster animation and stride warping has to cover the difference.
Min Stride Scale MinStrideScale float XenoCore › Locomotion EditDefaultsOnly, ClampMin=0.0, UIMin=0.0 1.0 Floors the stride so warping can only ever stretch, never compress. 1.0 because the blend space owns everything from walk (200) to jog (400) with real clips - below the fastest clip the right answer is to blend to a slower gait, not to shrink a jog's stride.
Moving Speed Threshold MovingSpeedThreshold float XenoCore › Locomotion EditDefaultsOnly, ClampMin=0.0, UIMin=0.0 20.0 Below this speed (cm/s) the character is idle. Too low (around 3) and the character leaves Idle on residual velocity and plays a warped-to-nothing jog.
Wants Idle Break bWantsIdleBreak bool XenoCore › IdleBreak BlueprintReadOnly false Idle break - true while the character, having stood still long enough, should be fidgeting.
Idle Break Anim IdleBreakAnim TObjectPtr<UAnimSequence> XenoCore › IdleBreak EditDefaultsOnly, BlueprintReadOnly The fidget this stance plays. Set on the layer child, which is what makes the break per-stance and per-gender for free - the feminine layer is already a separate child.
Look Bone Rotation 0 LookBoneRotation0 FRotator XenoCore › Look BlueprintReadOnly FRotator::ZeroRotator Look rotation for neck_01 (component space, additive). Driven by the gaze.
Look Bone Rotation 1 LookBoneRotation1 FRotator XenoCore › Look BlueprintReadOnly FRotator::ZeroRotator Look rotation for neck_02 (component space, additive).
Look Bone Rotation 2 LookBoneRotation2 FRotator XenoCore › Look BlueprintReadOnly FRotator::ZeroRotator Look rotation for head (component space, additive).
Look Bone Shares LookBoneShares TArray<float> XenoCore › Look EditDefaultsOnly Share of the look each bone carries, in LookBoneRotation0..2 order. Should sum to 1.
Look Bone Interp Speeds LookBoneInterpSpeeds TArray<float> XenoCore › Look EditDefaultsOnly FInterpTo speed per bone, same order. Higher on the head so it leads.
Look Max Yaw LookMaxYaw float XenoCore › Look EditDefaultsOnly, ClampMin=0, ClampMax=120, Units=Degrees 70.0 Total head-and-neck yaw either side, after the chest's own twist.
Look Give Up Yaw LookGiveUpYaw float XenoCore › Look EditDefaultsOnly, ClampMin=0, ClampMax=180, Units=Degrees 125.0 Beyond this the target is behind: look forward instead of craning at the limit.
Look Max Pitch Up LookMaxPitchUp float XenoCore › Look EditDefaultsOnly, ClampMin=0, ClampMax=80, Units=Degrees 30.0 How far the head may tilt up toward its look target.
Look Max Pitch Down LookMaxPitchDown float XenoCore › Look EditDefaultsOnly, ClampMin=0, ClampMax=80, Units=Degrees 25.0 How far the head may tilt down toward its look target.
Look Origin Bone LookOriginBone FName XenoCore › Look EditDefaultsOnly "head" The bone the look is measured from - the eyes are near it.
Look Blocked By Tags LookBlockedByTags FGameplayTagContainer XenoCore › Look EditDefaultsOnly While the character's ASC holds any of these the head returns forward - a clip is driving it.
Idle Break Delay IdleBreakDelay float XenoCore › IdleBreak EditDefaultsOnly, ClampMin=0.0 8.0 Seconds of stillness before a break is requested.
Idle Break Jitter IdleBreakJitter float XenoCore › IdleBreak EditDefaultsOnly, ClampMin=0.0 6.0 Random extra delay on top, rolled per break, so repeats land IdleBreakDelay to IdleBreakDelay+IdleBreakJitter apart instead of reading as metronomic.

UXenoCoreAnimNotify_GameplayEvent

Class · derives from UAnimNotify · header XenoCoreRuntime/Public/Animation/XenoCoreAnimNotify_GameplayEvent.h

Sends a gameplay event to the animating actor at the frame it is placed on.

Properties

Property C++ name Type Category Specifiers Default Description
Event Tag EventTag FGameplayTag XenoCore EditAnywhere, BlueprintReadOnly The event to raise. An invalid tag is a no-op rather than an error - see the .cpp.

UXenoCoreAnimProfileStatics

Class · derives from UBlueprintFunctionLibrary · header XenoCoreRuntime/Public/Animation/XenoCoreAnimProfileStatics.h

No description.

Blueprint functions

Node Kind Signature Description
Get Anim Profile Pure const UXenoCoreCharacterAnimProfile* GetAnimProfile(const AActor* Actor) The profile this actor wears, or null - no provider, or a provider with none set.
Pick Death Montage Callable UAnimMontage* K2_PickDeathMontage(const AActor* Actor, const TArray<UAnimMontage*>& DefaultMontages) PickDeathMontage for a Blueprint death graph - B_XenoCore_Player draws its own.
Pick Victory Montage Callable UAnimMontage* PickVictoryMontage(const AActor* Actor) The battle-won emote: random from the profile's VictoryMontages, null when there are none.
Describe Resolution Callable FString DescribeResolution(const AActor* Actor) Every combat clip this actor resolves to, and where each came from - profile or default.

UXenoCoreCharacterAnimProfile

Class · derives from UPrimaryDataAsset · header XenoCoreRuntime/Public/Animation/XenoCoreCharacterAnimProfile.h · BlueprintType

A character's own combat animation. Every slot is optional - empty falls back to the default.

Properties

Property C++ name Type Category Specifiers Default Description
Reactions Reactions TMap<FGameplayTag, FXenoCoreReactionMontages> Reactions EditAnywhere, BlueprintReadOnly, Categories=Anim.XenoCore.Reaction Per reaction, keyed by Anim.XenoCore.Reaction.* - the same tag the reaction ability carries as its ProfileKey. A reaction with no row here plays its ability's own montages.
Death Montages DeathMontages TArray<TObjectPtr<UAnimMontage>> Death EditAnywhere, BlueprintReadOnly One is picked at random on death. Empty = the pawn's own DeathMontages.
Victory Montages VictoryMontages TArray<TObjectPtr<UAnimMontage>> Victory EditAnywhere, BlueprintReadOnly Battle won: one is picked at random and played once this character has sheathed. Empty = this character does not celebrate.
Idle Breaks IdleBreaks TArray<TObjectPtr<UAnimSequence>> Idle EditAnywhere, BlueprintReadOnly This character's idle breaks out of battle. Empty = the stance's own break.
Armed Idle Breaks ArmedIdleBreaks TArray<TObjectPtr<UAnimSequence>> Idle EditAnywhere, BlueprintReadOnly This character's idle breaks with the weapon drawn. Empty = the stance's own break.
Social Expressions SocialExpressions TArray<FXenoCoreWeightedExpression> Face EditAnywhere, BlueprintReadOnly Expressions worn when facing a companion at rest.
Solo Expressions SoloExpressions TArray<FXenoCoreWeightedExpression> Face EditAnywhere, BlueprintReadOnly Expressions worn now and then while standing alone at rest.

UXenoCoreFaceAnimInstance

Class · derives from UAnimInstance · header XenoCoreRuntime/Public/Animation/XenoCoreFaceAnimInstance.h · Blueprintable

The parent of every VRoid body's runtime ABP (ABP_XenoCore_VRoidRetarget_*). The AnimGraph retargets the invisible Mannequin body's pose onto the VRoid mesh, then a Modify Curve node writes FaceCurves - one wire, the node's CurveMap pin - into the pose. The mesh's VRM4U post-process ABP (ABP_Post_*) turns those curves into morph targets through the model's own POSE_face asset, so the expressions are the ones authored in VRoid Studio.

Properties

Property C++ name Type Category Specifiers Default Description
Face Curves FaceCurves TMap<FName, float> XenoCore › Face Transient, BlueprintReadOnly The curve values this frame. Wired to the Modify Curve node's CurveMap pin.
Expression Rules ExpressionRules TArray<FXenoCoreFaceExpressionRule> XenoCore › Face EditDefaultsOnly, BlueprintReadOnly Gameplay tag -> expression rules, checked in order; the first tag the character holds wins.
Expression Table ExpressionTable TSoftObjectPtr<UDataTable> XenoCore › Face EditDefaultsOnly, BlueprintReadOnly Named expressions, as mixes of face curves. Rule and PlayExpression names are looked up here first.
Blink Curve BlinkCurve FName XenoCore › Face › Blink EditDefaultsOnly, BlueprintReadOnly "blink" The face curve the procedural blink drives.
Blink Interval Min BlinkIntervalMin float XenoCore › Face › Blink EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.1 2.5 Shortest time between blinks, in seconds. Each gap is rolled between Min and Max.
Blink Interval Max BlinkIntervalMax float XenoCore › Face › Blink EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.1 6.0 Longest time between blinks, in seconds.
Blink Duration BlinkDuration float XenoCore › Face › Blink EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.05 0.18 Close-and-open time. Real blinks are 0.1-0.4s; under 0.12 the pose asset barely reaches shut.
Expression Blend Speed ExpressionBlendSpeed float XenoCore › Face EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.1 6.0 How fast an expression eases in and out, per second.
Talking Tag TalkingTag FGameplayTag XenoCore › Face › Mouth EditDefaultsOnly, BlueprintReadOnly While the character's ASC holds this, the mouth cycles MouthShapes. Empty = never talks.
Mouth Shapes MouthShapes TArray<FName> XenoCore › Face › Mouth EditDefaultsOnly, BlueprintReadOnly Mouth curves the generic talking flap cycles through.
Mouth Shape Interval MouthShapeInterval float XenoCore › Face › Mouth EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.03 0.11 Seconds each mouth shape is held during the talking flap.
Mouth Weight MouthWeight float XenoCore › Face › Mouth EditDefaultsOnly, BlueprintReadOnly, ClampMin=0, ClampMax=1 0.6 How far the mouth opens during the talking flap, 0..1.
Lip Sync bLipSync bool XenoCore › Face › Lip Sync EditDefaultsOnly, BlueprintReadOnly true Off = voice lines only flap the mouth, ignoring their lip-sync keys.
Lip Sync Weight Scale LipSyncWeightScale float XenoCore › Face › Lip Sync EditDefaultsOnly, BlueprintReadOnly, ClampMin=0, ClampMax=2 1.0 Multiplies every lip-sync key's weight. Raise for a model whose mouth shapes read small.
Lip Sync Blend Speed LipSyncBlendSpeed float XenoCore › Face › Lip Sync EditDefaultsOnly, BlueprintReadOnly, ClampMin=1 30.0 How fast the mouth moves between lip-sync shapes, per second. Higher is snappier.

Blueprint functions

Node Kind Signature Description
Play Expression Callable void PlayExpression(FName Expression, float Weight = 1.f, float Duration = 2.f, bool bSuppressBlink = false) Show Expression at Weight for Duration seconds, over every tag-driven rule.
Clear Expression Callable void ClearExpression() Ends a timed or held PlayExpression; the tag-driven rules take over again.
Play Voice Line Callable void PlayVoiceLine(const TArray<FXenoCoreVisemeKey>& Keys, UAudioComponent* Audio, float Duration) Lip-sync the face to a voice line: Keys are mouth shapes over time, played while Audio plays.
Stop Voice Line Callable void StopVoiceLine() Stops the current voice line's lip sync and lets the mouth relax.
Is Lip Syncing Pure bool IsLipSyncing() const True while a voice line drives the mouth.
Play Expression On Actor Callable bool PlayExpressionOnActor(AActor* Actor, FName Expression, float Weight = 1.f, float Duration = 2.f) Play an expression on whatever face Actor has.
Is Playing Expression Pure bool IsPlayingExpression() const True while a timed or held PlayExpression is on screen - a scripted beat other systems should not stomp.
Get Expression Names Pure TArray<FName> GetExpressionNames() const Every row name of ExpressionTable, for tools and the console.
Find Face For Actor Callable UXenoCoreFaceAnimInstance* FindFaceForActor(AActor* Actor) Finds the face instance driving Actor's visible body - Actor may be the pawn itself or the cosmetic part.

XenoCoreRuntime / Arts

EXenoCoreArtAICheck

Enum · header XenoCoreRuntime/Public/Arts/XenoCoreArtDefinition.h · BlueprintType

What a companion checks before using an art.

Value Shown as Description
TargetHasTag Target Has Tag The enemy carries Tag - a reaction (Break/Topple/Daze), a status, an aura, a phase.
TargetLacksTag Target Lacks Tag No description.
TargetHealthBelow Target Health Below The enemy's health is below Percent.
TargetHealthAbove Target Health Above No description.
IHoldTargetAggro I Hold Target Aggro The enemy's current target (its highest aggro) is this companion.
IDoNotHoldTargetAggro I Do Not Hold Target Aggro No description.
TargetFacingMe Target Facing Me The enemy faces this companion (within its front arc).
TargetNotFacingMe Target Not Facing Me No description.
AllyHealthBelowHealThreshold Ally Health Below Heal Threshold Some living party member is below the companion's Heal Threshold (its AI profile).
RecipientLacksTag Recipient Lacks Tag Whoever the art lands on - the chosen ally, or the user for a self/party art - lacks Tag. Stops re-buffing.

EXenoCoreArtArea

Enum · header XenoCoreRuntime/Public/Arts/XenoCoreArtDefinition.h · BlueprintType

XC1's "Range" line - how many it reaches. Only meaningful for an Enemy-targeted art.

Value Shown as Description
Single Single No description.
CircleAroundUser Circle Around User No description.
CircleAroundTarget Circle Around Target No description.
Cone Cone No description.

EXenoCoreArtAttribute

Enum · header XenoCoreRuntime/Public/Arts/XenoCoreArtDefinition.h · BlueprintType

Whether an art is physical or ether. Separate from Category, which is the art's type colour. An ether art uses Ether and Ether Defence instead of Strength and Physical Defence.

Value Shown as Description
Physical Physical No description.
Ether Ether No description.

EXenoCoreArtCategory

Enum · header XenoCoreRuntime/Public/Arts/XenoCoreArtDefinition.h · BlueprintType

The eight art categories. Drives the palette slot's colour, per XC1's reaction colour language.

Value Shown as Description
Physical Physical No description.
Ether Ether No description.
Break Break No description.
Topple Topple Knocks a Broken target down. Green in XC1's colour language.
Daze Daze Stuns a Toppled target. Yellow in XC1's colour language.
Buff Buff Strengthens the user or the party.
Debuff Debuff No description.
Heal Heal No description.

EXenoCoreArtEffect

Enum · header XenoCoreRuntime/Public/Arts/XenoCoreArtDefinition.h · BlueprintType

Whether the art's magnitude is dealt or restored.

Value Shown as Description
Damage Damage No description.
Heal Heal No description.
None None A pure buff or debuff - the art's Effects list is all it does.

EXenoCoreArtEffectCondition

Enum · header XenoCoreRuntime/Public/Arts/XenoCoreArtDefinition.h · BlueprintType

When an Effects entry applies.

Value Shown as Description
Always Always No description.
InPosition In Position The art's own PositionalRequirement is met.
FromSide From Side No description.
FromBehind From Behind The user is behind the target.
TargetBroken Target Broken No description.
TargetToppled Target Toppled No description.
TargetDazed Target Dazed No description.
FromFront From Front No description.

EXenoCoreArtEffectRecipient

Enum · header XenoCoreRuntime/Public/Arts/XenoCoreArtDefinition.h · BlueprintType

Who an Effects entry lands on.

Value Shown as Description
Target Target Each target the art hits.
User User The caster - a self buff riding an attack.
Party Party Every active party member.

EXenoCoreArtPositional

Enum · header XenoCoreRuntime/Public/Arts/XenoCoreArtDefinition.h · BlueprintType

Where the user must be standing relative to the target for the art's rider to apply.

Value Shown as Description
None None No description.
Back Back No description.
Side Side No description.
Front Front In front of the target. Appended last so saved values of the others do not change.

EXenoCoreArtTargetType

Enum · header XenoCoreRuntime/Public/Arts/XenoCoreArtDefinition.h · BlueprintType

Who the art is aimed at: the enemy, the user, one ally, or the whole party.

Value Shown as Description
Enemy Enemy No description.
User User The caster.
Ally Ally One party member, chosen with the ally selector.
Party Party Every active party member at once.

FXenoCoreArtAICondition

Struct · header XenoCoreRuntime/Public/Arts/XenoCoreArtDefinition.h · BlueprintType

One AI condition on an art. Required conditions gate the art; bonus conditions add to its score.

Properties

Property C++ name Type Category Specifiers Default Description
Check Check EXenoCoreArtAICheck AI EditAnywhere, BlueprintReadOnly EXenoCoreArtAICheck::TargetHasTag What this condition checks.
Tag Tag FGameplayTag AI EditAnywhere, BlueprintReadOnly For the tag checks.
Percent Percent float AI EditAnywhere, BlueprintReadOnly, ClampMin=0.0, ClampMax=100.0 50.0 For the health checks, 0-100.
Still Active On Impact bStillActiveOnImpact bool AI EditAnywhere, BlueprintReadOnly false For "Target has tag": pass only if the tag will still be on the target when this art lands.
Required bRequired bool AI EditAnywhere, BlueprintReadOnly true Required: the art is not used unless this passes. Unticked: passing adds Bonus to its score.
Bonus Bonus float AI EditAnywhere, BlueprintReadOnly, EditCondition=!bRequired 1.0 Score added when an optional condition passes.

FXenoCoreArtEffectEntry

Struct · header XenoCoreRuntime/Public/Arts/XenoCoreArtDefinition.h · BlueprintType

One status an art applies - a debuff, a buff, or a reaction.

Properties

Property C++ name Type Category Specifiers Default Description
Effect Effect TSubclassOf<class UGameplayEffect> Effect EditAnywhere, BlueprintReadOnly The status - pick from GE_XenoCore_Status_* or GE_XenoCore_Reaction_*.
Chance Chance float Effect EditAnywhere, BlueprintReadOnly, ClampMin=0.0, ClampMax=1.0 1.0 Probability, 0 to 1, that this status is applied when the art lands.
Duration Duration FScalableFloat Effect EditAnywhere, BlueprintReadOnly Seconds, scaled by art level, sent as XenoCore.Status.Duration. Leave at 0 only for a status with its own fixed duration, such as a reaction.
Magnitude Magnitude FScalableFloat Effect EditAnywhere, BlueprintReadOnly Strength, scaled by art level; what it means is the status's own. 0 = not sent.
Condition Condition EXenoCoreArtEffectCondition Effect EditAnywhere, BlueprintReadOnly EXenoCoreArtEffectCondition::Always No description.
Recipient Recipient EXenoCoreArtEffectRecipient Effect EditAnywhere, BlueprintReadOnly EXenoCoreArtEffectRecipient::Target Who this status lands on: each target hit, the user, or the whole party.
Announce Chance bAnnounceChance bool Effect EditAnywhere, BlueprintReadOnly true For a positional condition (front / side / behind / in position): light the palette's Chance while the user stands there. So Air Slash's "Slow from the side" is announced like Back Slash's double damage from behind.

FXenoCoreArtPositionalBonus

Struct · header XenoCoreRuntime/Public/Arts/XenoCoreArtDefinition.h · BlueprintType

A reward for where the user stands - XC1's "Chance".

Properties

Property C++ name Type Category Specifiers Default Description
Position Position EXenoCoreArtPositional Positional EditAnywhere, BlueprintReadOnly EXenoCoreArtPositional::Back Where the user must stand relative to the target to earn this bonus.
Power Multiplier PowerMultiplier float Positional EditAnywhere, BlueprintReadOnly, ClampMin=0.0 2.0 Power x this when the user is in Position. 1 = no damage bonus (a Chance for its Effects only).
Announce Chance bAnnounceChance bool Positional EditAnywhere, BlueprintReadOnly true Light the palette's blue ! and the "Chance!" wordmark while the user is in Position.

FXenoCoreArtUnlock

Struct · derives from FTableRowBase · header XenoCoreRuntime/Public/Arts/XenoCoreArtDefinition.h · BlueprintType

One art a character learns, and where it starts on their bar - one row of a learnset table.

Properties

Property C++ name Type Category Specifiers Default Description
Art Art TSoftObjectPtr<class UXenoCoreArtDefinition> Art EditAnywhere, BlueprintReadOnly The art this row teaches.
Unlock Level UnlockLevel int32 Art EditAnywhere, BlueprintReadOnly, ClampMin=1 1 The character level at which this art is learned.
Default Slot DefaultSlot int32 Art EditAnywhere, BlueprintReadOnly, ClampMin=-1, ClampMax=7 -1 The palette slot it starts in (0-based), or -1 to be learned but not equipped - which is what gives the player a swap to make. Only read when the palette is first built.

UXenoCoreArtDefinition

Class · derives from UPrimaryDataAsset · header XenoCoreRuntime/Public/Arts/XenoCoreArtDefinition.h · BlueprintType

Everything a designer types about one art.

Properties

Property C++ name Type Category Specifiers Default Description
Ability Class AbilityClass TSubclassOf<class UXenoCoreGameplayAbility_Art> Art EditAnywhere, BlueprintReadOnly The ability class granted when this art is equipped. Leave it at the shared art class and an art is one asset - this definition and nothing else.
Display Name DisplayName FText Art EditAnywhere, BlueprintReadOnly Shown on the palette slot and in the arts menu.
Description Description FText Art EditAnywhere, BlueprintReadOnly The line shown under the palette, after the name - "Deals damage from behind".
Montage Montage TObjectPtr<UAnimMontage> Art › Animation EditAnywhere, BlueprintReadOnly The strike itself. Played by UXenoCoreGameplayAbility_Art - no Blueprint graph required.
Montage Play Rate MontagePlayRate float Art › Animation EditAnywhere, BlueprintReadOnly, ClampMin=0.01 1.0 Play rate of the montage. Also moves the impact, which is a fraction of the played length.
Impact Fraction ImpactFraction float Art › Animation EditAnywhere, BlueprintReadOnly, ClampMin=0.0, ClampMax=1.0 0.45 When in the montage the art lands, as a fraction of its play length.
Icon Icon TObjectPtr<UTexture2D> Art EditAnywhere, BlueprintReadOnly The art's icon in menus.
Palette Glyph PaletteGlyph TObjectPtr<UMaterialInterface> Art › Palette EditAnywhere, BlueprintReadOnly The glyph drawn on the palette slot. A material, unlike Icon above.
Glyph Colour GlyphColour FLinearColor Art › Palette EditAnywhere, BlueprintReadOnly FLinearColor::White The glyph's colour when the art is available. Grey is the unavailable look.
Palette Order PaletteOrder int32 Art › Palette EditAnywhere, BlueprintReadOnly 0 Fallback palette order for a pawn with no party record (lower is further left). Party characters use their palette slots instead.
Category Category EXenoCoreArtCategory Art EditAnywhere, BlueprintReadOnly EXenoCoreArtCategory::Physical The art's type, which sets its colour on the palette.
Base Level Up Cost BaseLevelUpCost int32 Art › Level EditAnywhere, BlueprintReadOnly, ClampMin=0 300 AP to raise this art from I to ii. Each further level multiplies it by UXenoCoreProgressionComponent::ArtLevelCostMultipliers.
Effect Type EffectType EXenoCoreArtEffect Art EditAnywhere, BlueprintReadOnly EXenoCoreArtEffect::Damage Whether the art deals damage, heals, or only applies its Effects.
Attribute Attribute EXenoCoreArtAttribute Art EditAnywhere, BlueprintReadOnly EXenoCoreArtAttribute::Physical XC1's "Attribute": which stats the damage reads.
Target Type TargetType EXenoCoreArtTargetType Art EditAnywhere, BlueprintReadOnly EXenoCoreArtTargetType::Enemy XC1's "Target". One ally opens the party selector (Light Heal); Whole party hits everyone with no choice to make; User is the caster alone.
Area Area EXenoCoreArtArea Art › Area EditAnywhere, BlueprintReadOnly EXenoCoreArtArea::Single XC1's "Range" - how many enemies it reaches.
Area Radius AreaRadius float Art › Area EditAnywhere, BlueprintReadOnly, ClampMin=0.0, EditCondition=Area != EXenoCoreArtArea::Single, Units=Centimeters 500.0 Radius of a circle, or the length of a cone. Typed in cm; the editor shows the unit.
Cone Angle ConeAngle float Art › Area EditAnywhere, BlueprintReadOnly, ClampMin=1.0, ClampMax=360.0, EditCondition=Area == EXenoCoreArtArea::Cone, Units=Degrees 90.0 Full width of a cone, in degrees.
Distance Distance float Art EditAnywhere, BlueprintReadOnly, ClampMin=0.0, Units=Centimeters 420.0 XC1's "Distance" - how close to its target the user must be for the art to strike. Used from further away, the character runs in first.
Effects Effects TArray<FXenoCoreArtEffectEntry> Art › Effects EditAnywhere, BlueprintReadOnly Every status this art applies - debuffs, buffs, and the Break / Topple / Daze reaction.
Cooldown Duration CooldownDuration FScalableFloat Art EditAnywhere, BlueprintReadOnly How long this art recharges for, in seconds.
Cooldown Tag CooldownTag FGameplayTag Art EditAnywhere, BlueprintReadOnly The tag that marks this art as recharging. Must be unique per art.
Power Power FScalableFloat Art EditAnywhere, BlueprintReadOnly The art's magnitude, scaled by art level.
Positional Bonuses PositionalBonuses TArray<FXenoCoreArtPositionalBonus> Art › Positional EditAnywhere, BlueprintReadOnly Where standing pays off - one entry per position, each with its multiplier and whether it announces a Chance. A list, so an art can reward the side and the back; it replaced a single PositionalRequirement, which migrates in on load.
Hits Hits int32 Art › Hits EditAnywhere, BlueprintReadOnly, ClampMin=1, ClampMax=10 1 How many times the art strikes. Each hit deals the full Power.
Hit Spacing HitSpacing float Art › Hits EditAnywhere, BlueprintReadOnly, ClampMin=0.0, ClampMax=1.0, EditCondition=Hits > 1 0.1 Gap between hits, as a fraction of the montage. The first lands at ImpactFraction.
Impact Event Tag ImpactEventTag FGameplayTag Art › Hits EditAnywhere, BlueprintReadOnly Every time the montage sends this event is one hit. Empty = use ImpactFraction / Hits.
Force Multiplier ForceMultiplier float Art › Hits EditAnywhere, BlueprintReadOnly, ClampMin=0.0, UIMax=5.0 1.0 How hard each hit knocks its target back, as a multiple of the target's PushDistance. 0 = none.
Lunge Multiplier LungeMultiplier float Art › Hits EditAnywhere, BlueprintReadOnly, ClampMin=0.0, UIMax=5.0 0.0 Lyra's melee lunge: the first connecting hit also drives the user into its target by the art ability's Lunge.Strength x this. 0 = none.
Talent Charge TalentCharge float Art › Talent Gauge EditAnywhere, BlueprintReadOnly, ClampMin=0.0, ClampMax=100.0 0.0 Talent Gauge gained from this art, out of 100. 0 = none.
Talent Charge Per Enemy Hit bTalentChargePerEnemyHit bool Art › Talent Gauge EditAnywhere, BlueprintReadOnly, EditCondition=TalentCharge > 0.0 false Pay TalentCharge for every enemy hit, on every hit, instead of once per cast. XC1: Stream Edge fills per enemy hit.
Threat Threat float Art › Aggro EditAnywhere, BlueprintReadOnly, ClampMin=0.0 10.0 Temporary aggro drawn from each enemy struck: this x (user's level + 14). 0 = none.
Usable By AI bUsableByAI bool Art › Companion AI EditAnywhere, BlueprintReadOnly true Untick to keep this art player-only.
AI Priority AIPriority float Art › Companion AI EditAnywhere, BlueprintReadOnly, EditCondition=bUsableByAI 1.0 Base score for companion AI. The highest-scoring usable art wins; ties go to palette order.
AI Chain Bonus AIChainBonus float Art › Companion AI EditAnywhere, BlueprintReadOnly, ClampMin=0.0, EditCondition=bUsableByAI 3.0 Extra score while this art's reaction can land - a Topple effect on a Broken target, a Daze on a Toppled one. Read from Effects; 0 = off.
AI Wait For Reaction bAIWaitForReaction bool Art › Companion AI EditAnywhere, BlueprintReadOnly, EditCondition=bUsableByAI true Hold this art until its reaction can land (a Topple art until the target is Broken, a Daze art until Toppled).
AI Conditions AIConditions TArray<FXenoCoreArtAICondition> Art › Companion AI EditAnywhere, BlueprintReadOnly, EditCondition=bUsableByAI When a companion uses this art. Empty = whenever it is ready (a Heal art implicitly waits for an ally below the heal threshold).
Cast FX CastFX TObjectPtr<UFXSystemAsset> Art › Cosmetics EditAnywhere, BlueprintReadOnly Spawned on the user when the art starts.
Cast Socket CastSocket FName Art › Cosmetics EditAnywhere, BlueprintReadOnly Socket or bone on the user's mesh the cast FX and sound attach to. Empty = the character's root.
Cast Sound CastSound TObjectPtr<USoundBase> Art › Cosmetics EditAnywhere, BlueprintReadOnly Played on the user when the art starts.
Impact FX ImpactFX TObjectPtr<UFXSystemAsset> Art › Cosmetics EditAnywhere, BlueprintReadOnly Spawned on every target, on every hit, where the strike lands.
Impact Sound ImpactSound TObjectPtr<USoundBase> Art › Cosmetics EditAnywhere, BlueprintReadOnly Played on every target, on every hit, where the strike lands.
Area FX AreaFX TObjectPtr<UFXSystemAsset> Art › Cosmetics EditAnywhere, BlueprintReadOnly, EditCondition=Area != EXenoCoreArtArea::Single Spawned once per hit at the centre of an area art, on the ground.
Area FX Authored Radius AreaFXAuthoredRadius float Art › Cosmetics EditAnywhere, BlueprintReadOnly, ClampMin=0.0, EditCondition=Area != EXenoCoreArtArea::Single, Units=Centimeters 0.0 The radius, in cm, the AreaFX was authored at - it is scaled by AreaRadius / this. 0 = never scaled.
Tint FX By Category bTintFXByCategory bool Art › Cosmetics EditAnywhere, BlueprintReadOnly true Tint the Cast, Impact and Area FX with this art's category colour (Niagara User.Color).
Hit Feedback bHitFeedback bool Art › Cosmetics EditAnywhere, BlueprintReadOnly true Play the hit shake and controller rumble when the art lands. Off for a gentle art.
Hit Camera Shake HitCameraShake TSubclassOf<UCameraShakeBase> Art › Cosmetics EditAnywhere, BlueprintReadOnly, EditCondition=bHitFeedback A different camera shake for this art's hits. Empty = the shared hit shake and rumble.

UXenoCoreGameplayAbility_Art

Class · derives from ULyraGameplayAbility · header XenoCoreRuntime/Public/Arts/XenoCoreGameplayAbility_Art.h · abstract

The base every XC1 Art is authored on. Reads everything it does from a UXenoCoreArtDefinition.

Properties

Property C++ name Type Category Specifiers Default Description
Contact Reach Tolerance ContactReachTolerance float XenoCore › Art EditDefaultsOnly, ClampMin=0.0 60.0 Extra reach, in cm, at the moment of impact only, never at activation - the auto-attack's own rule and its own number. Without it a small drift during the windup whiffs a strike that was in range.
Art Deadline Margin ArtDeadlineMargin float XenoCore › Art EditDefaultsOnly, ClampMin=0.0 0.35 Grace, in seconds, after the montage's expected end before the failsafe ends the art.
Art Face Time ArtFaceTime float XenoCore › Art EditDefaultsOnly, ClampMin=0.0 0.12 Seconds to turn onto the target at the start of an art. Zero snaps.
Lunge Lunge FXenoCoreHitLunge XenoCore › Art EditDefaultsOnly The lunge for this art's first connecting hit.
Default Cooldown Effect Class DefaultCooldownEffectClass TSoftClassPtr<UGameplayEffect> XenoCore › Art EditDefaultsOnly The cooldown effect used when this ability's own Cooldown Gameplay Effect Class is unset.
Talent Charge Effect TalentChargeEffect TSoftClassPtr<UGameplayEffect> XenoCore › Art EditDefaultsOnly The instant effect an art's TalentCharge is paid through - the auto-attack's own GE_XenoCore_TalentCharge, one operation "add X to the gauge". Defaulted in the constructor.
Art Data ArtData TObjectPtr<const UXenoCoreArtDefinition> XenoCore › Art EditDefaultsOnly, BlueprintReadOnly The art this ability runs as by default. A spec granted with a definition as its source object uses that instead.
Art Effect ArtEffect TSubclassOf<UGameplayEffect> XenoCore › Art EditDefaultsOnly Carries the art's magnitude onto Lyra's Damage or Healing meta attribute.
Heal Art Effect HealArtEffect TSubclassOf<UGameplayEffect> XenoCore › Art EditDefaultsOnly The effect a heal art applies. Null means ArtEffect.
Front Angle FrontAngle float XenoCore › Art › Positional EditDefaultsOnly, ClampMin=0.0, ClampMax=180.0 60.0 Half-angle of the target's front cone, in degrees. Between this and BackAngle is "side"; beyond BackAngle is "behind".
Back Angle BackAngle float XenoCore › Art › Positional EditDefaultsOnly, ClampMin=0.0, ClampMax=180.0 120.0 Angle from the target's facing, in degrees, beyond which the user counts as behind it.

Blueprint functions

Node Kind Signature Description
Get Art Data Pure const UXenoCoreArtDefinition* GetArtData() const The art's data.
Is Positional Satisfied Pure bool IsPositionalSatisfied(const AActor* Target) const Is the avatar standing where this art wants, relative to Target?
Is Positional Satisfied Between Pure bool IsPositionalSatisfiedBetween(const AActor* Attacker, const AActor* Target, EXenoCoreArtPositional Requirement, float InFrontAngle = 60.0f, float InBackAngle = 120.0f) The positional test without an ability instance, so the HUD can ask the same question.
Get Effective Power Pure float GetEffectivePower(const AActor* Target) const Power, including the positional multiplier when IsPositionalSatisfied.
Apply Art Effect Callable void ApplyArtEffect(AActor* Target) Apply the art to a target: magnitude, the positional rider, and the reaction tag.
Begin Strike Callable void BeginStrike(AActor* Target) Aim the character at Target and take yaw ownership for the strike.

UXenoCoreGameplayAbility_TalentArt

Class · derives from UXenoCoreGameplayAbility_Art · header XenoCoreRuntime/Public/Arts/XenoCoreGameplayAbility_TalentArt.h · abstract

The Talent Art - XC1's gauge-paid art. Ours is Turn Strike, the Junk Sword's.

Properties

Property C++ name Type Category Specifiers Default Description
Talent Gauge Effect TalentGaugeEffect TSubclassOf<UGameplayEffect> XenoCore › Talent EditDefaultsOnly The instant effect that moves the gauge. The same asset the auto-attack charges with.

Blueprint functions

Node Kind Signature Description
Get Talent Art Data Pure const UXenoCoreTalentArtDefinition* GetTalentArtData() const The talent-flavoured view of ArtData.
Get Gauge Cost Pure float GetGaugeCost() const How much gauge this art costs, or 0 if it carries no talent definition.
Get Current Gauge Pure float GetCurrentGauge() const Current gauge on the avatar.

UXenoCoreTalentArtDefinition

Class · derives from UXenoCoreArtDefinition · header XenoCoreRuntime/Public/Arts/XenoCoreTalentArtDefinition.h · BlueprintType

An art paid for with the Talent Gauge rather than a cooldown. XC1 calls these Talent Arts.

Properties

Property C++ name Type Category Specifiers Default Description
Gauge Cost GaugeCost float Talent Art EditAnywhere, BlueprintReadOnly, ClampMin=0.0, ClampMax=100.0 100.0 Talent Gauge spent to use it, out of UXenoCoreStatSet::TalentGaugeMax (100).

XenoCoreRuntime / Audio

AXenoCoreAreaMusic

Class · derives from AActor · header XenoCoreRuntime/Public/Audio/XenoCoreAreaMusic.h · Blueprintable

No description.

Properties

Property C++ name Type Category Specifiers Default Description
Field Music FieldMusic TObjectPtr<USoundBase> Music › Field EditAnywhere, BlueprintReadOnly Played while the party is exploring. Empty = silence out of battle.
Field Volume FieldVolume float Music › Field EditAnywhere, BlueprintReadOnly, ClampMin=0.0, UIMax=2.0 1.0 Volume of the field track (it is faded to and from this).
Field Start Fade Seconds FieldStartFadeSeconds float Music › Field EditAnywhere, BlueprintReadOnly, ClampMin=0.0, Units=s 3.0 Fade-in when the map starts.
Resume Field Music bResumeFieldMusic bool Music › Field EditAnywhere, BlueprintReadOnly true True: after a battle the field track continues from where it was cut. False: from the top.
Field Music Night FieldMusicNight TObjectPtr<USoundBase> Music › Field EditAnywhere, BlueprintReadOnly Played while exploring at night. Empty = the field track plays at night too.
Field Night Volume FieldNightVolume float Music › Field EditAnywhere, BlueprintReadOnly, ClampMin=0.0, UIMax=2.0 1.0 Volume of the night track.
Day Night Fade Seconds DayNightFadeSeconds float Music › Transitions EditAnywhere, BlueprintReadOnly, ClampMin=0.0, Units=s 5.0 Crossfade between the day and night field tracks.
Weather Duck Seconds WeatherDuckSeconds float Music › Transitions EditAnywhere, BlueprintReadOnly, ClampMin=0.0, Units=s 4.0 How long the music takes to follow a weather change in volume.
Battle Music BattleMusic TObjectPtr<USoundBase> Music › Battle EditAnywhere, BlueprintReadOnly Played while the party is in battle. Empty = the field track keeps playing through fights.
Battle Volume BattleVolume float Music › Battle EditAnywhere, BlueprintReadOnly, ClampMin=0.0, UIMax=2.0 1.0 Volume of the battle track.
Enter Battle Fade Seconds EnterBattleFadeSeconds float Music › Transitions EditAnywhere, BlueprintReadOnly, ClampMin=0.0, Units=s 1.0 Crossfade length when a battle starts (field out, battle in).
Leave Battle Fade Seconds LeaveBattleFadeSeconds float Music › Transitions EditAnywhere, BlueprintReadOnly, ClampMin=0.0, Units=s 2.5 Crossfade length when a battle ends without a win (fled, or the enemy gave up).
Victory Fade Seconds VictoryFadeSeconds float Music › Transitions EditAnywhere, BlueprintReadOnly, ClampMin=0.0, Units=s 0.75 How fast the battle track fades on a win, under the victory fanfare.
Field Return Fade Seconds FieldReturnFadeSeconds float Music › Transitions EditAnywhere, BlueprintReadOnly, ClampMin=0.0, Units=s 3.0 Fade-in of the field track once the battle is over.
Poll Seconds PollSeconds float Music › Transitions EditAnywhere, AdvancedDisplay, ClampMin=0.05, Units=s 0.2 How often the battle state is read.
Field Audio FieldAudio TObjectPtr<UAudioComponent> Music VisibleAnywhere No description.
Field Night Audio FieldNightAudio TObjectPtr<UAudioComponent> Music VisibleAnywhere No description.
Battle Audio BattleAudio TObjectPtr<UAudioComponent> Music VisibleAnywhere No description.

Blueprint functions

Node Kind Signature Description
Is Battle Music Active Pure bool IsBattleMusicActive() const True while the battle track owns the music.

XenoCoreRuntime / Battle

EXenoCoreAttackTargetSource

Enum · header XenoCoreRuntime/Public/Battle/XenoCoreGameplayAbility_AutoAttack.h · BlueprintType

Where a swinging actor gets the thing it is swinging at.

Value Shown as Description
TargetLock Target Lock The player's target-lock selection.
NearestHostile Nearest Hostile Enemies, and party AI later.

FXenoCoreBattleWonMessage

Struct · header XenoCoreRuntime/Public/Battle/XenoCoreBattleVictorySubsystem.h · BlueprintType

The payload on XenoCore.Battle.Message.Won.

Properties

Property C++ name Type Category Specifiers Default Description
Celebrants Celebrants TArray<TObjectPtr<ACharacter>> XenoCore › Battle BlueprintReadOnly Every living party body that was told to sheathe and celebrate.

FXenoCoreHitLunge

Struct · header XenoCoreRuntime/Public/Battle/XenoCoreHitLunge.h · BlueprintType

No description.

Properties

Property C++ name Type Category Specifiers Default Description
Strength Strength float XenoCore › Lunge EditAnywhere, BlueprintReadOnly, ClampMin=0.0, Units=CentimetersPerSecond 2200.0 Lunge speed at ForceMultiplier 1 and a target Distance away, in cm/s. Lyra: 2200.
Distance Distance float XenoCore › Lunge EditAnywhere, BlueprintReadOnly, ClampMin=0.0, Units=Centimeters 350.0 The gap, in cm, at which the lunge reaches full Strength; closer is weaker, further is stronger. Lyra: 350.
Duration Duration float XenoCore › Lunge EditAnywhere, BlueprintReadOnly, ClampMin=0.01, Units=Seconds 0.05 How long the force is applied, in seconds. Lyra: 0.05.
Is Additive bIsAdditive bool XenoCore › Lunge EditAnywhere, BlueprintReadOnly true Additive rides on the attacker's own movement (Lyra); off replaces it for the duration.
Strength Over Time StrengthOverTime TObjectPtr<UCurveFloat> XenoCore › Lunge EditAnywhere, BlueprintReadOnly Scales the force across Duration (X 0-1). None = constant.
Velocity On Finish Mode VelocityOnFinishMode ERootMotionFinishVelocityMode XenoCore › Lunge EditAnywhere, BlueprintReadOnly ERootMotionFinishVelocityMode::MaintainLastRootMotionVelo... What the attacker's velocity does when the force ends. Lyra: keep the last root-motion velocity.
Set Velocity On Finish SetVelocityOnFinish FVector XenoCore › Lunge EditAnywhere, BlueprintReadOnly FVector::ZeroVector Velocity set on finish when the mode is SetVelocity. Lyra: zero.
Clamp Velocity On Finish ClampVelocityOnFinish float XenoCore › Lunge EditAnywhere, BlueprintReadOnly, ClampMin=0.0, Units=CentimetersPerSecond 1000.0 Speed cap on finish when the mode is ClampVelocity, in cm/s. Lyra: 1000.
Enable Gravity bEnableGravity bool XenoCore › Lunge EditAnywhere, BlueprintReadOnly true Gravity keeps acting during the lunge. Lyra: on.

FXenoCoreThreatEntry

Struct · header XenoCoreRuntime/Public/Battle/XenoCoreThreatComponent.h · BlueprintType

One combatant's standing with one enemy. Two of XC1's three pools; Mad Taunt is not built.

Properties

Property C++ name Type Category Specifiers Default Description
Permanent Permanent float XenoCore › Threat BlueprintReadOnly 1.0 From damage dealt and healing done. Never decays.
Temporary Temporary float XenoCore › Threat BlueprintReadOnly 1.0 From using arts. Drains at TemporaryDecayPerSecond.

UXenoCoreAggroIndicatorComponent

Class · derives from UActorComponent · header XenoCoreRuntime/Public/Battle/XenoCoreAggroIndicatorComponent.h

Shows who an enemy is after: a red ring under its target. Presentation only.

Properties

Property C++ name Type Category Specifiers Default Description
Ring System RingSystem TSoftObjectPtr<UNiagaraSystem> XenoCore › Aggro EditAnywhere, BlueprintReadOnly The ring drawn at the target's feet. Size is the system's User.RingSize.
Ring Lift RingLift float XenoCore › Aggro EditAnywhere, BlueprintReadOnly, ClampMin=0.0, Units=Centimeters 8.0 Lift the ring off the ground this far, so it is not lost in grass. The decal projects downward from here.
Hide Grace HideGrace float XenoCore › Aggro EditAnywhere, BlueprintReadOnly, ClampMin=0.0, Units=Seconds 0.4 Keep showing for this long after the target reads empty, so a one-frame gap does not blink the ring.

UXenoCoreBattleVictorySubsystem

Class · derives from UWorldSubsystem · header XenoCoreRuntime/Public/Battle/XenoCoreBattleVictorySubsystem.h

Decides that a battle was won, plays the fanfare, and has the party disarm and celebrate.

Blueprint functions

Node Kind Signature Description
Celebrate Callable void Celebrate() Run the won sequence now, whether or not a fight just ended - for scripted wins and testing.
Is Celebrating Pure bool IsCelebrating() const True while any body is still sheathing towards, or playing, its victory emote.

UXenoCoreGameplayAbility_AutoAttack

Class · derives from ULyraGameplayAbility · header XenoCoreRuntime/Public/Battle/XenoCoreGameplayAbility_AutoAttack.h · abstract

The free auto-attack that runs while engaged.

Properties

Property C++ name Type Category Specifiers Default Description
Incapacitated Tags IncapacitatedTags FGameplayTagContainer XenoCore › AutoAttack EditDefaultsOnly While the attacker carries any of these it does not swing: the loop pauses, a one-shot ends, and a swing already in flight does not connect.
Talent Charge Effect TalentChargeEffect TSubclassOf<UGameplayEffect> XenoCore › Talent EditDefaultsOnly Instant effect carrying the charge onto the attacker's TalentGauge.
Attack Range AttackRange float XenoCore › AutoAttack EditDefaultsOnly, ClampMin=0.0 420.0 How far the swing reaches.
Contact Reach Tolerance ContactReachTolerance float XenoCore › Attack EditDefaultsOnly, ClampMin=0.0 60.0 Extra reach allowed at contact only, never when starting a swing.
Force Multiplier ForceMultiplier float XenoCore › Attack EditDefaultsOnly, ClampMin=0.0, UIMax=5.0 1.0 How hard each landed swing knocks its target back, as a multiple of the target's PushDistance. 0 = none.
Lunge Multiplier LungeMultiplier float XenoCore › Attack EditDefaultsOnly, ClampMin=0.0, UIMax=5.0 0.0 Lyra's melee lunge: each connecting swing also drives the attacker into its target by Lunge.Strength x this. 0 = none.
Lunge Lunge FXenoCoreHitLunge XenoCore › Attack EditDefaultsOnly The lunge itself - Lyra's GA_Melee values by default.
Target Source TargetSource EXenoCoreAttackTargetSource XenoCore › AutoAttack EditDefaultsOnly EXenoCoreAttackTargetSource::TargetLock Where to get the target. Data, not a subclass - the player and an enemy differ by this and bRequiresArming and nothing else, so a bespoke C++ ability per attacker would be two classes to express two booleans.
Requires Arming bRequiresArming bool XenoCore › AutoAttack EditDefaultsOnly true Whether this attacker draws before swinging.
Swing Recovery SwingRecovery float XenoCore › AutoAttack EditDefaultsOnly, ClampMin=0.0 0.35 Idle gap between one swing finishing and the next starting.
Out Of Range Retry OutOfRangeRetry float XenoCore › AutoAttack EditDefaultsOnly, ClampMin=0.05 0.2 How often to re-check reach while paused out of range. Cheap, so it can be responsive.
Arm Poll ArmPoll float XenoCore › AutoAttack EditDefaultsOnly, ClampMin=0.02 0.05 How often to re-check whether the draw has finished.
Damage Effect DamageEffect TSubclassOf<UGameplayEffect> XenoCore › AutoAttack EditDefaultsOnly The damage effect each landed swing applies. Without one the attack deals no damage.
Attack Montages AttackMontages TArray<TObjectPtr<UAnimMontage>> XenoCore › AutoAttack EditDefaultsOnly Swing animations, played in order and wrapped - Kwang's A/B/C primary chain.
Attack Montages Stationary AttackMontagesStationary TArray<TObjectPtr<UAnimMontage>> XenoCore › AutoAttack EditDefaultsOnly The same swings on the full body slot, played when the character is standing still.
Face Target On Attack bFaceTargetOnAttack bool XenoCore › AutoAttack EditDefaultsOnly false Snap the avatar's yaw onto the target when a swing starts.
Face Target Turn Rate FaceTargetTurnRate float XenoCore › Attack EditDefaultsOnly, ClampMin=0.0 0.0 Defaults to 0 - the one-frame snap. Turning is opt-in, because it changes how every attack in the game looks.
Root Motion When Stationary bRootMotionWhenStationary bool XenoCore › AutoAttack EditDefaultsOnly true Let a stationary swing drive the capsule from its root motion, and ignore root motion entirely while moving.
Cancel Full Body On Move bCancelFullBodyOnMove bool XenoCore › AutoAttack EditDefaultsOnly true Hand a full-body swing over to its upper-body twin the moment the player starts moving.
Full Body Cancel Blend Out FullBodyCancelBlendOut float XenoCore › AutoAttack EditDefaultsOnly, ClampMin=0.0 0.1 Blend used when handing the swing over. Short, or the legs slide through the blend.
Additional Effects AdditionalEffects TArray<TSubclassOf<UGameplayEffect>> XenoCore › AutoAttack EditDefaultsOnly Extra effects applied to the target on a landed hit, alongside the damage.
Loop Swings bLoopSwings bool XenoCore › AutoAttack EditDefaultsOnly true Keep swinging on a timer. True for an auto-attack, false for an art.
Stationary Speed Threshold StationarySpeedThreshold float XenoCore › AutoAttack EditDefaultsOnly, ClampMin=0.0 20.0 Below this ground speed the character counts as standing still.
Montage Play Rate MontagePlayRate float XenoCore › AutoAttack EditDefaultsOnly, ClampMin=0.1 1.0 Clips run ~1.2s; raise this for XC1's snappier read without re-authoring them.

UXenoCoreGameplayAbility_DazeReact

Class · derives from UXenoCoreGameplayAbility_KnockdownReact · header XenoCoreRuntime/Public/Battle/XenoCoreGameplayAbility_KnockdownReact.h · abstract

Status.XenoCore.Reaction.Daze arrived.

UXenoCoreGameplayAbility_DefenceReact

Class · derives from UXenoCoreGameplayAbility_Reaction · header XenoCoreRuntime/Public/Battle/XenoCoreGameplayAbility_DefenceReact.h · abstract

No description.

UXenoCoreGameplayAbility_Downed

Class · derives from ULyraGameplayAbility · header XenoCoreRuntime/Public/Battle/XenoCoreGameplayAbility_Downed.h · Blueprintable

A party member at 0 HP: kneels, cannot act, and waits for a revive. Replaces GA_Hero_Death on the party.

Properties

Property C++ name Type Category Specifiers Default Description
Enter Anim EnterAnim TObjectPtr<UAnimSequenceBase> XenoCore › Downed EditDefaultsOnly, BlueprintReadOnly Played once as the body goes down.
Loop Anim LoopAnim TObjectPtr<UAnimSequenceBase> XenoCore › Downed EditDefaultsOnly, BlueprintReadOnly Looped while down.
Get Up Anim GetUpAnim TObjectPtr<UAnimSequenceBase> XenoCore › Downed EditDefaultsOnly, BlueprintReadOnly Played once on revive, ending standing.
Slot Name SlotName FName XenoCore › Downed EditDefaultsOnly, BlueprintReadOnly "FullBody" The montage slot all three play on. Use a full-body slot, or the legs keep walking.

UXenoCoreGameplayAbility_EvadeReact

Class · derives from UXenoCoreGameplayAbility_DefenceReact · header XenoCoreRuntime/Public/Battle/XenoCoreGameplayAbility_DefenceReact.h · abstract

The defender evaded - XenoCore.Event.Combat.Evade. Owns Status.XenoCore.Defence.Evade.

UXenoCoreGameplayAbility_GuardReact

Class · derives from UXenoCoreGameplayAbility_DefenceReact · header XenoCoreRuntime/Public/Battle/XenoCoreGameplayAbility_DefenceReact.h · abstract

The defender blocked a physical hit - XenoCore.Event.Combat.Block. Owns Status.XenoCore.Defence.Guard.

UXenoCoreGameplayAbility_HitReact

Class · derives from UXenoCoreGameplayAbility_Reaction · header XenoCoreRuntime/Public/Battle/XenoCoreGameplayAbility_HitReact.h · abstract

Plays a directional flinch when something lands a hit on this pawn.

Properties

Property C++ name Type Category Specifiers Default Description
Flinch On Hit bFlinchOnHit bool XenoCore › HitReact EditDefaultsOnly, BlueprintReadOnly false Play the flinch when hit. Off = no flinch montage; the knockback still applies.
Push Distance PushDistance float XenoCore › HitReact › Push EditDefaultsOnly, ClampMin=0.0, Units=Centimeters 60.0 How far a hit at ForceMultiplier 1 knocks this body back, in cm. 0 = never pushed.
Push Time PushTime float XenoCore › HitReact › Push EditDefaultsOnly, ClampMin=0.02, Units=Seconds 0.12 How long the knockback takes, in seconds.
Push Strength Over Time PushStrengthOverTime TObjectPtr<UCurveFloat> XenoCore › HitReact › Push EditDefaultsOnly Shapes the knockback over PushTime (X 0-1 = normalised time, Y = strength). None = constant.
Flinch Suppressed By Tags FlinchSuppressedByTags FGameplayTagContainer XenoCore › HitReact EditDefaultsOnly While the pawn carries any of these, a flinch does not play.

UXenoCoreGameplayAbility_KnockdownReact

Class · derives from UXenoCoreGameplayAbility_Reaction · header XenoCoreRuntime/Public/Battle/XenoCoreGameplayAbility_KnockdownReact.h · abstract

No description.

UXenoCoreGameplayAbility_Reaction

Class · derives from ULyraGameplayAbility · header XenoCoreRuntime/Public/Battle/XenoCoreGameplayAbility_Reaction.h · abstract

Base for a body's reaction - flinch, knockdown, guard, recoil, dodge. Machinery only.

Properties

Property C++ name Type Category Specifiers Default Description
Profile Key ProfileKey FGameplayTag XenoCore › Reaction EditDefaultsOnly, Categories=Anim.XenoCore.Reaction Which row of the character's anim profile this reaction reads. Empty = always its own montages.
Directional Montages DirectionalMontages TArray<TObjectPtr<UAnimMontage>> XenoCore › Reaction EditDefaultsOnly Front, Back, Left, Right - in that order. Any entry may be null; that direction no-ops.
Random Montages RandomMontages TArray<TObjectPtr<UAnimMontage>> XenoCore › Reaction EditDefaultsOnly If set, each activation plays one of these at random instead of the directional montage. A profile row still overrides.
Play Rate PlayRate float XenoCore › Reaction EditDefaultsOnly, ClampMin=0.1 1.0 Play rate of the reaction montage.
Hold Until Montage Ends bHoldUntilMontageEnds bool XenoCore › Reaction EditDefaultsOnly false Hold the ability open until the montage finishes, instead of ending on the same frame.
Hold While Trigger Tag Present bHoldWhileTriggerTagPresent bool XenoCore › Reaction EditDefaultsOnly, EditCondition=bHoldUntilMontageEnds false Hold the reaction for exactly as long as the tag that triggered it stays on the ASC - not for the montage's length.
Follow Up Montage FollowUpMontage TObjectPtr<UAnimMontage> XenoCore › Reaction EditDefaultsOnly, EditCondition=bHoldUntilMontageEnds Played after the main montage, crossfaded into it. Empty means no follow-up.
Front Back Half Angle FrontBackHalfAngle float XenoCore › Reaction EditDefaultsOnly, ClampMin=5.0, ClampMax=90.0 45.0 Half-angle, in degrees, of the cone counted as front or back.

UXenoCoreGameplayAbility_RecoilReact

Class · derives from UXenoCoreGameplayAbility_DefenceReact · header XenoCoreRuntime/Public/Battle/XenoCoreGameplayAbility_DefenceReact.h · abstract

The attacker's hit was blocked - XenoCore.Event.Combat.Blocked. Owns Status.XenoCore.Defence.Recoil.

UXenoCoreGameplayAbility_ToppleReact

Class · derives from UXenoCoreGameplayAbility_KnockdownReact · header XenoCoreRuntime/Public/Battle/XenoCoreGameplayAbility_KnockdownReact.h · abstract

Status.XenoCore.Reaction.Topple arrived.

UXenoCoreStatusEffect

Class · derives from UGameplayEffect · header XenoCoreRuntime/Public/Battle/XenoCoreStatusEffect.h · Blueprintable

A status - a debuff or a buff - that knows how to present itself.

Properties

Property C++ name Type Category Specifiers Default Description
Display Name DisplayName FText Status EditDefaultsOnly, BlueprintReadOnly "Slow", "Strength Down" - the popup over the character, and the Arts menu's effect line.
Abbreviation Abbreviation FText Status EditDefaultsOnly, BlueprintReadOnly Two or three characters drawn on the HUD icon when no Icon texture is set - "slw", "str".
Colour Colour FLinearColor Status EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.6, 0.35, 0.85, 1.0) The popup's colour and the icon's fill.
Icon Icon TObjectPtr<UTexture2D> Status EditDefaultsOnly, BlueprintReadOnly Optional art for the HUD icon. Unset, the icon is the Colour with the Abbreviation on it.
Is Buff bIsBuff bool Status EditDefaultsOnly, BlueprintReadOnly false Good for whoever has it. Buffs sort after debuffs on the HUD.

UXenoCoreStatusPercentCalc

Class · derives from UGameplayModMagnitudeCalculation · header XenoCoreRuntime/Public/Battle/XenoCoreStatusPercentCalc.h

A status's strength, as a percentage the applier sends - "Agility Up 15 %".

Properties

Property C++ name Type Category Specifiers Default Description
Default Percent DefaultPercent float XenoCore › Status EditDefaultsOnly, ClampMin=0.0, UIMin=0.0 30.0 The strength, in percent, used when the applier sends no XenoCore.Status.Magnitude (30 = x1.3 for an Up, x0.7 for a Down).

UXenoCoreThreatComponent

Class · derives from UActorComponent · header XenoCoreRuntime/Public/Battle/XenoCoreThreatComponent.h

What one enemy thinks of each party member, and therefore who it attacks. XC1's aggro: damage dealt and healing done build it, arts build a temporary share that drains, damage taken lowers it, and the enemy targets whoever holds the most.

Properties

Property C++ name Type Category Specifiers Default Description
Temporary Decay Per Second TemporaryDecayPerSecond float XenoCore › Threat EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.0 75.0 XC1 Definitive Edition's rate. The original Wii release drained 60 per second.

Blueprint functions

Node Kind Signature Description
Find Threat Component Pure UXenoCoreThreatComponent* FindThreatComponent(const AActor* Actor) The threat component on an actor (an enemy), or null.
Begin Battle Callable void BeginBattle() Start a fight: every active party member at 1, the leader first, so the leader is targeted.
Reset Threat Callable void ResetThreat() Forget everyone.
Select Target Callable AActor* SelectTarget() Who to attack: the highest total, keeping the current target on a tie.
Get Current Target Pure AActor* GetCurrentTarget() const The target SelectTarget last returned, without re-evaluating.
Is Tracking Anyone Pure bool IsTrackingAnyone() const True while anyone is tracked - i.e. this enemy is in a fight.
Get Threat For Pure float GetThreatFor(const AActor* Combatant) const Total aggro Combatant holds with this enemy, or 0 if untracked.
Add Permanent Threat Callable void AddPermanentThreat(AActor* Combatant, float Amount) Add directly.
Add Temporary Threat Callable void AddTemporaryThreat(AActor* Combatant, float Amount) Add to the temporary share, which drains at Temporary Decay Per Second.

XenoCoreRuntime / Camera

UXenoCoreGameplayAbility_CameraRecentre

Class · derives from ULyraGameplayAbility · header XenoCoreRuntime/Public/Camera/XenoCoreGameplayAbility_CameraRecentre.h · abstract

R3: swing the camera back behind whoever the player is driving.

Properties

Property C++ name Type Category Specifiers Default Description
Recentre Duration RecentreDuration float XenoCore › Camera EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.0 0.35 Seconds the sweep runs. 0 or less snaps.
Recentre Interp Speed RecentreInterpSpeed float XenoCore › Camera EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.0 8.0 RInterpTo speed. Higher settles faster.
Recentre Pitch RecentrePitch float XenoCore › Camera EditDefaultsOnly, BlueprintReadOnly, ClampMin=-89.0, ClampMax=89.0 -10.0 Pitch the camera settles at, in degrees. Negative looks down onto the character.

Blueprint functions

Node Kind Signature Description
Get Recentre Rotation Pure FRotator GetRecentreRotation(const AActor* Avatar) const Where the camera ends up, given the avatar: pitch RecentrePitch, the avatar's yaw, no roll.

XenoCoreRuntime / Characters

AXenoCoreCombatantCharacter

Class · derives from ALyraCharacterWithAbilities · header XenoCoreRuntime/Public/Characters/XenoCoreCombatantCharacter.h · abstract · Blueprintable

No description.

Properties

Property C++ name Type Category Specifiers Default Description
Revive Verb ReviveVerb FText XenoCore › Party › Revive EditDefaultsOnly, BlueprintReadOnly NSLOCTEXT("XenoCore", "ReviveVerb", "Revive") The prompt's word over a downed body.
Talk Verb TalkVerb FText XenoCore › Party › Talk EditDefaultsOnly, BlueprintReadOnly NSLOCTEXT("XenoCore", "TalkVerb", "Talk") The prompt's word over a companion out of battle. Empty = not talkable.
Interact Range InteractRange float XenoCore › Interaction EditAnywhere, BlueprintReadOnly, ClampMin=0.0, Units=cm 110.0 How close the leader must be to offer Talk, in cm from the actor's origin.
Talk Max Leader Speed TalkMaxLeaderSpeed float XenoCore › Interaction EditAnywhere, BlueprintReadOnly, ClampMin=0.0, Units=cm/s 50.0 Talk is offered only while the leader moves slower than this. Stop, then walk up to the one you want.
Combatant Pawn Data CombatantPawnData TObjectPtr<const ULyraPawnData> XenoCore › Combatant EditDefaultsOnly The pawn data this combatant initialises itself from.
Combatant Level CombatantLevel int32 XenoCore › Combatant EditAnywhere, BlueprintReadOnly, ClampMin=1 1 This combatant's level.
Self Initialise Ability System bSelfInitialiseAbilitySystem bool XenoCore › Combatant EditDefaultsOnly true Run the PlayerState-less initialisation in PostInitializeComponents.
Keep Body On Death bKeepBodyOnDeath bool XenoCore › Combatant EditDefaultsOnly false Keep the body - and therefore the ASC - when this combatant dies, instead of destroying it.
Stats Effect StatsEffect TSubclassOf<UGameplayEffect> XenoCore › Combatant EditDefaultsOnly The per-type stat effect, applied at CombatantLevel.
Anim Profile AnimProfile TObjectPtr<UXenoCoreCharacterAnimProfile> XenoCore › Animation EditDefaultsOnly, BlueprintReadOnly This character's own combat clips. Empty slots fall back to the defaults.
AI Steering AISteering FXenoCoreAISteering XenoCore › Movement EditDefaultsOnly, BlueprintReadOnly How this body moves while an AI drives it. Off by default; party bodies turn it on.
Art Learn Table ArtLearnTable TSoftObjectPtr<UDataTable> XenoCore › Arts EditDefaultsOnly This character's learnset - a DataTable of XenoCoreArtUnlock rows: art, unlock level, starting slot.
Skill Tree SkillTree TSoftObjectPtr<UDataTable> XenoCore › Skills EditDefaultsOnly This character's skill tree - a DataTable of FXenoCoreSkillBranchRow, one row per branch.
Member Definition MemberDefinition TObjectPtr<UXenoCorePartyMemberDefinition> XenoCore › Party BlueprintReadOnly No description.

Blueprint functions

Node Kind Signature Description
Get Combatant Level Pure int32 GetCombatantLevel() const This combatant's level, and the X input into every stat curve.
Get Combatant Pawn Data Pure const ULyraPawnData* GetCombatantPawnData() const The PawnData this combatant initialises from, or null if it was never set.
Get Stats Effect Pure TSubclassOf<UGameplayEffect> GetStatsEffect() const The statline effect this combatant applies at its level.
Apply Authored Statline Callable void ApplyAuthoredStatline() Apply the authored statline now, for a path that did not run PostInitializeComponents' half.
Revive Callable bool Revive(float HealthFraction = 1.0f) Put a downed combatant back on its feet at HealthFraction of maximum.
Is Downed Pure bool IsDowned() const True while this combatant is down - dying or dead, but still present and revivable.
Get Member Definition Pure UXenoCorePartyMemberDefinition* GetMemberDefinition() const The roster entry this combatant is playing, or null if it is not a party character.
Get Member Display Name Pure FText GetMemberDisplayName() const The name shown on HUD plates and the Party screen.
Resolve Effective Level Pure int32 ResolveEffectiveLevel() const The level this pawn should actually run at.

FXenoCoreAISteering

Struct · header XenoCoreRuntime/Public/Characters/XenoCoreCombatantCharacter.h · BlueprintType

How a body moves while an AI drives it. Opt-in; the player's possession restores the authored values.

Properties

Property C++ name Type Category Specifiers Default Description
Enabled bEnabled bool AI Steering EditAnywhere, BlueprintReadOnly false Off = the authored movement, whoever drives.
Rotation Rate Yaw RotationRateYaw float AI Steering EditAnywhere, BlueprintReadOnly, ClampMin=30, EditCondition=bEnabled, Units=DegreesPerSecond 420.0 Turn rate while AI-driven. The player's is usually far higher.
Max Acceleration MaxAcceleration float AI Steering EditAnywhere, BlueprintReadOnly, ClampMin=100, EditCondition=bEnabled 1500.0 How fast it reaches speed - lower is a heavier start.
Braking Deceleration Walking BrakingDecelerationWalking float AI Steering EditAnywhere, BlueprintReadOnly, ClampMin=100, EditCondition=bEnabled 1100.0 How fast it stops when nothing pushes it - lower is a longer, softer stop.

UXenoCoreCosmeticStatics

Class · derives from UBlueprintFunctionLibrary · header XenoCoreRuntime/Public/Characters/XenoCoreCosmeticStatics.h

Checks and guards Lyra's cosmetic body-mesh selection, so a cosmetic part cannot hide its pawn.

Blueprint functions

Node Kind Signature Description
Ensure Body Mesh Fallback Callable bool EnsureBodyMeshFallback(ACharacter* Character) If the character's body-mesh rules have no default mesh, uses the mesh it currently has, so a cosmetic part matching no rule cannot make it invisible.
Get Body Mesh For Part Pure USkeletalMesh* GetBodyMeshForPart(const AActor* Pawn, TSubclassOf<AActor> PartClass) The body mesh a cosmetic part of this class would select on this pawn.
Get Cosmetic Part Tags Pure FGameplayTagContainer GetCosmeticPartTags(TSubclassOf<AActor> PartClass) The gameplay tags a cosmetic part of this class contributes.

UXenoCoreHealthComponent

Class · derives from ULyraHealthComponent · header XenoCoreRuntime/Public/Characters/XenoCoreHealthComponent.h · Blueprintable

A ULyraHealthComponent that can be brought back.

Blueprint functions

Node Kind Signature Description
Revive Callable bool Revive(float HealthFraction = 1.0f) Return a downed combatant to the living, at HealthFraction of its maximum.

UXenoCoreHeroComponent

Class · derives from ULyraHeroComponent · header XenoCoreRuntime/Public/Characters/XenoCoreHeroComponent.h · Blueprintable

ULyraHeroComponent that binds the pawn's ability system instead of the PlayerState's.

XenoCoreRuntime / Debug

AXenoCoreTestInteractable

Class · derives from AXenoCoreInteractableActor · header XenoCoreRuntime/Public/Debug/XenoCoreTestInteractable.h

No description.

UXenoCoreSystemCheats

Class · derives from UCheatManagerExtension · header XenoCoreRuntime/Public/Debug/XenoCoreSystemCheats.h

The equipment, party, quest and save console commands, each forwarding to the component or subsystem that does the work.

UXenoCoreTestRunner

Class · derives from UTickableWorldSubsystem · header XenoCoreRuntime/Public/Debug/XenoCoreTestRunner.h

No description.

UXenoCoreTestSaveProbe

Class · derives from UObject · header XenoCoreRuntime/Public/Debug/XenoCoreTestSaveProbe.h

No description.

XenoCoreRuntime / Dialogue

AXenoCoreDialogueAnchor

Class · derives from AActor · header XenoCoreRuntime/Public/Dialogue/XenoCoreDialogueAnchor.h

Carries the dialogue box, attached to whoever is speaking.

Properties

Property C++ name Type Category Specifiers Default Description
Box Component BoxComponent TObjectPtr<UWidgetComponent> XenoCore › Dialogue VisibleAnywhere, BlueprintReadOnly No description.
Box Widget Class BoxWidgetClass TSubclassOf<UUserWidget> XenoCore › Dialogue EditDefaultsOnly The dialogue box widget. Empty uses Project Settings > XenoCore UI > Dialogue Box.
Box Height BoxHeight float XenoCore › Dialogue EditDefaultsOnly, ClampMin=0, UIMin=0 120.0 How far above the speaker's origin the box's bottom edge sits.

EXenoCoreDialogueSpeaker

Enum · header XenoCoreRuntime/Public/Dialogue/XenoCoreDialogueTypes.h · BlueprintType

Which actor a line is anchored over.

Value Shown as Description
Npc Npc The actor the player interacted with. Resolved by the subsystem, never passed per line.
Player Player The player's own pawn - a reply, a thought, a party member's aside.

FXenoCoreDialogueLine

Struct · header XenoCoreRuntime/Public/Dialogue/XenoCoreDialogueTypes.h · BlueprintType

One line of dialogue: who is talking, and what they say.

Properties

Property C++ name Type Category Specifiers Default Description
Speaker Speaker FText XenoCore › Dialogue EditAnywhere, BlueprintReadWrite The name on the plate. Empty carries the previous line's speaker forward.
Line Line FText XenoCore › Dialogue EditAnywhere, BlueprintReadWrite One sentence.
Source Source EXenoCoreDialogueSpeaker XenoCore › Dialogue EditAnywhere, BlueprintReadWrite EXenoCoreDialogueSpeaker::Npc Whose head the box floats over.

UXenoCoreDialogueFramingCameraNode

Class · derives from UCameraNode · header XenoCoreRuntime/Public/Dialogue/XenoCoreDialogueFramingCameraNode.h

Frames the player and whoever they are talking to. Use in CameraRig_XenoCore_Dialogue.

Properties

Property C++ name Type Category Specifiers Default Description
Focus Bias FocusBias float Framing EditAnywhere, ClampMin=0.0, ClampMax=1.0 0.6 Where the camera looks: 0 = the player's head, 1 = the other speaker's head.
Aim Height AimHeight float Framing EditAnywhere, Units=cm 0.0 Aims this far above the heads, so the box over them sits in frame without the camera backing off.
Distance Distance float Framing EditAnywhere, ClampMin=50.0, Units=cm 250.0 How far the camera starts from the point it looks at. It moves back from here only if both speakers would not fit.
Max Distance MaxDistance float Framing EditAnywhere, ClampMin=50.0, Units=cm 650.0 The furthest the camera may move back to fit both speakers.
Orbit Angle OrbitAngle float Framing EditAnywhere, ClampMin=0.0, ClampMax=180.0, Units=deg 150.0 The angle around the speakers: 180 = straight behind the player, 90 = side-on. Smaller shows more of the player's face.
Left Shoulder bLeftShoulder bool Framing EditAnywhere false Over the player's left shoulder instead of the right.
Elevation Elevation float Framing EditAnywhere, ClampMin=-30.0, ClampMax=60.0, Units=deg 12.0 How far above the speakers the camera sits, looking down.
Box Headroom BoxHeadroom float Framing › Fit EditAnywhere, ClampMin=0.0, Units=cm 60.0 Room kept above each head for the dialogue box when fitting the shot.
Screen Fill ScreenFill float Framing › Fit EditAnywhere, ClampMin=0.2, ClampMax=1.0 0.85 How much of the screen the speakers may span: 1 = edge to edge.
Aspect Ratio AspectRatio float Framing › Fit EditAnywhere, ClampMin=0.5 16.0 / 9.0 The screen shape the fit assumes.
Avoid Walls bAvoidWalls bool Collision EditAnywhere true Pulls the camera in front of walls and rocks between it and the speakers.
Min Distance MinDistance float Collision EditAnywhere, ClampMin=0.0, EditCondition=bAvoidWalls, Units=cm 120.0 The closest a wall may pull the camera in to the speakers.
Collision Radius CollisionRadius float Collision EditAnywhere, ClampMin=0.0, EditCondition=bAvoidWalls, Units=cm 15.0 The camera's collision size.

UXenoCoreDialogueSubsystem

Class · derives from UWorldSubsystem · header XenoCoreRuntime/Public/Dialogue/XenoCoreDialogueSubsystem.h

Shows one sentence at a time and waits for A.

Blueprint functions

Node Kind Signature Description
Show Bark Callable void ShowBark(AActor* SpeakerActor, const FText& Line, float Duration) Shows one line over SpeakerActor that closes itself after Duration seconds (talk-to-ally, voiced remarks).
Is Active Pure bool IsActive() const True while a line is on screen.
Close Callable void Close() Takes the box down and hands the player back their controls.
Close Dialogue Callable void CloseDialogue() Closes the dialogue box and gives the player back movement and camera.
Set Box Suppressed Callable void SetBoxSuppressed(bool bSuppressed) Hides the box without ending the conversation, for a panel that opens on top of it.

UXenoCorePlayDialogue

Class · derives from UBlueprintAsyncActionBase · header XenoCoreRuntime/Public/Dialogue/XenoCoreDialogueNodes.h

"Play Dialogue" - a whole run of lines from an array, then closes the box.

Events you can bind

Event Type Description
Completed FXenoCoreDialoguePin Fires once the last line has been advanced past and the box has closed.

Blueprint functions

Node Kind Signature Description
Play Dialogue Latent node factory UXenoCorePlayDialogue* PlayDialogue(const TArray<FXenoCoreDialogueLine>& Lines) Play every line in order, then close.

UXenoCoreShowDialogue

Class · derives from UBlueprintAsyncActionBase · header XenoCoreRuntime/Public/Dialogue/XenoCoreDialogueNodes.h

"Show Dialogue" - one sentence, one node, an exec pin that fires when the player presses A. Does not close the box: end the chain with Close Dialogue.

Events you can bind

Event Type Description
Advanced FXenoCoreDialoguePin Fires when the player advances past this line.

Blueprint functions

Node Kind Signature Description
Show Dialogue Latent node factory UXenoCoreShowDialogue* ShowDialogue(FText Speaker, FText Line, EXenoCoreDialogueSpeaker Source = EXenoCoreDialogueSpeaker::Npc) Show one sentence and wait for A.

XenoCoreRuntime / Enemies

AXenoCoreEnemyCharacter

Class · derives from ALyraCharacterWithAbilities · header XenoCoreRuntime/Public/Enemies/XenoCoreEnemyCharacter.h · Blueprintable

No description.

Properties

Property C++ name Type Category Specifiers Default Description
Enemy Pawn Data EnemyPawnData TObjectPtr<const ULyraPawnData> XenoCore › Enemy EditDefaultsOnly The pawn data this enemy initialises itself from.
Enemy Level EnemyLevel int32 XenoCore › Enemy EditAnywhere, BlueprintReadOnly, ClampMin=1 1 This enemy's level, and the X input into every stat curve.
Display Name DisplayName FText XenoCore › Enemy EditAnywhere, BlueprintReadOnly Shown on the target badge. Per-instance so a unique monster is just a renamed placement.
Experience Reward ExperienceReward int32 XenoCore › Enemy EditAnywhere, BlueprintReadOnly, ClampMin=0 24 Base EXP for defeating this enemy, before the level-difference multiplier.
Experience Level Scale ExperienceLevelScale FCurveTableRowHandle XenoCore › Enemy EditAnywhere, BlueprintReadOnly Scales ExperienceReward by this enemy's level. Empty = flat.
Skill Point Multiplier SkillPointMultiplier float XenoCore › Enemy EditAnywhere, BlueprintReadOnly, ClampMin=0.0 1.0 Scales the SP this enemy's level band pays - the band itself is the progression component's DT_XenoCore_SkillPointRewards, so this is the only per-enemy SP knob.
Art Point Reward ArtPointReward int32 XenoCore › Enemy EditAnywhere, BlueprintReadOnly, ClampMin=-1 -1 AP this enemy pays before the level-difference multiplier. -1 (the default) uses XC1's formula, 2 x level + 2 (UXenoCoreProgressionComponent::ArtPointsPerEnemyLevel). Set it for a Unique or a boss that should pay differently.
Engage Radius Override EngageRadiusOverride float XenoCore › AI EditAnywhere, BlueprintReadOnly, ClampMin=-1.0, UIMin=-1.0 -1.0 Engage radius for this enemy, in cm. -1 uses the controller's Engage Radius.
Patrol Points PatrolPoints TArray<FVector> XenoCore › AI › Patrol EditAnywhere, BlueprintReadWrite Points to walk between while unprovoked, relative to where the enemy was placed. Drag them in the viewport.
Patrol Speed PatrolSpeed float XenoCore › AI › Patrol EditAnywhere, BlueprintReadOnly, ClampMin=0.0, Units=CentimetersPerSecond 105.0 Walking speed on patrol, cm/s. 105 is the minion walk clip's own speed, measured from its foot travel; faster blends toward the jog.
Arts Arts TArray<TObjectPtr<class UXenoCoreArtDefinition>> XenoCore › Enemy › Arts EditAnywhere, BlueprintReadOnly This enemy's arts - the same art definitions the party uses, granted at level 1.
AI Profile AIProfile FXenoCoreCombatAIProfile XenoCore › Enemy › Arts EditAnywhere, BlueprintReadOnly How this enemy fights: decision pace, post-art cooldown and positioning. Same fields as a companion's.
Patrol Wait PatrolWait float XenoCore › AI › Patrol EditAnywhere, BlueprintReadOnly, ClampMin=0.0, Units=Seconds 2.0 Seconds to stand at each end of the route before turning back. Wandering waits a random 0.5x-1.5x of it.
Wander Radius WanderRadius float XenoCore › AI › Patrol EditAnywhere, BlueprintReadOnly, ClampMin=0.0, Units=Centimeters 0.0 With no Patrol Points: wander to random spots this far from home, pausing between. 0 = stand still.
Detection Detection EXenoCoreEnemyDetection XenoCore › AI › Detection EditAnywhere, BlueprintReadOnly EXenoCoreEnemyDetection::None How this enemy notices the party before being attacked. None = fights only when attacked.
Sight Radius SightRadius float XenoCore › AI › Detection EditAnywhere, BlueprintReadOnly, ClampMin=0.0, EditCondition=Detection == EXenoCoreEnemyDetection::Sight, Units=Centimeters 1400.0 Sight: how far it sees. Keep inside the engage radius or it notices you and stands there.
Sight Half Angle SightHalfAngle float XenoCore › AI › Detection EditAnywhere, BlueprintReadOnly, ClampMin=1.0, ClampMax=180.0, EditCondition=Detection == EXenoCoreEnemyDetection::Sight, Units=Degrees 55.0 Sight: half the view cone, in degrees. 180 sees in every direction (XC1's bosses).
Sound Radius SoundRadius float XenoCore › AI › Detection EditAnywhere, BlueprintReadOnly, ClampMin=0.0, EditCondition=Detection == EXenoCoreEnemyDetection::Sound, Units=Centimeters 1000.0 Sound: how far a running leader is heard.
Ether Radius EtherRadius float XenoCore › AI › Detection EditAnywhere, BlueprintReadOnly, ClampMin=0.0, EditCondition=Detection == EXenoCoreEnemyDetection::Ether, Units=Centimeters 1500.0 Ether: how far away an ether art is felt.
Unique Monster bUniqueMonster bool XenoCore › Enemy EditAnywhere, BlueprintReadOnly false A Unique Monster: ignores the six-level rule and wears a gold, named label. Set Always Gold Chest too.
Leash Radius Override LeashRadiusOverride float XenoCore › AI EditAnywhere, BlueprintReadOnly, ClampMin=-1.0, UIMin=-1.0 -1.0 Leash radius for this enemy, in cm, measured from where it started. -1 uses the controller's Leash Radius.
Disengage Radius Scale Override DisengageRadiusScaleOverride float XenoCore › AI EditAnywhere, BlueprintReadOnly, ClampMin=-1.0, UIMin=-1.0 -1.0 How much wider the stay-engaged radius is than the engage radius, for this enemy. -1 uses the controller's Disengage Radius Scale. Values from 0 to 1 are treated as 1.
Stats Effect StatsEffect TSubclassOf<UGameplayEffect> XenoCore › Enemy EditDefaultsOnly The per-type stat effect, applied at EnemyLevel.
Drop Table DropTable TObjectPtr<const UXenoCoreDropTable> XenoCore › Loot EditDefaultsOnly What this enemy leaves behind, and the odds of each chest tier.
Always Gold Chest bAlwaysGoldChest bool XenoCore › Loot EditAnywhere, BlueprintReadOnly false Unique Monsters always drop a gold chest, whatever the table's odds say.
Chest Class ChestClass TSubclassOf<AXenoCoreTreasureChest> XenoCore › Loot EditDefaultsOnly The chest Blueprint to spawn. One class for all three tiers - the tier is a material parameter the chest sets in K2_OnTierSet, not three separate actors.
Chest Drop Delay ChestDropDelay float XenoCore › Enemy › Loot EditAnywhere, BlueprintReadOnly, ClampMin=0.0 2.0 How long after death the dropped chest stays invisible and unopenable.
Chest Spawn Height ChestSpawnHeight float XenoCore › Loot EditDefaultsOnly, ClampMin=0.0 0.0 Clearance above the floor the chest is spawned at.
Death Effect DeathEffect TSoftObjectPtr<UNiagaraSystem> XenoCore › Death EditDefaultsOnly Played where the body was, as it disappears. Null is fine - the corpse just vanishes, which is stock Lyra behaviour.
Death Effect Scale DeathEffectScale float XenoCore › Death EditDefaultsOnly, ClampMin=0.01 1.0 Uniform scale for that effect, since one system has to cover minions and bosses alike.
Death Montages DeathMontages TArray<TObjectPtr<UAnimMontage>> XenoCore › Death EditDefaultsOnly One of these plays on death before the body goes limp. Empty means ragdoll immediately.
Anim Profile AnimProfile TObjectPtr<UXenoCoreCharacterAnimProfile> XenoCore › Animation EditDefaultsOnly, BlueprintReadOnly This character's own combat clips. Empty slots fall back to the defaults.
Ragdoll Delay Min RagdollDelayMin float XenoCore › Death EditDefaultsOnly, ClampMin=0.0 0.1 The randomised beat between the montage starting and the body going limp. Player: 0.1-0.6.
Ragdoll Delay Max RagdollDelayMax float XenoCore › Death EditDefaultsOnly, ClampMin=0.0 0.6 Upper end of the randomised beat between the death montage starting and the ragdoll.
Ragdoll Impulse Bone RagdollImpulseBone FName XenoCore › Death EditDefaultsOnly FName("Pelvis") Where the death impulse lands, and how hard. The player's values.
Ragdoll Impulse Strength RagdollImpulseStrength float XenoCore › Death EditDefaultsOnly, ClampMin=0.0 500.0 Strength of the impulse applied to the ragdoll bone on death.
Death Vanish Delay DeathVanishDelay float XenoCore › Death EditDefaultsOnly, ClampMin=0.0 1.2 How long the corpse lies there before it goes.
Chevron Component ChevronComponent TObjectPtr<UWidgetComponent> XenoCore › Enemy VisibleAnywhere, BlueprintReadOnly The small grey chevron floating over every enemy.
Chevron Widget Class ChevronWidgetClass TSubclassOf<UUserWidget> XenoCore › Enemy EditDefaultsOnly The widget drawn over every enemy: a plain chevron, or a level label (UXenoCoreEnemyLabelBase).
Health Bar Component HealthBarComponent TObjectPtr<UWidgetComponent> XenoCore › Enemy VisibleAnywhere, BlueprintReadOnly Overhead HP bar. Separate from the chevron on purpose: the chevron is a 64x64 marker saying "this is an enemy", the bar is a readout of one pawn's health.
Threat Component ThreatComponent TObjectPtr<UXenoCoreThreatComponent> XenoCore › Enemy VisibleAnywhere, BlueprintReadOnly Who this enemy is angry with, and how much - XC1's aggro. Every enemy fights by it, so it is built here rather than added per Blueprint.
Aggro Indicator AggroIndicator TObjectPtr<UXenoCoreAggroIndicatorComponent> XenoCore › Enemy VisibleAnywhere, BlueprintReadOnly The red ring under this enemy's target and the line to it, while it fights. Presentation only.
Health Bar Widget Class HealthBarWidgetClass TSubclassOf<UUserWidget> XenoCore › Enemy EditDefaultsOnly The widget drawn as this enemy's overhead health bar.
Health Bar Height HealthBarHeight float XenoCore › Enemy EditDefaultsOnly 100.0 Height of the bar above the actor origin. Above the capsule, below the chevron.
Label Tick Check Interval LabelTickCheckInterval float XenoCore › Enemy EditDefaultsOnly, ClampMin=0.05, Units=Seconds 0.4 Seconds between label range checks.
Chevron Height ChevronHeight float XenoCore › Enemy EditDefaultsOnly 132.0 Height above the actor origin. The capsule is 90 half-height, so this floats clear of it.
Label Height LabelHeight float XenoCore › Enemy EditDefaultsOnly 112.0 Height of the bottom of the level label above the actor origin. Above the health bar.

Blueprint functions

Node Kind Signature Description
Get Enemy Level Pure int32 GetEnemyLevel() const This enemy's level, as authored on the placed instance.
Set Enemy Level Callable void SetEnemyLevel(int32 NewLevel) Re-levels a live enemy: sets EnemyLevel and re-applies its statline at it (a full heal, as on spawn).
Get Enemy Display Name Pure const FText& GetEnemyDisplayName() const The name shown on the target badge.
Get Experience Reward Pure int32 GetExperienceReward() const EXP granted to the party when this enemy dies, before level-difference scaling: ExperienceReward x ExperienceLevelScale at EnemyLevel (or ExperienceReward alone, if no row is set).
Get Art Point Reward Pure int32 GetArtPointReward() const AP before the level-difference multiplier; negative = XC1's formula.
Get Skill Point Multiplier Pure float GetSkillPointMultiplier() const Multiplies the SP this enemy's level band pays.
Get Engage Radius Override Pure float GetEngageRadiusOverride() const This enemy's own engage radius, or a negative value to use its controller's.
Get Patrol Route Pure TArray<FVector> GetPatrolRoute() const The patrol route in world space: where the enemy was placed, then each Patrol Point.
Get Leash Radius Override Pure float GetLeashRadiusOverride() const This enemy's own leash radius, or a negative value to use its controller's.
Get Disengage Radius Scale Override Pure float GetDisengageRadiusScaleOverride() const This enemy's own disengage scale, or a negative value to use its controller's.
Get Detection Pure EXenoCoreEnemyDetection GetDetection() const How this enemy notices the party before being attacked.
Is Unique Monster Pure bool IsUniqueMonster() const A Unique Monster: named, gold label, ignores the six-level rule.
Get Wander Radius Pure float GetWanderRadius() const Radius this enemy wanders inside while unprovoked and without a patrol route.
Get Wander Center Pure FVector GetWanderCenter() const Where wandering is centred: the spawner's location for a spawned squad, else where this enemy started.
Get Owning Spawner Pure class AXenoCoreEnemySpawner* GetOwningSpawner() const The spawner that made this enemy, or null for a hand-placed one.
Is Defeated Pure bool IsDefeated() const True while this enemy is dead or dying.

AXenoCoreEnemyController

Class · derives from AModularAIController · header XenoCoreRuntime/Public/Enemies/XenoCoreEnemyController.h · Blueprintable

The AI controller enemies are possessed by. It carries the enemy's team; the behaviour itself lives in a StateTree on the pawn's StateTree AI component. Set the team before possession: the pawn reads it once, when it is possessed.

Properties

Property C++ name Type Category Specifiers Default Description
Detection Interval DetectionInterval float XenoCore › AI › Detection EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.05 0.2 Seconds between detection checks.
Running Speed RunningSpeed float XenoCore › AI › Detection EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.0, Units=CentimetersPerSecond 280.0 Sound detection only hears a leader moving faster than this.
Heal On Give Up bHealOnGiveUp bool XenoCore › AI EditDefaultsOnly, BlueprintReadOnly true Restore full health when this enemy gives up a fight.
Provoked Give Up Seconds ProvokedGiveUpSeconds float XenoCore › AI EditDefaultsOnly, BlueprintReadOnly, ClampMin=0 10.0 Seconds a provoked enemy that never engaged waits with nobody in reach before it gives up (and heals).
Engage Radius EngageRadius float XenoCore › AI EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.0 1600.0 Enemy notices the player inside this. The default for every enemy this controller possesses; an enemy can override it with its own Engage Radius Override.
Leash Radius LeashRadius float XenoCore › AI EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.0 7000.0 Beyond this distance from home the enemy gives up and walks back. Measured from home, not from the player, so a kited enemy cannot be led across the whole zone.
Disengage Radius Scale DisengageRadiusScale float XenoCore › AI EditDefaultsOnly, BlueprintReadOnly, ClampMin=1.0 2.5 An engaged enemy stays engaged out to Engage Radius times this, so one standing on the edge does not flicker in and out of the fight. An enemy can override it with its own Disengage Radius Scale Override.
Ignore When Levels Below IgnoreWhenLevelsBelow int32 XenoCore › AI EditDefaultsOnly, BlueprintReadOnly, ClampMin=1 6 Enemies ignore the party entirely when the leader is this many levels above them, and only fight if attacked first. bAlwaysAggro is the exception for uniques and bosses.
Always Aggro bAlwaysAggro bool XenoCore › AI EditDefaultsOnly, BlueprintReadOnly false Skip the level rule: this enemy detects the party whatever the level gap. For uniques and bosses.
Team Id TeamId int32 XenoCore › Teams EditDefaultsOnly, BlueprintReadOnly 2 The team every enemy using this controller belongs to. An int32 rather than FGenericTeamId because that is what ULyraTeamSubsystem speaks and what Lyra's team assets are keyed on.

Blueprint functions

Node Kind Signature Description
Get Aggro Target Pure AActor* GetAggroTarget() const The actor this enemy should be fighting, or null to stand down.
Notify Provoked Callable void NotifyProvoked() Enter combat.
Reset Aggro Callable void ResetAggro() Forget the fight: not engaged, not provoked.
Is Provoked Pure bool IsProvoked() const True once this enemy has been attacked or has detected the party, until it gives up.
Is Engaged Pure bool IsEngaged() const True once engaged, until the leash breaks or the enemy dies.
Get Home Location Pure FVector GetHomeLocation() const Where this enemy started.
Get Effective Engage Radius Pure float GetEffectiveEngageRadius() const The engage radius in force for the possessed enemy: its own override, else Engage Radius.
Get Effective Leash Radius Pure float GetEffectiveLeashRadius() const The leash radius in force for the possessed enemy: its own override, else Leash Radius.
Get Effective Disengage Radius Scale Pure float GetEffectiveDisengageRadiusScale() const The disengage scale in force for the possessed enemy: its own override, else Disengage Radius Scale.

AXenoCoreEnemySpawner

Class · derives from AActor · header XenoCoreRuntime/Public/Enemies/XenoCoreEnemySpawner.h · Blueprintable

Keeps a squad of enemies alive here and respawns them after they fall, out of the party's sight. One spawner is one squad: its members wander round it, fight together, and only the last kill drops a chest.

Properties

Property C++ name Type Category Specifiers Default Description
Members Members TArray<FXenoCoreSpawnerEntry> XenoCore › Spawner EditAnywhere, BlueprintReadOnly What this spawner keeps alive. Mix entries for a mixed squad.
Spawn Radius SpawnRadius float XenoCore › Spawner EditAnywhere, BlueprintReadOnly, ClampMin=0.0, Units=Centimeters 400.0 Members appear at random reachable spots within this of the spawner.
Wander Radius WanderRadius float XenoCore › Spawner EditAnywhere, BlueprintReadOnly, ClampMin=0.0, Units=Centimeters 1200.0 While unprovoked, members wander to random spots this far from the spawner. 0 = they stand where they spawned.
Link Aggro bLinkAggro bool XenoCore › Spawner › Squad EditAnywhere, BlueprintReadOnly true Link aggro: when one member is provoked, the others join.
Link Radius LinkRadius float XenoCore › Spawner › Squad EditAnywhere, BlueprintReadOnly, ClampMin=0.0, EditCondition=bLinkAggro, Units=Centimeters 2500.0 Link aggro reaches members within this of the provoked one. 0 = the whole squad wherever it is.
Squad Loot Rule bSquadLootRule bool XenoCore › Spawner › Squad EditAnywhere, BlueprintReadOnly true Only the last member killed drops a chest: gold at Squad Gold Multiplier x the odds, else silver, filled from the leader's (first member's) drop table.
Squad Gold Multiplier SquadGoldMultiplier float XenoCore › Spawner › Squad EditAnywhere, BlueprintReadOnly, ClampMin=0.0, EditCondition=bSquadLootRule 3.0 The squad chest's gold chance is the leader's table's Gold Chance times this. XC1: 3.
Unique Monster bUniqueMonster bool XenoCore › Spawner › Unique EditAnywhere, BlueprintReadOnly false Make every member a Unique Monster: gold named label, gold chest, ignores the six-level rule.
Unique Name UniqueName FText XenoCore › Spawner › Unique EditAnywhere, BlueprintReadOnly, EditCondition=bUniqueMonster The Unique Monster's name. Empty keeps the Blueprint's Display Name.
Respawn bRespawn bool XenoCore › Spawner › Respawn EditAnywhere, BlueprintReadOnly true Bring fallen members back. Off = they stay dead until the spawner streams out and in again.
Respawn Delay RespawnDelay float XenoCore › Spawner › Respawn EditAnywhere, BlueprintReadOnly, ClampMin=1.0, EditCondition=bRespawn, Units=Seconds 90.0 Seconds after a member falls before it may come back.
Respawn Chance RespawnChance float XenoCore › Spawner › Respawn EditAnywhere, BlueprintReadOnly, ClampMin=0.0, ClampMax=1.0, EditCondition=bRespawn 1.0 Chance each attempt actually respawns; a miss waits another Respawn Delay. XC1's uniques: 0.3.
Hidden Distance HiddenDistance float XenoCore › Spawner › Respawn EditAnywhere, BlueprintReadOnly, ClampMin=0.0, EditCondition=bRespawn, Units=Centimeters 5000.0 A respawn is always allowed when the party leader is at least this far away.
Behind Camera Min Distance BehindCameraMinDistance float XenoCore › Spawner › Respawn EditAnywhere, BlueprintReadOnly, ClampMin=0.0, EditCondition=bRespawn, Units=Centimeters 1800.0 Closer than Hidden Distance, a respawn is allowed only behind the camera and beyond this.
On Screen Half Angle OnScreenHalfAngle float XenoCore › Spawner › Respawn EditAnywhere, BlueprintReadOnly, ClampMin=0.0, ClampMax=180.0, EditCondition=bRespawn, Units=Degrees 65.0 Half-angle of the camera's view counted as "on screen" for that test.
Poll Interval PollInterval float XenoCore › Spawner › Respawn EditDefaultsOnly, ClampMin=0.1 1.0 Seconds between respawn checks.
Wander Preview WanderPreview TObjectPtr<USphereComponent> XenoCore › Spawner VisibleAnywhere Editor only: the wander radius, drawn.
Sprite Sprite TObjectPtr<UBillboardComponent> XenoCore › Spawner VisibleAnywhere Editor only: the spawner's icon in the level.

Blueprint functions

Node Kind Signature Description
Get Squad Size Pure int32 GetSquadSize() const How many enemies this spawner keeps alive.
Get Living Members Pure TArray<AXenoCoreEnemyCharacter*> GetLivingMembers() const The members alive right now.
Respawn All Now Callable void RespawnAllNow() Respawn every fallen member now, ignoring the timer and the out-of-sight rule.

EXenoCoreEnemyDetection

Enum · header XenoCoreRuntime/Public/Enemies/XenoCoreEnemyCharacter.h · BlueprintType

How this enemy notices the party before being attacked.

Value Shown as Description
None None Non-aggressive: fights only when attacked.
Sight Sight Starts a fight when the party leader enters its view cone.
Sound Sound Starts a fight when the party leader runs nearby. Walking is quiet enough to pass.
Ether Ether Starts a fight when the party uses an ether art nearby - even a harmless one.

FXenoCoreEnemyDefeatedMessage

Struct · header XenoCoreRuntime/Public/Enemies/XenoCoreEnemyCharacter.h · BlueprintType

Broadcast on XenoCore.Enemy.Message.Defeated the moment a kill is real.

Properties

Property C++ name Type Category Specifiers Default Description
Enemy Class EnemyClass TSubclassOf<AActor> XenoCore › Enemy BlueprintReadOnly What died. Matched with IsChildOf, so an objective can name a base class.
Display Name DisplayName FText XenoCore › Enemy BlueprintReadOnly The enemy's name as shown on its target badge. Empty if none was authored.
Level Level int32 XenoCore › Enemy BlueprintReadOnly 1 The enemy's level when it died.

FXenoCoreLevelColourBand

Struct · header XenoCoreRuntime/Public/Enemies/XenoCoreEnemySettings.h · BlueprintType

One rung of the level-difference colour ladder.

Properties

Property C++ name Type Category Specifiers Default Description
Min Level Difference MinLevelDifference int32 XenoCore › Enemy EditAnywhere, BlueprintReadOnly 0 Applies when (enemy level - party leader level) is at least this. Bands are checked highest first.
Colour Colour FLinearColor XenoCore › Enemy EditAnywhere, BlueprintReadOnly FLinearColor::White The level text colour for this band.

FXenoCoreSpawnerEntry

Struct · header XenoCoreRuntime/Public/Enemies/XenoCoreEnemySpawner.h · BlueprintType

One kind of enemy a spawner keeps alive, and how many of it.

Properties

Property C++ name Type Category Specifiers Default Description
Enemy Class EnemyClass TSubclassOf<AXenoCoreEnemyCharacter> XenoCore › Spawner EditAnywhere, BlueprintReadOnly The enemy Blueprint to spawn.
Count Count int32 XenoCore › Spawner EditAnywhere, BlueprintReadOnly, ClampMin=1, ClampMax=12 1 How many of it.
Min Level MinLevel int32 XenoCore › Spawner EditAnywhere, BlueprintReadOnly, ClampMin=1, ClampMax=99 1 Each one rolls a level between these, inclusive.
Max Level MaxLevel int32 XenoCore › Spawner EditAnywhere, BlueprintReadOnly, ClampMin=1, ClampMax=99 1 The highest level a member can roll.

UXenoCoreEnemySettings

Class · derives from UDeveloperSettings · header XenoCoreRuntime/Public/Enemies/XenoCoreEnemySettings.h

How enemy levels read over their heads and on the target badge. Project Settings > Game > XenoCore Enemies.

Properties

Property C++ name Type Category Specifiers Default Description
Level Format LevelFormat FText Level Label Config, EditAnywhere The level text. {0} is the level.
Unique Format UniqueFormat FText Level Label Config, EditAnywhere A Unique Monster's label. {0} is the level, {1} its name.
Level Colour Bands LevelColourBands TArray<FXenoCoreLevelColourBand> Level Label Config, EditAnywhere Level colour by (enemy level - party leader level). Highest Min Level Difference first; the first match wins.
Fallback Level Colour FallbackLevelColour FLinearColor Level Label Config, EditAnywhere FLinearColor::White Used when no band matches.
Unique Chevron Colour UniqueChevronColour FLinearColor Level Label Config, EditAnywhere FLinearColor(1.0, 0.78, 0.25, 1.0) A Unique Monster's chevron.
Label Show Distance LabelShowDistance float Level Label Config, EditAnywhere, ClampMin=0.0, Units=Centimeters 2500.0 The label is fully shown inside this distance from the camera. Always shown while the enemy is in battle.
Label Fade Distance LabelFadeDistance float Level Label Config, EditAnywhere, ClampMin=1.0, Units=Centimeters 800.0 ...and fades out over this much further.
Unique Label Show Distance UniqueLabelShowDistance float Level Label Config, EditAnywhere, ClampMin=0.0, Units=Centimeters 6000.0 A Unique Monster's label is visible from this far, so the player sees it coming.

UXenoCoreEnemyStatics

Class · derives from UBlueprintFunctionLibrary · header XenoCoreRuntime/Public/Enemies/XenoCoreEnemyStatics.h

How an enemy's level reads: its text and its colour against the party leader. The overhead label and the target badge both ask here, so they always agree. The ladder is XenoCore Enemies settings.

Blueprint functions

Node Kind Signature Description
Get Party Leader Level Pure int32 GetPartyLeaderLevel() The party leader's level, which every enemy level is measured against.
Get Level Colour Pure FLinearColor GetLevelColour(int32 EnemyLevel) The colour this level reads in, from the XenoCore Enemies level colour ladder.
Get Enemy Level Text Pure FText GetEnemyLevelText(const AXenoCoreEnemyCharacter* Enemy) "lvl.N" (or "Name lvl.N" for a Unique Monster), per XenoCore Enemies settings.

XenoCoreRuntime / Equipment

EXenoCoreEquipBlocker

Enum · header XenoCoreRuntime/Public/Equipment/XenoCoreEquipmentComponent.h · BlueprintType

Why a pairing was refused, not merely that it was.

Value Shown as Description
None None It would equip.
NoItem No Item No item, or Count passed as a slot.
NotEquippable Not Equippable No UInventoryFragment_EquippableItem, or one naming no equipment definition.
WrongSlot Wrong Slot Its own UXenoCoreFragment_EquipSlots does not list this slot.
WornInAnotherSlot Worn In Another Slot This character already wears it somewhere else. One instance, one slot.
WornByAnother Worn By Another Another character wears it.
WrongWeaponType Wrong Weapon Type XC1's weapon lock: this character cannot wield this kind of weapon.

EXenoCoreEquipSlot

Enum · header XenoCoreRuntime/Public/Equipment/XenoCoreEquipmentComponent.h · BlueprintType

XC1's equipment slots. One weapon and five pieces of armour, per character.

Value Shown as Description
Weapon Weapon No description.
Head Head No description.
Chest Chest No description.
Arms Arms No description.
Legs Legs No description.
Feet Feet No description.

FXenoCoreEquipmentSlotChangedMessage

Struct · header XenoCoreRuntime/Public/Equipment/XenoCoreEquipmentComponent.h · BlueprintType

Broadcast whenever a slot's contents change - equipped, swapped or emptied.

Properties

Property C++ name Type Category Specifiers Default Description
Owner Owner TObjectPtr<AActor> XenoCore › Equipment BlueprintReadOnly nullptr The pawn whose loadout changed. Present so a listener can ignore other characters.
Slot Slot EXenoCoreEquipSlot XenoCore › Equipment BlueprintReadOnly EXenoCoreEquipSlot::Weapon No description.
Item Item TObjectPtr<ULyraInventoryItemInstance> XenoCore › Equipment BlueprintReadOnly nullptr What is in the slot now. Null means it was emptied.

FXenoCoreEquippedSlot

Struct · header XenoCoreRuntime/Public/Equipment/XenoCoreEquipmentComponent.h

What is actually in a slot right now, and what equipping it applied.

FXenoCoreMemberLoadout

Struct · header XenoCoreRuntime/Public/Equipment/XenoCoreEquipmentComponent.h · BlueprintType

What a character was wearing when they left the field, kept so they come back dressed the same.

FXenoCoreStartingEquipment

Struct · header XenoCoreRuntime/Public/Equipment/XenoCoreEquipmentComponent.h · BlueprintType

One line of a starting loadout: what this character has equipped before any play happens.

Properties

Property C++ name Type Category Specifiers Default Description
Slot Slot EXenoCoreEquipSlot XenoCore › Equipment EditDefaultsOnly EXenoCoreEquipSlot::Weapon The slot the item is equipped into.
Item Definition ItemDefinition TSubclassOf<ULyraInventoryItemDefinition> XenoCore › Equipment EditDefaultsOnly The item to create and equip. It must list this slot in its Equip Slots fragment.

FXenoCoreStartingItem

Struct · header XenoCoreRuntime/Public/Equipment/XenoCoreEquipmentComponent.h · BlueprintType

One line of a starting bag - items the party holds but nobody is wearing.

Properties

Property C++ name Type Category Specifiers Default Description
Item Definition ItemDefinition TSubclassOf<ULyraInventoryItemDefinition> XenoCore › Equipment EditDefaultsOnly The item to add to the party bag.
Count Count int32 XenoCore › Equipment EditDefaultsOnly, ClampMin=1 1 How many to add. The bag holds one entry per item, so this is a loop count, not a stack size.

FXenoCoreWeaponAnimLayerRule

Struct · header XenoCoreRuntime/Public/Equipment/XenoCoreWeaponTypeDefinition.h · BlueprintType

One anim-layer rule: this layer, when the character's cosmetic tags include all of these.

Properties

Property C++ name Type Category Specifiers Default Description
Layer Layer TSubclassOf<UAnimInstance> Animation EditAnywhere, BlueprintReadOnly The linked anim layer class to use when this rule matches.
Required Tags RequiredTags FGameplayTagContainer Animation EditAnywhere, BlueprintReadOnly E.g. Cosmetic.AnimationStyle.Feminine.

FXenoCoreWeaponAnimLayers

Struct · header XenoCoreRuntime/Public/Equipment/XenoCoreWeaponTypeDefinition.h · BlueprintType

Which linked anim layer a stance uses: the first matching rule, else the default.

Properties

Property C++ name Type Category Specifiers Default Description
Rules Rules TArray<FXenoCoreWeaponAnimLayerRule> Animation EditAnywhere, BlueprintReadOnly Checked in order; the first rule whose Required Tags the character has wins.
Default Layer DefaultLayer TSubclassOf<UAnimInstance> Animation EditAnywhere, BlueprintReadOnly Used when no rule matches.

UXenoCoreEquipmentComponent

Class · derives from ULyraEquipmentManagerComponent · header XenoCoreRuntime/Public/Equipment/XenoCoreEquipmentComponent.h · Blueprintable

XC1's equipment paperdoll, over Lyra's inventory and equipment managers.

Properties

Property C++ name Type Category Specifiers Default Description
Allowed Weapon Types AllowedWeaponTypes TArray<TObjectPtr<const UXenoCoreWeaponTypeDefinition>> XenoCore › Equipment EditDefaultsOnly The kinds of weapon this character may wield. Empty means any - set it on every party member.
Starting Equipment StartingEquipment TArray<FXenoCoreStartingEquipment> XenoCore › Equipment EditDefaultsOnly What this character starts with. The great sword goes here for the player.
Starting Inventory StartingInventory TArray<FXenoCoreStartingItem> XenoCore › Equipment EditDefaultsOnly What the party starts carrying but not wearing - the spare weapons and armour an equipment screen exists to choose between.

Events you can bind

Event Type Description
OnEquipmentSlotChanged FXenoCoreEquipmentSlotChangedDelegate Fires after a slot's contents change.

Blueprint functions

Node Kind Signature Description
Equip Item Definition To Slot Callable ULyraInventoryItemInstance* EquipItemDefinitionToSlot(EXenoCoreEquipSlot Slot, TSubclassOf<ULyraInventoryItemDefinition> ItemDefinition) Puts an item definition in a slot: adds it to the inventory, then equips it.
Equip Item To Slot Callable bool EquipItemToSlot(EXenoCoreEquipSlot Slot, ULyraInventoryItemInstance* Item, bool bTakeFromOtherCharacter = false) Equips an item the inventory already holds.
Unequip Slot Callable void UnequipSlot(EXenoCoreEquipSlot Slot) Empties a slot: removes the stat effect, and the equipment manager despawns the actors.
Get Item In Slot Pure ULyraInventoryItemInstance* GetItemInSlot(EXenoCoreEquipSlot Slot) const The item worn in a slot, or null when it is empty.
Refresh Gem Effect Callable void RefreshGemEffect() Re-apply this character's gem stats - every socket on everything worn, capped per gem type.
Get Equipment In Slot Pure ULyraEquipmentInstance* GetEquipmentInSlot(EXenoCoreEquipSlot Slot) const The equipment instance spawned for a slot's item, or null when the slot is empty.
Get Item For Equipment Pure ULyraInventoryItemInstance* GetItemForEquipment(const ULyraEquipmentInstance* Equipment) const The inventory item an equipment instance was spawned from - the item whose stats it carries.
Is Item Equipped Pure bool IsItemEquipped(const ULyraInventoryItemInstance* Item) const True if this exact item instance is in any slot.
Find Slot For Item Pure EXenoCoreEquipSlot FindSlotForItem(const ULyraInventoryItemInstance* Item, bool& bOutFound) const Which slot holds Item. bOutFound is false - and the slot meaningless - when it is in none.
Can Equip Item To Slot Pure bool CanEquipItemToSlot(EXenoCoreEquipSlot Slot, const ULyraInventoryItemInstance* Item) const Whether EquipItemToSlot would accept this pairing, without performing it.
Get Equip Blocker Pure EXenoCoreEquipBlocker GetEquipBlocker(EXenoCoreEquipSlot Slot, const ULyraInventoryItemInstance* Item) const The same rule as CanEquipItemToSlot, but it says why.
Can Wield Weapon Type Pure bool CanWieldWeaponType(const UXenoCoreWeaponTypeDefinition* WeaponType) const Whether this character may wield a weapon of this kind.
Get Weapon Attach Parent Pure USceneComponent* GetWeaponAttachParent(const APawn* Pawn, FName SocketName) The mesh a weapon should attach to for this socket: the visible cosmetic body if it has the socket, else the pawn's own mesh.
Reattach Equipment To Visible Body Callable void ReattachEquipmentToVisibleBody() Re-homes every equipped actor onto the visible body where it carries the socket.
Get Weapon Type Of Item Pure const UXenoCoreWeaponTypeDefinition* GetWeaponTypeOfItem(const ULyraInventoryItemInstance* Item) The kind of weapon an item is, read off its definition.
Get Equipped Weapon Type Pure const UXenoCoreWeaponTypeDefinition* GetEquippedWeaponType(const AActor* Pawn) The kind of weapon this pawn has in its Weapon slot.
Get Weapon Arm Montage Pure UAnimMontage* GetWeaponArmMontage(const UGameplayAbility* Ability, bool bDraw, UAnimMontage* Default) Draw or sheathe montage for this ability's avatar: the weapon type's, else Default.
Resolve Weapon Anim Layer Pure TSubclassOf<UAnimInstance> ResolveWeaponAnimLayer(const ULyraEquipmentInstance* Instance, bool bArmed, const FGameplayTagContainer& CosmeticTags, TSubclassOf<UAnimInstance> Fallback) Anim layer for this weapon's stance: the weapon type's, else Fallback (Lyra's PickBestAnimLayer).
Apply Starting Equipment Callable void ApplyStartingEquipment() Applies StartingEquipment.
Apply Starting Inventory Callable void ApplyStartingInventory() Adds StartingInventory to the party bag.
Mark Redeployment Callable void MarkRedeployment() Tell this body that its character has been deployed before.

UXenoCoreGameplayAbility_EquipmentStats

Class · derives from ULyraGameplayAbility · header XenoCoreRuntime/Public/Equipment/XenoCoreGameplayAbility_EquipmentStats.h · abstract

Applies an equipped item's stats: every SetByCaller tag the stats effect consumes is filled from the item's stat tags. Removed again when the item is unequipped.

Properties

Property C++ name Type Category Specifiers Default Description
Equipment Stats Effect EquipmentStatsEffect TSubclassOf<UGameplayEffect> XenoCore › Equipment EditDefaultsOnly, BlueprintReadOnly The effect applied while the item is equipped. Its SetByCaller modifiers decide which stats reach which attributes.
Percent Stat Tags PercentStatTags FGameplayTagContainer XenoCore › Equipment EditDefaultsOnly, BlueprintReadOnly, Categories=XenoCore.Stat Extra stat tags authored as whole percent (15) and applied as a fraction (0.15). Stats the vocabulary already marks as percent need not be listed.

Blueprint functions

Node Kind Signature Description
Get Set By Caller Tags Pure TArray<FGameplayTag> GetSetByCallerTags(TSubclassOf<UGameplayEffect> Effect) Every SetByCaller data tag an effect's modifiers read, in modifier order.
Get Stat Magnitude Pure float GetStatMagnitude(const ULyraInventoryItemInstance* Item, FGameplayTag StatTag) const The magnitude an item contributes for one stat tag: its stat-tag count, as a fraction when the tag is a percent stat.

UXenoCoreWeaponTypeDefinition

Class · derives from UPrimaryDataAsset · header XenoCoreRuntime/Public/Equipment/XenoCoreWeaponTypeDefinition.h · BlueprintType

A kind of weapon - Sword, Staff, Rifle. Items point at one; characters list the ones they may use.

Properties

Property C++ name Type Category Specifiers Default Description
Display Name DisplayName FText Identity EditAnywhere, BlueprintReadOnly What menus call this kind of weapon - "Sword", "Staff".
Description Description FText Identity EditAnywhere, BlueprintReadOnly One line for a tooltip or the item details pane. Optional.
Icon Icon TSoftObjectPtr<UTexture2D> Identity EditAnywhere, BlueprintReadOnly Small glyph for item lists and the equipment screen. Optional.
Armed Layers ArmedLayers FXenoCoreWeaponAnimLayers Animation EditAnywhere, BlueprintReadOnly The stance while the weapon is drawn. Empty = the weapon instance's Equipped Anim Set.
Sheathed Layers SheathedLayers FXenoCoreWeaponAnimLayers Animation EditAnywhere, BlueprintReadOnly The stance while it is sheathed. Empty = the weapon instance's Unequipped Anim Set.
Preview Stance PreviewStance TSoftObjectPtr<UAnimSequenceBase> Animation EditAnywhere, BlueprintReadOnly Looping stance the equipment preview holds for this weapon type. Empty = the preview's own Idle Animation.
Draw Montage DrawMontage TObjectPtr<UAnimMontage> Animation EditAnywhere, BlueprintReadOnly nullptr Played to draw. Empty = GA_XenoCore_Arm_v2's own (the greatsword draw).
Sheathe Montage SheatheMontage TObjectPtr<UAnimMontage> Animation EditAnywhere, BlueprintReadOnly nullptr Played to sheathe. Empty = GA_XenoCore_Arm_v2's own.
Attack Montages AttackMontages TArray<TObjectPtr<UAnimMontage>> Attack EditAnywhere, BlueprintReadOnly The auto-attack combo. Each needs a MeleeHit notify.
Attack Montages Stationary AttackMontagesStationary TArray<TObjectPtr<UAnimMontage>> Attack EditAnywhere, BlueprintReadOnly Full-body versions for standing still. Only read when Attack Montages is set; empty = use those.
Attack Range AttackRange float Attack EditAnywhere, BlueprintReadOnly, ClampMin=0.0, Units=cm 0.0 How far the auto-attack reaches, cm. 0 = the ability's own (420).
Default Gem Slots DefaultGemSlots int32 Gems EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=3 2 Gem sockets on a weapon of this type, unless the weapon overrides it. At most 3.

Blueprint functions

Node Kind Signature Description
Get Display Name Or Asset Name Pure FText GetDisplayNameOrAssetName() const DisplayName, or the asset's own name when that is empty - so a menu never draws a blank.

XenoCoreRuntime / Feedback

AXenoCoreBeamFX

Class · derives from AActor · header XenoCoreRuntime/Public/Feedback/XenoCoreBeamFX.h

A shaft of light that rises and fades. The treasure chest's beam, made reusable.

Properties

Property C++ name Type Category Specifiers Default Description
Beam Mesh BeamMesh TObjectPtr<UStaticMeshComponent> XenoCore › Feedback VisibleAnywhere No description.
Beam Material BeamMaterial TObjectPtr<UMaterialInterface> XenoCore › Feedback EditDefaultsOnly The chest's own shaft material, so both read as one effect.
Beam Mesh Asset BeamMeshAsset TObjectPtr<UStaticMesh> XenoCore › Feedback EditDefaultsOnly The mesh scaled into the shaft (a unit cube by default).
Beam Intensity BeamIntensity float XenoCore › Feedback EditDefaultsOnly, ClampMin=0.0, UIMin=0.0 6.0 Peak brightness, before the fade scales it.
Beam Opacity BeamOpacity float XenoCore › Feedback EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0, UIMin=0.0, UIMax=1.0 0.85 Peak opacity of the shaft, before the fade scales it.
Rise Fraction RiseFraction float XenoCore › Feedback EditDefaultsOnly, ClampMin=0.0, ClampMax=0.9 0.15 Fraction of the life spent rising to full before the fade begins.

Blueprint functions

Node Kind Signature Description
Spawn Beam Callable AXenoCoreBeamFX* SpawnBeam(AActor* Target, FLinearColor InColour = FLinearColor(0.25f, 0.65f, 1.0f, 1.0f), float Height = 320.0f, float Width = 70.0f, float Duration = 0.9f) Spawn a shaft at Target's feet that fades out over Duration and then destroys itself.

XenoCoreRuntime / Interaction

AXenoCoreInteractableActor

Class · derives from AActor · header XenoCoreRuntime/Public/Interaction/XenoCoreInteractableActor.h · abstract · Blueprintable

Base for anything the player can walk up to and interact with - a door, lever, sign or pickup. Subclass it in Blueprint, add meshes, set the verbs, and handle On Interact. It registers itself with the interaction prompt; nothing else is needed.

Properties

Property C++ name Type Category Specifiers Default Description
Scene Root SceneRoot TObjectPtr<USceneComponent> XenoCore › Interaction VisibleAnywhere, BlueprintReadOnly Where range is measured from. Attach meshes and colliders under it.
Interact Verb InteractVerb FText XenoCore › Interaction EditAnywhere, BlueprintReadWrite The word the prompt shows beside A: "Open", "Pull", "Read".
Secondary Interact Verb SecondaryInteractVerb FText XenoCore › Interaction EditAnywhere, BlueprintReadWrite An optional second action, shown beside X. Leave empty for none.
Interact Range InteractRange float XenoCore › Interaction EditAnywhere, BlueprintReadOnly, ClampMin=0.0, Units=cm 200.0 How close the player must be for the prompt to appear, in cm, measured from the actor's origin.
Interact Enabled bInteractEnabled bool XenoCore › Interaction EditAnywhere, BlueprintReadOnly true Whether the prompt offers this actor at all. Change it at runtime with Set Interact Enabled.

Blueprint functions

Node Kind Signature Description
Set Interact Enabled Callable void SetInteractEnabled(bool bEnabled) No description.
Is Interact Enabled Pure bool IsInteractEnabled() const Whether interaction is switched on.
Is Interact Focused Pure bool IsInteractFocused() const True while the prompt is offering this actor to the player.
Is Secondary Verb Pure bool IsSecondaryVerb(int32 VerbIndex) const True when a verb index from On Interact is the secondary (X) verb rather than the primary (A).
Can Interact Callable bool CanInteract() const Whether the player may interact right now.
On Interact Callable void OnInteract(AActor* Interactor, int32 VerbIndex) The player pressed a verb this actor offered.
On Focused Callable void OnFocused() The prompt started offering this actor.
On Unfocused Callable void OnUnfocused() The prompt stopped offering this actor - out of range, disabled, or covered by a menu.

UXenoCoreInteractionSubsystem

Class · derives from UWorldSubsystem · header XenoCoreRuntime/Public/Interaction/XenoCoreInteractionSubsystem.h

The one thing that decides what the player is standing next to, and the one thing that says so on screen.

Properties

Property C++ name Type Category Specifiers Default Description
Claim Release Delay ClaimReleaseDelay float XenoCore › Interaction EditDefaultsOnly, ClampMin=0.0, UIMin=0.0 0.5 How long the A-button claim outlives the prompt, in seconds, so a held A does not become a jump.

Blueprint functions

Node Kind Signature Description
Get Offered Verbs Pure TArray<FText> GetOfferedVerbs(AActor* Actor) const The verbs Actor offers, primary first, capped at MaxPressableVerbs.
Find Nearest Interactable Pure AActor* FindNearestInteractable(AActor* Querier) const The nearest available interactable within its own range, or null.
Handle Interact Press Callable void HandleInteractPress(AActor* Interactor, int32 VerbIndex = 0) Everything the A button does out in the world, in one place.
Refresh Prompt Now Callable void RefreshPromptNow() Re-runs the prompt decision right now, instead of waiting for the next poll.
Is Menu Covering Pure bool IsMenuCovering() Is a full-screen menu on top of the world right now?
Is Interaction Blocked Pure bool IsInteractionBlocked() Can the player interact with the world at all right now?
Is Secondary Verb Offered Pure bool IsSecondaryVerbOffered() True while the interact prompt is up and offers more than one verb - X then belongs to the NPC.

XenoCoreRuntime / Inventory

EXenoCoreEquipType

Enum · header XenoCoreRuntime/Public/Inventory/XenoCoreItemFragments.h · BlueprintType

XC1's armour weight class - the "Type Medium" row on the item details panel.

Value Shown as Description
None None Declares nothing. Draws as an em dash.
Light Light No description.
Medium Medium No description.
Heavy Heavy No description.

EXenoCoreItemCategory

Enum · header XenoCoreRuntime/Public/Inventory/XenoCoreItemFragments.h · BlueprintType

XC1's four inventory tabs.

Value Shown as Description
Equipment Equipment Weapons and armour. Anything carrying UXenoCoreFragment_EquipSlots belongs here.
Items Items Legacy catch-all. Kept at value 1 so existing assets do not silently change meaning.
Collectables Collectables Field pickups. Trade fodder at 10x value.
Key Key Story items. Cannot be sold or discarded.
Gems Gems Gem crafting output. Slotted into equipment.
Crystals Crystals Ether crystals - gem crafting input, dropped by enemies.
Materials Materials Enemy-dropped crafting and trade materials.
ArtManuals Art Manuals Intermediate and Advanced Arts Manuals.

FXenoCoreFixedGem

Struct · header XenoCoreRuntime/Public/Inventory/XenoCoreItemFragments.h · BlueprintType

A gem fixed into a piece of equipment from the moment it exists. It can never be removed.

Properties

Property C++ name Type Category Specifiers Default Description
Gem Gem TSubclassOf<ULyraInventoryItemDefinition> XenoCore › Gems EditDefaultsOnly, BlueprintReadOnly The gem's item definition. It must carry a XenoCore Gem fragment and be in the gem registry.
Value Value int32 XenoCore › Gems EditDefaultsOnly, BlueprintReadOnly, ClampMin=1 1 Its strength. Clamped into the gem's own band when the item is created.

FXenoCoreInventoryChangedMessage

Struct · header XenoCoreRuntime/Public/Inventory/XenoCoreInventoryStatics.h · BlueprintType

Broadcast when the party bag gains or loses items.

Properties

Property C++ name Type Category Specifiers Default Description
Owner Owner TObjectPtr<AActor> XenoCore › Inventory BlueprintReadOnly nullptr The bag's owner - the player controller.
Item Def ItemDef TSubclassOf<ULyraInventoryItemDefinition> XenoCore › Inventory BlueprintReadOnly The item definition whose count changed.
New Count NewCount int32 XenoCore › Inventory BlueprintReadOnly 0 How many the party holds after the change.
Delta Delta int32 XenoCore › Inventory BlueprintReadOnly 0 Positive when gained, negative when spent. Never zero - a no-op does not broadcast.

FXenoCoreItemRarityRow

Struct · derives from FTableRowBase · header XenoCoreRuntime/Public/Inventory/XenoCoreItemRarity.h · BlueprintType

One rarity tier: its name, its look in every menu, and which chests may hold it.

Properties

Property C++ name Type Category Specifiers Default Description
Rarity Rarity FGameplayTag Rarity EditAnywhere, BlueprintReadOnly, Categories=XenoCore.Item.Rarity The tier this row describes. Items pick it on their Item Category fragment.
Display Name DisplayName FText Rarity EditAnywhere, BlueprintReadOnly Shown in details panes ("Rare · Materials") and on the Rarity sort.
Rank Rank int32 Rarity EditAnywhere, BlueprintReadOnly 0 Higher is rarer. Orders the Rarity sort, maps chest tiers, and decides the default: an item with no rarity set takes the lowest-ranked row.
Name Colour NameColour FLinearColor Look EditAnywhere, BlueprintReadOnly FLinearColor::White Colour every menu draws this tier's item names in.
Tint Name bTintName bool Look EditAnywhere, BlueprintReadOnly true Off draws names in each widget's own colour, as if rarity did not exist.
Name Shadow bNameShadow bool Look EditAnywhere, BlueprintReadOnly true A soft drop shadow under the tinted name - half strength, 1 unit, beneath the outline.
Name Shadow Colour NameShadowColour FLinearColor Look EditAnywhere, BlueprintReadOnly, EditCondition=bNameShadow FLinearColor(0.0, 0.0, 0.0, 0.5) Colour and opacity of the name's drop shadow.
Name Shadow Offset NameShadowOffset FVector2D Look EditAnywhere, BlueprintReadOnly, EditCondition=bNameShadow FVector2D(1.0, 1.0) In slate units, before the menu's own scale.
Name Outline bNameOutline bool Look EditAnywhere, BlueprintReadOnly true A thin dark outline round the tinted name - every edge of every letter, on any row colour.
Name Outline Colour NameOutlineColour FLinearColor Look EditAnywhere, BlueprintReadOnly, EditCondition=bNameOutline FLinearColor(0.0, 0.0, 0.0, 0.85) Colour and opacity of the name's outline.
Name Outline Size NameOutlineSize int32 Look EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=4, EditCondition=bNameOutline 1 In slate units, before the menu's own scale. 1 is a hairline; 2 starts to fill the letter's counters.
Pips Pips int32 Look EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=5 0 Diamonds drawn beside the name. Zero draws none.
Pip Colour PipColour FLinearColor Look EditAnywhere, BlueprintReadOnly FLinearColor::White Colour of the rarity diamonds drawn beside the name.
Pip Texture PipTexture TSoftObjectPtr<UTexture2D> Look EditAnywhere, BlueprintReadOnly The art for one pip, tinted by Pip Colour. Empty falls back to a turned square.
Lowest Chest Tier LowestChestTier EXenoCoreChestTier Loot EditAnywhere, BlueprintReadOnly EXenoCoreChestTier::Wooden The lowest chest a drop table may put this tier in. A drop table warns, never errors.
Chest Beam Colour ChestBeamColour FLinearColor Loot EditAnywhere, BlueprintReadOnly FLinearColor::White The beam colour of a chest whose tier maps to this rarity.
Pickup Sound PickupSound TSoftObjectPtr<USoundBase> Look EditAnywhere, BlueprintReadOnly Optional. Plays when an item of this tier is picked up or offered by a chest.

FXenoCoreItemView

Struct · header XenoCoreRuntime/Public/Inventory/XenoCoreInventoryStatics.h · BlueprintType

Everything one item row shows, resolved once.

Properties

Property C++ name Type Category Specifiers Default Description
Item Item TObjectPtr<ULyraInventoryItemInstance> XenoCore › Inventory BlueprintReadOnly nullptr The item this row is about. Null on an empty loadout slot - check bIsEmpty first.
Is Empty bIsEmpty bool XenoCore › Inventory BlueprintReadOnly true True when there is no item - an empty slot on the loadout screen.
Slot Slot EXenoCoreEquipSlot XenoCore › Inventory BlueprintReadOnly EXenoCoreEquipSlot::Weapon The slot this row is about: the slot itself on a loadout row, the item's own otherwise.
Slot Label SlotLabel FText XenoCore › Inventory BlueprintReadOnly "Weapon", "Torso". XC1 says Torso, not Chest.
Display Name DisplayName FText XenoCore › Inventory BlueprintReadOnly The item's name, or an em dash when the row is empty. Never blank.
Description Description FText XenoCore › Inventory BlueprintReadOnly The item's description.
Icon Icon TSoftObjectPtr<UTexture2D> XenoCore › Inventory BlueprintReadOnly The item's icon art, if it has any.
Symbol Symbol FText XenoCore › Inventory BlueprintReadOnly The glyph shown beside the name, already resolved: the item's own Symbol if it authored one, otherwise its category's default. A row never has to decide.
Symbol Colour SymbolColour FLinearColor XenoCore › Inventory BlueprintReadOnly FLinearColor::White The glyph's colour.
Summary Label SummaryLabel FText XenoCore › Inventory BlueprintReadOnly Heading for the one contextual stat column - "Attack", "Physical Def".
Summary Value SummaryValue FText XenoCore › Inventory BlueprintReadOnly That column's value - "12-20" for a weapon, a defence number for armour.
Quantity Quantity int32 XenoCore › Inventory BlueprintReadOnly 0 How many of this item definition the party holds.
Category Category EXenoCoreItemCategory XenoCore › Inventory BlueprintReadOnly EXenoCoreItemCategory::Items Which tab this item lives under. Equipment unless a category fragment says otherwise.
Equip Type EquipType EXenoCoreEquipType XenoCore › Inventory BlueprintReadOnly EXenoCoreEquipType::None XC1's armour class. None for anything that is not equipment, or declares no class.
Equip Type Label EquipTypeLabel FText XenoCore › Inventory BlueprintReadOnly "Light", "Medium", "Heavy", or an em dash. Resolved here so no widget switches on the enum.
Is Equipped bIsEquipped bool XenoCore › Inventory BlueprintReadOnly false Worn by anyone in the party.
Equipped Here bEquippedHere bool XenoCore › Inventory BlueprintReadOnly false Worn by the character this view was built for. False when another character has it.
Equipped In Slot EquippedInSlot EXenoCoreEquipSlot XenoCore › Inventory BlueprintReadOnly EXenoCoreEquipSlot::Weapon Where it is worn. Only meaningful when bEquippedHere.
Equipped Elsewhere bEquippedElsewhere bool XenoCore › Inventory BlueprintReadOnly false Worn - but by somebody other than the character this view was built for.
Equipped By Portrait EquippedByPortrait TSoftObjectPtr<UTexture2D> XenoCore › Inventory BlueprintReadOnly The face to badge the row with. Empty unless bEquippedElsewhere.
Equipped By Name EquippedByName FText XenoCore › Inventory BlueprintReadOnly Who is wearing it, for the confirmation prompt. Empty unless bEquippedElsewhere.
Sell Value SellValue int32 XenoCore › Inventory BlueprintReadOnly 0 What a shop pays for one. Zero when the item declares no value.
Sort Order SortOrder int32 XenoCore › Inventory BlueprintReadOnly 0 Sort key; lower first. Ties fall back to bag order.
Can Equip Here bCanEquipHere bool XenoCore › Inventory BlueprintReadOnly false True when equipping this into Slot would be accepted - lets a list grey a row instead of offering an action that will fail.
Rarity Rarity FGameplayTag XenoCore › Inventory BlueprintReadOnly XenoCore.Item.Rarity.* - the item's tier, or the lowest tier when it set none. Empty on an empty slot.
Rarity Name RarityName FText XenoCore › Inventory BlueprintReadOnly "Common", "Rare", "Legendary".
Rarity Rank RarityRank int32 XenoCore › Inventory BlueprintReadOnly 0 Higher is rarer.
Name Colour NameColour FLinearColor XenoCore › Inventory BlueprintReadOnly FLinearColor::White The name's resting colour - the tier's, or white when the tier does not tint names.
Rarity Pips RarityPips int32 XenoCore › Inventory BlueprintReadOnly 0 How many diamonds the tier draws.

FXenoCoreSocketedGem

Struct · header XenoCoreRuntime/Public/Inventory/XenoCoreGemStatics.h · BlueprintType

One socket on a piece of equipment, as the menus draw it.

Properties

Property C++ name Type Category Specifiers Default Description
Gem Gem TSubclassOf<ULyraInventoryItemDefinition> XenoCore › Gems BlueprintReadOnly The gem in the socket. Null means the socket is empty.
Value Value int32 XenoCore › Gems BlueprintReadOnly 0 Its strength.
Fixed bFixed bool XenoCore › Gems BlueprintReadOnly false A permanent gem, welded in by the item definition. It cannot be removed or replaced.

FXenoCoreStatDefinition

Struct · header XenoCoreRuntime/Public/Inventory/XenoCoreInventoryStatics.h · BlueprintType

One stat in XC1's vocabulary: its tag, the attribute it feeds, and how it reads.

Properties

Property C++ name Type Category Specifiers Default Description
Stat Tag StatTag FGameplayTag XenoCore › Stats BlueprintReadOnly The XenoCore.Stat.* tag an item carries to grant this.
Attribute Attribute FGameplayAttribute XenoCore › Stats BlueprintReadOnly The UXenoCoreStatSet attribute it feeds. Invalid for a stat with no character attribute.
Display Name DisplayName FText XenoCore › Stats BlueprintReadOnly Localised row label - "Physical Def".
Is Percent bIsPercent bool XenoCore › Stats BlueprintReadOnly false Authored on items as whole percent; the attribute is the 0-1 fraction.
Lower Is Better bLowerIsBetter bool XenoCore › Stats BlueprintReadOnly false Weight is the one stat where more is worse - it trades Agility for defence.
Show On Equipment Screen bShowOnEquipmentScreen bool XenoCore › Stats BlueprintReadOnly false Whether the item comparison block gives it a row. Table order is row order.
Show On Character Sheet bShowOnCharacterSheet bool XenoCore › Stats BlueprintReadOnly false Whether the character sheet block gives it a row.

FXenoCoreStatLine

Struct · header XenoCoreRuntime/Public/Inventory/XenoCoreInventoryStatics.h · BlueprintType

One row of a stat block - "Physical Def 105 (+64)".

Properties

Property C++ name Type Category Specifiers Default Description
Stat Tag StatTag FGameplayTag XenoCore › Inventory BlueprintReadOnly The XenoCore.Stat.* tag this row reports.
Label Label FText XenoCore › Inventory BlueprintReadOnly Display label, already localised - "Auto-Attack Min", "Physical Def".
Value Value float XenoCore › Inventory BlueprintReadOnly 0.0 Where the character lands. Percent stats are in whole percent here, not 0-1.
Delta Delta float XenoCore › Inventory BlueprintReadOnly 0.0 Change against what is equipped now. Zero on a totals block.
Affected bAffected bool XenoCore › Inventory BlueprintReadOnly false False when nothing on either side touches this stat - render greyed.
Is Percent bIsPercent bool XenoCore › Inventory BlueprintReadOnly false True for CriticalRate and BlockRate, which read as percentages.
Value Text ValueText FText XenoCore › Inventory BlueprintReadOnly The headline number - "105", "12%", or an em dash when unaffected.
Delta Text DeltaText FText XenoCore › Inventory BlueprintReadOnly The parenthesised change - "(+64)", "(-3)". Empty when the delta is zero.
Delta Color DeltaColor FLinearColor XenoCore › Inventory BlueprintReadOnly FLinearColor(1.0, 1.0, 1.0, 0.0) Gain, loss, or fully transparent when there is no delta to colour.
New Value NewValue float XenoCore › Inventory BlueprintReadOnly 0.0 The second column - what this stat becomes if the candidate is equipped.
New Value Text NewValueText FText XenoCore › Inventory BlueprintReadOnly The second column's text.
New Value Color NewValueColor FLinearColor XenoCore › Inventory BlueprintReadOnly FLinearColor(1.0, 1.0, 1.0, 0.0) Green when the change is an improvement, which is not the same as an increase - see FXenoCoreStatDefinition::bLowerIsBetter, where a lighter Weight is a gain.
Has New Value bHasNewValue bool XenoCore › Inventory BlueprintReadOnly false False for a stat the swap does not touch; the second column then draws nothing.

UXenoCoreAbilityCost_PartyItem

Class · derives from ULyraAbilityCost · header XenoCoreRuntime/Public/Inventory/XenoCoreAbilityCost_PartyItem.h

Ability cost: spends a number of an item from the party bag. The ability cannot activate unless the party holds enough unequipped copies. Use this instead of Lyra's Inventory Item cost, which never lets an ability activate.

Properties

Property C++ name Type Category Specifiers Default Description
Quantity Quantity FScalableFloat XenoCore › Cost EditAnywhere, BlueprintReadOnly How many to spend, keyed on ability level. Fractions round down.
Item Definition ItemDefinition TSubclassOf<ULyraInventoryItemDefinition> XenoCore › Cost EditAnywhere, BlueprintReadOnly The item to spend.

UXenoCoreFragment_EquipSlots

Class · derives from ULyraInventoryItemFragment · header XenoCoreRuntime/Public/Inventory/XenoCoreItemFragments.h

Which of XC1's six slots an item may occupy.

Properties

Property C++ name Type Category Specifiers Default Description
Allowed Slots AllowedSlots TArray<EXenoCoreEquipSlot> XenoCore › Equipment EditDefaultsOnly Empty means the item is not equipment at all - a material, a key item, an Arts manual.
Equip Type EquipType EXenoCoreEquipType XenoCore › Equipment EditDefaultsOnly EXenoCoreEquipType::None XC1's Light / Medium / Heavy. None draws as an em dash on the details panel.
Weapon Type WeaponType TObjectPtr<const UXenoCoreWeaponTypeDefinition> XenoCore › Equipment EditDefaultsOnly nullptr The kind of weapon this is. Empty means any character may wield it.
Override Gem Slots bOverrideGemSlots bool XenoCore › Equipment EditDefaultsOnly false Weapons only: use Gem Slots below instead of the weapon type's Default Gem Slots.
Gem Slots GemSlots int32 XenoCore › Equipment EditDefaultsOnly, ClampMin=0, ClampMax=3 0 Armour: how many gems this piece holds (0 or 1). Weapons: read only when Override Gem Slots is ticked (0-3).
Fixed Gems FixedGems TArray<FXenoCoreFixedGem> XenoCore › Equipment EditDefaultsOnly Permanent gems, written into the first sockets when the item is created. They cannot be removed.

UXenoCoreFragment_Gem

Class · derives from ULyraInventoryItemFragment · header XenoCoreRuntime/Public/Inventory/XenoCoreItemFragments.h

Makes an item a gem: the stat it raises, its rank, its strength band and its per-character cap.

Properties

Property C++ name Type Category Specifiers Default Description
Gem Id GemId int32 XenoCore › Gems EditDefaultsOnly, ClampMin=1 0 This gem's identity inside a socket. Unique across the gem registry, never 0, never renumbered.
Rank Rank int32 XenoCore › Gems EditDefaultsOnly, ClampMin=1, ClampMax=6 1 I to vi. Display only - the band below is what the rank means.
Stat Tag StatTag FGameplayTag XenoCore › Gems EditDefaultsOnly, Categories=XenoCore.Stat The XenoCore.Stat.* this gem adds to. It must be a SetByCaller on the gem stats effect.
Min Value MinValue int32 XenoCore › Gems EditDefaultsOnly, ClampMin=0 5 The lowest strength a gem of this rank can roll. Whole numbers; a percent stat is whole percent.
Max Value MaxValue int32 XenoCore › Gems EditDefaultsOnly, ClampMin=0 10 The highest strength a gem of this rank can roll.
Cap Cap int32 XenoCore › Gems EditDefaultsOnly, ClampMin=0 0 The most every gem of this stat can add to one character, summed across all their sockets. XC1: Strength Up 150, Agility Up 50, Critical Up 25.

UXenoCoreFragment_ItemCategory

Class · derives from ULyraInventoryItemFragment · header XenoCoreRuntime/Public/Inventory/XenoCoreItemFragments.h

Which tab an item lives under, and how many of it the party may hold.

Properties

Property C++ name Type Category Specifiers Default Description
Category Category EXenoCoreItemCategory XenoCore › Item EditDefaultsOnly EXenoCoreItemCategory::Items The inventory tab this item is listed under.
Max Carried MaxCarried int32 XenoCore › Item EditDefaultsOnly, ClampMin=0 0 How many the party may hold. Zero means uncapped - XC1 caps collectables at 99.
Sell Value SellValue int32 XenoCore › Item EditDefaultsOnly, ClampMin=0 0 What a shop pays for one of these.
Sort Order SortOrder int32 XenoCore › Item EditDefaultsOnly 0 Where this sits in a sorted list. Lower comes first; ties fall back to bag order.
Rarity Rarity FGameplayTag XenoCore › Item EditDefaultsOnly, Categories=XenoCore.Item.Rarity How rare this item is. Empty means the lowest tier in the rarity table (Common).

UXenoCoreFragment_ItemDisplay

Class · derives from ULyraInventoryItemFragment · header XenoCoreRuntime/Public/Inventory/XenoCoreItemFragments.h

The prose an item shows in a details panel.

Properties

Property C++ name Type Category Specifiers Default Description
Description Description FText XenoCore › Display EditDefaultsOnly The item's description, shown in details panels.
Icon Icon TSoftObjectPtr<UTexture2D> XenoCore › Display EditDefaultsOnly The item's own icon. Empty uses its category's glyph from the item icon set.
Symbol Symbol FText XenoCore › Display EditDefaultsOnly A short glyph shown beside the name in the loot panel and the items list.
Symbol Colour SymbolColour FLinearColor XenoCore › Display EditDefaultsOnly FLinearColor(0.72, 0.8, 0.92, 1.0) The glyph's tint. For a gem, its colour: tints its socket icon on the equipment screen.

UXenoCoreGemRegistry

Class · derives from UPrimaryDataAsset · header XenoCoreRuntime/Public/Inventory/XenoCoreGemRegistry.h · BlueprintType

Every gem in the game, by id, and the effect that carries gem stats to a character.

Properties

Property C++ name Type Category Specifiers Default Description
Gems Gems TArray<TSubclassOf<ULyraInventoryItemDefinition>> XenoCore › Gems EditAnywhere, BlueprintReadOnly Every gem item definition. Each needs a XenoCore Gem fragment with a unique, non-zero Gem Id.
Gem Stats Effect GemStatsEffect TSubclassOf<UGameplayEffect> XenoCore › Gems EditAnywhere, BlueprintReadOnly The effect a character's gems are applied through. Normally GE_XenoCore_EquipmentStats.

UXenoCoreGemStatics

Class · derives from UBlueprintFunctionLibrary · header XenoCoreRuntime/Public/Inventory/XenoCoreGemStatics.h

Gems: what is in a socket, socketing and unsocketing, and what a character's gems add up to.

Blueprint functions

Node Kind Signature Description
Is Gem Pure bool IsGem(const ULyraInventoryItemInstance* Item) True if this item is a gem.
Get Gem Slot Count Pure int32 GetGemSlotCount(const ULyraInventoryItemInstance* Item) How many sockets this piece of equipment has.
Get Gem Strength Pure int32 GetGemStrength(const ULyraInventoryItemInstance* GemItem) A loose gem's strength.
Get Sockets Pure TArray<FXenoCoreSocketedGem> GetSockets(const ULyraInventoryItemInstance* Item) Every socket on this piece, empty ones included, in order.
Get Loose Gems Callable TArray<ULyraInventoryItemInstance*> GetLooseGems() Every gem in the party bag, strongest first within a name.
Socket Gem Callable bool SocketGem(ULyraInventoryItemInstance* Host, int32 SocketIndex, ULyraInventoryItemInstance* GemItem) Put a loose gem from the bag into a socket.
Unsocket Gem Callable bool UnsocketGem(ULyraInventoryItemInstance* Host, int32 SocketIndex) Take a gem out of a socket and back into the bag.
Can Unsocket Pure bool CanUnsocket(const ULyraInventoryItemInstance* Host, int32 SocketIndex) True if this socket holds a gem that can be taken out.
Get Gem Name Pure FText GetGemName(TSubclassOf<ULyraInventoryItemDefinition> GemDef) "Strength Up I", the gem's name.
Describe Gem Effect Pure FText DescribeGemEffect(TSubclassOf<ULyraInventoryItemDefinition> GemDef, int32 Value) "Strength +8" - what a gem of this strength does.
Get Gem Value Text Pure FText GetGemValueText(TSubclassOf<ULyraInventoryItemDefinition> GemDef, int32 Value) "+5", or "+2%" for a percent stat - a gem's value without its stat name, for a row that is short of room.
Get Gem Row Text Pure FText GetGemRowText(const ULyraInventoryItemInstance* Item) One loadout row's sockets on one line: an O per gem, a dash per empty socket.
Get Gem Colour Pure FLinearColor GetGemColour(TSubclassOf<ULyraInventoryItemDefinition> GemDef) The gem's colour - its display fragment's Symbol Colour, set to its XC1 element.
Get Gem Names Text Pure FText GetGemNamesText(const ULyraInventoryItemInstance* Item) The item's socketed gems by name, "Empty Slot" for an empty one.
Preview Socket Change Callable TMap<FGameplayTag, float> PreviewSocketChange(const UXenoCoreEquipmentComponent* Wearer, const ULyraInventoryItemInstance* Host, int32 SocketIndex, TSubclassOf<ULyraInventoryItemDefinition> NewGem, int32 NewValue) Stat changes on the wearer if Host's socket SocketIndex held NewGem at NewValue (null = emptied).

UXenoCoreInventoryStatics

Class · derives from UBlueprintFunctionLibrary · header XenoCoreRuntime/Public/Inventory/XenoCoreInventoryStatics.h

The read side of XC1 equipment: everything a screen needs to know, and nothing that changes state.

Blueprint functions

Node Kind Signature Description
Get Party Inventory Pure ULyraInventoryManagerComponent* GetPartyInventory() The party bag.
Get Items For Slot Callable TArray<ULyraInventoryItemInstance*> GetItemsForSlot(EXenoCoreEquipSlot Slot, const UXenoCoreEquipmentComponent* ForCharacter = nullptr) Every item in the party bag that may go in Slot, in bag order.
Can Unequip Slot Pure bool CanUnequipSlot(UXenoCoreEquipmentComponent* Equipment, EXenoCoreEquipSlot Slot) Whether the loadout's unequip action should be offered for this slot.
Get Item Display Name Pure FText GetItemDisplayName(ULyraInventoryItemInstance* Item) The item's display name off its definition.
Get Item Stat Pure float GetItemStat(ULyraInventoryItemInstance* Item, FGameplayTag StatTag) One stat off an item, 0 when absent.
Get Slot Label Pure FText GetSlotLabel(EXenoCoreEquipSlot Slot) Display label for a slot - "Weapon", "Torso".
Get Loadout Slot Text Pure FText GetLoadoutSlotText(UXenoCoreEquipmentComponent* Equipment, EXenoCoreEquipSlot Slot) What a loadout row draws: the worn item's name, or the slot's own label when it is empty.
Get Equip Type Label Pure FText GetEquipTypeLabel(EXenoCoreEquipType EquipType) Display label for an armour class - "Medium".
Make Item View Pure FXenoCoreItemView MakeItemView(ULyraInventoryItemInstance* Item, UXenoCoreEquipmentComponent* Equipment) One selection row: an item, priced and flagged against a character's current loadout.
Make Slot View Pure FXenoCoreItemView MakeSlotView(UXenoCoreEquipmentComponent* Equipment, EXenoCoreEquipSlot Slot) One loadout row: a named slot and whatever is in it.
Get Item Views For Slot Callable TArray<FXenoCoreItemView> GetItemViewsForSlot(UXenoCoreEquipmentComponent* Equipment, EXenoCoreEquipSlot Slot) The selection list for one slot: every bag item that fits it, already resolved.
Get Loadout Views Callable TArray<FXenoCoreItemView> GetLoadoutViews(UXenoCoreEquipmentComponent* Equipment) The six loadout rows, in slot order, empties included.
Get Items For Category Callable TArray<ULyraInventoryItemInstance*> GetItemsForCategory(EXenoCoreItemCategory Category) Every item instance in the party bag whose category matches.
Get Item Views For Category Callable TArray<FXenoCoreItemView> GetItemViewsForCategory(EXenoCoreItemCategory Category) One row per item definition in a tab, with Quantity filled in - "Ether Crystal x12".
Get Item Category Pure EXenoCoreItemCategory GetItemCategory(ULyraInventoryItemInstance* Item) Which tab an item belongs to.
Get Item Symbol Pure FText GetItemSymbol(ULyraInventoryItemInstance* Item, FLinearColor& OutColour) The glyph shown beside an item's name, and its colour.
Get Category Symbol Pure FText GetCategorySymbol(EXenoCoreItemCategory Category, FLinearColor& OutColour) The category's default glyph and colour, with no item to ask.
Get Stat Definitions Pure const TArray<FXenoCoreStatDefinition>& GetStatDefinitions() Every stat XC1 knows about, in display order.
Find Stat Definition Pure bool FindStatDefinition(FGameplayTag StatTag, FXenoCoreStatDefinition& OutDefinition) One stat by tag.
Get Party Item Count Pure int32 GetPartyItemCount(TSubclassOf<ULyraInventoryItemDefinition> ItemDef) How many of ItemDef the party holds.
Add Item To Party Callable int32 AddItemToParty(TSubclassOf<ULyraInventoryItemDefinition> ItemDef, int32 Count = 1) Adds Count of ItemDef to the party bag, honouring the item's MaxCarried cap.
Add One Item To Party Callable ULyraInventoryItemInstance* AddOneItemToParty(TSubclassOf<ULyraInventoryItemDefinition> ItemDef) Adds exactly one and returns the instance, which the equip path needs and a count cannot give.
Remove Item From Party Callable int32 RemoveItemFromParty(TSubclassOf<ULyraInventoryItemDefinition> ItemDef, int32 Count = 1) Removes up to Count of ItemDef.
Remove Item Instance From Party Callable bool RemoveItemInstanceFromParty(ULyraInventoryItemInstance* Item) Removes this exact item from the party bag.
Consume Items From Party Callable bool ConsumeItemsFromParty(TSubclassOf<ULyraInventoryItemDefinition> ItemDef, int32 Count = 1) Spends exactly Count of ItemDef, or nothing at all.
Get Free Party Item Count Pure int32 GetFreePartyItemCount(TSubclassOf<ULyraInventoryItemDefinition> ItemDef) How many of ItemDef the party holds that nobody is wearing - what can be spent or sold.
Is Item Equipped By Anyone Pure bool IsItemEquippedByAnyone(const ULyraInventoryItemInstance* Item) True if any character in the world has this exact instance equipped.
Find Free Item By Definition Pure ULyraInventoryItemInstance* FindFreeItemByDefinition(TSubclassOf<ULyraInventoryItemDefinition> ItemDef) An instance of this definition that the party owns and nobody is wearing, or null.
Find Equipment Holding Pure UXenoCoreEquipmentComponent* FindEquipmentHolding(const ULyraInventoryItemInstance* Item) Whose loadout holds this item, or null if nobody is wearing it.
Get Max Carried Pure int32 GetMaxCarried(TSubclassOf<ULyraInventoryItemDefinition> ItemDef) The carry cap for a definition, or 0 when uncapped.
Build Item Stat Lines Callable TArray<FXenoCoreStatLine> BuildItemStatLines(ULyraInventoryItemInstance* Item) One item's own stats, with no character and no comparison - the Items menu's details pane.
Build Item Stat Lines For Def Callable TArray<FXenoCoreStatLine> BuildItemStatLinesForDef(TSubclassOf<ULyraInventoryItemDefinition> ItemDef) The same block, priced off a definition - for an item nobody owns yet.
Get Item Stat For Def Pure float GetItemStatForDef(TSubclassOf<ULyraInventoryItemDefinition> ItemDef, FGameplayTag StatTag) One authored stat off a definition's CDO.
Build Stat Comparison Callable TArray<FXenoCoreStatLine> BuildStatComparison(UXenoCoreEquipmentComponent* Equipment, EXenoCoreEquipSlot Slot, ULyraInventoryItemInstance* Candidate) What Candidate would give, and how it differs from what is equipped in Slot right now.
Build Stat Comparison For Def Callable TArray<FXenoCoreStatLine> BuildStatComparisonForDef(UXenoCoreEquipmentComponent* Equipment, EXenoCoreEquipSlot Slot, TSubclassOf<ULyraInventoryItemDefinition> CandidateDef) BuildStatComparison for an item nobody owns yet - a shop's stock.
Build Stat Totals Callable TArray<FXenoCoreStatLine> BuildStatTotals(AActor* Character) The character's actual current stats, read through the ability system.
Build Stat Totals With Candidate Callable TArray<FXenoCoreStatLine> BuildStatTotalsWithCandidate(AActor* Character, UXenoCoreEquipmentComponent* Equipment, EXenoCoreEquipSlot Slot, ULyraInventoryItemInstance* Candidate) The character sheet's totals, with a second column showing what each stat becomes if Candidate is equipped into Slot.

UXenoCoreInventoryWatchSubsystem

Class · derives from UTickableWorldSubsystem · header XenoCoreRuntime/Public/Inventory/XenoCoreInventoryWatchSubsystem.h

Notices party-bag edits made without the XenoCore inventory functions (for example Lyra's own inventory nodes) and sends the inventory-changed message for them, so menus stay current.

UXenoCoreItemIconSet

Class · derives from UPrimaryDataAsset · header XenoCoreRuntime/Public/Inventory/XenoCoreItemIconSet.h · BlueprintType

One glyph per item category, for items that carry no art of their own.

Properties

Property C++ name Type Category Specifiers Default Description
Category Icons CategoryIcons TMap<EXenoCoreItemCategory, TObjectPtr<UMaterialInterface>> XenoCore › Inventory EditAnywhere, BlueprintReadOnly The glyph for each category.
Slot Icons SlotIcons TMap<EXenoCoreEquipSlot, TObjectPtr<UMaterialInterface>> XenoCore › Inventory EditAnywhere, BlueprintReadOnly The glyph for each equipment slot - the six tabs the Equipment category splits into on a merchant list (XC1's Buy list: Weapons, Head, Torso, Arms, Legs, Feet).

UXenoCoreItemRarityStatics

Class · derives from UBlueprintFunctionLibrary · header XenoCoreRuntime/Public/Inventory/XenoCoreItemRarity.h

Item rarity: the tier an item is, and how every menu should draw it.

Blueprint functions

Node Kind Signature Description
Get Rarity Info Pure bool GetRarityInfo(FGameplayTag Rarity, FXenoCoreItemRarityRow& OutRow) The row for a tier.
Get Default Rarity Info Pure bool GetDefaultRarityInfo(FXenoCoreItemRarityRow& OutRow) The lowest-ranked row - what an item with no rarity set is.
Get Item Rarity Pure FGameplayTag GetItemRarity(TSubclassOf<ULyraInventoryItemDefinition> ItemDef) An item definition's tier: its authored tag, else the default row's.
Get Item Rarity Info Pure bool GetItemRarityInfo(TSubclassOf<ULyraInventoryItemDefinition> ItemDef, FXenoCoreItemRarityRow& OutRow) An item definition's rarity row.
Get Item Rarity Rank Pure int32 GetItemRarityRank(TSubclassOf<ULyraInventoryItemDefinition> ItemDef) Higher is rarer.
Get Item Rarity Name Pure FText GetItemRarityName(TSubclassOf<ULyraInventoryItemDefinition> ItemDef) "Common", "Rare", "Legendary".
Get Item Name Colour Pure FLinearColor GetItemNameColour(TSubclassOf<ULyraInventoryItemDefinition> ItemDef, FLinearColor Fallback) The colour this item's name should rest at, or Fallback when its tier does not tint names.
Get Rarity For Chest Tier Pure bool GetRarityForChestTier(EXenoCoreChestTier Tier, FXenoCoreItemRarityRow& OutRow) The rarity a chest of this tier stands for - the highest rank whose Lowest Chest Tier fits.
Apply Item Rarity Callable bool ApplyItemRarity(TSubclassOf<ULyraInventoryItemDefinition> ItemDef, UTextBlock* NameText, UPanelWidget* PipBox, FLinearColor Fallback = FLinearColor::White, float Opacity = 1.0f, float PipSize = 0.0f) Colour an item's name by rarity and fill its diamonds.
Apply Item Instance Rarity Callable bool ApplyItemInstanceRarity(ULyraInventoryItemInstance* Item, UTextBlock* NameText, UPanelWidget* PipBox, FLinearColor Fallback = FLinearColor::White, float Opacity = 1.0f, float PipSize = 0.0f) ApplyItemRarity for an item in the bag.
Apply Item Rarity To Button Callable bool ApplyItemRarityToButton(UUserWidget* Button, ULyraInventoryItemInstance* Item, FLinearColor Fallback = FLinearColor::White) Colour a button's label by an item's rarity.
Apply Item Definition Rarity To Button Callable bool ApplyItemDefinitionRarityToButton(UUserWidget* Button, TSubclassOf<ULyraInventoryItemDefinition> ItemDef, FLinearColor Fallback = FLinearColor::White) ApplyItemRarityToButton for an item definition - a gem in a socket has no bag instance.
Apply Loadout Slot Rarity Callable bool ApplyLoadoutSlotRarity(UUserWidget* Button, UXenoCoreEquipmentComponent* Equipment, EXenoCoreEquipSlot Slot, FLinearColor Fallback = FLinearColor::White) ApplyItemRarityToButton for a loadout slot: whatever Equipment wears in Slot (an empty slot draws Fallback).
Prefix With Item Rarity Pure FText PrefixWithItemInstanceRarity(ULyraInventoryItemInstance* Item, const FText& Rest) "Rare · Weapon" - the tier in words in front of Rest.
Apply Item Rarity Label Callable bool ApplyItemRarityLabel(TSubclassOf<ULyraInventoryItemDefinition> ItemDef, UTextBlock* Text, FLinearColor Fallback = FLinearColor::White) Write the tier's name into a details row and colour it.
Apply Item Instance Rarity Label Callable bool ApplyItemInstanceRarityLabel(ULyraInventoryItemInstance* Item, UTextBlock* Text, FLinearColor Fallback = FLinearColor::White) ApplyItemRarityLabel for an item in the bag.

UXenoCoreStatRowBase

Class · derives from UUserWidget · header XenoCoreRuntime/Public/Inventory/XenoCoreStatRowBase.h · abstract

One row of the equipment stat block - "Physical Def 105 (+64)".

Properties

Property C++ name Type Category Specifiers Default Description
Label Text LabelText TObjectPtr<UTextBlock> XenoCore › Inventory BlueprintReadOnly, BindWidget No description.
Value Text ValueText TObjectPtr<UTextBlock> XenoCore › Inventory BlueprintReadOnly, BindWidget No description.
Delta Text DeltaText TObjectPtr<UTextBlock> XenoCore › Inventory BlueprintReadOnly, BindWidget No description.
Trail Spacer TrailSpacer TObjectPtr<UWidget> XenoCore › Inventory BlueprintReadOnly, BindWidgetOptional The fill after DeltaText. Optional - SetDeltaColumnVisible collapses it with the column.

Blueprint functions

Node Kind Signature Description
Set Line Callable void SetLine(const FXenoCoreStatLine& Line) Fills the row from one stat line.
Set Delta Gap Callable void SetDeltaGap(float Gap) The space between the value and its "(+n)", overriding the row asset's 8px.
Set Label Dimmed Callable void SetLabelDimmed(bool bDimmed) Grey the label too - the reference's compare cards grey a whole row neither item touches.
Set Delta Column Visible Callable void SetDeltaColumnVisible(bool bVisible) Show or collapse the "(+n)" column and the spacer behind it, so the value sits flush right.

XenoCoreRuntime / Locomotion

UXenoCoreLocomotionStatics

Class · derives from UBlueprintFunctionLibrary · header XenoCoreRuntime/Public/Locomotion/XenoCoreLocomotionStatics.h

Rotation-mode switching for XC1's two movement stances.

Blueprint functions

Node Kind Signature Description
Set Combat Stance Callable void SetCombatStance(ACharacter* Character, bool bInCombatStance) Puts the character into the combat stance (strafe) or the travel stance (free-run).
Suppress Self Rotation Callable bool SuppressSelfRotation(ACharacter* Character) Takes yaw ownership away from the pawn so an ability can aim it, and gives it back.
Restore Self Rotation Callable void RestoreSelfRotation(ACharacter* Character) Puts the three facing flags back to what the pawn class was authored with.

XenoCoreRuntime / Loot

AXenoCoreCollectableOrb

Class · derives from AActor · header XenoCoreRuntime/Public/Loot/XenoCoreCollectableOrb.h · Blueprintable

A blue field orb. Walk into it and its item goes into the party bag.

Properties

Property C++ name Type Category Specifiers Default Description
Item To Grant ItemToGrant TSubclassOf<ULyraInventoryItemDefinition> XenoCore › Collectable EditAnywhere, BlueprintReadWrite What walking into this orb puts in the bag. The one required field.
Collect Radius CollectRadius float XenoCore › Collectable EditAnywhere, BlueprintReadWrite, ClampMin=16.0 90.0 How close the player must get. XC1 collects on contact, so this is body-sized, not a room.
Respawns bRespawns bool XenoCore › Collectable EditAnywhere, BlueprintReadWrite true If set, the orb comes back after Respawn Seconds (as in XC1). Turn off for a one-shot reward orb.
Respawn Seconds RespawnSeconds float XenoCore › Collectable EditAnywhere, BlueprintReadWrite, ClampMin=0.0, EditCondition=bRespawns 300.0 Seconds before a collected orb comes back. XC1 uses 5 minutes.
Orb Effect OrbEffect TObjectPtr<UNiagaraSystem> XenoCore › Collectable EditAnywhere, BlueprintReadWrite The glow. Left unset in C++ so no asset path is hardcoded here - B_XenoCore_CollectableOrb sets it to NS_XenoCore_CollectableOrb, and that Blueprint is what a designer places.
Collect Sound CollectSound TObjectPtr<USoundBase> XenoCore › Collectable EditAnywhere, BlueprintReadWrite Played once on collection. Unset ships silent rather than borrowing somebody else's cue.
Collect Volume CollectVolume TObjectPtr<USphereComponent> XenoCore › Collectable VisibleAnywhere, BlueprintReadOnly The overlap volume. Root, so moving the actor moves everything.
Orb Visual OrbVisual TObjectPtr<UNiagaraComponent> XenoCore › Collectable VisibleAnywhere, BlueprintReadOnly Plays Orb Effect while the orb is available.

Blueprint functions

Node Kind Signature Description
Collect Callable bool Collect() Collect now, ignoring proximity entirely.
Is Available Pure bool IsAvailable() const True while the orb is on the ground and takeable.
On Collected Event (implement in Blueprint) void K2_OnCollected(ULyraInventoryItemInstance* Instance) Called after the item has entered the bag.
On Respawned Event (implement in Blueprint) void K2_OnRespawned() Called when the orb comes back after RespawnSeconds.

AXenoCoreTreasureChest

Class · derives from AActor · header XenoCoreRuntime/Public/Loot/XenoCoreTreasureChest.h · abstract · Blueprintable

The treasure chest an enemy leaves behind.

Properties

Property C++ name Type Category Specifiers Default Description
Chest Body ChestBody TObjectPtr<UStaticMeshComponent> XenoCore › Loot VisibleAnywhere, BlueprintReadOnly The body, and the root.
Chest Lid ChestLid TObjectPtr<UStaticMeshComponent> XenoCore › Loot VisibleAnywhere, BlueprintReadOnly The lid, as a separate component so it can rotate.
Option Option FInteractionOption XenoCore › Loot EditDefaultsOnly, BlueprintReadOnly What the prompt says and which ability opening runs. Use the Blueprint ability class, not a C++ base.
Drop Table DropTable TObjectPtr<const UXenoCoreDropTable> XenoCore › Loot EditAnywhere, BlueprintReadOnly Where the contents come from. Set it on a hand-placed chest; InitialiseFromDrop writes it when an enemy drops this chest.
Tier Tier EXenoCoreChestTier XenoCore › Loot EditAnywhere, BlueprintReadOnly EXenoCoreChestTier::Wooden Rolled at death for an enemy drop - the tier is what the player sees on the ground - and authored directly on a hand-placed chest.
Source Level SourceLevel int32 XenoCore › Loot EditAnywhere, BlueprintReadOnly, ClampMin=1 1 The source enemy's level - the drop table's level bands roll against it. Set it on a hand-placed chest.
Opened bOpened bool XenoCore › Loot VisibleInstanceOnly, BlueprintReadOnly false Latch. The chest stays in the world once opened; the Blueprint decides what it looks like.
Dropped Chest bDroppedChest bool XenoCore › Loot VisibleInstanceOnly, BlueprintReadOnly false Set by InitialiseFromDrop, and by a respawn from a dropped record.
Pending Contents PendingContents TArray<TSubclassOf<ULyraInventoryItemDefinition>> XenoCore › Loot VisibleInstanceOnly, BlueprintReadOnly Rolled on Open and held until the player decides.
Lid Open Angle LidOpenAngle float XenoCore › Loot › Presentation EditDefaultsOnly 105.0 How far the lid swings, in degrees. Positive lifts the front.
Flip Hinge Side bFlipHingeSide bool XenoCore › Loot › Presentation EditDefaultsOnly false Which end of the short axis the hinge is on.
Lid Hinge Offset LidHingeOffset FVector XenoCore › Loot › Presentation EditDefaultsOnly FVector::ZeroVector Hinge position override, in the lid's own local space.
Front Yaw Offset FrontYawOffset float XenoCore › Loot › Presentation EditDefaultsOnly -90.0 Yaw from "looking at the target" to "front facing the target".
Lid Open Time LidOpenTime float XenoCore › Loot › Presentation EditDefaultsOnly, ClampMin=0.01 0.35 Seconds for the lid to swing.
Beam Mesh BeamMesh TObjectPtr<UStaticMeshComponent> XenoCore › Loot › Presentation VisibleAnywhere, BlueprintReadOnly The vertical shaft of light that says "there is loot here".
Beam Mesh Asset BeamMeshAsset TObjectPtr<UStaticMesh> XenoCore › Loot › Presentation EditDefaultsOnly The shaft's geometry. Stock /Engine/BasicShapes/Cylinder - 100uu tall, 50uu radius, centred on its own origin, which is what BeamHeight and BeamRadius are scaled against.
Beam Material BeamMaterial TObjectPtr<UMaterialInterface> XenoCore › Loot › Presentation EditDefaultsOnly The shaft's look. Expected to expose a "Colour" vector and an "Intensity" scalar - the chest makes a dynamic instance and drives both.
Beam Height BeamHeight float XenoCore › Loot › Presentation EditDefaultsOnly, ClampMin=1.0 700.0 How tall the shaft reaches, in world units.
Beam Width BeamWidth float XenoCore › Loot › Presentation EditDefaultsOnly, ClampMin=0.0 0.0 The side of the beam's square cross-section, in world units.
Beam Width Fraction BeamWidthFraction float XenoCore › Loot › Presentation EditDefaultsOnly, ClampMin=0.05, ClampMax=1.0 0.66 How much of the chest's footprint the derived beam fills, per axis.
Beam Fade Time BeamFadeTime float XenoCore › Loot › Presentation EditDefaultsOnly, ClampMin=0.01 0.4 Seconds for the shaft to rise on open, and to fade on the answer.
Beam Offset BeamOffset FVector XenoCore › Loot › Presentation EditDefaultsOnly FVector::ZeroVector An extra nudge on the beam's base, on top of the rim.
Use Rarity Beam Colour bUseRarityBeamColour bool XenoCore › Loot › Presentation EditDefaultsOnly true Colour the beam by the rarity this chest tier stands for. Off uses the Beam Colour fields.
Beam Colour Wooden BeamColourWooden FLinearColor XenoCore › Loot › Presentation EditDefaultsOnly FLinearColor(1.0, 0.86, 0.3, 1.0) The tier is the colour - one material, three tints, no second asset. Used when Use Rarity Beam Colour is off.
Beam Colour Silver BeamColourSilver FLinearColor XenoCore › Loot › Presentation EditDefaultsOnly FLinearColor(1.0, 0.92, 0.55, 1.0) Beam colour for a silver chest. Used when Use Rarity Beam Colour is off.
Beam Colour Gold BeamColourGold FLinearColor XenoCore › Loot › Presentation EditDefaultsOnly FLinearColor(1.0, 0.74, 0.16, 1.0) Beam colour for a gold chest. Used when Use Rarity Beam Colour is off.
Beam Intensity BeamIntensity float XenoCore › Loot › Presentation EditDefaultsOnly, ClampMin=0.0 4.0 Peak brightness the shaft fades up to.
Beam Opacity BeamOpacity float XenoCore › Loot › Presentation EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0 0.55 Peak opacity of the shaft.
Open Sound OpenSound TObjectPtr<USoundBase> XenoCore › Loot › Presentation EditDefaultsOnly The lid creak / chime when the chest opens.
Take Sound TakeSound TObjectPtr<USoundBase> XenoCore › Loot › Presentation EditDefaultsOnly The confirmation when the player takes the loot. Not played for "take none".
Beam Effect BeamEffect TObjectPtr<UNiagaraSystem> XenoCore › Loot › Presentation EditDefaultsOnly Optional extra particles - motes, sparkle - on top of the mesh shaft.
Open Burst Effect OpenBurstEffect TObjectPtr<UNiagaraSystem> XenoCore › Loot › Presentation EditDefaultsOnly One-shot burst out of the lid as it opens. Receives the tier colour as User.Color.
Reveal Effect RevealEffect TObjectPtr<UNiagaraSystem> XenoCore › Loot › Presentation EditDefaultsOnly One-shot burst where a dropped chest appears - only a drop has a reveal. Tier colour as User.Color.
Beam Component BeamComponent TObjectPtr<UNiagaraComponent> XenoCore › Loot › Presentation Transient, BlueprintReadOnly The live particle extra, so it can be stopped when the player answers.
Despawn Delay DespawnDelay float XenoCore › Loot › Presentation EditDefaultsOnly, ClampMin=0.0 0.75 How long the chest lingers after the player has answered.
Label Component LabelComponent TObjectPtr<UWidgetComponent> XenoCore › Loot VisibleAnywhere, BlueprintReadOnly "Treasure Chest" and the arrow, on the chest.
Label Widget Class LabelWidgetClass TSubclassOf<UUserWidget> XenoCore › Loot EditDefaultsOnly The widget drawn above the chest by LabelComponent.
Label Height LabelHeight float XenoCore › Loot EditDefaultsOnly 205.0 Height above the chest origin for the label. Sits above the button prompt.
Label Range LabelRange float XenoCore › Loot EditDefaultsOnly, ClampMin=0.0 400.0 How close the player must be to read the label.
Offer Delay After Lid OfferDelayAfterLid float XenoCore › Loot › Presentation EditDefaultsOnly, ClampMin=0.0 0.1 A beat after the lid has finished, before the panel appears.
Lid Open On Spawn bLidOpenOnSpawn bool XenoCore › Loot › Presentation EditAnywhere, BlueprintReadOnly true The lid is already open when the chest appears.

Blueprint functions

Node Kind Signature Description
Initialise From Drop Callable void InitialiseFromDrop(const UXenoCoreDropTable* InDropTable, EXenoCoreChestTier InTier, int32 InSourceLevel) Sets the drop table, tier and source level.
Open Callable void Open(AActor* Opener) Roll the contents, put them in the party bag, and announce it.
Take All Callable int32 TakeAll(AActor* Taker) Puts everything the chest offered into the party bag.
Face Actor Callable void FaceActor(const AActor* Target) Turns the chest so its front faces Target.
Take None Callable void TakeNone() XC1's "take none of them".
Get Pending Contents Pure const TArray<TSubclassOf<ULyraInventoryItemDefinition>>& GetPendingContents() const What the chest is currently offering, if anything.
Is Awaiting Decision Pure bool IsAwaitingDecision() const True while the chest is open and still holding an untaken offer.
Get Tier Pure EXenoCoreChestTier GetTier() const The chest's tier: wooden, silver or gold.
Is Opened Pure bool IsOpened() const True once the chest has been opened.
Get Source Level Pure int32 GetSourceLevel() const The level of the enemy that dropped this chest; the drop table's level bands roll against it.
Is Resolved Pure bool IsResolved() const Answered and about to despawn.
Is Dropped Chest Pure bool IsDroppedChest() const True when an enemy dropped this chest (or it was respawned from such a record).
On Opened Event (implement in Blueprint) void K2_OnOpened(const TArray<TSubclassOf<ULyraInventoryItemDefinition>>& Offered) Play the lid, spawn the beam.
On Tier Set Event (implement in Blueprint) void K2_OnTierSet(EXenoCoreChestTier InTier) Dress the chest for its tier - wood, silver or gold.
On Resolved Event (implement in Blueprint) void K2_OnResolved(bool bTookAnything) The player has answered - the offer is gone and the chest is about to despawn.
Begin Drop Reveal Callable void BeginDropReveal(float Delay) Hides the chest and keeps it unopenable for Delay seconds, then reveals it.
Is Revealed Pure bool IsRevealed() const False while the drop delay is still running.

EXenoCoreChestTier

Enum · header XenoCoreRuntime/Public/Loot/XenoCoreDropTable.h · BlueprintType

XC1's three chest tiers.

Value Shown as Description
Wooden Wooden One or two materials.
Silver Silver Materials, normal weapons, ether crystals.
Gold Gold Weapons, unique weapons, armour, Arts Manuals.

FXenoCoreChestOpenedMessage

Struct · header XenoCoreRuntime/Public/Loot/XenoCoreTreasureChest.h · BlueprintType

The payload on XenoCore.Loot.Message.ChestOpened.

Properties

Property C++ name Type Category Specifiers Default Description
Chest Chest TObjectPtr<AActor> XenoCore › Loot BlueprintReadOnly nullptr The chest. Null is not expected, but a listener outliving it is.
Tier Tier EXenoCoreChestTier XenoCore › Loot BlueprintReadOnly EXenoCoreChestTier::Wooden The chest's tier.
Offered Offered TArray<TSubclassOf<ULyraInventoryItemDefinition>> XenoCore › Loot BlueprintReadOnly What the chest is offering. Nothing has entered the bag yet.

FXenoCoreCollectableCollectedMessage

Struct · header XenoCoreRuntime/Public/Loot/XenoCoreCollectableOrb.h · BlueprintType

The payload on XenoCore.Collectable.Message.Collected.

Properties

Property C++ name Type Category Specifiers Default Description
Item Def ItemDef TSubclassOf<ULyraInventoryItemDefinition> XenoCore › Collectable BlueprintReadOnly What was picked up. Never null on a broadcast - a refused pickup does not send.
Instance Instance TObjectPtr<ULyraInventoryItemInstance> XenoCore › Collectable BlueprintReadOnly nullptr The instance that entered the bag, for anything that needs its stat tags.
Orb Orb TObjectPtr<AActor> XenoCore › Collectable BlueprintReadOnly nullptr The orb. Null is not expected, but a listener outliving it is.

FXenoCoreDropEntry

Struct · header XenoCoreRuntime/Public/Loot/XenoCoreDropTable.h · BlueprintType

One candidate item, and how heavily it is favoured against the others in its pool.

Properties

Property C++ name Type Category Specifiers Default Description
Item Def ItemDef TSoftClassPtr<ULyraInventoryItemDefinition> XenoCore › Loot EditAnywhere, BlueprintReadOnly No description.
Weight Weight float XenoCore › Loot EditAnywhere, BlueprintReadOnly, ClampMin=0.0 1.0 Relative weight within the pool. Not a percentage - the pool normalises.
Min Level MinLevel int32 XenoCore › Loot EditAnywhere, BlueprintReadOnly, ClampMin=0 0 The entry only drops from an enemy of at least this level. 0 = no lower bound.
Max Level MaxLevel int32 XenoCore › Loot EditAnywhere, BlueprintReadOnly, ClampMin=0 0 The entry only drops from an enemy of at most this level. 0 = no upper bound.

FXenoCoreDropPool

Struct · header XenoCoreRuntime/Public/Loot/XenoCoreDropTable.h · BlueprintType

What one tier of chest can contain, and how many items it rolls.

Properties

Property C++ name Type Category Specifiers Default Description
Min Items MinItems int32 XenoCore › Loot EditAnywhere, BlueprintReadOnly, ClampMin=0 1 Fewest items a chest from this pool rolls.
Max Items MaxItems int32 XenoCore › Loot EditAnywhere, BlueprintReadOnly, ClampMin=0 2 Most items a chest from this pool rolls.
Entries Entries TArray<FXenoCoreDropEntry> XenoCore › Loot EditAnywhere, BlueprintReadOnly The candidate items, each with its relative weight and optional level band.
Guarantee One Of Rarity GuaranteeOneOfRarity FGameplayTag XenoCore › Loot EditAnywhere, BlueprintReadOnly, Categories=XenoCore.Item.Rarity Every chest from this pool holds at least one item of this rarity or rarer. Empty = off.
No Duplicate Equipment bNoDuplicateEquipment bool XenoCore › Loot EditAnywhere, BlueprintReadOnly false A piece of equipment can come out of one chest at most once. Materials still repeat.

UXenoCoreDropTable

Class · derives from UPrimaryDataAsset · header XenoCoreRuntime/Public/Loot/XenoCoreDropTable.h · BlueprintType

One enemy type's loot: the odds of each chest tier, and what each tier can hold.

Properties

Property C++ name Type Category Specifiers Default Description
Silver Chance SilverChance float XenoCore › Loot EditAnywhere, BlueprintReadOnly, ClampMin=0.0, ClampMax=1.0 0.25 Chance (0-1) this enemy drops a silver chest rather than a wooden one, checked after gold.
Gold Chance GoldChance float XenoCore › Loot EditAnywhere, BlueprintReadOnly, ClampMin=0.0, ClampMax=1.0 0.02 Chance (0-1) this enemy drops a gold chest. XC1 runs roughly 1-3%.
Pools Pools TMap<EXenoCoreChestTier, FXenoCoreDropPool> XenoCore › Loot EditAnywhere, BlueprintReadOnly What each tier can contain. A tier without a pool drops an empty chest.

Blueprint functions

Node Kind Signature Description
Roll Tier Callable EXenoCoreChestTier RollTier(bool bForceGold = false) const Which chest this enemy leaves behind.
Roll Squad Tier Callable EXenoCoreChestTier RollSquadTier(float GoldMultiplier = 3.0f, bool bForceGold = false) const The tier of a squad's one chest: gold at GoldChance x GoldMultiplier (XC1: x3), otherwise silver if this table has a silver pool, else wooden.
Roll Contents Callable TArray<TSubclassOf<ULyraInventoryItemDefinition>> RollContents(EXenoCoreChestTier Tier, int32 Level = 0) const What is actually inside.

UXenoCoreLootPopupBase

Class · derives from UCommonActivatableWidget · header XenoCoreRuntime/Public/Loot/XenoCoreLootPopupBase.h · abstract · Blueprintable

The panel that says what came out of the chest.

Properties

Property C++ name Type Category Specifiers Default Description
Title Text TitleText TObjectPtr<UTextBlock> XenoCore › Loot BlueprintReadOnly, BindWidgetOptional "Treasure", or the tier name.
Item List ItemList TObjectPtr<UVerticalBox> XenoCore › Loot BlueprintReadOnly, BindWidgetOptional One text row per item is added here. Cleared on every show.
Hint Text HintText TObjectPtr<UTextBlock> XenoCore › Loot BlueprintReadOnly, BindWidgetOptional "A Close" or similar. Optional now that there are real buttons.
Take All Button TakeAllButton TObjectPtr<UCommonButtonBase> XenoCore › Loot BlueprintReadOnly, BindWidgetOptional Takes everything the bag has room for.
Quit Button QuitButton TObjectPtr<UCommonButtonBase> XenoCore › Loot BlueprintReadOnly, BindWidgetOptional Leaves the items in the chest and closes the panel.
Row Colour RowColour FLinearColor XenoCore › Loot EditDefaultsOnly FLinearColor(0.92, 0.94, 1.0, 1.0) Row text colour.
Rejected Colour RejectedColour FLinearColor XenoCore › Loot EditDefaultsOnly FLinearColor(1.0, 0.45, 0.35, 1.0) Colour for a line the bag has no room for (those items stay in the chest).
Row Font Size RowFontSize int32 XenoCore › Loot EditDefaultsOnly, ClampMin=8 20 Point size for each loot line. Taken from the title's typeface so the panel stays coherent.
Row Pip Size RowPipSize float XenoCore › Loot EditDefaultsOnly, ClampMin=0.0 0.0 Edge of one rarity diamond after each loot line; 0 uses Project Settings > XenoCore UI > Rarity Pip Size. Colours and counts come from the item rarity table rows.
Icon Set IconSet TObjectPtr<const class UXenoCoreItemIconSet> XenoCore › Loot EditDefaultsOnly Where each item category's glyph comes from. Unset draws no glyph.
Row Icon Size RowIconSize float XenoCore › Loot EditDefaultsOnly, ClampMin=4 28.0 Square size of that glyph, in slate units. Sized against RowFontSize, not the badge's 56.
Chest Chest TWeakObjectPtr<AXenoCoreTreasureChest> XenoCore › Loot BlueprintReadOnly The chest whose offer is on screen. Weak - the chest can be destroyed while the panel is up.
Fade Time FadeTime float XenoCore › Loot EditDefaultsOnly, ClampMin=0.0 0.18 Seconds for the panel to fade in, and to fade out once the player has answered.

Blueprint functions

Node Kind Signature Description
Show Loot Callable void ShowLoot(const FXenoCoreChestOpenedMessage& Message) Fills the panel from one chest's result.
Take All Callable int32 TakeAll() XC1's "take them all".
Take None Callable void TakeNone() XC1's "take none of them".
On Loot Shown Event (implement in Blueprint) void K2_OnLootShown(EXenoCoreChestTier Tier, int32 ObtainedCount, int32 RejectedCount) Content-side hook, for a tier colour or an open sting.

UXenoCoreLootPopupSubsystem

Class · derives from UWorldSubsystem · header XenoCoreRuntime/Public/Loot/XenoCoreLootPopupSubsystem.h

Puts the loot popup on screen when a chest is opened.

UXenoCoreLootStatics

Class · derives from UBlueprintFunctionLibrary · header XenoCoreRuntime/Public/Loot/XenoCoreLootStatics.h

Finds or opens the nearest treasure chest directly, bypassing the interaction system.

Blueprint functions

Node Kind Signature Description
Open Nearest Chest Callable AXenoCoreTreasureChest* OpenNearestChest(AActor* Opener, float Range = 400.0f) Opens the nearest unopened chest within Range of Opener.
Find Nearest Chest Pure AXenoCoreTreasureChest* FindNearestChest(AActor* Opener, float Range = 400.0f) The nearest unopened chest within Range, without opening it.
Get Chest Interact Range Pure float GetChestInteractRange() The distance at which a chest can be prompted for and opened.

XenoCoreRuntime / Lyra

FXenoCoreGrantedHandles

Struct · header XenoCoreRuntime/Public/Lyra/XenoCoreLyraBridge.h

What GiveAbilitySet granted, so it can be taken back - XenoCore's own copy of FLyraAbilitySet_GrantedHandles, whose arrays are protected and whose TakeFromAbilitySystem is not exported.

XenoCoreRuntime / Map

AXenoCoreMapArea

Class · derives from AActor · header XenoCoreRuntime/Public/Map/XenoCoreMapArea.h

No description.

Properties

Property C++ name Type Category Specifiers Default Description
Area Area TObjectPtr<UXenoCoreAreaDefinition> Map EditAnywhere, BlueprintReadOnly The area this map shows on the minimap: its name, map image, bounds and weather.
Bounds Preview BoundsPreview TObjectPtr<UBoxComponent> Map VisibleAnywhere No description.

Blueprint functions

Node Kind Signature Description
Get Current Area Pure UXenoCoreAreaDefinition* GetCurrentArea() The area of the map WorldContextObject is in, or null.

FXenoCoreMapMarkerStyle

Struct · derives from FTableRowBase · header XenoCoreRuntime/Public/Map/XenoCoreMinimap.h · BlueprintType

How one kind of minimap marker looks. A row of the minimap's MarkerStyles table.

Properties

Property C++ name Type Category Specifiers Default Description
Kind Kind FGameplayTag Marker EditAnywhere, BlueprintReadOnly The XenoCore.Map.Marker.* kind this row draws.
Icon Icon FSlateBrush Marker EditAnywhere, BlueprintReadOnly The icon. Its image size is ignored - Size decides.
Tint Tint FLinearColor Marker EditAnywhere, BlueprintReadOnly FLinearColor::White Colour multiplied into the icon.
Size Size FVector2D Marker EditAnywhere, BlueprintReadOnly FVector2D(12.0, 12.0) Size on the minimap, in widget units.
Rotate With Actor bRotateWithActor bool Marker EditAnywhere, BlueprintReadOnly false Turn the icon with the actor's facing (an arrow), or keep it upright (a dot, a sign).
Clamp To Rim bClampToRim bool Marker EditAnywhere, BlueprintReadOnly false Pin to the rim when out of range, pointing the way, instead of disappearing. For objectives.
Draw Order DrawOrder int32 Marker EditAnywhere, BlueprintReadOnly 0 Higher draws on top.
Tint By Enemy Danger bTintByEnemyDanger bool Marker EditAnywhere, BlueprintReadOnly false No description.
Pulse When Engaged bPulseWhenEngaged bool Marker EditAnywhere, BlueprintReadOnly false Enemies only: pulse while the enemy is fighting the party (its controller is engaged).
Label On Full Map bLabelOnFullMap bool Marker EditAnywhere, BlueprintReadOnly false On a Fill Widget map (the L3 view), print the actor's name beside the icon - an NPC's Display Name.
Label Label FText Marker EditAnywhere, BlueprintReadOnly The legend line for this kind on the L3 view. Empty = not in the legend.

UXenoCoreAreaDefinition

Class · derives from UPrimaryDataAsset · header XenoCoreRuntime/Public/Map/XenoCoreAreaDefinition.h · BlueprintType

No description.

Properties

Property C++ name Type Category Specifiers Default Description
Display Name DisplayName FText Area EditAnywhere, BlueprintReadOnly Player-facing area name.
Map Texture MapTexture TObjectPtr<UTexture2D> Map EditAnywhere, BlueprintReadOnly The baked top-down image. Empty = the minimap draws its background colour and markers only.
Map World Min MapWorldMin FVector2D Map EditAnywhere, BlueprintReadOnly FVector2D(-100000.0, -100000.0) World xy (cm) at the image's top-left corner. Written by the bake.
Map World Max MapWorldMax FVector2D Map EditAnywhere, BlueprintReadOnly FVector2D(100000.0, 100000.0) World xy (cm) at the image's bottom-right corner. Written by the bake.
Weather Table WeatherTable TObjectPtr<UDataTable> Weather EditAnywhere, BlueprintReadOnly This area's weather odds. Empty = always clear.

Blueprint functions

Node Kind Signature Description
World To Map UV Pure FVector2D WorldToMapUV(const FVector2D& WorldXY) const World xy -> 0..1 image UV.

UXenoCoreGameplayAbility_MinimapOverlay

Class · derives from ULyraGameplayAbility · header XenoCoreRuntime/Public/Map/XenoCoreGameplayAbility_MinimapOverlay.h

No description.

UXenoCoreMapMarkerSubsystem

Class · derives from UWorldSubsystem · header XenoCoreRuntime/Public/Map/XenoCoreMapMarkerSubsystem.h

No description.

Blueprint functions

Node Kind Signature Description
Get Map Markers Pure UXenoCoreMapMarkerSubsystem* GetMapMarkers() The marker registry for this world.
Register Marker Callable void RegisterMarker(AActor* Actor, FGameplayTag Kind) Draw Actor on the minimap as Kind.
Unregister Marker Callable void UnregisterMarker(AActor* Actor) Stop drawing Actor on the minimap.
Set Overlay Open Callable void SetOverlayOpen(bool bOpen) Open or close the full-screen minimap overlay.
Toggle Overlay Callable void ToggleOverlay() Flip the full-screen minimap overlay open or closed.
Is Overlay Open Pure bool IsOverlayOpen() const True while the full-screen minimap overlay is open.

UXenoCoreMinimap

Class · derives from UWidget · header XenoCoreRuntime/Public/Map/XenoCoreMinimap.h

No description.

Properties

Property C++ name Type Category Specifiers Default Description
Overlay bOverlay bool Minimap EditAnywhere, BlueprintReadWrite false This instance is the full-screen overlay (XC1 de's L3): it draws only while the overlay is open (UXenoCoreMapMarkerSubsystem::IsOverlayOpen), and ignores XenoCore.Minimap.Hide.
Fill Widget bFillWidget bool Minimap EditAnywhere, BlueprintReadWrite false No description.
Vignette Start VignetteStart float Minimap › Look EditAnywhere, BlueprintReadWrite, ClampMin=0, ClampMax=1, EditCondition=bFillWidget 0.55 Fill Widget only: where the edge fade starts, 0 (centre) to 1 (edge midpoints).
Backdrop Dim BackdropDim float Minimap › Look EditAnywhere, BlueprintReadWrite, ClampMin=0, ClampMax=1, EditCondition=bFillWidget 0.35 Fill Widget only: how much the game behind is darkened while the map is up.
Overlay Fade Seconds OverlayFadeSeconds float Minimap EditAnywhere, BlueprintReadWrite, ClampMin=0, EditCondition=bOverlay, Units=s 0.15 Overlay only: seconds to fade in on open and out on close. 0 = snap.
Edge Shade EdgeShade float Minimap › Look EditAnywhere, BlueprintReadWrite, ClampMin=0, ClampMax=1 0.28 Darkens the disc toward its rim, 0..1. Circle only.
Area Name Strip AreaNameStrip float Minimap › Text EditAnywhere, BlueprintReadWrite, ClampMin=0 0.0 No description.
Area Name Font AreaNameFont FSlateFontInfo Minimap › Text EditAnywhere, BlueprintReadWrite Font of the area name.
Text Color TextColor FLinearColor Minimap › Text EditAnywhere, BlueprintReadWrite FLinearColor(0.92, 0.88, 0.78, 1.0) Colour of the minimap's text.
Show Time And Weather bShowTimeAndWeather bool Minimap › Time And Weather EditAnywhere, BlueprintReadWrite true Show the weather icon and the time after the area name.
Time Weather Font TimeWeatherFont FSlateFontInfo Minimap › Time And Weather EditAnywhere, BlueprintReadWrite The time's font.
Weather Icon Size WeatherIconSize float Minimap › Time And Weather EditAnywhere, BlueprintReadWrite, ClampMin=0, UIMin=0 18.0 Size of the weather icon. Its image size is ignored.
Time Weather Separator TimeWeatherSeparator FText Minimap › Time And Weather EditAnywhere, BlueprintReadWrite Between the area name and the weather.
Show Day Night Dial bShowDayNightDial bool Minimap › Time And Weather EditAnywhere, BlueprintReadWrite true The sun or moon riding the rim: noon at the top, midnight at the bottom.
Sun Icon SunIcon FSlateBrush Minimap › Time And Weather EditAnywhere, BlueprintReadWrite, EditCondition=bShowDayNightDial Drawn on the rim by day. Its image size is ignored - Dial Icon Size decides.
Moon Icon MoonIcon FSlateBrush Minimap › Time And Weather EditAnywhere, BlueprintReadWrite, EditCondition=bShowDayNightDial Drawn on the rim by night.
Dial Icon Size DialIconSize FVector2D Minimap › Time And Weather EditAnywhere, BlueprintReadWrite, EditCondition=bShowDayNightDial FVector2D(22.0, 22.0) Size of the sun and moon icons on the rim.
Show Header And Legend bShowHeaderAndLegend bool Minimap › Text EditAnywhere, BlueprintReadWrite, EditCondition=bFillWidget true Fill Widget only: the area name across the top, and a legend of marker kinds bottom-left.
Header Font HeaderFont FSlateFontInfo Minimap › Text EditAnywhere, BlueprintReadWrite, EditCondition=bFillWidget Font of the header and legend.
Label Font LabelFont FSlateFontInfo Minimap › Text EditAnywhere, BlueprintReadWrite Legend lines and the names beside markers.
Leader Label LeaderLabel FText Minimap › Text EditAnywhere, BlueprintReadWrite The legend line for the leader arrow. Empty = left out.
Marker Scale MarkerScale float Minimap › Markers EditAnywhere, BlueprintReadWrite, ClampMin=0.1, UIMax=3 1.0 Multiplies every marker's size - larger icons on the big view.
Minimap Size MinimapSize FVector2D Minimap EditAnywhere, BlueprintReadWrite FVector2D(240.0, 240.0) Desired size of the whole widget (map plus rim).
World Radius WorldRadius float Minimap EditAnywhere, BlueprintReadWrite, ClampMin=500, Units=cm 6000.0 World distance (cm) from the centre to the edge of the map circle.
Rotate With Camera bRotateWithCamera bool Minimap EditAnywhere, BlueprintReadWrite false False: north is always up and the leader arrow turns (XC1's default). True: the map turns so the camera looks up.
Map Material MapMaterial TObjectPtr<UMaterialInterface> Minimap › Look EditAnywhere, BlueprintReadOnly The minimap material. Must expose the parameters UXenoCoreMinimapTools builds.
Rim Width RimWidth float Minimap › Look EditAnywhere, BlueprintReadWrite, ClampMin=0, ClampMax=0.3 0.025 Rim thickness as a fraction of the radius.
Rim Color RimColor FLinearColor Minimap › Look EditAnywhere, BlueprintReadWrite FLinearColor(0.1, 0.08, 0.06, 0.85) XC1's rim is a thin dark band, not a highlight.
Shadow Width ShadowWidth float Minimap › Look EditAnywhere, BlueprintReadWrite, ClampMin=0, ClampMax=0.2 0.05 Soft shadow outside the rim, as a fraction of the radius. 0 = none.
Shadow Opacity ShadowOpacity float Minimap › Look EditAnywhere, BlueprintReadWrite, ClampMin=0, ClampMax=1 0.45 Opacity of the shadow outside the rim.
Background Color BackgroundColor FLinearColor Minimap › Look EditAnywhere, BlueprintReadWrite FLinearColor(0.06, 0.05, 0.04, 0.8) Drawn where the area has no image (and where the image ends).
Map Opacity MapOpacity float Minimap › Look EditAnywhere, BlueprintReadWrite, ClampMin=0, ClampMax=1 0.88 Opacity of the map disc (the rim and markers stay opaque).
Map Brightness MapBrightness float Minimap › Look EditAnywhere, BlueprintReadWrite, ClampMin=0, UIMax=3 1.0 Multiplies the map image's brightness.
Leader Icon LeaderIcon FSlateBrush Minimap › Leader EditAnywhere, BlueprintReadWrite The leader: XC1's position/bearing triangle. Points up in the image.
Leader Icon Size LeaderIconSize FVector2D Minimap › Leader EditAnywhere, BlueprintReadWrite FVector2D(24.0, 24.0) Size of the leader arrow. XC1's is about a tenth of the circle across - 24 at 240 px.
Leader Tint LeaderTint FLinearColor Minimap › Leader EditAnywhere, BlueprintReadWrite FLinearColor(1.0, 0.86, 0.1, 1.0) Colour of the leader arrow.
Camera View Color CameraViewColor FLinearColor Minimap › Leader EditAnywhere, BlueprintReadWrite FLinearColor(0.88, 0.88, 0.9, 0.6) No description.
Camera View Half Angle CameraViewHalfAngle float Minimap › Leader EditAnywhere, BlueprintReadWrite, ClampMin=0, ClampMax=90, Units=deg 47.0 Half the width of the camera wedge.
Camera View Softness CameraViewSoftness float Minimap › Leader EditAnywhere, BlueprintReadWrite, ClampMin=0, ClampMax=45, Units=deg 2.5 How far the wedge's sides fade out, in degrees. 0 = a hard edge.
Camera View Outer Strength CameraViewOuterStrength float Minimap › Leader EditAnywhere, BlueprintReadWrite, ClampMin=0, ClampMax=1 0.1 The wedge's strength at the rim, relative to the leader (XC1's is brightest at the arrow and fades out). 1 = even.
Camera Cone Icon CameraConeIcon FSlateBrush Minimap › Leader EditAnywhere, BlueprintReadWrite Optional extra cone icon on the leader (apex at the image's bottom centre, opening up). Empty = none.
Camera Cone Size CameraConeSize FVector2D Minimap › Leader EditAnywhere, BlueprintReadWrite FVector2D(70.0, 70.0) Size of the camera cone icon.
Camera Cone Tint CameraConeTint FLinearColor Minimap › Leader EditAnywhere, BlueprintReadWrite FLinearColor(1.0, 0.92, 0.45, 0.45) Colour of the camera cone icon.
Marker Styles MarkerStyles TObjectPtr<UDataTable> Minimap › Markers EditAnywhere, BlueprintReadOnly FXenoCoreMapMarkerStyle rows. A kind with no row is not drawn.
Rim Clamp Inset RimClampInset float Minimap › Markers EditAnywhere, BlueprintReadWrite 10.0 Rim-clamped markers sit this far inside the rim, in widget units.

Blueprint functions

Node Kind Signature Description
Get View Angle Pure float GetViewAngle() const The angle the map is turned by right now (0 when north-up).
Get Last Marker Count Pure int32 GetLastMarkerCount() const How many markers the last paint drew.
Has Area Image Pure bool HasAreaImage() const For tests.

XenoCoreRuntime / Merchant

EXenoCoreMerchantSort

Enum · header XenoCoreRuntime/Public/Merchant/XenoCoreMerchantScreenBase.h · BlueprintType

How a merchant list orders the player's own items - trade's offer side, the shop's Sell list.

Value Shown as Description
MostRecent Most Recent Newest acquisition first - the shop Sell reference's own default.
Name Name A-Z by display name.
Value Value Cheapest first - trade's order before sorting existed, so it stays trade's default.
Rarity Rarity Rarest first, then A-Z.

UXenoCoreMerchantScreenBase

Class · derives from UCommonActivatableWidget · header XenoCoreRuntime/Public/Merchant/XenoCoreMerchantScreenBase.h · abstract · Blueprintable

The mechanics every item-list-plus-dialog screen shares - trade, shop - and nothing else.

Properties

Property C++ name Type Category Specifiers Default Description
Title Text TitleText TObjectPtr<UTextBlock> XenoCore › Merchant BlueprintReadOnly, BindWidgetOptional The screen's own name.
Item Tabs ItemTabs TObjectPtr<UCommonTabListWidgetBase> XenoCore › Merchant BlueprintReadOnly, BindWidgetOptional The category tabs - W_HorizontalTabList, the same widget the Items menu uses.
Tab Button Class TabButtonClass TSubclassOf<UCommonButtonBase> XenoCore › Merchant EditDefaultsOnly The tab button class. Use W_XenoCore_TabButton, not Lyra's W_LyraButtonTab - that one carries MinWidth 320.
Tab Icon Size TabIconSize float XenoCore › Merchant EditDefaultsOnly, ClampMin=4.0 30.0 How big a category glyph draws on a tab.
Pane Icon Size PaneIconSize float XenoCore › Merchant EditDefaultsOnly, ClampMin=4.0 28.0 How big an item icon draws in a pane or a dialog.
Header HB HeaderHB TObjectPtr<UWidget> XenoCore › Merchant BlueprintReadOnly, BindWidgetOptional The list's column headings. Collapses with the list, never separately.
Slot Header SlotHeader TObjectPtr<UTextBlock> XenoCore › Merchant BlueprintReadOnly, BindWidgetOptional The first column heading - the current category, as XC1's screens have it.
Empty List Text EmptyListText TObjectPtr<UTextBlock> XenoCore › Merchant BlueprintReadOnly, BindWidgetOptional Shown over the list when the current tab has no rows - "No items owned".
Rows Box RowsBox TObjectPtr<UVerticalBox> XenoCore › Merchant BlueprintReadOnly, BindWidgetOptional Every row goes here. Cleared on each rebuild.
Details Name DetailsName TObjectPtr<UTextBlock> XenoCore › Merchant BlueprintReadOnly, BindWidgetOptional The details card's item name, tinted by rarity.
Details Desc DetailsDesc TObjectPtr<UTextBlock> XenoCore › Merchant BlueprintReadOnly, BindWidgetOptional The details card's item description.
Details Rarity Value DetailsRarityValue TObjectPtr<UTextBlock> XenoCore › Merchant BlueprintReadOnly, BindWidgetOptional The Rarity row's value - "Legendary", in the tier colour. Optional.
Details Type Value DetailsTypeValue TObjectPtr<UTextBlock> XenoCore › Merchant BlueprintReadOnly, BindWidgetOptional The item's category.
Details Owned Value DetailsOwnedValue TObjectPtr<UTextBlock> XenoCore › Merchant BlueprintReadOnly, BindWidgetOptional How many of this item the party owns, worn copies included.
Details Stats Box DetailsStatsBox TObjectPtr<UVerticalBox> XenoCore › Merchant BlueprintReadOnly, BindWidgetOptional One UXenoCoreStatRowBase per displayed stat - the same widget and row set the Items pane and the equipment comparison use.
Stat Row Class StatRowClass TSubclassOf<UXenoCoreStatRowBase> XenoCore › Merchant EditDefaultsOnly, BlueprintReadOnly The stat row widget for the details card. Null means no stats are drawn, which is a clean opt-out.
Row Class RowClass TSubclassOf<UXenoCoreTradeRowBase> XenoCore › Merchant EditDefaultsOnly The list row widget. Required: unset logs an error and builds no rows.
Icon Set IconSet TObjectPtr<const UXenoCoreItemIconSet> XenoCore › Merchant EditDefaultsOnly Where a category's glyph comes from. One shared asset, per UXenoCoreItemIconSet.
Sort Action SortAction FDataTableRowHandle XenoCore › Merchant EditDefaultsOnly The input action that cycles the sort mode (DT_XenoCore_Actions' MerchantSort row). Unset means no sort.
Portrait Box PortraitBox TObjectPtr<UPanelWidget> XenoCore › Merchant › Character BlueprintReadOnly, BindWidgetOptional One portrait per active member, built in C++ on every change. The member being compared against is lit; the rest dim to UnselectedPortraitOpacity.
Prev Char Glyph PrevCharGlyph TObjectPtr<UCommonActionWidget> XenoCore › Merchant › Character BlueprintReadOnly, BindWidgetOptional Glyph for the previous-character input, drawn left of the portraits.
Next Char Glyph NextCharGlyph TObjectPtr<UCommonActionWidget> XenoCore › Merchant › Character BlueprintReadOnly, BindWidgetOptional Glyph for the next-character input, drawn right of the portraits.
Prev Character Action PrevCharacterAction FDataTableRowHandle XenoCore › Merchant › Character EditDefaultsOnly Step back to the previous character compared against (DT_XenoCore_Actions' PrevCharacter row).
Next Character Action NextCharacterAction FDataTableRowHandle XenoCore › Merchant › Character EditDefaultsOnly Step on to the next character compared against (DT_XenoCore_Actions' NextCharacter row).
Portrait Size PortraitSize float XenoCore › Merchant › Character EditDefaultsOnly, ClampMin=8.0 56.0 Size of each party portrait in the character toggle.
Unselected Portrait Opacity UnselectedPortraitOpacity float XenoCore › Merchant › Character EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0 0.4 Opacity of the portraits not being compared against (0 hidden, 1 fully lit).

XenoCoreRuntime / Npc

AXenoCoreNpcCharacter

Class · derives from ACharacter · header XenoCoreRuntime/Public/Npc/XenoCoreNpcCharacter.h · Blueprintable

A townsperson. Stands somewhere, loops an idle, and may have a quest.

Properties

Property C++ name Type Category Specifiers Default Description
Display Name DisplayName FText XenoCore › NPC EditAnywhere, BlueprintReadOnly The name over their head.
Has Quest bHasQuest bool XenoCore › NPC EditAnywhere, BlueprintReadOnly false Shows the "!" quest bubble over an NPC with no Quest set. Ignored when Quest is set - then the quest's own state decides.
Quest Quest TObjectPtr<UXenoCoreQuestDefinition> XenoCore › NPC EditAnywhere, BlueprintReadOnly The quest this NPC gives, if any.
Trade Offers TradeOffers TObjectPtr<UXenoCoreTradeTable> XenoCore › NPC EditAnywhere, BlueprintReadOnly What this NPC will barter. Setting it is the only thing needed to make them a trader.
Shop Table ShopTable TObjectPtr<UXenoCoreShopTable> XenoCore › NPC EditAnywhere, BlueprintReadOnly What this NPC sells, if they keep a shop. Null for everyone who does not.
Quest Id QuestId FName XenoCore › NPC EditAnywhere, BlueprintReadOnly The name a Talk To NPC objective uses for this NPC (its Target Id). Empty = none.
Member To Recruit MemberToRecruit TObjectPtr<UXenoCorePartyMemberDefinition> XenoCore › NPC › Recruit EditAnywhere, BlueprintReadOnly The character who joins the party when this NPC is talked to. Null for everyone else.
Recruit After Quest RecruitAfterQuest TObjectPtr<UXenoCoreQuestDefinition> XenoCore › NPC › Recruit EditAnywhere, BlueprintReadOnly Optional: they join only once this quest has been turned in (or accepted - see Recruit When). Empty = on the first talk.
Recruit When RecruitWhen EXenoCoreRecruitGate XenoCore › NPC › Recruit EditAnywhere, BlueprintReadOnly, EditCondition=RecruitAfterQuest != nullptr EXenoCoreRecruitGate::QuestComplete When Recruit After Quest lets them join: once it is turned in, or once it is accepted.
Not Yet Recruited Dialogue NotYetRecruitedDialogue TArray<FXenoCoreDialogueLine> XenoCore › NPC › Recruit EditAnywhere, BlueprintReadOnly Said instead of Dialogue while the recruit's quest gate is not met yet. Empty = Dialogue.
Join At Party Level bJoinAtPartyLevel bool XenoCore › NPC › Recruit EditAnywhere, BlueprintReadOnly true Arrive at least at the party's level, so a mid-story recruit is not left behind (as in XC1).
Leave When Recruited bLeaveWhenRecruited bool XenoCore › NPC › Recruit EditAnywhere, BlueprintReadOnly true Once recruited, this NPC leaves and the member's body stands where they stood.
Portrait Portrait TSoftObjectPtr<UTexture2D> XenoCore › NPC EditAnywhere, BlueprintReadOnly The face shown beside this NPC's half of a trade.
Accepted Dialogue AcceptedDialogue TArray<FXenoCoreDialogueLine> XenoCore › NPC › Dialogue EditAnywhere, BlueprintReadOnly Straight after the player accepts the quest.
Declined Dialogue DeclinedDialogue TArray<FXenoCoreDialogueLine> XenoCore › NPC › Dialogue EditAnywhere, BlueprintReadOnly Straight after the player turns it down.
In Progress Dialogue InProgressDialogue TArray<FXenoCoreDialogueLine> XenoCore › NPC › Dialogue EditAnywhere, BlueprintReadOnly While the quest is taken and unfinished - the "how are you getting on" lines.
Turn In Dialogue TurnInDialogue TArray<FXenoCoreDialogueLine> XenoCore › NPC › Dialogue EditAnywhere, BlueprintReadOnly On handing the quest in.
Face Player When Talked To bFacePlayerWhenTalkedTo bool XenoCore › NPC › Dialogue EditAnywhere, BlueprintReadOnly true This NPC turns to face the player when talked to.
Turn Back After Talking bTurnBackAfterTalking bool XenoCore › NPC › Dialogue EditAnywhere, BlueprintReadOnly, EditCondition=bFacePlayerWhenTalkedTo true After the conversation, this NPC turns back to the way it was placed facing.
Use Dialogue Camera bUseDialogueCamera bool XenoCore › NPC › Dialogue EditAnywhere, BlueprintReadOnly true Talking to this NPC moves the camera in to frame the conversation.
Dialogue Camera Rig DialogueCameraRig TObjectPtr<UCameraRigAsset> XenoCore › NPC › Dialogue EditAnywhere, BlueprintReadOnly, EditCondition=bUseDialogueCamera A framing for this NPC alone. Empty uses the project's Dialogue Camera Rig.
Interact Verb InteractVerb FText XenoCore › NPC › Interaction EditAnywhere, BlueprintReadOnly The verb the screen prompt shows: "Talk".
Dialogue Dialogue TArray<FXenoCoreDialogueLine> XenoCore › NPC › Dialogue EditAnywhere, BlueprintReadOnly What this NPC says when talked to.
Extra Interact Verbs ExtraInteractVerbs TArray<FText> XenoCore › NPC › Interaction EditAnywhere, BlueprintReadOnly A further prompt action beyond Interact Verb, shown on X - "Heart-to-Heart". Only the first entry is used, and none if this NPC has Trade Offers (Trade takes X).
Interact Range InteractRange float XenoCore › NPC › Interaction EditAnywhere, BlueprintReadOnly, ClampMin=0.0 200.0 How close the player must be for the name, the marker and the prompt.
Idle Animation IdleAnimation TObjectPtr<UAnimSequence> XenoCore › NPC › Animation EditAnywhere, BlueprintReadOnly The clip they loop while standing there.
Overhead Component OverheadComponent TObjectPtr<UWidgetComponent> XenoCore › NPC › Overhead VisibleAnywhere, BlueprintReadOnly The quest bubble, the name and the chevron - all of them, in one widget.
Overhead Widget Class OverheadWidgetClass TSubclassOf<UUserWidget> XenoCore › NPC › Overhead EditDefaultsOnly The overhead widget (quest bubble, name and chevron).
Overhead Height OverheadHeight float XenoCore › NPC › Overhead EditDefaultsOnly, ClampMin=0, UIMin=0 100.0 Where the bottom of the stack sits, above the actor origin. The capsule is 88 half-height.

Blueprint functions

Node Kind Signature Description
Get Display Name Pure FText GetDisplayName() const The name the plate over their head shows.
Has Quest Pure bool HasQuest() const True while this NPC should be wearing the quest marker.
Get Lines For Pure TArray<FXenoCoreDialogueLine> GetLinesFor(EXenoCoreNpcLine Which) const The lines for one occasion, falling back to Dialogue when that set is empty.
Get Quest Pure UXenoCoreQuestDefinition* GetQuest() const What this NPC is offering, if anything.
Get Portrait Texture Pure UTexture2D* GetPortraitTexture() const This NPC's face, loaded, or null.
Get Trade Offers Pure UXenoCoreTradeTable* GetTradeOffers() const What this NPC will barter, if anything.
Can Trade Pure bool CanTrade() const True when this NPC has anything to barter at all.
Is Trade Verb Pure bool IsTradeVerb(int32 VerbIndex) const Was this press the Trade button?
Get Shop Table Pure UXenoCoreShopTable* GetShopTable() const What this NPC's shop sells, if they keep one.
Get Quest Id Pure FName GetQuestId() const The name Talk To NPC objectives use for this NPC.
Can Shop Pure bool CanShop() const True when this NPC keeps a shop - the graph's gate for opening it after the conversation.
Can Recruit Pure bool CanRecruit() const True when talking to this NPC would recruit Member To Recruit right now.
Is Recruit Gate Met Pure bool IsRecruitGateMet() const True when Recruit After Quest is empty or has reached Recruit When.
Try Recruit Callable bool TryRecruit() Recruit Member To Recruit if Can Recruit.
On Interact Event (implement in Blueprint) void K2_OnInteract(AActor* Interactor, int32 VerbIndex) The press, handed to the Blueprint.

EXenoCoreNpcLine

Enum · header XenoCoreRuntime/Public/Npc/XenoCoreNpcCharacter.h · BlueprintType

Which set of lines an NPC should say.

Value Shown as Description
Greeting Greeting The opener, and what is said before a quest is offered.
Accepted Accepted Straight after the player accepts.
Declined Declined Straight after the player declines.
InProgress In Progress Quest taken, objectives outstanding.
TurnIn Turn In On handing the quest in.

EXenoCoreRecruitGate

Enum · header XenoCoreRuntime/Public/Npc/XenoCoreNpcCharacter.h · BlueprintType

When a recruit's Recruit After Quest lets them join.

Value Shown as Description
QuestComplete Quest Complete Once the quest is turned in - "help me first, then I'll come".
QuestAccepted Quest Accepted Once the quest is accepted - "the ranger sent you? I'll come".

XenoCoreRuntime / Party

AXenoCorePartyCharacter

Class · derives from AXenoCoreCombatantCharacter · header XenoCoreRuntime/Public/Party/XenoCorePartyCharacter.h · Blueprintable

A playable character the party owns a body for. It exists to carry the components every party member needs and the player's own pawn already had - nothing else.

Properties

Property C++ name Type Category Specifiers Default Description
Death Montages DeathMontages TArray<TObjectPtr<UAnimMontage>> XenoCore › Death EditDefaultsOnly One is picked at random on death. Empty means no performance - the body just goes limp.
Ragdoll Delay Min RagdollDelayMin float XenoCore › Death EditDefaultsOnly, ClampMin=0.0 0.1 Shortest wait, in seconds, between the death montage starting and the body going limp.
Ragdoll Delay Max RagdollDelayMax float XenoCore › Death EditDefaultsOnly, ClampMin=0.0 0.6 Longest wait, in seconds, before the ragdoll. The actual wait is random between Min and Max.
Ragdoll Impulse Bone RagdollImpulseBone FName XenoCore › Death EditDefaultsOnly FName("Pelvis") Bone that receives the push when the body goes limp.
Ragdoll Impulse Strength RagdollImpulseStrength float XenoCore › Death EditDefaultsOnly, ClampMin=0.0 500.0 Extra push, along the body's last movement direction, added to RagdollImpulseBone as it goes limp.
Equipment Component EquipmentComponent TObjectPtr<UXenoCoreEquipmentComponent> XenoCore › Party VisibleAnywhere, BlueprintReadOnly Worn gear, per pawn. The pawn-side combat home.
Perception Stimuli Component PerceptionStimuliComponent TObjectPtr<UAIPerceptionStimuliSourceComponent> XenoCore › Party VisibleAnywhere, BlueprintReadOnly So enemies can perceive a member exactly as they perceive the player's own pawn.
Context Effect Component ContextEffectComponent TObjectPtr<ULyraContextEffectComponent> XenoCore › Party VisibleAnywhere, BlueprintReadOnly Footstep and surface effects, matching B_XenoCore_Player.

AXenoCorePartyMemberController

Class · derives from AModularAIController · header XenoCoreRuntime/Public/Party/XenoCorePartyMemberController.h · Blueprintable

The AI controller every party member is possessed by. Like the enemy controller it carries the team and very little else - the behaviour lives in a StateTree on the pawn's UStateTreeAIComponent, as data.

Properties

Property C++ name Type Category Specifiers Default Description
Combat Spot Query CombatSpotQuery TSoftObjectPtr<UEnvQuery> XenoCore › AI EditDefaultsOnly, BlueprintReadOnly The EQS query that picks where this companion stands in a fight. Unset = walk straight at the target.
Crowd Avoidance While Travelling bCrowdAvoidanceWhileTravelling bool XenoCore › AI › Crowd EditAnywhere, BlueprintReadWrite false Keep Detour Crowd avoidance on while travelling. Off: members follow their paths straight (no jitter); battle always avoids.
Crowd Avoidance Quality CrowdAvoidanceQuality EXenoCoreCrowdQuality XenoCore › AI › Crowd EditAnywhere, BlueprintReadWrite EXenoCoreCrowdQuality::Low Detour Crowd sampling quality while it is on. Measured: higher qualities wobble more, not less.
Crowd Anticipate Turns bCrowdAnticipateTurns bool XenoCore › AI › Crowd EditAnywhere, BlueprintReadWrite false Steer for the next corner early instead of at it. Measured: more wobble in a group.
Crowd Separation Weight CrowdSeparationWeight float XenoCore › AI › Crowd EditAnywhere, BlueprintReadWrite, ClampMin=0 2.0 How hard members push apart. Engine default 2.
Crowd Collision Query Range CrowdCollisionQueryRange float XenoCore › AI › Crowd EditAnywhere, BlueprintReadWrite, ClampMin=50, Units=Centimeters 400.0 How far a member looks for others to avoid. Engine default 400.
Gaze Target Socket GazeTargetSocket FName XenoCore › AI › Gaze EditDefaultsOnly, BlueprintReadOnly "head" The bone or socket an actor gaze aims at. Falls back to the actor's eye height when the actor has no such socket.
Back Spot Query BackSpotQuery TSoftObjectPtr<UEnvQuery> XenoCore › AI EditDefaultsOnly, BlueprintReadOnly The query used while an art wants to be behind the target. Unset = spacing query.
Side Spot Query SideSpotQuery TSoftObjectPtr<UEnvQuery> XenoCore › AI EditDefaultsOnly, BlueprintReadOnly The query used while an art wants to be beside the target. Unset = spacing query.
Combat Spot Requery Interval CombatSpotRequeryInterval float XenoCore › AI EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.1, Units=Seconds 2.0 Re-pick the spot at least this often while fighting, in seconds.
Combat Spot Stagger CombatSpotStagger float XenoCore › AI EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.0, Units=Seconds 0.2 Seconds per party slot before a companion first picks a spot on a new target, so each sees the claims of the slots before it.
Combat Spot Target Drift CombatSpotTargetDrift float XenoCore › AI EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.0, Units=Centimeters 150.0 Re-pick the spot early when the target has moved this far from where it was chosen.
Engaged Enemy Radius EngagedEnemyRadius float XenoCore › AI EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.0, Units=Centimeters 3000.0 How far an enemy can be and still count as fighting near us. Tuning value, not sourced.
State Tree AI StateTreeAI TObjectPtr<UStateTreeAIComponent> XenoCore › AI VisibleAnywhere, BlueprintReadOnly The brain. Native rather than added per Blueprint so it can never be missing.
Team Id TeamId int32 XenoCore › Teams EditDefaultsOnly, BlueprintReadOnly 1 Fallback team for a member that was hand-placed rather than spawned by UXenoCorePartyComponent. The normal path overwrites this before possession - see the header.

Blueprint functions

Node Kind Signature Description
Get Follow Target Pure APawn* GetFollowTarget() const The pawn this member walks after - the party leader, which in the current slice is always the player's own pawn.
Get Party Slot Pure int32 GetPartySlot() const This member's slot in the active party (0 is the leader).
Get Group Goal Location Pure FVector GetGroupGoalLocation() const Where the party is headed - the leader's bare location, and nothing else.
Get Combat Target Pure AActor* GetCombatTarget() const Who this member is fighting, per the party command: the leader's target, its own pick, or nobody (Come to Me).
Is Party In Battle Pure bool IsPartyInBattle() const Is the party in battle: the leader has drawn, or an enemy nearby is fighting the party.
Find Nearest Engaged Enemy Pure AActor* FindNearestEngagedEnemy() const The nearest enemy within EngagedEnemyRadius that is fighting the party, or null.
Get Combat Spot Pure bool GetCombatSpot(FVector& OutSpot) const The spot this companion has claimed in the current fight.
Has Combat Spot Pure bool HasCombatSpot() const True while this companion has claimed a spot in the current fight.
Update Combat Spot Callable void UpdateCombatSpot(AActor* Target) Keep the claimed spot current for Target: asks CombatSpotQuery again when the target changes, drifts more than CombatSpotTargetDrift from where the spot was chosen, or every CombatSpotRequeryInterval.
Clear Combat Spot Callable void ClearCombatSpot() No description.
Set Desired Position Callable void SetDesiredPosition(EXenoCoreArtPositional Position) Where the next spot should be relative to the target: behind, beside, or anywhere (None = spacing only).
Get Desired Position Pure EXenoCoreArtPositional GetDesiredPosition() const Where the next spot should be relative to the target, as last set by SetDesiredPosition.
Set Gaze Target Callable void SetGazeTarget(AActor* Actor, FVector Location) Point the head at an actor (tracked) or, with no actor, at a fixed world location.
Clear Gaze Target Callable void ClearGazeTarget() Look straight ahead again.
Get Gaze Location Pure bool GetGazeLocation(FVector& OutLocation) const Where the head should look this frame.
Get Gaze Actor Pure AActor* GetGazeActor() const The actor being looked at, if the gaze is on an actor.
Request Attention Callable void RequestAttention(AActor* Actor, float Seconds) Ask this member to look at Actor for Seconds, over whatever the gaze task would pick.
Get Attention Request Pure AActor* GetAttentionRequest() const The live attention request, or null once it has expired.
Update Crowd Steering Callable void UpdateCrowdSteering(bool bInBattle) Avoidance on for battle, off for travel unless bCrowdAvoidanceWhileTravelling.
Apply Crowd Settings Callable void ApplyCrowdSettings() Push the Crowd settings above onto the path-following component.

AXenoCorePartyRecruitTrigger

Class · derives from AActor · header XenoCoreRuntime/Public/Party/XenoCorePartyRecruitTrigger.h · Blueprintable

Drag it into the level, set one field, and a character joins the party when the player walks in.

Properties

Property C++ name Type Category Specifiers Default Description
Member To Recruit MemberToRecruit TObjectPtr<UXenoCorePartyMemberDefinition> XenoCore › Party EditAnywhere, BlueprintReadWrite The character who joins. This is the only field a designer has to set.
Activate Immediately bActivateImmediately bool XenoCore › Party EditAnywhere, BlueprintReadWrite true Put them straight into the active party if there is a free slot.
Join At Party Level bJoinAtPartyLevel bool XenoCore › Party EditAnywhere, BlueprintReadWrite true Arrive at least at the party's level, so a mid-story recruit is not left behind.
Recruit On Overlap bRecruitOnOverlap bool XenoCore › Party EditAnywhere, BlueprintReadWrite true Fire when the player walks into the volume.
Destroy After Recruiting bDestroyAfterRecruiting bool XenoCore › Party EditAnywhere, BlueprintReadWrite true Destroy this actor once it has fired.
Recruit Volume RecruitVolume TObjectPtr<UBoxComponent> XenoCore › Party VisibleAnywhere, BlueprintReadOnly The volume the player walks into. Sized in the level like any other trigger.

Blueprint functions

Node Kind Signature Description
Recruit Callable void Recruit() Recruit now, ignoring the volume entirely.
On Recruited Event (implement in Blueprint) void K2_OnRecruited(const UXenoCorePartyMemberDefinition* Member) Called after the character has joined.

EXenoCoreArtsOrder

Enum · header XenoCoreRuntime/Public/Party/XenoCorePartyTactics.h · BlueprintType

The Arts tactic's values, in order.

Value Shown as Description
All All Every art, the Talent Art included.
HoldTalent Hold Talent Every art but the Talent Art - the gauge stays full for the player's call.
AutoOnly Auto Only Auto-attack only: no arts at all, heals included.

EXenoCoreAttackOrder

Enum · header XenoCoreRuntime/Public/Party/XenoCorePartyTactics.h · BlueprintType

The Attack tactic's values, in order.

Value Shown as Description
Focus Focus Attack the leader's target. XC1 "Focus attacks!", XC3 Focus Attacks on, xcx "Concentrate fire!".
AtWill At Will Each companion picks its own target (AI profile › Target Choice). XC1 "Engage at will!".
Regroup Regroup Stop attacking and gather round the leader, weapon drawn. XC1 "Come to me!", XC3 Follow Leader, xcx "Assemble!".

EXenoCoreCrowdQuality

Enum · header XenoCoreRuntime/Public/Party/XenoCorePartyMemberController.h · BlueprintType

Detour Crowd avoidance quality - the engine's ECrowdAvoidanceQuality, which is not a uenum.

Value Shown as Description
Low Low No description.
Medium Medium No description.
Good Good No description.
High High No description.

EXenoCorePartyCommandInput

Enum · header XenoCoreRuntime/Public/Party/XenoCoreGameplayAbility_PartyCommand.h · BlueprintType

What one party-tactics button does.

Value Shown as Description
ToggleTactic Toggle Tactic Flip one tactic for the whole party between two of its values (tap X: Attack, Focus <-> At Will).
HoldTacticsPanel Hold Tactics Panel Hold the tactics panel open until the button is released (hold X).
StepScope Step Scope Step who the open panel's orders are for (the bumpers while X is held). Does nothing with the panel closed.

EXenoCorePartyCursorPurpose

Enum · header XenoCoreRuntime/Public/Party/XenoCorePartyComponent.h · BlueprintType

What the party cursor is choosing a member for - each purpose decides who it may stop on.

Value Shown as Description
AllyTarget Ally Target An ally-targeted art (Light Heal): any member.
Switch Switch The ZL switch: the leader (releasing there cancels) or anyone who can take control.

EXenoCorePartyNoticeType

Enum · header XenoCoreRuntime/Public/Party/XenoCorePartyNotice.h · BlueprintType

Which way a character crossed the active-party line.

Value Shown as Description
Joined Joined Entered the active party.
Left Left Left it - benched by a swap, or removed outright.

EXenoCorePartySwitchMode

Enum · header XenoCoreRuntime/Public/Party/XenoCoreGameplayAbility_PartySwitch.h · BlueprintType

What a press of the switch input does.

Value Shown as Description
Next Next Tap: control to the next member down the column.
Previous Previous Control to the next member up the column. Not bound by default - a tap only goes forward.
Select Select Hold: a cursor on the party column; the D-pad moves it, releasing the input commits.

EXenoCorePartyWipePhase

Enum · header XenoCoreRuntime/Public/Party/XenoCorePartyComponent.h · BlueprintType

Which half of a party wipe a FXenoCorePartyWipedMessage announces.

Value Shown as Description
Defeated Defeated Every active member is down. The fade to black is about to start.
Respawned Respawned The party stands again at the respawn point, at full health. The fade back in has started.

EXenoCoreRole

Enum · header XenoCoreRuntime/Public/Party/XenoCoreRole.h · BlueprintType

A character's battle role.

Value Shown as Description
None None Unset. A member that has not been given a role - drawn as nothing, never as "Attacker".
Attacker Attacker Damage. Avoids aggro.
Defender Defender Holds enemy attention: slower threat decay, and the Burst bonus.
Healer Healer Recovery and revival. Avoids aggro, despite healing generating it at ×1.25.

EXenoCoreTactic

Enum · header XenoCoreRuntime/Public/Party/XenoCorePartyTactics.h · BlueprintType

One party tactic. Attack and Arts have three values each; the rest are off / on.

Value Shown as Description
Attack Attack Who to attack: EXenoCoreAttackOrder. XC1's three group commands; XC3 Focus Attacks + Follow Leader.
StayBack Stay Back Hold back from the target and fight with what reaches from there (xcx "Use ranged attacks!").
HealFirst Heal First Heal earlier and put heal arts first. Unsourced: no Xenoblade tactics list has a healing order.
Arts Arts Which arts to use: EXenoCoreArtsOrder. All / No Talent (our xcx "Keep your tension up!") / Auto Only (xcx "Assemble!").

EXenoCoreTacticsDirection

Enum · header XenoCoreRuntime/Public/Party/XenoCorePartyTactics.h · BlueprintType

A D-pad press on the open tactics list: Up/Down move the highlight, Left/Right step the highlighted tactic's value.

Value Shown as Description
Up Up No description.
Right Right No description.
Down Down No description.
Left Left No description.

FXenoCoreMemberOrders

Struct · header XenoCoreRuntime/Public/Party/XenoCorePartyTactics.h

A member's own orders: a value per tactic, used only where its bit in OverrideMask is set.

FXenoCorePartyChangedMessage

Struct · header XenoCoreRuntime/Public/Party/XenoCorePartyComponent.h · BlueprintType

Broadcast on XenoCore.Party.Message.Changed whenever the roster, the active party or the leader moves.

Properties

Property C++ name Type Category Specifiers Default Description
Owning Controller OwningController TObjectPtr<AController> XenoCore › Party BlueprintReadOnly nullptr The controller whose party changed. Single-player, so always the local player's.
Active Count ActiveCount int32 XenoCore › Party BlueprintReadOnly 0 How many characters are currently active. Includes the leader - see the class comment.

FXenoCorePartyGaugeChangedMessage

Struct · header XenoCoreRuntime/Public/Party/XenoCorePartyGaugeComponent.h · BlueprintType

Broadcast on XenoCore.PartyGauge.Message.Changed whenever the gauge moves.

Properties

Property C++ name Type Category Specifiers Default Description
Old Points OldPoints float XenoCore › PartyGauge BlueprintReadOnly 0.0 Points before the change.
New Points NewPoints float XenoCore › PartyGauge BlueprintReadOnly 0.0 Points after the change.
Max Points MaxPoints float XenoCore › PartyGauge BlueprintReadOnly 0.0 Points in a completely full gauge.
Points Per Bar PointsPerBar float XenoCore › PartyGauge BlueprintReadOnly 0.0 Points in one bar.
Reason Reason FGameplayTag XenoCore › PartyGauge BlueprintReadOnly Why it moved - a XenoCore.PartyGauge.Reason.* tag. Empty for the out-of-battle drain.

FXenoCorePartyNotice

Struct · header XenoCoreRuntime/Public/Party/XenoCorePartyNotice.h · BlueprintType

One queued announcement.

Properties

Property C++ name Type Category Specifiers Default Description
Member Member TObjectPtr<UXenoCorePartyMemberDefinition> XenoCore › Party BlueprintReadOnly nullptr The character the notice is about.
Type Type EXenoCorePartyNoticeType XenoCore › Party BlueprintReadOnly EXenoCorePartyNoticeType::Joined Whether the character joined or left the active party.

FXenoCorePartyOrders

Struct · header XenoCoreRuntime/Public/Party/XenoCorePartyTactics.h · BlueprintType

One value per tactic - the party's orders, or a member's own.

Properties

Property C++ name Type Category Specifiers Default Description
Attack Attack EXenoCoreAttackOrder XenoCore › Party › Tactics EditAnywhere, BlueprintReadWrite EXenoCoreAttackOrder::Focus Who to attack: the leader's target, each companion's own pick, or nobody (regroup on the leader).
Arts Arts EXenoCoreArtsOrder XenoCore › Party › Tactics EditAnywhere, BlueprintReadWrite EXenoCoreArtsOrder::All Which arts to use: all, all but the Talent Art, or auto-attack only.
Heal First bHealFirst bool XenoCore › Party › Tactics EditAnywhere, BlueprintReadWrite false Heal earlier and put heal arts first.
Stay Back bStayBack bool XenoCore › Party › Tactics EditAnywhere, BlueprintReadWrite false Hold back from the target and fight with what reaches from there.

FXenoCorePartyWipedMessage

Struct · header XenoCoreRuntime/Public/Party/XenoCorePartyComponent.h · BlueprintType

Broadcast on XenoCore.Party.Message.Wiped, twice per wipe - once per phase.

Properties

Property C++ name Type Category Specifiers Default Description
Owning Controller OwningController TObjectPtr<AController> XenoCore › Party BlueprintReadOnly nullptr No description.
Phase Phase EXenoCorePartyWipePhase XenoCore › Party BlueprintReadOnly EXenoCorePartyWipePhase::Defeated No description.
Respawn Transform RespawnTransform FTransform XenoCore › Party BlueprintReadOnly FTransform::Identity Where the party is being sent. Final by Defeated, so a UI can name it before the fade.

FXenoCoreTacticChangedMessage

Struct · header XenoCoreRuntime/Public/Party/XenoCorePartyTactics.h · BlueprintType

Broadcast on XenoCore.Party.Message.TacticChanged whenever a tactic changes, for the party or one member.

Properties

Property C++ name Type Category Specifiers Default Description
Owning Controller OwningController TObjectPtr<AController> XenoCore › Party › Tactics BlueprintReadOnly nullptr The player controller that owns the party.
Member Member TObjectPtr<const UXenoCorePartyMemberDefinition> XenoCore › Party › Tactics BlueprintReadOnly nullptr The member whose order changed, or null for the whole party.
Tactic Tactic EXenoCoreTactic XenoCore › Party › Tactics BlueprintReadOnly EXenoCoreTactic::Attack The tactic that changed.
Value Value int32 XenoCore › Party › Tactics BlueprintReadOnly 0 The new value, or INDEX_NONE when a member went back to following the party.

FXenoCoreTacticInfo

Struct · header XenoCoreRuntime/Public/Party/XenoCorePartyTactics.h · BlueprintType

What the player reads and hears for one tactic. One row per tactic on the party component.

Properties

Property C++ name Type Category Specifiers Default Description
Label Label FText XenoCore › Party › Tactics EditAnywhere, BlueprintReadOnly The tactic's name on the list.
Description Description FText XenoCore › Party › Tactics EditAnywhere, BlueprintReadOnly What the tactic does, in a sentence.
Values Values TArray<FXenoCoreTacticValue> XenoCore › Party › Tactics EditAnywhere, BlueprintReadOnly Its values in order; index 0 is the first. On/off tactics are { off, on }.
Sound Sound TObjectPtr<USoundBase> XenoCore › Party › Tactics EditAnywhere, BlueprintReadOnly nullptr Played as a UI sound when the tactic changes. None = silent.

FXenoCoreTacticValue

Struct · header XenoCoreRuntime/Public/Party/XenoCorePartyTactics.h · BlueprintType

One value of a tactic: what the list, the battle line and the orders line say for it.

Properties

Property C++ name Type Category Specifiers Default Description
Label Label FText XenoCore › Party › Tactics EditAnywhere, BlueprintReadOnly The value on the list: on, off, Focus, At Will...
Line Line FText XenoCore › Party › Tactics EditAnywhere, BlueprintReadOnly The battle line over the leader when the tactic is set to this value. Empty = no line.
Summary Summary FText XenoCore › Party › Tactics EditAnywhere, BlueprintReadOnly The word in the always-on orders line while the party is on this value. Empty = not shown.
Colour Colour FLinearColor XenoCore › Party › Tactics EditAnywhere, BlueprintReadOnly FLinearColor(0.62, 0.64, 0.7, 1.0) The value's colour on the list and its battle line.

UXenoCoreGameplayAbility_PartyCommand

Class · derives from ULyraGameplayAbility · header XenoCoreRuntime/Public/Party/XenoCoreGameplayAbility_PartyCommand.h · abstract

A party-tactics button: toggle a tactic, hold the tactics panel open, or step the panel's scope.

Properties

Property C++ name Type Category Specifiers Default Description
Mode Mode EXenoCorePartyCommandInput XenoCore › Party › Tactics EditDefaultsOnly EXenoCorePartyCommandInput::ToggleTactic What this button does.
Tactic Tactic EXenoCoreTactic XenoCore › Party › Tactics EditDefaultsOnly, EditCondition=Mode == EXenoCorePartyCommandInput::ToggleTactic EXenoCoreTactic::Attack ToggleTactic: the tactic this button flips, for the whole party.
Value A ValueA int32 XenoCore › Party › Tactics EditDefaultsOnly, ClampMin=0, UIMin=0, EditCondition=Mode == EXenoCorePartyCommandInput::ToggleTactic 0 ToggleTactic: the value it sets, unless the tactic is already on it (then ValueB). Attack: 0 Focus, 1 At Will, 2 Regroup.
Value B ValueB int32 XenoCore › Party › Tactics EditDefaultsOnly, ClampMin=0, UIMin=0, EditCondition=Mode == EXenoCorePartyCommandInput::ToggleTactic 1 ToggleTactic: the value it sets when the tactic is already on ValueA.
Scope Delta ScopeDelta int32 XenoCore › Party › Tactics EditDefaultsOnly, EditCondition=Mode == EXenoCorePartyCommandInput::StepScope 1 StepScope: +1 forward, -1 back.

UXenoCoreGameplayAbility_PartySwitch

Class · derives from ULyraGameplayAbility · header XenoCoreRuntime/Public/Party/XenoCoreGameplayAbility_PartySwitch.h · abstract

XC3's ZL: tap switches control to the next party member, hold opens a selector on the party rows.

Properties

Property C++ name Type Category Specifiers Default Description
Mode Mode EXenoCorePartySwitchMode XenoCore › Party › Switch EditDefaultsOnly EXenoCorePartySwitchMode::Next Tap or hold - see EXenoCorePartySwitchMode.

UXenoCorePartyComponent

Class · derives from UControllerComponent · header XenoCoreRuntime/Public/Party/XenoCorePartyComponent.h

The party: who has been recruited, who is currently fighting, and who leads. Owns spawning and despawning their pawns, and is the Blueprint surface story events drive the party through.

Properties

Property C++ name Type Category Specifiers Default Description
Starting Roster StartingRoster TArray<TObjectPtr<UXenoCorePartyMemberDefinition>> XenoCore › Party EditDefaultsOnly Members the party starts with. A convenience for testing and for a template buyer opening the project - the real game recruits through AddToRoster from story events.
Max Active Members MaxActiveMembers int32 XenoCore › Party EditDefaultsOnly, ClampMin=1 3 How many characters may be active at once, the leader included. Extra roster members wait in reserve.
Revive Bar Cost ReviveBarCost int32 XenoCore › Party › Revive EditDefaultsOnly, ClampMin=0 1 Party Gauge bars a revive costs. XC1: one bar.
Revive Health Fraction ReviveHealthFraction float XenoCore › Party › Revive EditDefaultsOnly, ClampMin=0.01, ClampMax=1.0 0.3 Health a revived member comes back with, as a fraction of max. Unsourced for XC1 - 0.3 is XC2's; XC3's is 0.15.
Revive Range ReviveRange float XenoCore › Party › Revive EditDefaultsOnly, ClampMin=10.0 110.0 How close the reviver must stand, in cm. XC1 revives by moving over the body.
Battle Over Grace BattleOverGrace float XenoCore › Party › Battle EditDefaultsOnly, ClampMin=0.0 1.0 How long no enemy may be engaged before the battle counts as over - and the downed get up at 1 HP. The end trigger, not a second "in battle" signal: it is the enemies giving up, so the palette's Flee only revives anyone once the party has actually got away.
Out Of Battle Regen Per Second OutOfBattleRegenPerSecond float XenoCore › Party › Recovery EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0 0.1 Fraction of max HP each party member recovers per second out of battle. 0 turns recovery off.
Out Of Battle Regen Delay OutOfBattleRegenDelay float XenoCore › Party › Recovery EditDefaultsOnly, ClampMin=0.0, Units=Seconds 1.0 Seconds after the battle ends before recovery starts.
Default Tactics DefaultTactics FXenoCorePartyOrders XenoCore › Party › Tactics EditDefaultsOnly, BlueprintReadOnly The party's orders when a session starts.
Tactic Info TacticInfo TMap<EXenoCoreTactic, FXenoCoreTacticInfo> XenoCore › Party › Tactics EditDefaultsOnly, BlueprintReadOnly Text, battle lines and sound per tactic. A tactic with no row shows its enum name and says nothing.
Tactics List TacticsList TArray<EXenoCoreTactic> XenoCore › Party › Tactics EditDefaultsOnly, BlueprintReadOnly The tactics the panel lists, top to bottom. Leave one out to keep it off the panel (it still works from code or its own button).
Heal First Threshold HealFirstThreshold float XenoCore › Party › Tactics EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.0, ClampMax=100.0, Units=Percent 70.0 Prioritise Healing: heal arts become eligible when an ally drops below this much health, instead of the AI profile's own Heal Threshold.
Heal First Bonus HealFirstBonus float XenoCore › Party › Tactics EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.0 3.0 Prioritise Healing: added to a heal art's AI score, so it beats the attack arts.
Stay Back Distance StayBackDistance float XenoCore › Party › Tactics EditDefaultsOnly, BlueprintReadOnly, ClampMin=100.0, Units=Centimeters 750.0 Stay Back: how far from its target a companion holds, in cm.
Regroup Ends With Battle bRegroupEndsWithBattle bool XenoCore › Party › Tactics EditDefaultsOnly, BlueprintReadOnly false When the battle ends, turn every Attack: Regroup back to Focus.
Follow Party Line FollowPartyLine FText XenoCore › Party › Tactics EditDefaultsOnly, BlueprintReadOnly The battle line when a member goes back to the party's order ("Mira: Back to the party's orders!"). Empty = silent.
Tactics Panel Class TacticsPanelClass TSubclassOf<UXenoCoreTacticsPanelBase> XenoCore › Party › Tactics EditDefaultsOnly, BlueprintReadOnly The widget drawing the orders label and the panel. Set a Blueprint child of UXenoCoreTacticsPanelBase to restyle it; None = no widget.
Tactics Panel Z Order TacticsPanelZOrder int32 XenoCore › Party › Tactics EditDefaultsOnly, BlueprintReadOnly 20 The panel's Z order on the player's screen. Higher draws on top.
Leader Slot LeaderSlot int32 XenoCore › Party EditDefaultsOnly, ClampMin=0 0 The active slot the player drives.
Leader Only Ability Set LeaderOnlyAbilitySet TObjectPtr<const ULyraAbilitySet> XenoCore › Party EditDefaultsOnly Abilities only the player-driven body may have - interact, and anything else that asserts on a PlayerController.
Default Controller Class DefaultControllerClass TSubclassOf<AXenoCorePartyMemberController> XenoCore › Party EditDefaultsOnly Used when a member definition names no ControllerClass of its own.
Wipe Fade Delay WipeFadeDelay float XenoCore › Party › Wipe EditDefaultsOnly, ClampMin=0.0 2.5 Seconds between the last member falling and the fade starting - long enough to see it.
Wipe Fade Out Duration WipeFadeOutDuration float XenoCore › Party › Wipe EditDefaultsOnly, ClampMin=0.0 1.0 Seconds the screen takes to fade out after a wipe.
Wipe Hold Duration WipeHoldDuration float XenoCore › Party › Wipe EditDefaultsOnly, ClampMin=0.1 0.5 Seconds held on black after the respawn, before the fade back in.
Wipe Fade In Duration WipeFadeInDuration float XenoCore › Party › Wipe EditDefaultsOnly, ClampMin=0.0 1.0 Seconds the screen takes to fade back in once the party stands again.
Wipe Fade Colour WipeFadeColour FLinearColor XenoCore › Party › Wipe EditDefaultsOnly FLinearColor::Black The colour the screen fades to during a wipe.
Defeat Time Dilation DefeatTimeDilation float XenoCore › Party › Wipe › Defeat EditDefaultsOnly, ClampMin=0.05, ClampMax=1.0 0.35 World time scale through the defeat beat. 1 turns the slow motion off.
Defeat Saturation DefeatSaturation float XenoCore › Party › Wipe › Defeat EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0 0.15 How much colour is left at the end of the beat: 0 grey, 1 untouched.
Defeat Desaturate Seconds DefeatDesaturateSeconds float XenoCore › Party › Wipe › Defeat EditDefaultsOnly, ClampMin=0.0 0.9 Real seconds for the colour to drain.
Defeat Banner Class DefeatBannerClass TSubclassOf<UXenoCoreDefeatBannerBase> XenoCore › Party › Wipe › Defeat EditDefaultsOnly The line over the beat. None turns it off.
Defeat Text DefeatText FText XenoCore › Party › Wipe › Defeat EditDefaultsOnly NSLOCTEXT("XenoCore", "DefeatText", "Defeated") The text the defeat banner shows.
Defeat Sound DefeatSound TObjectPtr<USoundBase> XenoCore › Party › Wipe › Defeat EditDefaultsOnly Played once as the beat starts.
Revive Gesture Montage ReviveGestureMontage TObjectPtr<UAnimMontage> XenoCore › Party › Revive EditDefaultsOnly Played on whoever revives, as the revive lands.
Revive Refused Text ReviveRefusedText FText XenoCore › Party › Revive EditDefaultsOnly NSLOCTEXT("XenoCoreParty", "ReviveRefused", "Party Gauge ... Shown over the downed ally when a revive is refused for want of a Party Gauge bar. Empty shows nothing.
Revive Refused Colour ReviveRefusedColour FLinearColor XenoCore › Party › Revive EditDefaultsOnly FLinearColor(1.0, 0.36, 0.3, 1.0) Colour of the revive-refused line.
Revive Refused Scale ReviveRefusedScale float XenoCore › Party › Revive EditDefaultsOnly, ClampMin=0.1 0.75 Text scale of the revive-refused line.
Revive Refused Sound ReviveRefusedSound TObjectPtr<USoundBase> XenoCore › Party › Revive EditDefaultsOnly Played when a revive is refused.
Wipe When Leader Falls bWipeWhenLeaderFalls bool XenoCore › Party › Wipe EditDefaultsOnly false Also wipe the moment the leader falls, whoever else is standing.
Switch Camera Blend Time SwitchCameraBlendTime float XenoCore › Party › Switch EditDefaultsOnly, ClampMin=0.0 0.35 Seconds the camera blends from the old body's view to the new one's. 0 cuts.
Switch Announce Text SwitchAnnounceText FText XenoCore › Party › Switch EditDefaultsOnly NSLOCTEXT("XenoCoreParty", "SwitchAnnounce", "Leader") The line over the new leader as control lands on them. Empty shows nothing.
Switch Announce Colour SwitchAnnounceColour FLinearColor XenoCore › Party › Switch EditDefaultsOnly FLinearColor(1.0, 0.82, 0.36, 1.0) Colour of the line over the new leader.
Switch Announce Scale SwitchAnnounceScale float XenoCore › Party › Switch EditDefaultsOnly, ClampMin=0.1 0.85 Text scale of the line over the new leader.
Switch Sound SwitchSound TObjectPtr<USoundBase> XenoCore › Party › Switch EditDefaultsOnly Played as control lands on the new leader.
Switch Cursor Sound SwitchCursorSound TObjectPtr<USoundBase> XenoCore › Party › Switch EditDefaultsOnly Played as the selector's cursor moves.
Party Cursor Ring Material PartyCursorRingMaterial TSoftObjectPtr<UMaterialInterface> XenoCore › Party › Cursor EditAnywhere, BlueprintReadOnly The party cursor's floor ring: a deferred-decal material drawn under the chosen member. Defaults to the aggro ring's material, tinted by PartyCursorRingColour through its "Colour" parameter.
Party Cursor Ring Colour PartyCursorRingColour FLinearColor XenoCore › Party › Cursor EditAnywhere, BlueprintReadOnly FLinearColor::White The ring's tint, written to the material's "Colour" parameter.
Party Cursor Ring Diameter PartyCursorRingDiameter float XenoCore › Party › Cursor EditAnywhere, BlueprintReadOnly, ClampMin=10.0, Units=Centimeters 110.0 The ring's diameter. Keep it well under the aggro ring's 220 cm, or the two overlap under a member an enemy is after - which is the whole reason this is a small ring.
Party Cursor Ring Lift PartyCursorRingLift float XenoCore › Party › Cursor EditAnywhere, BlueprintReadOnly, ClampMin=0.0, Units=Centimeters 8.0 Lift the ring off the ground this far; the decal projects down from here. Matches the aggro ring's lift.
Switch Ring Hold Seconds SwitchRingHoldSeconds float XenoCore › Party › Cursor EditAnywhere, BlueprintReadOnly, ClampMin=0.0, Units=Seconds 0.35 How long the switch ring stays at full strength under the new leader before fading.
Switch Ring Fade Seconds SwitchRingFadeSeconds float XenoCore › Party › Cursor EditAnywhere, BlueprintReadOnly, ClampMin=0.0, Units=Seconds 0.6 How long the switch ring takes to fade out.
Switch Refused Text SwitchRefusedText FText XenoCore › Party › Switch EditDefaultsOnly NSLOCTEXT("XenoCoreParty", "SwitchRefused", "Can't switch") Shown over the leader when a switch is refused - toppled, dazed, nobody to switch to. Never a silent no: a press that does nothing reads as a bug.
Switch Refused Colour SwitchRefusedColour FLinearColor XenoCore › Party › Switch EditDefaultsOnly FLinearColor(1.0, 0.36, 0.3, 1.0) Colour of the switch-refused line.
Switch Refused Scale SwitchRefusedScale float XenoCore › Party › Switch EditDefaultsOnly, ClampMin=0.1 0.75 Text scale of the switch-refused line.
Switch Refused Sound SwitchRefusedSound TObjectPtr<USoundBase> XenoCore › Party › Switch EditDefaultsOnly Played when a switch is refused.
Spawn Inner Radius SpawnInnerRadius float XenoCore › Party › Spawn EditDefaultsOnly, ClampMin=0.0, Units=Centimeters 190.0 Distance from the leader of the nearest member.
Spawn Radius Step SpawnRadiusStep float XenoCore › Party › Spawn EditDefaultsOnly, ClampMin=0.0, Units=Centimeters 55.0 Each later member lands this much further out, on average.
Spawn Radius Jitter SpawnRadiusJitter float XenoCore › Party › Spawn EditDefaultsOnly, ClampMin=0.0, Units=Centimeters 45.0 Random spread on each radius, either way.
Spawn Arc Degrees SpawnArcDegrees float XenoCore › Party › Spawn EditDefaultsOnly, ClampMin=0.0, ClampMax=360.0, Units=Degrees 240.0 The arc behind the leader members are scattered across. 360 surrounds it.
Spawn Min Separation SpawnMinSeparation float XenoCore › Party › Spawn EditDefaultsOnly, ClampMin=0.0, Units=Centimeters 120.0 No two members closer than this.
Spawn Face Leader SpawnFaceLeader float XenoCore › Party › Spawn EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0 0.35 0 = face where the leader faces, 1 = face the leader. Members in between look like a group.
Spawn Facing Jitter SpawnFacingJitter float XenoCore › Party › Spawn EditDefaultsOnly, ClampMin=0.0, ClampMax=180.0, Units=Degrees 40.0 Random yaw on each member's facing, either way.

Blueprint functions

Node Kind Signature Description
Get Party Component Pure UXenoCorePartyComponent* GetPartyComponent() The party's component, or null.
Get Leader Pawn Pure APawn* GetLeaderPawn() const The pawn every member follows: the body at LeaderSlot, which is the one the player drives.
Add To Roster Callable void AddToRoster(UXenoCorePartyMemberDefinition* Member, bool bActivateImmediately = true, bool bJoinAtPartyLevel = false) Recruit a character.
Remove From Roster Callable void RemoveFromRoster(UXenoCorePartyMemberDefinition* Member) Remove a character entirely - they leave the story, not just the active party.
Set Active Members Callable void SetActiveMembers(const TArray<UXenoCorePartyMemberDefinition*>& Members) Replace the active companions wholesale.
Swap Member Callable void SwapMember(int32 ActiveSlot, UXenoCorePartyMemberDefinition* Member) XC1's Party screen interaction: put a roster member into a specific active slot.
Clear Slot Callable void ClearSlot(int32 ActiveSlot) Bench whoever is in an active slot, leaving the party smaller.
Get Roster Pure TArray<UXenoCorePartyMemberDefinition*> GetRoster() const Everyone recruited so far, active or benched - the right-hand pool on XC1's Party screen.
Get Active Members Pure TArray<UXenoCorePartyMemberDefinition*> GetActiveMembers() const The companions currently fighting, in slot order.
Get Pawn For Member Pure AXenoCoreCombatantCharacter* GetPawnForMember(UXenoCorePartyMemberDefinition* Member) const The live pawn for an active member, or null if it has not spawned (or is not active).
Get Active Member Pawns Pure TArray<AXenoCoreCombatantCharacter*> GetActiveMemberPawns() const Every spawned member pawn.
Is Party Full Pure bool IsPartyFull() const True if the active party has no free slot - check before offering to recruit-and-activate.
Is In Roster Pure bool IsInRoster(UXenoCorePartyMemberDefinition* Member) const True if this character has been recruited at all, active or benched.
Is Active Member Pure bool IsActiveMember(UXenoCorePartyMemberDefinition* Member) const True if this character is one of the companions currently fighting.
Get Max Active Members Pure int32 GetMaxActiveMembers() const How many characters may be active at once, the leader included.
Try Revive Member Callable bool TryReviveMember(AActor* Reviver, AXenoCoreCombatantCharacter* Downed) Revive a downed party member: spend ReviveBarCost bars, stand them up at ReviveHealthFraction.
Can Afford Revive Pure bool CanAffordRevive() const True when the Party Gauge holds ReviveBarCost full bars (always, at a cost of 0).
Get Revive Range Pure float GetReviveRange() const How close a reviver must stand to a downed member, in cm.
Is Party In Battle Pure bool IsPartyInBattle() const True while the party is fighting - the leader holds Status.XenoCore.InBattle.
Get Tactic Value Pure int32 GetTacticValue(EXenoCoreTactic Tactic, const UXenoCorePartyMemberDefinition* Member = nullptr) const This tactic's value for Member (its own order, else the party's).
Is Tactic On Pure bool IsTacticOn(EXenoCoreTactic Tactic, const UXenoCorePartyMemberDefinition* Member = nullptr) const An on/off tactic's value as a bool (value != 0).
Get Attack Order Pure EXenoCoreAttackOrder GetAttackOrder(const UXenoCorePartyMemberDefinition* Member = nullptr) const Who Member attacks: Focus (the leader's target), At Will (its own pick) or Regroup (nobody - it stays by the leader).
Get Arts Order Pure EXenoCoreArtsOrder GetArtsOrder(const UXenoCorePartyMemberDefinition* Member = nullptr) const Which arts Member uses: All, No Talent (keeps the Talent gauge full) or Auto Only (no arts at all).
Has Own Tactic Pure bool HasOwnTactic(EXenoCoreTactic Tactic, const UXenoCorePartyMemberDefinition* Member) const True when Member carries its own order for this tactic rather than following the party's.
Set Tactic Callable void SetTactic(EXenoCoreTactic Tactic, int32 Value, const UXenoCorePartyMemberDefinition* Member = nullptr) Set a tactic's value for the whole party (null Member, clearing every member's own value) or for one member.
Toggle Tactic Callable int32 ToggleTactic(EXenoCoreTactic Tactic, int32 ValueA, int32 ValueB, const UXenoCorePartyMemberDefinition* Member = nullptr) Flip a tactic between two of its values: A unless it is already on A, then B.
Clear Member Tactic Callable void ClearMemberTactic(EXenoCoreTactic Tactic, const UXenoCorePartyMemberDefinition* Member) Member goes back to following the party's order for this one tactic (the list's party value).
Clear Member Tactics Callable void ClearMemberTactics(const UXenoCorePartyMemberDefinition* Member) Drop every order Member carries of its own, so it follows the party again (xcx "Do as you please!").
Get Tactic Info Pure FXenoCoreTacticInfo GetTacticInfo(EXenoCoreTactic Tactic) const The text, lines and sound for a tactic (TacticInfo).
Get Tactics List Pure TArray<EXenoCoreTactic> GetTacticsList() const The tactics the panel lists, top to bottom (TacticsList).
Get Tactics Highlight Pure int32 GetTacticsHighlight() const The highlighted row of the open panel, an index into GetTacticsList.
Get Heal First Threshold Pure float GetHealFirstThreshold() const Prioritise Healing: the ally-health threshold that makes heal arts eligible while it is on (percent).
Get Heal First Bonus Pure float GetHealFirstBonus() const Prioritise Healing: score added to a heal art while it is on.
Get Stay Back Distance Pure float GetStayBackDistance() const Stay Back: how far from its target a companion holds.
Get Tactics Summary Pure FText GetTacticsSummary(const UXenoCorePartyMemberDefinition* Member = nullptr) const The orders in a few words for the always-on label - "Focus", "At Will · Follow" - built from each tactic's Summary text.
Open Tactics Panel Callable bool OpenTacticsPanel() Open the tactics panel.
Close Tactics Panel Callable void CloseTacticsPanel() Close the tactics panel.
Is Tactics Panel Open Pure bool IsTacticsPanelOpen() const True while the tactics panel is open.
Step Tactics Scope Callable void StepTacticsScope(int32 Delta) Step who the panel's orders are for: +1 forward through Whole Party then each AI-driven member, -1 back.
Get Tactics Scope Pure UXenoCorePartyMemberDefinition* GetTacticsScope() const Who the panel's orders are for: a member, or null for the whole party.
Press Tactics Direction Callable void PressTacticsDirection(EXenoCoreTacticsDirection Direction) A D-pad press on the open panel: move the highlight (Up/Down), or step the highlighted tactic's value (Right next, Left previous; a member's list includes party).
Get Leader Slot Pure int32 GetLeaderSlot() const Which active slot the player is driving.
Can Change Party Pure bool CanChangeParty() const False while the party is in a fight - bench swaps and clears are refused.
Show Party Locked Message Callable void ShowPartyLockedMessage() Tell the player why the Party screen just refused them.
Set Leader Callable bool SetLeader(int32 ActiveSlot) Hand control of the party to the member in this slot; the player drives their body instead.
Can Assign To Slot Pure bool CanAssignToSlot(int32 ActiveSlot, UXenoCorePartyMemberDefinition* Member) const Would SwapMember(ActiveSlot, Member) be allowed right now?
Get Display Order Pure TArray<AXenoCoreCombatantCharacter*> GetDisplayOrder() const The party as the HUD column draws it, top to bottom: the leader, then everyone else in slot order.
Is Switchable Member Pure bool IsSwitchableMember(const AXenoCoreCombatantCharacter* Member) const Could the player take control of this character right now?
Can Switch From Leader Pure bool CanSwitchFromLeader() const May the player switch away from the current leader right now?
Switch Leader By Callable bool SwitchLeaderBy(int32 Direction = 1) Tap: hand control to the next switchable member down the column (+1) or up it (-1), rotating the column.
Switch Leader To Callable bool SwitchLeaderTo(AXenoCoreCombatantCharacter* Member) Hand control to this member, rotating the column.
Open Party Cursor Callable bool OpenPartyCursor(EXenoCorePartyCursorPurpose Purpose, AActor* StartOn) Open the party cursor on StartOn (or the top row).
Move Party Cursor Callable void MovePartyCursor(int32 Delta) Move the cursor, skipping members the purpose cannot stop on. +1 is up the column.
Close Party Cursor Callable AXenoCoreCombatantCharacter* ClosePartyCursor() Close the cursor; returns the member it was on.
Is Party Cursor Open Pure bool IsPartyCursorOpen() const True while the party cursor is up, for any purpose.
Get Party Cursor Purpose Pure EXenoCorePartyCursorPurpose GetPartyCursorPurpose() const What the open party cursor is choosing a member for.
Get Party Cursor Target Pure AXenoCoreCombatantCharacter* GetPartyCursorTarget() const The member under the cursor, or null while it is closed.
Open Switch Selector Callable bool OpenSwitchSelector() Hold ZL: the party cursor for a switch, on the leader.
Close Switch Selector Callable void CloseSwitchSelector(bool bCommit) Release ZL: switch to the cursor's member (bCommit), or just close.
Is Switch Selector Open Pure bool IsSwitchSelectorOpen() const True while the party cursor is up for a switch.
Get Switch Selection Pure AXenoCoreCombatantCharacter* GetSwitchSelection() const The member under the switch cursor, or null.
Consume Party Notice Callable bool ConsumePartyNotice(FXenoCorePartyNotice& OutNotice) The next queued announcement, or false when there is none.
Set Party Respawn Point Callable void SetPartyRespawnPoint(const FTransform& RespawnTransform) Remember where a wiped party should stand again.
Clear Party Respawn Point Callable void ClearPartyRespawnPoint() Forget the recorded point, so a wipe falls back to the player start.
Get Wipe Respawn Transform Callable FTransform GetWipeRespawnTransform() const Where a wiped party respawns.
Is Party Wiped Pure bool IsPartyWiped() const True when there is an active party and every member of it is down (or has no body).
Is Wipe In Progress Pure bool IsWipeInProgress() const True from the moment a wipe is detected until the fade back in has started.
Begin Party Wipe Callable void BeginPartyWipe() Run the wipe now: announce, fade out, respawn, heal, fade in.

UXenoCorePartyGaugeComponent

Class · derives from UControllerComponent · header XenoCoreRuntime/Public/Party/XenoCorePartyGaugeComponent.h

The Party Gauge: XC1's three-bar party resource, filled by battle actions and spent on revives and Chain Attacks.

Properties

Property C++ name Type Category Specifiers Default Description
Bar Count BarCount int32 XenoCore › PartyGauge EditAnywhere, BlueprintReadOnly, ClampMin=1 3 Number of bars in the gauge. XC1: 3.
Points Per Bar PointsPerBar float XenoCore › PartyGauge EditAnywhere, BlueprintReadOnly, ClampMin=1.0 100.0 Points in one bar. XC1: 100, so the whole gauge is 300.
Fill Points FillPoints TMap<FGameplayTag, float> XenoCore › PartyGauge EditAnywhere, BlueprintReadOnly, Categories=XenoCore.PartyGauge.Reason Points per fill reason. XC1: critical hit +10, an art's bonus effect landing +20, Burst Affinity +50 (+75 perfectly timed), auto-attack at Very High tension +5, a kill during a Chain Attack +100.
Out Of Battle Drain Per Second OutOfBattleDrainPerSecond float XenoCore › PartyGauge EditAnywhere, BlueprintReadOnly, ClampMin=0.0 2.0 Points lost per second while out of battle. XC1: 2, so a bar lasts 50 seconds.
Starting Points StartingPoints float XenoCore › PartyGauge EditAnywhere, BlueprintReadOnly, ClampMin=0.0 0.0 What the gauge holds when play starts.

Blueprint functions

Node Kind Signature Description
Get Party Gauge Pure UXenoCorePartyGaugeComponent* GetPartyGauge() The one resolver, matching GetPartyInventory / GetPartyQuests.
Add Party Gauge For Reason Callable void AddPartyGaugeForReason(const AActor* Causer, FGameplayTag Reason) Price Reason from FillPoints and add it - but only when Causer is on the party's side.
Add Points Callable void AddPoints(float Amount, FGameplayTag Reason) Add (or with a negative amount, remove) points directly.
Can Afford Bars Pure bool CanAffordBars(int32 Bars) const True when at least Bars whole bars are full.
Spend Bars Callable bool SpendBars(int32 Bars, FGameplayTag Reason) Spend Bars whole bars.
Notify Cannot Afford Callable void NotifyCannotAfford(int32 Bars, FGameplayTag Reason) Announce a spend that could not be paid - the gauge readout shakes and flashes red.
Get Points Pure float GetPoints() const Points the gauge holds now.
Get Max Points Pure float GetMaxPoints() const Points in a completely full gauge (PointsPerBar x BarCount).
Get Points Per Bar Pure float GetPointsPerBar() const Points in one bar.
Get Bar Count Pure int32 GetBarCount() const Number of bars the gauge has.
Get Full Bars Pure int32 GetFullBars() const How many bars are completely full.
Is Party In Battle Pure bool IsPartyInBattle() const True while the party is fighting - the leader holds Status.XenoCore.InBattle.

UXenoCorePartyMemberDefinition

Class · derives from UPrimaryDataAsset · header XenoCoreRuntime/Public/Party/XenoCorePartyMemberDefinition.h · BlueprintType

One asset per recruitable character. This is the designer's entry point for the party: adding a new member is this asset plus a Blueprint, and no C++.

Properties

Property C++ name Type Category Specifiers Default Description
Display Name DisplayName FText XenoCore › Party EditDefaultsOnly, BlueprintReadOnly Shown on HUD plates, the Party screen and the equipment screen's character carousel.
Role Role EXenoCoreRole XenoCore › Party EditDefaultsOnly, BlueprintReadOnly EXenoCoreRole::None This character's battle role.
Portrait Portrait TSoftObjectPtr<UTexture2D> XenoCore › Party EditDefaultsOnly, BlueprintReadOnly Portrait for the Party screen and the HUD.
Menu Portrait MenuPortrait TSoftObjectPtr<UTexture2D> XenoCore › Party EditAnywhere, BlueprintReadOnly Full-body portrait for the main menu's party cards. Empty uses Portrait.
Member Class MemberClass TSubclassOf<AXenoCoreCombatantCharacter> XenoCore › Party EditDefaultsOnly, BlueprintReadOnly The pawn Blueprint spawned for this member. It carries the mesh, the CombatantPawnData, the statline and the level - see the class comment for why they are not duplicated here.
Controller Class ControllerClass TSubclassOf<AXenoCorePartyMemberController> XenoCore › Party EditDefaultsOnly, BlueprintReadOnly The AI controller that possesses it.
AI Profile AIProfile FXenoCoreCombatAIProfile XenoCore › AI EditAnywhere, BlueprintReadOnly How this character fights when it is a companion: decision pace, post-art cooldown, heal threshold, positioning.
Experience Curve ExperienceCurve FDataTableRowHandle XenoCore › Progression EditAnywhere, BlueprintReadOnly EXP curve this character levels on: a row of DT_XenoCore_ExperienceCurves. Empty uses the progression component's default (XC1's table).
Voice Table VoiceTable TObjectPtr<UDataTable> XenoCore › Voice EditAnywhere, BlueprintReadOnly This character's voice lines (battle cries, art call-outs, field banter). Row type: XenoCoreVoiceLineRow.

UXenoCorePartyNoticeSubsystem

Class · derives from UTickableWorldSubsystem · header XenoCoreRuntime/Public/Party/XenoCorePartyNoticeSubsystem.h

Announces party changes on the HUD: "<Name> joined the party", "<Name> left the party".

Properties

Property C++ name Type Category Specifiers Default Description
Gap Between GapBetween float XenoCore › Party EditDefaultsOnly, ClampMin=0.0 0.25 Seconds between one banner finishing and the next being handed over.

Blueprint functions

Node Kind Signature Description
Show Notice Callable void ShowNotice(const FXenoCorePartyNotice& Notice) Announce a character directly, bypassing the party component's queue.

XenoCoreRuntime / Player

AXenoCorePlayerController

Class · derives from ALyraPlayerController · header XenoCoreRuntime/Public/Player/XenoCorePlayerController.h

ALyraPlayerController that pumps the pawn's ability system, not the PlayerState's.

XenoCoreRuntime / Progression

EXenoCoreArtSource

Enum · header XenoCoreRuntime/Public/Progression/XenoCoreProgressionComponent.h · BlueprintType

Where an equipped art came from.

Value Shown as Description
Own Own Learned by this character. Everything today.
Inherited Inherited Not implemented yet: mastered by somebody else and borrowed.

FXenoCoreArtSlot

Struct · header XenoCoreRuntime/Public/Progression/XenoCoreProgressionComponent.h · BlueprintType

One position on the battle palette. An empty slot is a real state, so Art may be null.

Properties

Property C++ name Type Category Specifiers Default Description
Art Art TObjectPtr<UXenoCoreArtDefinition> XenoCore › Arts BlueprintReadOnly nullptr No description.
Source Source EXenoCoreArtSource XenoCore › Arts BlueprintReadOnly EXenoCoreArtSource::Own No description.

FXenoCoreExperienceCurveRow

Struct · derives from FTableRowBase · header XenoCoreRuntime/Public/Progression/XenoCoreExperienceTypes.h · BlueprintType

EXP needed to reach each next level. Entry 0 is level 1 to 2, entry 1 is level 2 to 3, and so on.

Properties

Property C++ name Type Category Specifiers Default Description
Experience To Next Level ExperienceToNextLevel TArray<int32> Experience EditAnywhere, BlueprintReadOnly, ClampMin=1 EXP needed to go from level N to N + 1. Entry 0 is level 1 to 2.
Note Note FString Experience EditAnywhere, BlueprintReadOnly Where the numbers came from - for whoever retunes them next.

FXenoCoreLevelUpEntry

Struct · header XenoCoreRuntime/Public/Progression/XenoCoreProgressionComponent.h · BlueprintType

One character who levelled, and what they levelled from.

Properties

Property C++ name Type Category Specifiers Default Description
Member Member TObjectPtr<UXenoCorePartyMemberDefinition> XenoCore › Progression BlueprintReadOnly nullptr No description.
Level Before LevelBefore int32 XenoCore › Progression BlueprintReadOnly 1 No description.
Level After LevelAfter int32 XenoCore › Progression BlueprintReadOnly 1 No description.
Arts Learned ArtsLearned TArray<TObjectPtr<class UXenoCoreArtDefinition>> XenoCore › Progression BlueprintReadOnly Every art this level-up taught them, in unlock-table order.

FXenoCoreLevelUpMessage

Struct · header XenoCoreRuntime/Public/Progression/XenoCoreProgressionComponent.h · BlueprintType

The payload on XenoCore.Progression.Message.LevelUp.

Properties

Property C++ name Type Category Specifiers Default Description
Owning Controller OwningController TObjectPtr<AController> XenoCore › Progression BlueprintReadOnly nullptr The controller whose party levelled. Single-player, so always the local player's.
Levelled Levelled TArray<FXenoCoreLevelUpEntry> XenoCore › Progression BlueprintReadOnly No description.

FXenoCoreMemberGain

Struct · header XenoCoreRuntime/Public/Progression/XenoCoreProgressionComponent.h · BlueprintType

What one member was paid by one award - XC1 Definitive Edition stacks EXP, AP and SP beside each party plate after a kill, and AP differs per member there.

Properties

Property C++ name Type Category Specifiers Default Description
Member Member TObjectPtr<UXenoCorePartyMemberDefinition> XenoCore › Progression BlueprintReadOnly nullptr No description.
Experience Experience int32 XenoCore › Progression BlueprintReadOnly 0 No description.
Art Points ArtPoints int32 XenoCore › Progression BlueprintReadOnly 0 No description.
Skill Points SkillPoints int32 XenoCore › Progression BlueprintReadOnly 0 No description.

FXenoCoreMemberProgress

Struct · header XenoCoreRuntime/Public/Progression/XenoCoreProgressionComponent.h · BlueprintType

No description.

Properties

Property C++ name Type Category Specifiers Default Description
Level Level int32 XenoCore › Progression BlueprintReadOnly 1 Current level. Seeded from the member's pawn class default the first time they are seen.
Experience Experience float XenoCore › Progression BlueprintReadOnly 0.0 EXP banked towards the next level, not lifetime total - levelling subtracts the threshold.
Learned Arts LearnedArts TArray<TObjectPtr<UXenoCoreArtDefinition>> XenoCore › Arts BlueprintReadOnly Every art this character knows. XC1 caps this at 16 per character.
Palette Palette TArray<FXenoCoreArtSlot> XenoCore › Arts BlueprintReadOnly What is on the battle palette, in slot order. XC1 equips 8 of 16.
Art Levels ArtLevels TMap<TObjectPtr<UXenoCoreArtDefinition>, int32> XenoCore › Arts BlueprintReadOnly Each learned art's level, I..XII. Absent means I.
Art Level Caps ArtLevelCaps TMap<TObjectPtr<UXenoCoreArtDefinition>, int32> XenoCore › Arts BlueprintReadOnly Each art's level cap, raised by Arts Manuals. Absent means DefaultArtLevelCap (iv).
Art Points ArtPoints int32 XenoCore › Arts BlueprintReadOnly 0 Art Points banked by this character. XC1's AP is per character, spent on their own arts.
Skills Skills FXenoCoreSkillsProgress XenoCore › Skills BlueprintReadOnly Skill-tree progress. Seeded lazily from the pawn's SkillTree the first time it is read.

FXenoCoreProgressionChangedMessage

Struct · header XenoCoreRuntime/Public/Progression/XenoCoreProgressionComponent.h · BlueprintType

No description.

Properties

Property C++ name Type Category Specifiers Default Description
Owning Controller OwningController TObjectPtr<AController> XenoCore › Progression BlueprintReadOnly nullptr The controller whose party progressed. Single-player, so always the local player's.
Levelled Count LevelledCount int32 XenoCore › Progression BlueprintReadOnly 0 How many characters levelled up in this award. Zero for a plain EXP gain.
Experience Awarded ExperienceAwarded int32 XenoCore › Progression BlueprintReadOnly 0 How much EXP this award was worth. Zero when the broadcast was not about experience.
Gains Gains TArray<FXenoCoreMemberGain> XenoCore › Progression BlueprintReadOnly What each member was paid, benched included - the per-member stack on the HUD plates.

FXenoCoreSkillLearntMessage

Struct · header XenoCoreRuntime/Public/Progression/XenoCoreProgressionComponent.h · BlueprintType

The payload on XenoCore.Skills.Message.SkillLearnt - one skill, one character.

Properties

Property C++ name Type Category Specifiers Default Description
Member Member TObjectPtr<UXenoCorePartyMemberDefinition> XenoCore › Skills BlueprintReadOnly nullptr No description.
Branch Branch FName XenoCore › Skills BlueprintReadOnly No description.
Index Index int32 XenoCore › Skills BlueprintReadOnly 0 0..4, top to bottom.
Skill Name SkillName FText XenoCore › Skills BlueprintReadOnly No description.

UXenoCoreLevelUpBannerBase

Class · derives from UXenoCoreHudPlateBase · header XenoCoreRuntime/Public/Progression/XenoCoreLevelUpBannerBase.h · abstract · Blueprintable

"level up", everybody who levelled, with the HP rolling from the old number to the new.

Properties

Property C++ name Type Category Specifiers Default Description
Heading Text HeadingText TObjectPtr<UTextBlock> XenoCore › Progression BlueprintReadOnly, BindWidgetOptional "level up". Authored in the asset; this class never writes it.
Member Box MemberBox TObjectPtr<UVerticalBox> XenoCore › Progression BlueprintReadOnly, BindWidgetOptional One line per character who levelled. Cleared and rebuilt on every showing.
Hold Time HoldTime float XenoCore › Progression EditDefaultsOnly, ClampMin=0.5 3.0 How long the panel stays up for a single character.
Hold Per Member HoldPerMember float XenoCore › Progression EditDefaultsOnly, ClampMin=0.0 0.5 Extra seconds per character beyond the first.
Roll Time RollTime float XenoCore › Progression EditDefaultsOnly, ClampMin=0.05 0.9 Seconds the HP figures take to count from the old numbers to the new.
Effect Layer EffectLayer TObjectPtr<UCanvasPanel> XenoCore › Progression BlueprintReadOnly, BindWidgetOptional Behind the card: where the celebration burst draws.
Celebration Celebration FXenoCoreUIEffect XenoCore › Progression EditDefaultsOnly The burst played once per panel.
Level Up Sound LevelUpSound TObjectPtr<class USoundBase> XenoCore › Progression EditDefaultsOnly The sting, once per burst.
Gain Colour GainColour FLinearColor XenoCore › Progression EditDefaultsOnly FLinearColor(0.35, 0.98, 0.45, 1.0) Colour of the HP gain ("+N") and the "New Art" caption.
Name Colour NameColour FLinearColor XenoCore › Progression EditDefaultsOnly FLinearColor(1.0, 1.0, 1.0, 1.0) Colour of each character's name.
Dim Colour DimColour FLinearColor XenoCore › Progression EditDefaultsOnly FLinearColor(0.44, 0.48, 0.55, 1.0) The level you were, and the HP caption. Dimmer than what you became.
Level Colour LevelColour FLinearColor XenoCore › Progression EditDefaultsOnly FLinearColor(0.96, 0.8, 0.38, 1.0) Colour of the new level number.
Line Font Size LineFontSize int32 XenoCore › Progression EditDefaultsOnly, ClampMin=8 17 Font size of each character's line.

Blueprint functions

Node Kind Signature Description
Is Banner Showing Pure bool IsBannerShowing() Is the banner on screen, or still owed?
Dismiss Now Callable void DismissNow() Send the panel away now, instead of waiting out its own clock.
Dismiss Banner Callable bool DismissBanner() Dismiss whatever is up, if anything is.
On Banner Shown Event (implement in Blueprint) void OnBannerShown() Fired once per panel as it goes on screen.

UXenoCoreProgressionCheats

Class · derives from UCheatManagerExtension · header XenoCoreRuntime/Public/Progression/XenoCoreProgressionCheats.h

The progression console commands - XenoAwardExp, XenoAwardGold, XenoArts, XenoSetArt, XenoGiveAP, XenoCastArt - each forwarding to UXenoCoreProgressionComponent.

UXenoCoreProgressionComponent

Class · derives from UControllerComponent · header XenoCoreRuntime/Public/Progression/XenoCoreProgressionComponent.h

Party EXP and levelling.

Properties

Property C++ name Type Category Specifiers Default Description
Default Experience Curve DefaultExperienceCurve FDataTableRowHandle XenoCore › Progression EditDefaultsOnly The EXP curve for any character whose member definition names none. A row of DT_XenoCore_ExperienceCurves.
Reward Multiplier Curve RewardMultiplierCurve TObjectPtr<UCurveTable> XenoCore › Progression EditDefaultsOnly Row Reward.LevelDiffMultiplier, keyed by (attacker level - target level).
Reserve Experience Rate ReserveExperienceRate float XenoCore › Progression EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0 0.9 Fraction of the award a benched member receives. XC1's own number.
Default Art Level Cap DefaultArtLevelCap int32 XenoCore › Arts EditDefaultsOnly, ClampMin=1, ClampMax=12 4 XC1's default art level cap - "can only be raised to level iv" without a manual.
Art Level Cost Multipliers ArtLevelCostMultipliers TArray<float> XenoCore › Arts EditDefaultsOnly Cost multiplier for raising an art to level ii, iii ... Xii (index 0 = level ii), applied to the art's BaseLevelUpCost.
Art Points Per Enemy Level ArtPointsPerEnemyLevel float XenoCore › Arts EditDefaultsOnly, ClampMin=0.0 2.0 XC1's enemy AP: a typical enemy pays ArtPointsBase + ArtPointsPerEnemyLevel x its level, then the same level-difference multiplier as EXP. An enemy's ArtPointReward overrides it.
Art Points Base ArtPointsBase float XenoCore › Arts EditDefaultsOnly, ClampMin=0.0 2.0 Flat AP a typical enemy pays on top of ArtPointsPerEnemyLevel x its level.
Skill Point Reward Table SkillPointRewardTable TObjectPtr<UDataTable> XenoCore › Skills EditDefaultsOnly SP per kill by level difference - DT_XenoCore_SkillPointRewards, rows of FXenoCoreSkillPointRewardRow. XC1: 1 / 5 / 10 / 15 / 20.
Skill Point Reward Scale SkillPointRewardScale float XenoCore › Skills EditDefaultsOnly, ClampMin=0.0 1.0 One knob over the whole SP economy. The table above stays XC1-exact; a shorter game, or a demo map, turns this instead of editing sourced rows.
Reserve Skill Point Rate ReserveSkillPointRate float XenoCore › Skills EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0 0.9 Benched characters' share of kill SP - "10 % less", as for EXP and AP.
Skill Point Level Basis SkillPointLevelBasis EXenoCoreSkillPointLevelBasis XenoCore › Skills EditDefaultsOnly EXenoCoreSkillPointLevelBasis::PartyAverage Whose level sets the SP band.
Skill Stats Effect SkillStatsEffect TSubclassOf<UGameplayEffect> XenoCore › Skills EditDefaultsOnly The one effect every stat skill and trait arrives through - infinite, additive, one SetByCaller magnitude per XenoCore.Stat.* tag.
Skill Learnt Text SkillLearntText FText XenoCore › Skills › Feedback EditDefaultsOnly The line XC1 floats over a character the moment a skill is learnt - "Skill Learnt", gold, nothing else. Drawn by UXenoCoreBattleNotifySubsystem, so a benched character, who has no body, simply has nothing to float over.
Skill Learnt Colour SkillLearntColour FLinearColor XenoCore › Skills › Feedback EditDefaultsOnly FLinearColor(1.0, 0.86, 0.45, 1.0) Colour of the "Skill Learnt" and branch-unlocked lines.
Branch Unlocked Text BranchUnlockedText FText XenoCore › Skills › Feedback EditDefaultsOnly The line floated over a character when a new skill branch unlocks. Empty turns it off.
Skill Feedback Scale SkillFeedbackScale float XenoCore › Skills › Feedback EditDefaultsOnly, ClampMin=0.1 0.8 Size multiplier for the floated skill lines.
Default Art Ability Class DefaultArtAbilityClass TSoftClassPtr<class UXenoCoreGameplayAbility_Art> XenoCore › Arts EditDefaultsOnly The ability every art runs as unless its definition names another.
Art Slot Unlock Levels ArtSlotUnlockLevels TArray<int32> XenoCore › Arts EditDefaultsOnly Character level at which each palette slot unlocks. Index 0 is the first slot.
Gold Gold int32 XenoCore › Progression EditDefaultsOnly, ClampMin=0 3000 The party's starting purse. A loaded save replaces it.

Blueprint functions

Node Kind Signature Description
Get Party Progression Pure UXenoCoreProgressionComponent* GetPartyProgression() The party's progression component, or null.
Award Experience Callable void AwardExperience(int32 Amount) Bank EXP for the whole roster, level up as many times as it affords, and rewrite statlines.
Get Member Level Pure int32 GetMemberLevel(UXenoCorePartyMemberDefinition* Member) const This character's level.
Get Party Level Pure int32 GetPartyLevel() const "The party's level" - the leader's, which is the number the HUD shows and the one a player means when they say what level they are.
Raise Member To Level Callable bool RaiseMemberToLevel(UXenoCorePartyMemberDefinition* Member, int32 Level) Raise a character to at least Level (never lowers).
Get Member Experience Pure float GetMemberExperience(UXenoCorePartyMemberDefinition* Member) const EXP banked towards this character's next level.
Get Member Experience To Next Level Pure float GetMemberExperienceToNextLevel(UXenoCorePartyMemberDefinition* Member) const What this character's next level costs.
Get Member Experience Fraction Pure float GetMemberExperienceFraction(UXenoCorePartyMemberDefinition* Member) const 0..1 for an EXP bar.
Xeno Award Exp Callable void XenoAwardExp(int32 Amount) XenoAwardExp 5000 - bank EXP without finding something to kill.
Get Learned Arts Pure TArray<UXenoCoreArtDefinition*> GetLearnedArts(UXenoCorePartyMemberDefinition* Member) const Every art this character knows.
Get Art Palette Pure TArray<FXenoCoreArtSlot> GetArtPalette(UXenoCorePartyMemberDefinition* Member) const The battle palette in slot order, trimmed to the character's current capacity.
Get Art Capacity Pure int32 GetArtCapacity(UXenoCorePartyMemberDefinition* Member) const How many arts this character may carry right now.
Get Max Art Slots Pure int32 GetMaxArtSlots() const XC1: 8.
Get Art Slot Unlock Level Pure int32 GetArtSlotUnlockLevel(int32 SlotIndex) const The level that opens this slot, or 0 for an index past the ladder.
Set Art Slot Callable bool SetArtSlot(UXenoCorePartyMemberDefinition* Member, int32 SlotIndex, UXenoCoreArtDefinition* Art) Put an art on the palette, or clear the slot by passing null.
Get Art Level Pure int32 GetArtLevel(UXenoCorePartyMemberDefinition* Member, const UXenoCoreArtDefinition* Art) const An art's level for this character, 1..12.
Get Art Level Cap Pure int32 GetArtLevelCap(UXenoCorePartyMemberDefinition* Member, const UXenoCoreArtDefinition* Art) const How far this art can be levelled right now.
Get Art Level Up Cost Pure int32 GetArtLevelUpCost(UXenoCorePartyMemberDefinition* Member, const UXenoCoreArtDefinition* Art) const AP to raise this art one level, or -1 when it cannot go higher (cap, max, or a Talent Art).
Get Art Points Pure int32 GetArtPoints(UXenoCorePartyMemberDefinition* Member) const Art Points this character has banked.
Add Art Points Callable void AddArtPoints(UXenoCorePartyMemberDefinition* Member, int32 Amount) Give this character Art Points.
Level Up Art Callable bool LevelUpArt(UXenoCorePartyMemberDefinition* Member, UXenoCoreArtDefinition* Art) Spend AP to raise an art one level.
Raise Art Level Cap Callable void RaiseArtLevelCap(UXenoCorePartyMemberDefinition* Member, UXenoCoreArtDefinition* Art, int32 NewCap) Raise an art's level cap - what an Arts Manual does.
Learn Art Callable void LearnArt(UXenoCorePartyMemberDefinition* Member, UXenoCoreArtDefinition* Art) Teach a character an art.
Apply Palette To Pawn Callable void ApplyPaletteToPawn(AXenoCoreCombatantCharacter* Pawn) Grant exactly the palette to a live pawn, clearing whatever was granted before.
Xeno Arts Callable void XenoArts() List a member's known arts and palette.
Xeno Set Art Callable void XenoSetArt(int32 SlotIndex, const FString& ArtName) Put the named art in a palette slot, without the Arts menu.
Xeno Give AP Callable void XenoGiveAP(int32 Amount) Give the leader Art Points, to test the Level Up tab without earning them in battle.
Xeno Cast Art Callable void XenoCastArt(const FString& ArtName) Cast the leader's equipped art whose asset or display name contains ArtName, by spec handle - the palette's own dispatch.
Award Experience For Kill Callable void AwardExperienceForKill(const AActor* Victim) Award for a defeated enemy, scaled by level difference.
Refresh Experience To Next Level Callable void RefreshExperienceToNextLevel() Pushes ExperienceToNextLevel for the current level.
Get Gold Pure int32 GetGold() const What the party can spend.
Award Gold Callable void AwardGold(int32 Amount) Bank gold and announce it.
Spend Gold Callable bool SpendGold(int32 Amount) Spend, if the party can afford it.
Xeno Award Gold Callable void XenoAwardGold(int32 Amount) XenoAwardGold 500 - bank gold without a quest to finish.
Get Skills Progress Callable FXenoCoreSkillsProgress GetSkillsProgress(UXenoCorePartyMemberDefinition* Member) The whole record for this character's tree, seeded on first read.
Select Skill Branch Callable bool SelectSkillBranch(UXenoCorePartyMemberDefinition* Member, FName Branch) Make this branch the one SP flows into.
Unlock Skill Branch Callable void UnlockSkillBranch(UXenoCorePartyMemberDefinition* Member, FName Branch) XC1's 4th and 5th branches arrive by quest.
Award Skill Points Callable void AwardSkillPoints(UXenoCorePartyMemberDefinition* Member, int32 Amount, bool bApplyReserveRate = false) Pour SP into this character's selected branch - top to bottom, overflow carrying, and wasted once the branch is complete.
Apply Skills To Pawn Callable void ApplySkillsToPawn(AXenoCoreCombatantCharacter* Pawn) Put this body's skills on it: its learnt stat skills, its selected branch's trait, and any party-reaching skill of anyone else on the roster.
Refresh Skill Effects Callable void RefreshSkillEffects() ApplySkillsToPawn for every body the party has - a party skill reaches more than its owner.
Get Skill Bonus Pure float GetSkillBonus(UXenoCorePartyMemberDefinition* Member, FGameplayTag Tag) The summed Value (a percentage) of every learnt skill whose Bonus matches Tag and reaches this member.
Get Skill Bonus For Actor Pure float GetSkillBonusForActor(const AActor* Actor, FGameplayTag Tag) GetSkillBonus for a body - 0 for anything that is not a party member (an enemy, a prop).
Xeno Give SP Callable void XenoGiveSP(int32 Amount) Pour SP into the leader's selected skill branch.
Xeno Skills Callable void XenoSkills() Log the leader's skill branches and progress.

XenoCoreRuntime / Quest

AXenoCoreQuestLocation

Class · derives from AActor · header XenoCoreRuntime/Public/Quest/XenoCoreQuestLocation.h · Blueprintable

A box a Reach Location quest objective points at. Set Location Id to the objective's Target Id.

Properties

Property C++ name Type Category Specifiers Default Description
Location Id LocationId FName XenoCore › Quest EditAnywhere, BlueprintReadOnly The name a Reach Location objective's Target Id must match.
Area Area TObjectPtr<UBoxComponent> XenoCore › Quest VisibleAnywhere, BlueprintReadOnly The area the player walks into. Size it in the level like any trigger box.

Blueprint functions

Node Kind Signature Description
Get Location Id Pure FName GetLocationId() const The name Reach Location objectives use for this place.

EXenoCoreObjectiveIcon

Enum · header XenoCoreRuntime/Public/Quest/XenoCoreQuestDefinition.h · BlueprintType

Where an objective's icon comes from.

Value Shown as Description
FromItem From Item The target item's own art, and failing that its category's glyph.
FromCategory From Category The glyph for IconCategory, whatever the objective is counting.
Custom Custom IconTexture, exactly as authored.

EXenoCoreObjectiveKind

Enum · header XenoCoreRuntime/Public/Quest/XenoCoreQuestDefinition.h · BlueprintType

What one objective asks for.

Value Shown as Description
CollectItem Collect Item Hold N of an item. Counted from the party bag.
DefeatEnemy Defeat Enemy Defeat N of an enemy class. Counted from XenoCore.Enemy.Message.Defeated.
TalkToNpc Talk To Npc Talk to the NPC whose Quest Id is Target Id.
ReachLocation Reach Location Walk into the Quest Location whose Location Id is Target Id.

EXenoCoreQuestGateKind

Enum · header XenoCoreRuntime/Public/Quest/XenoCoreQuestDefinition.h · BlueprintType

No description.

Value Shown as Description
PartyLevel Party Level No description.
QuestCompleted Quest Completed No description.

EXenoCoreQuestKind

Enum · header XenoCoreRuntime/Public/Quest/XenoCoreQuestDefinition.h · BlueprintType

XC1's quest taxonomy.

Value Shown as Description
Collection Collection No description.
Material Material No description.
Monster Monster No description.
Challenge Challenge No description.
Search Search No description.
Normal Normal No description.
Story Story No description.

EXenoCoreQuestSort

Enum · header XenoCoreRuntime/Public/Quest/XenoCoreQuestUIStatics.h · BlueprintType

How the Quest Log orders its rows. Y cycles through these in order.

Value Shown as Description
Status Status Ready to report, then in progress, then finished. What you can act on, first.
Name Name Title, A-Z.
Area Area Area, A-Z, then title - so one place's quests read as a group.
Type Type Collection, Material, Monster... then title.

EXenoCoreQuestStatus

Enum · header XenoCoreRuntime/Public/Quest/XenoCoreQuestComponent.h · BlueprintType

Where one quest has got to.

Value Shown as Description
Unknown Unknown Never answered. Offerable.
Declined Declined Turned down. Still offerable - XC1 lets the player come back.
Active Active Accepted, objectives outstanding.
ReadyToTurnIn Ready To Turn In Every objective met. Waiting for the player to walk back to the giver.
Complete Complete Turned in and paid. Terminal.

FXenoCoreQuestChangedMessage

Struct · header XenoCoreRuntime/Public/Quest/XenoCoreQuestComponent.h · BlueprintType

Broadcast on XenoCore.Quest.Message.Changed whenever any quest moves.

Properties

Property C++ name Type Category Specifiers Default Description
Owning Controller OwningController TObjectPtr<AController> XenoCore › Quest BlueprintReadOnly nullptr The controller whose quests moved. Single-player, so always the local player's.

FXenoCoreQuestGate

Struct · header XenoCoreRuntime/Public/Quest/XenoCoreQuestDefinition.h · BlueprintType

One condition that must hold before a quest is offered at all.

Properties

Property C++ name Type Category Specifiers Default Description
Kind Kind EXenoCoreQuestGateKind XenoCore › Quest EditAnywhere, BlueprintReadOnly EXenoCoreQuestGateKind::PartyLevel Which condition this gate checks. Decides which of the fields below is used.
Required Level RequiredLevel int32 XenoCore › Quest EditAnywhere, BlueprintReadOnly, ClampMin=1, EditCondition=Kind == EXenoCoreQuestGateKind::PartyLevel 1 PartyLevel: the level the party must have reached.
Required Quest RequiredQuest TObjectPtr<UXenoCoreQuestDefinition> XenoCore › Quest EditAnywhere, BlueprintReadOnly, EditCondition=Kind == EXenoCoreQuestGateKind::QuestCompleted QuestCompleted: the quest that must have been turned in first.

FXenoCoreQuestObjective

Struct · header XenoCoreRuntime/Public/Quest/XenoCoreQuestDefinition.h · BlueprintType

One objective of a quest: what to do, how many times, and how it is drawn.

Properties

Property C++ name Type Category Specifiers Default Description
Description Description FText XenoCore › Quest EditAnywhere, BlueprintReadOnly The prose line. Player-facing, so FText - it wraps, and it localises.
Counter Label CounterLabel FText XenoCore › Quest EditAnywhere, BlueprintReadOnly The noun for the counter row, singular - "Rabbit Diode" draws as "Rabbit Diode 0/2".
Kind Kind EXenoCoreObjectiveKind XenoCore › Quest EditAnywhere, BlueprintReadOnly EXenoCoreObjectiveKind::CollectItem What this objective asks for: collect, defeat, talk or reach. Decides which target field is used.
Item Target ItemTarget TSubclassOf<ULyraInventoryItemDefinition> XenoCore › Quest EditAnywhere, BlueprintReadOnly, EditCondition=Kind == EXenoCoreObjectiveKind::CollectItem What to count. Required for CollectItem, ignored otherwise.
Enemy Target EnemyTarget TSoftClassPtr<AActor> XenoCore › Quest EditAnywhere, BlueprintReadOnly, EditCondition=Kind == EXenoCoreObjectiveKind::DefeatEnemy What to defeat. Required for DefeatEnemy, ignored otherwise.
Target Id TargetId FName XenoCore › Quest EditAnywhere, BlueprintReadOnly, EditCondition=Kind == EXenoCoreObjectiveKind::TalkToNpc || Kind == EXenoCoreObjectiveKind::ReachLocation Who to talk to (an NPC's Quest Id) or where to go (a Quest Location's Location Id).
Required Count RequiredCount int32 XenoCore › Quest EditAnywhere, BlueprintReadOnly, ClampMin=1 1 How many times the objective must be met (items held, enemies defeated, talks, visits).
Consume On Turn In bConsumeOnTurnIn bool XenoCore › Quest EditAnywhere, BlueprintReadOnly, EditCondition=Kind == EXenoCoreObjectiveKind::CollectItem true Whether turning the quest in takes the items away.
Icon Source IconSource EXenoCoreObjectiveIcon XenoCore › Quest EditAnywhere, BlueprintReadOnly EXenoCoreObjectiveIcon::FromItem Which icon is drawn beside this objective, wherever it is listed.
Icon Category IconCategory EXenoCoreItemCategory XenoCore › Quest EditAnywhere, BlueprintReadOnly, EditCondition=IconSource == EXenoCoreObjectiveIcon::FromCategory EXenoCoreItemCategory::Items Used when IconSource is FromCategory.
Icon Texture IconTexture TSoftObjectPtr<UTexture2D> XenoCore › Quest EditAnywhere, BlueprintReadOnly, EditCondition=IconSource == EXenoCoreObjectiveIcon::Custom Used when IconSource is Custom.

FXenoCoreQuestRecord

Struct · header XenoCoreRuntime/Public/Quest/XenoCoreQuestComponent.h · BlueprintType

One quest's record. Counts are parallel to the definition's Objectives array.

Properties

Property C++ name Type Category Specifiers Default Description
Status Status EXenoCoreQuestStatus XenoCore › Quest BlueprintReadOnly EXenoCoreQuestStatus::Unknown Where this quest has got to.
Counts Counts TArray<int32> XenoCore › Quest BlueprintReadOnly How many of each objective are done, indexed as the definition's Objectives are.
Requester Name RequesterName FText XenoCore › Quest BlueprintReadOnly Who asked for it, resolved at the moment it was accepted.

FXenoCoreQuestReward

Struct · header XenoCoreRuntime/Public/Quest/XenoCoreQuestDefinition.h · BlueprintType

What completing a quest pays.

Properties

Property C++ name Type Category Specifiers Default Description
Gold Gold int32 XenoCore › Quest EditAnywhere, BlueprintReadOnly, ClampMin=0 0 Quests are one of only two gold sources in XC1; the other is selling to shops.
Experience Experience int32 XenoCore › Quest EditAnywhere, BlueprintReadOnly, ClampMin=0 0 Banked for the whole roster through UXenoCoreProgressionComponent::AwardExperience.
Items Items TArray<TSubclassOf<ULyraInventoryItemDefinition>> XenoCore › Quest EditAnywhere, BlueprintReadOnly One entry is one item - the bag stores no stacks. Ten of a thing is ten entries here.
Skill Branches SkillBranches TArray<FXenoCoreSkillBranchUnlock> XenoCore › Quest EditAnywhere, BlueprintReadOnly Skill branches this quest opens - XC1's 4th and 5th arrive this way.

FXenoCoreQuestRowInfo

Struct · header XenoCoreRuntime/Public/Quest/XenoCoreQuestUIStatics.h · BlueprintType

Everything one Quest Log row draws, decided in C++.

Properties

Property C++ name Type Category Specifiers Default Description
Quest Quest TObjectPtr<UXenoCoreQuestDefinition> XenoCore › Quest BlueprintReadOnly nullptr What the row opens when it is clicked. Null means the row should not be drawn at all.
Title Title FText XenoCore › Quest BlueprintReadOnly The quest's title.
Area Area FText XenoCore › Quest BlueprintReadOnly "Colony 9". Empty when the quest names no area, which draws as a blank column, not "None".
Kind Label KindLabel FText XenoCore › Quest BlueprintReadOnly "Collection", "Monster"... The reference puts a type icon here; this is its text form.
State Label StateLabel FText XenoCore › Quest BlueprintReadOnly "In Progress" / "Ready to Report" / "Complete".
Progress Label ProgressLabel FText XenoCore › Quest BlueprintReadOnly "1/2" across every objective, or empty for a quest with none outstanding.
Progress Fraction ProgressFraction float XenoCore › Quest BlueprintReadOnly 0.0 0..1 across all objectives, for a bar. 1 for a completed quest.
Status Status EXenoCoreQuestStatus XenoCore › Quest BlueprintReadOnly EXenoCoreQuestStatus::Unknown No description.
State Colour StateColour FLinearColor XenoCore › Quest BlueprintReadOnly FLinearColor::White Steel while running, teal when ready to hand in, dim once done.
Complete bComplete bool XenoCore › Quest BlueprintReadOnly false True once turned in - the row is history and should read as such.
Active bActive bool XenoCore › Quest BlueprintReadOnly false True for the one quest the HUD tracker is following.
Icon Colour IconColour FLinearColor XenoCore › Quest BlueprintReadOnly FLinearColor::White What colour the row's status icon reads as.
Icon Objective Index IconObjectiveIndex int32 XenoCore › Quest BlueprintReadOnly INDEX_NONE Which objective the row's item icon should come from.

FXenoCoreQuestTurnedInMessage

Struct · header XenoCoreRuntime/Public/Quest/XenoCoreQuestComponent.h · BlueprintType

The payload on XenoCore.Quest.Message.TurnedIn.

Properties

Property C++ name Type Category Specifiers Default Description
Quest Quest TObjectPtr<UXenoCoreQuestDefinition> XenoCore › Quest BlueprintReadOnly nullptr The quest that was handed in.
Quest Title QuestTitle FText XenoCore › Quest BlueprintReadOnly Copied out, because the quest asset outlives the message and the message is a record.
Gold Gold int32 XenoCore › Quest BlueprintReadOnly 0 Gold paid for this turn-in (not the running total).
Experience Experience int32 XenoCore › Quest BlueprintReadOnly 0 Experience paid for this turn-in.
Items Items TArray<TSubclassOf<ULyraInventoryItemDefinition>> XenoCore › Quest BlueprintReadOnly What the player was handed, as definitions.
Skill Branches SkillBranches TArray<FXenoCoreSkillBranchUnlock> XenoCore › Quest BlueprintReadOnly Skill branches the quest opened - the banner lists them under the items.

UXenoCoreOfferQuest

Class · derives from UBlueprintAsyncActionBase · header XenoCoreRuntime/Public/Quest/XenoCoreQuestNodes.h

"Offer Quest" - puts the quest panel on screen and continues on the player's answer.

Events you can bind

Event Type Description
Accepted FXenoCoreQuestOfferPin The player took the quest on. It is Active by the time this fires.
Declined FXenoCoreQuestOfferPin The player turned it down, backed out, or the panel could not be shown.

Blueprint functions

Node Kind Signature Description
Offer Quest Latent node factory UXenoCoreOfferQuest* OfferQuest(UXenoCoreQuestDefinition* Quest, AActor* Giver) Show the offer panel for one quest and wait for the answer.

UXenoCoreQuestComponent

Class · derives from UControllerComponent · header XenoCoreRuntime/Public/Quest/XenoCoreQuestComponent.h

The party's quest ledger: what has been offered, accepted, progressed and paid.

Properties

Property C++ name Type Category Specifiers Default Description
Quest Autosave Delay QuestAutosaveDelay float XenoCore › Quest EditDefaultsOnly, ClampMin=0 0.5 Seconds after a turn-in before the quest-complete autosave is written (lets a recruit join first).
Quest Autosave Retry Seconds QuestAutosaveRetrySeconds float XenoCore › Quest EditDefaultsOnly, ClampMin=0.1 2.0 Seconds between retries while a fight blocks the quest-complete autosave.

Blueprint functions

Node Kind Signature Description
Get Party Quests Pure UXenoCoreQuestComponent* GetPartyQuests() The party's quest ledger, or null.
Get Status Pure EXenoCoreQuestStatus GetStatus(const UXenoCoreQuestDefinition* Quest) const Where this quest has got to.
Is Offerable Pure bool IsOfferable(const UXenoCoreQuestDefinition* Quest) const No description.
Is Ready To Turn In Pure bool IsReadyToTurnIn(const UXenoCoreQuestDefinition* Quest) const True when every objective is met and the player only has to come back.
Are Gates Satisfied Pure bool AreGatesSatisfied(const UXenoCoreQuestDefinition* Quest) const Does every one of this quest's gates hold right now?
Get Gate Requirement Text Pure FText GetGateRequirementText(const UXenoCoreQuestDefinition* Quest) const Empty when nothing is holding it back.
Should Show Quest Marker Pure bool ShouldShowQuestMarker(const UXenoCoreQuestDefinition* Quest) const True when a giver holding this quest should draw its marker.
Get Objective Count Pure int32 GetObjectiveCount(const UXenoCoreQuestDefinition* Quest, int32 ObjectiveIndex) const How many of one objective are done.
Notify Objective Callable bool NotifyObjective(EXenoCoreObjectiveKind Kind, FName TargetId) Count a Talk To NPC or Reach Location objective for every active quest that wants TargetId.
Is Objective Target Wanted Pure bool IsObjectiveTargetWanted(EXenoCoreObjectiveKind Kind, FName TargetId, bool bTrackedQuestOnly = false) const True when an active quest still needs this talk/reach target.
Get Logged Quests Pure TArray<UXenoCoreQuestDefinition*> GetLoggedQuests() const Every quest the party has answered - what the Quest Log lists.
Get Active Quest Pure UXenoCoreQuestDefinition* GetActiveQuest() const The quest the HUD tracker is following, or null.
Set Active Quest Callable void SetActiveQuest(UXenoCoreQuestDefinition* Quest) Follow this quest, or null to follow nothing.
Is Active Quest Pure bool IsActiveQuest(const UXenoCoreQuestDefinition* Quest) const True when this quest is the one being followed.
Accept Callable void Accept(UXenoCoreQuestDefinition* Quest, AActor* Giver = nullptr) Take the quest on.
Get Recorded Requester Name Pure FText GetRecordedRequesterName(const UXenoCoreQuestDefinition* Quest) const Who was recorded as asking, when this quest was accepted.
Decline Callable void Decline(UXenoCoreQuestDefinition* Quest) Turn it down.
Turn In Callable bool TurnIn(UXenoCoreQuestDefinition* Quest) Consume what was asked for, pay what was promised, and close the quest.

UXenoCoreQuestDefinition

Class · derives from UPrimaryDataAsset · header XenoCoreRuntime/Public/Quest/XenoCoreQuestDefinition.h · BlueprintType

One quest, as a designer authors it: its text, objectives, gates and reward.

Properties

Property C++ name Type Category Specifiers Default Description
Title Title FText XenoCore › Quest EditAnywhere, BlueprintReadOnly The quest's own name, as the offer screen titles itself.
Kind Kind EXenoCoreQuestKind XenoCore › Quest EditAnywhere, BlueprintReadOnly EXenoCoreQuestKind::Collection XC1's quest kind. A label for titles and grouping only; it changes no behaviour.
Area Area FText XenoCore › Quest EditAnywhere, BlueprintReadOnly Where the quest belongs - "Colony 9".
Requester Name RequesterName FText XenoCore › Quest EditAnywhere, BlueprintReadOnly Who is asking, for the "Requested By" line.
Requester Portrait RequesterPortrait TSoftObjectPtr<UTexture2D> XenoCore › Quest EditAnywhere, BlueprintReadOnly The face beside "Requested By".
Summary Summary FText XenoCore › Quest EditAnywhere, BlueprintReadOnly The paragraph under Requested By. Prose, so the screen draws it in NotoSans, not Orbitron.
Objectives Objectives TArray<FXenoCoreQuestObjective> XenoCore › Quest EditAnywhere, BlueprintReadOnly What the quest asks for. Every objective must be met before it can be turned in.
Gates Gates TArray<FXenoCoreQuestGate> XenoCore › Quest EditAnywhere, BlueprintReadOnly Empty means always offerable.
Reward Reward FXenoCoreQuestReward XenoCore › Quest EditAnywhere, BlueprintReadOnly What turning the quest in pays: gold, experience, items and skill branches.
Can Decline bCanDecline bool XenoCore › Quest EditAnywhere, BlueprintReadOnly true Whether Decline is offered at all.

UXenoCoreQuestLogBase

Class · derives from UCommonActivatableWidget · header XenoCoreRuntime/Public/Quest/XenoCoreQuestLogBase.h · abstract · Blueprintable

XC1's Quest Log: every accepted and completed quest, and what state each is in.

Properties

Property C++ name Type Category Specifiers Default Description
Rows Box RowsBox TObjectPtr<UVerticalBox> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional One row per logged quest is added here. Cleared on every refresh.
Active Slot Box ActiveSlotBox TObjectPtr<UVerticalBox> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional The Active Quest slot at the top. One read-only row, or nothing.
Header Band HeaderBand TObjectPtr<UBorder> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional The column-caption band.
Active Empty Text ActiveEmptyText TObjectPtr<UTextBlock> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional "No quest set as active." Shown in the slot's place when nothing is followed.
Empty Text EmptyText TObjectPtr<UTextBlock> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional Shown instead of the list when nothing has been accepted yet.
Row Class RowClass TSubclassOf<UXenoCoreQuestLogRowBase> XenoCore › Quest EditDefaultsOnly The row widget. Set on the Blueprint, because C++ must not name a content path.
Set Active Action SetActiveAction FDataTableRowHandle XenoCore › Quest EditDefaultsOnly The input action row (in DT_XenoCore_Actions) that sets or clears the active quest.
Sort Action SortAction FDataTableRowHandle XenoCore › Quest EditDefaultsOnly Y: cycle the list order.
Sort Label SortLabel TObjectPtr<UTextBlock> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional "Name", "Area"... beside the Y glyph, so the current order is never a guess.
Set Active Label SetActiveLabel TObjectPtr<UTextBlock> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional The R prompt's caption. Collapses with its row when nothing focused can be followed.
Set Active Row SetActiveRow TObjectPtr<UWidget> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional The whole R prompt (glyph plus caption). Collapsed when nothing focused can be followed.
Row Spacing RowSpacing float XenoCore › Quest EditDefaultsOnly, ClampMin=0.0 6.0 Gap between rows.

Blueprint functions

Node Kind Signature Description
Refresh Callable void Refresh() Rebuilds the list from the ledger.

UXenoCoreQuestLogRowBase

Class · derives from UCommonUserWidget · header XenoCoreRuntime/Public/Quest/XenoCoreQuestLogRowBase.h · abstract · Blueprintable

One clickable line in the Quest Log.

Properties

Property C++ name Type Category Specifiers Default Description
Row Columns RowColumns TObjectPtr<UHorizontalBox> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional The column strip, drawn over the button.
Row Button RowButton TObjectPtr<UCommonButtonBase> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional The whole row is the button, so a click anywhere on the line opens the quest.
Title Text TitleText TObjectPtr<UTextBlock> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional The quest's title.
Objective Icon ObjectiveIcon TObjectPtr<UImage> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional What the quest is asking you to collect, beside its state.
Icon Set IconSet TObjectPtr<const class UXenoCoreItemIconSet> XenoCore › Quest EditDefaultsOnly No description.
Objective Icon Size ObjectiveIconSize float XenoCore › Quest EditDefaultsOnly, ClampMin=4.0, UIMin=4.0 24.0 Size, in slate units, of the objective icon drawn on the row.
Area Text AreaText TObjectPtr<UTextBlock> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional "Colony 9". Blank rather than "None" when the quest names no area.
State Text StateText TObjectPtr<UTextBlock> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional "In Progress" / "Ready to Report" / "Complete", already coloured.
Progress Text ProgressText TObjectPtr<UTextBlock> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional "1/2" across every objective.
Status Icon StatusIcon TObjectPtr<UImage> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional The quest's state, as a shape rather than a word.
Running Icon RunningIcon TObjectPtr<UMaterialInterface> XenoCore › Quest EditDefaultsOnly The exclamation, for a quest still running.
Complete Icon CompleteIcon TObjectPtr<UMaterialInterface> XenoCore › Quest EditDefaultsOnly The crown, for a quest that has been reported.
Active Marker ActiveMarker TObjectPtr<class UWidget> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional Shown only on the quest the tracker is following.
Edge Padding EdgePadding float XenoCore › Quest EditDefaultsOnly, ClampMin=0.0 44.0 How far the row's contents sit in from its left and right edges.
Completed Opacity CompletedOpacity float XenoCore › Quest EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0, UIMin=0.0, UIMax=1.0 0.55 How much a finished quest dims.

Blueprint functions

Node Kind Signature Description
Set Row Callable void SetRow(const FXenoCoreQuestRowInfo& InInfo) Fills the row.
Get Quest Pure UXenoCoreQuestDefinition* GetQuest() const Which quest this row is showing, or null before SetRow.
Set Read Only Callable void SetReadOnly(bool bInReadOnly) Make the row a readout rather than a control.
Get Focus Target Pure UWidget* GetFocusTarget() const The widget that can actually hold focus - the button, not this row.
Get Edge Padding Pure float GetEdgePadding() const No description.
On Row Set Event (implement in Blueprint) void K2_OnRowSet() Content-side hook, after the text is in.

UXenoCoreQuestOfferBase

Class · derives from UCommonActivatableWidget · header XenoCoreRuntime/Public/Quest/XenoCoreQuestOfferBase.h · abstract · Blueprintable

XC1's quest offer panel: who is asking, what they want, what it pays, and Accept / Decline.

Properties

Property C++ name Type Category Specifiers Default Description
Title Text TitleText TObjectPtr<UTextBlock> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional The quest's own name.
Requester Text RequesterText TObjectPtr<UTextBlock> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional Who is asking. Falls back to the giver's name when the quest names nobody.
Portrait Image PortraitImage TObjectPtr<class UImage> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional The requester's face. Its frame collapses when the quest authors no portrait.
Portrait Frame PortraitFrame TObjectPtr<UWidget> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional Wrapper, so an absent portrait takes its frame and padding with it.
Summary Text SummaryText TObjectPtr<UTextBlock> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional The prose paragraph.
Gold Text GoldText TObjectPtr<UTextBlock> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional The gold figure. Its whole row is hidden when the quest pays none.
Exp Text ExpText TObjectPtr<UTextBlock> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional The experience figure. Its whole row is hidden when the quest pays none.
Gold Row GoldRow TObjectPtr<UWidget> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional The row wrappers, so a quest paying no gold shows nothing rather than "0".
Exp Row ExpRow TObjectPtr<UWidget> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional The experience row wrapper, collapsed when the quest pays no experience.
Reward Items Box RewardItemsBox TObjectPtr<UVerticalBox> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional One row per reward item is added here. Cleared on every show.
Objective Box ObjectiveBox TObjectPtr<UVerticalBox> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional One block per objective is added here - a prose line and a counter. Cleared on every show.
Accept Button AcceptButton TObjectPtr<UCommonButtonBase> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional Takes the quest on. Starts focused.
Decline Button DeclineButton TObjectPtr<UCommonButtonBase> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional Collapsed entirely for a quest that cannot be declined.
Buttons Row ButtonsRow TObjectPtr<UWidget> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional The whole Accept / Decline footer. Collapsed wholesale in details mode.
Set Active Row SetActiveRow TObjectPtr<UWidget> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional The "Set as Active" / "Deactivate" prompt. Collapsed while the panel is an offer.
Set Active Label SetActiveLabel TObjectPtr<UTextBlock> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional Its caption, and it is a plain TextBlock for one hard reason.
Pager Left PagerLeft TObjectPtr<UWidget> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional The chevron-and-glyph at each edge. Both collapse when there is only one quest.
Pager Right PagerRight TObjectPtr<UWidget> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional The right-hand chevron and glyph.
Page Text PageText TObjectPtr<UTextBlock> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional "2 / 5" - the page indicator, under the title.
Set Active Action SetActiveAction FDataTableRowHandle XenoCore › Quest EditDefaultsOnly R bumper: make this the followed quest, or stop following it.
Prev Quest Action PrevQuestAction FDataTableRowHandle XenoCore › Quest EditDefaultsOnly Left trigger: the previous quest in the log.
Next Quest Action NextQuestAction FDataTableRowHandle XenoCore › Quest EditDefaultsOnly Right trigger: the next quest in the log.
Icon Set IconSet TObjectPtr<const class UXenoCoreItemIconSet> XenoCore › Quest EditDefaultsOnly Where a category's glyph comes from.
Objective Font Size ObjectiveFontSize int32 XenoCore › Quest EditDefaultsOnly, ClampMin=8 22 Objective prose. NotoSans territory - this is a sentence, not a label.
Objective Icon Size ObjectiveIconSize float XenoCore › Quest EditDefaultsOnly, ClampMin=4.0 30.0 How big an objective's icon draws on the details pane.
Reward Icon Size RewardIconSize float XenoCore › Quest EditDefaultsOnly, ClampMin=4.0 36.0 How big a reward item's icon draws beside its name.
Objective Colour ObjectiveColour FLinearColor XenoCore › Quest EditDefaultsOnly FLinearColor(0.7, 0.78, 0.88, 1.0) Colour of the objective prose lines.
Skill Branch Colour SkillBranchColour FLinearColor XenoCore › Quest EditDefaultsOnly FLinearColor(1.0, 0.86, 0.45, 1.0) A skill-branch reward line - the skill system's gold, so it reads apart from the items.
Counter Font Size CounterFontSize int32 XenoCore › Quest EditDefaultsOnly, ClampMin=8 20 The "Ether Crystal 0/2" line. Smaller and dimmer than the prose above it.
Counter Colour CounterColour FLinearColor XenoCore › Quest EditDefaultsOnly FLinearColor(0.55, 0.66, 0.8, 1.0) A counter that is not yet satisfied.
Counter Met Colour CounterMetColour FLinearColor XenoCore › Quest EditDefaultsOnly FLinearColor(0.41, 0.75, 0.78, 1.0) A counter that is satisfied, so a full objective reads as done at a glance.
Objective Row Colour ObjectiveRowColour FLinearColor XenoCore › Quest EditDefaultsOnly FLinearColor(1.0, 1.0, 1.0, 0.045) The band behind each objective row.
Objective Slot Count ObjectiveSlotCount int32 XenoCore › Quest EditDefaultsOnly, ClampMin=0 5 How many empty rows to draw under the real objectives. Zero draws none.
Objective Row Height ObjectiveRowHeight float XenoCore › Quest EditDefaultsOnly, ClampMin=0.0 68.0 Minimum height of one objective band, so an empty slot still has presence.
Objective Spacing ObjectiveSpacing float XenoCore › Quest EditDefaultsOnly, ClampMin=0.0 10.0 Gap under each objective block.
Fade Time FadeTime float XenoCore › Quest EditDefaultsOnly, ClampMin=0.0 0.18 Seconds to fade in, and to fade out once answered. Matches the loot panel.
Pager Bounce PagerBounce float XenoCore › Quest EditDefaultsOnly, ClampMin=0.0 9.0 How far the side chevrons travel, in pixels.
Pager Bounce Speed PagerBounceSpeed float XenoCore › Quest EditDefaultsOnly, ClampMin=0.0 4.0 Radians per second of that bounce.
Read Only bReadOnly bool XenoCore › Quest BlueprintReadOnly false True when this panel is the Quest Log's detail view.

Blueprint functions

Node Kind Signature Description
Show Offer Callable void ShowOffer(UXenoCoreQuestDefinition* InQuest, AActor* Giver) Fills the panel from one quest.
Show Quest Details Callable void ShowQuestDetails(UXenoCoreQuestDefinition* InQuest, const TArray<UXenoCoreQuestDefinition*>& InOrder) The same panel, read-only - what the Quest Log opens when a row is clicked.
On Offer Shown Event (implement in Blueprint) void K2_OnOfferShown(const UXenoCoreQuestDefinition* InQuest) Content-side hook, for a sting or a kind-specific flourish.

UXenoCoreQuestRewardBase

Class · derives from UXenoCoreHudPlateBase · header XenoCoreRuntime/Public/Quest/XenoCoreQuestRewardBase.h · abstract · Blueprintable

"Quest complete", what it paid, and a celebration effect behind it.

Properties

Property C++ name Type Category Specifiers Default Description
Heading Text HeadingText TObjectPtr<UTextBlock> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional The banner's heading ("Quest complete"), authored in the asset.
Quest Text QuestText TObjectPtr<UTextBlock> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional The quest's own name, under the heading.
Reward Box RewardBox TObjectPtr<UVerticalBox> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional One line per reward. Cleared on every show.
Confetti Canvas ConfettiCanvas TObjectPtr<UCanvasPanel> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional Where the celebration effect is drawn, behind the card.
Fanfare Sound FanfareSound TObjectPtr<USoundBase> XenoCore › Quest EditDefaultsOnly The sting played when the banner appears. Unset means silent.
Conversation Grace ConversationGrace float XenoCore › Quest EditDefaultsOnly, ClampMin=0.0 0.35 How long to let a conversation start before deciding there is not going to be one.
Post Dialogue Delay PostDialogueDelay float XenoCore › Quest EditDefaultsOnly, ClampMin=0.0 0.4 A beat between the conversation ending and the banner arriving.
Hold Time HoldTime float XenoCore › Quest EditDefaultsOnly, ClampMin=0.5 5.0 How long the banner stays up before it fades out on its own.
Celebration Celebration FXenoCoreUIEffect XenoCore › Quest › Celebration EditDefaultsOnly The burst a celebrating show plays (a UI Niagara system), drawn in ConfettiCanvas.
Row Icon Size RowIconSize float XenoCore › Quest EditDefaultsOnly, ClampMin=4.0 26.0 How big an item's icon draws on its line.
Icon Set IconSet TObjectPtr<const class UXenoCoreItemIconSet> XenoCore › Quest EditDefaultsOnly Where a category's glyph comes from.
Caption Colour CaptionColour FLinearColor XenoCore › Quest EditDefaultsOnly FLinearColor(0.41, 0.75, 0.78, 1.0) Section captions. Teal is the house's section-header colour on every other screen.
Caption Font Size CaptionFontSize int32 XenoCore › Quest EditDefaultsOnly, ClampMin=6 13 Font size of the section captions.
Divider Colour DividerColour FLinearColor XenoCore › Quest EditDefaultsOnly FLinearColor(0.7, 0.78, 0.88, 0.35) Colour of the rule drawn between reward groups.

Blueprint functions

Node Kind Signature Description
Show Reward Callable void ShowReward(const FText& QuestTitle, int32 Gold, int32 Experience, const TArray<TSubclassOf<ULyraInventoryItemDefinition>>& Items) Show the banner for one payout.
On Banner Shown Event (implement in Blueprint) void OnBannerShown(bool bCelebrate) Fired on every show.
Is Banner Showing Pure bool IsBannerShowing() Is a quest banner on screen, or still owed to the player?
Is Banner Pending Pure bool IsBannerPending() Is a payout owed but not yet on screen?
Dismiss Now Callable void DismissNow() Send the panel away now, instead of waiting out its own clock.
Dismiss Banner Callable bool DismissBanner() Dismiss whatever is up, if anything is.
Show Items Obtained Callable bool ShowItemsObtained(const FText& Heading, const FText& Subtitle, const TArray<TSubclassOf<ULyraInventoryItemDefinition>>& Items, bool bCelebrate = false) Show the banner for items that were not a quest reward - "Trade complete" and what came of it.

UXenoCoreQuestTrackerBase

Class · derives from UXenoCoreHudPlateBase · header XenoCoreRuntime/Public/Quest/XenoCoreQuestTrackerBase.h · abstract · Blueprintable

The bottom-right quest tracker: the followed quest's name and its outstanding objectives.

Properties

Property C++ name Type Category Specifiers Default Description
Title Text TitleText TObjectPtr<UTextBlock> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional The followed quest's name.
Objective Box ObjectiveBox TObjectPtr<UVerticalBox> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional One line per objective is added here. Cleared on every refresh.
Content Box ContentBox TObjectPtr<class UWidget> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional Everything the tracker says, minus the prompt.
Frame Frame TObjectPtr<class UBorder> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional The plate behind the tracker.
Toggle Label ToggleLabel TObjectPtr<UTextBlock> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional "Hide" / "Show", beside the trigger glyph.
State Text StateText TObjectPtr<UTextBlock> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional "Ready to report" and the like, under the objectives. Collapsed while there is nothing to say.
Requester Portrait RequesterPortrait TObjectPtr<class UImage> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional The giver's face, beside "Return to <name>".
Portrait Frame PortraitFrame TObjectPtr<UWidget> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional Collapses the portrait and its sizer together - an Image alone still holds its box open.
State Row StateRow TObjectPtr<UWidget> XenoCore › Quest BlueprintReadOnly, BindWidgetOptional The whole "return to" line, so the face and the words appear and vanish as one thing.
Objective Font Size ObjectiveFontSize int32 XenoCore › Quest EditDefaultsOnly, ClampMin=8 17 Font size of each objective line.
Icon Set IconSet TObjectPtr<const class UXenoCoreItemIconSet> XenoCore › Quest EditDefaultsOnly Where a category's glyph comes from.
Objective Icon ObjectiveIcon TObjectPtr<UMaterialInterface> XenoCore › Quest EditDefaultsOnly The bullet beside an objective still outstanding.
Objective Met Icon ObjectiveMetIcon TObjectPtr<UMaterialInterface> XenoCore › Quest EditDefaultsOnly The same bullet, once the objective is met.
Tick Box Size TickBoxSize float XenoCore › Quest EditDefaultsOnly, ClampMin=2.0 18.0 The tick box beside each objective.
Tick Box Colour TickBoxColour FLinearColor XenoCore › Quest EditDefaultsOnly FLinearColor(0.55, 0.66, 0.8, 0.35) An objective still outstanding - a hollow-looking, dim square.
Objective Colour ObjectiveColour FLinearColor XenoCore › Quest EditDefaultsOnly FLinearColor(0.7, 0.78, 0.88, 1.0) Text colour of an objective still outstanding.
Text Shadow Colour TextShadowColour FLinearColor XenoCore › Quest EditDefaultsOnly FLinearColor(0.04, 0.04, 0.07, 0.5) The drop shadow under every line this plate builds.
Text Shadow Offset TextShadowOffset float XenoCore › Quest EditDefaultsOnly, ClampMin=0.0 2.0 How far it falls.
Objective Met Colour ObjectiveMetColour FLinearColor XenoCore › Quest EditDefaultsOnly FLinearColor(0.41, 0.75, 0.78, 1.0) A met objective, which reads as struck through by colour alone.
Menu Close Grace MenuCloseGrace float XenoCore › Quest EditDefaultsOnly, ClampMin=0.0 0.35 How long after a menu closes the toggle stays deaf.

Blueprint functions

Node Kind Signature Description
Refresh Callable void Refresh() Rebuild from the followed quest.
Toggle Hidden Callable void ToggleHidden() The player's own hide/show, which survives every Refresh.
Toggle Quest Tracker Callable void ToggleQuestTracker() Toggle whichever tracker is on screen.

UXenoCoreQuestUIStatics

Class · derives from UBlueprintFunctionLibrary · header XenoCoreRuntime/Public/Quest/XenoCoreQuestUIStatics.h

The Quest Log's read surface. One resolver, read-only, returning finished text.

Blueprint functions

Node Kind Signature Description
Get Quest Log Rows Pure TArray<FXenoCoreQuestRowInfo> GetQuestLogRows(EXenoCoreQuestSort Sort = EXenoCoreQuestSort::Status) Every accepted or completed quest, in the order the player met them.
Get Quest Sort Label Pure FText GetQuestSortLabel(EXenoCoreQuestSort Sort) "Status", "Name", "Area", "Type" - what the log prints beside the Y prompt.
Get Next Quest Sort Pure EXenoCoreQuestSort GetNextQuestSort(EXenoCoreQuestSort Sort) The next mode in the cycle, wrapping.
Get Quest Row Info Pure FXenoCoreQuestRowInfo GetQuestRowInfo(UXenoCoreQuestDefinition* Quest) One row, for a screen that already knows which quest it wants.
Open Quest Log Callable void OpenQuestLog() Push the Quest Log onto the menu layer, and focus it.
Get Quest Kind Label Pure FText GetQuestKindLabel(EXenoCoreQuestKind Kind) "Collection", "Monster", ... for a kind.
Get Quest Requester Name Pure FText GetQuestRequesterName(const UXenoCoreQuestDefinition* Quest, AActor* Giver) Who to name as the requester of this quest.

XenoCoreRuntime / Save

AXenoCoreSavePoint

Class · derives from AActor · header XenoCoreRuntime/Public/Save/XenoCoreSavePoint.h · abstract · Blueprintable

A pad that autosaves when the player steps on it, retrying while saving is refused (e.g. in a fight), and optionally becomes the party's respawn point after a wipe.

Properties

Property C++ name Type Category Specifiers Default Description
Scene Root SceneRoot TObjectPtr<USceneComponent> XenoCore › Save VisibleAnywhere, BlueprintReadOnly Everything hangs off this so the mesh and the volume can be moved independently.
Pad Pad TObjectPtr<UStaticMeshComponent> XenoCore › Save VisibleAnywhere, BlueprintReadOnly The thing you can see. Its mesh is the Blueprint's business, not this class's.
Volume Volume TObjectPtr<UBoxComponent> XenoCore › Save VisibleAnywhere, BlueprintReadOnly What the player has to stand in. Overlaps pawns and blocks nothing.
Idle Effect IdleEffect TObjectPtr<UNiagaraComponent> XenoCore › Save VisibleAnywhere, BlueprintReadOnly The pad's standing glow. Its system is set on the Blueprint.
Saved Effect SavedEffect TObjectPtr<UNiagaraSystem> XenoCore › Save EditDefaultsOnly, BlueprintReadOnly One-shot burst when an autosave is accepted. Not played for a refused save.
Point Name PointName FString XenoCore › Save EditAnywhere, BlueprintReadWrite "Save Point" Named in the log line for every autosave this pad causes.
Retry Interval RetryInterval float XenoCore › Save EditAnywhere, BlueprintReadWrite, ClampMin=0.1, UIMin=0.1, Units=s 1.0 How often to try again while the player stands here and saving is refused.
Rearm On Exit bRearmOnExit bool XenoCore › Save EditAnywhere, BlueprintReadWrite true Save again on a later visit, or only the first time?
Respawn Offset RespawnOffset FVector XenoCore › Save EditAnywhere, BlueprintReadWrite FVector(0.0, 0.0, 100.0) Offset from the pad's origin to where a wiped party's leader respawns.
Is Respawn Point bIsRespawnPoint bool XenoCore › Save EditAnywhere, BlueprintReadWrite true Record this pad as the party's respawn point when the player steps on it (XC1: last visited).

Blueprint functions

Node Kind Signature Description
Try Autosave Callable bool TryAutosave() Tries to autosave now.
Get Respawn Transform Pure FTransform GetRespawnTransform() const Where a wiped party stands again after the player has visited this pad: the pad raised by RespawnOffset, facing the pad's yaw.

EXenoCoreSaveScreenMode

Enum · header XenoCoreRuntime/Public/Save/XenoCoreSaveScreenBase.h · BlueprintType

Which job this screen is doing. One widget serves both, exactly as XC1's do.

Value Shown as Description
Save Save No description.
Load Load No description.

FXenoCoreSaveBody

Struct · header XenoCoreRuntime/Public/Save/XenoCoreSaveTypes.h · BlueprintType

Everything the world is rebuilt from.

Properties

Property C++ name Type Category Specifiers Default Description
Gold Gold int32 XenoCore › Save BlueprintReadOnly 0 No description.
Leader Slot LeaderSlot int32 XenoCore › Save BlueprintReadOnly 0 Which active slot is the leader.
Max Active Members MaxActiveMembers int32 XenoCore › Save BlueprintReadOnly 3 Saved because a menu is expected to grant party slots later.
Items Items TArray<FXenoCoreSavedItem> XenoCore › Save BlueprintReadOnly The party bag. Equipment refers to these by index.
Members Members TArray<FXenoCoreSavedMember> XenoCore › Save BlueprintReadOnly The whole roster, active and benched.
Quests Quests TArray<FXenoCoreSavedQuest> XenoCore › Save BlueprintReadOnly No description.
Party Tactics PartyTactics TMap<FName, FName> XenoCore › Save BlueprintReadOnly The party's tactics, tactic name -> value name. Empty = the defaults.
Active Quest ActiveQuest FSoftObjectPath XenoCore › Save BlueprintReadOnly No description.
Leader Transform LeaderTransform FTransform XenoCore › Save BlueprintReadOnly Where the leader stands. The rest of the party re-forms around them on spawn.
World Chests WorldChests TArray<FXenoCoreSavedMapChests> XenoCore › Save BlueprintReadOnly Treasure chests, per map - the one this save is in and every map visited before it.
Participants Participants TMap<FName, FXenoCoreSaveRecord> XenoCore › Save BlueprintReadOnly Save participants' records, by save key.

FXenoCoreSaveHeader

Struct · header XenoCoreRuntime/Public/Save/XenoCoreSaveTypes.h · BlueprintType

Loads every file it lists - and a body that fails to migrate should still leave a row the player can see and overwrite, rather than an empty list that looks like lost saves.

Properties

Property C++ name Type Category Specifiers Default Description
Autosave bAutosave bool XenoCore › Save BlueprintReadOnly false True for the autosave slot, which the Save screen lists but refuses to target.
Leader Name LeaderName FString XenoCore › Save BlueprintReadOnly No description.
Leader Level LeaderLevel int32 XenoCore › Save BlueprintReadOnly 1 No description.
Active Members ActiveMembers TArray<FSoftObjectPath> XenoCore › Save BlueprintReadOnly Active members in party order - the row draws one portrait each.
Location Text LocationText FString XenoCore › Save BlueprintReadOnly Printed over the bottom of the thumbnail. The map's name from UXenoCoreSaveSettings, or SetLocationText's override.
Story Text StoryText FString XenoCore › Save BlueprintReadOnly SetStoryText, else UXenoCoreSaveSettings::DefaultStoryText. May be empty.
Play Time Seconds PlayTimeSeconds float XenoCore › Save BlueprintReadOnly 0.0 No description.
Save Time Utc SaveTimeUtc FDateTime XenoCore › Save BlueprintReadOnly Stored utc, drawn local - a save carried between time zones should not lie about its age.
Map Map FSoftObjectPath XenoCore › Save BlueprintReadOnly The map this save is in, and the one a load travels to.
Thumbnail Thumbnail TArray<uint8> XenoCore › Save BlueprintReadOnly The slot's thumbnail, compressed.

FXenoCoreSaveRecord

Struct · header XenoCoreRuntime/Public/Save/XenoCoreSaveTypes.h · BlueprintType

One save participant's data, as written by that participant.

Properties

Property C++ name Type Category Specifiers Default Description
Version Version int32 XenoCore › Save BlueprintReadOnly 1 The participant's own data version when this record was written.
Bytes Bytes TArray<uint8> XenoCore › Save BlueprintReadOnly The participant's serialized data.

FXenoCoreSavedArt

Struct · header XenoCoreRuntime/Public/Save/XenoCoreSaveTypes.h · BlueprintType

One learned art: which, and how far it has been levelled.

Properties

Property C++ name Type Category Specifiers Default Description
Art Art FSoftObjectPath XenoCore › Save BlueprintReadOnly No description.
Level Level int32 XenoCore › Save BlueprintReadOnly 1 No description.
Level Cap LevelCap int32 XenoCore › Save BlueprintReadOnly 0 0 = the default cap. Anything else was raised by an Arts Manual.

FXenoCoreSavedChest

Struct · header XenoCoreRuntime/Public/Save/XenoCoreSaveTypes.h · BlueprintType

One treasure chest that has to outlive the world it is in.

Properties

Property C++ name Type Category Specifiers Default Description
Chest Class ChestClass FSoftClassPath XenoCore › Save BlueprintReadOnly The chest's Blueprint class. Dropped chests only - a placed one is its own level actor.
Placed Name PlacedName FName XenoCore › Save BlueprintReadOnly The level actor's name for a placed chest; None for one an enemy dropped.
Transform Transform FTransform XenoCore › Save BlueprintReadOnly No description.
Drop Table DropTable FSoftObjectPath XenoCore › Save BlueprintReadOnly UXenoCoreDropTable, as a path. Null is legal - the chest opens empty and says so.
Tier Tier FName XenoCore › Save BlueprintReadOnly EXenoCoreChestTier as its enum entry name, never its ordinal - see the file header.
Source Level SourceLevel int32 XenoCore › Save BlueprintReadOnly 1 No description.
Resolved bResolved bool XenoCore › Save BlueprintReadOnly false Placed chests only: answered and gone. The level's copy is despawned on arrival.
Opened bOpened bool XenoCore › Save BlueprintReadOnly false Opened already, holding Remaining. False means unopened: roll on open.
Remaining Remaining TArray<FSoftClassPath> XenoCore › Save BlueprintReadOnly What an opened chest still holds - the items the bag had no room for.

FXenoCoreSavedEquip

Struct · header XenoCoreRuntime/Public/Save/XenoCoreSaveTypes.h · BlueprintType

One equipped slot, as a name plus an index into the saved bag.

Properties

Property C++ name Type Category Specifiers Default Description
Slot Slot FName XenoCore › Save BlueprintReadOnly EXenoCoreEquipSlot as its enum entry name, never its ordinal.
Item Index ItemIndex int32 XenoCore › Save BlueprintReadOnly INDEX_NONE Index into FXenoCoreSaveBody::Items. INDEX_NONE means the slot is empty.

FXenoCoreSavedGem

Struct · header XenoCoreRuntime/Public/Save/XenoCoreSaveTypes.h · BlueprintType

One gem in one socket.

Properties

Property C++ name Type Category Specifiers Default Description
Socket Socket int32 XenoCore › Save BlueprintReadOnly 0 Socket position, 0-based.
Gem Gem FSoftClassPath XenoCore › Save BlueprintReadOnly The gem's item definition class, as a path.
Value Value int32 XenoCore › Save BlueprintReadOnly 0 The gem's rolled strength.

FXenoCoreSavedItem

Struct · header XenoCoreRuntime/Public/Save/XenoCoreSaveTypes.h · BlueprintType

One bag entry.

Properties

Property C++ name Type Category Specifiers Default Description
Item Def ItemDef FSoftClassPath XenoCore › Save BlueprintReadOnly The item definition's Blueprint class, as a path.
Gem Strength GemStrength int32 XenoCore › Save BlueprintReadOnly 0 A loose gem's rolled strength. 0 for anything that is not a gem.
Sockets Sockets TArray<FXenoCoreSavedGem> XenoCore › Save BlueprintReadOnly Gems in this item's sockets. Empty sockets are not written.

FXenoCoreSavedMapChests

Struct · header XenoCoreRuntime/Public/Save/XenoCoreSaveTypes.h · BlueprintType

Every chest record for one map.

Properties

Property C++ name Type Category Specifiers Default Description
Map Map FSoftObjectPath XenoCore › Save BlueprintReadOnly The map, PIE prefix stripped - UXenoCoreSaveSettings::GetMapPathForWorld.
Chests Chests TArray<FXenoCoreSavedChest> XenoCore › Save BlueprintReadOnly No description.

FXenoCoreSavedMember

Struct · header XenoCoreRuntime/Public/Save/XenoCoreSaveTypes.h · BlueprintType

One character, active or benched.

Properties

Property C++ name Type Category Specifiers Default Description
Definition Definition FSoftObjectPath XenoCore › Save BlueprintReadOnly No description.
Tactics Tactics TMap<FName, FName> XenoCore › Save BlueprintReadOnly This member's own party-tactics orders, tactic name -> value name. Unlisted tactics follow the party.
Level Level int32 XenoCore › Save BlueprintReadOnly 1 No description.
Experience Experience float XenoCore › Save BlueprintReadOnly 0.0 Experience towards the next level, not a lifetime total.
Active Slot ActiveSlot int32 XenoCore › Save BlueprintReadOnly INDEX_NONE Position in the active party, or INDEX_NONE when benched. Order matters: it is the HUD's.
Seeded bSeeded bool XenoCore › Save BlueprintReadOnly false UXenoCorePartyComponent::SeededLoadouts is Transient, so without this field every member re-seeds their starting bag and loadout on load and the party's items double. It is the single most important bool in the file.
Health Fraction HealthFraction float XenoCore › Save BlueprintReadOnly 1.0 Current health as a fraction of max, never as points.
Equipment Equipment TArray<FXenoCoreSavedEquip> XenoCore › Save BlueprintReadOnly What this character is wearing, including while benched.
Arts Arts TArray<FXenoCoreSavedArt> XenoCore › Save BlueprintReadOnly Every art this character knows, with its level.
Palette Palette TArray<FSoftObjectPath> XenoCore › Save BlueprintReadOnly The battle palette in slot order. A null path is an empty slot - a gap the player left.
Palette Saved bPaletteSaved bool XenoCore › Save BlueprintReadOnly false No description.
Art Points ArtPoints int32 XenoCore › Save BlueprintReadOnly 0 Art Points banked, unspent.
Skills Saved bSkillsSaved bool XenoCore › Save BlueprintReadOnly false Skill-tree progress. Read only when bSkillsSaved - an older save has none and seeds fresh from the tree, the bPaletteSaved precedent.
Selected Skill Branch SelectedSkillBranch FName XenoCore › Save BlueprintReadOnly No description.
Skill Branches SkillBranches TArray<FXenoCoreSavedSkillBranch> XenoCore › Save BlueprintReadOnly No description.

FXenoCoreSavedQuest

Struct · header XenoCoreRuntime/Public/Save/XenoCoreSaveTypes.h · BlueprintType

One quest the player knows about.

Properties

Property C++ name Type Category Specifiers Default Description
Definition Definition FSoftObjectPath XenoCore › Save BlueprintReadOnly No description.
Status Status FName XenoCore › Save BlueprintReadOnly EXenoCoreQuestStatus as its enum entry name.
Counts Counts TArray<int32> XenoCore › Save BlueprintReadOnly Per-objective progress, parallel to the definition's Objectives.
Requester Name RequesterName FString XenoCore › Save BlueprintReadOnly Who asked, snapshotted at Accept - the giver may be an area away by the time this is drawn.

FXenoCoreSavedSkillBranch

Struct · header XenoCoreRuntime/Public/Save/XenoCoreSaveTypes.h · BlueprintType

One skill branch's progress. By row name, never index - a designer reordering the tree's rows must not move anybody's progress onto a different branch.

Properties

Property C++ name Type Category Specifiers Default Description
Branch Branch FName XenoCore › Save BlueprintReadOnly No description.
Unlocked bUnlocked bool XenoCore › Save BlueprintReadOnly false No description.
Skills Learnt SkillsLearnt int32 XenoCore › Save BlueprintReadOnly 0 No description.
Skill Points Into Next SkillPointsIntoNext int32 XenoCore › Save BlueprintReadOnly 0 No description.

UXenoCoreAutosaveBadgeBase

Class · derives from UXenoCoreHudPlateBase · header XenoCoreRuntime/Public/Save/XenoCoreAutosaveBadgeBase.h · abstract · Blueprintable

HUD badge shown while an autosave writes ("Autosaving...", the power warning and a spinning icon), then briefly confirming the result. Takes no input and cannot be dismissed.

Properties

Property C++ name Type Category Specifiers Default Description
Status Text StatusText TObjectPtr<UTextBlock> XenoCore › Save BlueprintReadOnly, BindWidgetOptional "Autosaving..." while writing, "Saved" once it lands.
Warning Text WarningText TObjectPtr<UTextBlock> XenoCore › Save BlueprintReadOnly, BindWidgetOptional The "do not turn off the power" line.
Icon Image IconImage TObjectPtr<UImage> XenoCore › Save BlueprintReadOnly, BindWidgetOptional The save icon - an Image whose brush is M_XenoCore_UI_SaveIcon.
Saving Parameter Name SavingParameterName FName XenoCore › Save EditDefaultsOnly, BlueprintReadOnly "Saving" The icon material's scalar: 1 = writing (chasing ring), 0 = done (steady ring).
Icon Colour IconColour FLinearColor XenoCore › Save EditDefaultsOnly, BlueprintReadOnly FLinearColor::White Tint of the save icon while saving and after a successful save.
Failed Icon Colour FailedIconColour FLinearColor XenoCore › Save EditDefaultsOnly, BlueprintReadOnly FLinearColor(1.0, 0.35, 0.3, 1.0) Tint of the save icon after a failed save.
Saving Label SavingLabel FText XenoCore › Save EditDefaultsOnly, BlueprintReadOnly NSLOCTEXT("XenoCore", "Autosaving", "Autosaving...") Status text shown while the autosave writes.
Saved Label SavedLabel FText XenoCore › Save EditDefaultsOnly, BlueprintReadOnly NSLOCTEXT("XenoCore", "Autosaved", "Saved") Status text shown once the autosave has written successfully.
Failed Label FailedLabel FText XenoCore › Save EditDefaultsOnly, BlueprintReadOnly NSLOCTEXT("XenoCore", "AutosaveFailed", "Save failed") Status text shown when the autosave failed to write.
Warning Label WarningLabel FText XenoCore › Save EditDefaultsOnly, BlueprintReadOnly NSLOCTEXT("XenoCore", "AutosaveWarning", "Do not turn off... Warning line shown only while the write is in progress.
Hold Seconds HoldSeconds float XenoCore › Save EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.0, UIMin=0.0, Units=s 2.0 How long "Saved" stays up after the write lands.
Min Saving Seconds MinSavingSeconds float XenoCore › Save EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.0, Units=s 1.5 The least time the saving state (label + chasing icon) stays up, however fast the write is.
Failed Hold Seconds FailedHoldSeconds float XenoCore › Save EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.0, UIMin=0.0, Units=s 5.0 A failure is worth reading twice, so it holds longer.

UXenoCoreSaveGame

Class · derives from ULocalPlayerSaveGame · header XenoCoreRuntime/Public/Save/XenoCoreSaveGame.h · BlueprintType

A XenoCore save file: a header the slot list can draw on its own, and the body the world is rebuilt from, plus a data version for migrations.

Properties

Property C++ name Type Category Specifiers Default Description
Header Header FXenoCoreSaveHeader XenoCore › Save BlueprintReadOnly What the slot row draws, without needing the body to be valid.
Body Body FXenoCoreSaveBody XenoCore › Save BlueprintReadOnly What the world is rebuilt from.

Blueprint functions

Node Kind Signature Description
Is Loadable Pure bool IsLoadable() const A save from a newer build is still listed (from its header) but refuses to load.

UXenoCoreSaveParticipantComponent

Class · derives from UActorComponent · header XenoCoreRuntime/Public/Save/XenoCoreSaveParticipantComponent.h

Saves its owning actor's SaveGame variables. Set Save Key for any actor spawned more than once.

Properties

Property C++ name Type Category Specifiers Default Description
Save Key SaveKey FName XenoCore › Save EditAnywhere, BlueprintReadOnly The name the owner's data is stored under. None derives one from the owner.

UXenoCoreSaveRowBase

Class · derives from UCommonUserWidget · header XenoCoreRuntime/Public/Save/XenoCoreSaveRowBase.h · abstract · Blueprintable

One save slot in the save/load list: thumbnail and location, leader level and name, party faces, play time, save time and story progress.

Properties

Property C++ name Type Category Specifiers Default Description
Row Button RowButton TObjectPtr<UCommonButtonBase> XenoCore › Save BlueprintReadOnly, BindWidgetOptional No description.
Thumb Box ThumbBox TObjectPtr<UWidget> XenoCore › Save BlueprintReadOnly, BindWidgetOptional The thumbnail's frame and the text column.
Info Box InfoBox TObjectPtr<UWidget> XenoCore › Save BlueprintReadOnly, BindWidgetOptional No description.
Name Box NameBox TObjectPtr<UWidget> XenoCore › Save BlueprintReadOnly, BindWidgetOptional The left column - the pill, the name, and the faces.
Head Box HeadBox TObjectPtr<UWidget> XenoCore › Save BlueprintReadOnly, BindWidgetOptional The level and name line. Gone on an empty slot; the pill above it is not.
Thumbnail Thumbnail TObjectPtr<UImage> XenoCore › Save BlueprintReadOnly, BindWidgetOptional The world as it looked when the file was written. Blank frame when there is none.
Location Text LocationText TObjectPtr<UTextBlock> XenoCore › Save BlueprintReadOnly, BindWidgetOptional Printed over the thumbnail's bottom edge, as XC1 does.
Autosave Pill AutosavePill TObjectPtr<UWidget> XenoCore › Save BlueprintReadOnly, BindWidgetOptional "Auto-save". Shown on that row only.
Level Text LevelText TObjectPtr<UTextBlock> XenoCore › Save BlueprintReadOnly, BindWidgetOptional No description.
Leader Name Text LeaderNameText TObjectPtr<UTextBlock> XenoCore › Save BlueprintReadOnly, BindWidgetOptional No description.
Play Time Text PlayTimeText TObjectPtr<UTextBlock> XenoCore › Save BlueprintReadOnly, BindWidgetOptional No description.
Save Time Text SaveTimeText TObjectPtr<UTextBlock> XenoCore › Save BlueprintReadOnly, BindWidgetOptional No description.
Story Text StoryText TObjectPtr<UTextBlock> XenoCore › Save BlueprintReadOnly, BindWidgetOptional No description.
Detail Box DetailBox TObjectPtr<UWidget> XenoCore › Save BlueprintReadOnly, BindWidgetOptional The three captions.
Empty Text EmptyText TObjectPtr<UTextBlock> XenoCore › Save BlueprintReadOnly, BindWidgetOptional "New File" / "No data", shown in the detail box's place.
Portrait Box PortraitBox TObjectPtr<UWidget> XenoCore › Save BlueprintReadOnly, BindWidgetOptional Up to PortraitSlots faces, in party order. Extra slots collapse.
Divider Divider TObjectPtr<UWidget> XenoCore › Save BlueprintReadOnly, BindWidgetOptional The line under the autosave row, in Save mode only.

Blueprint functions

Node Kind Signature Description
Get Focus Target Callable UWidget* GetFocusTarget() const What the screen should focus.
Get Slot Index Pure int32 GetSlotIndex() const Which slot this row stands for.
Is Selectable Pure bool IsSelectable() const False for the autosave row while saving, and for a row from a newer build while loading.
On Row Set Event (implement in Blueprint) void K2_OnRowSet(const FXenoCoreSaveRowInfo& InRow, bool bInSaveMode) Content hook, for anything the Blueprint wants to draw that C++ does not name.

UXenoCoreSaveScreenBase

Class · derives from UCommonActivatableWidget · header XenoCoreRuntime/Public/Save/XenoCoreSaveScreenBase.h · abstract · Blueprintable

The Save / Load screen: the autosave row plus three manual slots, in one widget with two modes.

Properties

Property C++ name Type Category Specifiers Default Description
Mode Mode EXenoCoreSaveScreenMode XenoCore › Save EditAnywhere, BlueprintReadWrite EXenoCoreSaveScreenMode::Save Whether this screen saves or loads. Changes the title, the empty-slot phrase and which rows can be chosen.
Rows Box RowsBox TObjectPtr<UVerticalBox> XenoCore › Save BlueprintReadOnly, BindWidgetOptional One row per slot is added here, cleared on every refresh.
Title Text TitleText TObjectPtr<UTextBlock> XenoCore › Save BlueprintReadOnly, BindWidgetOptional "Save" / "Load", top left, as the reference puts it.
Saving Notice SavingNotice TObjectPtr<UWidget> XenoCore › Save BlueprintReadOnly, BindWidgetOptional "Saving - do not turn off the power."
Footer Label FooterLabel TObjectPtr<UTextBlock> XenoCore › Save BlueprintReadOnly, BindWidgetOptional What the footer's button does - "Save" or "Load".
Delete Footer DeleteFooter TObjectPtr<UWidget> XenoCore › Save BlueprintReadOnly, BindWidgetOptional The footer's second prompt - glyph plus "Delete" - collapsed wherever there is nothing to delete.
Delete Glyph DeleteGlyph TObjectPtr<UCommonActionWidget> XenoCore › Save BlueprintReadOnly, BindWidgetOptional Given DeleteAction at runtime, so the key it draws and the key that works are one row.
Delete Label DeleteLabel TObjectPtr<UTextBlock> XenoCore › Save BlueprintReadOnly, BindWidgetOptional No description.
Delete Action DeleteAction FDataTableRowHandle XenoCore › Save EditDefaultsOnly The key that deletes. X on a keyboard, Y on the pad - the same row shape as Unequip and Remove, the project's other destructive per-slot actions.
Overlay Stack OverlayStack TObjectPtr<UCommonActivatableWidgetStack> XenoCore › Save BlueprintReadOnly, BindWidgetOptional Where the confirm popup is pushed - a stack inside this screen, drawn over the rows.
Confirm Popup Class ConfirmPopupClass TSubclassOf<UXenoCoreConfirmPopupBase> XenoCore › Save EditDefaultsOnly The popup widget. Set on the Blueprint, because C++ must not name a content path.
Row Class RowClass TSubclassOf<UXenoCoreSaveRowBase> XenoCore › Save EditDefaultsOnly The row widget. Set on the Blueprint, because C++ must not name a content path.
Row Spacing RowSpacing float XenoCore › Save EditDefaultsOnly, ClampMin=0.0, UIMin=0.0 14.0 Gap between rows, measured plate edge to plate edge.

Blueprint functions

Node Kind Signature Description
Refresh Callable void Refresh() Rebuild every row from disk.
Set Mode Callable void SetMode(EXenoCoreSaveScreenMode InMode) Save or Load.
Get Rows Pure TArray<UXenoCoreSaveRowBase*> GetRows() const The live rows, in list order.
Is Delete Offered Pure bool IsDeleteOffered() const True while the footer offers Delete - Load mode, on a slot that holds a file.

UXenoCoreSaveSettings

Class · derives from UDeveloperSettings · header XenoCoreRuntime/Public/Save/XenoCoreSaveSettings.h

What a save row prints for where and when, as project data - Project Settings > Game > XenoCore Save, stored in the project's DefaultGame.ini.

Properties

Property C++ name Type Category Specifiers Default Description
Location Names LocationNames TMap<TSoftObjectPtr<UWorld>, FText> Save Rows Config, EditAnywhere, AllowedClasses=/Script/Engine.World The place name a save row prints for a save written on each map. Unlisted maps print nothing.
Default Story Text DefaultStoryText FText Save Rows Config, EditAnywhere The story line a save row prints until something calls SetStoryText. Empty prints nothing.

UXenoCoreSaveSubsystem

Class · derives from UGameInstanceSubsystem · header XenoCoreRuntime/Public/Save/XenoCoreSaveSubsystem.h

Same rule as GetPartyInventory, GetPartyQuests and GetTargetModeAbility: one resolver, and everything else goes through it. Nothing else names a slot, writes a file, or decides whether a load is in progress.

Events you can bind

Event Type Description
OnSaveWritten FXenoCoreSaveWritten Broadcast when a save finishes writing, with the slot and whether it succeeded.
OnSaveStarted FXenoCoreSaveStarted Broadcast when a save begins writing.
OnSaveRestored FXenoCoreSaveRestored Broadcast once a loaded save has been applied to the world.
OnSaveLoaded FXenoCoreSaveLoaded Broadcast once a loaded save has been fully applied, with the slot it came from.

Blueprint functions

Node Kind Signature Description
Get Pure UXenoCoreSaveSubsystem* Get() The one resolver.
Get Slot Name Pure FString GetSlotName(int32 SlotIndex) "XenoCore_Auto" or "XenoCore_01".."XenoCore_03".
Load All Slots Callable TArray<UXenoCoreSaveGame*> LoadAllSlots() Reads every slot's file so the list screen can draw its rows.
Load Slot Callable UXenoCoreSaveGame* LoadSlot(int32 SlotIndex) One slot, or null when it is empty.
Save To Slot Callable bool SaveToSlot(int32 SlotIndex) Captures the world and writes it to a slot, asynchronously.
Request Autosave Callable bool RequestAutosave(const FString& Reason) Writes to the autosave slot.
Delete Slot Callable bool DeleteSlot(int32 SlotIndex) Deletes a slot's file.
Can Save Now Pure bool CanSaveNow() const True when a save is allowed right now; false in combat or under a menu.
Is Save In Progress Pure bool IsSaveInProgress() const True while a write is actually in flight.
Is Autosave In Progress Pure bool IsAutosaveInProgress() const Which slot the in-flight write is going to, or NoSlotIndex when nothing is being written.
Load From Slot Callable bool LoadFromSlot(int32 SlotIndex) Loads a slot: stashes it, then travels to its map.
Is Restoring From Save Pure bool IsRestoringFromSave() const Starting inventory and starting equipment are seeded from the ASC-ready delegate on every pawn's first body, and the roster is seeded from StartingRoster in BeginPlay.
Was World Loaded From Save Pure bool WasWorldLoadedFromSave() const True for the whole life of a world that was loaded from a save.
Begin New Game Callable void BeginNewGame() Starting a new game: forget that anything was ever loaded, so seeding runs normally again.
Restore Pending Save Callable void RestorePendingSave(APlayerController* PlayerController) Applies the pending save to the world, in the one order that works.
Get Loaded Slot Index Pure int32 GetLoadedSlotIndex() const The slot this game was last loaded from, or NoSlotIndex (the lowest int32) if none.
Register Save Participant Callable void RegisterSaveParticipant(UObject* Participant, FName SaveKey = NAME_None) Adds an actor, component or object to the save.
Unregister Save Participant Callable void UnregisterSaveParticipant(UObject* Participant) Removes a participant from the save, keeping what it last held.
Forget Save Record Callable bool ForgetSaveRecord(FName SaveKey) No description.
Has Save Record Pure bool HasSaveRecord(FName SaveKey) const True when a record is held under this key.
Get Play Time Seconds Pure float GetPlayTimeSeconds() const Seconds of play in this save, across sessions.
Format Play Time Pure FText FormatPlayTime(float Seconds) Play time as XC1 prints it: "1:55".
Has Unsaved Progress Pure bool HasUnsavedProgress() const Has anything been played since the last save, autosave or load?
Capture Thumbnail Callable void CaptureThumbnail() Grab the world as it looks right now, for the next save's slot picture.
Set Location Text Callable void SetLocationText(const FString& Location) The location and story line the slot row prints.
Set Story Text Callable void SetStoryText(const FString& Story) Overrides UXenoCoreSaveSettings::DefaultStoryText.
Get Current Location Text Pure FString GetCurrentLocationText() const What a save written now would print for its location: the override, else the map's name, else empty.
Get Current Story Text Pure FString GetCurrentStoryText() const What a save written now would print for its story line.

UXenoCoreTitleScreenBase

Class · derives from UCommonActivatableWidget · header XenoCoreRuntime/Public/Save/XenoCoreTitleScreenBase.h · abstract · Blueprintable

The title screen: Continue, New Game, Load Game, Settings and Quit. Continue and Load disable themselves when there is no save to act on.

Properties

Property C++ name Type Category Specifiers Default Description
Continue Button ContinueButton TObjectPtr<UCommonButtonBase> XenoCore › Title BlueprintReadOnly, BindWidgetOptional The most recent save, in one press.
New Game Button NewGameButton TObjectPtr<UCommonButtonBase> XenoCore › Title BlueprintReadOnly, BindWidgetOptional No description.
Load Game Button LoadGameButton TObjectPtr<UCommonButtonBase> XenoCore › Title BlueprintReadOnly, BindWidgetOptional No description.
Settings Button SettingsButton TObjectPtr<UCommonButtonBase> XenoCore › Title BlueprintReadOnly, BindWidgetOptional No description.
Quit Button QuitButton TObjectPtr<UCommonButtonBase> XenoCore › Title BlueprintReadOnly, BindWidgetOptional Wrapped in a CommonHardwareVisibilityBorder in the widget, copying Lyra's own title: a console build has no business offering to quit, and the border is what knows that.
Continue Subtitle ContinueSubtitle TObjectPtr<UTextBlock> XenoCore › Title BlueprintReadOnly, BindWidgetOptional "<place> - 1:23:45, Lv 5" under the entry; no place prefix for an unnamed map. Empty when there is no save.
New Game Map NewGameMap TSoftObjectPtr<UWorld> XenoCore › Title EditDefaultsOnly The map a new game starts in.
Settings Screen Class SettingsScreenClass TSoftClassPtr<UCommonActivatableWidget> XenoCore › Title EditDefaultsOnly The settings screen to push.

Blueprint functions

Node Kind Signature Description
Refresh Callable void Refresh() Re-reads which slots exist and enables the entries that have something to act on.

UXenoCoreTitleStateComponent

Class · derives from UGameStateComponent · header XenoCoreRuntime/Public/Save/XenoCoreTitleStateComponent.h

Puts the title screen on screen, and nothing else.

Properties

Property C++ name Type Category Specifiers Default Description
Title Screen Class TitleScreenClass TSoftClassPtr<UCommonActivatableWidget> XenoCore › Title EditDefaultsOnly The screen to show.
Boot Screens BootScreens TArray<TSoftClassPtr<UXenoCoreBootScreenBase>> XenoCore › Title EditDefaultsOnly The pre-title sequence, in order - studio logo, engine logo, autosave notice, shaders. Reorder, add or drop cards here; each card's timing is on its own Blueprint.
Title Reveal Time TitleRevealTime float XenoCore › Title EditDefaultsOnly, ClampMin=0.0, UIMin=0.0, Units=s 1.0 How long the title scene and its music take to come up once the sequence ends.
Boot Gap Time BootGapTime float XenoCore › Title EditDefaultsOnly, ClampMin=0.0, UIMin=0.0, Units=s 0.4 Black between two cards, after one has faded out and before the next fades in.

XenoCoreRuntime / Shop

EXenoCoreShopMode

Enum · header XenoCoreRuntime/Public/Shop/XenoCoreShopScreenBase.h · BlueprintType

Buying from the shop, or selling to it.

Value Shown as Description
Buy Buy No description.
Sell Sell No description.

EXenoCoreShopStage

Enum · header XenoCoreRuntime/Public/Shop/XenoCoreShopScreenBase.h · BlueprintType

Where the player is in the shop.

Value Shown as Description
Entry Entry The "Shop" panel: Buy / Sell / Quit.
List List A Buy or Sell list.
Confirm Confirm "Confirm purchase" / "Confirm sale" - the quantity stepper, Total and Money.
Refused Refused "You cannot sell weapons that are in use."
EquipPrompt Equip Prompt "Equip now?" after buying equipment - A equips it on the character picked with the L/R toggle, B leaves it in the bag.

FXenoCoreShopBagEntry

Struct · header XenoCoreRuntime/Public/Shop/XenoCoreShopScreenBase.h

One line of the Sell list: a definition grouped out of the one-entry-per-item bag.

FXenoCoreShopOffer

Struct · header XenoCoreRuntime/Public/Shop/XenoCoreShopTable.h · BlueprintType

One thing a shop sells.

Properties

Property C++ name Type Category Specifiers Default Description
Item Item TSoftClassPtr<ULyraInventoryItemDefinition> XenoCore › Shop EditAnywhere, BlueprintReadOnly What the shop sells.
Price Override PriceOverride int32 XenoCore › Shop EditAnywhere, BlueprintReadOnly, ClampMin=0 0 What it costs, or 0 to charge the item's own buy price (SellValue x 10).
Resolved Price PreviewPrice int32 XenoCore › Shop VisibleAnywhere, Transient 0 Read-only: what this row actually costs, once 0 has been resolved.

UXenoCoreOpenShop

Class · derives from UBlueprintAsyncActionBase · header XenoCoreRuntime/Public/Shop/XenoCoreShopNodes.h

"Open Shop" - puts the shop on screen and continues when the player leaves it.

Events you can bind

Event Type Description
Transacted FXenoCoreShopPin The player bought or sold at least once.
NothingChanged FXenoCoreShopPin The player left without buying or selling, or the shop could not be shown.

Blueprint functions

Node Kind Signature Description
Open Shop Latent node factory UXenoCoreOpenShop* OpenShop(UXenoCoreShopTable* Table, AActor* Shopkeeper) Show the shop and wait.

UXenoCoreShopScreenBase

Class · derives from UXenoCoreMerchantScreenBase · header XenoCoreRuntime/Public/Shop/XenoCoreShopScreenBase.h · abstract · Blueprintable

XC1's shop: an entry panel, a Buy list, a Sell list, a quantity confirm and the in-use refusal.

Properties

Property C++ name Type Category Specifiers Default Description
Entry Row EntryRow TObjectPtr<UWidget> XenoCore › Shop BlueprintReadOnly, BindWidgetOptional The whole entry layer - its scrim and its panel.
Buy Button BuyButton TObjectPtr<UCommonButtonBase> XenoCore › Shop BlueprintReadOnly, BindWidgetOptional Buy / Sell / Quit.
Sell Button SellButton TObjectPtr<UCommonButtonBase> XenoCore › Shop BlueprintReadOnly, BindWidgetOptional No description.
Quit Button QuitButton TObjectPtr<UCommonButtonBase> XenoCore › Shop BlueprintReadOnly, BindWidgetOptional No description.
Main Panel MainPanel TObjectPtr<UWidget> XenoCore › Shop BlueprintReadOnly, BindWidgetOptional The list screen - collapsed while the entry panel is up.
Qty Header QtyHeader TObjectPtr<UTextBlock> XenoCore › Shop BlueprintReadOnly, BindWidgetOptional "Number" on the Buy list, blank (width kept) on a Sell tab that does not stack.
Value Header ValueHeader TObjectPtr<UTextBlock> XenoCore › Shop BlueprintReadOnly, BindWidgetOptional "Price" / "Sale Price".
Held Text HeldText TObjectPtr<UTextBlock> XenoCore › Shop BlueprintReadOnly, BindWidgetOptional "Held N" - the held count only, until a real bag cap exists.
Gold Text GoldText TObjectPtr<UTextBlock> XenoCore › Shop BlueprintReadOnly, BindWidgetOptional The purse. The first live purse readout in the project.
Confirm Row ConfirmRow TObjectPtr<UWidget> XenoCore › Shop BlueprintReadOnly, BindWidgetOptional The whole confirm layer, scrim included.
Confirm Title ConfirmTitle TObjectPtr<UTextBlock> XenoCore › Shop BlueprintReadOnly, BindWidgetOptional No description.
Confirm Icon ConfirmIcon TObjectPtr<UImage> XenoCore › Shop BlueprintReadOnly, BindWidgetOptional No description.
Confirm Item Text ConfirmItemText TObjectPtr<UTextBlock> XenoCore › Shop BlueprintReadOnly, BindWidgetOptional No description.
Quantity Button QuantityButton TObjectPtr<UCommonButtonBase> XenoCore › Shop BlueprintReadOnly, BindWidgetOptional The focus target of the confirm. Its Up/Down navigation steps the count.
Quantity Text QuantityText TObjectPtr<UTextBlock> XenoCore › Shop BlueprintReadOnly, BindWidgetOptional No description.
Up Arrow UpArrow TObjectPtr<UImage> XenoCore › Shop BlueprintReadOnly, BindWidgetOptional The up and down arrow images - images because Orbitron has no arrow glyphs. Dimmed at a limit.
Down Arrow DownArrow TObjectPtr<UImage> XenoCore › Shop BlueprintReadOnly, BindWidgetOptional No description.
Total Text TotalText TObjectPtr<UTextBlock> XenoCore › Shop BlueprintReadOnly, BindWidgetOptional No description.
Money Text MoneyText TObjectPtr<UTextBlock> XenoCore › Shop BlueprintReadOnly, BindWidgetOptional No description.
Refused Row RefusedRow TObjectPtr<UWidget> XenoCore › Shop BlueprintReadOnly, BindWidgetOptional No description.
Refused Text RefusedText TObjectPtr<UTextBlock> XenoCore › Shop BlueprintReadOnly, BindWidgetOptional No description.
Equip Prompt Row EquipPromptRow TObjectPtr<UWidget> XenoCore › Shop BlueprintReadOnly, BindWidgetOptional The whole "Equip now?" layer, scrim included.
Equip Prompt Text EquipPromptText TObjectPtr<UTextBlock> XenoCore › Shop BlueprintReadOnly, BindWidgetOptional "Equip Battle Gear on Shulk?" - built from EquipPromptFormat.
Equip Prompt Portrait EquipPromptPortrait TObjectPtr<UImage> XenoCore › Shop BlueprintReadOnly, BindWidgetOptional Whose loadout it goes on - the same face the portrait strip lights.
Equip Now Button EquipNowButton TObjectPtr<UCommonButtonBase> XenoCore › Shop BlueprintReadOnly, BindWidgetOptional Equip / Not now - visible buttons, unlike the purchase confirm.
Not Now Button NotNowButton TObjectPtr<UCommonButtonBase> XenoCore › Shop BlueprintReadOnly, BindWidgetOptional No description.
Equip Prompt Format EquipPromptFormat FText XenoCore › Shop › Text EditDefaultsOnly {Item} and {Member}.
Empty Buy Text EmptyBuyText FText XenoCore › Shop › Text EditDefaultsOnly An empty Buy tab.
Empty Sell Text EmptySellText FText XenoCore › Shop › Text EditDefaultsOnly Shown on an empty Sell tab.
Offer Equip After Purchase bOfferEquipAfterPurchase bool XenoCore › Shop EditDefaultsOnly true Off turns the prompt off entirely - a shop that should only ever sell.
Compare Hint CompareHint TObjectPtr<UWidget> XenoCore › Shop › Compare BlueprintReadOnly, BindWidgetOptional The pill in the details card. Shown only when the focused item has something to compare.
Compare Glyph CompareGlyph TObjectPtr<UCommonActionWidget> XenoCore › Shop › Compare BlueprintReadOnly, BindWidgetOptional No description.
Compare Row CompareRow TObjectPtr<UWidget> XenoCore › Shop › Compare BlueprintReadOnly, BindWidgetOptional The whole overlay - "Current Equipment", two cards and the arrow. Up only while held.
Cmp Worn Name CmpWornName TObjectPtr<UTextBlock> XenoCore › Shop › Compare BlueprintReadOnly, BindWidgetOptional Left card: what the character wears in that slot now.
Cmp Worn Desc CmpWornDesc TObjectPtr<UTextBlock> XenoCore › Shop › Compare BlueprintReadOnly, BindWidgetOptional No description.
Cmp Worn Type CmpWornType TObjectPtr<UTextBlock> XenoCore › Shop › Compare BlueprintReadOnly, BindWidgetOptional No description.
Cmp Worn Portrait CmpWornPortrait TObjectPtr<UImage> XenoCore › Shop › Compare BlueprintReadOnly, BindWidgetOptional No description.
Cmp Worn Badge CmpWornBadge TObjectPtr<UWidget> XenoCore › Shop › Compare BlueprintReadOnly, BindWidgetOptional The "E" on the worn card's portrait. Hidden when the slot is empty - nothing is worn.
Cmp Worn Stats Box CmpWornStatsBox TObjectPtr<UVerticalBox> XenoCore › Shop › Compare BlueprintReadOnly, BindWidgetOptional No description.
Cmp New Name CmpNewName TObjectPtr<UTextBlock> XenoCore › Shop › Compare BlueprintReadOnly, BindWidgetOptional Right card: the item under the cursor, with the change beside each stat.
Cmp New Desc CmpNewDesc TObjectPtr<UTextBlock> XenoCore › Shop › Compare BlueprintReadOnly, BindWidgetOptional No description.
Cmp New Type CmpNewType TObjectPtr<UTextBlock> XenoCore › Shop › Compare BlueprintReadOnly, BindWidgetOptional No description.
Cmp New Portrait CmpNewPortrait TObjectPtr<UImage> XenoCore › Shop › Compare BlueprintReadOnly, BindWidgetOptional No description.
Cmp New Stats Box CmpNewStatsBox TObjectPtr<UVerticalBox> XenoCore › Shop › Compare BlueprintReadOnly, BindWidgetOptional No description.
Compare Action CompareAction FDataTableRowHandle XenoCore › Shop › Compare EditDefaultsOnly The hold that shows the compare overlay, and the glyph the pill draws.
Compare Delta Gap CompareDeltaGap float XenoCore › Shop › Compare EditDefaultsOnly, ClampMin=0.0, UIMin=0.0 24.0 Space between a stat's value and its "(+n)" on the compare cards. The row asset's own is 8.
Accept Action AcceptAction FDataTableRowHandle XenoCore › Shop EditDefaultsOnly The action A performs on the confirm and the refusal, and whose glyph the action bar draws.
In Use Message InUseMessage FText XenoCore › Shop › Text EditDefaultsOnly Shown when the player tries to sell an item that is equipped. Defaults to XC1's own wording.
Buy Title BuyTitle FText XenoCore › Shop › Text EditDefaultsOnly Screen title on the Buy list.
Sell Title SellTitle FText XenoCore › Shop › Text EditDefaultsOnly Screen title on the Sell list.
Confirm Buy Title ConfirmBuyTitle FText XenoCore › Shop › Text EditDefaultsOnly Title of the quantity confirm when buying.
Confirm Sell Title ConfirmSellTitle FText XenoCore › Shop › Text EditDefaultsOnly Title of the quantity confirm when selling.
Limit Arrow Opacity LimitArrowOpacity float XenoCore › Shop EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0, UIMin=0.0, UIMax=1.0 0.25 Opacity of an up or down arrow at the limit it cannot pass.

Blueprint functions

Node Kind Signature Description
Show Shop Callable void ShowShop(UXenoCoreShopTable* InTable, AActor* InShopkeeper) Opens the shop at its entry panel.
On Transaction Event (implement in Blueprint) void K2_OnTransaction(TSubclassOf<ULyraInventoryItemDefinition> Item, int32 Count, bool bSold) Content-side hook, for a sting on every sale.

UXenoCoreShopStatics

Class · derives from UBlueprintFunctionLibrary · header XenoCoreRuntime/Public/Shop/XenoCoreShopStatics.h

The one thing that knows what a shop charges and pays, and the one thing that moves gold and items for a sale. The screen asks; it never computes a price or touches the bag itself.

Blueprint functions

Node Kind Signature Description
Get Buy Price For Def Pure int32 GetBuyPriceForDef(TSubclassOf<ULyraInventoryItemDefinition> ItemDef) SellValue x 10.
Get Sell Price For Def Pure int32 GetSellPriceForDef(TSubclassOf<ULyraInventoryItemDefinition> ItemDef) What a shop pays for one, skills included.
Get Sell Price Multiplier Pure float GetSellPriceMultiplier() How much the party's skills raise what a shop pays.
Can Buy Def Pure bool CanBuyDef(TSubclassOf<ULyraInventoryItemDefinition> ItemDef) May a shop stock this?
Can Sell Def Pure bool CanSellDef(TSubclassOf<ULyraInventoryItemDefinition> ItemDef) May the player sell this at all?
Get Sellable Count Pure int32 GetSellableCount(TSubclassOf<ULyraInventoryItemDefinition> ItemDef) How many of ItemDef the player could sell right now - the copies nobody is wearing.
Get Max Buyable Pure int32 GetMaxBuyable(TSubclassOf<ULyraInventoryItemDefinition> ItemDef, int32 UnitPrice) The most the stepper may reach when buying: what the purse covers, the room left under the item's MaxCarried, and MaxPerTransaction - whichever is smallest.
Buy Items Callable int32 BuyItems(TSubclassOf<ULyraInventoryItemDefinition> ItemDef, int32 Count, int32 UnitPrice) Buy Count at UnitPrice.
Sell Items Callable int32 SellItems(TSubclassOf<ULyraInventoryItemDefinition> ItemDef, int32 Count) Sell up to Count of ItemDef.

UXenoCoreShopTable

Class · derives from UPrimaryDataAsset · header XenoCoreRuntime/Public/Shop/XenoCoreShopTable.h · BlueprintType

Everything one shop sells.

Properties

Property C++ name Type Category Specifiers Default Description
Offers Offers TArray<FXenoCoreShopOffer> XenoCore › Shop EditAnywhere, BlueprintReadOnly Everything for sale, drawn in this order within each category tab.

Blueprint functions

Node Kind Signature Description
Get Price Pure int32 GetPrice(int32 Index) const What row Index costs - the override when there is one, the item's buy price otherwise.
Get Offer Pure bool GetOffer(int32 Index, FXenoCoreShopOffer& OutOffer) const Bounds-checked accessor.

XenoCoreRuntime / Skills

EXenoCoreSkillCondition

Enum · header XenoCoreRuntime/Public/Skills/XenoCoreSkillTypes.h · BlueprintType

When a skill's Stats hold - XC1's "(at half HP)", "(at 100% HP)", "(no armour)".

Value Shown as Description
Always Always No description.
HealthAtOrBelow Health At Or Below HP at or below ConditionThreshold % of max - Sheer Determination, "at half HP" (50).
HealthAtOrAbove Health At Or Above HP at or above ConditionThreshold % of max - Invincible Hero, "at 100% HP" (100).
NoArmour No Armour Nothing in any armour slot - Inner Peace, "(no armour)". The weapon does not count.

EXenoCoreSkillOperation

Enum · header XenoCoreRuntime/Public/Skills/XenoCoreSkillTypes.h · BlueprintType

How a value meets its stat: points on top, or a percentage of the stat.

Value Shown as Description
Add Add +15 Agility, +15 % Block Rate (a rate is already a percentage, so it adds points).
Scale Scale +10 % Max HP - a share of the stat itself.

EXenoCoreSkillPointLevelBasis

Enum · header XenoCoreRuntime/Public/Skills/XenoCoreSkillTypes.h · BlueprintType

Which "party level" sets the SP band.

Value Shown as Description
PartyAverage Party Average Fandom: the Definitive Edition's rule.
Leader Leader The rule EXP uses here today.
Lowest Lowest Game8, of Expert Mode.
Own Own Xsw, and the Wii rule per Fandom - each character against the enemy on their own.

EXenoCoreSkillScope

Enum · header XenoCoreRuntime/Public/Skills/XenoCoreSkillTypes.h · BlueprintType

The icon's glyph in XC1: one figure, three figures, or "all".

Value Shown as Description
Self Self No description.
BattleParty Battle Party No description.
WholeParty Whole Party No description.

EXenoCoreSkillShape

Enum · header XenoCoreRuntime/Public/Skills/XenoCoreSkillTypes.h · BlueprintType

XC1's five frames. Picks the frame a skill cell draws; Diamond skills can never be linked.

Value Shown as Description
Circle Circle No description.
Square Square No description.
Hexagon Hexagon No description.
Star Star No description.
Diamond Diamond "Skills with a diamond frame are for that character only."

EXenoCoreSkillTiming

Enum · header XenoCoreRuntime/Public/Skills/XenoCoreSkillTypes.h · BlueprintType

The icon's colour in XC1: blue applies always, orange only while in the battle party.

Value Shown as Description
Always Always No description.
InBattleParty In Battle Party No description.

EXenoCoreSkillTrigger

Enum · header XenoCoreRuntime/Public/Skills/XenoCoreSkillAbility_TimedBuff.h · BlueprintType

The moments XC1's timed skills fire on. Each is sourced from a skill that uses it.

Value Shown as Description
AllyIncapacitated Ally Incapacitated Lone Warrior - "if any of his teammates are incapacitated". Fires as an ally goes down.
BattleStartVsHigherLevel Battle Start Vs Higher Level Underdog - "when starting a battle against an enemy that is 3 or more levels higher".
BattleStart Battle Start Any battle start - XC1's "(battle start)" effects: Strength, Ether, Physical Defence, Haste.
OnKill On Kill XC1's "(on kill)" - Melee Champion. This body lands the killing blow.
OnMiss On Miss XC1's "(on miss)" - Speed Strike. This body's attack is evaded.
OnCritical On Critical XC1's "(on crit)". This body lands a critical hit.

FXenoCoreBranchProgress

Struct · header XenoCoreRuntime/Public/Skills/XenoCoreSkillTypes.h · BlueprintType

One branch's progress for one character.

Properties

Property C++ name Type Category Specifiers Default Description
Unlocked bUnlocked bool XenoCore › Skills BlueprintReadOnly false No description.
Skills Learnt SkillsLearnt int32 XenoCore › Skills BlueprintReadOnly 0 0..5. Skills are learnt in order, so this is the set of learnt skills.
Skill Points Into Next SkillPointsIntoNext int32 XenoCore › Skills BlueprintReadOnly 0 SP banked towards the next skill. Zero once the branch is complete.

FXenoCoreSkillBranchRow

Struct · derives from FTableRowBase · header XenoCoreRuntime/Public/Skills/XenoCoreSkillTypes.h · BlueprintType

One branch of one character's tree. The row name is the branch's id (what a save stores), and row order is draw order - XC1 draws its branches alphabetically.

Properties

Property C++ name Type Category Specifiers Default Description
Display Name DisplayName FText Branch EditAnywhere, BlueprintReadOnly "Intuition".
Trait Description TraitDescription FText Branch › Trait EditAnywhere, BlueprintReadOnly XC1's own wording: "Prioritising this trait will improve agility."
Trait Stat TraitStat FGameplayTag Branch › Trait EditAnywhere, BlueprintReadOnly, Categories=XenoCore.Stat The stat the branch raises while it is selected. A XenoCore.Stat.* tag.
Trait Operation TraitOperation EXenoCoreSkillOperation Branch › Trait EditAnywhere, BlueprintReadOnly EXenoCoreSkillOperation::Add Add the trait's value as points, or Scale the stat by it as a percentage.
Trait Ladder TraitLadder FDataTableRowHandle Branch › Trait EditAnywhere, BlueprintReadOnly A row of DT_XenoCore_SkillTraitLadders - the value at 0..5 skills learnt.
Cost Curve CostCurve FDataTableRowHandle Branch EditAnywhere, BlueprintReadOnly A row of DT_XenoCore_SkillCostCurves - XC1 has two, Starting and Quest.
Unlocked At Start bUnlockedAtStart bool Branch EditAnywhere, BlueprintReadOnly true Three branches per character are open from the start; two arrive by quest.
First Skill Prelearned bFirstSkillPrelearned bool Branch EditAnywhere, BlueprintReadOnly false XC1 gives every character one skill already learnt, at 0 SP.
Skills Skills TArray<FXenoCoreSkillEntry> Branch EditAnywhere, BlueprintReadOnly Exactly five, top to bottom - learnt in that order.

FXenoCoreSkillBranchUnlock

Struct · header XenoCoreRuntime/Public/Skills/XenoCoreSkillTypes.h · BlueprintType

One branch a quest opens. XC1's 4th and 5th branches each arrive with a quest.

Properties

Property C++ name Type Category Specifiers Default Description
Member Member TObjectPtr<UXenoCorePartyMemberDefinition> Skills EditAnywhere, BlueprintReadOnly nullptr The party member whose tree gains the branch.
Branch Branch FName Skills EditAnywhere, BlueprintReadOnly The branch's row name in the member's Skill Tree table - not its display name. Checked when the quest is saved.

FXenoCoreSkillBranchView

Struct · header XenoCoreRuntime/Public/Skills/XenoCoreSkillTypes.h · BlueprintType

Everything one branch column draws, resolved.

Properties

Property C++ name Type Category Specifiers Default Description
Branch Branch FName XenoCore › Skills BlueprintReadOnly No description.
Display Name DisplayName FText XenoCore › Skills BlueprintReadOnly No description.
Trait Description TraitDescription FText XenoCore › Skills BlueprintReadOnly No description.
Trait Stat Text TraitStatText FText XenoCore › Skills BlueprintReadOnly "Agility Up".
Trait Value Text TraitValueText FText XenoCore › Skills BlueprintReadOnly The trait's value now, formatted - "8", "10 %".
Selected bSelected bool XenoCore › Skills BlueprintReadOnly false No description.
Complete bComplete bool XenoCore › Skills BlueprintReadOnly false No description.
Skills Learnt SkillsLearnt int32 XenoCore › Skills BlueprintReadOnly 0 No description.
Skill Points Into Next SkillPointsIntoNext int32 XenoCore › Skills BlueprintReadOnly 0 SP into the next skill, and what it costs. Both 0 when complete.
Next Cost NextCost int32 XenoCore › Skills BlueprintReadOnly 0 No description.
Skills Skills TArray<FXenoCoreSkillView> XenoCore › Skills BlueprintReadOnly No description.

FXenoCoreSkillCostCurveRow

Struct · derives from FTableRowBase · header XenoCoreRuntime/Public/Skills/XenoCoreSkillTypes.h · BlueprintType

SP to learn each of a branch's five skills. XC1: Starting 300/700/1000/2000/3500, Quest 200/500/800/1000/1500.

Properties

Property C++ name Type Category Specifiers Default Description
Costs Costs TArray<int32> Skills EditAnywhere, BlueprintReadOnly SP for each skill, top to bottom. Entry 0 is the first skill.

FXenoCoreSkillEntry

Struct · header XenoCoreRuntime/Public/Skills/XenoCoreSkillTypes.h · BlueprintType

One skill. It does its work in up to three ways, each optional, all driven by one Value: - Stats - always on while it reaches the body (Equipment Master: Weight -5). - Bonus - a percentage another system asks for (Healing Wisdom: healing +15 %). - Ability - behaviour, a UXenoCoreGameplayAbility_Skill child (Underdog: a buff at battle start). The skill counterpart of an art: data pointing at behaviour, and most skills need no behaviour.

Properties

Property C++ name Type Category Specifiers Default Description
Display Name DisplayName FText Skill EditAnywhere, BlueprintReadOnly The skill's name in the Skills menu and the "Skill Learnt" popup.
Description Description FText Skill EditAnywhere, BlueprintReadOnly May contain {Value}, filled from Value - "Reduces equipment weight by {Value}."
Shape Shape EXenoCoreSkillShape Skill EditAnywhere, BlueprintReadOnly EXenoCoreSkillShape::Circle The frame the skill's icon is drawn in.
Timing Timing EXenoCoreSkillTiming Skill EditAnywhere, BlueprintReadOnly EXenoCoreSkillTiming::Always Always applies, or only while the owner is in the battle party (the icon's colour).
Scope Scope EXenoCoreSkillScope Skill EditAnywhere, BlueprintReadOnly EXenoCoreSkillScope::Self Who the skill reaches: its owner, the battle party, or the whole party (the icon's glyph).
Value Value float Skill › Effect EditAnywhere, BlueprintReadOnly 0.0 XC1's "Effect Value" - what Stats add, what a Bonus is worth, what an Ability reads.
Duration Duration float Skill › Effect EditAnywhere, BlueprintReadOnly, ClampMin=0.0 0.0 Seconds, for a timed skill (XC1's "time" column) - read by its Ability. 0 for none.
Stats Stats TArray<FXenoCoreSkillStatMod> Skill › Effect EditAnywhere, BlueprintReadOnly Stats raised by Value while the skill reaches the body. Resilient Warrior raises two.
Condition Condition EXenoCoreSkillCondition Skill › Effect EditAnywhere, BlueprintReadOnly EXenoCoreSkillCondition::Always When the Stats hold. Always for most skills; re-checked as HP and armour change.
Condition Threshold ConditionThreshold float Skill › Effect EditAnywhere, BlueprintReadOnly, ClampMin=0.0, ClampMax=100.0, EditCondition=Condition == EXenoCoreSkillCondition::HealthAtOrBelow || Condition == EXenoCoreSkillCondition::HealthAtOrAbove 50.0 Percent of max HP, for the two health conditions.
Chance Chance float Skill › Effect EditAnywhere, BlueprintReadOnly, ClampMin=0.0, ClampMax=100.0 100.0 Percent chance an Ability's trigger actually fires - XC1's "75% chance" (Hero's Valour). 100 = always.
Bonus Bonus FGameplayTag Skill › Effect EditAnywhere, BlueprintReadOnly, Categories=XenoCore.SkillBonus A percentage another system asks for - UXenoCoreProgressionComponent::GetSkillBonus. Quest EXP and healing ask today; a buyer's system asks with its own tag, and no skill code changes.
Ability Ability TSubclassOf<UXenoCoreGameplayAbility_Skill> Skill › Effect EditAnywhere, BlueprintReadOnly Behaviour - granted to the body while the skill reaches it. A UXenoCoreGameplayAbility_Skill child.
SP Cost Override SPCostOverride int32 Skill › Advanced EditAnywhere, BlueprintReadOnly, ClampMin=-1 -1 SP to learn this one skill. -1 (the default) uses the branch's cost curve; anything else replaces it.
Link Cost LinkCost int32 Skill › Advanced EditAnywhere, BlueprintReadOnly, ClampMin=0 0 Not implemented yet: the Affinity Coins another character pays to link this. Read by nothing.

FXenoCoreSkillPointRewardRow

Struct · derives from FTableRowBase · header XenoCoreRuntime/Public/Skills/XenoCoreSkillTypes.h · BlueprintType

SP for one kill, by level difference (party level − enemy level, both ends inclusive).

Properties

Property C++ name Type Category Specifiers Default Description
Min Level Diff MinLevelDiff int32 Skills EditAnywhere, BlueprintReadOnly -2 Lowest level difference (party level - enemy level) in this band, inclusive.
Max Level Diff MaxLevelDiff int32 Skills EditAnywhere, BlueprintReadOnly 2 Highest level difference (party level - enemy level) in this band, inclusive.
Skill Points SkillPoints int32 Skills EditAnywhere, BlueprintReadOnly, ClampMin=0 10 SP paid per kill in this band.

FXenoCoreSkillStatMod

Struct · header XenoCoreRuntime/Public/Skills/XenoCoreSkillTypes.h · BlueprintType

One stat a skill raises, by the skill's Value.

Properties

Property C++ name Type Category Specifiers Default Description
Stat Stat FGameplayTag Skill EditAnywhere, BlueprintReadOnly, Categories=XenoCore.Stat A XenoCore.Stat.* tag - a channel of the progression component's SkillStatsEffect.
Operation Operation EXenoCoreSkillOperation Skill EditAnywhere, BlueprintReadOnly EXenoCoreSkillOperation::Add Add points on top of the stat, or Scale it by a percentage of itself.

FXenoCoreSkillTraitLadderRow

Struct · derives from FTableRowBase · header XenoCoreRuntime/Public/Skills/XenoCoreSkillTypes.h · BlueprintType

The trait's value at 0, 1 ... 5 skills learnt - six numbers. XC1 uses five shared ladders.

Properties

Property C++ name Type Category Specifiers Default Description
Values Values TArray<float> Skills EditAnywhere, BlueprintReadOnly The trait's value with 0, 1 ... 5 skills of the branch learnt.

FXenoCoreSkillView

Struct · header XenoCoreRuntime/Public/Skills/XenoCoreSkillTypes.h · BlueprintType

Everything one skill icon draws, resolved. The screen decides nothing.

Properties

Property C++ name Type Category Specifiers Default Description
Branch Branch FName XenoCore › Skills BlueprintReadOnly No description.
Index Index int32 XenoCore › Skills BlueprintReadOnly 0 0..4, top to bottom.
Entry Entry FXenoCoreSkillEntry XenoCore › Skills BlueprintReadOnly No description.
Learnt bLearnt bool XenoCore › Skills BlueprintReadOnly false No description.
Learning bLearning bool XenoCore › Skills BlueprintReadOnly false The one being filled right now - the next skill of the selected branch.
Fill Fill float XenoCore › Skills BlueprintReadOnly 0.0 0..1 - how full the icon is. 1 when learnt.
Cost Cost int32 XenoCore › Skills BlueprintReadOnly 0 SP to learn it. 0 for a pre-learnt skill.
Description Description FText XenoCore › Skills BlueprintReadOnly The description with {Value} filled in.
Value Text ValueText FText XenoCore › Skills BlueprintReadOnly "5", "10 %" - XC1's Effect Value, formatted.
Stat Text StatText FText XenoCore › Skills BlueprintReadOnly "Agility Up", "Weight Down" - empty for a skill with no stat.

FXenoCoreSkillsProgress

Struct · header XenoCoreRuntime/Public/Skills/XenoCoreSkillTypes.h · BlueprintType

One character's whole tree progress. Lives on FXenoCoreMemberProgress.

Properties

Property C++ name Type Category Specifiers Default Description
Seeded bSeeded bool XenoCore › Skills BlueprintReadOnly false False until the tree has been read once - seeding is lazy, like the arts'.
Selected Branch SelectedBranch FName XenoCore › Skills BlueprintReadOnly The branch SP flows into. A row name of the character's tree.
Branches Branches TMap<FName, FXenoCoreBranchProgress> XenoCore › Skills BlueprintReadOnly Keyed by row name.

UXenoCoreGameplayAbility_Skill

Class · derives from ULyraGameplayAbility · header XenoCoreRuntime/Public/Skills/XenoCoreGameplayAbility_Skill.h · abstract · Blueprintable

The base of every skill that does something - the skill counterpart of UXenoCoreGameplayAbility_Art.

Properties

Property C++ name Type Category Specifiers Default Description
Evaluate Interval EvaluateInterval float XenoCore › Skills EditDefaultsOnly, ClampMin=0.0 0.0 How often OnEvaluate runs. 0 = never - a child that reacts to events instead needs no poll.

Blueprint functions

Node Kind Signature Description
Get Skill Pure FXenoCoreSkillEntry GetSkill() const The skill this ability was granted for.
Get Skill Value Pure float GetSkillValue() const XC1's "Effect Value" for this skill.
Get Skill Duration Pure float GetSkillDuration() const Seconds, for a timed skill - XC1's own "time" column.
Apply Buff To Self Callable void ApplyBuffToSelf(TSubclassOf<UGameplayEffect> Buff) Apply a status/buff to this body for GetSkillDuration() seconds, with GetSkillValue() as its magnitude - the art path's own SetByCallers (XenoCore.Status.Duration / .Magnitude).
On Evaluate Event (overridable) void OnEvaluate() Called every EvaluateInterval seconds while granted.

UXenoCoreInvisibleButtonStyle

Class · derives from UCommonButtonStyle · header XenoCoreRuntime/Public/Skills/XenoCoreSkillCellBase.h

A button that draws nothing of its own - the cells paint their content, and a CommonButtonStyle left unset would draw Slate's default white box behind every icon.

UXenoCoreSkillAbility_TimedBuff

Class · derives from UXenoCoreGameplayAbility_Skill · header XenoCoreRuntime/Public/Skills/XenoCoreSkillAbility_TimedBuff.h · Blueprintable

"When this happens, give me that buff for the skill's Duration" - XC1's timed skills, as one class a designer configures rather than one class per skill.

Properties

Property C++ name Type Category Specifiers Default Description
Trigger Trigger EXenoCoreSkillTrigger XenoCore › Skills EditDefaultsOnly EXenoCoreSkillTrigger::AllyIncapacitated The moment that fires the buff.
Buff Buff TSubclassOf<UGameplayEffect> XenoCore › Skills EditDefaultsOnly What fires - a GE_XenoCore_Status_* buff.
Additional Buffs AdditionalBuffs TArray<TSubclassOf<UGameplayEffect>> XenoCore › Skills EditDefaultsOnly Fired alongside Buff, with the same strength and duration - Showdown Stance's "All Stats Up".
Level Gap LevelGap int32 XenoCore › Skills EditDefaultsOnly, ClampMin=1, UIMin=1, EditCondition=Trigger == EXenoCoreSkillTrigger::BattleStartVsHigherLevel 3 How many levels above this character an engaged enemy must be. BattleStartVsHigherLevel only.
Battle Start Window BattleStartWindow float XenoCore › Skills EditDefaultsOnly, ClampMin=0.0, EditCondition=Trigger == EXenoCoreSkillTrigger::BattleStart || Trigger == EXenoCoreSkillTrigger::BattleStartVsHigherLevel 1.5 How long after the battle starts an engaged enemy still counts as "starting a battle against" it - engagement can land a beat after the battle tag.

UXenoCoreSkillBranchHeaderBase

Class · derives from UXenoCoreSkillCellBase · header XenoCoreRuntime/Public/Skills/XenoCoreSkillCellBase.h · Blueprintable

One branch's header plate. A button, because selecting a branch is pressing it.

Properties

Property C++ name Type Category Specifiers Default Description
Plate Plate TObjectPtr<UBorder> XenoCore › Skills BlueprintReadOnly, BindWidgetOptional No description.
Name Text NameText TObjectPtr<UTextBlock> XenoCore › Skills BlueprintReadOnly, BindWidgetOptional No description.
Progress Text ProgressText TObjectPtr<UTextBlock> XenoCore › Skills BlueprintReadOnly, BindWidgetOptional The selected branch's "SP 200 / 700". Hidden, never Collapsed, on the others - the headers stay one height.
Plate Colour PlateColour FLinearColor XenoCore › Skills EditDefaultsOnly FLinearColor(0.06, 0.07, 0.09, 0.92) The plate colours used only when the header has no button style - the bare native class.
Selected Plate Colour SelectedPlateColour FLinearColor XenoCore › Skills EditDefaultsOnly FLinearColor(0.04, 0.13, 0.25, 0.85) The selected branch's plate when unstyled - the one SP flows into. ButtonStyle_XenoCore_Menu's blue.
Text Colour TextColour FLinearColor XenoCore › Skills EditDefaultsOnly FLinearColor(1.0, 1.0, 1.0, 1.0) Colour of the branch name and progress text.
Plate Width PlateWidth float XenoCore › Skills EditDefaultsOnly, ClampMin=40.0 150.0 Width of the header plate.
Font Font FSlateFontInfo XenoCore › Skills EditDefaultsOnly The header font. Empty keeps the engine default at FontSize.

UXenoCoreSkillCellBase

Class · derives from UCommonButtonBase · header XenoCoreRuntime/Public/Skills/XenoCoreSkillCellBase.h · abstract · Blueprintable

One focusable cell on the Skills screen - a branch header or a skill icon.

Properties

Property C++ name Type Category Specifiers Default Description
Cursor Frame CursorFrame TObjectPtr<UBorder> XenoCore › Skills BlueprintReadOnly, BindWidgetOptional The cursor's frame - an outline over the cell. Clear unless the cursor is here.
Arrow Left ArrowLeft TObjectPtr<UTextBlock> XenoCore › Skills BlueprintReadOnly, BindWidgetOptional The cursor's four arrows - left, right, up, down - just outside the frame.
Arrow Right ArrowRight TObjectPtr<UTextBlock> XenoCore › Skills BlueprintReadOnly, BindWidgetOptional No description.
Arrow Up ArrowUp TObjectPtr<UTextBlock> XenoCore › Skills BlueprintReadOnly, BindWidgetOptional No description.
Arrow Down ArrowDown TObjectPtr<UTextBlock> XenoCore › Skills BlueprintReadOnly, BindWidgetOptional No description.
Cursor Colour CursorColour FLinearColor XenoCore › Skills › Cursor EditDefaultsOnly FLinearColor(1.0, 0.82, 0.22, 1.0) The cursor's colour. XC1's cursor is yellow.
Cursor Frame Width CursorFrameWidth float XenoCore › Skills › Cursor EditDefaultsOnly, ClampMin=0.0 3.0 Thickness of the cursor's frame.
Cursor Arrow Size CursorArrowSize int32 XenoCore › Skills › Cursor EditDefaultsOnly, ClampMin=4 16 The arrows' font size.
Cursor Arrow Gap CursorArrowGap float XenoCore › Skills › Cursor EditDefaultsOnly 2.0 How far outside the frame the arrows sit.

UXenoCoreSkillGrant

Class · derives from UObject · header XenoCoreRuntime/Public/Skills/XenoCoreGameplayAbility_Skill.h

What a skill ability was granted for - its entry, carried as the spec's source object so the ability can read its own Value and Duration. Owned by the progression component while granted.

UXenoCoreSkillIconBase

Class · derives from UXenoCoreSkillCellBase · header XenoCoreRuntime/Public/Skills/XenoCoreSkillCellBase.h · Blueprintable

One skill: shape x colour x glyph, filling bottom-up as SP arrives. XC1's own display.

Properties

Property C++ name Type Category Specifiers Default Description
Shape Fill ShapeFill TObjectPtr<UProgressBar> XenoCore › Skills BlueprintReadOnly, BindWidgetOptional The icon is a progress bar: the background is the shape in the unlearnt colour, the fill is the shape in the skill's colour, filled BottomToTop - so "learnt", "learning" and "not yet" are one widget and one number, and the fill clips rather than squashing the texture.
Glyph Image GlyphImage TObjectPtr<UImage> XenoCore › Skills BlueprintReadOnly, BindWidgetOptional No description.
Icon Size IconSize float XenoCore › Skills EditDefaultsOnly, ClampMin=8.0 64.0 Edge length of the icon.
Cursor Inset CursorInset float XenoCore › Skills EditDefaultsOnly, ClampMin=0.0 4.0 Space between the icon and the cursor frame around it.
Glyph Scale GlyphScale float XenoCore › Skills EditDefaultsOnly, ClampMin=0.1, ClampMax=1.0 0.5 The glyph's share of the icon.

UXenoCoreSkillIconSet

Class · derives from UPrimaryDataAsset · header XenoCoreRuntime/Public/Skills/XenoCoreSkillIconSet.h · BlueprintType

How every skill icon is drawn - so no skill icon is ever painted.

Properties

Property C++ name Type Category Specifiers Default Description
Shape Textures ShapeTextures TMap<EXenoCoreSkillShape, TObjectPtr<UTexture2D>> XenoCore › Skills EditAnywhere, BlueprintReadOnly A filled white mask per frame; the colour is applied as a tint.
Glyph Textures GlyphTextures TMap<EXenoCoreSkillScope, TObjectPtr<UTexture2D>> XenoCore › Skills EditAnywhere, BlueprintReadOnly White on transparent: one figure, three figures, "all".
Always Colour AlwaysColour FLinearColor XenoCore › Skills EditAnywhere, BlueprintReadOnly FLinearColor(0.2, 0.55, 0.95, 1.0) XC1's blue - the skill always applies.
In Battle Party Colour InBattlePartyColour FLinearColor XenoCore › Skills EditAnywhere, BlueprintReadOnly FLinearColor(0.95, 0.5, 0.12, 1.0) XC1's orange - only while in the battle party.
Unlearnt Colour UnlearntColour FLinearColor XenoCore › Skills EditAnywhere, BlueprintReadOnly FLinearColor(0.025, 0.028, 0.035, 1.0) An unlearnt skill is a dark silhouette of its shape (Wii tutorial).
Unlearnt Glyph Colour UnlearntGlyphColour FLinearColor XenoCore › Skills EditAnywhere, BlueprintReadOnly FLinearColor(0.22, 0.24, 0.27, 1.0) The glyph on an unlearnt icon - dim, so the shape reads first.

UXenoCoreSkillsUIStatics

Class · derives from UBlueprintFunctionLibrary · header XenoCoreRuntime/Public/Skills/XenoCoreSkillsUIStatics.h

Everything the Skills screen draws, resolved in one call per character - the GetPartyRowInfo contract: formatting, fill fractions and which icon is learning are decided here, so a widget only ever sets text and brushes.

Blueprint functions

Node Kind Signature Description
Get Skill Branch Views Callable TArray<FXenoCoreSkillBranchView> GetSkillBranchViews(UXenoCorePartyMemberDefinition* Member) The character's unlocked branches, in table row order, each with its five skills.
Get Stat Label Pure FText GetStatLabel(FGameplayTag Stat, float Value) "Agility Up", "Weight Down" - a stat tag and the sign of its value, as XC1 labels them.
Format Skill Value Pure FText FormatSkillValue(FGameplayTag Stat, EXenoCoreSkillOperation Operation, float Value) "15", "10 %" - a rate or a Scale value carries a percent sign.
Get Branch Reward Text Pure FText GetBranchRewardText(const FXenoCoreSkillBranchUnlock& Unlock) "Skill Branch: Reyn - Camaraderie" - a quest reward line, for the offer screen and the turn-in banner alike.
Open Skills Screen Callable void OpenSkillsScreen() Push the Skills screen onto the menu layer.

XenoCoreRuntime / Targeting

FXenoCoreTargetChangedMessage

Struct · header XenoCoreRuntime/Public/Targeting/XenoCoreTargetModeAbility.h · BlueprintType

Broadcast on XenoCore.Targeting.Message.TargetChanged whenever the selection changes, including to null when the lock ends.

Properties

Property C++ name Type Category Specifiers Default Description
Seeker Seeker TObjectPtr<AActor> XenoCore › Targeting BlueprintReadOnly nullptr The pawn doing the looking.
New Target NewTarget TObjectPtr<AActor> XenoCore › Targeting BlueprintReadOnly nullptr What is now selected. Null when the lock ended.
Old Target OldTarget TObjectPtr<AActor> XenoCore › Targeting BlueprintReadOnly nullptr What was selected before. Null on first acquire.

UXenoCoreGameplayAbility_TargetMode

Class · derives from ULyraGameplayAbility · header XenoCoreRuntime/Public/Targeting/XenoCoreTargetModeAbility.h · abstract

The base for GA_XenoCore_TargetMode. It exists to hold the selected target and to be the only thing that writes it - everything else about the mode (input, indicator, the poll) is Blueprint in the child.

Properties

Property C++ name Type Category Specifiers Default Description
Current Target CurrentTarget TObjectPtr<AActor> XenoCore › Targeting BlueprintReadOnly, Transient nullptr Transient on purpose.
Target Indicator Material TargetIndicatorMaterial TObjectPtr<UMaterialInterface> XenoCore › Targeting EditDefaultsOnly The indicator drawn on the targeted enemy - XC1 marks the enemy itself, not the ground.
Target Acquired Sound TargetAcquiredSound TObjectPtr<USoundBase> XenoCore › Targeting EditDefaultsOnly Played each time a target is acquired or cycled to. Null is legal and silent.
Target Indicator Size TargetIndicatorSize float XenoCore › Targeting EditDefaultsOnly, ClampMin=0.0, UIMin=0.0 250.0 Size of the quad in world units - not of the diamond, which is drawn inside it.
Strafe While Locked bStrafeWhileLocked bool XenoCore › TargetMode EditDefaultsOnly true No description.
Strafe Max Range StrafeMaxRange float XenoCore › TargetMode EditDefaultsOnly, ClampMin=0.0 400.0 Beyond it the pawn returns to orient-to-movement and free-roam locomotion, even though the lock is still held.
Strafe Range Release Scale StrafeRangeReleaseScale float XenoCore › TargetMode EditDefaultsOnly, ClampMin=1.0 1.2 Hysteresis, so standing exactly on the boundary does not flip facing every frame.
Retreat Dot Threshold RetreatDotThreshold float XenoCore › TargetMode EditDefaultsOnly, ClampMin=-1.0, ClampMax=0.0 -0.9 How directly the player must be moving away from the target before facing locks to it.
Strafe Stationary Speed StrafeStationarySpeed float XenoCore › TargetMode EditDefaultsOnly, ClampMin=0.0 20.0 Below this speed the player counts as standing still, and keeps facing the target.
Target Indicator Height Fraction TargetIndicatorHeightFraction float XenoCore › Targeting EditDefaultsOnly 0.35 Height above the target's origin, as a fraction of its capsule half-height.
Lock Acquire Range LockAcquireRange float XenoCore › Targeting › Range EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.0, Units=cm 3000.0 No description.
Lock Keep Range LockKeepRange float XenoCore › Targeting › Range EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.0, Units=cm 3000.0 Must be at least Lock Acquire Range; set it higher so a target at the edge is not dropped the moment it steps back.
Target Indicator Screen Space Size bTargetIndicatorScreenSpaceSize bool XenoCore › Targeting EditDefaultsOnly false Keep the indicator the same size on screen regardless of distance.
Offscreen Arrow Material OffscreenArrowMaterial TObjectPtr<UMaterialInterface> XenoCore › Targeting EditDefaultsOnly The arrows drawn at the screen edge when the target is off screen, pointing back at it.
Arrow Screen Edge Inset ArrowScreenEdgeInset float XenoCore › Targeting EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0, UIMin=0.0, UIMax=1.0 0.88 How far in from the viewport edge the arrows sit, as a fraction of half-width/height.
Arrow Camera Distance ArrowCameraDistance float XenoCore › Targeting EditDefaultsOnly, ClampMin=1.0, UIMin=1.0 200.0 Distance in front of the camera to place the arrows. Size is scaled with it.
Arrow Screen Size Fraction ArrowScreenSizeFraction float XenoCore › Targeting EditDefaultsOnly, ClampMin=0.0, UIMin=0.0 0.16 Apparent size, as a fraction of ArrowCameraDistance.
Invert Arrow Direction bInvertArrowDirection bool XenoCore › Targeting EditDefaultsOnly false Flips which way the chevrons point, if the plane's UVs run the other way.
Offscreen Arrow Mesh OffscreenArrowMesh TObjectPtr<UStaticMesh> XenoCore › Targeting EditDefaultsOnly Plane the arrows are drawn on. Engine unit plane unless overridden.
Target Plate Class TargetPlateClass TSubclassOf<UXenoCoreTargetPlateBase> XenoCore › Targeting EditDefaultsOnly The top-centre badge naming the target. Owned here for the same reason the diamond and the arrows are: it is part of the lock, so its lifetime is the lock's lifetime and it cannot be left on screen by a path that forgot to clear it.
Player Plate Class PlayerPlateClass TSubclassOf<UXenoCorePlayerPlateBase> XenoCore › Targeting EditDefaultsOnly The upper-left player readout.
Arts Palette Class ArtsPaletteClass TSubclassOf<UXenoCoreArtsPaletteBase> XenoCore › Targeting EditDefaultsOnly The arts palette. Same lifetime as the badge and the player plate.
Approach Timeout ApproachTimeout float XenoCore › Targeting › Approach EditDefaultsOnly, ClampMin=0.1 4.0 Give up running in after this long - an unreachable target must not hold the input forever.
Approach Arrive Margin ApproachArriveMargin float XenoCore › Targeting › Approach EditDefaultsOnly, ClampMin=0.0 60.0 Stop this far inside the art's Distance before striking, so the target stepping back during the windup still leaves it within reach plus the contact tolerance.
Approach Stick Cancel ApproachStickCancel float XenoCore › Targeting › Approach EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0 0.35 Pushing the stick past this during a run hands control back: the run ends and nothing is cast - no cooldown, no gauge.
Approach Move Action ApproachMoveAction TSoftObjectPtr<class UInputAction> XenoCore › Targeting › Approach EditDefaultsOnly The move action whose value is read to tell the player's stick from the run's own steering.
Camera Focus Duration CameraFocusDuration float XenoCore › TargetMode EditDefaultsOnly, ClampMin=0.0 0.3 Seconds the focus takes. Zero disables it entirely.
Strafe Evaluate Interval StrafeEvaluateInterval float XenoCore › TargetMode EditDefaultsOnly, ClampMin=0.01 0.05 Poll interval. Facing interpolates at RotationRate, so this need not be per-frame.

Blueprint functions

Node Kind Signature Description
Get Current Target Pure AActor* GetCurrentTarget() const No description.
Set Current Target Callable void SetCurrentTarget(AActor* NewTarget) The only writer.
Set AI Target Callable void SetAITarget(AActor* NewTarget) The target an AI-driven body is fighting, so its arts and auto-attack resolve exactly as the player's do.
Get Lock Acquire Range Pure float GetLockAcquireRange() const No description.
Get Lock Keep Range Pure float GetLockKeepRange() const Never less than the acquire range.
Cycle Palette Callable void CyclePalette(int32 Delta) Move the palette selection.
Cycle Palette Horizontal Callable void CyclePaletteHorizontal(int32 Delta) D-pad left/right along the arts row. -1 left, +1 right.
Confirm Palette Callable void ConfirmPalette() Perform the entry currently selected.
Get Current Ally Pure AActor* GetCurrentAlly() const The party member an ally-targeted art is aimed at, or null when not choosing one.
Set AI Ally Callable void SetAIAlly(AActor* NewAlly) The ally an AI-driven body's next ally art lands on.
Is Choosing Ally Pure bool IsChoosingAlly() const True while the player is choosing an ally for an ally-targeted art.
Get Party Members Pure TArray<AActor*> GetPartyMembers() const Every active party member, in slot order - the order the ally selector cycles through.

UXenoCoreOffscreenArrowComponent

Class · derives from UStaticMeshComponent · header XenoCoreRuntime/Public/Targeting/XenoCoreOffscreenArrowComponent.h

The arrows XC1 draws at the edge of the screen when the target leaves it, pointing back at it.

UXenoCoreTargetingStatics

Class · derives from UBlueprintFunctionLibrary · header XenoCoreRuntime/Public/Targeting/XenoCoreTargetingStatics.h

Target selection for XC1's combat lock.

Blueprint functions

Node Kind Signature Description
Get Current Target Pure AActor* GetCurrentTarget(const AActor* Seeker) No description.
Get Current Ally Pure AActor* GetCurrentAlly() The party member an ally-targeted art is currently aimed at, or null when not choosing one.
Get Party Members Pure TArray<AActor*> GetPartyMembers() Everyone an ally-targeted art may be aimed at, in selector order.
Get Target Mode Ability Pure UXenoCoreGameplayAbility_TargetMode* GetTargetModeAbility(const AActor* Seeker) The live target-mode ability on Seeker, or null when the mode is not running.
Gather Candidates Callable void GatherCandidates(AActor* Seeker, float MaxRange, bool bRequireLineOfSight, bool bRequireOnScreen, TArray<AActor*>& OutCandidates) Every actor Seeker could legally lock onto: within MaxRange, on an opposing team, alive, and - if bRequireLineOfSight - visible.
Find Best Target Callable AActor* FindBestTarget(AActor* Seeker, float MaxRange, bool bRequireLineOfSight, bool bRequireOnScreen = true) The candidate nearest the centre of the screen, which is what "the one I am looking at" means to a player.
Sort For Cycling Callable TArray<AActor*> SortForCycling(AActor* Seeker, const TArray<AActor*>& Candidates) Candidates ordered left-to-right as they appear on screen, so that "next" means "the one to the right" rather than an arbitrary overlap-query order.
Step Target From Callable AActor* StepTargetFrom(AActor* Seeker, AActor* Current, bool bForward, float MaxRange, bool bRequireLineOfSight, bool bRequireOnScreen = true) No description.
Step Target Pure AActor* StepTarget(const TArray<AActor*>& SortedCandidates, AActor* Current, bool bForward) The next or previous entry after Current, wrapping at both ends.
Is On Screen Pure bool IsOnScreen(const AActor* Seeker, const AActor* Candidate) Is Candidate currently within the viewport?
Is Target Still Valid Pure bool IsTargetStillValid(const AActor* Seeker, const AActor* Candidate, float MaxRange, bool bRequireLineOfSight) Is Candidate still a legal lock: alive, within MaxRange, and optionally still visible.

XenoCoreRuntime / Trade

EXenoCoreTradeStage

Enum · header XenoCoreRuntime/Public/Trade/XenoCoreTradeScreenBase.h · BlueprintType

Which half of the bargain the player is currently choosing.

Value Shown as Description
ChoosingWanted Choosing Wanted Picking from the NPC's list - what you want.
ChoosingOffer Choosing Offer Picking from your own bag - what you give.
Confirming Confirming Both halves chosen; A commits, B steps back.

FXenoCoreOvertradeBonus

Struct · header XenoCoreRuntime/Public/Trade/XenoCoreTradeTable.h · BlueprintType

The extra item an NPC throws in when the player overpays.

Properties

Property C++ name Type Category Specifiers Default Description
Item Item TSoftClassPtr<ULyraInventoryItemDefinition> XenoCore › Trade EditAnywhere, BlueprintReadOnly The item handed over as a bonus. Leave empty for an NPC who never gives one.
Value Override ValueOverride int32 XenoCore › Trade EditAnywhere, BlueprintReadOnly, ClampMin=0 0 How much extra the player must offer, on top of an item's price, to be given the bonus - or 0 to use the bonus item's own trade value.
Resolved Value PreviewValue int32 XenoCore › Trade VisibleAnywhere, Transient 0 Read-only: the value added to every row's price, once 0 is resolved.

FXenoCoreTradeBagEntry

Struct · header XenoCoreRuntime/Public/Trade/XenoCoreTradeScreenBase.h

One line of the player's side: a definition, how many are held, and what one is worth.

FXenoCoreTradeOffer

Struct · header XenoCoreRuntime/Public/Trade/XenoCoreTradeTable.h · BlueprintType

One thing an NPC will part with.

Properties

Property C++ name Type Category Specifiers Default Description
Item Item TSoftClassPtr<ULyraInventoryItemDefinition> XenoCore › Trade EditAnywhere, BlueprintReadOnly What the NPC hands over.
Price Override PriceOverride int32 XenoCore › Trade EditAnywhere, BlueprintReadOnly, ClampMin=0 0 What they want for it, or 0 to use the item's own trade value.
Resolved Price PreviewPrice int32 XenoCore › Trade VisibleAnywhere, Transient 0 Read-only: what this row actually costs, once 0 has been resolved to the item's own value.
Overtrade At PreviewOvertradeAt int32 XenoCore › Trade VisibleAnywhere, Transient 0 Read-only: what the player must offer for this row to also earn the table's bonus. 0 when the table has no bonus.

FXenoCoreTradeRowInfo

Struct · header XenoCoreRuntime/Public/Trade/XenoCoreTradeRowBase.h · BlueprintType

Everything one trade row draws, decided in C++ and handed over in one piece.

Properties

Property C++ name Type Category Specifiers Default Description
Index Index int32 XenoCore › Trade BlueprintReadOnly INDEX_NONE Which entry this row stands for - an index into the offer table, or into the bag list.
Item Def ItemDef TSubclassOf<ULyraInventoryItemDefinition> XenoCore › Trade BlueprintReadOnly What to draw the icon from.
Name Name FText XenoCore › Trade BlueprintReadOnly No description.
Quantity Quantity FText XenoCore › Trade BlueprintReadOnly "x9" on your side of the table, empty on theirs.
Value Value FText XenoCore › Trade BlueprintReadOnly The price when this is something to buy, the trade value when it is something to offer.
Affordable bAffordable bool XenoCore › Trade BlueprintReadOnly true False when this row cannot be acted on - a price the bag cannot meet, or an item worth less than what is being traded for.
Overtrade bOvertrade bool XenoCore › Trade BlueprintReadOnly false True when offering this would also clear the NPC's overtrade threshold.
Badge Text BadgeText FText XenoCore › Trade BlueprintReadOnly A marker for the badge column other than overtrade - the shop's "E" on equipped gear.
Holder Portrait HolderPortrait TObjectPtr<UTexture2D> XenoCore › Trade BlueprintReadOnly Whoever is wearing the item this row stands for - the project's equipped-item badge (UXenoCorePartyUIStatics::GetItemHolderPortrait, drawn by W_XenoCore_ItemRow). Null draws none.
Wearer Portraits WearerPortraits TArray<TObjectPtr<UTexture2D>> XenoCore › Trade BlueprintReadOnly Every party member wearing a copy of this item - for a row that stands for an item type (the Buy list), where "who has it on" can be several people. Drawn in the E column, overlapped.

UXenoCoreOpenTrade

Class · derives from UBlueprintAsyncActionBase · header XenoCoreRuntime/Public/Trade/XenoCoreTradeNodes.h

"Open Trade" - puts the barter screen on screen and continues when the player is done.

Events you can bind

Event Type Description
Traded FXenoCoreTradePin At least one exchange happened.
Cancelled FXenoCoreTradePin The player backed out, or the screen could not be shown.

Blueprint functions

Node Kind Signature Description
Open Trade Latent node factory UXenoCoreOpenTrade* OpenTrade(UXenoCoreTradeTable* Table, AActor* Trader) Show the barter screen for one NPC's table and wait.

UXenoCoreTradeRowBase

Class · derives from UCommonUserWidget · header XenoCoreRuntime/Public/Trade/XenoCoreTradeRowBase.h · abstract · Blueprintable

One line of either side of the trade table.

Properties

Property C++ name Type Category Specifiers Default Description
Row Button RowButton TObjectPtr<UCommonButtonBase> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional No description.
Icon Image IconImage TObjectPtr<UImage> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional No description.
Name Text NameText TObjectPtr<UTextBlock> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional No description.
Quantity Text QuantityText TObjectPtr<UTextBlock> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional No description.
Rarity Pips RarityPips TObjectPtr<UPanelWidget> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional The item's rarity diamonds, beside NameText. Optional - a row without one shows colour only.
Value Text ValueText TObjectPtr<UTextBlock> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional No description.
Portrait Badge PortraitBadge TObjectPtr<UImage> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional The wearer's portrait - W_XenoCore_ItemRow's PortraitBadge, same name and same box.
Wearer Box WearerBox TObjectPtr<UPanelWidget> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional Where WearerPortraits draw - overlaid on the E column.
Wearer Size WearerSize float XenoCore › Trade EditDefaultsOnly, ClampMin=4.0 22.0 Size of each wearer face, in pixels. 22 + 2 x 13 = 48, the E column's width.
Wearer Step WearerStep float XenoCore › Trade EditDefaultsOnly, ClampMin=1.0 13.0 Horizontal step between overlapped wearer faces, in pixels.
Max Wearers MaxWearers int32 XenoCore › Trade EditDefaultsOnly, ClampMin=1 3 Faces beyond this are not drawn. Three faces fill the E column at the default sizes.
Overtrade Badge OvertradeBadge TObjectPtr<UTextBlock> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional The "+ bonus" flash. Collapsed unless this offer would overtrade.
Icon Size IconSize float XenoCore › Trade EditDefaultsOnly, ClampMin=4.0 32.0 Size of the item icon, in pixels.
Row Colour RowColour FLinearColor XenoCore › Trade EditDefaultsOnly FLinearColor(1.0, 1.0, 1.0, 1.0) Normal - white, because that is what the collectables row draws.
Unaffordable Colour UnaffordableColour FLinearColor XenoCore › Trade EditDefaultsOnly FLinearColor(1.0, 1.0, 1.0, 0.4) Out of reach - see FXenoCoreTradeRowInfo::bAffordable for why it dims rather than hides.
Overtrade Colour OvertradeColour FLinearColor XenoCore › Trade EditDefaultsOnly FLinearColor(0.41, 0.75, 0.78, 1.0) The "+" badge only - not the row's text.
Badge Colour BadgeColour FLinearColor XenoCore › Trade EditDefaultsOnly FLinearColor(0.55, 0.66, 0.8, 1.0) Any other badge - the shop's "E". Steel blue, the house label colour, which is what W_XenoCore_ItemRow's EquippedTag wears.

Blueprint functions

Node Kind Signature Description
Get Index Pure int32 GetIndex() const The index this row stands for, or INDEX_NONE before SetRow.
Focus Row Callable void FocusRow() Focus this row's button, so the screen can put the cursor on a sensible first entry.
Get Focus Target Pure UCommonButtonBase* GetFocusTarget() const The button a screen should focus for this row.
On Row Set Event (implement in Blueprint) void K2_OnRowSet(const FXenoCoreTradeRowInfo& InInfo) Content-side hook, for a flourish the C++ has no business deciding.

UXenoCoreTradeScreenBase

Class · derives from UXenoCoreMerchantScreenBase · header XenoCoreRuntime/Public/Trade/XenoCoreTradeScreenBase.h · abstract · Blueprintable

XC1's barter screen: what they'll give, what you'll give, and whether it clears.

Properties

Property C++ name Type Category Specifiers Default Description
Trader Text TraderText TObjectPtr<UTextBlock> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional Who you are trading with - a subtitle, since the banner is the screen's name.
Their Item Text TheirItemText TObjectPtr<UTextBlock> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional What the NPC is handing over - the pane XC1 captions "Item Offered".
Their Value Text TheirValueText TObjectPtr<UTextBlock> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional No description.
Their Icon TheirIcon TObjectPtr<class UImage> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional Each pane's item icon.
Your Icon YourIcon TObjectPtr<class UImage> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional No description.
Your Item Text YourItemText TObjectPtr<UTextBlock> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional What the player parts with - the pane XC1 captions "Item to Trade".
Your Value Text YourValueText TObjectPtr<UTextBlock> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional No description.
Prompt Text PromptText TObjectPtr<UTextBlock> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional No description.
Step Text StepText TObjectPtr<UTextBlock> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional "Step 2 of 3".
Left Card LeftCard TObjectPtr<class UBorder> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional The two panes, so the active one can be lit and the settled one dimmed.
Right Card RightCard TObjectPtr<class UBorder> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional No description.
List Scroll ListScroll TObjectPtr<UWidget> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional Collapsed on the confirm step - there is nothing left to choose.
Confirm Row ConfirmRow TObjectPtr<UWidget> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional The confirm step's own controls. Collapsed on the two choosing steps.
Confirm Button ConfirmButton TObjectPtr<class UCommonButtonBase> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional No description.
Cancel Button CancelButton TObjectPtr<class UCommonButtonBase> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional No description.
Summary Text SummaryText TObjectPtr<UTextBlock> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional The overtrade line on the confirm step, or the bare question when there is no bonus.
Confirm Their Text ConfirmTheirText TObjectPtr<UTextBlock> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional The confirm dialog's own two cards.
Confirm Their Value ConfirmTheirValue TObjectPtr<UTextBlock> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional No description.
Confirm Your Text ConfirmYourText TObjectPtr<UTextBlock> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional No description.
Confirm Your Value ConfirmYourValue TObjectPtr<UTextBlock> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional No description.
Confirm Their Icon ConfirmTheirIcon TObjectPtr<class UImage> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional No description.
Confirm Your Icon ConfirmYourIcon TObjectPtr<class UImage> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional No description.
Confirm Their Portrait ConfirmTheirPortrait TObjectPtr<class UImage> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional The faces either side of the exchange - the merchant beside what they offer, the party leader beside what you part with.
Confirm Your Portrait ConfirmYourPortrait TObjectPtr<class UImage> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional No description.
Complete Heading CompleteHeading FText XenoCore › Trade › Completion EditDefaultsOnly, BlueprintReadOnly The banner's heading when a trade completes. Shown over the merchant's name.
Celebrate On Trade bCelebrateOnTrade bool XenoCore › Trade › Completion EditDefaultsOnly, BlueprintReadOnly false Whether a completed trade gets the quest banner's confetti and fanfare.
Overtrade Hint Row OvertradeHintRow TObjectPtr<UWidget> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional Shown only while an overtrade is actually reachable - see BuildOfferRows.
Overtrade Hint Text OvertradeHintText TObjectPtr<UTextBlock> XenoCore › Trade BlueprintReadOnly, BindWidgetOptional No description.
Settled Pane Opacity SettledPaneOpacity float XenoCore › Trade EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0 0.45 How far the pane that is not being chosen fades back.

Blueprint functions

Node Kind Signature Description
Show Trade Callable void ShowTrade(UXenoCoreTradeTable* InTable, AActor* InTrader) Opens the screen against one NPC's table.
On Traded Event (implement in Blueprint) void K2_OnTraded(const UXenoCoreTradeTable* InTable, bool bWasOvertrade) Content-side hook, for a sting when a trade lands.

UXenoCoreTradeStatics

Class · derives from UBlueprintFunctionLibrary · header XenoCoreRuntime/Public/Trade/XenoCoreTradeStatics.h

The one thing that knows what an item is worth in a barter, and the one thing that decides whether the player may put it on the table.

Blueprint functions

Node Kind Signature Description
Get Trade Value For Def Pure int32 GetTradeValueForDef(TSubclassOf<ULyraInventoryItemDefinition> ItemDef) What one of these is worth on the trade table.
Get Trade Value Pure int32 GetTradeValue(ULyraInventoryItemInstance* Item) The same number for something actually in the bag.
Can Offer Item Pure bool CanOfferItem(ULyraInventoryItemInstance* Item) May the player put this on the table?
Can Offer Def Pure bool CanOfferDef(TSubclassOf<ULyraInventoryItemDefinition> ItemDef) Definition-side twin of CanOfferItem, for pricing a row before anything is picked.
Get Category For Def Pure EXenoCoreItemCategory GetCategoryForDef(TSubclassOf<ULyraInventoryItemDefinition> ItemDef) Which tab an item belongs under.
Get Offer Value Multiplier Pure float GetOfferValueMultiplier() How much the party's skills inflate what they hand over.
Get Effective Offer Value Pure int32 GetEffectiveOfferValue(ULyraInventoryItemInstance* Item) What the NPC reckons the offered item is worth, skills included.

UXenoCoreTradeTable

Class · derives from UPrimaryDataAsset · header XenoCoreRuntime/Public/Trade/XenoCoreTradeTable.h · BlueprintType

Everything one NPC will trade, and the bonus they hand over when you overpay.

Properties

Property C++ name Type Category Specifiers Default Description
Offers Offers TArray<FXenoCoreTradeOffer> XenoCore › Trade › Offers EditAnywhere, BlueprintReadOnly Everything on offer, drawn in this order.
Overtrade Bonus OvertradeBonus FXenoCoreOvertradeBonus XenoCore › Trade › Overtrade Bonus EditAnywhere, BlueprintReadOnly The extra item handed over when the player overpays, and one per NPC rather than one per row.

Blueprint functions

Node Kind Signature Description
Get Price Pure int32 GetPrice(int32 Index) const What row Index actually costs - the override when there is one, the item's trade value otherwise.
Get Overtrade Threshold Pure int32 GetOvertradeThreshold(int32 Index) const What the player must offer to get row Index and the bonus item.
Has Overtrade Pure bool HasOvertrade() const True when this NPC has a bonus item to give at all.
Get Offer Pure bool GetOffer(int32 Index, FXenoCoreTradeOffer& OutOffer) const Bounds-checked accessor, so callers do not each repeat the range test.

XenoCoreRuntime / Tutorial

FXenoCoreTutorialCardStyle

Struct · header XenoCoreRuntime/Public/Tutorial/XenoCoreTutorialCardBase.h · BlueprintType

The fonts and colours a tutorial card's body is drawn with.

Properties

Property C++ name Type Category Specifiers Default Description
Title Font TitleFont FSlateFontInfo Tutorial EditAnywhere, BlueprintReadWrite Font for the card's heading.
Body Font BodyFont FSlateFontInfo Tutorial EditAnywhere, BlueprintReadWrite Font for the card's explanation text.
Prompt Font PromptFont FSlateFontInfo Tutorial EditAnywhere, BlueprintReadWrite Font for the button-prompt labels under the text.
Title Colour TitleColour FLinearColor Tutorial EditAnywhere, BlueprintReadWrite FLinearColor(0.95, 0.97, 1.0, 1.0) Colour of the card's heading and the button-prompt labels.
Body Colour BodyColour FLinearColor Tutorial EditAnywhere, BlueprintReadWrite FLinearColor(0.78, 0.84, 0.92, 1.0) Colour of the explanation text.
Wrap Width WrapWidth float Tutorial EditAnywhere, BlueprintReadWrite, ClampMin=200.0 640.0 Width the body text wraps at, in slate units.
Image Height ImageHeight float Tutorial EditAnywhere, BlueprintReadWrite, ClampMin=0.0 220.0 Height of the optional picture; its width follows the texture's aspect.

FXenoCoreTutorialPrompt

Struct · header XenoCoreRuntime/Public/Tutorial/XenoCoreTutorialTypes.h · BlueprintType

One button prompt on a tutorial card: the glyph and what pressing it does.

Properties

Property C++ name Type Category Specifiers Default Description
Actions Actions TArray<FDataTableRowHandle> Tutorial EditAnywhere, BlueprintReadWrite The buttons to draw, side by side - rows of an action table (DT_XenoCore_Actions). Usually one; two for a pair like left / right.
Label Label FText Tutorial EditAnywhere, BlueprintReadWrite What it does, beside the glyph ("Lock on / next target").

FXenoCoreTutorialRow

Struct · derives from FTableRowBase · header XenoCoreRuntime/Public/Tutorial/XenoCoreTutorialTypes.h · BlueprintType

One tutorial card: what it says, the buttons it shows, and what makes it appear.

Properties

Property C++ name Type Category Specifiers Default Description
Title Title FText Tutorial EditAnywhere, BlueprintReadWrite The card's heading.
Body Body FText Tutorial EditAnywhere, BlueprintReadWrite The explanation. Wraps; keep it to two or three short sentences.
Image Image TSoftObjectPtr<UTexture2D> Tutorial EditAnywhere, BlueprintReadWrite An optional picture above the text.
Prompts Prompts TArray<FXenoCoreTutorialPrompt> Tutorial EditAnywhere, BlueprintReadWrite The buttons this card teaches, drawn as glyphs under the text.
Triggers Triggers FGameplayTagContainer Tutorial EditAnywhere, BlueprintReadWrite The card shows the first time any of these happens.

UXenoCoreTutorialCardBase

Class · derives from UCommonActivatableWidget · header XenoCoreRuntime/Public/Tutorial/XenoCoreTutorialCardBase.h · Blueprintable

A popup showing one or more tutorial cards, paged with A and skipped with B.

Properties

Property C++ name Type Category Specifiers Default Description
Header Text HeaderText FText Tutorial › Text EditDefaultsOnly, BlueprintReadOnly The small heading over every card.
Page Format PageFormat FText Tutorial › Text EditDefaultsOnly, BlueprintReadOnly "{Page} / {Count}" - drawn only when the sequence has more than one card.
Next Text NextText FText Tutorial › Text EditDefaultsOnly, BlueprintReadOnly The label beside the A glyph while more cards follow.
Close Text CloseText FText Tutorial › Text EditDefaultsOnly, BlueprintReadOnly The label beside the A glyph on the last card.
Skip Text SkipText FText Tutorial › Text EditDefaultsOnly, BlueprintReadOnly The label beside the B glyph.
Card Style CardStyle FXenoCoreTutorialCardStyle Tutorial › Look EditDefaultsOnly, BlueprintReadOnly Fonts and colours of the card's contents.
Scrim Colour ScrimColour FLinearColor Tutorial › Look EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.0, 0.0, 0.0, 0.5) The tint drawn over the world behind the card.
Panel Colour PanelColour FLinearColor Tutorial › Look EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.03, 0.04, 0.07, 0.96) The card panel's background.
Accent Colour AccentColour FLinearColor Tutorial › Look EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.45, 0.7, 1.0, 1.0) Colour of the card's border, header text and divider line.
Next Action NextAction FDataTableRowHandle Tutorial › Look EditDefaultsOnly, BlueprintReadOnly The A glyph in the footer - a DT_XenoCore_Actions row.
Skip Action SkipAction FDataTableRowHandle Tutorial › Look EditDefaultsOnly, BlueprintReadOnly The B glyph in the footer - a DT_XenoCore_Actions row.
Body Box BodyBox TObjectPtr<UPanelWidget> Tutorial BlueprintReadOnly, BindWidgetOptional No description.
Page Text PageText TObjectPtr<UTextBlock> Tutorial BlueprintReadOnly, BindWidgetOptional No description.
Next Label NextLabel TObjectPtr<UTextBlock> Tutorial BlueprintReadOnly, BindWidgetOptional No description.
Skip Group SkipGroup TObjectPtr<UWidget> Tutorial BlueprintReadOnly, BindWidgetOptional Collapsed on a single card - there is nothing to skip.

Blueprint functions

Node Kind Signature Description
Show Cards Callable void ShowCards(const TArray<FName>& RowNames) Starts a sequence of cards (row names of the tutorial table) at the first one.
Next Callable void Next() The next card, or close after the last.
Skip Callable void Skip() Closes the sequence; the unread cards count as seen.
Get Page Index Pure int32 GetPageIndex() const The card being shown, counting from 0.
Get Page Count Pure int32 GetPageCount() const How many cards this sequence holds.
Get Current Row Pure FName GetCurrentRow() const The tutorial table row of the card being shown, or None.
On Page Shown Event (implement in Blueprint) void K2_OnPageShown(FName RowName, int32 PageIndex, int32 PageCount) Fires each time a page is drawn, after the native contents are built.

UXenoCoreTutorialLogBase

Class · derives from UCommonActivatableWidget · header XenoCoreRuntime/Public/Tutorial/XenoCoreTutorialLogBase.h · Blueprintable

The Tutorials menu: the tips on/off switch and the cards seen so far.

Properties

Property C++ name Type Category Specifiers Default Description
Title Text TitleText FText Tutorial Log › Text EditDefaultsOnly, BlueprintReadOnly The screen's heading.
Tips Label TipsLabel FText Tutorial Log › Text EditDefaultsOnly, BlueprintReadOnly The label on the Tips on/off row.
On Text OnText FText Tutorial Log › Text EditDefaultsOnly, BlueprintReadOnly The Tips row's value while tips are on.
Off Text OffText FText Tutorial Log › Text EditDefaultsOnly, BlueprintReadOnly The Tips row's value while tips are off.
Tips Description TipsDescription FText Tutorial Log › Text EditDefaultsOnly, BlueprintReadOnly Under the Tips row, describing what the switch does.
Empty Text EmptyText FText Tutorial Log › Text EditDefaultsOnly, BlueprintReadOnly Shown in the list when no card has been met yet.
Card Style CardStyle FXenoCoreTutorialCardStyle Tutorial Log › Look EditDefaultsOnly, BlueprintReadOnly How the highlighted card is drawn in the preview pane.
Row Font RowFont FSlateFontInfo Tutorial Log › Look EditDefaultsOnly, BlueprintReadOnly Font for the list rows.
Heading Font HeadingFont FSlateFontInfo Tutorial Log › Look EditDefaultsOnly, BlueprintReadOnly Font for the screen heading.
Scrim Colour ScrimColour FLinearColor Tutorial Log › Look EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.0, 0.0, 0.0, 0.55) The tint drawn over the world behind the screen.
Panel Colour PanelColour FLinearColor Tutorial Log › Look EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.03, 0.04, 0.07, 0.94) The background of the screen's panel.
Row Colour RowColour FLinearColor Tutorial Log › Look EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.08, 0.1, 0.15, 0.85) The background of a list row that is not highlighted.
Selected Row Colour SelectedRowColour FLinearColor Tutorial Log › Look EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.2, 0.38, 0.66, 0.95) The background of the highlighted list row.
Text Colour TextColour FLinearColor Tutorial Log › Look EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.92, 0.95, 1.0, 1.0) Main text colour.
Dim Text Colour DimTextColour FLinearColor Tutorial Log › Look EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.62, 0.68, 0.78, 1.0) Secondary text colour: headings, the empty-list message and the Tips value while off.
Row Box RowBox TObjectPtr<UVerticalBox> Tutorial Log BlueprintReadOnly, BindWidgetOptional The list column the rows are built into.
Preview Box PreviewBox TObjectPtr<UVerticalBox> Tutorial Log BlueprintReadOnly, BindWidgetOptional The pane the highlighted card is drawn into.

Blueprint functions

Node Kind Signature Description
Set Selected Index Callable void SetSelectedIndex(int32 Index) Moves the highlight to a row: 0 is the Tips switch, 1.. are the seen cards.
Get Selected Index Pure int32 GetSelectedIndex() const The highlighted row: 0 is the Tips switch, 1.. are the seen cards.
Toggle Tips Callable void ToggleTips() Flips Tips on or off.

UXenoCoreTutorialSubsystem

Class · derives from UGameInstanceSubsystem · header XenoCoreRuntime/Public/Tutorial/XenoCoreTutorialSubsystem.h

Shows tutorial cards the first time each one's trigger happens, and remembers which have been seen.

Blueprint functions

Node Kind Signature Description
Trigger Tutorial Callable void TriggerTutorial(FGameplayTag Trigger) Happens: every unseen card with this trigger is shown, in table order, as soon as nothing else is on screen.
Show Tutorial Callable bool ShowTutorial(FName RowName) Shows one card by its row name, seen or not (the Tutorials menu, a scripted moment).
Are Tips Enabled Pure bool AreTipsEnabled() True when cards pop up as their triggers happen.
Set Tips Enabled Callable void SetTipsEnabled(bool bEnabled) Turns tutorial popups on or off for this player.
Is Seen Pure bool IsSeen(FName RowName) const True when this card has already been shown (or recorded as met) in the current save.
Get Seen Tutorials Pure TArray<FName> GetSeenTutorials() const The seen cards, in table order - what the Tutorials menu lists.
Mark Seen Callable void MarkSeen(FName RowName) Records a card as seen.
Reset Tutorials Callable void ResetTutorials() Forgets every seen card and empties the queue (New Game does this).

XenoCoreRuntime / UI

AXenoCorePreviewStage

Class · derives from AActor · header XenoCoreRuntime/Public/UI/XenoCorePreviewStage.h · abstract · Blueprintable

A character shown in a menu, drawn on its own terms rather than the game's.

Properties

Property C++ name Type Category Specifiers Default Description
Min Preview Zoom MinPreviewZoom float XenoCore › Preview › Zoom EditDefaultsOnly, BlueprintReadWrite, ClampMin=0.1 1.0 Furthest out the stick can pull the camera; 1 = the authored framing.
Max Preview Zoom MaxPreviewZoom float XenoCore › Preview › Zoom EditDefaultsOnly, BlueprintReadWrite, ClampMin=1.0 2.5 Furthest in; 2.5 fills the frame with the upper body and the weapon.
Preview Zoom Focus Rise PreviewZoomFocusRise float XenoCore › Preview › Zoom EditDefaultsOnly, BlueprintReadWrite, Units=cm 45.0 Camera rise in cm at Max Preview Zoom, so zooming in frames the chest and head, not the hips.
Preview Zoom Rate PreviewZoomRate float XenoCore › Preview › Zoom EditDefaultsOnly, BlueprintReadWrite, ClampMin=0.0 1.2 Zoom speed at full stick, in e-folds per second (1.2 = about 3.3x per second).
Preview Zoom Deadzone PreviewZoomDeadzone float XenoCore › Preview › Zoom EditDefaultsOnly, BlueprintReadWrite, ClampMin=0.0, ClampMax=1.0 0.15 Stick deflection below this is ignored - matches the rotate branch's 0.15.
Capture Every Tick bCaptureEveryTick bool XenoCore › Preview EditDefaultsOnly, BlueprintReadWrite true Drawn every tick while true.

Blueprint functions

Node Kind Signature Description
Refresh Preview Ticking Callable void RefreshPreviewTicking() Re-apply the tick and pose rules to everything currently attached.
Set Preview Character Callable void SetPreviewCharacter(APawn* SourcePawn, UAnimationAsset* IdlePose) Put this character's body on the stage.
Handle Preview Zoom Input Callable bool HandlePreviewZoomInput(const FAnalogInputEvent& AnalogEvent) Right stick Y zooms the preview (up = in).
Add Preview Zoom Callable void AddPreviewZoom(float Delta) Multiply the preview zoom by exp(Delta), clamped to Min/Max Preview Zoom.

EXenoCoreArtsScreenMode

Enum · header XenoCoreRuntime/Public/UI/XenoCoreArtsScreenBase.h · BlueprintType

XC1's two tabs on this screen, switched with ZL / ZR.

Value Shown as Description
Setting Setting Arrange the palette.
LevelUp Level Up Spend AP on an art's level.

EXenoCoreItemSort

Enum · header XenoCoreRuntime/Public/UI/XenoCoreItemSortControl.h · BlueprintType

How an item list is ordered.

Value Shown as Description
Default Default The order the bag holds them in - oldest first. What every list drew before sorting existed.
MostRecent Most Recent Newest first. XC3's "Chronological".
Name Name A-Z by display name.
Rarity Rarity Rarest first, then A-Z.
Value Value Highest sell value first.
Stat Stat The slot's own number, highest first: max Attack for a weapon, Physical Def for armour. Value for anything else.

EXenoCorePaletteState

Enum · header XenoCoreRuntime/Public/UI/XenoCoreArtsPaletteBase.h · BlueprintType

Which job the central slot is doing.

Value Shown as Description
PreBattle Pre Battle Enemy selected, battle not started. Engage lives here.
InBattle In Battle Engaged. The Talent Art and its gauge live here.

EXenoCoreStatBlockMode

Enum · header XenoCoreRuntime/Public/UI/XenoCoreStatBlockBase.h · BlueprintType

What a stat block is currently showing. Chosen by the last Show* call and kept until the next.

Value Shown as Description
Plain Plain Whatever lines and header the caller hands over - the Party popups, the swap list, the Items menu.
Character Character One character's sheet: name, level, role, HP and EXP bars, stats grouped into sections.
Item Item One equipped item: name, slot, description, and what it grants.

FXenoCoreArtDetailLine

Struct · header XenoCoreRuntime/Public/UI/XenoCoreArtsUIStatics.h · BlueprintType

One label / value line of the detail pane - "Target: Enemy", "Effect: Slow".

Properties

Property C++ name Type Category Specifiers Default Description
Label Label FText XenoCore › Arts BlueprintReadOnly No description.
Value Value FText XenoCore › Arts BlueprintReadOnly No description.

FXenoCoreArtView

Struct · header XenoCoreRuntime/Public/UI/XenoCoreArtsUIStatics.h · BlueprintType

Everything one row of an Arts screen draws, already decided.

Properties

Property C++ name Type Category Specifiers Default Description
Art Art TObjectPtr<UXenoCoreArtDefinition> XenoCore › Arts BlueprintReadOnly nullptr The art this row is about. Null on an empty palette slot - check bIsEmpty first.
Is Empty bIsEmpty bool XenoCore › Arts BlueprintReadOnly true True when there is no art here - an empty slot on the palette.
Slot Index SlotIndex int32 XenoCore › Arts BlueprintReadOnly INDEX_NONE Palette position for a loadout row; INDEX_NONE for a row in the pick list.
Slot Label SlotLabel FText XenoCore › Arts BlueprintReadOnly No description.
Display Name DisplayName FText XenoCore › Arts BlueprintReadOnly The art's name, or the slot's name when the row is empty. Never blank.
Description Description FText XenoCore › Arts BlueprintReadOnly No description.
Icon Icon TObjectPtr<UTexture2D> XenoCore › Arts BlueprintReadOnly nullptr No description.
Glyph Glyph TObjectPtr<UMaterialInterface> XenoCore › Arts BlueprintReadOnly nullptr The procedural glyph the battle palette draws, so a menu row matches the bar exactly.
Glyph Colour GlyphColour FLinearColor XenoCore › Arts BlueprintReadOnly FLinearColor::White No description.
Category Label CategoryLabel FText XenoCore › Arts BlueprintReadOnly "Physical", "Break", "Heal" - the art's category, spelled for a human.
Category Colour CategoryColour FLinearColor XenoCore › Arts BlueprintReadOnly FLinearColor::White XC1's own colour language: pink Break, green Topple, yellow Daze.
Summary Label SummaryLabel FText XenoCore › Arts BlueprintReadOnly Heading for the one contextual column - "Cooldown". Mirrors FXenoCoreItemView::SummaryLabel.
Summary Value SummaryValue FText XenoCore › Arts BlueprintReadOnly That column's value - "20.0s". Empty for a Talent Art, which has no cooldown at all.
Equipped bEquipped bool XenoCore › Arts BlueprintReadOnly false Already on the palette somewhere.
Equipped In Slot EquippedInSlot int32 XenoCore › Arts BlueprintReadOnly INDEX_NONE Which slot it is equipped in, or INDEX_NONE. Lets a list row say "in slot 2".
Locked bLocked bool XenoCore › Arts BlueprintReadOnly false This palette slot has not opened yet; UnlockLevel is the level that opens it.
Unlock Level UnlockLevel int32 XenoCore › Arts BlueprintReadOnly 0 0 otherwise.
Is Talent bIsTalent bool XenoCore › Arts BlueprintReadOnly false The centre cell - the weapon's Talent Art. Not assignable and not levelled, but drawn on the strip because the XC1 screen draws it there, between the two halves of the palette.
Art Level ArtLevel int32 XenoCore › Arts BlueprintReadOnly 1 The art's level for this character, I..XII as 1..12.
Art Level Cap ArtLevelCap int32 XenoCore › Arts BlueprintReadOnly 1 How far it can go right now - iv by default, raised by manuals. 1 on a Talent Art.
Level Up Cost LevelUpCost int32 XenoCore › Arts BlueprintReadOnly -1 AP for the next level, or -1 when capped.
Attribute Label AttributeLabel FText XenoCore › Arts BlueprintReadOnly XC1's "Attribute" - Physical or Ether, and its colour.
Attribute Colour AttributeColour FLinearColor XenoCore › Arts BlueprintReadOnly FLinearColor::White No description.
Detail Lines DetailLines TArray<FXenoCoreArtDetailLine> XenoCore › Arts BlueprintReadOnly The rest of XC1's fixed field list - Target, Range, Distance, Damage, then one line per effect. Built from the definition, so a new field on an art shows here without widget work.

FXenoCoreBattleNotification

Struct · header XenoCoreRuntime/Public/UI/XenoCoreBattleNotifySubsystem.h · BlueprintType

The payload on XenoCore.Battle.Message.Notification.

Properties

Property C++ name Type Category Specifiers Default Description
Target Target TObjectPtr<AActor> XenoCore › Battle BlueprintReadWrite nullptr Whose head it appears over.
Text Text FText XenoCore › Battle BlueprintReadWrite No description.
Colour Colour FLinearColor XenoCore › Battle BlueprintReadWrite FLinearColor::White XC1's own coding: pink Break, green Topple, yellow Daze - the same colours its arts use for the stage they inflict, so the popup and the art icon agree.
Scale Scale float XenoCore › Battle BlueprintReadWrite 1.0 Draw size. Break / topple / daze are the big events at 1; a status line is smaller, so a burst of them does not bury the character it is describing.
Punch Punch float XenoCore › Battle BlueprintReadWrite 1.0 The line arrives this many times bigger and snaps down to Scale over PopupPunchSeconds - the critical hit's slam. 1 = no punch, which is every other line.

FXenoCoreMenuEntry

Struct · header XenoCoreRuntime/Public/UI/XenoCoreMenuEntry.h · BlueprintType

One entry in the in-game menu: what it says, and what pressing it opens or runs.

Properties

Property C++ name Type Category Specifiers Default Description
Id Id FName Menu Entry EditAnywhere, BlueprintReadWrite A stable name for the entry. An entry set with the same Id replaces this one.
Label Label FText Menu Entry EditAnywhere, BlueprintReadWrite The button's text.
Description Description FText Menu Entry EditAnywhere, BlueprintReadWrite One line describing the entry, shown at the bottom of the main menu while it is highlighted.
Icon Icon TSoftObjectPtr<UTexture2D> Menu Entry EditAnywhere, BlueprintReadWrite An optional icon. Only a button that implements the Menu Button interface draws it.
Screen Screen TSoftClassPtr<UCommonActivatableWidget> Menu Entry EditAnywhere, BlueprintReadWrite The screen pushed when the entry is pressed. Ignored when Action is set.
Layer Layer FGameplayTag Menu Entry EditAnywhere, BlueprintReadWrite, Categories=UI.Layer The UI layer Screen is pushed onto. Empty means UI.Layer.Menu.
Action Action TSoftClassPtr<UXenoCoreMenuAction> Menu Entry EditAnywhere, BlueprintReadWrite Runs instead of pushing Screen - for entries that do something other than open a screen.
Sort Order SortOrder int32 Menu Entry EditAnywhere, BlueprintReadWrite 0 Lower sorts higher in the menu. The shipped entries are 100 apart, so new ones can go between.
Visible If VisibleIf TSoftClassPtr<UXenoCoreMenuCondition> Menu Entry EditAnywhere, BlueprintReadWrite Shows the entry only while this condition says so. Empty means always shown.
Starts Group bStartsGroup bool Menu Entry EditAnywhere, BlueprintReadWrite false No description.
Hidden bHidden bool Menu Entry EditAnywhere, BlueprintReadWrite false Leaves the entry out of the menu without deleting it.

FXenoCorePaletteEntry

Struct · header XenoCoreRuntime/Public/UI/XenoCoreArtsPaletteBase.h · BlueprintType

One entry in the palette carousel. Gameplay keys off its ActionTag; the palette only reports the selection.

Properties

Property C++ name Type Category Specifiers Default Description
Icon Icon TObjectPtr<UMaterialInterface> Entry EditDefaultsOnly, BlueprintReadOnly Drawn inside the ring. A material so it can be procedural or a texture sampler.
Display Name DisplayName FText Entry EditDefaultsOnly, BlueprintReadOnly The entry's name, shown in the label beside the palette.
Description Description FText Entry EditDefaultsOnly, BlueprintReadOnly The short line after the name - "Initiate battle", "Deals damage from behind".
Glyph Colour GlyphColour FLinearColor Entry EditDefaultsOnly, BlueprintReadOnly FLinearColor::White The glyph's colour when the art is available. Grey is the unavailable look.
Positional Requirement PositionalRequirement EXenoCoreArtPositional Entry EditDefaultsOnly, BlueprintReadOnly EXenoCoreArtPositional::None None means no bonus.
Action Tag ActionTag FGameplayTag Entry EditDefaultsOnly, BlueprintReadOnly Identifies the action. The target-mode ability turns this into an ability activation.
Blocked bBlocked bool Entry EditDefaultsOnly, BlueprintReadOnly false Hard-blocked: drawn with the red ring-and-slash mark rather than greyed out.
Requires Talent Ready bRequiresTalentReady bool Entry EditDefaultsOnly, BlueprintReadOnly false Marks the talent art slot. Usable only while the gauge covers the Talent Art's GaugeCost.
Override Disc Colour bOverrideDiscColour bool Entry EditDefaultsOnly, BlueprintReadOnly false No description.
Disc Colour DiscColour FLinearColor Entry EditDefaultsOnly, BlueprintReadOnly, EditCondition=bOverrideDiscColour FLinearColor::White No description.
Ability Handle AbilityHandle FGameplayAbilitySpecHandle Entry BlueprintReadOnly, Transient Art-row entries only - the centre slot's entries (Attack, Turn Strike, Lure, Flee) are authored data and dispatch by ActionTag, so this is invalid on those.
Art Data ArtData TObjectPtr<const UXenoCoreArtDefinition> Entry BlueprintReadOnly, Transient nullptr No description.
Is Empty Slot bIsEmptySlot bool Entry BlueprintReadOnly, Transient false A palette position with no art in it. Drawn as a plain grey disc, and never selectable.
Is Locked Slot bIsLockedSlot bool Entry BlueprintReadOnly, Transient false A position the character's level has not opened. Drawn darker than empty; also unselectable.

FXenoCorePaletteSideSlot

Struct · header XenoCoreRuntime/Public/UI/XenoCoreArtsPaletteBase.h

One side position's layers. The first position on each side is the authored template set (SideDiscLeft, SideIconLeft...); every further one is stamped from it at runtime.

FXenoCorePartyRowInfo

Struct · header XenoCoreRuntime/Public/UI/XenoCorePartyUIStatics.h · BlueprintType

Everything one Party screen row draws, resolved in a single read.

Properties

Property C++ name Type Category Specifiers Default Description
Display Name DisplayName FText XenoCore › Party BlueprintReadOnly What to call this character. Empty for an empty slot.
Role Role EXenoCoreRole XenoCore › Party BlueprintReadOnly EXenoCoreRole::None This character's battle role. Branch on this, never on the label below.
Role Label RoleLabel FText XenoCore › Party BlueprintReadOnly The role as drawn - "Attacker", or empty for None so an unset member shows nothing.
Portrait Portrait TSoftObjectPtr<UTexture2D> XenoCore › Party BlueprintReadOnly Their face. Soft, so a full roster's portraits are not resident to draw a few rows.
Menu Portrait MenuPortrait TSoftObjectPtr<UTexture2D> XenoCore › Party BlueprintReadOnly Full-body portrait for the main menu's cards - the definition's Menu Portrait, else Portrait.
Skill Branch Name SkillBranchName FText XenoCore › Party BlueprintReadOnly The skill tree this character is developing ("Intuition"), as XC1's menu card shows it. Empty without a skill tree.
Level Level int32 XenoCore › Party BlueprintReadOnly 0 Current level. Real for a benched character too - that is the point of the progression map.
Experience Experience float XenoCore › Party BlueprintReadOnly 0.0 EXP banked towards the next level.
Experience To Next Level ExperienceToNextLevel float XenoCore › Party BlueprintReadOnly 0.0 What the next level costs. Zero at the cap.
Experience Fraction ExperienceFraction float XenoCore › Party BlueprintReadOnly 0.0 0..1 for a bar. Zero at the cap rather than one.
In Roster bInRoster bool XenoCore › Party BlueprintReadOnly false Recruited at all. False means this row is an empty slot.
Active bActive bool XenoCore › Party BlueprintReadOnly false Currently deployed. False means benched, and everything below is unavailable.
Leader bLeader bool XenoCore › Party BlueprintReadOnly false The character the player is driving.
Has Body bHasBody bool XenoCore › Party BlueprintReadOnly false Whether a pawn exists. False for every benched character - see the struct comment.
Downed bDowned bool XenoCore › Party BlueprintReadOnly false Incapacitated. Only meaningful with a body.
Health Health float XenoCore › Party BlueprintReadOnly 0.0 No description.
Max Health MaxHealth float XenoCore › Party BlueprintReadOnly 0.0 No description.
Health Fraction HealthFraction float XenoCore › Party BlueprintReadOnly 0.0 0..1 for a bar. Zero without a body, so an un-gated bar reads empty rather than full.
Weapon Name WeaponName FText XenoCore › Party BlueprintReadOnly The equipped weapon's display name, or empty.
Level Label LevelLabel FText XenoCore › Party BlueprintReadOnly "Lv 24".
Health Label HealthLabel FText XenoCore › Party BlueprintReadOnly "540 / 540", or an em dash with no body - never "0 / 0", which reads as a corpse.
Experience Label ExperienceLabel FText XenoCore › Party BlueprintReadOnly "2,160 to next", or "max" at the cap. The remainder, not the running total - the bar above it already carries the fraction.
State Label StateLabel FText XenoCore › Party BlueprintReadOnly "leader" / "reserve" / "down", or empty for a plain active member.
State Color StateColor FLinearColor XenoCore › Party BlueprintReadOnly FLinearColor::White What to tint StateLabel.
Strength Strength float XenoCore › Party BlueprintReadOnly 0.0 No description.
Ether Ether float XenoCore › Party BlueprintReadOnly 0.0 No description.
Agility Agility float XenoCore › Party BlueprintReadOnly 0.0 No description.
Physical Defence PhysicalDefence float XenoCore › Party BlueprintReadOnly 0.0 No description.
Ether Defence EtherDefence float XenoCore › Party BlueprintReadOnly 0.0 No description.
Critical Rate CriticalRate float XenoCore › Party BlueprintReadOnly 0.0 No description.
Block Rate BlockRate float XenoCore › Party BlueprintReadOnly 0.0 No description.
Weapon Attack Min WeaponAttackMin float XenoCore › Party BlueprintReadOnly 0.0 Weapon attack range, from the equipped weapon's stat tags. Zero with no weapon.
Weapon Attack Max WeaponAttackMax float XenoCore › Party BlueprintReadOnly 0.0 No description.

FXenoCoreSaveRowInfo

Struct · header XenoCoreRuntime/Public/UI/XenoCoreSaveUIStatics.h · BlueprintType

One Save/Load slot row, with every string already formatted.

Properties

Property C++ name Type Category Specifiers Default Description
Slot Index SlotIndex int32 XenoCore › Save BlueprintReadOnly 0 Which slot this row is. UXenoCoreSaveSubsystem::AutosaveSlotIndex for the autosave.
Exists bExists bool XenoCore › Save BlueprintReadOnly false False means the slot is free. Draw EmptyText and nothing else.
Autosave bAutosave bool XenoCore › Save BlueprintReadOnly false The autosave row: it carries the pill, and the Save screen refuses to target it.
Loadable bLoadable bool XenoCore › Save BlueprintReadOnly false False for a file written by a newer build.
Empty Text EmptyText FText XenoCore › Save BlueprintReadOnly "New File" when saving, "No data" when loading. Empty for an occupied slot.
Leader Name LeaderName FText XenoCore › Save BlueprintReadOnly The leader's name - XC1 prints the party's leader, not the file's.
Level Text LevelText FText XenoCore › Save BlueprintReadOnly "Lv 4", in the accent colour. Branch on the number below, never on this.
Leader Level LeaderLevel int32 XenoCore › Save BlueprintReadOnly 0 The leader's level as a number, for branching.
Portraits Portraits TArray<TSoftObjectPtr<UTexture2D>> XenoCore › Save BlueprintReadOnly One per active member, in party order. Soft: a list of four rows is not a reason to resident-load twelve portraits.
Location Text LocationText FText XenoCore › Save BlueprintReadOnly Printed over the bottom of the thumbnail.
Story Text StoryText FText XenoCore › Save BlueprintReadOnly The story line. May be empty.
Play Time Text PlayTimeText FText XenoCore › Save BlueprintReadOnly "1:55" - hours unpadded, minutes always two digits, exactly as XC1 prints it.
Save Time Text SaveTimeText FText XenoCore › Save BlueprintReadOnly "09/17/2026 7:40" - stored utc, drawn in the player's own time.
Thumbnail Thumbnail TObjectPtr<UTexture2D> XenoCore › Save BlueprintReadOnly The slot's picture, decoded, or null.

FXenoCoreUIEffect

Struct · header XenoCoreRuntime/Public/UI/XenoCoreUIEffectStatics.h · BlueprintType

A UI burst as a designer sets it: which system, how big, and for how long it stays up. Every celebrating banner exposes one of these, so they all read the same in the details panel.

Properties

Property C++ name Type Category Specifiers Default Description
System System TObjectPtr<UNiagaraSystem> XenoCore › UI EditAnywhere, BlueprintReadOnly A UI Niagara system (CPU sim, UI sprite renderer, UI material). Unset plays nothing.
Size Size FVector2D XenoCore › UI EditAnywhere, BlueprintReadOnly FVector2D(480.0, 180.0) The effect's layout box, centred on its host. Particles may draw outside it.
Scale Scale float XenoCore › UI EditAnywhere, BlueprintReadOnly, ClampMin=0.01 1.0 UI pixels per Niagara unit.
Duration Duration float XenoCore › UI EditAnywhere, BlueprintReadOnly, ClampMin=0.1 3.5 Seconds before the effect widget is removed. Longer than the system's longest particle.

FXenoCoreUIEffectPlayback

Struct · header XenoCoreRuntime/Public/UI/XenoCoreUIEffectStatics.h

One playing UI burst and its clock - the bookkeeping every host would otherwise copy. Note: hold it as a uproperty(Transient) so the widget it points at is reflected. Note: tick it from the host's NativeTick, or the widget is never removed.

UXenoCoreArtRowBase

Class · derives from UCommonUserWidget · header XenoCoreRuntime/Public/UI/XenoCoreArtRowBase.h · abstract · Blueprintable

One art, drawn as a row. Serves both columns - a palette slot and a selectable art - because the two differ in what they say, not in how they are built.

Properties

Property C++ name Type Category Specifiers Default Description
Row Button RowButton TObjectPtr<UCommonButtonBase> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional No description.
Name Text NameText TObjectPtr<UTextBlock> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional No description.
Category Text CategoryText TObjectPtr<UTextBlock> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional No description.
Value Text ValueText TObjectPtr<UTextBlock> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional "20.0s". Empty on a Talent Art, which has no cooldown at all.
Equipped Text EquippedText TObjectPtr<UTextBlock> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional "Slot 2" when this art is already on the bar somewhere else. Collapsed when it is not.
Icon Image IconImage TObjectPtr<UImage> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional The same procedural glyph the battle palette draws, so the menu and the bar agree.
Glyph Shadow bGlyphShadow bool XenoCore › Arts › Glyph Shadow EditAnywhere, BlueprintReadOnly true Draw a drop shadow under the art glyph, like the battle palette.
Glyph Shadow Colour GlyphShadowColour FLinearColor XenoCore › Arts › Glyph Shadow EditAnywhere, BlueprintReadOnly, EditCondition=bGlyphShadow FLinearColor(0.0, 0.0, 0.0, 0.45) The shadow's colour. The palette's is black at 45%.
Glyph Shadow Offset GlyphShadowOffset FVector2D XenoCore › Arts › Glyph Shadow EditAnywhere, BlueprintReadOnly, EditCondition=bGlyphShadow FVector2D(2.0, 2.0) How far the shadow sits from the glyph, in pixels. The palette's is 2 right, 2 down.
Glyph Shadow Image GlyphShadowImage TObjectPtr<UImage> XenoCore › Arts Transient, BlueprintReadOnly The shadow image, made by EnsureGlyphShadow.
Row Columns RowColumns TObjectPtr<UWidget> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional The columns' container. Bound only so a compact cell can drop the list row's 50px side inset.
Compact Name Scale CompactNameScale float XenoCore › Arts EditDefaultsOnly, ClampMin=0.5, ClampMax=1.0 0.85 The name's size in a compact strip cell, as a fraction of its authored size.
Level Bar LevelBar TObjectPtr<UPanelWidget> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional The art's level as XC1 draws it - twelve segments, lit to the current level, dark to the cap, faint beyond it. Filled in C++, so the row asset only places an empty HorizontalBox.
Level Segment Size LevelSegmentSize FVector2D XenoCore › Arts › Level EditDefaultsOnly FVector2D(20.0, 10.0) Segment width and height. UXenoCoreArtsScreenBase's ruler uses the same pitch.
Level Segment Gap LevelSegmentGap float XenoCore › Arts › Level EditDefaultsOnly, ClampMin=0.0, UIMin=0.0 2.0 Gap between two level segments, in pixels.
Level Tier Breaks LevelTierBreaks TArray<int32> XenoCore › Arts › Level EditDefaultsOnly A wider break after these levels - the manual tiers. XC1 groups the bar I-iv, V-vii, viii-X: iv is the default cap, vii and X are what the two manual tiers raise it to.
Level Tier Gap LevelTierGap float XenoCore › Arts › Level EditDefaultsOnly, ClampMin=0.0, UIMin=0.0 7.0 The wider gap drawn after each level in LevelTierBreaks, in pixels.
Level Reached Colour LevelReachedColour FLinearColor XenoCore › Arts › Level EditDefaultsOnly FLinearColor(0.47, 0.8, 0.2, 1.0) XC1's green for a reached level.
Level Open Colour LevelOpenColour FLinearColor XenoCore › Arts › Level EditDefaultsOnly FLinearColor(0.6, 0.62, 0.64, 1.0) A level the art can still reach under its current cap (XC1: light grey).
Level Locked Colour LevelLockedColour FLinearColor XenoCore › Arts › Level EditDefaultsOnly FLinearColor(0.14, 0.15, 0.17, 1.0) A level past the cap, needing an Arts Manual first (XC1: dark grey).
Compact Column Padding CompactColumnPadding FMargin XenoCore › Arts EditDefaultsOnly FMargin(22.0, 0.5, 14.0, 0.5) Side inset of the columns in a compact strip cell.
Disc Image DiscImage TObjectPtr<UImage> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional A palette cell's disc - the battle palette's layer 1, a rounded-box brush tinted per state.
Focus Ring FocusRing TObjectPtr<UWidget> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional The yellow selection ring - the battle palette's layer 3. Full while this cell has focus, dim while it is only the slot being filled (focus has moved down to the list), hidden otherwise.
Disc Filled Colour DiscFilledColour FLinearColor XenoCore › Arts EditDefaultsOnly FLinearColor(0.94, 0.94, 0.92, 1.0) No description.
Disc Empty Colour DiscEmptyColour FLinearColor XenoCore › Arts EditDefaultsOnly FLinearColor(0.5, 0.5, 0.5, 1.0) An empty but usable slot. Must match UXenoCoreArtsPaletteBase::EmptyDiscColour - same slot, both screens.
Disc Locked Colour DiscLockedColour FLinearColor XenoCore › Arts EditDefaultsOnly FLinearColor(0.22, 0.22, 0.23, 1.0) A slot the character's level has not opened yet - darker than empty, because it cannot be used.
Target Ring Opacity TargetRingOpacity float XenoCore › Arts EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0 0.45 Ring opacity on the slot being filled while focus is down in the list.
Talent Glyph Angle TalentGlyphAngle float XenoCore › Arts EditDefaultsOnly -45.0 The Talent Art glyph's tilt. Matches W_XenoCore_ArtSlot's BladeIcon, whose -45 degrees is authored on the widget, not the material - so a cell drawing the same glyph must tilt it too, or the menu's centre blade stands upright while the bar's lies diagonal.
Talent Cell Scale TalentCellScale float XenoCore › Arts EditDefaultsOnly, ClampMin=1.0 1.18 How much larger the centre Talent Art cell draws, as XC1's does.
Empty Row Opacity EmptyRowOpacity float XenoCore › Arts EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0, UIMin=0.0, UIMax=1.0 0.45 Dimming for an empty palette slot, so a gap reads as "fill me" rather than as a fault.

Blueprint functions

Node Kind Signature Description
Get Slot Index Pure int32 GetSlotIndex() const The palette position this row stands for, or INDEX_NONE for a row in the pick list.
Get Art Pure UXenoCoreArtDefinition* GetArt() const The art this row is about.
Get Focus Target Pure UCommonButtonBase* GetFocusTarget() const The button a screen should focus for this row.
Set Row Selected Callable void SetRowSelected(bool bSelected) Marks the row as the one the screen is acting on.
On Row Set Event (implement in Blueprint) void BP_OnRowSet() Hook for anything the asset wants to do that C++ should not decide - a flash, a sound.

UXenoCoreArtsPaletteBase

Class · derives from UXenoCoreHudPlateBase · header XenoCoreRuntime/Public/UI/XenoCoreArtsPaletteBase.h · abstract

The palette: one ring on screen, cycled vertically with the D-pad.

Properties

Property C++ name Type Category Specifiers Default Description
Entries Entries TArray<FXenoCorePaletteEntry> XenoCore › Palette EditDefaultsOnly, BlueprintReadOnly The in-battle centre carousel entries (e.g. Attack, the Talent Art, Flee), in cycle order.
In Battle Default Index InBattleDefaultIndex int32 XenoCore › Palette EditDefaultsOnly, ClampMin=0, UIMin=0 1 Which in-battle entry the centre rests on when a fight starts. The talent art.
Blade Icon BladeIcon TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional The icon for the selected entry.
Outgoing Icon OutgoingIcon TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional The outgoing icon during a cycle. Hidden when nothing is moving.
Blade Icon Shadow BladeIconShadow TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional The centre glyph's drop shadow, inside the slot overlay.
Attack Slot Glow AttackSlotGlow TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional Layer 3 (SelectionRing) carries the auto-attack highlight and the confirm flash. Kept bound only so existing palette assets still compile.
Talent Ring TalentRing TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional The Talent Gauge ring wrapping the palette's central slot.
Talent Ring Fill Parameter TalentRingFillParameter FName XenoCore › Talent EditDefaultsOnly FName("ActiveRange") Vector parameter carrying (arcStart, arcEnd).
Fill Clockwise bFillClockwise bool XenoCore › Talent EditDefaultsOnly true Which way the arc grows from its origin.
Ring Image RingImage TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional Layer 1 - the inner disc. Its brightness is the availability signal: muted while charging, white when ready.
Selection Ring SelectionRing TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional Layer 3 - the selection ring, outermost. Bright yellow.
Selection Group SelectionGroup TObjectPtr<UWidget> BlueprintReadOnly, BindWidgetOptional Layer 3's container: the selection ring plus its corner triangles.
Selection Tris SelectionTris TObjectPtr<UWidget> BlueprintReadOnly, BindWidgetOptional The four corner triangles, in their own container so they can pulse without the ring.
Selection Pulse bSelectionPulse bool XenoCore › Palette EditDefaultsOnly false Whether the selection marker breathes at all.
Selection Pulse Period SelectionPulsePeriod float XenoCore › Palette EditDefaultsOnly, ClampMin=0.05 1.1 Seconds for one full breath of the selection marker. Ignored unless bSelectionPulse.
Selection Pulse Min Opacity SelectionPulseMinOpacity float XenoCore › Palette EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0 0.55 Opacity at the bottom of the breath. The top is always 1.
Selection Pulse Max Scale SelectionPulseMaxScale float XenoCore › Palette EditDefaultsOnly, ClampMin=1.0 1.05 How much it swells at the top of the breath. 1.0 disables the scale half of the pulse.
Ring Colour Parameter RingColourParameter FName XenoCore › Talent EditDefaultsOnly FName("BarColor") Colour parameter on the disc and ring instances.
Disc Muted Colour DiscMutedColour FLinearColor XenoCore › Talent EditDefaultsOnly FLinearColor(0.42, 0.39, 0.34, 1.0) Dark beige. The disc while the gauge is still filling.
Disc Ready Colour DiscReadyColour FLinearColor XenoCore › Talent EditDefaultsOnly FLinearColor::White White. The disc once the gauge is full.
Cycle Up Arrow CycleUpArrow TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional Cycle affordances above and below the ring.
Cycle Down Arrow CycleDownArrow TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional No description.
Confirm Flash Duration ConfirmFlashDuration float XenoCore › Palette EditDefaultsOnly, ClampMin=0.01 0.28 Seconds the confirm flash takes to fall back to rest.
Arrow Idle Opacity ArrowIdleOpacity float XenoCore › Palette EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0 0.45 Resting opacity for both arrows. They are an affordance, not a readout - keep them quiet.
Action Label ActionLabel TObjectPtr<URichTextBlock> BlueprintReadOnly, BindWidgetOptional The selected entry's name, drawn above the ring.
Blocked Mark BlockedMark TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional The red ring-and-slash laid over the centre slot when the selected command is blocked.
Cycle Duration CycleDuration float XenoCore › Palette EditDefaultsOnly, ClampMin=0.0 0.18 Seconds for one icon to hand off to the next.
Cycle Travel CycleTravel float XenoCore › Palette EditDefaultsOnly 72.0 No description.
Pre Battle Entries PreBattleEntries TArray<FXenoCorePaletteEntry> XenoCore › Palette › PreBattle EditDefaultsOnly The pre-battle carousel: what D-pad up and down move between before a fight starts.
Pre Battle Default Index PreBattleDefaultIndex int32 XenoCore › Palette › PreBattle EditDefaultsOnly, ClampMin=0, UIMin=0 1 Which pre-battle entry is selected when a fight ends or targeting begins. Attack.
Art Entries ArtEntries TArray<FXenoCorePaletteEntry> XenoCore › Palette › Arts EditDefaultsOnly The arts either side of the centre, in row order, left to right.
Build Arts From Granted Abilities bBuildArtsFromGrantedAbilities bool XenoCore › Palette › Arts EditDefaultsOnly true Replace ArtEntries with the granted art abilities on construct.
Side Slot Scale SideSlotScale float XenoCore › Palette › Arts EditDefaultsOnly, ClampMin=0.1, ClampMax=1.0 0.8 Side slots read slightly smaller than the centre. Scales the selection marker to match.
Side Slot Offset X SideSlotOffsetX float XenoCore › Palette › Arts EditDefaultsOnly 125.0 Horizontal distance from the centre to a side slot, in slate units.
Side Slot Pitch SideSlotPitch float XenoCore › Palette › Arts EditDefaultsOnly, ClampMin=1.0 100.0 Distance between neighbouring side slots, outward from the first. XC1's bar is 4 + Talent + 4; only the innermost slot on each side is authored, and the rest are stamped at this pitch.
Empty Disc Colour EmptyDiscColour FLinearColor XenoCore › Palette › Arts EditDefaultsOnly FLinearColor(0.5, 0.5, 0.5, 1.0) An unlocked slot with no art in it - a plain grey disc on its drop shadow. The Arts menu's cell uses the same value, so a slot reads the same on both screens.
Locked Disc Colour LockedDiscColour FLinearColor XenoCore › Palette › Arts EditDefaultsOnly FLinearColor(0.22, 0.22, 0.23, 1.0) A slot the character's level has not opened yet. Darker than empty.
Empty Slot Scale EmptySlotScale float XenoCore › Palette › Arts EditDefaultsOnly, ClampMin=0.05, ClampMax=1.0 0.35 No description.
Disc Available Colour DiscAvailableColour FLinearColor XenoCore › Palette › Arts EditDefaultsOnly FLinearColor(0.94, 0.94, 0.92, 1.0) The disc behind an available art. Grey (DiscMutedColour) is the unavailable look.
Glyph Unavailable Colour GlyphUnavailableColour FLinearColor XenoCore › Palette › Arts EditDefaultsOnly FLinearColor(0.16, 0.15, 0.14, 1.0) The glyph on an unavailable art - dark on grey, matching the authored Dark instances.
Chance Badge Left ChanceBadgeLeft TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional The blue ! marking an art whose positional bonus is live right now.
Chance Badge Right ChanceBadgeRight TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional No description.
Chance Shadow Left ChanceShadowLeft TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional The badges' drop shadows - shown and hidden with their badge.
Chance Shadow Right ChanceShadowRight TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional No description.
Chance Popup ChancePopup TObjectPtr<UWidget> BlueprintReadOnly, BindWidgetOptional The italic "Chance!" wordmark. Fixed on screen - it does not track the player.
Availability Check Interval AvailabilityCheckInterval float XenoCore › Palette › Chance EditDefaultsOnly, ClampMin=0.01 0.1 Seconds between availability re-checks.
Chance Display Time ChanceDisplayTime float XenoCore › Palette › Chance EditDefaultsOnly, ClampMin=0.1 1.4 Seconds the wordmark stays up after a Chance appears. The badge stays for as long as it lasts.
Side Disc Left SideDiscLeft TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional No description.
Cooldown Ring Left CooldownRingLeft TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional The recharge ring around a side art, filling as it cools down.
Cooldown Ring Right CooldownRingRight TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional No description.
Side Icon Left SideIconLeft TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional No description.
Side Disc Right SideDiscRight TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional No description.
Side Icon Right SideIconRight TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional No description.
Side Icon Shadow Left SideIconShadowLeft TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional Drop shadows for the side glyphs, shown and hidden with their glyph.
Slot Shadow Left SlotShadowLeft TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional The disc's drop shadow on each side. Bound so it can be stamped per position with the rest of the slot - an empty slot is exactly this plus a grey disc.
Slot Shadow Right SlotShadowRight TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional No description.
Side Icon Shadow Right SideIconShadowRight TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional No description.
Pre Battle Disc Colour PreBattleDiscColour FLinearColor XenoCore › Palette › PreBattle EditDefaultsOnly FLinearColor(0.72, 0.09, 0.09, 1.0) The disc behind the Attack glyph. Red is the game's own colour for engage.
Pre Battle Chevron Colour PreBattleChevronColour FLinearColor XenoCore › Palette › PreBattle EditDefaultsOnly FLinearColor(0.85, 0.13, 0.13, 1.0) The chevrons' colour before battle. Red, as in XC1.
In Battle Chevron Colour InBattleChevronColour FLinearColor XenoCore › Palette › PreBattle EditDefaultsOnly FLinearColor::White The chevrons' colour in battle. Unsourced; white by default.

Blueprint functions

Node Kind Signature Description
Cycle Selection Callable FGameplayTag CycleSelection(int32 Delta) Move the selection.
Get Selected Action Tag Pure FGameplayTag GetSelectedActionTag() const The selected entry's ActionTag, or an empty tag if nothing is selected.
Get Selected Art Handle Pure FGameplayAbilitySpecHandle GetSelectedArtHandle() const The spec behind the selected art, or an invalid handle when an authored centre command (Attack, Lure, Flee, Cancel) is selected.
Get Selected Art Data Pure const UXenoCoreArtDefinition* GetSelectedArtData() const The selected art's definition, or null when the centre slot is selected.
Get Talent Art Data Pure const UXenoCoreArtDefinition* GetTalentArtData() const The centre slot's Talent entry draws its name, description and glyph from this.
Get Talent Gauge Cost Pure float GetTalentGaugeCost() const Gauge the Talent Art costs: its definition's GaugeCost, or a full gauge (UXenoCoreStatSet::TalentGaugeMax) when there is no talent definition to ask.
Is Talent Art Ready Pure bool IsTalentArtReady() const True when the gauge covers the Talent Art's cost - the same comparison, and the same KINDA_SMALL_NUMBER, as UXenoCoreGameplayAbility_TalentArt::CanActivateAbility.
Show Loadout For Callable void ShowLoadoutFor(class UXenoCorePartyMemberDefinition* Member) Draw a member's stored loadout instead of the live pawn's granted arts.
Play Confirm Feedback Callable void PlayConfirmFeedback() Confirm feedback: the ring flashes so a press reads as having landed.
On Confirmed Event (implement in Blueprint) void OnConfirmed(const FGameplayTag& ActionTag) Called when an entry is confirmed, after the native ring flash.
Get Palette State Pure EXenoCorePaletteState GetPaletteState() const Which job the central slot is currently doing.
Format Entry Label Pure FText FormatEntryLabel(const FXenoCorePaletteEntry& Entry) "Name: Description", or just "Name" when there is no description.
Cycle Horizontal Callable FGameplayTag CycleHorizontal(int32 Delta) Moves left/right along the arts row.
Set Selection Active Callable void SetSelectionActive(bool bActive) Stand the palette's own selection marker down while something else owns the choice.
On Palette State Changed Event (implement in Blueprint) void OnPaletteStateChanged(EXenoCorePaletteState NewState) Fired when the state actually changes, so a Blueprint can add flourish without polling.
Is Entry Available Event (overridable) bool IsEntryAvailable(const FXenoCorePaletteEntry& Entry) const Can this art be used right now?
Is Positional Bonus Live Pure bool IsPositionalBonusLive(const FXenoCorePaletteEntry& Entry) const Is this art's positional bonus live right now - i.e. would using it hit the multiplier?

UXenoCoreArtsScreenBase

Class · derives from UXenoCoreCharacterMenuScreenBase · header XenoCoreRuntime/Public/UI/XenoCoreArtsScreenBase.h · abstract · Blueprintable

The Arts screen: arrange a character's battle palette. XC1 equips 8 of 16 learned arts.

Properties

Property C++ name Type Category Specifiers Default Description
Slot Strip SlotStrip TObjectPtr<UPanelWidget> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional The one thing the Shop tree lacks: the palette across the top. Slot cells go in here.
Rows Box RowsBox TObjectPtr<UPanelWidget> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional The known arts. The Shop's own list box.
Title Text TitleText TObjectPtr<UTextBlock> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional "Arts".
Slot Header SlotHeader TObjectPtr<UTextBlock> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional The list pane's header - the character in Setting, "Current AP" in Level Up.
Empty List Text EmptyListText TObjectPtr<UTextBlock> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional No description.
Details Name DetailsName TObjectPtr<UTextBlock> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional No description.
Details Desc DetailsDesc TObjectPtr<UTextBlock> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional No description.
Details Rich Desc DetailsRichDesc TObjectPtr<URichTextBlock> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional The description as rich text, so an art's <Highlight>from behind</> draws highlighted the way the battle palette's label already does. When bound it wins and DetailsDesc is collapsed.
Details Type Label DetailsTypeLabel TObjectPtr<UTextBlock> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional Label/value rows in the detail pane - XC1's fixed field list, so they read "Attribute".
Details Type Value DetailsTypeValue TObjectPtr<UTextBlock> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional No description.
Details Owned Label DetailsOwnedLabel TObjectPtr<UTextBlock> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional Second label/value row - "Cooldown".
Details Owned Value DetailsOwnedValue TObjectPtr<UTextBlock> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional No description.
Setting Tab Text SettingTabText TObjectPtr<UTextBlock> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional The two tab labels. Coloured by which is active.
Level Up Tab Text LevelUpTabText TObjectPtr<UTextBlock> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional No description.
Level Ruler LevelRuler TObjectPtr<UPanelWidget> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional I..XII above the list's level bars. Filled in C++ at the rows' segment pitch.
Art Points Text ArtPointsText TObjectPtr<UTextBlock> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional "AP 1,250" - the shown character's unspent Art Points.
Details Stats Box DetailsStatsBox TObjectPtr<UPanelWidget> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional XC1's field list under Attribute and Cooldown - Target, Range, Distance, Damage, Effects. The Shop tree's own stats box, filled with one label/value row per FXenoCoreArtDetailLine.
Header Portrait HeaderPortrait TObjectPtr<class UImage> XenoCore › Arts BlueprintReadOnly, BindWidgetOptional The shown character's face at the head of the list.
Row Class RowClass TSubclassOf<UXenoCoreArtRowBase> XenoCore › Arts EditDefaultsOnly A row in the known-arts list. W_XenoCore_ArtRow.
Slot Cell Gap SlotCellGap float XenoCore › Arts EditDefaultsOnly, ClampMin=0.0, UIMin=0.0 18.0 Space between strip cells.
Slot Class SlotClass TSubclassOf<UXenoCoreArtRowBase> XenoCore › Arts EditDefaultsOnly A cell in the palette strip. Falls back to RowClass when unset.
Setting Tab Colour SettingTabColour FLinearColor XenoCore › Arts EditDefaultsOnly FLinearColor(1.0, 0.55, 0.15, 1.0) The Setting tab's colour (XC1: orange).
Level Up Tab Colour LevelUpTabColour FLinearColor XenoCore › Arts EditDefaultsOnly FLinearColor(0.25, 0.82, 0.88, 1.0) The Level Up tab's colour (XC1: teal).
Inactive Tab Opacity InactiveTabOpacity float XenoCore › Arts EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0 0.45 An inactive tab keeps its colour, dimmed - it is still a tab, not disabled text.
Tab Frame Colour TabFrameColour FLinearColor XenoCore › Arts EditDefaultsOnly FLinearColor(0.238, 0.418, 0.509, 0.9) An inactive tab's frame outline - the table's own outline colour, so it reads as part of the table.
Tab Fill Colour TabFillColour FLinearColor XenoCore › Arts EditDefaultsOnly FLinearColor(0.02, 0.05, 0.11, 0.35) An inactive tab's fill - the table's own fill. The active tab is washed with its own colour.
Ruler Colour RulerColour FLinearColor XenoCore › Arts EditDefaultsOnly FLinearColor(0.55, 0.58, 0.62, 1.0) Text colour of the I..XII level ruler above the list.
Ruler Font Size RulerFontSize float XenoCore › Arts EditDefaultsOnly, ClampMin=4.0 8.5 Point size of the I..XII ruler. Must fit a level-bar segment, so it does not follow the header.

Blueprint functions

Node Kind Signature Description
Set Mode Callable void SetMode(EXenoCoreArtsScreenMode NewMode) Switch tab.
Get Mode Pure EXenoCoreArtsScreenMode GetMode() const The tab currently shown.

UXenoCoreArtsUIStatics

Class · derives from UBlueprintFunctionLibrary · header XenoCoreRuntime/Public/UI/XenoCoreArtsUIStatics.h

The Arts screen's read model. Everything a widget needs, so no row decides anything itself.

Blueprint functions

Node Kind Signature Description
Make Art View Pure FXenoCoreArtView MakeArtView(UXenoCorePartyMemberDefinition* Member, UXenoCoreArtDefinition* Art) One row for an art, as it should appear in the pick list for this character.
Make Art Slot View Pure FXenoCoreArtView MakeArtSlotView(UXenoCorePartyMemberDefinition* Member, int32 SlotIndex) One row for a palette position - the art in it, or an empty row that names the slot.
Get Palette Views Pure TArray<FXenoCoreArtView> GetPaletteViews(UXenoCorePartyMemberDefinition* Member) Feeds the slot strip.
Make Talent Art View Pure FXenoCoreArtView MakeTalentArtView(UXenoCorePartyMemberDefinition* Member) The member's Talent Art, read off their live pawn. bIsEmpty when they have no body (benched) or no talent - the strip then simply draws no centre cell.
Get Selectable Art Views Pure TArray<FXenoCoreArtView> GetSelectableArtViews(UXenoCorePartyMemberDefinition* Member) Everything this character could put in a slot.
Open Arts Screen Callable void OpenArtsScreen() Push the Arts screen onto the menu layer.
Get Category Label Pure FText GetCategoryLabel(EXenoCoreArtCategory Category) The display label of an art category: "Physical", "Break", "Heal".
Get Category Colour Pure FLinearColor GetCategoryColour(EXenoCoreArtCategory Category) XC1's colour language, sourced: pink Break, green Topple, yellow Daze, red physical, blue ether, orange Aura.

UXenoCoreAskConfirmAsync

Class · derives from UBlueprintAsyncActionBase · header XenoCoreRuntime/Public/UI/XenoCoreAskConfirmAsync.h

"Ask Confirm" - shows a yes/no popup over a screen and continues on the player's answer.

Events you can bind

Event Type Description
OnYes FXenoCoreAskConfirmPin The player chose Yes. The popup has already closed.
OnNo FXenoCoreAskConfirmPin The player chose No, backed out, the popup closed unanswered, or it could not be shown.

Blueprint functions

Node Kind Signature Description
Ask Confirm Latent node factory UXenoCoreAskConfirmAsync* AskConfirm(UCommonActivatableWidgetStack* Stack, TSubclassOf<UXenoCoreConfirmPopupBase> PopupClass, FText Title, FText Question, FText Warning, bool bFocusCancel = false) Push a confirm popup into a stack (usually the asking screen's own overlay stack) and ask a question.
Ask Confirm (Existing Popup) Latent node factory UXenoCoreAskConfirmAsync* AskConfirmWithPopup(UXenoCoreConfirmPopupBase* Popup, FText Title, FText Question, FText Warning, bool bFocusCancel = false) Ask a question with a confirm popup that is already on screen.

UXenoCoreBattleNotifyBase

Class · derives from UXenoCoreHudPlateBase · header XenoCoreRuntime/Public/UI/XenoCoreBattleNotifyBase.h

One line of battle text over an actor - miss, break, topple, daze, critical, a buff name.

Properties

Property C++ name Type Category Specifiers Default Description
Notify Font Size NotifyFontSize int32 XenoCore › Battle EditDefaultsOnly, ClampMin=1, UIMin=1 34 Floor for the inherited style's size. Battle text has to read at a glance.
Notify Outline Size NotifyOutlineSize int32 XenoCore › Battle EditDefaultsOnly, ClampMin=0, UIMin=0 2 Outline thickness. Zero is unreadable over a bright wall - see SetNotification.
Notify Outline Colour NotifyOutlineColour FLinearColor XenoCore › Battle EditDefaultsOnly FLinearColor(0.02, 0.02, 0.03, 1.0) Colour of the outline drawn around the notification text.
Notify Text NotifyText TObjectPtr<UCommonTextBlock> BlueprintReadOnly, BindWidgetOptional No description.
Name Text NameText TObjectPtr<UCommonTextBlock> BlueprintReadOnly, BindWidgetOptional No description.

Blueprint functions

Node Kind Signature Description
Set Notification Callable void SetNotification(const FText& InText, const FLinearColor& InColour) Sets the line and its colour.

UXenoCoreBattleNotifySubsystem

Class · derives from UWorldSubsystem · header XenoCoreRuntime/Public/UI/XenoCoreBattleNotifySubsystem.h

Battle text over an actor: miss, break, topple, daze, critical, buff names.

Blueprint functions

Node Kind Signature Description
Notify Callable void Notify(AActor* Target, FText Text, FLinearColor Colour, float Scale = 1.0f, float Punch = 1.0f) Raise a line from anywhere - C++ or Blueprint - without knowing this subsystem exists.

UXenoCoreBootScreenBase

Class · derives from UCommonActivatableWidget · header XenoCoreRuntime/Public/UI/XenoCoreBootScreenBase.h · abstract · Blueprintable

One card of the pre-title sequence - studio logo, engine logo, autosave notice, shaders.

Properties

Property C++ name Type Category Specifiers Default Description
Fade In Time FadeInTime float XenoCore › Boot EditDefaultsOnly, ClampMin=0.0, Units=s 0.8 Seconds the card takes to fade in.
Hold Time HoldTime float XenoCore › Boot EditDefaultsOnly, ClampMin=0.0, Units=s 2.5 How long the card sits fully visible. Ignored by cards that decide their own end.
Fade Out Time FadeOutTime float XenoCore › Boot EditDefaultsOnly, ClampMin=0.0, Units=s 0.8 Seconds the card takes to fade out.

Blueprint functions

Node Kind Signature Description
Advance Callable void Advance() Start the fade-out now, as a press of A would.
On Boot Screen Shown Event (implement in Blueprint) void K2_OnBootScreenShown() For Blueprint polish on a card - start an anim, a sound.

UXenoCoreBuildStampSubsystem

Class · derives from UGameInstanceSubsystem · header XenoCoreRuntime/Public/UI/XenoCoreBuildStampSubsystem.h

No description.

Blueprint functions

Node Kind Signature Description
Get Build Version Pure FString GetBuildVersion() "1.0.0.2014" - ProjectVersion, then the number of commits this build came from.

UXenoCoreCharacterMenuScreenBase

Class · derives from UCommonActivatableWidget · header XenoCoreRuntime/Public/UI/XenoCoreCharacterMenuScreenBase.h · abstract · Blueprintable

A menu screen about one character, switched through the roster with L / R and paged with ZL / ZR - the Arts screen and the Skills screen.

Properties

Property C++ name Type Category Specifiers Default Description
Portrait Box PortraitBox TObjectPtr<UPanelWidget> XenoCore › Menu BlueprintReadOnly, BindWidgetOptional No description.
Prev Char Glyph PrevCharGlyph TObjectPtr<UCommonActionWidget> XenoCore › Menu BlueprintReadOnly, BindWidgetOptional No description.
Next Char Glyph NextCharGlyph TObjectPtr<UCommonActionWidget> XenoCore › Menu BlueprintReadOnly, BindWidgetOptional No description.
Prev Tab Glyph PrevTabGlyph TObjectPtr<UCommonActionWidget> XenoCore › Menu BlueprintReadOnly, BindWidgetOptional The ZL / ZR glyphs either side of the tabs.
Next Tab Glyph NextTabGlyph TObjectPtr<UCommonActionWidget> XenoCore › Menu BlueprintReadOnly, BindWidgetOptional No description.
Prev Character Action PrevCharacterAction FDataTableRowHandle XenoCore › Menu EditDefaultsOnly The action that steps to the previous character (L). Same rows as the Shop's, so the glyphs match.
Next Character Action NextCharacterAction FDataTableRowHandle XenoCore › Menu EditDefaultsOnly The action that steps to the next character (R).
Prev Tab Action PrevTabAction FDataTableRowHandle XenoCore › Menu EditDefaultsOnly The previous-tab action - ZL in XC1.
Next Tab Action NextTabAction FDataTableRowHandle XenoCore › Menu EditDefaultsOnly The next-tab action - ZR in XC1.
Portrait Size PortraitSize float XenoCore › Menu EditDefaultsOnly, ClampMin=8.0 56.0 Size of each portrait in the strip, in pixels. Matches UXenoCoreShopScreenBase::PortraitSize.
Unselected Portrait Opacity UnselectedPortraitOpacity float XenoCore › Menu EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0 0.4 Opacity of the portraits of characters not currently shown.
Max Visible Portraits MaxVisiblePortraits int32 XenoCore › Menu EditDefaultsOnly, ClampMin=1 5 How many portraits the strip shows at once - a window that slides to keep the shown character in view, so a large roster does not run over the title.

Blueprint functions

Node Kind Signature Description
Show Member Callable void ShowMember(UXenoCorePartyMemberDefinition* Member) Show this character.
Cycle Member Callable void CycleMember(int32 Delta) Step through the roster, benched included - a benched character can be prepared before they are fielded.
Get Shown Member Pure UXenoCorePartyMemberDefinition* GetShownMember() const The character this screen is currently showing.

UXenoCoreConfirmPopupBase

Class · derives from UCommonActivatableWidget · header XenoCoreRuntime/Public/UI/XenoCoreConfirmPopupBase.h · abstract · Blueprintable

A yes / no popup pushed into the asking screen's own OverlayStack: a scrim over the screen and a panel in the middle, with the answer delivered to C++ or Blueprint.

Properties

Property C++ name Type Category Specifiers Default Description
Title Text TitleText TObjectPtr<UTextBlock> XenoCore › Confirm BlueprintReadOnly, BindWidgetOptional No description.
Message Text MessageText TObjectPtr<UTextBlock> XenoCore › Confirm BlueprintReadOnly, BindWidgetOptional No description.
Warning Text WarningText TObjectPtr<UTextBlock> XenoCore › Confirm BlueprintReadOnly, BindWidgetOptional "This cannot be undone." The colour is the widget's; this class only fills and collapses it.
Confirm Button ConfirmButton TObjectPtr<UCommonButtonBase> XenoCore › Confirm BlueprintReadOnly, BindWidget Yes. Its label is authored on the Blueprint.
Cancel Button CancelButton TObjectPtr<UCommonButtonBase> XenoCore › Confirm BlueprintReadOnly, BindWidget No. Its label is authored on the Blueprint.

Blueprint functions

Node Kind Signature Description
Is Asking Pure bool IsAsking() const True while a question is open.

UXenoCoreDamageNumberSubsystem

Class · derives from UWorldSubsystem · header XenoCoreRuntime/Public/UI/XenoCoreDamageNumberSubsystem.h

Damage numbers for damage the party takes, and the hit sound for a companion.

Blueprint functions

Node Kind Signature Description
Show Heal Number Callable void ShowHealNumber(AActor* Target, int32 Amount) Draw a heal number over Target.

UXenoCoreDefeatBannerBase

Class · derives from UCommonUserWidget · header XenoCoreRuntime/Public/UI/XenoCoreDefeatBannerBase.h · Blueprintable

"Defeated" in bold red - fades in over the defeat beat, holds on the black, fades out on respawn.

Properties

Property C++ name Type Category Specifiers Default Description
Defeat Text DefeatText TObjectPtr<UTextBlock> XenoCore › Defeat BlueprintReadOnly, BindWidgetOptional Optional in a Blueprint child; a native instance builds its own.
Font Font FSlateFontInfo XenoCore › Defeat EditAnywhere, BlueprintReadOnly Font of the "Defeated" line.
Text Colour TextColour FLinearColor XenoCore › Defeat EditAnywhere, BlueprintReadOnly FLinearColor(0.82, 0.08, 0.08, 1.0) Colour of the "Defeated" line.
Fade In Seconds FadeInSeconds float XenoCore › Defeat EditAnywhere, BlueprintReadOnly, ClampMin=0.0 0.8 Seconds, real time.
Fade Out Seconds FadeOutSeconds float XenoCore › Defeat EditAnywhere, BlueprintReadOnly, ClampMin=0.0 0.6 Seconds, real time.

Blueprint functions

Node Kind Signature Description
Set Defeat Text Callable void SetDefeatText(const FText& InText) The line to show.
Fade Out And Remove Callable void FadeOutAndRemove() Fade out and remove itself.

UXenoCoreDialogueBoxBase

Class · derives from UCommonUserWidget · header XenoCoreRuntime/Public/UI/XenoCoreDialogueBoxBase.h · abstract

The dialogue box: one sentence, revealed as it is read, with the speaker's name on a plate that overlaps its top edge.

Properties

Property C++ name Type Category Specifiers Default Description
Line Text LineText TObjectPtr<UCommonTextBlock> BlueprintReadOnly, BindWidget The sentence. Auto-wrapped; the subsystem's character limit is what keeps it to two lines.
Speaker Text SpeakerText TObjectPtr<UCommonTextBlock> BlueprintReadOnly, BindWidget The name on the plate.
Name Plate NamePlate TObjectPtr<UWidget> BlueprintReadOnly, BindWidgetOptional The rounded plate, so a line with no speaker at all can hide it.
Advance Group AdvanceGroup TObjectPtr<UWidget> BlueprintReadOnly, BindWidgetOptional The "press the button for more" group - glyph and chevron together.
Advance Arrow AdvanceArrow TObjectPtr<UWidget> BlueprintReadOnly, BindWidgetOptional Bobbed to draw the eye. Optional so a box can omit it entirely.
Characters Per Second CharactersPerSecond float XenoCore › Dialogue EditDefaultsOnly, ClampMin=0.0 55.0 Characters revealed per second.
Line Sound LineSound TObjectPtr<USoundBase> XenoCore › Dialogue EditDefaultsOnly Played once as each line starts.
Arrow Bob Amplitude ArrowBobAmplitude float XenoCore › Dialogue EditDefaultsOnly, ClampMin=0.0 4.0 How far the advance arrow bobs up and down, in Slate units.
Arrow Bob Speed ArrowBobSpeed float XenoCore › Dialogue EditDefaultsOnly, ClampMin=0.0 1.8 Advance arrow bobs per second.

Blueprint functions

Node Kind Signature Description
Set Line Callable void SetLine(const FText& Speaker, const FText& Line) Starts revealing one line.
Set Has More Callable void SetHasMore(bool bHasMore) Hides the "there is more" glyph on the last line of a conversation.
Skip Reveal Callable bool SkipReveal() Finishes the reveal immediately.
Is Revealing Pure bool IsRevealing() const True while characters are still appearing.

UXenoCoreEnemyLabelBase

Class · derives from UXenoCoreWorldLabelBase · header XenoCoreRuntime/Public/UI/XenoCoreEnemyLabelBase.h · abstract

The label over an enemy: "lvl.N" over its chevron, coloured by level against the party leader.

Properties

Property C++ name Type Category Specifiers Default Description
Refresh Interval RefreshInterval float XenoCore › Enemy EditDefaultsOnly, ClampMin=0.02 0.2 Seconds between re-reads of level, colour and distance.
Chevron Colour ChevronColour FLinearColor XenoCore › Enemy EditDefaultsOnly FLinearColor(0.75, 0.75, 0.78, 1.0) The chevron's tint for an ordinary enemy. A Unique Monster's comes from XenoCore Enemies settings.

Blueprint functions

Node Kind Signature Description
Set Enemy Callable void SetEnemy(AXenoCoreEnemyCharacter* InEnemy) Point the label at its enemy.
Refresh Label Callable void RefreshLabel() Re-read level, colour and distance now rather than on the next poll.

UXenoCoreGameplayAbility_PaletteCycle

Class · derives from ULyraGameplayAbility · header XenoCoreRuntime/Public/UI/XenoCoreGameplayAbility_PaletteCycle.h · abstract

Moves the palette carousel one step. Bound to D-pad Up and D-pad Down.

Properties

Property C++ name Type Category Specifiers Default Description
Delta Delta int32 XenoCore › Palette EditDefaultsOnly 1 +1 moves up the list, -1 moves down.
Horizontal bHorizontal bool XenoCore › Palette EditDefaultsOnly false Move along the arts row (left/right) instead of the centre carousel (up/down).
Confirm bConfirm bool XenoCore › Palette EditDefaultsOnly false True on the confirm binding: perform the selected entry instead of moving the selection.

UXenoCoreGemPopupBase

Class · derives from UCommonActivatableWidget · header XenoCoreRuntime/Public/UI/XenoCoreGemPopupBase.h · Blueprintable

Gems on one piece of equipment: its sockets, and the bag's gems to put in them.

Properties

Property C++ name Type Category Specifiers Default Description
Title Text TitleText TObjectPtr<UTextBlock> XenoCore › Gems BlueprintReadOnly, BindWidgetOptional No description.
Message Text MessageText TObjectPtr<UTextBlock> XenoCore › Gems BlueprintReadOnly, BindWidgetOptional The line under the title. Named like the confirm popup's, whose skin this shares.
Row Box RowBox TObjectPtr<UVerticalBox> XenoCore › Gems BlueprintReadOnly, BindWidget The rows go here, rebuilt on every page.
Row Class RowClass TSubclassOf<UCommonButtonBase> XenoCore › Gems EditDefaultsOnly The row button class - W_XenoCore_MenuButton in the shipped skin.
Gem Name Colour GemNameColour FLinearColor XenoCore › Gems EditDefaultsOnly FLinearColor(0.7, 0.58, 1.0, 1.0) Label colour of a gem row in the native row style. A menu-button skin tints by the gem's rarity instead.
Empty Colour EmptyColour FLinearColor XenoCore › Gems EditDefaultsOnly FLinearColor(0.55, 0.58, 0.64, 1.0) Label colour of an empty socket, the Remove row and the "No gems" row.
Fixed Colour FixedColour FLinearColor XenoCore › Gems EditDefaultsOnly FLinearColor(1.0, 0.78, 0.35, 1.0) A permanent gem's name colour.
Preview Block Name PreviewBlockName FName XenoCore › Gems EditDefaultsOnly "StatDetailsBlock" The screen's character-sheet stat block variable - previews the highlighted gem.

Blueprint functions

Node Kind Signature Description
Open Gem Popup Callable UXenoCoreGemPopupBase* OpenGemPopup(UUserWidget* Screen, UXenoCoreEquipmentComponent* Equipment, EXenoCoreEquipSlot EquipSlot) Open the gem popup for whatever Equipment wears in Slot, inside Screen's "OverlayStack".
Refresh Gem Column Callable void RefreshGemColumn(UUserWidget* Screen, UXenoCoreEquipmentComponent* Equipment) Draw the equipment screen's Gems column (GemBtn_1..6) and bind each to the gem popup.

UXenoCoreGemRowButton

Class · derives from UCommonButtonBase · header XenoCoreRuntime/Public/UI/XenoCoreGemPopupBase.h · Blueprintable

One row of the gem popup: a label, a value, and a plate that lights under the cursor.

Properties

Property C++ name Type Category Specifiers Default Description
Plate Plate TObjectPtr<UBorder> XenoCore › Gems BlueprintReadOnly, BindWidgetOptional No description.
Label Text LabelText TObjectPtr<UTextBlock> XenoCore › Gems BlueprintReadOnly, BindWidgetOptional No description.
Value Text ValueText TObjectPtr<UTextBlock> XenoCore › Gems BlueprintReadOnly, BindWidgetOptional No description.
Plate Colour PlateColour FLinearColor XenoCore › Gems EditDefaultsOnly FLinearColor(0.08, 0.1, 0.14, 0.85) The row's plate colour when it does not have the cursor.
Focused Plate Colour FocusedPlateColour FLinearColor XenoCore › Gems EditDefaultsOnly FLinearColor(0.18, 0.24, 0.34, 0.95) The cursor: a lighter plate and an outline.
Focused Outline Colour FocusedOutlineColour FLinearColor XenoCore › Gems EditDefaultsOnly FLinearColor(1.0, 0.82, 0.22, 1.0) The outline drawn around the row that has the cursor.
Font Size FontSize int32 XenoCore › Gems EditDefaultsOnly, ClampMin=6 18 Point size of the row's label and value text.

UXenoCoreHudPlateBase

Class · derives from UCommonUserWidget · header XenoCoreRuntime/Public/UI/XenoCoreHudPlateBase.h · abstract

Shared intro/outro slide-and-fade for the target-mode HUD plates.

Properties

Property C++ name Type Category Specifiers Default Description
Show Hide Duration ShowHideDuration float XenoCore › HUD EditDefaultsOnly, ClampMin=0.0 0.18 Seconds for the show/hide fade. Separate from Intro/Outro, which are one-shot.
Show Hide Offset ShowHideOffset FVector2D XenoCore › HUD EditDefaultsOnly FVector2D::ZeroVector Pixel offset the plate slides in from on SetShown(true), and back out to on SetShown(false).
Intro Duration IntroDuration float XenoCore › HUD › Transition EditDefaultsOnly, ClampMin=0.0 0.22 Seconds for the plate to slide and fade in.
Outro Duration OutroDuration float XenoCore › HUD › Transition EditDefaultsOnly, ClampMin=0.0 0.14 Seconds for the plate to slide and fade out. Shorter than the intro reads as responsive.
Intro Offset IntroOffset FVector2D XenoCore › HUD › Transition EditDefaultsOnly FVector2D(-40.0, 0.0) Pixel offset the plate starts from and returns to. Negative X slides in from the left.

Blueprint functions

Node Kind Signature Description
Play Outro Callable void PlayOutro() Play the exit and remove the widget when it finishes.
Collapse All Except Callable void CollapseAllExcept(class UWidget* KeepLeaf) Collapse every widget in this plate except KeepLeaf and the chain of panels above it.
Set Shown Callable void SetShown(bool bShown) Fade this plate in or out and leave it alive, unlike PlayOutro which removes it.
Set Show Delay Callable void SetShowDelay(float Seconds) Delay the fade-in this many seconds after Set Shown (true).
Set Shown Immediate Callable void SetShownImmediate(bool bShown) Show or hide this plate at once, with no fade.
Skip Intro Callable void SkipIntro() Cancel the entrance animation and settle the plate at rest.
Begin Hidden Callable void BeginHidden() Start this plate hidden: cancels the entrance, then hides it with no fade.

UXenoCoreInteractPromptBase

Class · derives from UCommonUserWidget · header XenoCoreRuntime/Public/UI/XenoCoreInteractPromptBase.h · abstract

The "A - <verb>" chips beside the player. Up to four of them, one per face button.

Properties

Property C++ name Type Category Specifiers Default Description
Plate Bg PlateBg TObjectPtr<UWidget> BlueprintReadOnly, BindWidget One row = a plate, a button glyph and a label, and all three are shown or hidden together.
Border A Border_A TObjectPtr<UWidget> BlueprintReadOnly, BindWidget No description.
Open Label OpenLabel TObjectPtr<UTextBlock> BlueprintReadOnly, BindWidget No description.
Plate Bg 2 PlateBg2 TObjectPtr<UWidget> BlueprintReadOnly, BindWidgetOptional No description.
Img X Img_X TObjectPtr<UWidget> BlueprintReadOnly, BindWidgetOptional No description.
Label 2 Label2 TObjectPtr<UTextBlock> BlueprintReadOnly, BindWidgetOptional No description.
Plate Bg 3 PlateBg3 TObjectPtr<UWidget> BlueprintReadOnly, BindWidgetOptional No description.
Img Y Img_Y TObjectPtr<UWidget> BlueprintReadOnly, BindWidgetOptional No description.
Label 3 Label3 TObjectPtr<UTextBlock> BlueprintReadOnly, BindWidgetOptional No description.
Plate Bg 4 PlateBg4 TObjectPtr<UWidget> BlueprintReadOnly, BindWidgetOptional No description.
Img B Img_B TObjectPtr<UWidget> BlueprintReadOnly, BindWidgetOptional No description.
Label 4 Label4 TObjectPtr<UTextBlock> BlueprintReadOnly, BindWidgetOptional No description.

Blueprint functions

Node Kind Signature Description
Set Verbs Callable void SetVerbs(const TArray<FText>& InVerbs) Shows one row per verb, in order, and collapses the rest.
Set Verb Callable void SetVerb(const FText& InVerb) Convenience for the common single-action case.

UXenoCoreItemBadgeBase

Class · derives from UCommonUserWidget · header XenoCoreRuntime/Public/UI/XenoCoreItemBadgeBase.h · abstract

One "item collected" row: symbol, name, drop shadow. Lives about three seconds and removes itself.

Properties

Property C++ name Type Category Specifiers Default Description
Badge Root BadgeRoot TObjectPtr<UWidget> BlueprintReadOnly, BindWidgetOptional Everything that moves. Slid and faded as one so the parts cannot drift apart.
Symbol Icon SymbolIcon TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional The category glyph, immediately left of the name.
Name Text NameText TObjectPtr<UCommonTextBlock> BlueprintReadOnly, BindWidgetOptional No description.
Rarity Pips RarityPips TObjectPtr<class UPanelWidget> BlueprintReadOnly, BindWidgetOptional The item's rarity diamonds. Optional; the name is coloured by rarity either way.
Title Text TitleText TObjectPtr<UCommonTextBlock> BlueprintReadOnly, BindWidgetOptional No description.
Height Box HeightBox TObjectPtr<USizeBox> BlueprintReadOnly, BindWidgetOptional Collapses the row's height across the outro, and without it the stack pops. A VerticalBox reflows the instant a child is removed, so a row in the middle vanishing would snap the ones below it upwards.
Content Root ContentRoot TObjectPtr<UWidget> BlueprintReadOnly, BindWidgetOptional The content inside the frame. Carries the entrance scale pop.
Intro Duration IntroDuration float XenoCore › Collectable › Badge EditDefaultsOnly, ClampMin=0.01 0.22 Seconds the row takes to slide and fade in.
Hold Duration HoldDuration float XenoCore › Collectable › Badge EditDefaultsOnly, ClampMin=0.0 2.56 Seconds the row stays fully shown between intro and outro.
Outro Duration OutroDuration float XenoCore › Collectable › Badge EditDefaultsOnly, ClampMin=0.01 0.22 Seconds the row takes to fade out and collapse its height.
Slide From SlideFrom float XenoCore › Collectable › Badge EditDefaultsOnly 260.0 How far right the row starts, in pixels. Positive slides in from the right edge.
Row Height RowHeight float XenoCore › Collectable › Badge EditDefaultsOnly, ClampMin=0.0 84.0 Fallback height to collapse from, used only if the row's own desired size cannot be read. The row normally sizes to its content, so this is a floor, not a layout value.
Badge Width BadgeWidth float XenoCore › Collectable › Badge EditDefaultsOnly, ClampMin=80.0 520.0 Every badge is this wide, whatever the item is called.
Overshoot Overshoot float XenoCore › Collectable › Badge EditDefaultsOnly, ClampMin=0.0, ClampMax=0.5 0.08 How far past its resting place the entrance carries before settling, as a fraction of the slide. Zero is a plain ease-out.
Icon Size IconSize float XenoCore › Collectable › Badge EditDefaultsOnly, ClampMin=8.0 56.0 The category glyph's size, in pixels.
Title Title FText XenoCore › Collectable › Badge EditDefaultsOnly NSLOCTEXT("XenoCoreCollectable", "ItemCollected", "ITEM C... The line above the name.
Icon Set IconSet TObjectPtr<const class UXenoCoreItemIconSet> XenoCore › UI EditDefaultsOnly Where a category's glyph comes from.

Blueprint functions

Node Kind Signature Description
Show Item Callable void ShowItem(ULyraInventoryItemInstance* Item) Fill the row and start its clock.
Is Finished Pure bool IsFinished() const True once the outro has finished and the stack may drop this row.
On Item Shown Event (overridable) void OnItemShown(ULyraInventoryItemInstance* Item) Repaints the bound widgets.

UXenoCoreItemBadgeStackBase

Class · derives from UCommonUserWidget · header XenoCoreRuntime/Public/UI/XenoCoreItemBadgeBase.h · abstract

The middle-right stack. Holds up to MaxRows badges, newest at the bottom, each self-timing.

Properties

Property C++ name Type Category Specifiers Default Description
Row Box RowBox TObjectPtr<UVerticalBox> BlueprintReadOnly, BindWidgetOptional The rows live here. A VerticalBox so they stack in arrival order without any maths.
Row Class RowClass TSubclassOf<UXenoCoreItemBadgeBase> XenoCore › Collectable › Badge EditDefaultsOnly What to spawn per pickup.
Max Rows MaxRows int32 XenoCore › Collectable › Badge EditDefaultsOnly, ClampMin=1 4 Oldest rows are dropped past this. Grabbing a fistful of orbs should not paper the screen.

Blueprint functions

Node Kind Signature Description
Push Item Callable void PushItem(ULyraInventoryItemInstance* Item) Show a badge now.

UXenoCoreItemSortControl

Class · derives from UCommonUserWidget · header XenoCoreRuntime/Public/UI/XenoCoreItemSortControl.h · Blueprintable

Y-to-sort for an item list. Place it on a screen, set Target List Name, and route Set List Items through Sort Items.

Properties

Property C++ name Type Category Specifiers Default Description
Modes Modes TArray<EXenoCoreItemSort> XenoCore › Sort EditAnywhere, BlueprintReadOnly { EXenoCoreItemSort::Default, EXenoCoreItemSort::Rarity, ... The modes Y cycles through, in order. The first is where a freshly opened screen starts.
Sort Action SortAction FDataTableRowHandle XenoCore › Sort EditAnywhere The input that cycles the sort - DT_XenoCore_Actions' MerchantSort row (Y), shared with the shop. Unset = no sort, silently.
Target List Name TargetListName FName XenoCore › Sort EditAnywhere "ItemList" The UListView, by widget name in the same screen, that Y re-sorts in place.
Prompt Format PromptFormat FText XenoCore › Sort EditAnywhere The action bar wording. {0} is the mode's name - "Sort: Rarity".

Events you can bind

Event Type Description
OnSortChanged FXenoCoreItemSortChanged After every change of mode, for a screen that wants to react (a header, a sound).

Blueprint functions

Node Kind Signature Description
Get Sort Mode Pure EXenoCoreItemSort GetSortMode() const The current mode.
Sort Items Pure TArray<ULyraInventoryItemInstance*> SortItems(const TArray<ULyraInventoryItemInstance*>& Items) const Items in the current mode's order.
Cycle Sort Callable void CycleSort() Next mode in Modes, re-sorts the target list, updates the prompt.
Set Sort Mode Callable void SetSortMode(EXenoCoreItemSort NewMode) Jump to a mode (it need not be in Modes).
Sort Item Instances Pure TArray<ULyraInventoryItemInstance*> SortItemInstances(const TArray<ULyraInventoryItemInstance*>& Items, EXenoCoreItemSort Mode) The one ordering rule, for any caller.

UXenoCoreListWrap

Class · derives from UObject · header XenoCoreRuntime/Public/UI/XenoCoreMenuStatics.h

The object a list view's custom navigation rule is bound to - a dynamic delegate needs a ufunction on a live UObject, and UListView has none of the right shape.

UXenoCoreListWrapSubsystem

Class · derives from UGameInstanceSubsystem · header XenoCoreRuntime/Public/UI/XenoCoreMenuStatics.h

No description.

UXenoCoreLoadingScreenBase

Class · derives from UUserWidget · header XenoCoreRuntime/Public/UI/XenoCoreLoadingScreenBase.h · abstract · Blueprintable

Loading screen: an animated "loading..." word. Named by LoadingScreenWidget in DefaultGame.ini; ULoadingScreenManager adds it straight to the viewport, so it is a plain UUserWidget.

Properties

Property C++ name Type Category Specifiers Default Description
Loading Word LoadingWord FText XenoCore › Loading EditDefaultsOnly NSLOCTEXT("XenoCoreLoading", "Loading", "LOADING") The word, without dots.
Dot Interval DotInterval float XenoCore › Loading EditDefaultsOnly, ClampMin=0.05, Units=s 0.4 Seconds per dot; three dots then a blank beat.
Loading Text LoadingText TObjectPtr<UTextBlock> XenoCore › Loading BlueprintReadOnly, BindWidget No description.

UXenoCoreLogoBootScreenBase

Class · derives from UXenoCoreBootScreenBase · header XenoCoreRuntime/Public/UI/XenoCoreLogoBootScreenBase.h · abstract · Blueprintable

A boot card whose letters spread apart as it appears, slowing as they settle.

Properties

Property C++ name Type Category Specifiers Default Description
Spread From Spacing SpreadFromSpacing int32 XenoCore › Boot EditDefaultsOnly 40 Letter spacing the text starts at, in Slate's 1/1000 em.
Spread Time SpreadTime float XenoCore › Boot EditDefaultsOnly, ClampMin=0.01, Units=s 3.2 How long the spread takes to settle. Longer than the fade-in, so it is still moving once visible.
Spread Ease Exponent SpreadEaseExponent float XenoCore › Boot EditDefaultsOnly, ClampMin=1.0 4.0 Ease-out exponent: 1 is linear, higher starts faster and settles more slowly.

UXenoCoreMainMenuBase

Class · derives from UCommonActivatableWidget · header XenoCoreRuntime/Public/UI/XenoCoreMainMenuBase.h · Blueprintable

The main menu: entries on the left, party cards, gold and play time, and the highlighted entry's description.

Properties

Property C++ name Type Category Specifiers Default Description
Card Class CardClass TSubclassOf<UXenoCorePartyCardBase> XenoCore › Menu EditDefaultsOnly, BlueprintReadOnly The card drawn for each active party member. The native class builds its own default look.
Card Slots CardSlots int32 XenoCore › Menu EditDefaultsOnly, BlueprintReadOnly, ClampMin=1 7 How many equal card slots the row is divided into. Match the party's maximum active members.
Card Spacing CardSpacing float XenoCore › Menu EditDefaultsOnly, BlueprintReadOnly, ClampMin=0 10.0 The gap between two cards.
Play Intro bPlayIntro bool XenoCore › Intro EditDefaultsOnly, BlueprintReadOnly true Play the opening animation each time the menu opens.
Fade In Duration FadeInDuration float XenoCore › Intro EditDefaultsOnly, BlueprintReadOnly, ClampMin=0 0.15 How long the whole menu takes to fade in.
Entries Slide Duration EntriesSlideDuration float XenoCore › Intro EditDefaultsOnly, BlueprintReadOnly, ClampMin=0 0.25 How long the entry list takes to slide in from the left.
Entries Slide Distance EntriesSlideDistance float XenoCore › Intro EditDefaultsOnly, BlueprintReadOnly 60.0 How far the entry list slides in from the left, in Slate units.
Card Duration CardDuration float XenoCore › Intro EditDefaultsOnly, BlueprintReadOnly, ClampMin=0 0.3 Each card rises and fades in over this long...
Card Rise Distance CardRiseDistance float XenoCore › Intro EditDefaultsOnly, BlueprintReadOnly 40.0 ...this far...
Card Stagger CardStagger float XenoCore › Intro EditDefaultsOnly, BlueprintReadOnly, ClampMin=0 0.04 ...starting this long after the card before it, leader first.
Buttons Box ButtonsBox TObjectPtr<UPanelWidget> XenoCore › Menu BlueprintReadOnly, BindWidgetOptional The panel the shell's graph builds the entry buttons into.
Card Row CardRow TObjectPtr<UPanelWidget> XenoCore › Menu BlueprintReadOnly, BindWidgetOptional Where the party cards go - a Horizontal Box.
Gold Text GoldText TObjectPtr<UTextBlock> XenoCore › Menu BlueprintReadOnly, BindWidgetOptional "24,862 G".
Play Time Text PlayTimeText TObjectPtr<UTextBlock> XenoCore › Menu BlueprintReadOnly, BindWidgetOptional Play time, as the save screen prints it.
Description Text DescriptionText TObjectPtr<UTextBlock> XenoCore › Menu BlueprintReadOnly, BindWidgetOptional The highlighted entry's Description.

Blueprint functions

Node Kind Signature Description
Refresh Cards Callable void RefreshCards() Redraws the party cards - call after anything changes the party while the menu is open.

UXenoCoreMenuAction

Class · derives from UObject · header XenoCoreRuntime/Public/UI/XenoCoreMenuEntry.h · abstract · Blueprintable · BlueprintType

What a menu entry does when pressed, when it is more than opening a screen. Subclass in Blueprint and override Run.

Blueprint functions

Node Kind Signature Description
Run Event (overridable) void Run(APlayerController* Player, UUserWidget* Menu) const Runs the entry.

UXenoCoreMenuAction_OpenArts

Class · derives from UXenoCoreMenuAction · header XenoCoreRuntime/Public/UI/XenoCoreMenuEntry.h

Opens the Arts screen set in XenoCore UI settings.

UXenoCoreMenuAction_OpenLoadScreen

Class · derives from UXenoCoreMenuAction · header XenoCoreRuntime/Public/UI/XenoCoreMenuEntry.h

Opens the save screen in Load mode.

UXenoCoreMenuAction_OpenQuestLog

Class · derives from UXenoCoreMenuAction · header XenoCoreRuntime/Public/UI/XenoCoreMenuEntry.h

Opens the quest log set in XenoCore UI settings.

UXenoCoreMenuAction_OpenSaveScreen

Class · derives from UXenoCoreMenuAction · header XenoCoreRuntime/Public/UI/XenoCoreMenuEntry.h

Opens the save screen in Save mode.

UXenoCoreMenuAction_OpenSkills

Class · derives from UXenoCoreMenuAction · header XenoCoreRuntime/Public/UI/XenoCoreMenuEntry.h

Opens the Skills screen set in XenoCore UI settings.

UXenoCoreMenuAction_QuitGame

Class · derives from UXenoCoreMenuAction · header XenoCoreRuntime/Public/UI/XenoCoreMenuEntry.h

Quits the game, asking first if there is unsaved progress.

UXenoCoreMenuAction_ReturnToTitle

Class · derives from UXenoCoreMenuAction · header XenoCoreRuntime/Public/UI/XenoCoreMenuEntry.h

Returns to the title screen, asking first if there is unsaved progress.

UXenoCoreMenuCondition

Class · derives from UObject · header XenoCoreRuntime/Public/UI/XenoCoreMenuEntry.h · abstract · Blueprintable · BlueprintType

Decides whether a menu entry is shown. Subclass in Blueprint and override Is Visible.

Blueprint functions

Node Kind Signature Description
Is Visible Event (overridable) bool IsVisible(APlayerController* Player) const True to show the entry.

UXenoCoreMenuEntryButton

Class · derives from UCommonButtonBase · header XenoCoreRuntime/Public/UI/XenoCoreMenuEntryButton.h · Blueprintable

A main-menu entry button styled like a Party Tactics row. The default Menu Button Class.

Properties

Property C++ name Type Category Specifiers Default Description
Label Font LabelFont FSlateFontInfo XenoCore › Look EditDefaultsOnly, BlueprintReadOnly Font of the entry's label.
Text Colour TextColour FLinearColor XenoCore › Look EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.92, 0.95, 1.0, 1.0) Label colour while the entry is highlighted.
Dim Colour DimColour FLinearColor XenoCore › Look EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.55, 0.62, 0.72, 1.0) Label colour while the entry is not highlighted.
Highlight Colour HighlightColour FLinearColor XenoCore › Look EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.25, 0.55, 0.95, 0.3) Row fill drawn behind a highlighted entry.
Accent Colour AccentColour FLinearColor XenoCore › Look EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.3, 0.62, 1.0, 1.0) Colour of the accent stripe at the edge of a highlighted entry.
Row Row TObjectPtr<UBorder> XenoCore › Menu BlueprintReadOnly, BindWidgetOptional No description.
Stripe Stripe TObjectPtr<UBorder> XenoCore › Menu BlueprintReadOnly, BindWidgetOptional No description.
Label Text LabelText TObjectPtr<UTextBlock> XenoCore › Menu BlueprintReadOnly, BindWidgetOptional No description.

UXenoCoreMenuEntrySet

Class · derives from UPrimaryDataAsset · header XenoCoreRuntime/Public/UI/XenoCoreMenuEntry.h · BlueprintType

A list of menu entries kept in its own asset, named from Project Settings > XenoCore UI > Additional Menu Entry Sets.

Properties

Property C++ name Type Category Specifiers Default Description
Entries Entries TArray<FXenoCoreMenuEntry> Menu EditAnywhere, BlueprintReadOnly The entries this set adds, or replaces by Id.

UXenoCoreMenuStatics

Class · derives from UBlueprintFunctionLibrary · header XenoCoreRuntime/Public/UI/XenoCoreMenuStatics.h

Menu plumbing a Blueprint screen cannot do by itself.

Blueprint functions

Node Kind Signature Description
Wrap List View Callable void WrapListView(UListView* List) Make a list view wrap: Down past the last item lands on the first, Up past the first on the last.
Build Menu Callable int32 BuildMenu(UUserWidget* Menu, UPanelWidget* Container) Fill a menu panel with one button per visible menu entry (Project Settings > XenoCore UI > Menu Entries), in sort order.
Get First Menu Button Pure UWidget* GetFirstMenuButton(UPanelWidget* Container) The first button in a menu panel - what a menu should focus when it opens.
Build Menu In Panel Callable int32 BuildMenuInPanel(UUserWidget* Menu, FName PanelName = "ButtonsBox") No description.
Get First Menu Button In Panel Pure UWidget* GetFirstMenuButtonInPanel(UUserWidget* Menu, FName PanelName = "ButtonsBox") No description.
Get Menu Entries Callable TArray<FXenoCoreMenuEntry> GetMenuEntries(APlayerController* Player) The menu entries a player should see now: every configured entry and entry set merged by Id, hidden and failed-condition entries dropped, sorted by Sort Order.
Activate Menu Entry Callable void ActivateMenuEntry(UUserWidget* Menu, const FXenoCoreMenuEntry& Entry) Do what pressing an entry does: run its Action, else push its Screen onto its layer.

UXenoCoreMovieBootScreenBase

Class · derives from UXenoCoreBootScreenBase · header XenoCoreRuntime/Public/UI/XenoCoreMovieBootScreenBase.h · abstract · Blueprintable

A boot card that plays a clip full screen, and holds until the clip ends.

Properties

Property C++ name Type Category Specifiers Default Description
Movie Movie TObjectPtr<UMediaSource> XenoCore › Boot EditDefaultsOnly The clip.
Movie Image MovieImage TObjectPtr<UImage> XenoCore › Boot BlueprintReadOnly, BindWidget Draws the clip. Its brush is replaced at runtime; its size and alignment are the widget's.

UXenoCorePartyCardBase

Class · derives from UUserWidget · header XenoCoreRuntime/Public/UI/XenoCorePartyCardBase.h · Blueprintable

One party member's card on the main menu: slot, portrait, skill tree, name, level and HP.

Properties

Property C++ name Type Category Specifiers Default Description
Card Width CardWidth float XenoCore › Look EditDefaultsOnly, BlueprintReadOnly, ClampMin=0 0.0 A fixed card width, or 0 to fill the slot the main menu gives each card (one Card Slots-th of the row).
Portrait Crop PortraitCrop float XenoCore › Look EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.1, ClampMax=1.0 0.55 Fraction of the portrait shown, from the top. 1 shows the whole body; smaller zooms in on the face.
Frame Colour FrameColour FLinearColor XenoCore › Look EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.02, 0.03, 0.05, 0.85) The card's background fill.
Outline Colour OutlineColour FLinearColor XenoCore › Look EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.3, 0.62, 1.0, 0.45) The card's outline, for every member but the leader.
Leader Outline Colour LeaderOutlineColour FLinearColor XenoCore › Look EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.3, 0.62, 1.0, 1.0) The leader's outline - the accent at full strength.
Portrait Back Colour PortraitBackColour FLinearColor XenoCore › Look EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.05, 0.09, 0.16, 0.7) Behind the portrait, so a cut-out render reads against something.
Band Colour BandColour FLinearColor XenoCore › Look EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.1, 0.18, 0.32, 0.85) The band the name block sits on - the tactics title band.
Accent Colour AccentColour FLinearColor XenoCore › Look EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.3, 0.62, 1.0, 1.0) The skill tree line and "Leader".
Text Colour TextColour FLinearColor XenoCore › Look EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.92, 0.95, 1.0, 1.0) The slot number, the name and the Lv/HP values.
Label Colour LabelColour FLinearColor XenoCore › Look EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.55, 0.62, 0.72, 1.0) The Lv and HP labels.
Divider Colour DividerColour FLinearColor XenoCore › Look EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.55, 0.62, 0.72, 0.35) The rule between the name and the Lv/HP block.
Frame Frame TObjectPtr<UBorder> XenoCore › Menu BlueprintReadOnly, BindWidgetOptional No description.
Portrait Image PortraitImage TObjectPtr<UImage> XenoCore › Menu BlueprintReadOnly, BindWidgetOptional No description.
Slot Text SlotText TObjectPtr<UTextBlock> XenoCore › Menu BlueprintReadOnly, BindWidgetOptional No description.
Leader Text LeaderText TObjectPtr<UTextBlock> XenoCore › Menu BlueprintReadOnly, BindWidgetOptional No description.
Branch Text BranchText TObjectPtr<UTextBlock> XenoCore › Menu BlueprintReadOnly, BindWidgetOptional No description.
Name Text NameText TObjectPtr<UTextBlock> XenoCore › Menu BlueprintReadOnly, BindWidgetOptional No description.
Level Value Text LevelValueText TObjectPtr<UTextBlock> XenoCore › Menu BlueprintReadOnly, BindWidgetOptional No description.
Health Value Text HealthValueText TObjectPtr<UTextBlock> XenoCore › Menu BlueprintReadOnly, BindWidgetOptional No description.

Blueprint functions

Node Kind Signature Description
Set Member Callable void SetMember(UXenoCorePartyMemberDefinition* InMember, int32 InSlotIndex) Draws this member in this slot (0 is the leader's).
Get Member Pure UXenoCorePartyMemberDefinition* GetMember() const The member this card is drawing, or null for an empty card.
On Member Set Event (implement in Blueprint) void OnMemberSet(const FXenoCorePartyRowInfo& Info, int32 InSlotIndex) Called after the card has drawn a member - restyle or add to it here.

UXenoCorePartyGaugeWidget

Class · derives from UCommonUserWidget · header XenoCoreRuntime/Public/UI/XenoCorePartyGaugeWidget.h · Blueprintable

The Party Gauge readout: one framed bar per Party Gauge bar, filled from XenoCore.PartyGauge.Message.Changed.

Properties

Property C++ name Type Category Specifiers Default Description
Segment Box SegmentBox TObjectPtr<UHorizontalBox> XenoCore › PartyGauge BlueprintReadOnly, BindWidgetOptional Optional: where the segments go. A native instance builds its own.
Effect Box EffectBox TObjectPtr<UOverlay> XenoCore › PartyGauge BlueprintReadOnly, BindWidgetOptional Optional: where FullEffect is drawn, over the segments. A native instance builds its own.
Segment Size SegmentSize FVector2D XenoCore › PartyGauge › Layout EditAnywhere, BlueprintReadOnly FVector2D(180.0, 28.0) One segment's size, frame included.
Segment Gap SegmentGap float XenoCore › PartyGauge › Layout EditAnywhere, BlueprintReadOnly, ClampMin=0.0 10.0 The gap between segments.
Corner Radius CornerRadius float XenoCore › PartyGauge › Layout EditAnywhere, BlueprintReadOnly, ClampMin=0.0 6.0 Corner radius of each segment's frame.
Fill Inset FillInset float XenoCore › PartyGauge › Layout EditAnywhere, BlueprintReadOnly, ClampMin=0.0 4.0 How far the fill sits inside the frame.
Full Colour FullColour FLinearColor XenoCore › PartyGauge › Colour EditAnywhere, BlueprintReadOnly FLinearColor(0.12, 0.62, 1.0, 1.0) A full, spendable bar.
Filling Colour FillingColour FLinearColor XenoCore › PartyGauge › Colour EditAnywhere, BlueprintReadOnly FLinearColor(0.08, 0.3, 0.62, 1.0) The bar that is still filling.
Empty Colour EmptyColour FLinearColor XenoCore › PartyGauge › Colour EditAnywhere, BlueprintReadOnly FLinearColor(0.015, 0.025, 0.045, 0.85) An empty segment's track.
Frame Colour FrameColour FLinearColor XenoCore › PartyGauge › Colour EditAnywhere, BlueprintReadOnly FLinearColor(0.62, 0.82, 1.0, 0.85) The frame's outline.
Frame Width FrameWidth float XenoCore › PartyGauge › Colour EditAnywhere, BlueprintReadOnly, ClampMin=0.0 2.0 Thickness of the frame around each bar, in slate units.
Gloss Opacity GlossOpacity float XenoCore › PartyGauge › Colour EditAnywhere, BlueprintReadOnly, ClampMin=0.0, ClampMax=1.0 0.22 The highlight across the top half of the fill. 0 turns it off.
Shadow Colour ShadowColour FLinearColor XenoCore › PartyGauge › Shadow EditAnywhere, BlueprintReadOnly FLinearColor(0.0, 0.0, 0.0, 0.6) The drop shadow. Two layers: this colour at this offset, and a wider, fainter one under it.
Shadow Offset ShadowOffset FVector2D XenoCore › PartyGauge › Shadow EditAnywhere, BlueprintReadOnly FVector2D(4.0, 6.0) Offset of the drop shadow from the bar, in slate units.
Glow Colour GlowColour FLinearColor XenoCore › PartyGauge › Glow EditAnywhere, BlueprintReadOnly FLinearColor(0.55, 0.9, 1.0, 1.0) The glow behind a full bar: flashes as it fills, then breathes while it stays full.
Pulse Speed PulseSpeed float XenoCore › PartyGauge › Glow EditAnywhere, BlueprintReadOnly, ClampMin=0.0 1.2 Breaths per second while a bar is full. 0 holds it steady.
Ready Pulse Colour ReadyPulseColour FLinearColor XenoCore › PartyGauge › Ready EditAnywhere, BlueprintReadOnly FLinearColor(0.8, 0.97, 1.0, 1.0) The colour the fills pulse toward while every bar is full.
Halo Colour HaloColour FLinearColor XenoCore › PartyGauge › Ready EditAnywhere, BlueprintReadOnly FLinearColor(0.35, 0.8, 1.0, 0.55) The halo behind the whole gauge while every bar is full. Alpha is its brightest.
Ready Pulse Speed ReadyPulseSpeed float XenoCore › PartyGauge › Ready EditAnywhere, BlueprintReadOnly, ClampMin=0.0 1.8 Pulses per second while every bar is full.
Refused Colour RefusedColour FLinearColor XenoCore › PartyGauge › Refused EditAnywhere, BlueprintReadOnly FLinearColor(0.85, 0.1, 0.08, 1.0) Bars that are not full flash this colour when a spend is refused.
Refused Seconds RefusedSeconds float XenoCore › PartyGauge › Refused EditAnywhere, BlueprintReadOnly, ClampMin=0.0 0.5 Seconds the refusal flash and shake last. 0 turns both off.
Refused Shake RefusedShake float XenoCore › PartyGauge › Refused EditAnywhere, BlueprintReadOnly, ClampMin=0.0 7.0 How far the readout shakes sideways, in slate units. 0 flashes without shaking.
Fill Speed FillSpeed float XenoCore › PartyGauge EditAnywhere, BlueprintReadOnly, ClampMin=0.0 400.0 How fast the displayed points chase the real ones, in points per second. 0 snaps.
Full Effect FullEffect TObjectPtr<UNiagaraSystem> XenoCore › PartyGauge › Effect EditAnywhere, BlueprintReadOnly Played once as the last bar fills. Must use the Niagara UI Renderer's UI Sprite Renderer.
Full Effect Scale FullEffectScale float XenoCore › PartyGauge › Effect EditAnywhere, BlueprintReadOnly, ClampMin=0.01 1.0 Niagara units to UI pixels.
Full Effect Duration FullEffectDuration float XenoCore › PartyGauge › Effect EditAnywhere, BlueprintReadOnly, ClampMin=0.1 2.0 How long the effect's widget is kept before it is removed.

Blueprint functions

Node Kind Signature Description
Play Full Effect Callable void PlayFullEffect() Play FullEffect now, whatever the gauge holds - for previews and tests.
On Bar Filled Event (implement in Blueprint) void OnBarFilled(int32 BarIndex) A bar just became full.
On Gauge Full Event (implement in Blueprint) void OnGaugeFull() Every bar is full - a Chain Attack is ready.
On Spend Refused Event (implement in Blueprint) void OnSpendRefused() A spend was refused.

UXenoCorePartyJoinBannerBase

Class · derives from UCommonUserWidget · header XenoCoreRuntime/Public/UI/XenoCorePartyJoinBannerBase.h · abstract

"<Name> joined the party" - the flourish shown on returning to gameplay after a party change.

Properties

Property C++ name Type Category Specifiers Default Description
Banner Root BannerRoot TObjectPtr<UWidget> BlueprintReadOnly, BindWidgetOptional Everything that moves. Slid and faded as one, so the parts cannot drift apart.
Portrait Image PortraitImage TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional No description.
Name Text NameText TObjectPtr<UCommonTextBlock> BlueprintReadOnly, BindWidgetOptional No description.
Role Text RoleText TObjectPtr<UCommonTextBlock> BlueprintReadOnly, BindWidgetOptional No description.
Title Text TitleText TObjectPtr<UCommonTextBlock> BlueprintReadOnly, BindWidgetOptional No description.
Flash Image FlashImage TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional The burst behind the portrait: scales out and fades on entry.
Intro Duration IntroDuration float XenoCore › Party › Banner EditDefaultsOnly, ClampMin=0.01 0.42 Seconds for the banner to slide and fade in.
Hold Duration HoldDuration float XenoCore › Party › Banner EditDefaultsOnly, ClampMin=0.0 1.9 Seconds the banner stays at rest before leaving.
Outro Duration OutroDuration float XenoCore › Party › Banner EditDefaultsOnly, ClampMin=0.01 0.3 Seconds for the banner to fade out.
Slide From SlideFrom float XenoCore › Party › Banner EditDefaultsOnly -420.0 How far left the banner starts, in pixels. Negative slides in from the left edge.
Overshoot Overshoot float XenoCore › Party › Banner EditDefaultsOnly, ClampMin=0.0, ClampMax=0.5 0.08 How far past its resting place the entrance carries before settling, as a fraction of the slide. Zero is a plain ease-out.
Joined Title JoinedTitle FText XenoCore › Party › Banner EditDefaultsOnly NSLOCTEXT("XenoCoreParty", "JoinedTitle", "JOINED THE PAR... The line above the name when a member joins.
Left Title LeftTitle FText XenoCore › Party › Banner EditDefaultsOnly NSLOCTEXT("XenoCoreParty", "LeftTitle", "LEFT THE PARTY") The line above the name when a member leaves.
Joined Accent JoinedAccent FLinearColor XenoCore › Party › Banner EditDefaultsOnly FLinearColor(0.41, 0.75, 0.78, 1.0) Accent for the title and the burst when a member joins, so the two readings are told apart at a glance.
Left Accent LeftAccent FLinearColor XenoCore › Party › Banner EditDefaultsOnly FLinearColor(0.8, 0.55, 0.35, 1.0) Accent for the title and the burst when a member leaves.
Effect Layer EffectLayer TObjectPtr<UCanvasPanel> BlueprintReadOnly, BindWidgetOptional Behind the banner: where JoinedEffect draws.
Joined Effect JoinedEffect FXenoCoreUIEffect XenoCore › Party › Banner EditDefaultsOnly The burst a join plays. A member leaving plays none.
Join Sound JoinSound TObjectPtr<USoundBase> XenoCore › Party › Banner EditDefaultsOnly Played once as the banner starts. Left unset ships silent rather than borrowing a cue.

Blueprint functions

Node Kind Signature Description
Play Notice Callable void PlayNotice(const FXenoCorePartyNotice& Notice) Play one announcement.
Is Playing Pure bool IsPlaying() const True while a banner is on screen.
On Notice Started Event (overridable) void OnNoticeStarted(const UXenoCorePartyMemberDefinition* Member, EXenoCorePartyNoticeType Type) Repaints the bound widgets.

UXenoCorePartyMemberPlateBase

Class · derives from UXenoCorePlayerPlateBase · header XenoCoreRuntime/Public/UI/XenoCorePartyMemberPlateBase.h · abstract

One row of the party column. Slot 0 is the leader; slots 1..N are the companions.

Properties

Property C++ name Type Category Specifiers Default Description
Party Slot PartySlot int32 XenoCore › Party EditAnywhere, BlueprintReadOnly, ClampMin=0 0 Which row this is. Instance-editable so a designer sets it on the placed widget rather than needing a Blueprint per row.
Auto Centre Column bAutoCentreColumn bool XenoCore › Party EditAnywhere, BlueprintReadOnly true Keep the column centred on the left edge as the party grows and shrinks.
Column Pitch ColumnPitch float XenoCore › Party EditAnywhere, BlueprintReadOnly, ClampMin=1.0 144.0 Vertical distance between rows, in slate units. Measured from the authored layout - the seven plates sit at y = 46, 190, 334, 479, 623, 767, 911 - rather than chosen.
Row Show Stagger RowShowStagger float XenoCore › Party EditAnywhere, BlueprintReadOnly, ClampMin=0.0 0.05 Seconds of extra delay per row before the slide-in starts, so the column is dealt out rather than appearing as one block. Multiplied by PartySlot, so row 0 leads and never waits.
Leader Display Name LeaderDisplayName FText XenoCore › Party EditAnywhere, BlueprintReadOnly Name shown on the leader's row only. Companions take theirs from their definition.
Grey When Downed bGreyWhenDowned bool XenoCore › Party › Downed EditAnywhere, BlueprintReadOnly true Grey the row out while its character is downed.
Downed Portrait Tint DownedPortraitTint FLinearColor XenoCore › Party › Downed EditAnywhere, BlueprintReadOnly FLinearColor(0.3, 0.3, 0.34, 1.0) Multiplied over the portrait while downed.
Downed Text Colour DownedTextColour FLinearColor XenoCore › Party › Downed EditAnywhere, BlueprintReadOnly FLinearColor(0.46, 0.46, 0.5, 1.0) The name, level and HP text while downed.
Downed Health Bar Opacity DownedHealthBarOpacity float XenoCore › Party › Downed EditAnywhere, BlueprintReadOnly, ClampMin=0.0, ClampMax=1.0 0.45 The health bar's opacity while downed.
Name Text NameText TObjectPtr<UCommonTextBlock> BlueprintReadOnly, BindWidgetOptional BindWidgetOptional: a row that shows no name should not be a compile error.
Party Gauge PartyGauge TObjectPtr<UWidget> BlueprintReadOnly, BindWidgetOptional The Party Gauge, shown on the leader's row (slot 0) only.
Portrait Image PortraitImage TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional The character's face.
Status Icon Box StatusIconBox TObjectPtr<class UPanelWidget> BlueprintReadOnly, BindWidgetOptional The character's active statuses, one icon each, beside the plate.
Status Icon Size StatusIconSize float XenoCore › Party › Status EditAnywhere, ClampMin=8.0 30.0 Size of each status icon, in Slate units.
Status Refresh Interval StatusRefreshInterval float XenoCore › Party › Status EditAnywhere, ClampMin=0.05 0.2 Seconds between re-reads of the character's active statuses.
Switch Slide Seconds SwitchSlideSeconds float XenoCore › Party › Switch EditAnywhere, BlueprintReadOnly, ClampMin=0.0 0.22 Seconds a row takes to slide from where its character sat before a leader switch. 0 snaps.
Switch Reveal Seconds SwitchRevealSeconds float XenoCore › Party › Switch EditAnywhere, BlueprintReadOnly, ClampMin=0.0 1.2 Seconds the column stays up after a leader switch outside battle.

Blueprint functions

Node Kind Signature Description
Get Party Slot Pure int32 GetPartySlot() const Which row this is.
Apply Column Layout Callable void ApplyColumnLayout() Re-anchors this row so the column stays vertically centred on the left edge whatever the party size is.
Get Slot Pawn Pure APawn* GetSlotPawn() const The pawn this row shows - the player for slot 0, a companion otherwise.
Get Slot Member Pure AXenoCoreCombatantCharacter* GetSlotMember() const The companion in this slot, or null for slot 0 and for empty slots.
Get Slot Display Name Pure FText GetSlotDisplayName() const What this row calls its character.
Refresh Slot Callable void RefreshSlot() Re-reads who is in this slot and repaints.
Is Showing Downed Pure bool IsShowingDowned() const True while this row shows a downed character.
On Downed Changed Event (implement in Blueprint) void OnDownedChanged(bool bDowned) The row just went grey (true) or came back (false).
On Switch Slide Event (implement in Blueprint) void OnSwitchSlide(int32 FromSlot) This row's character just arrived from row FromSlot on a leader switch.

UXenoCorePartyUIStatics

Class · derives from UBlueprintFunctionLibrary · header XenoCoreRuntime/Public/UI/XenoCorePartyUIStatics.h

The Party screen's read surface.

Blueprint functions

Node Kind Signature Description
Get Party Row Info Pure FXenoCorePartyRowInfo GetPartyRowInfo(UXenoCorePartyMemberDefinition* Member) Everything a row draws for one character.
Get Member In Slot Pure UXenoCorePartyMemberDefinition* GetMemberInSlot(int32 ActiveSlot) The character in an active slot, or null if the slot is empty or out of range.
Get Party Name With Level Pure FText GetPartyNameWithLevel(UXenoCorePartyMemberDefinition* Member) "Shulk Lv 24" - the name with the level beside it, for a stat block header.
Get Role Label Pure FText GetRoleLabel(EXenoCoreRole Role) The display name for a role.
Get Party Stat Lines Pure TArray<FXenoCoreStatLine> GetPartyStatLines(UXenoCorePartyMemberDefinition* Member) This character's statline as rows the equipment screen's stat block already knows how to draw.
Get Reserve Members Pure TArray<UXenoCorePartyMemberDefinition*> GetReserveMembers() Everyone recruited but not deployed - the right-hand pool the player chooses from.
Get Member Equipment Pure UXenoCoreEquipmentComponent* GetMemberEquipment(UXenoCorePartyMemberDefinition* Member) A character's equipment component, or null when they have no body.
Get Leader Member Pure UXenoCorePartyMemberDefinition* GetLeaderMember() The character the player is driving - what a character-scoped screen opens on.
Get Screen Pawn Pure APawn* GetScreenPawn(UXenoCorePartyMemberDefinition* Member) The pawn a character screen should read - the selected member's body, or the player's own when no member is selected.
Get Screen Equipment Pure UXenoCoreEquipmentComponent* GetScreenEquipment(UXenoCorePartyMemberDefinition* Member) The loadout a character screen should edit.
Get Adjacent Active Member Pure UXenoCorePartyMemberDefinition* GetAdjacentActiveMember(UXenoCorePartyMemberDefinition* Current, int32 Delta) The next active character along from Current, wrapping at both ends.
Get Member Portrait Texture Pure UTexture2D* GetMemberPortraitTexture(UXenoCorePartyMemberDefinition* Member) This character's portrait, loaded, or null.
Get Item Holder Portrait Pure UTexture2D* GetItemHolderPortrait(const ULyraInventoryItemInstance* Item) The portrait of whoever is wearing this item, loaded, or null if nobody is.
Get Take Item Prompt Pure FText GetTakeItemPrompt(const ULyraInventoryItemInstance* Item) "Unequip Red Sword from Quinn?" - the whole prompt, built here.
Equip Or Confirm Take Callable bool EquipOrConfirmTake(UXenoCoreEquipmentComponent* Equipment, EXenoCoreEquipSlot Slot, ULyraInventoryItemInstance* Item, UCommonActivatableWidget* ListToClose) Equip it, or ask first if it means stripping another character.

UXenoCorePlayerPlateBase

Class · derives from UXenoCoreHudPlateBase · header XenoCoreRuntime/Public/UI/XenoCorePlayerPlateBase.h · abstract

The upper-left player readout: portrait, level, HP bar and HP numbers.

Properties

Property C++ name Type Category Specifiers Default Description
Level Text LevelText TObjectPtr<UCommonTextBlock> BlueprintReadOnly, BindWidget BindWidget: the Blueprint must contain these names or it fails to compile - which is the intent, because a silently blank HUD is worse than a compile error.
Health Text HealthText TObjectPtr<UCommonTextBlock> BlueprintReadOnly, BindWidget No description.
Health Bar HealthBar TObjectPtr<UProgressBar> BlueprintReadOnly, BindWidget No description.
Exp Bar ExpBar TObjectPtr<UProgressBar> BlueprintReadOnly, BindWidgetOptional EXP toward the next level.
Portrait Box PortraitBox TObjectPtr<UWidget> BlueprintReadOnly, BindWidgetOptional Everything that is not the health bar, bound so bBarOnly can collapse it.
Portrait Overlay PortraitOverlay TObjectPtr<UWidget> BlueprintReadOnly, BindWidgetOptional No description.
Shadow Image ShadowImage TObjectPtr<UWidget> BlueprintReadOnly, BindWidgetOptional No description.
Exp Bar Box ExpBarBox TObjectPtr<UWidget> BlueprintReadOnly, BindWidgetOptional No description.
Bar Only bBarOnly bool XenoCore › UI EditDefaultsOnly false Bar only: collapse the portrait, level, HP figures and EXP bar, leaving just the health bar.
Reveal On Progression bRevealOnProgression bool XenoCore › UI EditDefaultsOnly false Whether an EXP award may raise this plate past its own gate.
Exp Reveal Time ExpRevealTime float XenoCore › UI EditDefaultsOnly, ClampMin=0.0 2.6 Seconds the HUD stays up after an EXP award outside battle, counted once the bar has finished filling.
Level Up Reveal Time LevelUpRevealTime float XenoCore › UI EditDefaultsOnly, ClampMin=0.0 4.0 The same window for a level-up, which earns a longer one.
Exp Gain Text ExpGainText TObjectPtr<class UTextBlock> XenoCore › UI BlueprintReadOnly, BindWidgetOptional "+200", beside the level number, while the award is being shown.
Exp Gain Colour ExpGainColour FLinearColor XenoCore › UI EditDefaultsOnly FLinearColor(0.95, 0.32, 0.3, 1.0) Colour of the EXP gain readout (XC1's EXP red). Label and number alike.
Reward Stack RewardStack TObjectPtr<UWidget> XenoCore › UI BlueprintReadOnly, BindWidgetOptional XC1's kill readout: EXP, AP and SP stacked beside the level, each labelled and coloured - "EXP 49 / AP 86 / SP 10". The group shows and hides as one; ExpGainText is its EXP number.
Ap Gain Text ApGainText TObjectPtr<class UTextBlock> XenoCore › UI BlueprintReadOnly, BindWidgetOptional No description.
Sp Gain Text SpGainText TObjectPtr<class UTextBlock> XenoCore › UI BlueprintReadOnly, BindWidgetOptional No description.
Ap Gain Colour ApGainColour FLinearColor XenoCore › UI EditDefaultsOnly FLinearColor(0.45, 0.92, 0.3, 1.0) Colour of the AP gain readout (XC1's AP green).
Sp Gain Colour SpGainColour FLinearColor XenoCore › UI EditDefaultsOnly FLinearColor(1.0, 0.62, 0.18, 1.0) Colour of the SP gain readout (XC1's SP orange).
Exp Fill Speed ExpFillSpeed float XenoCore › UI EditDefaultsOnly, ClampMin=0.01 0.7 How fast the EXP bar travels to a new value, in bar-fractions per second.
Exp Count Time ExpCountTime float XenoCore › UI EditDefaultsOnly, ClampMin=0.05 0.6 How long "+N" takes to count up from zero, in seconds.
Exp Gain Flash Colour ExpGainFlashColour FLinearColor XenoCore › UI EditDefaultsOnly FLinearColor(0.85, 1.0, 0.85, 1.0) "+N" starts at this colour and settles to ExpGainColour over ExpCountTime - the flash.
Exp Gain Pop Scale ExpGainPopScale float XenoCore › UI EditDefaultsOnly, ClampMin=1.0 1.35 "+N" pops in at this render scale and settles to 1. Render scale, so the row never re-lays out.
Level Pulse Scale LevelPulseScale float XenoCore › UI EditDefaultsOnly, ClampMin=1.0 1.6 The level number pulses to this scale and colour on every level gained, then settles.
Level Pulse Time LevelPulseTime float XenoCore › UI EditDefaultsOnly, ClampMin=0.05 0.7 Seconds the level-number pulse takes to settle back.
Level Pulse Colour LevelPulseColour FLinearColor XenoCore › UI EditDefaultsOnly FLinearColor(1.0, 0.82, 0.25, 1.0) Gold: a level is the achievement, the EXP only the progress toward it.
Exp Wrap Flash Colour ExpWrapFlashColour FLinearColor XenoCore › UI EditDefaultsOnly FLinearColor(1.0, 1.0, 1.0, 1.0) The EXP bar's fill flashes to this as it tops out, then fades back to its authored colour.
Exp Wrap Flash Time ExpWrapFlashTime float XenoCore › UI EditDefaultsOnly, ClampMin=0.05 0.35 Seconds the EXP bar's wrap flash takes to fade back.
Exp Gain Sound ExpGainSound TSoftObjectPtr<class USoundBase> XenoCore › UI EditDefaultsOnly TSoftObjectPtr<USoundBase>(FSoftObjectPath("/Game/Audio/S... Played once as "+N" starts counting, and again for each kill that stacks onto it.
Level Wrap Sound LevelWrapSound TSoftObjectPtr<class USoundBase> XenoCore › UI EditDefaultsOnly TSoftObjectPtr<USoundBase>(FSoftObjectPath("/Game/Audio/S... Played on every wrap, with the gold pulse - the level-up sound.
Hide Out Of Battle bHideOutOfBattle bool XenoCore › UI EditDefaultsOnly false Hide this plate whenever the owner is not in battle.
Healthy Colour HealthyColour FLinearColor XenoCore › HUD EditDefaultsOnly FLinearColor(0.3, 0.78, 0.42, 1.0) Fill colour at full health.
Warning Colour WarningColour FLinearColor XenoCore › HUD EditDefaultsOnly FLinearColor(0.92, 0.72, 0.16, 1.0) Fill colour at WarningFraction, blended toward from HealthyColour.
Critical Colour CriticalColour FLinearColor XenoCore › HUD EditDefaultsOnly FLinearColor(0.86, 0.13, 0.13, 1.0) Fill colour at zero, blended toward from WarningColour.
Warning Fraction WarningFraction float XenoCore › HUD EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0 0.5 Health fraction at which the colour has fully reached WarningColour.
Blink Fraction BlinkFraction float XenoCore › HUD EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0 0.25 Health fraction at or below which the bar blinks.
Blink Speed BlinkSpeed float XenoCore › HUD EditDefaultsOnly, ClampMin=0.0 2.4 Blink cycles per second.
Blink Depth BlinkDepth float XenoCore › HUD EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0 0.65 How far the blink dips the bar opacity. 0 = no blink, 1 = to fully transparent.
Ally Selector Box AllySelectorBox TObjectPtr<class UImage> BlueprintReadOnly, BindWidgetOptional The rounded yellow box around the HP line.
Ally Selector Arrow Up AllySelectorArrowUp TObjectPtr<class UImage> BlueprintReadOnly, BindWidgetOptional Scroll affordances - they say the party is cyclable, so they follow the box.
Ally Selector Arrow Down AllySelectorArrowDown TObjectPtr<class UImage> BlueprintReadOnly, BindWidgetOptional No description.
Ally Selector Pulse Period AllySelectorPulsePeriod float XenoCore › Plate EditDefaultsOnly, ClampMin=0.05 0.9 Seconds per pulse. Matched to the palette's selection ring so the two read as one language.
Ally Selector Pulse Min Opacity AllySelectorPulseMinOpacity float XenoCore › Plate EditDefaultsOnly, ClampMin=0.0, ClampMax=1.0 0.3 Dimmest point of the selector's pulse, as a fraction of full brightness.
Ally Selector Thickness AllySelectorThickness float XenoCore › Plate EditDefaultsOnly, ClampMin=0.5 4.0 Frame thickness.
Ally Selector Colour AllySelectorColour FLinearColor XenoCore › Plate EditDefaultsOnly FLinearColor(1.0, 0.82, 0.15, 1.0) The frame's colour at full brightness. The pulse multiplies the RGB and leaves A alone.

Blueprint functions

Node Kind Signature Description
Reveal Briefly Callable void RevealBriefly(float Seconds) Raise this plate past its own gate for a moment, then let it fall back.
Is Revealing Pure bool IsRevealing() const True while a RevealBriefly window is open.
Set Ally Selected Callable void SetAllySelected(bool bSelected, bool bCanCycle = false) Draws the ally-selection box around this plate's HP line.
Is Ally Selected Pure bool IsAllySelected() const True while the ally-selection box is drawn around this plate.

UXenoCorePreviewControls

Class · derives from UCommonUserWidget · header XenoCoreRuntime/Public/UI/XenoCorePreviewControls.h · Blueprintable

Place over the character preview: draws its Rotate / Zoom prompts and zooms on the mouse wheel.

Properties

Property C++ name Type Category Specifiers Default Description
Stick Action StickAction FDataTableRowHandle XenoCore › Preview EditAnywhere Gamepad prompt - DT_XenoCore_Actions' PreviewRotateZoom (right stick).
Mouse Rotate Action MouseRotateAction FDataTableRowHandle XenoCore › Preview EditAnywhere Keyboard-and-mouse rotate prompt - PreviewRotateMouse (drag).
Mouse Zoom Action MouseZoomAction FDataTableRowHandle XenoCore › Preview EditAnywhere Keyboard-and-mouse zoom prompt - PreviewZoomMouse (wheel).
Wheel Zoom Step WheelZoomStep float XenoCore › Preview EditAnywhere, BlueprintReadWrite, ClampMin=0.0 0.15 Zoom per wheel notch, in the stage's e-fold units (0.15 = about 16% a notch). 0 turns wheel zoom off.

UXenoCoreSaveUIStatics

Class · derives from UBlueprintFunctionLibrary · header XenoCoreRuntime/Public/UI/XenoCoreSaveUIStatics.h

What the Save and Load screens read.

Blueprint functions

Node Kind Signature Description
Get Save Rows Callable TArray<FXenoCoreSaveRowInfo> GetSaveRows(bool bSaveMode) Every row the screen draws, in the order XC1 lists them: the autosave first, then the manual slots.
Get Save Row Callable FXenoCoreSaveRowInfo GetSaveRow(int32 SlotIndex, bool bSaveMode) One row.
Can Save To Slot Pure bool CanSaveToSlot(int32 SlotIndex) Whether this row can be written to.
Open Save Menu Callable void OpenSaveMenu(bool bSaveMode) Push the slot list onto the menu layer, in Save or Load mode.
Return To Title Callable void ReturnToTitle() Ask, then leave the game for the title screen.
Quit Game Callable void QuitGame() Quit to desktop - asking first only if there is unsaved progress.
Get Save Confirm Text Pure FText GetSaveConfirmText(bool bSlotOccupied) The confirm line: "Overwrite save data?" or "Create new save data?".
Get Delete Confirm Text Pure FText GetDeleteConfirmText(const FXenoCoreSaveRowInfo& Row) The delete prompt's question, naming the file: "Delete Slot 2 (Lv 12 Shulk)?" or "Delete the Auto-save (Lv 12 Shulk)?".
Get Destructive Warning Text Pure FText GetDestructiveWarningText(bool bDelete) The line under a destructive confirm, drawn in the warning colour.

UXenoCoreShaderBootScreenBase

Class · derives from UXenoCoreBootScreenBase · header XenoCoreRuntime/Public/UI/XenoCoreShaderBootScreenBase.h · abstract · Blueprintable

"optimizing shaders" - held until the pipeline-state compile queue drains.

Properties

Property C++ name Type Category Specifiers Default Description
Minimum Show Time MinimumShowTime float XenoCore › Boot EditDefaultsOnly, ClampMin=0.0, Units=s 1.5 So a queue that empties a moment after the card appears does not flash it.
Progress Bar ProgressBar TObjectPtr<UProgressBar> XenoCore › Boot BlueprintReadOnly, BindWidgetOptional No description.
Percent Text PercentText TObjectPtr<UTextBlock> XenoCore › Boot BlueprintReadOnly, BindWidgetOptional "42%".

Blueprint functions

Node Kind Signature Description
Get Progress Pure float GetProgress() const 0..1.

UXenoCoreSkillsScreenBase

Class · derives from UXenoCoreCharacterMenuScreenBase · header XenoCoreRuntime/Public/UI/XenoCoreSkillsScreenBase.h · abstract · Blueprintable

The Skills screen - XC1's "Skill Trees", Skill Branches tab.

Properties

Property C++ name Type Category Specifiers Default Description
Title Text TitleText TObjectPtr<UTextBlock> XenoCore › Skills BlueprintReadOnly, BindWidgetOptional No description.
Setting Tab Text SettingTabText TObjectPtr<UTextBlock> XenoCore › Skills BlueprintReadOnly, BindWidgetOptional First tab - "Skill Branches".
Level Up Tab Text LevelUpTabText TObjectPtr<UTextBlock> XenoCore › Skills BlueprintReadOnly, BindWidgetOptional Second tab - "Skill Links" (not implemented yet). Collapsed while bShowSkillLinksTab is false.
Rows Box RowsBox TObjectPtr<UPanelWidget> XenoCore › Skills BlueprintReadOnly, BindWidgetOptional The card the tree is built into.
Slot Header SlotHeader TObjectPtr<UTextBlock> XenoCore › Skills BlueprintReadOnly, BindWidgetOptional The card's header line - the character's name.
Header Portrait HeaderPortrait TObjectPtr<UImage> XenoCore › Skills BlueprintReadOnly, BindWidgetOptional No description.
Empty List Text EmptyListText TObjectPtr<UTextBlock> XenoCore › Skills BlueprintReadOnly, BindWidgetOptional No description.
Details Name DetailsName TObjectPtr<UTextBlock> XenoCore › Skills BlueprintReadOnly, BindWidgetOptional No description.
Details Desc DetailsDesc TObjectPtr<UTextBlock> XenoCore › Skills BlueprintReadOnly, BindWidgetOptional No description.
Details Rich Desc DetailsRichDesc TObjectPtr<URichTextBlock> XenoCore › Skills BlueprintReadOnly, BindWidgetOptional No description.
Details Type Label DetailsTypeLabel TObjectPtr<UTextBlock> XenoCore › Skills BlueprintReadOnly, BindWidgetOptional "[Passive] Agility Up ... 15" - the stat and its Effect Value.
Details Type Value DetailsTypeValue TObjectPtr<UTextBlock> XenoCore › Skills BlueprintReadOnly, BindWidgetOptional No description.
Details Owned Label DetailsOwnedLabel TObjectPtr<UTextBlock> XenoCore › Skills BlueprintReadOnly, BindWidgetOptional "SP... 240 / 1,000" - ---- / ---- on a complete branch, as XC1 draws it.
Details Owned Value DetailsOwnedValue TObjectPtr<UTextBlock> XenoCore › Skills BlueprintReadOnly, BindWidgetOptional No description.
Details Stats Box DetailsStatsBox TObjectPtr<UPanelWidget> XenoCore › Skills BlueprintReadOnly, BindWidgetOptional Label/value lines under those two - Selected, Active, Affects.
Icon Set IconSet TObjectPtr<UXenoCoreSkillIconSet> XenoCore › Skills EditDefaultsOnly How every icon is drawn. DA_XenoCore_SkillIconSet.
Icon Class IconClass TSubclassOf<UXenoCoreSkillIconBase> XenoCore › Skills EditDefaultsOnly The icon cell. The native class draws itself; a Blueprint child with a tree replaces the look.
Header Class HeaderClass TSubclassOf<UXenoCoreSkillBranchHeaderBase> XenoCore › Skills EditDefaultsOnly The branch header cell drawn above each column. Empty uses the native header.
Header Style HeaderStyle TSubclassOf<UCommonButtonStyle> XenoCore › Skills EditDefaultsOnly The branch headers' button style - ButtonStyle_XenoCore_Menu, the project's row and button convention, so the selected branch reads as the same blue as every other selected row. Empty keeps the header's own plate colours.
Accept Action AcceptAction FDataTableRowHandle XenoCore › Skills EditDefaultsOnly A on an unselected branch - and the "Change Trait" glyph on the bar. GenericAccept.
Show Skill Links Tab bShowSkillLinksTab bool XenoCore › Skills EditDefaultsOnly false Show the Skill Links tab (not implemented yet). Off, the tab strip shows only Skill Branches and ZL/ZR bind nothing.
Medallion Size MedallionSize float XenoCore › Skills EditDefaultsOnly, ClampMin=16.0, UIMin=16.0 112.0 Size of the character portrait at the top of the card, in pixels.
Column Gap ColumnGap float XenoCore › Skills EditDefaultsOnly, ClampMin=0.0, UIMin=0.0 20.0 Horizontal space between branch columns, in pixels.
Icon Gap IconGap float XenoCore › Skills EditDefaultsOnly, ClampMin=0.0, UIMin=0.0 14.0 Vertical space between skill icons in a column, in pixels.
Branches Tab Colour BranchesTabColour FLinearColor XenoCore › Skills EditDefaultsOnly FLinearColor(1.0, 0.55, 0.15, 1.0) The Skill Branches tab's colour (XC1: orange).
Links Tab Colour LinksTabColour FLinearColor XenoCore › Skills EditDefaultsOnly FLinearColor(0.25, 0.82, 0.88, 1.0) The Skill Links tab's colour (XC1: teal), drawn dimmed while it is inactive.
Label Colour LabelColour FLinearColor XenoCore › Skills EditDefaultsOnly FLinearColor(0.55, 0.58, 0.62, 1.0) Colour of the labels in the detail pane's label/value lines.

Blueprint functions

Node Kind Signature Description
Select Branch Callable bool SelectBranch(FName Branch) Make this branch the shown character's selected one - what A on a header does.

UXenoCoreStatBlockBase

Class · derives from UCommonUserWidget · header XenoCoreRuntime/Public/UI/XenoCoreStatBlockBase.h · abstract

The stat panel every menu draws stats with - W_XenoCore_StatBlock's parent.

Properties

Property C++ name Type Category Specifiers Default Description
Row Class RowClass TSubclassOf<UXenoCoreStatRowBase> XenoCore › UI EditDefaultsOnly, BlueprintReadOnly One stat row. Set on the Blueprint's CDO - W_XenoCore_StatRow.
Rule Class RuleClass TSubclassOf<UUserWidget> XenoCore › UI EditDefaultsOnly, BlueprintReadOnly The hairline between rows when a caller asks for bRuled, and under a section title.
Stripe Color StripeColor FLinearColor XenoCore › UI EditDefaultsOnly, BlueprintReadOnly FLinearColor(1.0, 1.0, 1.0, 0.045) Every other row's backing - the stripe. Alpha is the whole effect; keep it faint.
Row Padding RowPadding FMargin XenoCore › UI EditDefaultsOnly, BlueprintReadOnly FMargin(10.0, 3.0, 10.0, 3.0) Inside each row's backing. The horizontal part is what keeps text off the stripe's edge.
Section Font SectionFont FSlateFontInfo XenoCore › UI EditDefaultsOnly, BlueprintReadOnly Font of the section titles - "offense", "defense", "grants".
Section Color SectionColor FSlateColor XenoCore › UI EditDefaultsOnly, BlueprintReadOnly FSlateColor(FLinearColor(0.55, 0.66, 0.78, 1.0)) Colour of the section titles.
Section Gap SectionGap float XenoCore › UI EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.0, UIMin=0.0 12.0 Space above a section title, so the group reads as a group. The first section gets none.
Header Box HeaderBox TObjectPtr<UPanelWidget> XenoCore › UI BlueprintReadOnly, BindWidget No description.
Header Name HeaderName TObjectPtr<UTextBlock> XenoCore › UI BlueprintReadOnly, BindWidget No description.
Header Type HeaderType TObjectPtr<UTextBlock> XenoCore › UI BlueprintReadOnly, BindWidget No description.
Rows Rows TObjectPtr<UVerticalBox> XenoCore › UI BlueprintReadOnly, BindWidget No description.
Header Level HeaderLevel TObjectPtr<UTextBlock> XenoCore › UI BlueprintReadOnly, BindWidgetOptional Right of the name: "Lv 5" for a character, the slot for an item.
Header Desc HeaderDesc TObjectPtr<UTextBlock> XenoCore › UI BlueprintReadOnly, BindWidgetOptional The item's description.
Header Rule 1 HeaderRule1 TObjectPtr<UWidget> XenoCore › UI BlueprintReadOnly, BindWidgetOptional The rule between name and type. Hidden in the sourced modes, where a subline replaces it.
Header Bars HeaderBars TObjectPtr<UWidget> XenoCore › UI BlueprintReadOnly, BindWidgetOptional HP and EXP. Collapsed outside Character mode.
Hp Group HpGroup TObjectPtr<UWidget> XenoCore › UI BlueprintReadOnly, BindWidgetOptional No description.
Hp Value HpValue TObjectPtr<UTextBlock> XenoCore › UI BlueprintReadOnly, BindWidgetOptional No description.
Hp Bar HpBar TObjectPtr<UProgressBar> XenoCore › UI BlueprintReadOnly, BindWidgetOptional No description.
Exp Value ExpValue TObjectPtr<UTextBlock> XenoCore › UI BlueprintReadOnly, BindWidgetOptional No description.
Exp Bar ExpBar TObjectPtr<UProgressBar> XenoCore › UI BlueprintReadOnly, BindWidgetOptional No description.

Blueprint functions

Node Kind Signature Description
Show Lines Callable void ShowLines(const TArray<FXenoCoreStatLine>& Lines, bool bRuled) Draw exactly these lines - the old SetLines.
Show Header Callable void ShowHeader(const FText& Name, const FText& Type) Name above, type below - the old SetHeader.
Show Item Header Callable void ShowItemHeader(TSubclassOf<ULyraInventoryItemDefinition> ItemDef, const FText& Type) ShowHeader for an item: its name in its rarity colour, and Type prefixed with the tier - "Rare · Materials".
Show Item Instance Header Callable void ShowItemInstanceHeader(ULyraInventoryItemInstance* Item, const FText& Type) ShowItemHeader for an item in the bag.
Set Character Preview Callable void SetCharacterPreview(const TMap<FGameplayTag, float>& Deltas) Preview stat changes on the character sheet (Character mode).
Clear Character Preview Callable void ClearCharacterPreview() Drop the character-sheet preview.
Set Swap Preview Callable void SetSwapPreview(bool bPreviewing) Draw the caller's lines inside the sourced frame - the swap list's hover comparison.
Is Swap Preview Pure bool IsSwapPreview() const True while the block is drawing the swap list's hover comparison.
Show Character Callable void ShowCharacter(UXenoCorePartyMemberDefinition* Member) The character sheet for Member.
Show Item Callable void ShowItem(UXenoCoreEquipmentComponent* Equipment, EXenoCoreEquipSlot EquipSlot) What is worn in EquipSlot on Equipment (not "Slot" - UWidget already has one), or "Nothing equipped" when the slot is empty.
Get Mode Pure EXenoCoreStatBlockMode GetMode() const Which source the block is drawing: a plain list, a character, or an item.

UXenoCoreTacticsPanelBase

Class · derives from UUserWidget · header XenoCoreRuntime/Public/UI/XenoCoreTacticsPanelBase.h · Blueprintable

Party tactics on screen: a brief prompt with the orders, and the tactics list while X is held.

Properties

Property C++ name Type Category Specifiers Default Description
Screen Anchor ScreenAnchor FAnchors Tactics › Layout EditDefaultsOnly, BlueprintReadOnly FAnchors(1.0, 0.0) Where it sits (anchors of the full-screen canvas). Default: the right edge, under the minimap, clear of the party column.
Alignment Alignment FVector2D Tactics › Layout EditDefaultsOnly, BlueprintReadOnly FVector2D(1.0, 0.0) Which corner sits on the anchor point (1,0 = top-right).
Offset Offset FVector2D Tactics › Layout EditDefaultsOnly, BlueprintReadOnly FVector2D(-40.0, 346.0) Offset from the anchor, in screen units. -40 lines its right edge up with the minimap's; 346 is just under its [M] Map prompt.
Panel Width PanelWidth float Tactics › Layout EditDefaultsOnly, BlueprintReadOnly, ClampMin=100 380.0 The panel's minimum width. It grows to fit its longest row - nothing is ever cut short or scrolled.
Value Width ValueWidth float Tactics › Layout EditDefaultsOnly, BlueprintReadOnly, ClampMin=10 100.0 Width of the value between its arrows, so values of different lengths do not shift the arrows.
Show Portraits bShowPortraits bool Tactics › Layout EditDefaultsOnly, BlueprintReadOnly true Show portraits beside who the orders are for.
Portrait Size PortraitSize float Tactics › Layout EditDefaultsOnly, BlueprintReadOnly, ClampMin=8, EditCondition=bShowPortraits 52.0 Size of one member's portrait.
Party Portrait Size PartyPortraitSize float Tactics › Layout EditDefaultsOnly, BlueprintReadOnly, ClampMin=8, EditCondition=bShowPortraits 36.0 Size of each portrait in the whole-party row.
Show Hint bShowHint bool Tactics › Prompt EditDefaultsOnly, BlueprintReadOnly true Show the hint - the open button and "Party Tactics" - all the time, the way the minimap shows [M] Map.
Hint Right Inset HintRightInset float Tactics › Prompt EditDefaultsOnly, BlueprintReadOnly, EditCondition=bShowHint 12.0 The hint's inset from the column's right edge. 12 lines it up with the minimap's [M] Map prompt.
Show Orders Label bShowOrdersLabel bool Tactics › Prompt EditDefaultsOnly, BlueprintReadOnly true Show the orders card (shown briefly - see below). Off = the orders only appear in the list.
Always Show Prompt bAlwaysShowPrompt bool Tactics › Prompt EditDefaultsOnly, BlueprintReadOnly, EditCondition=bShowOrdersLabel false Keep the orders card on screen all the time instead of showing it briefly.
Prompt Show Seconds PromptShowSeconds float Tactics › Prompt EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.1, EditCondition=bShowOrdersLabel && !bAlwaysShowPrompt, Units=Seconds 4.0 How long a brief showing stays fully visible before it fades.
Prompt Fade Seconds PromptFadeSeconds float Tactics › Prompt EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.0, EditCondition=bShowOrdersLabel && !bAlwaysShowPrompt, Units=Seconds 0.35 How long the prompt takes to fade in and out.
Show Prompt On Change bShowPromptOnChange bool Tactics › Prompt EditDefaultsOnly, BlueprintReadOnly, EditCondition=bShowOrdersLabel && !bAlwaysShowPrompt true Show it when the party's orders change, or the list closes.
Show Prompt On Battle Start bShowPromptOnBattleStart bool Tactics › Prompt EditDefaultsOnly, BlueprintReadOnly, EditCondition=bShowOrdersLabel && !bAlwaysShowPrompt true Show it when a battle starts - the standing orders, at the moment they matter.
Show Prompt On Load bShowPromptOnLoad bool Tactics › Prompt EditDefaultsOnly, BlueprintReadOnly, EditCondition=bShowOrdersLabel && !bAlwaysShowPrompt true Show it once when the HUD first appears (a load or a new game), so a player learns what opens tactics.
Prompt Width PromptWidth float Tactics › Prompt EditDefaultsOnly, BlueprintReadOnly, ClampMin=80 240.0 Width of the closed prompt; the orders wrap inside it.
Scope Prev Action ScopePrevAction FDataTableRowHandle Tactics › Layout EditDefaultsOnly, BlueprintReadOnly The bumper glyph left of who the orders are for (Tactics Scope Prev in DT_XenoCore_Actions).
Open Action OpenAction FDataTableRowHandle Tactics › Layout EditDefaultsOnly, BlueprintReadOnly The glyph on the closed prompt - the button that opens the list (Party Tactics: X / F).
Scope Next Action ScopeNextAction FDataTableRowHandle Tactics › Layout EditDefaultsOnly, BlueprintReadOnly The bumper glyph right of who the orders are for (Tactics Scope Next).
Glyph Class GlyphClass TSoftClassPtr<UCommonActionWidget> Tactics › Layout EditDefaultsOnly, BlueprintReadOnly The glyph widget for the open button and the bumpers - Lyra's InputActionWidget, as the [M] Map prompt uses.
Action Table ActionTable TSoftObjectPtr<UDataTable> Tactics › Layout EditDefaultsOnly, BlueprintReadOnly The action table for Scope Prev / Scope Next / Open Action rows whose Data Table is empty.
Font Family FontFamily TSoftObjectPtr<UObject> Tactics › Text EditDefaultsOnly, BlueprintReadOnly The font family for the fonts below whose own Font Family is empty. Orbitron by default.
Title Font TitleFont FSlateFontInfo Tactics › Text EditDefaultsOnly, BlueprintReadOnly The panel's title ("party tactics").
Scope Font ScopeFont FSlateFontInfo Tactics › Text EditDefaultsOnly, BlueprintReadOnly Who the orders are for, between the bumper glyphs.
Row Font RowFont FSlateFontInfo Tactics › Text EditDefaultsOnly, BlueprintReadOnly Each tactic row: its name, arrows and value.
Hint Font HintFont FSlateFontInfo Tactics › Text EditDefaultsOnly, BlueprintReadOnly The hint's label ("Party Tactics"), matching the minimap's [M] Map prompt.
Summary Font SummaryFont FSlateFontInfo Tactics › Text EditDefaultsOnly, BlueprintReadOnly No description.
Title Text TitleText FText Tactics › Text EditDefaultsOnly, BlueprintReadOnly The title on the panel's header band.
Orders Prefix OrdersPrefix FText Tactics › Text EditDefaultsOnly, BlueprintReadOnly The hint's label beside the open glyph ("Party Tactics").
Whole Party Text WholePartyText FText Tactics › Text EditDefaultsOnly, BlueprintReadOnly Who the orders are for, when they are for everyone.
Arrow Left Text ArrowLeftText FText Tactics › Text EditDefaultsOnly, BlueprintReadOnly The arrow left of each value.
Arrow Right Text ArrowRightText FText Tactics › Text EditDefaultsOnly, BlueprintReadOnly The arrow right of each value.
Cursor Text CursorText FText Tactics › Text EditDefaultsOnly, BlueprintReadOnly Before the highlighted row's name.
Party Value Text PartyValueText FText Tactics › Text EditDefaultsOnly, BlueprintReadOnly The value shown on a member's row while it follows the party's order.
Party Value Colour PartyValueColour FLinearColor Tactics › Colour EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.55, 0.62, 0.72, 1.0) Party's colour.
Text Colour TextColour FLinearColor Tactics › Colour EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.92, 0.95, 1.0, 1.0) Main text: the title, who the orders are for, the orders card and the highlighted row.
Dim Colour DimColour FLinearColor Tactics › Colour EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.55, 0.62, 0.72, 1.0) Rows that are not highlighted.
Hint Colour HintColour FLinearColor Tactics › Colour EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.55, 0.66, 0.8, 1.0) The hint's label colour - the house secondary label colour the [M] Map prompt uses.
Hint Shadow Colour HintShadowColour FLinearColor Tactics › Colour EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.04, 0.04, 0.07, 0.5) The hint's text shadow colour - the [M] Map prompt's.
Hint Shadow Offset HintShadowOffset FVector2D Tactics › Colour EditDefaultsOnly, BlueprintReadOnly FVector2D(2.0, 2.0) The hint's text shadow offset.
Hint Outline Colour HintOutlineColour FLinearColor Tactics › Colour EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.1, 0.1, 0.12, 1.0) The hint's text outline colour.
Panel Colour PanelColour FLinearColor Tactics › Colour EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.02, 0.03, 0.05, 0.85) The list panel's background.
Rule Colour RuleColour FLinearColor Tactics › Colour EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.55, 0.62, 0.72, 0.35) The divider lines inside the panel.
Highlight Colour HighlightColour FLinearColor Tactics › Colour EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.25, 0.55, 0.95, 0.3) Behind the highlighted row.
Orders Back Colour OrdersBackColour FLinearColor Tactics › Colour EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.02, 0.03, 0.05, 0.7) The orders card's background.
Accent Colour AccentColour FLinearColor Tactics › Colour EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.3, 0.62, 1.0, 1.0) The accent: the rim, the title's underline and the highlighted row's stripe.
Rim Colour RimColour FLinearColor Tactics › Colour EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.3, 0.62, 1.0, 0.45) The panel's and orders line's rim. Alpha 0 = no rim.
Shadow Colour ShadowColour FLinearColor Tactics › Colour EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.0, 0.0, 0.0, 0.3) The soft shadow under the panel. Alpha 0 = no shadow.
Header Band Colour HeaderBandColour FLinearColor Tactics › Colour EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.1, 0.18, 0.32, 0.85) The band behind the title.
Value Pill Tint ValuePillTint float Tactics › Colour EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.0, ClampMax=1.0 0.22 How strongly a value's pill is tinted with its own colour (0 = no pill).
Open Seconds OpenSeconds float Tactics › Layout EditDefaultsOnly, BlueprintReadOnly, ClampMin=0.0, Units=Seconds 0.14 Seconds the list takes to fade and slide in or out. 0 = instant.
Open Slide OpenSlide float Tactics › Layout EditDefaultsOnly, BlueprintReadOnly 18.0 How far the list slides in from, in screen units (positive = from the right).

Blueprint functions

Node Kind Signature Description
On Tactics Refreshed Event (implement in Blueprint) void K2_OnTacticsRefreshed(UXenoCorePartyComponent* Party, bool bPanelOpen) After every refresh, for a Blueprint child that draws its own tree.
Show Prompt Briefly Callable void ShowPromptBriefly() Show the prompt now, for PromptShowSeconds (or keep it up if it already is).
Is Prompt Showing Pure bool IsPromptShowing() const True while the prompt is on screen (fading counts).

UXenoCoreTargetPlateBase

Class · derives from UXenoCoreHudPlateBase · header XenoCoreRuntime/Public/UI/XenoCoreTargetPlateBase.h · abstract

The top-centre badge naming the current target - "Lv 5 Dawn Minion".

Properties

Property C++ name Type Category Specifiers Default Description
Level Text LevelText TObjectPtr<UCommonTextBlock> BlueprintReadOnly, BindWidget BindWidget: the Blueprint must contain text blocks with these exact names, or it fails to compile. That is the intent - a silently blank badge is worse than a compile error.
Name Text NameText TObjectPtr<UCommonTextBlock> BlueprintReadOnly, BindWidget No description.
Bar Only bBarOnly bool XenoCore › UI EditDefaultsOnly false Bar only: hide the level and name, leaving just the health bar.
Unknown Enemy Name UnknownEnemyName FText XenoCore › UI EditDefaultsOnly NSLOCTEXT("XenoCore", "UnknownEnemy", "Unknown") Shown when the target has no DisplayName set, so the badge never renders empty.
Health Bar HealthBar TObjectPtr<UProgressBar> BlueprintReadOnly, BindWidgetOptional The target's health.
Background Image BackgroundImage TObjectPtr<UImage> BlueprintReadOnly, BindWidgetOptional The banner plate behind the badge.
Healthy Colour HealthyColour FLinearColor XenoCore › UI EditDefaultsOnly FLinearColor(0.3, 0.78, 0.42, 1.0) Fill at full health. Matches the player plate so one HUD reads as one language.
Critical Colour CriticalColour FLinearColor XenoCore › UI EditDefaultsOnly FLinearColor(0.85, 0.2, 0.2, 1.0) Fill at low health.

Blueprint functions

Node Kind Signature Description
Set Target Callable void SetTarget(AActor* Target) Show this actor's name and level on the badge, or pass None to hide it.

UXenoCoreUIEffectStatics

Class · derives from UBlueprintFunctionLibrary · header XenoCoreRuntime/Public/UI/XenoCoreUIEffectStatics.h

Plays a Niagara system inside a widget, through the engine's Niagara UI Renderer.

Blueprint functions

Node Kind Signature Description
Play UI Effect Callable UWidget* PlayUIEffect(UPanelWidget* Host, UNiagaraSystem* System, FVector2D Size, float Scale = 1.0f) Start System centred in Host and return the widget drawing it, or null (logged) when it cannot.

UXenoCoreUISettings

Class · derives from UDeveloperSettings · header XenoCoreRuntime/Public/UI/XenoCoreUISettings.h

The screens, HUD widgets and menu entries XenoCore opens from code. Project Settings > Game > XenoCore UI. Every entry defaults to the shipped asset; replace one to swap it everywhere.

Properties

Property C++ name Type Category Specifiers Default Description
Save Screen SaveScreen TSoftClassPtr<UXenoCoreSaveScreenBase> Screens Config, EditAnywhere The save and load screen (both modes are one widget). Must derive from XenoCoreSaveScreenBase.
Quest Log Screen QuestLogScreen TSoftClassPtr<UXenoCoreQuestLogBase> Screens Config, EditAnywhere The quest log opened from the menu. Must derive from XenoCoreQuestLogBase.
Quest Offer Screen QuestOfferScreen TSoftClassPtr<UXenoCoreQuestOfferBase> Screens Config, EditAnywhere The panel that offers a quest, and shows one read-only from the log. Must derive from XenoCoreQuestOfferBase.
Shop Screen ShopScreen TSoftClassPtr<UXenoCoreShopScreenBase> Screens Config, EditAnywhere The shop opened by the Open Shop node. Must derive from XenoCoreShopScreenBase.
Trade Screen TradeScreen TSoftClassPtr<UXenoCoreTradeScreenBase> Screens Config, EditAnywhere The trade screen opened by the Open Trade node. Must derive from XenoCoreTradeScreenBase.
Arts Screen ArtsScreen TSoftClassPtr<UXenoCoreArtsScreenBase> Screens Config, EditAnywhere The Arts screen. Must derive from XenoCoreArtsScreenBase.
Skills Screen SkillsScreen TSoftClassPtr<UXenoCoreSkillsScreenBase> Screens Config, EditAnywhere The Skills screen. Must derive from XenoCoreSkillsScreenBase.
Gem Popup GemPopup TSoftClassPtr<class UXenoCoreGemPopupBase> Screens Config, EditAnywhere The gem popup the equipment screen opens over itself. Shipped: W_XenoCore_GemPopup.
Interact Prompt InteractPrompt TSoftClassPtr<UXenoCoreInteractPromptBase> HUD Config, EditAnywhere The A / X button prompt shown near an interactable. Must derive from XenoCoreInteractPromptBase.
Loot Popup LootPopup TSoftClassPtr<UXenoCoreLootPopupBase> HUD Config, EditAnywhere The panel a treasure chest opens. Must derive from XenoCoreLootPopupBase.
Battle Notify BattleNotify TSoftClassPtr<UXenoCoreBattleNotifyBase> HUD Config, EditAnywhere The battle line ("Break!", "Topple!") over a combatant. Must derive from XenoCoreBattleNotifyBase.
Dialogue Box DialogueBox TSoftClassPtr<UUserWidget> HUD Config, EditAnywhere The speech box that floats over whoever is talking. Should derive from XenoCoreDialogueBoxBase.
Damage Taken Numbers DamageTakenNumbers TSoftObjectPtr<UNiagaraSystem> HUD Config, EditAnywhere The Niagara system that draws damage the party takes. Its colour is set inside the system.
Damage Dealt Numbers DamageDealtNumbers TSoftObjectPtr<UNiagaraSystem> HUD Config, EditAnywhere The Niagara system that draws a "0" over an enemy a hit connected with but could not hurt. Every other number over an enemy is Lyra's (its damage cue and number-pop style); a zero never reaches that cue, because zero damage applies no damage at all.
Heal Numbers HealNumbers TSoftObjectPtr<UNiagaraSystem> HUD Config, EditAnywhere The Niagara system that draws heals. Its colour is set inside the system.
Keyboard Key Icons KeyboardKeyIcons TSoftClassPtr<class UCommonInputBaseControllerData> HUD Config, EditAnywhere Keyboard key icons for every action prompt - a CommonInput controller data (input type Mouse And Keyboard) that the plugin adds beside the project's own at startup.
Item Rarity Table ItemRarityTable TSoftObjectPtr<UDataTable> Items Config, EditAnywhere Every item rarity tier - its name, name colour, diamonds, chest beam and which chests may hold it. One row per XenoCore.Item.Rarity.* tag; add a tag and a row to add a tier.
Rarity Pip Size RarityPipSize float Items Config, EditAnywhere, ClampMin=2.0, UIMin=2.0, UIMax=24.0 12.0 Edge of one rarity diamond, in slate units, everywhere a name draws them (item lists, swap list, shop, trade, loot, badges). A call that passes its own Pip Size above 0 overrides it.
Gem Socket Filled Icon GemSocketFilledIcon TSoftObjectPtr<class UTexture2D> Items Config, EditAnywhere Gem column icon for a filled socket, tinted the gem's colour. Cleared = text marks.
Gem Socket Empty Icon GemSocketEmptyIcon TSoftObjectPtr<class UTexture2D> Items Config, EditAnywhere Gem column icon for an empty socket, tinted Gem Socket Empty Tint. Shipped: T_XenoCore_GemSocketEmpty.
Gem Socket Empty Tint GemSocketEmptyTint FLinearColor Items Config, EditAnywhere FLinearColor(0.01, 0.015, 0.03, 0.9) The empty-socket icon's colour.
Gem Socket Icon Size GemSocketIconSize float Items Config, EditAnywhere, ClampMin=8.0, UIMin=8.0, UIMax=48.0 40.0 Edge of one gem-socket icon in the Gems column, in slate units.
Gem Socket Icon Spacing GemSocketIconSpacing float Items Config, EditAnywhere, ClampMin=0.0, UIMin=0.0, UIMax=24.0 6.0 Gap between two gem-socket icons in one Gems cell, in slate units.
Tutorial Table TutorialTable TSoftObjectPtr<UDataTable> Tutorials Config, EditAnywhere Every tutorial card - one row each, in the order a sequence shows them. Rows must be XenoCoreTutorialRow; each row's Triggers decide when it appears.
Tutorial Card TutorialCard TSoftClassPtr<class UXenoCoreTutorialCardBase> Tutorials Config, EditAnywhere The popup the cards are drawn in. Must derive from XenoCoreTutorialCardBase.
Tutorial Enemy Near Distance TutorialEnemyNearDistance float Tutorials Config, EditAnywhere, ClampMin=100.0 2500.0 How close an enemy must come to the leader, in cm, for the Enemy Near trigger.
Tutorial Enemy Status Radius TutorialEnemyStatusRadius float Tutorials Config, EditAnywhere, ClampMin=100.0 3000.0 How close an enemy must be, in cm, for a tag on it (Break, a status) to trigger a card.
Menu Entries MenuEntries TArray<FXenoCoreMenuEntry> Menu Config, EditAnywhere The in-game menu's entries, in any order - they are sorted by Sort Order. The menu shell builds one button per entry each time it opens.
Additional Menu Entry Sets AdditionalMenuEntrySets TArray<TSoftObjectPtr<UXenoCoreMenuEntrySet>> Menu Config, EditAnywhere Extra entry lists, merged into Menu Entries. An entry whose Id matches one above replaces it, so a set can also hide or reword a shipped entry.
Menu Button Class MenuButtonClass TSoftClassPtr<UCommonButtonBase> Menu Config, EditAnywhere The button the menu shell creates for each entry - a Party Tactics row (XenoCoreMenuEntryButton) by default; Lyra's W_LyraMenuButton also works. Its label is set through the Menu Button interface, or SetButtonText.
Menu Button Padding MenuButtonPadding FMargin Menu Config, EditAnywhere The padding around each generated menu button.
Menu Group Gap MenuGroupGap float Menu Config, EditAnywhere, ClampMin=0.0, UIMax=64.0 20.0 The gap left above an entry that has Starts Group set, in slate units.

UXenoCoreWorldLabelBase

Class · derives from UCommonUserWidget · header XenoCoreRuntime/Public/UI/XenoCoreWorldLabelBase.h · abstract

A label over an actor's head: a line of text with a bouncing chevron beneath it.

Properties

Property C++ name Type Category Specifiers Default Description
Name Text NameText TObjectPtr<UTextBlock> BlueprintReadOnly, BindWidget BindWidget, so the Blueprint must contain widgets with these exact names or the asset fails to compile. That is the intent: a name plate with no name is not a degraded plate, it is a broken one, and a compile error is a better report than an empty rectangle.
Chevron Image ChevronImage TObjectPtr<UImage> BlueprintReadOnly, BindWidget The chevron under the name. Required, like NameText.
Name Group NameGroup TObjectPtr<UWidget> BlueprintReadOnly, BindWidgetOptional The name and its chevron, as one collapsible unit.
Marker Root MarkerRoot TObjectPtr<UWidget> BlueprintReadOnly, BindWidgetOptional The grey bubble carrying the exclamation point. NPC-only, hence optional.
Bob Amplitude BobAmplitude float XenoCore › NPC EditDefaultsOnly, ClampMin=0.0 5.0 Peak-to-centre travel of the bounce, in slate units.
Bob Speed BobSpeed float XenoCore › NPC EditDefaultsOnly, ClampMin=0.0 1.6 Bounces per second.

Blueprint functions

Node Kind Signature Description
Set Label Text Callable void SetLabelText(const FText& InName) Puts the line of text on the plate.
Set Name Visible Callable void SetNameVisible(bool bVisible) Shows or hides the name and its chevron, leaving the quest bubble alone.
Set Quest Marker Visible Callable void SetQuestMarkerVisible(bool bVisible) Shows or hides the quest bubble.
Is Showing Anything Pure bool IsShowingAnything() const True when neither half is showing, so the actor can hide the whole component.

UXenoCoreWorldReadySubsystem

Class · derives from UWorldSubsystem · header XenoCoreRuntime/Public/UI/XenoCoreWorldReadySubsystem.h

Holds Lyra's loading screen until the player, the party and the streamed world are ready to be seen.

XenoCoreRuntime / Voice

FXenoCoreVisemeKey

Struct · header XenoCoreRuntime/Public/Voice/XenoCoreBattleVoiceTypes.h · BlueprintType

One mouth-shape key, baked from ElevenLabs' per-character timing. Shape is a face curve name (aa, ih, ou, ee, oh), or None to close.

Properties

Property C++ name Type Category Specifiers Default Description
Time Time float XenoCore › Voice EditAnywhere, BlueprintReadOnly, ClampMin=0, Units=s 0.0 Seconds from the start of the take.
Shape Shape FName XenoCore › Voice EditAnywhere, BlueprintReadOnly The face curve to open. None = mouth closed (m, b, p).
Weight Weight float XenoCore › Voice EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=1 1.0 How far the mouth shape opens (0-1).

FXenoCoreVoiceLineRow

Struct · derives from FTableRowBase · header XenoCoreRuntime/Public/Voice/XenoCoreBattleVoiceTypes.h · BlueprintType

One line a character can say in battle or in the field.

Properties

Property C++ name Type Category Specifiers Default Description
Category Category FGameplayTag XenoCore › Voice EditAnywhere, BlueprintReadOnly, Categories=XenoCore.Voice When this line is said.
Art Art TSoftObjectPtr<UXenoCoreArtDefinition> XenoCore › Voice EditAnywhere, BlueprintReadOnly Only for this art. Empty = any art, or a category that has none.
Addressee Addressee TSoftObjectPtr<UXenoCorePartyMemberDefinition> XenoCore › Voice EditAnywhere, BlueprintReadOnly Only when speaking to this ally (a revive, an exchange, a reply). Empty = anyone.
Reply Reply FGameplayTag XenoCore › Voice EditAnywhere, BlueprintReadOnly, Categories=XenoCore.Voice After this line, the Addressee answers with a line of this category spoken back to this speaker. Empty = no reply.
Takes Takes TArray<FXenoCoreVoiceTake> XenoCore › Voice EditAnywhere, BlueprintReadOnly The recordings. One is picked each time; none repeats until every take has played.
Expression Expression FName XenoCore › Voice › Face EditAnywhere, BlueprintReadOnly Face expression held while the line plays (a face curve name such as angry, happy, sad). None = no change.
Expression Weight ExpressionWeight float XenoCore › Voice › Face EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=1 0.6 How strongly the expression is applied (0-1).
Subtitle Subtitle FText XenoCore › Voice EditAnywhere, BlueprintReadOnly What is said. Shown only if subtitles are turned on.
Direction Direction FString XenoCore › Voice EditAnywhere, BlueprintReadOnly The delivery direction the line was recorded with, e.g. [shouts].

FXenoCoreVoiceRuleRow

Struct · derives from FTableRowBase · header XenoCoreRuntime/Public/Voice/XenoCoreBattleVoiceTypes.h · BlueprintType

How often a voice category may be heard.

Properties

Property C++ name Type Category Specifiers Default Description
Category Category FGameplayTag XenoCore › Voice EditAnywhere, BlueprintReadOnly, Categories=XenoCore.Voice The category this rule governs, and every child category without a rule of its own.
Enabled bEnabled bool XenoCore › Voice EditAnywhere, BlueprintReadOnly true Off = this category is never said.
Priority Priority int32 XenoCore › Voice EditAnywhere, BlueprintReadOnly 0 Higher cuts a lower line that is playing; a line arriving at or below the playing line's priority is dropped.
Chance Chance float XenoCore › Voice EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=1 1.0 Chance (0-1) the line is said when the player-controlled character asks.
AI Chance AIChance float XenoCore › Voice EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=1 1.0 Chance (0-1) when an AI-controlled ally asks, before party-size scaling.
Scale With Party Size bScaleWithPartySize bool XenoCore › Voice EditAnywhere, BlueprintReadOnly true Scale the AI chance by ReferencePartySize / active members, so a big party says less per head.
Speaker Cooldown SpeakerCooldown float XenoCore › Voice EditAnywhere, BlueprintReadOnly, ClampMin=0, Units=s 0.0 Seconds before the same character may say this category again.
Category Cooldown CategoryCooldown float XenoCore › Voice EditAnywhere, BlueprintReadOnly, ClampMin=0, Units=s 0.0 Seconds before anyone may say this category again.
Overlaps bOverlaps bool XenoCore › Voice EditAnywhere, BlueprintReadOnly false Plays over other lines (grunts, hurt). Limited by the config's Effort Concurrency instead of the one-line rule.

FXenoCoreVoiceSpokeMessage

Struct · header XenoCoreRuntime/Public/Voice/XenoCoreBattleVoiceTypes.h · BlueprintType

The payload on XenoCore.Voice.Message.Spoke.

Properties

Property C++ name Type Category Specifiers Default Description
Speaker Speaker TObjectPtr<AActor> XenoCore › Voice BlueprintReadOnly nullptr No description.
Category Category FGameplayTag XenoCore › Voice BlueprintReadOnly No description.
Take Take FXenoCoreVoiceTake XenoCore › Voice BlueprintReadOnly The take now playing, with its lip-sync keys.
Expression Expression FName XenoCore › Voice BlueprintReadOnly No description.
Expression Weight ExpressionWeight float XenoCore › Voice BlueprintReadOnly 0.0 No description.
Subtitle Subtitle FText XenoCore › Voice BlueprintReadOnly No description.
Duration Duration float XenoCore › Voice BlueprintReadOnly 0.0 No description.

FXenoCoreVoiceTake

Struct · header XenoCoreRuntime/Public/Voice/XenoCoreBattleVoiceTypes.h · BlueprintType

One recording of a line. A line has several; the system deals them out like cards so none repeats until all have played.

Properties

Property C++ name Type Category Specifiers Default Description
Sound Sound TSoftObjectPtr<USoundBase> XenoCore › Voice EditAnywhere, BlueprintReadOnly The recorded audio for this take.
Visemes Visemes TArray<FXenoCoreVisemeKey> XenoCore › Voice EditAnywhere, BlueprintReadOnly Lip-sync keys for this take. Empty = the face's generic talking flap.

UXenoCoreBattleVoiceConfig

Class · derives from UPrimaryDataAsset · header XenoCoreRuntime/Public/Voice/XenoCoreBattleVoiceTypes.h · BlueprintType

Global battle-voice settings: the rules table, pacing, and how a line is played.

Properties

Property C++ name Type Category Specifiers Default Description
Rules Rules TObjectPtr<UDataTable> Rules EditAnywhere, BlueprintReadOnly How often each category is heard. Row type: XenoCoreVoiceRuleRow.
Gap Seconds GapSeconds float Pacing EditAnywhere, BlueprintReadOnly, ClampMin=0, Units=s 0.8 Silence after a line ends before the next may start. This is what makes seven voices take turns.
Reference Party Size ReferencePartySize int32 Pacing EditAnywhere, BlueprintReadOnly, ClampMin=1 3 The party size the AI chances are written for. XC1 fields three.
Reply Delay Seconds ReplyDelaySeconds float Pacing EditAnywhere, BlueprintReadOnly, ClampMin=0, Units=s 0.25 Pause between a line and the Addressee's reply.
Attenuation Attenuation TSoftObjectPtr<USoundAttenuation> Playback EditAnywhere, BlueprintReadOnly Pans the voice by where the speaker stands. The listener is the camera.
Line Concurrency LineConcurrency TSoftObjectPtr<USoundConcurrency> Playback EditAnywhere, BlueprintReadOnly Limits ordinary lines. The subsystem already allows one at a time; this is the audio engine's backstop.
Effort Concurrency EffortConcurrency TSoftObjectPtr<USoundConcurrency> Playback EditAnywhere, BlueprintReadOnly Limits overlapping grunts and hurt sounds.
Sound Class SoundClass TSoftObjectPtr<USoundClass> Playback EditAnywhere, BlueprintReadOnly The sound class every imported voice line is given. Its modulation follows Lyra's Dialogue volume.
Show In Dialogue Box ShowInDialogueBox FGameplayTagContainer Playback EditAnywhere, BlueprintReadOnly, Categories=XenoCore.Voice These categories also show their line in the dialogue box over the speaker (talk-to-ally). The rest are voice only.
Dialogue Box Linger DialogueBoxLinger float Playback EditAnywhere, BlueprintReadOnly, ClampMin=0, Units=s 1.0 How long the box stays up after a boxed line's audio ends.
Attach Socket AttachSocket FName Playback EditAnywhere, BlueprintReadOnly "head" Bone or socket on the pawn's mesh the voice is attached to, so it pans with a moving speaker.
Strong Level Gap StrongLevelGap int32 Triggers EditAnywhere, BlueprintReadOnly, ClampMin=0 3 Battle start reads "strong" when the nearest enemy is at least this many levels above the speaker.
Weak Level Gap WeakLevelGap int32 Triggers EditAnywhere, BlueprintReadOnly, ClampMin=0 3 Battle start reads "weak" when the nearest enemy is at least this many levels below the speaker.
Battle Start Radius BattleStartRadius float Triggers EditAnywhere, BlueprintReadOnly, ClampMin=0, Units=cm 3000.0 How far to look for the enemy a battle-start line is about.
Low Health Fraction LowHealthFraction float Triggers EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=1 0.3 A party member says LowHP when a hit takes them below this fraction of their max HP.
Enemy Low Health Fraction EnemyLowHealthFraction float Triggers EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=1 0.25 Enemy.Low is said when a party hit takes the enemy below this fraction of its max HP.
Close Victory Health Fraction CloseVictoryHealthFraction float Triggers EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=1 0.25 A win is Close when someone was downed in the fight, or the leader ends below this fraction of max HP.
Victory Line Delay VictoryLineDelay float Triggers EditAnywhere, BlueprintReadOnly, ClampMin=0, Units=s 1.2 Delay after the win before the victory line, so it lands over the fanfare's tail rather than its first note.
Field Banter Interval FieldBanterInterval float Triggers EditAnywhere, BlueprintReadOnly, ClampMin=0, Units=s 20.0 How often out-of-battle banter is considered. The Field rules decide whether anything is said.
Field Scenery Chance FieldSceneryChance float Triggers EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=1 0.3 Of the idle remarks, the share that are about the scenery (Field.Scenery) instead.
Field Exchange Chance FieldExchangeChance float Triggers EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=1 0.35 Chance a banter tick is a two-person exchange (Field.Exchange, then Field.Reply) rather than a remark.
Field Watch Interval FieldWatchInterval float Triggers EditAnywhere, BlueprintReadOnly, ClampMin=0, Units=s 1.0 How often the party looks around for enemies and stragglers (Field.EnemySighted, Field.WaitUp). 0 = never.
Enemy Sighted Radius EnemySightedRadius float Triggers EditAnywhere, BlueprintReadOnly, ClampMin=0, Units=cm 2500.0 An enemy, not yet fighting, this close to the leader is announced once (Field.EnemySighted).
Wait Up Distance WaitUpDistance float Triggers EditAnywhere, BlueprintReadOnly, ClampMin=0, Units=cm 1500.0 A companion this far behind a moving leader calls out (Field.WaitUp).
Reinforcement After Seconds ReinforcementAfterSeconds float Triggers EditAnywhere, BlueprintReadOnly, ClampMin=0, Units=s 5.0 An enemy engaging this long after the fight started counts as reinforcements (Enemy.Reinforcement).
Aid Given Chance AidGivenChance float Triggers EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=1 0.5 Of heal and buff casts, the share that say an Aid.Given line ("Hang on, I've got you!") instead of the art's name.
Field Travel Speed FieldTravelSpeed float Triggers EditAnywhere, BlueprintReadOnly, ClampMin=0, Units=cm/s 150.0 Above this leader speed the party is travelling (Field.Travel), below it idle (Field.Idle).
Exchange Max Distance ExchangeMaxDistance float Who Is Speaking EditAnywhere, BlueprintReadOnly, ClampMin=0, Units=cm 500.0 Two members further apart than this are never paired for a Field.Exchange. 0 = any distance.
Look At Addressee bLookAtAddressee bool Who Is Speaking EditAnywhere, BlueprintReadOnly true A line with an addressee makes speaker and addressee look at each other for its length.
Listener Radius ListenerRadius float Who Is Speaking EditAnywhere, BlueprintReadOnly, ClampMin=0, Units=cm 900.0 Other companions this close to a speaker may glance at it while it talks. 0 = never.
Listener Glance Chance ListenerGlanceChance float Who Is Speaking EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=1 0.6 The chance each of those companions does glance at the speaker.
Attention Linger AttentionLinger float Who Is Speaking EditAnywhere, BlueprintReadOnly, ClampMin=0, Units=s 1.5 Extra seconds the looks hold after the line ends, so a reply lands while the two still face each other.

UXenoCoreBattleVoiceSubsystem

Class · derives from UWorldSubsystem · header XenoCoreRuntime/Public/Voice/XenoCoreBattleVoiceSubsystem.h

Plays party voice lines: picks the line from the speaker's voice table and paces every voice by the config's rules.

Blueprint functions

Node Kind Signature Description
Get Battle Voice Pure UXenoCoreBattleVoiceSubsystem* Get() The voice player for this world.
Speak Callable bool Speak(AActor* Speaker, ) FGameplayTag Category, const UXenoCoreArtDefinition* Art = nullptr, const UXenoCorePartyMemberDefinition* Addressee = nullptr) Ask a party member to say a line of this category.
Speak With Reply Callable bool SpeakWithReply(AActor* Speaker, ) FGameplayTag Category, AActor* Responder, ) FGameplayTag ReplyCategory) Speaker says a line addressed to Responder's character; when it ends, Responder answers with a line of ReplyCategory addressed back.
Is Line Playing Pure bool IsLinePlaying() const True while an ordinary (non-grunt) line is playing, from anyone.
Is Speaking Pure bool IsSpeaking(const AActor* Speaker) const True while this actor's ordinary line is playing.

XenoCoreRuntime / World

AXenoCoreEnvironmentDirector

Class · derives from AActor · header XenoCoreRuntime/Public/World/XenoCoreEnvironmentDirector.h · Blueprintable

Drives a map's sun, moon, sky light, fog, clouds, grade and weather effects from the clock and the weather. Place one per map.

Properties

Property C++ name Type Category Specifiers Default Description
Profile Profile TObjectPtr<UXenoCoreSkyProfile> Environment EditAnywhere, BlueprintReadOnly How the day looks. Empty = the profile class's defaults.
Sun Actor SunActor TObjectPtr<AActor> Environment › Lights EditAnywhere, BlueprintReadOnly The sun (and, by night, the moon). Empty = the map's first directional light.
Sky Light Actor SkyLightActor TObjectPtr<AActor> Environment › Lights EditAnywhere, BlueprintReadOnly Empty = the map's first sky light.
Fog Actor FogActor TObjectPtr<AActor> Environment › Lights EditAnywhere, BlueprintReadOnly Empty = the map's first exponential height fog.
Sky Atmosphere Actor SkyAtmosphereActor TObjectPtr<AActor> Environment › Lights EditAnywhere, BlueprintReadOnly Empty = the map's first sky atmosphere (the weather's Overcast greys it).
Night Cloud Ambient NightCloudAmbient float Environment › Clouds EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=1 0.7 At full dark, how much less the clouds' undersides are shut off from the sky light (0 = as authored, 1 = fully open).
Night Overcast Sky Boost NightOvercastSkyBoost float Environment › Clouds EditAnywhere, BlueprintReadOnly, ClampMin=0, UIMax=4 1.0 At full dark and full overcast, the sky light is raised by this much (1 = doubled) - the glow of an overcast night.
Overcast Sky Tint OvercastSkyTint FLinearColor Environment › Weather EditAnywhere, BlueprintReadOnly FLinearColor(0.42, 0.44, 0.47, 1.0) The grey an Overcast of 1 turns the sky to (a scale on its authored luminance).
Cloud Actor CloudActor TObjectPtr<AActor> Environment › Lights EditAnywhere, BlueprintReadOnly Empty = the map's first volumetric cloud.
Cloud Coverage Parameter CloudCoverageParameter FName Environment › Clouds EditAnywhere, BlueprintReadOnly "Cloud_GlobalCoverage" Coverage (the weather adds its Cloud Coverage Offset).
Cloud Density Parameter CloudDensityParameter FName Environment › Clouds EditAnywhere, BlueprintReadOnly "Cloud_GlobalDensity" Density (scaled by the weather's Cloud Density Scale).
Cloud Storm Parameter CloudStormParameter FName Environment › Clouds EditAnywhere, BlueprintReadOnly "StormClouds" The storm blend (set to the weather's Storm Clouds).
Wind Collection WindCollection TObjectPtr<UMaterialParameterCollection> Environment › Wind EditAnywhere, BlueprintReadOnly The parameter collection foliage reads its wind from.
Wind Strength Parameters WindStrengthParameters TArray<FName> Environment › Wind EditAnywhere, BlueprintReadOnly { "Simple Wind Intensity", "Simple Wind Sway Intensity" } Scaled fully by the weather's Wind Strength.
Wind Speed Parameters WindSpeedParameters TArray<FName> Environment › Wind EditAnywhere, BlueprintReadOnly { "Simple Wind Speed", "Simple WInd Sway Speed" } Scaled half as much (gusts quicken less than they strengthen).
Parameter Collection ParameterCollection TObjectPtr<UMaterialParameterCollection> Environment › Materials EditAnywhere, BlueprintReadOnly Optional: receives SunDirection (vector, towards the light) and DaylightAlpha (0 night .. 1 day) every frame.
Post Process Priority PostProcessPriority float Environment › Post Process EditAnywhere, BlueprintReadOnly 10.0 Priority of the director's own unbound post-process (exposure and grade). Above the map's own volume.
Lightning Flash Stops LightningFlashStops float Environment › Weather EditAnywhere, BlueprintReadOnly, ClampMin=0, UIMax=4 2.2 A lightning flash's peak, in exposure stops.
Lightning Flash Seconds LightningFlashSeconds float Environment › Weather EditAnywhere, BlueprintReadOnly, ClampMin=0.05, Units=s 0.45 How long a flash takes to die away.
Thunder Delay Seconds ThunderDelaySeconds FVector2D Environment › Weather EditAnywhere, BlueprintReadOnly FVector2D(0.4, 2.8) Thunder follows a flash after a delay in this range, in seconds (min, max).
Precipitation Spawn Rate PrecipitationSpawnRate float Environment › Weather EditAnywhere, BlueprintReadOnly, ClampMin=0, UIMax=20000 4500.0 Drops a second at a weather's Precipitation Intensity of 1, written to the system's User.SpawnRate.
Rain Height Map bRainHeightMap bool Environment › Weather › Height Map EditAnywhere, BlueprintReadOnly true Draw the rain height map while it rains (collision, splashes, shelter).
Rain Map Size RainMapSize float Environment › Weather › Height Map EditAnywhere, BlueprintReadOnly, ClampMin=1000, Units=cm 6400.0 Width of the square it covers, cm. Must hold the rain volume plus the wind drift.
Rain Map Resolution RainMapResolution int32 Environment › Weather › Height Map EditAnywhere, BlueprintReadOnly, ClampMin=32, ClampMax=1024 256 Its resolution (square). 256 over 64 m is 25 cm a texel.
Rain Map Above RainMapAbove float Environment › Weather › Height Map EditAnywhere, BlueprintReadOnly, ClampMin=500, Units=cm 4000.0 How far above the camera it looks down from - higher than any roof the player stands under.
Rain Map Recapture Distance RainMapRecaptureDistance float Environment › Weather › Height Map EditAnywhere, BlueprintReadOnly, ClampMin=100, Units=cm 800.0 Re-taken once the camera has moved this far from where it was last taken...
Rain Map Recapture Seconds RainMapRecaptureSeconds float Environment › Weather › Height Map EditAnywhere, BlueprintReadOnly, ClampMin=0.1, Units=s 2.0 ...or this long after, whichever comes first.
Rain Color RainColor FLinearColor Environment › Weather EditAnywhere, BlueprintReadOnly FLinearColor(0.62, 0.66, 0.72, 0.16) Rain colour and opacity at full daylight; darkened with the light.
Splash Color SplashColor FLinearColor Environment › Weather EditAnywhere, BlueprintReadOnly FLinearColor(0.7, 0.74, 0.8, 0.22) Splash colour and opacity at full daylight; darkened with the light (User.SplashColor).
Rain Night Brightness RainNightBrightness float Environment › Weather EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=1 0.12 How much of the rain's colour is left at full dark.
Splash Share SplashShare float Environment › Weather EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=2 0.6 Splashes a second, as a share of the drops a second (written to the system's User.SplashRate).
Precipitation Offset PrecipitationOffset FVector Environment › Weather EditAnywhere, BlueprintReadOnly FVector(-250.0, -80.0, 900.0) Where the precipitation spawns relative to the camera, in world space - upwind of it, so the drops drift in.
Post Process PostProcess TObjectPtr<UPostProcessComponent> Environment VisibleAnywhere No description.

Blueprint functions

Node Kind Signature Description
Get Rain Height Map Pure class UTextureRenderTarget2D* GetRainHeightMap() const The rain height map, for tests and debugging.
Get Rain Map Top Pure float GetRainMapTop() const World Z the height map was last taken down from.
Get Rain Map Center Pure FVector GetRainMapCenter() const World xy the height map was last centred on.
Get Sun Elevation Pure float GetSunElevation() const Sun elevation right now (degrees; negative below the horizon).
Get Daylight Alpha Pure float GetDaylightAlpha() const 0 at night, 1 by day.
Get Weather Blend Pure float GetWeatherBlend() const How far the current weather's look has blended in, 0..1.
Flash Lightning Callable void FlashLightning() Fires a lightning flash now (and its thunder).
Get Pure AXenoCoreEnvironmentDirector* Get() The director in this world, or null.

EXenoCorePhaseMask

Enum · header XenoCoreRuntime/Public/World/XenoCoreWorldTypes.h · BlueprintType

A set of phases, for "only at night" or "only by day" gates.

Value Shown as Description
None None No description.
Morning Morning No description.
Day Day No description.
Evening Evening No description.
Night Night No description.

EXenoCoreTimePhase

Enum · header XenoCoreRuntime/Public/World/XenoCoreWorldTypes.h · BlueprintType

The four XC1 phases. Spawns, collectables and NPCs are gated on these.

Value Shown as Description
Morning Morning No description.
Day Day No description.
Evening Evening No description.
Night Night No description.

FXenoCoreTimeChangedMessage

Struct · header XenoCoreRuntime/Public/World/XenoCoreWorldTypes.h · BlueprintType

Payload of XenoCore.Time.Message.PhaseChanged, .HourBlockChanged and .Jumped.

Properties

Property C++ name Type Category Specifiers Default Description
Minutes Minutes float XenoCore › Time BlueprintReadOnly 0.0 Minutes since midnight, 0..1440.
Old Phase OldPhase EXenoCoreTimePhase XenoCore › Time BlueprintReadOnly EXenoCoreTimePhase::Day No description.
New Phase NewPhase EXenoCoreTimePhase XenoCore › Time BlueprintReadOnly EXenoCoreTimePhase::Day No description.
Hour Block HourBlock int32 XenoCore › Time BlueprintReadOnly 0 0..7 - which three-hour block of the day (XC1's NPC schedule granularity).
Jumped bJumped bool XenoCore › Time BlueprintReadOnly false The time was set (the dial, a cheat, a load), not reached - snap, do not blend.

FXenoCoreWeatherChanceRow

Struct · derives from FTableRowBase · header XenoCoreRuntime/Public/World/XenoCoreWorldTypes.h · BlueprintType

One line of an area's weather table: a weather and its chance, in percent.

Properties

Property C++ name Type Category Specifiers Default Description
Weather Weather FGameplayTag Weather EditAnywhere, BlueprintReadOnly, Categories=XenoCore.Weather The weather this line can roll.
Percent Percent float Weather EditAnywhere, BlueprintReadOnly, ClampMin=0, UIMax=100 5.0 Chance in percent. Whatever the table leaves under 100 is Clear.
Phases Phases int32 Weather EditAnywhere, BlueprintReadOnly 0 Phases it can roll in. None ticked = any phase.

FXenoCoreWeatherChangedMessage

Struct · header XenoCoreRuntime/Public/World/XenoCoreWorldTypes.h · BlueprintType

Payload of XenoCore.Weather.Message.Changed.

Properties

Property C++ name Type Category Specifiers Default Description
Old Weather OldWeather FGameplayTag XenoCore › Weather BlueprintReadOnly No description.
New Weather NewWeather FGameplayTag XenoCore › Weather BlueprintReadOnly No description.
Instant bInstant bool XenoCore › Weather BlueprintReadOnly false Snap rather than blend - the change happened behind a fade, or on arrival in a map.

FXenoCoreWeatherTypeRow

Struct · derives from FTableRowBase · header XenoCoreRuntime/Public/World/XenoCoreWorldTypes.h · BlueprintType

One kind of weather: its name, icon, how long it lasts, and how it changes the sky, lights and music.

Properties

Property C++ name Type Category Specifiers Default Description
Tag Tag FGameplayTag Weather EditAnywhere, BlueprintReadOnly, Categories=XenoCore.Weather Which weather this row describes.
Display Name DisplayName FText Weather EditAnywhere, BlueprintReadOnly The name under the minimap.
Icon Icon TSoftObjectPtr<UTexture2D> Weather EditAnywhere, BlueprintReadOnly The icon under the minimap. Empty = name only.
Duration Minutes DurationMinutes FVector2D Weather EditAnywhere, BlueprintReadOnly FVector2D(90.0, 240.0) How long it lasts before the next roll, in in-game minutes (min, max). Unsourced: XC1's durations are not documented.
Blend Seconds BlendSeconds float Weather EditAnywhere, BlueprintReadOnly, ClampMin=0, Units=s 20.0 Real seconds to blend into this weather (a jump or an arrival snaps instead).
Music Volume Scale MusicVolumeScale float Weather › Audio EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=1 1.0 Music volume while this weather holds. XC1: rain and storms lower the music.
Ambient Sound AmbientSound TSoftObjectPtr<USoundBase> Weather › Audio EditAnywhere, BlueprintReadOnly Looping ambience (rain hiss). Empty = none.
Ambient Volume AmbientVolume float Weather › Audio EditAnywhere, BlueprintReadOnly, ClampMin=0, UIMax=2 1.0 Volume of the looping ambience.
Sun Intensity Scale SunIntensityScale float Weather › Look EditAnywhere, BlueprintReadOnly, ClampMin=0, UIMax=2 1.0 Scales the sun/moon.
Sky Light Scale SkyLightScale float Weather › Look EditAnywhere, BlueprintReadOnly, ClampMin=0, UIMax=2 1.0 Scales the sky light (ambient).
Fog Density Scale FogDensityScale float Weather › Look EditAnywhere, BlueprintReadOnly, ClampMin=0, UIMax=10 1.0 Scales the height fog's density.
Cloud Coverage Offset CloudCoverageOffset float Weather › Look EditAnywhere, BlueprintReadOnly, UIMin=-1, UIMax=1 0.0 Added to the clouds' coverage (Cloud_GlobalCoverage). +0.4 closes the sky; above ~+1 the clouds vanish.
Cloud Density Scale CloudDensityScale float Weather › Look EditAnywhere, BlueprintReadOnly, ClampMin=0, UIMax=5 1.0 Scales the clouds' density (Cloud_GlobalDensity) - thicker, greyer cloud.
Overcast Overcast float Weather › Look EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=1 0.0 How grey the sky itself goes, 0..1 (no blue showing through).
Storm Clouds StormClouds float Weather › Look EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=1 0.0 The engine cloud material's own storm look (StormClouds), 0..1: 0.3 is rain-grey, 0.6 storm-dark, above that near black.
Exposure Offset ExposureOffset float Weather › Look EditAnywhere, BlueprintReadOnly, UIMin=-3, UIMax=3 0.0 Added to the exposure, in stops.
Saturation Saturation float Weather › Look EditAnywhere, BlueprintReadOnly, ClampMin=0, UIMax=2 1.0 Colour saturation (1 = unchanged). Rain greys the world.
Wind Strength WindStrength float Weather › Wind EditAnywhere, BlueprintReadOnly, ClampMin=0, UIMax=4 1.0 How hard the wind blows - scales the foliage wind (the director's Wind Collection), so the grass leans with the rain.
Precipitation System PrecipitationSystem TSoftObjectPtr<UNiagaraSystem> Weather › Effects EditAnywhere, BlueprintReadOnly Rain, snow... spawned on the camera. Its spawn rate should read the float user parameter "SpawnRate".
Precipitation Intensity PrecipitationIntensity float Weather › Effects EditAnywhere, BlueprintReadOnly, ClampMin=0, UIMax=2 1.0 How hard it falls: SpawnRate = the director's Precipitation Spawn Rate x this (rain 0.6, a storm 1).
Lightning bLightning bool Weather › Effects EditAnywhere, BlueprintReadOnly false Lightning flashes, with thunder.
Lightning Interval Seconds LightningIntervalSeconds FVector2D Weather › Effects EditAnywhere, BlueprintReadOnly, EditCondition=bLightning FVector2D(8.0, 25.0) Real seconds between flashes (min, max).
Thunder Sound ThunderSound TSoftObjectPtr<USoundBase> Weather › Effects EditAnywhere, BlueprintReadOnly, EditCondition=bLightning Played after a flash (a delay stands in for distance). Empty = silent flashes.

UXenoCoreChangeTimeScreen

Class · derives from UCommonActivatableWidget · header XenoCoreRuntime/Public/World/XenoCoreChangeTimeScreen.h · Blueprintable

The Change Time menu screen: a 24-hour dial set to the nearest hour, confirmed behind a fade.

Properties

Property C++ name Type Category Specifiers Default Description
Title Text TitleText FText Change Time › Text EditDefaultsOnly, BlueprintReadOnly The screen's title.
Phase Format PhaseFormat FText Change Time › Text EditDefaultsOnly, BlueprintReadOnly The line under the time. {Phase} is the phase the chosen hour falls in.
Confirm Text ConfirmText FText Change Time › Text EditDefaultsOnly, BlueprintReadOnly The action bar's word for A.
Title Font TitleFont FSlateFontInfo Change Time › Text EditDefaultsOnly, BlueprintReadOnly Font of the title.
Time Font TimeFont FSlateFontInfo Change Time › Text EditDefaultsOnly, BlueprintReadOnly Font of the chosen time.
Phase Font PhaseFont FSlateFontInfo Change Time › Text EditDefaultsOnly, BlueprintReadOnly Font of the phase line under the time.
Font Family FontFamily TSoftObjectPtr<UObject> Change Time › Text EditDefaultsOnly, BlueprintReadOnly The font family for the fonts above whose own Font Family is empty. Orbitron by default.
Text Colour TextColour FLinearColor Change Time › Colour EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.92, 0.95, 1.0, 1.0) Colour of the screen's text.
Scrim Colour ScrimColour FLinearColor Change Time › Colour EditDefaultsOnly, BlueprintReadOnly FLinearColor(0.0, 0.0, 0.0, 0.45) Colour of the backdrop dimming the world behind the screen.
Dial Dial TObjectPtr<UXenoCoreClockDial> Change Time BlueprintReadOnly, BindWidgetOptional No description.
Time Text TimeText TObjectPtr<UTextBlock> Change Time BlueprintReadOnly, BindWidgetOptional No description.
Phase Text PhaseText TObjectPtr<UTextBlock> Change Time BlueprintReadOnly, BindWidgetOptional No description.

Blueprint functions

Node Kind Signature Description
Step Hour Callable void StepHour(int32 Delta) Step the chosen hour by Delta, wrapping.
Set Selected Hour Callable void SetSelectedHour(int32 Hour) Set the chosen hour (0..23) and redraw.
Get Selected Hour Pure int32 GetSelectedHour() const The hour currently chosen on the dial.
Confirm Callable void Confirm() Change to the chosen hour (closes the menu and fades).
On Selected Hour Changed Event (implement in Blueprint) void K2_OnSelectedHourChanged(int32 Hour) No description.

UXenoCoreClockDial

Class · derives from UWidget · header XenoCoreRuntime/Public/World/XenoCoreChangeTimeScreen.h

A painted 24-hour clock face: day and night ticks, the current time, and the chosen hour's hand.

Properties

Property C++ name Type Category Specifiers Default Description
Selected Hour SelectedHour int32 Dial EditAnywhere, BlueprintReadWrite, ClampMin=0, ClampMax=23, UIMin=0, UIMax=23 12 The hour the hand points at, 0..23.
Dial Size DialSize FVector2D Dial EditAnywhere, BlueprintReadWrite FVector2D(360.0, 360.0) The dial's desired size on screen.
Face Colour FaceColour FLinearColor Dial EditAnywhere, BlueprintReadWrite FLinearColor(0.02, 0.03, 0.05, 0.88) Colour of the dial's face disc.
Day Colour DayColour FLinearColor Dial EditAnywhere, BlueprintReadWrite FLinearColor(1.0, 0.78, 0.35, 1.0) Colour of the daytime hour ticks and labels.
Night Colour NightColour FLinearColor Dial EditAnywhere, BlueprintReadWrite FLinearColor(0.45, 0.62, 1.0, 1.0) Colour of the night hour ticks and labels.
Hand Colour HandColour FLinearColor Dial EditAnywhere, BlueprintReadWrite FLinearColor(0.95, 0.97, 1.0, 1.0) Colour of the hand pointing at the chosen hour.
Hour Font HourFont FSlateFontInfo Dial EditAnywhere, BlueprintReadWrite Font of the hour labels round the dial.
Sun Icon SunIcon FSlateBrush Dial EditAnywhere, BlueprintReadWrite The sun at the hand's tip for a daytime hour.
Moon Icon MoonIcon FSlateBrush Dial EditAnywhere, BlueprintReadWrite The moon at the hand's tip for a night hour.
Sun Texture SunTexture TSoftObjectPtr<UTexture2D> Dial EditAnywhere, BlueprintReadWrite The texture for Sun Icon when that brush has no image. The minimap rim's sun by default.
Moon Texture MoonTexture TSoftObjectPtr<UTexture2D> Dial EditAnywhere, BlueprintReadWrite The texture for Moon Icon when that brush has no image. The minimap rim's moon by default.

UXenoCoreEnvironmentSettings

Class · derives from UDeveloperSettings · header XenoCoreRuntime/Public/World/XenoCoreEnvironmentSettings.h

The time of day and weather, project-wide: clock speed, phase hours, the time-change fade and the weather types.

Properties

Property C++ name Type Category Specifiers Default Description
Minutes Per Second MinutesPerSecond float Clock Config, EditAnywhere, BlueprintReadOnly, ClampMin=0, UIMax=60 1.0 In-game minutes per real second. XC1: 1 (a day is 24 real minutes).
New Game Start Hour NewGameStartHour float Clock Config, EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=23.99 10.0 The hour a new game starts at. Unsourced: XC1's opening hour is not documented.
Pause During Dialogue bPauseDuringDialogue bool Clock Config, EditAnywhere, BlueprintReadOnly true Stop the clock during conversations, as XC1 does (it stops in menus because menus pause the world).
Morning Start Hour MorningStartHour float Clock › Phases Config, EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=24 5.0 Hour Morning begins. XC1: 05:00 - which is also when daytime begins.
Day Start Hour DayStartHour float Clock › Phases Config, EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=24 6.0 Hour Day begins. XC1: 06:00.
Evening Start Hour EveningStartHour float Clock › Phases Config, EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=24 17.0 Hour Evening begins. XC1: 17:00.
Night Start Hour NightStartHour float Clock › Phases Config, EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=24 19.0 Hour Night begins - and daytime ends. XC1: 19:00.
Change Time Fade Out Seconds ChangeTimeFadeOutSeconds float Clock › Change Time Config, EditAnywhere, BlueprintReadOnly, ClampMin=0, Units=s 0.5 Changing the time from the menu: fade to black over this long, rather than a bare snap.
Change Time Hold Seconds ChangeTimeHoldSeconds float Clock › Change Time Config, EditAnywhere, BlueprintReadOnly, ClampMin=0, Units=s 0.35 ...hold the black this long (the time and weather snap here)...
Change Time Fade In Seconds ChangeTimeFadeInSeconds float Clock › Change Time Config, EditAnywhere, BlueprintReadOnly, ClampMin=0, Units=s 0.8 ...and fade back in over this long.
Weather Types WeatherTypes TSoftObjectPtr<UDataTable> Weather Config, EditAnywhere, BlueprintReadOnly, AllowedClasses=/Script/Engine.DataTable No description.

UXenoCoreSkyProfile

Class · derives from UPrimaryDataAsset · header XenoCoreRuntime/Public/World/XenoCoreSkyProfile.h · BlueprintType

A map's day: the sun and moon path, and per-hour ambient, exposure, fog and colour curves.

Properties

Property C++ name Type Category Specifiers Default Description
Sunrise Hour SunriseHour float Sun EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=24 5.0 The sun crosses the horizon rising. XC1's daytime starts 05:00.
Sunset Hour SunsetHour float Sun EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=24 19.0 ...and setting. XC1's nighttime starts 19:00.
Sun Max Elevation SunMaxElevation float Sun EditAnywhere, BlueprintReadOnly, ClampMin=5, ClampMax=90, Units=deg 62.0 Highest the sun climbs, at midday.
Sun Azimuth Swing SunAzimuthSwing float Sun EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=180, Units=deg 80.0 How far the sun swings either side of the map's authored heading between rise and set.
Sun Intensity Scale SunIntensityScale float Sun EditAnywhere, BlueprintReadOnly, ClampMin=0, UIMax=3 1.0 The sun's brightness, as a scale on the map's authored sun.
Twilight Degrees TwilightDegrees float Sun EditAnywhere, BlueprintReadOnly, ClampMin=1, ClampMax=18, Units=deg 9.0 How far below the horizon the sun keeps lighting the sky (twilight) before the moon takes over.
Moon Max Elevation MoonMaxElevation float Moon EditAnywhere, BlueprintReadOnly, ClampMin=5, ClampMax=90, Units=deg 48.0 Highest the moon climbs, in the middle of the night.
Moon Intensity Fraction MoonIntensityFraction float Moon EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=1 0.08 The moon's brightness, as a fraction of the map's authored sun.
Moon Color MoonColor FLinearColor Moon EditAnywhere, BlueprintReadOnly FLinearColor(0.62, 0.72, 1.0) The moonlight's colour.
Moon Disk Angle MoonDiskAngle float Moon EditAnywhere, BlueprintReadOnly, ClampMin=0.1, ClampMax=20, Units=deg 3.5 The moon as seen: its size on the sky. (The real moon is half a degree; a game moon reads bigger.)
Moon Disk Brightness MoonDiskBrightness float Moon EditAnywhere, BlueprintReadOnly, ClampMin=0, UIMax=50 4.0 The drawn moon's brightness (the material's Brightness).
Moon Material MoonMaterial TSoftObjectPtr<class UMaterialInterface> Moon EditAnywhere, BlueprintReadOnly The drawn moon. Empty = no moon drawn (the moonlight still shines).
Night Exposure Floor EV 100 NightExposureFloorEV100 float Night EditAnywhere, BlueprintReadOnly, UIMin=-4, UIMax=12 -2.0 Night stays night: the auto-exposure floor (EV100) at full dark. Higher = darker.
Star Material StarMaterial TSoftObjectPtr<class UMaterialInterface> Night EditAnywhere, BlueprintReadOnly Stars: the dome the director spawns round the map, faded in by darkness. Empty = no stars.
Star Brightness StarBrightness float Night EditAnywhere, BlueprintReadOnly, ClampMin=0, UIMax=40 6.0 The bright twinkling stars (the material's Brightness).
Milky Way Brightness MilkyWayBrightness float Night EditAnywhere, BlueprintReadOnly, ClampMin=0, UIMax=20 2.0 The Milky Way texture's brightness (the material's SkyBrightness).
Pole Tilt PoleTilt float Night EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=90, Units=deg 35.0 How far the sky's pole leans from straight up - the stars wheel round it through the night.
Sky Light Scale SkyLightScale FRuntimeFloatCurve Curves EditAnywhere, BlueprintReadOnly Sky light (ambient) as a scale on the map's authored value, by hour 0..24.
Exposure Offset ExposureOffset FRuntimeFloatCurve Curves EditAnywhere, BlueprintReadOnly Exposure offset in stops, by hour. Lifts the night so it reads as moonlit rather than black.
Fog Color Scale FogColorScale FRuntimeFloatCurve Curves EditAnywhere, BlueprintReadOnly Height-fog colour (and its sun-facing glow) as a scale on the authored colour, by hour.
Saturation Saturation FRuntimeFloatCurve Curves EditAnywhere, BlueprintReadOnly Colour saturation, by hour.
Sun Glow Tint SunGlowTint FRuntimeCurveLinearColor Curves EditAnywhere, BlueprintReadOnly Fog glow towards the sun, tinted by hour - warm at dawn and dusk.
Sun Glow Horizon Fade SunGlowHorizonFade float Curves EditAnywhere, BlueprintReadOnly, ClampMin=0, ClampMax=1 0.3 How much of the fog's glow towards the sun is left with the sun on the horizon (1 at 25 degrees up).
Scene Tint SceneTint FRuntimeCurveLinearColor Curves EditAnywhere, BlueprintReadOnly A colour tint over the whole picture, by hour (white = none). Night goes blue.
Light Step Minutes LightStepMinutes float Performance EditAnywhere, BlueprintReadOnly, ClampMin=0, UIMax=10 1.0 The sun moves in steps of this many in-game minutes (shadow cost).

UXenoCoreTimeOfDaySubsystem

Class · derives from UGameInstanceSubsystem · header XenoCoreRuntime/Public/World/XenoCoreTimeOfDaySubsystem.h

The in-game clock: minutes since midnight, the XC1 phases, and Change Time. Survives map travel and is saved.

Blueprint functions

Node Kind Signature Description
Get Minutes Pure float GetMinutes() const Minutes since midnight, 0..1440.
Get Hours Pure float GetHours() const Hours since midnight, 0..24, fractional.
Get Phase Pure EXenoCoreTimePhase GetPhase() const The current phase: Morning, Day, Evening or Night.
Is Daytime Pure bool IsDaytime() const True outside the Night phase (XC1: 05:00-19:00).
Is Nighttime Pure bool IsNighttime() const True during the Night phase.
Get Hour Block Pure int32 GetHourBlock() const 0..7: which three-hour block (XC1's NPC schedules).
Is In Phases Pure bool IsInPhases() int32 Mask) const True when the current phase is in Mask.
Get Time Text Pure FText GetTimeText() const "14:05".
Get Phase Text Pure FText GetPhaseText(EXenoCoreTimePhase Phase) The phase's player-facing name ("Morning", "Night").
Set Time Callable void SetTime(float Hours) Sets the time immediately (hours, 0..24).
Change Time With Fade Callable void ChangeTimeWithFade(APlayerController* Player, float Hours) Changes the time behind a fade to black, closing the menu first.
Is Changing Time Pure bool IsChangingTime() const True while ChangeTimeWithFade is running.
Add Clock Hold Callable void AddClockHold(FName Reason) Stops the clock until the same Reason is released.
Remove Clock Hold Callable void RemoveClockHold(FName Reason) Releases a hold added with AddClockHold under the same Reason.
Is Clock Stopped Pure bool IsClockStopped() const True when the clock is not advancing right now.

UXenoCoreWeatherSubsystem

Class · derives from UGameInstanceSubsystem · header XenoCoreRuntime/Public/World/XenoCoreWeatherSubsystem.h

The current weather: rolled per area from its weather table, re-rolled on a timer and when the time is changed. Saved.

Blueprint functions

Node Kind Signature Description
Get Current Weather Pure FGameplayTag GetCurrentWeather() const The weather now.
Get Current Weather Type Pure bool GetCurrentWeatherType(FXenoCoreWeatherTypeRow& OutType) const The current weather's type row.
Is Weather Pure bool IsWeather(FGameplayTag Tag) const True while the weather is Tag (or a child of it).
Set Weather Callable void SetWeather(FGameplayTag Weather, bool bLock = false, bool bInstant = false) Forces a weather, optionally locking it until Unlock Weather.
Unlock Weather Callable void UnlockWeather() Releases a lock and rolls the area's table.
Is Weather Locked Pure bool IsWeatherLocked() const No description.
Reroll Callable void Reroll(bool bInstant = false) Rolls the current area's table now.

XenoCoreEditor / (root)

Editor-only module: these classes are not in a packaged game. See Editor tools.

FXenoCoreRandomPlayerEntry

Struct · header XenoCoreEditor/Public/XenoCoreAnimLayerTools.h · BlueprintType

One entry in a state's Random Sequence Player: a clip, how often it gets picked, and how it comes in over whatever played before it.

Properties

Property C++ name Type Category Specifiers Default Description
Sequence Sequence TObjectPtr<UAnimSequenceBase> XenoCore EditAnywhere, BlueprintReadWrite nullptr No description.
Chance To Play ChanceToPlay float XenoCore EditAnywhere, BlueprintReadWrite, ClampMin=0 1.0 Relative pick weight, normalised against every other entry. Ignored in shuffle mode.
Min Loop Count MinLoopCount int32 XenoCore EditAnywhere, BlueprintReadWrite, ClampMin=0 0 No description.
Max Loop Count MaxLoopCount int32 XenoCore EditAnywhere, BlueprintReadWrite, ClampMin=0 0 No description.
Min Play Rate MinPlayRate float XenoCore EditAnywhere, BlueprintReadWrite, ClampMin=0 1.0 Play rate is randomised in this range each time the entry is picked.
Max Play Rate MaxPlayRate float XenoCore EditAnywhere, BlueprintReadWrite, ClampMin=0 1.0 Upper end of the randomised play rate.
Blend In Time BlendInTime float XenoCore EditAnywhere, BlueprintReadWrite, ClampMin=0 0.25 No description.

UXenoCoreAITools

Class · derives from UBlueprintFunctionLibrary · header XenoCoreEditor/Public/XenoCoreAITools.h

Editor-only AI authoring helpers.

Blueprint functions

Node Kind Signature Description
Build Companion Combat Spot Query Callable UEnvQuery* BuildCompanionCombatSpotQuery(const FString& PackagePath, float Radius = 230.0f, int32 NumPoints = 16, float SpacingClamp = 300.0f) Create or reset the companion combat-spot EQS query.
Build Companion Positional Spot Query Callable UEnvQuery* BuildCompanionPositionalSpotQuery(const FString& PackagePath, EXenoCoreArtPositional Position, float Radius = 230.0f, int32 NumPoints = 16, float SpacingClamp = 300.0f) Create or reset a companion positional-spot EQS query (Back or Side).
Spawn Actor In World Callable AActor* SpawnActorInWorld(TSubclassOf<AActor> ActorClass, FTransform Transform) Spawn an actor into the given object's world (e.g. the PIE world).

UXenoCoreAnimLayerTools

Class · derives from UBlueprintFunctionLibrary · header XenoCoreEditor/Public/XenoCoreAnimLayerTools.h

Editor-only scripted authoring for linked anim layers and anim graph nodes.

Blueprint functions

Node Kind Signature Description
Add Anim Layer To Interface Callable bool AddAnimLayerToInterface(UAnimBlueprint* InterfaceBlueprint, FName LayerName) Declares an animation layer on an Anim Layer Interface asset.
Implement Anim Layer Interface Callable bool ImplementAnimLayerInterface(UAnimBlueprint* Blueprint, UAnimBlueprint* InterfaceBlueprint) Makes Blueprint implement InterfaceBlueprint's layers.
Remove Anim Layer Interface Callable bool RemoveAnimLayerInterface(UAnimBlueprint* Blueprint, UAnimBlueprint* InterfaceBlueprint, bool bPreserveFunctions = false) Drops an implemented anim layer interface, discarding its layer graphs.
Add Linked Anim Layer Node Callable FString AddLinkedAnimLayerNode(UAnimBlueprint* Blueprint, UAnimBlueprint* InterfaceBlueprint, FName LayerName, UAnimBlueprint* DefaultLayerBlueprint, FName GraphName = NAME_None) Adds a Linked Anim Layer node to a graph and drives that graph's Output Pose from it.
Describe State Machine Callable FString DescribeStateMachine(UAnimBlueprint* Blueprint) Dumps a state machine's topology as JSON: every state with the asset driving it, and every transition with its endpoints, rule variable, crossfade and automatic-rule flag.
Set Transition Automatic Rule Callable FString SetTransitionAutomaticRule(UAnimBlueprint* Blueprint, FName FromState, FName ToState, bool bEnabled) Turns "Automatic Rule Based on Sequence Player in State" on or off for one transition, identified by the states it joins.
Move Graph Content Callable FString MoveGraphContent(UAnimBlueprint* Blueprint, FName SourceGraphName, FName DestGraphName) Moves every node except the Output Pose from one graph into another, and re-drives the destination's Output Pose from whatever drove the source's.
Add Montage Slot Callable FString AddMontageSlot(UAnimBlueprint* Blueprint, FName GraphName, FName SlotName) Inserts a montage Slot between whatever currently drives the Output Pose and the Output Pose, in any named graph.
Add Sequence Player To Graph Callable FString AddSequencePlayerToGraph(UAnimBlueprint* Blueprint, FName GraphName, UAnimSequence* Sequence, bool bLoop = true, bool bExposeSequencePin = false) Adds a Sequence Player to any named graph, and optionally exposes its Sequence as a pin so a variable can drive which clip it plays.
Add Additive Slot Branch Callable FString AddAdditiveSlotBranch(UAnimBlueprint* Blueprint, FName GraphName, FName SlotName) Inserts an additive slot branch before the Output Pose.
Set Skeleton Slot Group Callable FString SetSkeletonSlotGroup(USkeleton* Skeleton, FName SlotName, FName GroupName) Puts a montage slot in a slot group on a skeleton, creating the group if needed.
Describe Skeleton Slot Groups Callable FString DescribeSkeletonSlotGroups(USkeleton* Skeleton) Every slot group on a skeleton and its slots, as JSON - the read side of SetSkeletonSlotGroup.
Set Apply Additive Alpha Callable FString SetApplyAdditiveAlpha(UAnimBlueprint* Blueprint, FName GraphName, float Alpha) Sets the Alpha on every ApplyAdditive node in the graph.
Add Upper Body Slot Branch Callable FString AddUpperBodySlotBranch(UAnimBlueprint* Blueprint, FName GraphName, FName SlotName, FName RootBone) Inserts an upper-body montage slot before the Output Pose.
Add Inertialization Callable FString AddInertialization(UAnimBlueprint* Blueprint, FName GraphName) Inserts an Inertialization node immediately before the Output Pose.
Add Use Cached Pose Callable FString AddUseCachedPose(UAnimBlueprint* Blueprint, FName GraphName, FString CacheName, int32 PosX, int32 PosY) Places a "Use cached pose" node bound to the Save cached pose node named CacheName.
Add Stride Warping Callable FString AddStrideWarping(UAnimBlueprint* Blueprint, FName GraphName, FName StrideScaleVariable) Inserts a Stride Warping node directly after the locomotion state machine, with its StrideScale pin driven by a variable get on the named property.
Expose Anim Node Pin Callable FString ExposeAnimNodePin(UAnimBlueprint* Blueprint, FName PropertyName) Ticks "expose as pin" for a named property on every anim node that has it.
Wire Anim Node Pin Callable FString WireAnimNodePin(UAnimBlueprint* Blueprint, FName PinName, FName VariableName, bool bReplaceExisting = false) Drives a named input pin on every anim node that carries it from a variable getter.
Wire Blend Space Pin Callable FString WireBlendSpacePin(UAnimBlueprint* Blueprint, FName PinName, FName VariableName, bool bReplaceExisting = false) Wires a named input pin on every Blend Space Player node to a variable get.
Set Graph Blend Space Player Callable FString SetGraphBlendSpacePlayer(UAnimBlueprint* Blueprint, FName GraphName, UBlendSpace* BlendSpace) Drives a graph's Output Pose from a bare Blend Space Player, replacing whatever drove it.
Set Blend Space On Players Callable FString SetBlendSpaceOnPlayers(UAnimBlueprint* Blueprint, UBlendSpace* BlendSpace) Repoints every Blend Space Player node at a different blend space asset.
Set State Random Player Callable FString SetStateRandomPlayer(UAnimBlueprint* Blueprint, FName StateName, const TArray<FXenoCoreRandomPlayerEntry>& Entries, bool bShuffle = false) Replaces whatever drives a state's Output Pose with a Random Sequence Player over Entries.
Describe Graphs Callable TArray<FString> DescribeGraphs(UAnimBlueprint* Blueprint) Lists graph names on a Blueprint with their concrete UClass, so graph *type* is checkable from script.
Get Node Comments Callable TArray<FString> GetNodeComments(UAnimBlueprint* Blueprint, FName GraphName) Reads node comments from a graph, as "NodeName | Class | comment".
Set Node Comment Callable bool SetNodeComment(UAnimBlueprint* Blueprint, FName GraphName, FString NodeName, FString Comment) Sets a node's comment bubble.
Add Comment Box Callable FString AddCommentBox(UAnimBlueprint* Blueprint, FName GraphName, FString Comment, const TArray<FString>& NodeNames) Adds an EdGraphNode_Comment box around the named nodes, or the whole graph if none given.
Describe Parent Asset Overrides Callable TArray<FString> DescribeParentAssetOverrides(UAnimBlueprint* ChildBlueprint) Lists what a child anim blueprint currently overrides, resolved back to the parent node so the readout says which clip was replaced rather than a bare guid.

UXenoCoreCameraTools

Class · derives from UBlueprintFunctionLibrary · header XenoCoreEditor/Public/XenoCoreCameraTools.h

Editor only.

Blueprint functions

Node Kind Signature Description
Create Camera Node Callable UCameraNode* CreateCameraNode(UCameraRigAsset* CameraRig, TSubclassOf<UCameraNode> NodeClass) Creates a camera node of the given class inside a camera rig.
Set Root Node Callable bool SetRootNode(UCameraRigAsset* CameraRig, UCameraNode* RootNode) Sets a camera rig's root node - the link the graph editor makes from its "Root Node" pin.
Set Sequence Children Callable bool SetSequenceChildren(UArrayCameraNode* SequenceNode, const TArray<UCameraNode*>& Children) Replaces a Sequence node's children, in run order.
Describe Camera Rig Callable TArray<FString> DescribeCameraRig(UCameraRigAsset* CameraRig) Describes a rig's node tree as "depth | name | class", walking UCameraNode::GetChildren.
Create Rig Transition Callable UCameraRigTransition* CreateRigTransition(UCameraRigAsset* CameraRig, TSubclassOf<UBlendCameraNode> BlendClass, bool bEnterTransition) Creates an enter or exit transition on a camera rig, carrying a blend of the given class.
Describe Rig Transitions Callable TArray<FString> DescribeRigTransitions(UCameraRigAsset* CameraRig) Describes a rig's enter and exit transitions - the readback the arrays themselves deny.
Build Camera Rig Callable FString BuildCameraRig(UCameraRigAsset* CameraRig) Builds a camera rig and reports the resulting build status.

UXenoCoreCosmeticTools

Class · derives from UBlueprintFunctionLibrary · header XenoCoreEditor/Public/XenoCoreCosmeticTools.h

Editor helpers for a pawn Blueprint's cosmetic body-mesh rules.

Blueprint functions

Node Kind Signature Description
Set Body Mesh Defaults Callable TArray<FString> SetBodyMeshDefaults(UBlueprint* Blueprint, bool bDryRun = false, USkeletalMesh* FallbackMesh = nullptr) Sets BodyMeshes.DefaultMesh on each character-parts template this Blueprint owns (its own component, or its own override of an inherited one) that has none, to the mesh the pawn uses today, or to FallbackMesh when the pawn has no mesh of its own (an abstract base).
Describe Body Meshes Callable TArray<FString> DescribeBodyMeshes(UBlueprint* Blueprint) Describes every character-parts template this Blueprint uses: whether it owns it, its default mesh and its rules.

UXenoCoreEnvironmentTools

Class · derives from UBlueprintFunctionLibrary · header XenoCoreEditor/Public/XenoCoreEnvironmentTools.h

No description.

Blueprint functions

Node Kind Signature Description
Build Terrain Material Callable UMaterial* BuildTerrainMaterial(const FString& AssetPath) Creates (or rebuilds) the procedural landscape material at AssetPath.
Build Natural Material Callable UMaterial* BuildNaturalMaterial(const FString& AssetPath) Creates (or rebuilds) the procedural rock / bark / canopy material at AssetPath.
Build Scanned Rock Material Callable UMaterial* BuildScannedRockMaterial(const FString& AssetPath) Creates (or rebuilds) the scanned-rock material at AssetPath.

UXenoCoreGameplayEffectTools

Class · derives from UBlueprintFunctionLibrary · header XenoCoreEditor/Public/XenoCoreGameplayEffectTools.h

Editor-only authoring for GameplayEffects.

Blueprint functions

Node Kind Signature Description
Set Granted Tags Callable FString SetGrantedTags(UBlueprint* EffectBlueprint, FGameplayTagContainer GrantedTags) Tags the effect grants to its target while active.
Set Application Requirements Callable FString SetApplicationRequirements(UBlueprint* EffectBlueprint, FGameplayTagContainer RequireTags, FGameplayTagContainer IgnoreTags) Tags the target must have (or must not have) for the effect to apply at all.
Describe Effect Callable FString DescribeEffect(UBlueprint* EffectBlueprint) Reads back what an effect grants and requires, so a write can be verified rather than assumed.

UXenoCoreGraphTools

Class · derives from UBlueprintFunctionLibrary · header XenoCoreEditor/Public/XenoCoreGraphTools.h

Editor only.

Blueprint functions

Node Kind Signature Description
Get Node Rect Callable FVector4 GetNodeRect(const UEdGraphNode* Node) X, Y, Width, Height.
Set Node Rect Callable void SetNodeRect(UEdGraphNode* Node, int32 X, int32 Y, int32 Width = 0, int32 Height = 0) Moves any node.
Open Graph Callable bool OpenGraph(UEdGraph* Graph) Opens the graph's Blueprint editor on this graph and zooms to fit it - for screenshots.
Open Graph At Callable bool OpenGraphAt(UEdGraph* Graph, float X, float Y, float Zoom = 1.f) Opens the graph with its view's top-left at (X, Y) at the given zoom (1 = 100%) - for close-up screenshots.

UXenoCoreMapTools

Class · derives from UBlueprintFunctionLibrary · header XenoCoreEditor/Public/XenoCoreMapTools.h

Editor-only map authoring helpers: a map's default experience, landscape creation and ground height.

Blueprint functions

Node Kind Signature Description
Set Default Gameplay Experience Callable bool SetDefaultGameplayExperience(UWorld* World, const FString& ExperienceClassPath) Points a map's world settings at an experience.
Get Default Gameplay Experience Callable FString GetDefaultGameplayExperience(UWorld* World) What the map currently opens with, as a class path.
Create Landscape From Heightmap Callable class ALandscape* CreateLandscapeFromHeightmap(UWorld* World, const FString& HeightmapFile, FVector Location, FVector Scale, int32 QuadsPerSection = 127, int32 SectionsPerComponent = 2, int32 GridSizeInComponents = 1, class UMaterialInterface* Material = nullptr, const FString& Label = TEXT("Landscape")) Creates a landscape from a 16-bit greyscale heightmap, like Landscape mode's Import from File.
Get Landscape Height At Callable bool GetLandscapeHeightAt(class ALandscapeProxy* Landscape, double X, double Y, double& OutZ) Height of a landscape's surface at a world xy, readable from a commandlet.

UXenoCoreMaterialTools

Class · derives from UBlueprintFunctionLibrary · header XenoCoreEditor/Public/XenoCoreMaterialTools.h

No description.

Blueprint functions

Node Kind Signature Description
Describe Material Wiring Callable FString DescribeMaterialWiring(UMaterial* Material) Every connected root input (by EMaterialProperty name) and every connected input of every expression.
Disconnect Material Property Callable bool DisconnectMaterialProperty(UMaterial* Material, FName PropertyName) Cut the root input for a property, by name without the MP_ prefix ("PixelDepthOffset", "Anisotropy", ...).
Disconnect Expression Inputs Callable int32 DisconnectExpressionInputs(UMaterial* Material, FName ExpressionClassName, FName InputName) Cut one named input of every expression of the given class in the material (e.g. the Substrate legacy conversion's "Anisotropy").

UXenoCoreMinimapTools

Class · derives from UBlueprintFunctionLibrary · header XenoCoreEditor/Public/XenoCoreMinimapTools.h

No description.

Blueprint functions

Node Kind Signature Description
Build Minimap Material Callable UMaterial* BuildMinimapMaterial(const FString& AssetPath) Creates (or rebuilds in place) the minimap material at AssetPath, e.g.

UXenoCoreNiagaraTools

Class · derives from UBlueprintFunctionLibrary · header XenoCoreEditor/Public/XenoCoreNiagaraTools.h

Editor-only authoring helpers for Niagara systems.

Blueprint functions

Node Kind Signature Description
Set Color Constants Callable FString SetColorConstants(UNiagaraSystem* System, const FString& NameContains, FLinearColor Value) Sets every LinearColor rapid-iteration parameter whose name contains NameContains, across every emitter and script in the system.
List Color Constants Callable FString ListColorConstants(UNiagaraSystem* System) Lists every LinearColor rapid-iteration parameter, so a caller can see what it may set.

UXenoCoreProjectSetup

Class · derives from UBlueprintFunctionLibrary · header XenoCoreEditor/Public/XenoCoreProjectSetup.h

No description.

Blueprint functions

Node Kind Signature Description
Get Pending Steps Callable TArray<FString> GetPendingSteps() One line per step still to do, e.g.
Apply Project Setup Callable bool ApplyProjectSetup(TArray<FString>& OutApplied, TArray<FString>& OutConflicts) Applies every pending step to the project's Config/Default*.ini.
Get Conflicts Callable TArray<FString> GetConflicts() Steps the project overrides with its own value; reported, never written.

UXenoCoreReleaseTools

Class · derives from UBlueprintFunctionLibrary · header XenoCoreEditor/Public/XenoCoreReleaseTools.h

Editor only.

Blueprint functions

Node Kind Signature Description
Get Preview Mesh Path Callable FString GetPreviewMeshPath(UObject* Asset) Empty when unset.
Set Preview Mesh Callable bool SetPreviewMesh(UObject* Asset, USkeletalMesh* Mesh) Sets (or, with Mesh = None, clears) the preview mesh on anything implementing IInterface_PreviewMeshProvider - anim assets and skeletons.
List Preview Attachments Callable TArray<FString> ListPreviewAttachments(USkeleton* Skeleton) Every preview attachment on a skeleton, as "<soft path>@<attach point>", without loading.
Remove Preview Attachments Under Callable int32 RemovePreviewAttachmentsUnder(USkeleton* Skeleton, const FString& PathPrefix) Removes every preview attachment whose soft path starts with PathPrefix (e.g.
Fixup Redirectors Under Callable int32 FixupRedirectorsUnder(const TArray<FString>& PackagePaths) Fix up every redirector under the given package paths: re-save their referencers onto the real asset, then delete the redirectors that nothing references any more.

UXenoCoreSkyTools

Class · derives from UBlueprintFunctionLibrary · header XenoCoreEditor/Public/XenoCoreSkyTools.h

No description.

Blueprint functions

Node Kind Signature Description
Build Star Material Callable UMaterial* BuildStarMaterial(const FString& AssetPath) Creates (or rebuilds in place) the star material at AssetPath.
Build Moon Material Callable UMaterial* BuildMoonMaterial(const FString& AssetPath) Creates (or rebuilds in place) the moon material at AssetPath.
Build Rain Streak Material Callable UMaterial* BuildRainStreakMaterial(const FString& AssetPath) Creates (or rebuilds in place) the rain streak material at AssetPath.

UXenoCoreStateTreeTools

Class · derives from UBlueprintFunctionLibrary · header XenoCoreEditor/Public/XenoCoreStateTreeTools.h

Editor-only StateTree helpers: compile a StateTree from script.

Blueprint functions

Node Kind Signature Description
Compile State Tree Callable void CompileStateTree(UStateTree* StateTree, bool& bOutSuccess, TArray<FString>& OutLog) Recompile a StateTree's editor data into the runtime data the game actually executes.