I worked for a long time with a proprietary engine that had a system similar to smart objects but with a system for choosing an “activity” first (like, say, “work in a kitchen”), and then choosing a smart object within that activity.
I want to recreate this in unreal, and as an early step I want to add the ability to only look for smart objects that are children of a parent actor like so:
Unfortunately I’m more of a designer than an engineer I’m kind of at a loss about where to begin. I thought I could create a new class based on “make smart object request”, but I don’t see that class anywhere. I think it might be part of the larger smart object subsystem, but I don’t see any references within that class or it’s header file for “make smart object request”. I basically have no idea where this BP node comes from, so I cannot even begin to make a modified version of it.
Any ideas on where to go from here?
Hey @HardHatMack!
So that’s what the tag system is for! They have a defined hierarchy. So you could make new user tags:
Kitchen
Stove
Prep Station
Oven
Front of House
Waiter Station
Table
Bar Station
Things like this. So for instance, “Kitchen” would be the parent tag and “Oven” would be a child tag. Searching for “Kitchen” would return all Kitchen SmartObjects, and “Oven” would return all ovens- which are also Kitchen SmartObjects, but would exclude “Stove” if stove was not also selected. 
Thanks! This is a good solution if there’s only one kitchen. If there’s more than one, and I want the character to only use the smartobjects in one kitchen at a time, I’d need to make multiple copies of each tag hierarchy for each one (unless I’m missing something).
I found a different solution where I use the “Find smartobjects in list” node instead of the normal “find smartobjects” node I was using. I have the character look for an activity first, and then only search for smartobjects in the list of child actors with the correct parent.