Skip to content
Tuxedo CatSTUDIO
Menu

Public API

Review draft. This source page has not completed website editorial and release-specific verification.

  • USkillProgressionSchedule: finite XPThresholds (int64), ValidateSchedule, TryGetXPThreshold.
  • USkillProfile: ordered Skills (FSkillDefinition) and optional GlobalProgressionSchedule; ValidateProfile, FindSkillDefinition, SupportsSkill.
  • FSkillDefinition: exact SkillId, display text, Starting/Base/Effective ranges, optional per-Skill schedule.

USkillComponent initializes from its assigned profile. Normal component registration automatically adds it to USkillComponentRegistrySubsystem, a GameInstance-scoped service.

Consumers bind to OnSkillComponentRegistered() and OnSkillComponentUnregistered(), then call GetRegisteredSkillComponents() to take a snapshot. Binding first and then snapshotting avoids missing startup-time components; consumer binding must be idempotent because a component may be in both the snapshot and a notification received during setup. Snapshot order follows registration order. Entries are weakly owned and only valid components are returned. The registry is isolated per GameInstance, updates on the game thread, and is cleaned during component unregistration and GameInstance teardown. Registry mutation is private to Skill Director, and no world scan is used.

The registry reports component lifecycle only. It does not change Skill initialization, progression, modifiers, semantic events, participant identity, or persistence, and has no SignalBus dependency.

Queries include IsInitialized, HasSkill, TryGetStartingSkillValue, TryGetBaseSkillValue, TryGetEffectiveSkillValue, TryGetSkillXP, TryGetSkillXPRequiredForNextIncrease, TryGetActiveModifiers, TryGetGlobalXP, TryGetGlobalXPRequiredForNextSkillPoint, and TryGetUnspentSkillPoints. TryGet returns false when unavailable or not owned; zero remains a valid value.

Mutations are GrantGlobalXP(int64, FName), GrantSkillXP(FGameplayTag, int64, FName), SpendSkillPoint(FGameplayTag, FName), SetModifier(FName, FGameplayTag, int32, FName), and RemoveModifier(FName). Each returns FSkillMutationResult with ESkillMutationStatus and ESkillMutationReason.

Native and Blueprint-assignable events are SkillIncreased, SkillPointAwarded, SkillPointInvested, ModifierChanged, EffectiveSkillValueChanged, and SkillStateRestored. Events are post-commit; the mutation-specific event precedes an Effective-change event.

CapturePersistenceSnapshot, ValidatePersistenceSnapshot, and RestorePersistenceSnapshot use FSkillPersistenceSnapshot, FSkillPersistenceValidationResult, and FSkillPersistenceRestoreResult. Schema version is SkillDirectorPersistence::CurrentSchemaVersion (1).

  • Canonical optional SignalBus integration is provided by DirectorBridge and observes committed Skill events. SignalBus is not part of the Skill owner API.
  • SaveGame contributor registration and factory identity belong to optional DirectorBridge modules; they are not part of the Skill owner API.
  • Optional Character State condition projection is provided by DirectorBridge’s CharacterState.Skill integration through Skill Director’s public modifier API. Skill Director does not depend on Character State.