How-To: Get the Building Blocks
Goal: obtain every object the other pages assume - the component, a target provider, the settings, and the profile - in both Blueprint and C++.
1. Get the warping component
Call Find Warp Component with the actor. It is a static pure node, so it needs no reference to the component itself. Leaving Actor unset defaults it to self.
2. Supply a target
The plugin never picks targets itself. It asks the avatar for an ICrimsonWarpTargetProvider, an interface that lives in CrimsonCommon so that any system can answer without this plugin depending on it. Implement it on the pawn or on any of its components; when an actor carries several, the highest GetCrimsonWarpTargetPriority wins, and ties break on object name so the choice is identical on every machine.
FCrimsonWarpTargetResult reports the target actor and the aim point separately, and they are not interchangeable. The actor is the standoff reference: the plugin centres its stopping ring on the actor's location and reads its capsule radius. The aim point is a look-at position, typically a chest or head socket, which on a large enemy sits well off the actor's horizontal centre - centring a stopping ring on it would place the ring off the target's own collision.
Add the Crimson Warp Target Provider interface to your component or pawn (Class Settings -> Interfaces -> Add). Implement Get Crimson Warp Target: set Target Actor on the out struct, set Aim World Location, and return true. Return false when you have nothing - that is normal, not an error.
Also implement Get Crimson Warp Target Priority and return a constant. Anything above the default wins over a lower-priority provider on the same pawn.
UCrimsonLockOnComponent (CrimsonCamera) implements this interface, so a character that already locks on needs no work here. It reports the hard-locked target when there is one, otherwise the soft-tracked target, and sets bIsCommitted for the hard lock.Target other than (none). See How-To: Diagnose a Warp.3. Pass a target explicitly instead
When you already know what to warp toward, skip the provider. Set the profile's Target Source to Explicit and fill the Request pin, or leave it on Provider Then Explicit so the request is a fallback.
On Crimson Warp To Target, expand the Advanced section and split the Request pin (right-click -> Split Struct Pin). Set Explicit Target to an actor, or set Explicit Location and tick b Has Explicit Location.
4. Reach the project settings
Project Settings -> Crimson -> Crimson Motion Warping holds the project-wide safety nets: the missing-target warning and its rate limit, the server's acceptance tolerance, the lease watchdog slack, and the debug drawing gate. Anything describing a particular attack belongs on a profile instead.
Edit them in Project Settings. They are read by the plugin at runtime; there is no Blueprint accessor, because nothing in a project should be changing project-wide safety limits at play time.
See also
- Quick Start
- How-To: Diagnose a Warp
- API Reference