API Reference Component Member Kind Purpose FindWarpComponent(Actor)Static, pure The Crimson warping component on an actor, or null ResolveAndApply(Profile, Montage, Request, OutResult)Callable Resolve and plant in one call; returns a handle ApplyResolved(Result, Montage, Scope, bForceDebugDraw)Callable Plant an already-resolved point PreviewResolve(Profile, Montage, Request, OutResult)Callable Resolve without planting or touching the world Release(Handle)Callable Release one planted target; idempotent and safe to call late ReleaseAll()Callable Release everything this component planted GetActiveLeaseCount()Pure How many targets are currently leased GetEngineWarpingComponent()Pure The engine UMotionWarpingComponent, creating it if absent GetLastResult()Pure The last result resolved, for debug tooling
Blueprint library Function Kind Purpose CrimsonResolveWarp(Avatar, Profile, Montage, Request, OutResult)Callable The whole decision, without planting anything GetCrimsonWarpRadius(Actor)Pure The horizontal collision radius used for standoff math WasCrimsonWarpPlanted(Result)Pure Whether that outcome actually planted a target DescribeCrimsonWarpResult(Result)Pure One line explaining what happened and why
Ability task Member Kind Purpose CrimsonWarpToTarget(OwningAbility, Profile, Montage, Request)Factory Creates the task. This is the Crimson Warp To Target node OnResolvedDelegate A target was planted. Carries the full result OnFailedDelegate Nothing was planted. Carries the result and its outcome GetMutableWarpProfile()Pure, internal This activation's profile copy. Used by the node's override pins
Profile settings Property Default Purpose WarpTargetNameAttackTargetMust match the montage notify's warp target name exactly TargetSourceProviderWhere to look for a target TargetPurposeTagNone Passed to the provider so one implementation can answer differently bRequireCommittedTargetfalse Ignore soft targets and warp only toward a deliberate lock ScaleBand(0.30, 1.30) Usable reach as a multiplier of authored travel. Only the upper bound clamps bUseExplicitReachOverridefalse Replace the band with absolute centimeters MinReach / MaxReach0 / 500 The absolute band, when the override is on TooFarPolicyClampToMaxReachWhat to do when the target is out of reach ContactOffset0 Added on top of both capsule radii bUseTargetCapsuleRadiustrue Include the target's own radius in the standoff ArrivalTolerance5 A gap below this counts as already arrived bClampToGeometrytrue Sweep the path and stop at blocking geometry GeometryObjectTypesWorldStaticWhat counts as blocking GeometrySkin2 Clearance kept from a blocking hit bFaceTargettrue Face the aim point as the warp runs MaxTurnSeconds0 Cap on how long the turn may take. Zero uses the notify's own settings ScopeUntilTaskEndsHow long a planted target lives bAlwaysDrawDebugfalse Draw this profile's resolves regardless of the console variable
Result Field Meaning OutcomeWhy the warp came out this way WarpTargetNameThe name this resolved for TargetActorWhat it resolved toward WarpPoint / WarpRotationExactly what was handed to the engine PredictedStartWhere the character is predicted to be when the window opens DistanceToTargetHorizontal distance from the predicted start to the target StopDistanceBoth capsule radii plus the contact offset GapToCloseDistance actually needing travel, floored at zero NaturalTravelWhat the window travels unassisted AppliedTravelWhat the character will actually travel RequiredScalePre-clamp ratio - what stock Motion Warping would have applied AppliedScalePost-clamp ratio. 1.0 means the animation plays as authored MinUsableReach / MaxUsableReachThe reach band in centimeters MaxTurnSecondsThe turn cap in force for this activation WindowStartTime / WindowEndTimeThe warp window's span WindowCountHow many windows share this name FirstWindowScaleThe scale the first window alone will apply. Diagnostic bGeometryClampedWhether geometry shortened the path bServerCorrectedWhether the server overruled a client's point
Enums Enum Values ECrimsonWarpOutcomeNotResolved, InRange, CompressedTooClose, ClampedTooFar, ClampedByGeometry, AlreadyInPlace, NoTarget, NoWarpWindow, NoRootMotion, NotRootMotionMontage, BlockedECrimsonWarpTooFarPolicyClampToMaxReach, PlayUnwarped, BlockActivation, ReportOnlyECrimsonWarpTargetSourceProvider, Explicit, ProviderThenExplicit, ExplicitThenProviderECrimsonWarpScopeUntilTaskEnds, UntilMontageEnds, Manual
Request Field Purpose ExplicitTargetWarp toward this actor instead of asking the provider ExplicitLocationWarp toward this world location, when no explicit actor is set bHasExplicitLocationEnables the location above MontagePositionAtResolveMontage position when resolving. Zero when resolving before playback
Per-activation tuning is not on the request Values such as the turn cap and the reach band are overridden with the node's own pins, which write onto a per-activation copy of the profile. See How-To: Override Values Per Attack .
Target provider The interface is owned by this plugin. A targeting system that must not depend on motion warping answers through glue code that implements it (CrimsonCore does this for the camera lock-on).
Member Purpose ICrimsonWarpTargetProviderThe interface to implement. Blueprint-implementable GetCrimsonWarpTarget(Query, OutResult)Return the current target, or false when there is none GetCrimsonWarpTargetPriority()Higher wins when an actor carries several providers FindBestWarpTargetProvider(Actor)Static. The highest-priority provider on an actor FindWarpTarget(Actor, Query, OutResult)Static. Find the best provider and query it in one call FCrimsonWarpTargetQueryPurposeTag, InstigatorActor, MaxSearchDistanceFCrimsonWarpTargetResultTargetActor, AimComponent, AimSocketName, AimWorldLocation, bIsCommitted
Project settings Setting Default Purpose bWarnOnMissingWarpTargettrue Warn when a warp window goes live with nothing planted MissingWarpTargetWarnInterval5 Seconds between repeats of that warning ServerAcceptTolerance100 How far a client's point may sit from the server's before it is clamped LeaseSlackSeconds1 Extra time on the target expiry watchdog bAllowDebugDrawingtrue Project-wide gate for this plugin's debug drawing DebugDrawDuration2 How long debug drawing persists
Console Command Purpose Crimson.MotionWarping.Debug 1Draw the reach rings, the path taken, and the standoff ring Crimson.MotionWarping.DevToolsOpen the live Play In Editor inspector
Editor tooling Create a profile from the Content Browser: right-click -> Crimson Plugins -> Motion Warping -> Warp Profile .
Gameplay tags Shipped for the profile's TargetPurposeTag, so one provider can answer differently depending on what is asking. Providers may ignore them.
Tag For CrimsonMotionWarping.Purpose.MeleeClose-range attack looking for what it is about to strike CrimsonMotionWarping.Purpose.RangedRepositioning for a ranged attack CrimsonMotionWarping.Purpose.DashMovement closing or opening a gap CrimsonMotionWarping.Purpose.FinisherExecution that must line up with one specific victim CrimsonMotionWarping.Purpose.TraversalVault or mantle, where the target comes from geometry