AbilitySystem.Fix.SkipUnmappedReferencesCheckForGameplayCues

AbilitySystem.Fix.SkipUnmappedReferencesCheckForGameplayCues

#Overview

name: AbilitySystem.Fix.SkipUnmappedReferencesCheckForGameplayCues

This variable is created as a Console Variable (cvar).

It is referenced in 3 C++ source files.

#Summary

#Usage in the C++ source code

The purpose of AbilitySystem.Fix.SkipUnmappedReferencesCheckForGameplayCues is to address an issue in the Gameplay Ability System related to GameplayCues. Specifically, it’s designed to skip a check for unmapped references in GameplayCues that was not functioning as intended and was causing problems when properly set.

Regarding the associated variable bSkipUnmappedReferencesCheckForGameplayCues:

The purpose of bSkipUnmappedReferencesCheckForGameplayCues is to provide a boolean flag that can be used in the codebase to determine whether to skip the problematic check for unmapped references in GameplayCues.

#References in C++ code

#Callsites

This variable is referenced in the following C++ source code:

#Loc: <Workspace>/Engine/Plugins/Runtime/GameplayAbilities/Source/GameplayAbilities/Private/GameplayEffect.cpp:90

Scope (from outer to inner):

file
namespace    UE::GameplayEffect

Source code excerpt:

	// Fix introduced in UE5.4
	bool bSkipUnmappedReferencesCheckForGameplayCues = true;
	FAutoConsoleVariableRef CVarSkipUnmappedReferencesCheckForGameplayCues{ TEXT("AbilitySystem.Fix.SkipUnmappedReferencesCheckForGameplayCues"), bSkipUnmappedReferencesCheckForGameplayCues,
		TEXT("Skip the bHasMoreUnmappedReferences check for GameplayCues which never worked as intended and causes issues when set properly (may be deprecated soon)"), ECVF_Default };

#if WITH_EDITOR
	namespace EditorOnly
	{
		// Helper function that allows us to guard against upgrading versions (in case a bug is discovered while the product is live)

#Associated Variable and Callsites

This variable is associated with another variable named bSkipUnmappedReferencesCheckForGameplayCues. They share the same value. See the following C++ source code.

#Loc: <Workspace>/Engine/Plugins/Runtime/GameplayAbilities/Source/GameplayAbilities/Private/GameplayEffect.cpp:89

Scope (from outer to inner):

file
namespace    UE::GameplayEffect

Source code excerpt:


	// Fix introduced in UE5.4
	bool bSkipUnmappedReferencesCheckForGameplayCues = true;
	FAutoConsoleVariableRef CVarSkipUnmappedReferencesCheckForGameplayCues{ TEXT("AbilitySystem.Fix.SkipUnmappedReferencesCheckForGameplayCues"), bSkipUnmappedReferencesCheckForGameplayCues,
		TEXT("Skip the bHasMoreUnmappedReferences check for GameplayCues which never worked as intended and causes issues when set properly (may be deprecated soon)"), ECVF_Default };

#if WITH_EDITOR
	namespace EditorOnly
	{
		// Helper function that allows us to guard against upgrading versions (in case a bug is discovered while the product is live)

#Loc: <Workspace>/Engine/Plugins/Runtime/GameplayAbilities/Source/GameplayAbilities/Private/GameplayEffect.cpp:4870

Scope (from outer to inner):

file
function     void FActiveGameplayEffectsContainer::PostReplicatedReceive

Source code excerpt:

		QUICK_SCOPE_CYCLE_COUNTER(STAT_ActiveGameplayEffectsContainer_NetDeltaSerialize_CheckRepGameplayCues);

		if ( LIKELY(UE::GameplayEffect::bSkipUnmappedReferencesCheckForGameplayCues) )
		{
			if (Owner->IsReadyForGameplayCues())
			{
				Owner->HandleDeferredGameplayCues(this);
			}
		}