Bring back real Prefabs

The current Blueprints are really cool for logics and any kind of component but bad for store different actors, you can’t use the Blueprints as the old school prefabs.

I need to make prefabs of houses for example that have meshes, lights, BSP, triggers, PP Volumes and Blueprints and others kinds of actors.
With the Blueprints I can’t make this and I can’t edit it later from the map, need to edit the Blueprints opening each one and the tools for the Blueprints viewport aren’t exactly the same ones of the main viewport…

We need support to store

  • Blueprint Logics.
  • Others Blueprints.
  • BSP.
  • Triggers and Volumes.
  • Other actors as lights or any kind of actor supported in the maps.

We need a system like submaps but you can drag and drop into the level, and group the prefabs in the world outliner.

https://docs.unrealengine.com/udk/Three/UsingPrefabs.html

Right now get something like this working using the maps as sublevels is really bad and can’t get a clear view of what is a submap and what are the prefabs.

Thanks you.

I like your idea here about updating the world outliner in particular, I always felt it should show the correct BSP ordering and allowing grouping of BSP so being able to group/prefab any actor would certainly be worthwhile.

0lentos link from discord too for the AssetGroups.

Or just make blueprints convertible to/from text. Text/Scripts are the best proven solution to handle complexity.

What exactly do you mean? I do that all the time and it works like a charm…
The only thing that doesnt work as I wish it would is the construction script…

The Blueprints can’t do anything of the things I posted in the list…
Is impossible you can do it since is not supported, you can check the Dead Island 2 link to check what I mean, but you can’t load BSP in BP for example. Or BP into other Blueprints.

I don’t use prefabs so I’m not sure about the rest, but you can add BP to other blueprints via Child Actor Component. Same with other meshes, lights, etc. - but I guess that you mean some other prefab mechanic? I remember prefabs from Unity and they were more flexible, but possibilities were quite similar.

I mean place in a Blueprint a BSP is not possible, place in a Blueprint a collision volume or pp is not possible, and place in a Blueprint other blueprints, not components is not possible, if you have there a logic as the post made by Dead Island 2 guys is not possible to make a complete house with sub blueprints that have door logics, physics logics, and light logics. And NO THE Blueprint COMPONENTS DON’T REPLICATE PHYSICS. Out of that if you do for each house all from ground to make each house logics cause you need components then is better don’t use Prefabs in that way at all and use the normal BP and replicate it in that way…

You said something about a BP having other actors in it like meshes, lights, etc.
When I create a blueprint, I can add lights, meshes, volumes, etc. Thats how I build my door blueprints for example.

Hmmm, I also can add other blueprint actors to it. What am I doing wrong? :stuck_out_tongue:

Okay then show us how you add to a Blueprint a BSP volume in it and a Blueprint actor non component.

Show us too how you make each house logics for the doors and triggers per Blueprint (redoing the logics per Blueprint), and how you replicate the location of each physical actor in the house in the network, cause is not possible.

You can create components and the actors use those same components but its not the same thing. Those components are created within the bounds of the BP asset editor and not in the main level editor window, it is possible to use child actors as well but its not the same as creating a group of Actors that already exist with their variables set in the level editor.

I had a think about this at first I was skeptical too but then I came to realize that BP doesnt offer this functionality in full already, that it works for editing master BPs and having that trickle down but not for editing groups of Actors. I have to create a BP class for every set of default variables where using a group I could duplicate that BP without the need for a new class each time, its alot more template and unfortunately the limitations of BPs rub off on DataObjects :cool:

I would be very happy with a prefab import feature. Ripping Unity assets is often a very exhausting process.

I thought we were talking about volumes, not brushes.
But why would you use BSP, that is meant to be used for blocking, in a blueprint?
If you need a trigger volume with an exotic shape, compose it of simpler shapes instead.

A BP within a BP is always a child.

Network replication was not part of your initial post.
I never said that I do replication.

Maybe not a complete house, but I can make a little example of what I mean :slight_smile:

… And while doing that, I may have discovered a bug/limitation.
But before complaining about a bug, I want to double check on Answer Hub first.
Because I remember in the past I could setup/control child actor components via interface messages.
but for some reason that does not seem to work now…

Ill make a clean repro and update the Answer Hub link here.
Maybe Im just missing something (has been a while since I fiddled with interfaces).

+10

Yes, use blueprints for this, it is cumbersome, we need a better system for handle groups of actors. A simple save/load groups could be enought.

@KVogler In 4.14 there is this new Child Actor Templates feature (possibility to access child blueprint properties, cool addition that brings us closer to a ‘prefab’ system), so maybe your issue is related to it.

@Slavq
Yeah, I saw that. Not sure yet what to make of it. :slight_smile:

The issue I stumbled upon now is this: https://answers.unrealengine.com/questions/526791/a-problem-with-bp-interface-communication.html
I cant figue out why its not working (though I remember having done such stuf in the past)…:confused:

There is this new in 4.14, https://docs.unrealengine.com/latest/INT/BlueprintAPI/LevelStreaming/LoadLevelInstance/index.html
Its been working well for me, but I dont know if it will run in the construction graph, so there’s no preview of the map before hitting play.

I upvote the prefab suggestion

So, I solved it, thanks to AnswerHub :smiley:

@Hevedy

So here it goes:

Lets say you have a BP “LightConeBP”, which has a cone mesh and a stationary Spotlight.

And you want to add it to another BP actor and communicate to the BP, then you have to define an interface:

In another BP, calles “PreFabBP” you add it as a child actor:

In the events graph, you can call any function that the child implements via interface (see first screenshot).
(Here is the part that has thrown me a bit off yesterday)

This will compile, but not work: (nothing happens)

1ff1e0fb7f9fe29ed6f3b1c54d5768204ba6d103.jpeg

From the variable, a “GetChildActor” needs to be pulled and then connected.
This works:

5a35df6db6fae3735f9667350c2eeef18d355664.jpeg

If you hook that up to the construction script, you have editor real time changes…

So, you can add BPs to other BPs and configure/drive them.
Which is basically all you want from a prefab?
What else do you need?

Thats still not the same thing as building something in the editor window as it requires the seperate asset window. If I build a group of Actors I like in the level window I have to copy/paste or recreate them one by one in a BP rather than simply being able to create a prefab. BPs have limitations too because of the construction script, something a prefab doesnt necessarily need as its a user defined data object (like a template) and probably doesnt need per instance settings either.

Again what you described is a round about way to achieve the same thing but it is not the same thing and doesnt have the same benefits as it requires very specific implementation planned from the outset. If you had read my earlier post it might have saved you explaining it.

As far as I know you can create a BP from a selection of existing actors.

Yeah, planning is a part of making games :slight_smile:

there was a specific workflow associated with prefabs before that is now missing with the Blueprints, I need the ability to convert Blueprint components to individual assets in the scene.

Here is the documentation on this workflow from past UDK documentation

https://docs.unrealengine.com/udk/Three/UsingPrefabs.html

  • Use Prefabs as a level placement device only.
    This means that once a prefab is placed in a level, it should be immediately converted back to straightforward actors by right-clicking and choosing Convert PrefabInstance To Normal Actors. *

Does anyone know a way to convert blueprint components to normal actors?