How-To: Filter Pops Per Player (Optional)

Goal: let each player choose which numbers they see (own damage, ally damage, enemy damage, incoming, heals, crits-only, distance cap) and how they render (widget scale, number format). Without this component every event is displayed - it is entirely optional.

Prerequisites
You completed Quick Start. On the full Crimson stack, skip the manual setup: How-To: Expose Pop Options as User Settings creates and drives this component for you.

1. Add the component to your PlayerController

UCrimsonNumberPopPlayerSettings lives on the PlayerController. The subsystem finds it on the local controller automatically - settings are local-only and never replicate.

PlayerController Blueprint -> Add Component -> Crimson Number Pop Player Settings. Defaults are set in the Details panel.
Verify
The PlayerController lists the component; pops still display with the default values (everything on except enemy damage and crits-only).

2. Configure the filters

All properties are BlueprintReadWrite - set defaults in the Details panel and change them at runtime from your options UI. The event's Tags are matched against HealTags / CritTags, so fill those with the tags your broadcasts actually use.

PropertyDefaultEffect
bShowMyDamageDealttrueEvents where the local pawn is the Instigator
bShowAllyDamageDealttrueEvents instigated by a friendly (see How-To: Bind Your Team System)
bShowEnemyDamageDealtfalseEvents instigated by an enemy (PvP spectating)
bShowIncomingDamagetrueEvents targeting the local pawn - overrides the instigator filters, so you always see what hits you
bShowHealstrueEvents whose tags overlap HealTags
bShowCritsOnlyfalseSuppress everything whose tags do not overlap CritTags (incoming hits on you remain visible)
MaxDisplayDistance3000 cmSuppress pops farther than this from the local pawn. Applies to every category, heals included; events targeting the local pawn are exempt. 0 = no limit
WidgetScale1.0Per-player render-scale multiplier applied to every pop widget (0.5 - 2.0); multiplied by the project distance-scale curve when one is set (How-To: Scale Pops by Camera Distance)
NumberFormatOverride-1-1 = use the project's NumberFormat; 0 / 1 / 2 = CommaSeparated / Abbreviated / Raw
Verify
Turn bShowHeals off at runtime - heal pops stop appearing for that player while damage pops continue. Set WidgetScale to 2.0 and the next pop renders at double size.
Persistence
The component does not save itself. On the full stack, How-To: Expose Pop Options as User Settings persists every knob through CrimsonSettings; standalone, write the properties through your own save path.

See also

  • How-To: Bind Your Team System - make the ally/enemy toggles mean something.
  • How-To: Expose Pop Options as User Settings - drive all of this from a saved options menu.
  • Concept: Event Flow & Replication - where in the pipeline the filter runs.