I know, i can check actor class by node “Class Is Child Of” , putting my Blueprint_1, Blueprint_2, Blueprint_3 sequentally, but how to check is my Actor is child of ANY of blueprints on level?
(If i use “Blueprint” parameter in “Class Is Child Of” it’s not work).
By casting:

As far as i understand, by this construction, we can check only “is actor a child of InteractiveBP”, and not “is actor child of ANY level blueprint (child of bp1,bp2,bp3, etc)”
That’s right. If you want to check multiple BPs, you either need to cast multiple times, or use one common BP parent, and subclass from that.
I need MANUALLY create “one common BP parent”, or in UE4 i can pick some built-in class, which point to “all blueprints”?
Sorry sorry, I misread your post.
So you want to know if your actor ( the one running the code ) is a child of any other actor in the level?
Are these actually child actors, or do you just mean actors spawned in the level?
i.e. I have in my level 3 meshes and 100 blueprints
- mesh1
- mesh2
- mesh3
- blueprint1
- blueprint2
- …
- blueprint100
How AUTOMATICALLY get all actors on level (103) and decide “I have 3 meshes and 100 blueprints”?
I stumbled across this again. I have the same thing. At the moment, I’m going for ‘is not static mesh’…
Or maybe use tags. Yes, you’ll have to manually add a tag to any new blueprint or any non-blueprint added to the level, but you won’t have to cast, so that’s nice =)
There’s for sure a better way to do this in BP’s probably, but I’ve used this for editor BP’s before. You can check if it’s class’ path is within /Game/ or a plugin. That’ll at least filter BP’s you’ve made out from regular static mesh actors and whatever else.
for anyone searching for the C++ solution like i was, here it is:
bool ActorIsBP = false;
if (UBlueprintGeneratedClass* BlueprintGeneratedClass = Cast<UBlueprintGeneratedClass>(Actor->GetClass()))
{
ActorIsBP = true;
}
