Skip to content

UMageItCombatTextSettings

Base Class: UDeveloperSettings

UMageItCombatTextSettings is a developer-facing configuration class. Because it uses the config=Game, defaultconfig class specifiers, it automatically integrates into the Unreal Engine Project Settings window under the Plugins category, displayed as Combat Text.

This class holds the RendererRegistry that UMageItCombatTextSubsystem::GetRenderer reads to resolve which renderer class should handle a given FGameplayTag. Any changes made to this map in the Editor are automatically saved to your project’s DefaultGame.ini configuration file.

To configure these values in the Unreal Editor, navigate to: Edit > Project Settings > Plugins > Combat Text (see the Configuring Renderers Guide).


  • RendererRegistry (Map<GameplayTag, FMageItCombatTextRendererEntry>, EditAnywhere, config) Maps a FGameplayTag to the entry describing which renderer class should handle damage events tagged with it (or any of its child tags, when no more specific entry exists).

Each value in RendererRegistry is one of these, not a bare class reference — it pairs the renderer class with an opt-in eager-initialization flag:

  • RendererClass (TSoftClassPtr<UMageItCombatTextRendererBase>, EditAnywhere, config): Soft class reference to the renderer. Being a soft reference, unused renderer classes are never loaded into memory.
  • bInitializeAtBeginPlay (Boolean, EditAnywhere, config): If true, this renderer is created and Initialize()’d as soon as UMageItCombatTextSubsystem::Initialize runs, instead of lazily on its first damage event. Enable this for renderers with an expensive first-use cost — most notably the Niagara renderer, whose master system can hitch on first spawn while warming up. Defaults to false.

If you need to access the registry in your own C++ classes, you can read it using the Class Default Object (CDO):

#include "MageItCombatTextSettings.h"
// Retrieve the default settings object
const UMageItCombatTextSettings* DefaultSettings = GetDefault<UMageItCombatTextSettings>();
if (DefaultSettings)
{
if (const FMageItCombatTextRendererEntry* Entry =
DefaultSettings->RendererRegistry.Find(FGameplayTag::RequestGameplayTag(FName("Damage"))))
{
const TSoftClassPtr<UMageItCombatTextRendererBase>& RendererClass = Entry->RendererClass;
// Use the soft class reference...
}
}