Subclassing GameplayDebuggerCategory

Hi

So I noticed the method described here Gameplay Debugger | Unreal Engine Documentation is deprecated, according to comments in GameplayDebugger.h. Looks like the new method is much simpler… but I haven’t got it to work!

I subclassed GameplayDebuggerCategory, and modified the module’s build.cs:


if (UEBuildConfiguration.bBuildDeveloperTools &&
    Target.Configuration != UnrealTargetConfiguration.Shipping &&
    Target.Configuration != UnrealTargetConfiguration.Test)
{
    PrivateDependencyModuleNames.Add("GameplayDebugger");
    PrivateDependencyModuleNames.Add("AIModule");
    Definitions.Add("WITH_GAMEPLAY_DEBUGGER=1");
}

And I’m registering my new category in the module’s startup function:


#if WITH_GAMEPLAY_DEBUGGER
    IGameplayDebugger& GameplayDebuggerModule = IGameplayDebugger::Get();
    GameplayDebuggerModule.RegisterCategory("Custom", IGameplayDebugger::FOnGetCategory::CreateStatic(&FGameplayDebuggerCategory_Custom::MakeInstance), EGameplayDebuggerCategoryState::EnabledInGame, 5);
    GameplayDebuggerModule.NotifyCategoriesChanged();
#endif

RegisterCategory is definitely being called (UE_LOGs at that point are visible), but my category isn’t in the list when I activate gameplay debugging. I wondered if maybe I hadn’t overridden some vital function, but a renamed copy of the standard AI category doesn’t appear either. I feel like I’m missing something obvious, but I don’t know what - any suggestions?

Thanks,
Chris

After building from source I worked it out - there is a note in the comments in GameplayDebugger.h:


// If you need to use old GameplayDebugger implementation, please set bEnableDeprecatedDebugger flag in GameplayDebugger.Build.cs

I ignored it - because I don’t want the old implementation. But bEnableDeprecatedDebugger is true by default!
Once I’d set it to false and rebuilt, the new rendering code was used and my category appeared.