How-To: Position Pops with the Target Component (Optional)

Goal: control where a pop appears on each actor - a skeletal-mesh socket (head, chest) or a fixed offset. Without this component, pops appear 100 cm above the actor's root, so this is purely a placement upgrade.

Prerequisites
You completed Quick Start.

1. Add the component to the target actor

Character Blueprint -> Add Component -> Crimson Number Pop Target Component -> set Socket Name (e.g. head) or Relative Offset.

2. How the location resolves

The server resolves the location inside BroadcastNumberPop before sending, so every client receives a ready-to-use position. The order is:

  1. The event's WorldLocation, when the caller set one (bHasWorldLocation, or any non-zero location).
  2. The target's UCrimsonNumberPopTargetComponent socket, when SocketName is set and exists on the actor's skeletal mesh.
  3. The target's root location + the component's RelativeOffset (default 100 cm up).
  4. No component at all: the target's root location + 100 cm up.

The same fallback chain is exposed as a static helper for your own systems: UCrimsonNumberPopTargetComponent::ResolvePopLocation(const AActor*) (C++-only - it is not a UFUNCTION).

Verify
Set SocketName to head on a character - its pops now spawn at the head bone instead of 100 cm above the root. Clear it and they return to the offset.

See also

  • Concept: Event Flow & Replication - why the location is resolved server-side and quantized.