# Get Derived Classes

**URL:** <https://forums.unrealengine.com/t/get-derived-classes/686033>\
**Category:** Blueprint\
**Tags:** unreal-engine, Blueprint\
**Created:** [November 7, 2022, 5:56pm UTC](https://forums.unrealengine.com/t/get-derived-classes/686033 "2022-11-07T17:56:41Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Krabworks](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/krabworks/32/1194549_2.png) [@Krabworks](https://forums.unrealengine.com/u/Krabworks)\
**Post date:** [November 7, 2022, 5:56pm UTC](https://forums.unrealengine.com/t/get-derived-classes/686033/1 "2022-11-07T17:56:41Z")

</div>

Hello all -

I am wondering if there is a simple way of getting all derived classes from a class in blueprint. I am aware there is a C++ implementation of this, but surprised to find that there doesn’t appear to be a Blueprint node which can, from a class reference, get all derived classes.

This seems like it should be a simple/routine functionality. Any suggestions for a simple way to achieve this?

I thought about using an array to store them but this is a very clunky workaround for something that should be a simple operation. The other alternative I can find is to program a custom node, but again, why are we then recompiling the editor to do this basic operation

Cheers

---

<div class="post-metadata">

**Author:** ![Krabworks](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/krabworks/32/1194549_2.png) [@Krabworks](https://forums.unrealengine.com/u/Krabworks)\
**Post date:** [November 24, 2022, 1:29pm UTC](https://forums.unrealengine.com/t/get-derived-classes/686033/2 "2022-11-24T13:29:31Z")

</div>

Bumping this up…

---

<div class="post-metadata">

**Author:** ![Chatouille](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/chatouille/32/1194622_2.png) [@Chatouille](https://forums.unrealengine.com/u/Chatouille)\
**Post date:** [November 24, 2022, 5:52pm UTC](https://forums.unrealengine.com/t/get-derived-classes/686033/3 "2022-11-24T17:52:49Z")

</div>

This is not trivial, see my answer here

> [@Get Assets by Class - how to find all BP assets of given class?](https://forums.unrealengine.com/t/get-assets-by-class-how-to-find-all-bp-assets-of-given-class/687899/3):
>
> Afaik this is not simple because assets/packages are not always loaded at all times, and asset registry does not know about blueprints hierarchical inheritance. However, asset registry has ability to search by tags, and blueprints do store their parent class path and their closest native parent class path into tags. Unfortunately searching by tags is not exposed to blueprints so you’ll need C++ utility to get anything done on that front. Here is an example utility that searches blueprints chi…

I’ve stumbled upon a node which actually makes this possible in blueprints though, Tags filtering is just not present in the default ARFilter node.

Here is a prototype implementation that will recursively fetch child blueprint classes until it doesn’t find any new ones anymore.  
Just note the input parameter is by-ref. Other variables are locals.

 ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/8/e/7/8e78f014c63bd0e0404712074abdce60af2c1695.png)

Usage is a bit tedious, you need to pass in a full string reference like so :

 ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/6/9/f/69fbe46a7f147a352e0954f825efc4e56d51a943.png)

Also note that it won’t fetch native classes, those are not assets. I’m not aware of any blueprint way to find native subclasses. C++ is much more fit for this.
