Key Features
- Five-stage taming state machine (
Wild,Suspicious,Tolerant,Bonded,Domesticated), always derived from a singleCurrentProgressvalue - Six configurable taming methods as a Blueprint bitmask: Passive Feeding, Repeated Interaction, Immobilize And Calm, Raise From Young, Bonding Over Time, Item Assisted
- Trust / Fear / Aggression vitals replicated as one unit
- Approach reactions (Ignore → Alert → Threaten → Flee) scaled by trust, plus a separate “has noticed” observation radius for AI
- Multi-player contribution tracking with configurable ownership resolution (highest contribution, final contributor, first contributor, or an external resolver interface)
- Juvenile handling (
RaiseFromYounggating, bonus multiplier) - Damage interruption with trust penalties and possible regression
- Calmed-state windows that gate
ImmobilizeAndCalmand dampen aggression - Standalone save/load fallback that works without any other WarPath plugin installed
- Optional soft dependency on UMI; no hard dependency on any inventory system
Architecture
UTamingComponent— the only component in the plugin; owns all per-creature taming state. No client-callableUFUNCTIONs —ProcessInteractionis a plain, authority-checked method meant to be called from your own already-server-authoritative interaction code path, not exposed as an RPC itselfUTamingProfileDataAsset— per-species configuration: stage thresholds, allowed methods, ownership resolution modeUTamingSaveHandler— subsystem-level save/load bridgeBTDecorator_TamingStageAtLeast/BTService_TamingStageMonitor— Behavior Tree nodes for gating and monitoring AI behavior by taming stage- Interfaces for integration:
ITamingHandoffReceiver,ITamingOwnershipResolver,ITamingPlayerIdentityProvider,ITamingSkillModifierProvider
Multiplayer
Fully server authoritative.ProcessInteraction independently validates range, line of sight, method eligibility, item tags, claim-lock, and cooldown regardless of caller — it never trusts the calling controller’s identity or a skill-modifier override to have been pre-validated.
Integration
TamingSystem has no hard dependency on any inventory or ownership plugin:- Items:
PresentedItemTagsis asserted by the caller to represent items already verified and consumed by the caller’s own inventory system — TamingSystem only checks tag membership against the profile, never possession - Skill modifiers: resolved via
ITamingSkillModifierProvideron the controller/pawn - Player identity: resolved via
ITamingPlayerIdentityProvider, with a shared default fallback - Hand-off: on reaching
Domesticated, hands off toHandoffTargetOverride(or the owning actor) viaITamingHandoffReceiver— the Husbandry System is the intended consumer of this hand-off, but any system can implement the interface
