# C++ Asset Action Utility Not Appearing in Editor Context Menu

**URL:** <https://forums.unrealengine.com/t/c-asset-action-utility-not-appearing-in-editor-context-menu/1935464>\
**Category:** C++\
**Tags:** unreal-engine, question\
**Created:** [July 12, 2024, 6:35pm UTC](https://forums.unrealengine.com/t/c-asset-action-utility-not-appearing-in-editor-context-menu/1935464 "2024-07-12T18:35:53Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![4JAYates](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@4JAYates](https://forums.unrealengine.com/u/4JAYates)\
**Post date:** [July 12, 2024, 6:35pm UTC](https://forums.unrealengine.com/t/c-asset-action-utility-not-appearing-in-editor-context-menu/1935464/1 "2024-07-12T18:35:53Z")

</div>

Hello,

I am having some issues with the UAssetActionUtility class. Creating a subclass in editor has no issues and everything works as expected. However I am trying to create a subclass purely within C++ and am clearly missing something as the function name does not show up in the context menu for the asset.

.h file

```auto
UCLASS()
class UMyAssetAction : public UAssetActionUtility
{
GENERATED_BODY()

public:
UMyAssetAction();

UFUNCTION(CallInEditor)
void Generate();

};
```

.cpp

```auto

UMyAssetAction::UMyAssetAction ()
{
	SupportedClasses.Add(UMyAsset::StaticClass());
	SupportedClasses.Add(UMyOtherAsset::StaticClass());
}

void UMyAssetAction::Generate()
{
	TArray<UObject*> myAssets = UEditorUtilityLibrary::GetSelectedAssets();

	for (UObject* myAsset : myAssets )
	{
		if (myAsset->IsA(UMyAsset::StaticClass()))
		{
		}
       else if (myAsset->IsA(UMyOtherAsset::StaticClass()))
		{
		}
	}
}

```

The “Generate” function won’t appear in editor however if I just create an empty BP inheriting from UMyAssetAction then Generate immediately starts working.

I assume I need to register something in the Editor Module but I am just not sure what.

---

<div class="post-metadata">

**Author:** ![PREDALIEN](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/predalien/32/1194670_2.png) [@PREDALIEN](https://forums.unrealengine.com/u/PREDALIEN)\
**Post date:** [July 12, 2024, 7:05pm UTC](https://forums.unrealengine.com/t/c-asset-action-utility-not-appearing-in-editor-context-menu/1935464/2 "2024-07-12T19:05:50Z")

</div>

Override the GetSupportedClass function and return the class of your asset in it.

If your asset is a blueprint then you need to use UBlueprint::StaticClass(), but in this case, you will see your function on all blueprints, since the ASSET type is a blueprint.

You cannot specify an asset class that is edited via blueprint as the type.

---

<div class="post-metadata">

**Author:** ![4JAYates](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@4JAYates](https://forums.unrealengine.com/u/4JAYates)\
**Post date:** [July 13, 2024, 10:43am UTC](https://forums.unrealengine.com/t/c-asset-action-utility-not-appearing-in-editor-context-menu/1935464/3 "2024-07-13T10:43:33Z")

</div>

GetSupportedClass isn’t virtual and was also deprecated in 5.2. The expected workflow is to fill out the SupportedClasses array which I do.

---

<div class="post-metadata">

**Author:** ![RSkala](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@RSkala](https://forums.unrealengine.com/u/RSkala)\
**Post date:** [July 13, 2024, 7:18pm UTC](https://forums.unrealengine.com/t/c-asset-action-utility-not-appearing-in-editor-context-menu/1935464/4 "2024-07-13T19:18:15Z")

</div>

I believe the issue lies with your function declaration. It should look like this:

```auto
UFUNCTION(meta = (CallInEditor = true))
void Generate();

```

That is, the `CallInEditor` should be in the `meta`.

Edit: Yours is correct. DON’T use the `meta`.

---

<div class="post-metadata">

**Author:** ![RSkala](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@RSkala](https://forums.unrealengine.com/u/RSkala)\
**Post date:** [July 13, 2024, 8:30pm UTC](https://forums.unrealengine.com/t/c-asset-action-utility-not-appearing-in-editor-context-menu/1935464/5 "2024-07-13T20:30:40Z")

</div>

> [@4JAYates](#):
>
> UMyAssetAction

I missed that last part where you said you needed to create an empty Blueprint inheriting from your class. I believe that is what you’re _supposed_ to do.

---

<div class="post-metadata">

**Author:** ![PREDALIEN](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/predalien/32/1194670_2.png) [@PREDALIEN](https://forums.unrealengine.com/u/PREDALIEN)\
**Post date:** [July 13, 2024, 9:34pm UTC](https://forums.unrealengine.com/t/c-asset-action-utility-not-appearing-in-editor-context-menu/1935464/6 "2024-07-13T21:34:47Z")

</div>

Wow, Epic added an array of classes? I’m just doing a project on 5.1 and don’t often follow innovations…

Can you create UMyAsset and UMyOtherAsset from right click in content browser?

 ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/b/6/3/b638e198029de80023205aa4839f64d984d35c7d.png)

The Asset Action Utility can only work with this asset types (or am I missing something?).  
You need to register your asset type, as in [this](https://dev.epicgames.com/community/learning/tutorials/vyKB/unreal-engine-creating-a-custom-asset-type-with-its-own-editor-in-c) article.

---

<div class="post-metadata">

**Author:** ![4JAYates](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@4JAYates](https://forums.unrealengine.com/u/4JAYates)\
**Post date:** [July 14, 2024, 2:39am UTC](https://forums.unrealengine.com/t/c-asset-action-utility-not-appearing-in-editor-context-menu/1935464/7 "2024-07-14T02:39:39Z")

</div>

Yeah it just seems so weird and wasteful when my code is doing all the work and I basically have to make an empty shell blueprint just so that work can be executed.

---

<div class="post-metadata">

**Author:** ![4JAYates](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@4JAYates](https://forums.unrealengine.com/u/4JAYates)\
**Post date:** [July 14, 2024, 2:42am UTC](https://forums.unrealengine.com/t/c-asset-action-utility-not-appearing-in-editor-context-menu/1935464/8 "2024-07-14T02:42:01Z")

</div>

Yeah the assets do exist in the editor so I can right click them and perform asset actions on them. The problem is that my asset action utility class which I wrote in C++ doesn’t have its functions show up in the context menu unless I create a blueprint child of my asset action utility first.

It just seems so weird that I can’t register my utility class somewhere in code to have it appear in the asset context menu whilst just making an empty blueprint that inherits from it immediately works.

---

<div class="post-metadata">

**Author:** ![KethersHao](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/kethershao/32/88710_2.png) [@KethersHao](https://forums.unrealengine.com/u/KethersHao)\
**Post date:** [July 30, 2025, 12:18pm UTC](https://forums.unrealengine.com/t/c-asset-action-utility-not-appearing-in-editor-context-menu/1935464/9 "2025-07-30T12:18:18Z")

</div>

This seems to be a bug since 5.2 and still exists in 5.3.2. I am following a tutorial about UE editor tool programming and many comments complain about this bug. The usable way to show c++ function of `UAssetActionUtility` derived class with `CallInEditor` in right-click menu correctly, is to create a child blueprint class asset from your `UAssetActionUtility` derived class (in this article is `UMyAssetAction`) and put it in any Content folder. Any time you add a new `CallInEditor` function in this C++ class, you will have to go to that blueprint asset click compile and save, unless new written functions may not show up correctly.

I haven’t find a more elegant way to just skip the manual action above or do that by code. If anyone knows how to do it, plz leave comment. Very grateful to that.

---

<div class="post-metadata">

**Author:** ![MichaelJames](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@MichaelJames](https://forums.unrealengine.com/u/MichaelJames)\
**Post date:** [April 22, 2026, 1:42am UTC](https://forums.unrealengine.com/t/c-asset-action-utility-not-appearing-in-editor-context-menu/1935464/10 "2026-04-22T01:42:53Z")

</div>

Thanks a lot,it really need to create a correspond Blueprint Class asset!
