Contents

Plugin documentation

CallInEditorContainer is a simple editor utility plugin to help you manage your CallInEditor buttons. Unreal doesn’t support the regular UPROPERTY attributes and meta tags on UFUNCTIONs and therefore limits how you can display your editor action buttons in the Details panel.

CallInEditorContainer aims to address these issues by adding a button container UPROPERTY which will gather the buttons that reference it and display them within the UPROPERTY’s property row.

Create your container

To create your CallInEditor buttons container, you must first declare your container property.

UPROPERTY(VisibleAnywhere, Category="CIEContainer|SubCategory")
FCallInEditorContainer ButtonContainer;

FCallInEditorContainer properties should always be included within WITH_EDITORONLY_DATA preprocessor directives since that structure is defined in an editor module.

Adding your CallInEditor function to your container

Once you have a container UPROPERTY, you can create the UFUNCTIONs you want it to display. We use a custom metadata tags named CallInEditorContainer to specify the container property to use.

UFUNCTION(meta=(CallInEditorContainer="ButtonContainer"))
void DoAction();

You should not include the regular CallInEditor attribute, but instead use the CallInEditorContaier metadata tag. Adding CallInEditor will duplicate your button in the Details panel.

Setup your container

Once you can see your button in the Details panel under your container, you can set it up to display how and when you want using regular UPROPERTY attributes and metadata.

CategoryUPROPERTY attributes
VisibilityAttributes: VisibleAnywhere, VisibleDefaultsOnly, VisibleInstanceOnly, EditAnywhere, EditDefaultsOnly, EditInstanceOnly
Metadata: EditCondition, EditConditionHides
Grouping and orderingAttributes: Category
Metadata: DisplayAfter, DisplayPriority

EditCondition without EditConditionHides only supports simple bool property conditions.

You can of course also use the regular UFUNCTION attributes directly.

CategoryUFUNCTION attributes
DisplayAttributes: DisplayName
Metadata: Tooltip

Attributes Preview

Parent class containers

CallInEditorContainer supports adding buttons to a parent class container. This means that if class A has a container named ParentContainer, you can have a UFUNCTION in class B (which subclasses A) and provide it with meta=(CallInEditor="ParentContainer") to add it to the expected container.

UCLASS()
class A : public UObject
{
  UPROPERTY(VisibleAnywhere, Category="CIEContainer|SubCategory")
  FCallInEditorContainer ParentContainer;
};

UCLASS()
class B : public A
{
  UFUNCTION(meta=(CallInEditorContainer="ParentContainer"))
  void DoAction(); // Will show within the parent container property
}

Blueprint support

CallInEditorContainer supports metadata injection plugins like MDMetaDataEditor. However, we cannot distribute it ourselves, nor would we want to do so. Therefore, we invite you to download it directly from their GitHub.

All of the previously described features can be replicated using a Blueprint metadata editor and note that the demo does demonstrate this Blueprint support, which was setup using MDMetaDataEditor. The metadata added through MDMetaDataEditor remains even when MDMetaDataEditor is not installed, therefore we can still see this feature in action in the demo.


Back to top

Copyright © 2025-2026 MegaPunk Games Inc.
Demo and documentation last updated for version 1.1.1