CrimsonNumberPop · Lesson 6 of 8

Per-Player Filters

Beginner4 minRuntimeSettings

Before you start

  • Completed: Replicate & Broadcast
Video coming soon

Chapters

1. Add the settings component

Add `CrimsonNumberPopPlayerSettings` to your Player Controller. It's local-only and never replicates — every player filters their own screen.

The player settings component on the Player Controller.

2. The toggles

bShowMyDamageDealt, bShowAllyDamageDealt, bShowEnemyDamageDealt, bShowIncomingDamage (overrides the instigator filters), bShowHeals, bShowCritsOnly — plus HealTags/CritTags to classify, Max Display Distance (default 3000 cm; your own pawn is exempt; 0 = unlimited), Widget Scale (0.5–2.0), and a per-player Number Format Override.

3. Teaching it your teams

Ally/enemy filters need to know who's friendly. Subclass the settings component and override `IsInstigatorFriendly` (a BlueprintNativeEvent taking the local pawn and the instigator); C++ can instead bind the IsActorFriendly delegate — the Blueprint override wins when both exist.

Overriding Is Instigator Friendly to bridge your team system.
Null instigators
An instigator that isn't net-relevant arrives null on clients and is treated as third-party — distant AoE sources simply follow the enemy-damage toggle.