ModuleMenu_ModuleRejections
ModuleMenu_ModuleRejections
#Overview
name: ModuleMenu_ModuleRejections
The value of this variable can be defined or overridden in .ini config files. 7
.ini config files referencing this setting variable.
It is referenced in 3
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of ModuleMenu_ModuleRejections is to specify which modules should be ignored in the Cascade menu system within Unreal Engine 5. This setting variable is primarily used for customizing the user interface of the Cascade particle system editor.
This setting variable is utilized by the Cascade module, which is part of the Unreal Engine’s particle system editor. It’s specifically referenced in the UCascadeConfiguration class and the FCascadeEmitterCanvasClient class, both of which are part of the Cascade editor subsystem.
The value of this variable is set through the UPROPERTY macro, which indicates that it can be edited in the Unreal Engine editor interface and is part of the engine’s configuration system. It is defined as an array of FStrings, allowing multiple module names to be specified for rejection.
This variable interacts with the ModuleRejections array, which is used to cache the rejected module names for faster runtime lookups. It’s also used in conjunction with the ModuleMenu_TypeDataToBaseModuleRejections array for more specific module rejections based on type data.
Developers must be aware that changes to this variable will affect the available modules displayed in the Cascade menu system. It’s important to ensure that essential modules are not accidentally rejected, as this could limit the functionality available to particle system designers.
Best practices when using this variable include:
- Only rejecting modules that are truly unnecessary for your project to avoid limiting options for designers.
- Keeping the list of rejections up to date as your project evolves and new modules are added or removed.
- Documenting any changes made to this variable to ensure team-wide awareness of which modules are being excluded from the menu.
- Testing the Cascade editor thoroughly after making changes to ensure that all necessary functionality remains accessible.
- Consider using project-specific configurations rather than modifying the engine-wide settings to avoid conflicts in multi-project environments.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEditor.ini:264, section: [/Script/Cascade.CascadeConfiguration]
- INI Section:
/Script/Cascade.CascadeConfiguration
- Raw value:
ParticleModuleTypeDataBase
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEditor.ini:265, section: [/Script/Cascade.CascadeConfiguration]
- INI Section:
/Script/Cascade.CascadeConfiguration
- Raw value:
ParticleModule
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEditor.ini:266, section: [/Script/Cascade.CascadeConfiguration]
- INI Section:
/Script/Cascade.CascadeConfiguration
- Raw value:
ParticleModuleRequired
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEditor.ini:267, section: [/Script/Cascade.CascadeConfiguration]
- INI Section:
/Script/Cascade.CascadeConfiguration
- Raw value:
ParticleModuleSpawn
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEditor.ini:268, section: [/Script/Cascade.CascadeConfiguration]
- INI Section:
/Script/Cascade.CascadeConfiguration
- Raw value:
ParticleModuleTypeDataBeam
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEditor.ini:269, section: [/Script/Cascade.CascadeConfiguration]
- INI Section:
/Script/Cascade.CascadeConfiguration
- Raw value:
ParticleModuleLocationPrimitiveBase
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEditor.ini:270, section: [/Script/Cascade.CascadeConfiguration]
- INI Section:
/Script/Cascade.CascadeConfiguration
- Raw value:
ParticleModuleEventReceiverBase
- Is Array:
True
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Editor/Cascade/Classes/CascadeConfiguration.h:45
Scope (from outer to inner):
file
class class UCascadeConfiguration : public UObject
Source code excerpt:
/** Modules that Cascade should ignore in the menu system. */
UPROPERTY(EditAnywhere, config, Category=Configure)
TArray<FString> ModuleMenu_ModuleRejections;
/** Returns true if the given module class name is valid for the type data class name. */
bool IsModuleTypeValid(FName TypeDataName, FName ModuleName);
private:
/** Cache module rejections for fast runtime lookups. */
#Loc: <Workspace>/Engine/Source/Editor/Cascade/Private/Cascade.cpp:5372
Scope (from outer to inner):
file
function void UCascadeConfiguration::CacheModuleRejections
Source code excerpt:
}
for (int32 ModuleIndex = 0; ModuleIndex < ModuleMenu_ModuleRejections.Num(); ++ModuleIndex)
{
ModuleRejections.Add(FName(*ModuleMenu_ModuleRejections[ModuleIndex]));
}
for (int32 TypeDataIndex = 0; TypeDataIndex < ModuleMenu_TypeDataToBaseModuleRejections.Num(); ++TypeDataIndex)
{
FModuleMenuMapper& MenuMapper = ModuleMenu_TypeDataToBaseModuleRejections[TypeDataIndex];
FName TypeDataName = FName(*MenuMapper.ObjName);
#Loc: <Workspace>/Engine/Source/Editor/Cascade/Private/CascadeEmitterCanvasClient.cpp:2249
Scope (from outer to inner):
file
function bool FCascadeEmitterCanvasClient::IsModuleSuitableForModuleMenu
Source code excerpt:
int32 RejectIndex;
UCascadeConfiguration* EditorConfig = CascadePtr.Pin()->GetEditorConfiguration();
return (EditorConfig->ModuleMenu_ModuleRejections.Find(InModuleName, RejectIndex) == false);
}
bool FCascadeEmitterCanvasClient::IsBaseModuleTypeDataPairSuitableForModuleMenu(FString& InModuleName) const
{
int32 RejectIndex;
UCascadeConfiguration* EditorConfig = CascadePtr.Pin()->GetEditorConfiguration();