I have been pulling my hair for a week now about this issue and it seems as if it is simple not possible (else I am just stupid…).
So I have a system that builds a level procedurally out of blueprint classes/prefabs (which all inherit from the same custom c++ class) and this works without a hitch with simple stuff such as adding geometry etc. But since gameplay would suck without some interaction and more complex objects in the game world I want to add things such as elevators, traps, teleports, ladders etc. This is where it all crumbles…
I started with adding elevators, wrote a new c++ class with all functionality, then each instance can set the actual elevator platform mesh, start position, end position, speed etc. Works perfect if added as instance in the game world. Drag and drop to blueprint class however is a different story since it gets added as a child actor component -> can’t edit any properties or move child components! This would be fine if I only needed the exact same elevator in every blueprint class/prefab (simply created a blueprint class/prefab using elevator, set everything up and then use that instead) but they are all unique! Yes, I can add some properties to the base class to set some simple stuff up (setting states of bools etc, like locked or unlocked doors), but not advanced stuff like this.
OK, maybe create a elevator component instead of a actor then… Well that will not work since I cannot use it to place directly in the world if needed (mix of hand made content and procedural) and it also becomes messy as hell in blueprint classes/prefabs since components can not have a tree structure of children…
So how do I achieve my goal? Or do I have to give up and get back to Unity for this project (there I can create a prefab for the room, nest the elevator prefab and change the settings without problems)?