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.
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.
| Property | Default | Effect |
|---|---|---|
bShowMyDamageDealt | true | Events where the local pawn is the Instigator |
bShowAllyDamageDealt | true | Events instigated by a friendly (see How-To: Bind Your Team System) |
bShowEnemyDamageDealt | false | Events instigated by an enemy (PvP spectating) |
bShowIncomingDamage | true | Events targeting the local pawn - overrides the instigator filters, so you always see what hits you |
bShowHeals | true | Events whose tags overlap HealTags |
bShowCritsOnly | false | Suppress everything whose tags do not overlap CritTags (incoming hits on you remain visible) |
MaxDisplayDistance | 3000 cm | Suppress pops farther than this from the local pawn. Applies to every category, heals included; events targeting the local pawn are exempt. 0 = no limit |
WidgetScale | 1.0 | Per-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.