Prefab Tool - Prefab Support for Unreal Engine

Ah I see, thank you! Is there any way of accessing newer versions somewhere else for those that bought on the marketplace? I really want to try the blueprint features. :slight_smile:

I’m so sorry that the marketplace version is not up-to-date as I wanted. So for anyone who purchased Prefab Tool from unreal marketplace and would like to get the newest version, I’ll grant you free access to the itch.io version as well.

Please forward your marketplace receipt mail to my marketplace support mail (Content by Mary Nate - UE Marketplace), I’ll set up an itch.io download key and send to you as soon as the order been verified by marketplace support.

Not your fault at all but I really appreciate it. I’ve forwarded my receipt.

Thanks!

We noticed that prefabs wipe out instance vertex colors from objects when we “apply” prefab changes. If we vertex paint a prefab’s member static mesh and keep those colors on the instance rather than bake to the original mesh asset, when we “apply” changes to the prefab the colors are destroyed. What we’d expect is that the vertex colors would be applied to the copies of the prefab as if we had painted each of those copies. Do you recommend we find a work-around or is this a realistic addition for a future update?

Our team loves your tool and we use it a ton, so regardless thank you for your awesome work!

@Denis.Korkh

So glad you like the tool :slight_smile:

Instance vertex colors should be applied to copies of the prefab, here’s a simple test I just did:
https://streamable.com/wwb1e

So it might be a bug somewhere. What version of Prefab Tool are you using? And if not too much trouble can you send me a test level for reproducing the bug? Thanks!

Ah! I apologize - we were actually painting on static meshes inside blueprints inside prefabs. While it would still be nice to be able to do it that way, realizing that it works on simple static meshes in prefabs gives us a simpler work-around for now. Thank you for taking a look!

@Denis.Korkh, the vertex color data painted inside blueprints will be lost when you duplicated the blueprint instances inside editor (unless the static mesh component is the native root component), It’s UE’s default behavior and I’m not quite sure whether it’s by design or a bug indeed. I’ll implement a workaround for that in next update.

I probably will never has the chance to run into that particular usage (painting on a non-root static mesh inside a blueprint inside of a prefab) in my own project :), so thanks a lot for reporting that issue to me.

Thank you! It gives us a ton of confidence to see how responsive and active you are in continuing to make this tool better, we definitely appreciate it.

Hi , thanks for this handy tool! Unfortunately we ran into an ensure whenever we load the engine after we created a blueprint from a prefab. The ensure is in “SimpleConstructionScript.cpp:446” in 4.17. I think it mainly happens on child actors that use construction scripts themselves, but I am not sure yet. For now we commented the ensure out, as it does not seem to have much affect on the way the engine works, but it would be better if you’d take a look as well and maybe figure out why the blueprints trigger this ensure in the first place. I think it has something to do with actors getting renamed during the blueprint generation of your tool.

@anonymous_user_4324b52e,

Sorry for that ensure issue you ran into, I’ll include a fix in next update, meanwhile you can open “PrefabTool\Source\PrefabAsset\Private\PrefabToolHelpers.cpp” and comment out line **5504. **( The “Update Blueprint” button in prefab detail panel could be used to re-generate the blueprint after re-build the plugin ).


5504:                    ChildNode->SetParent(*ParentNodePtr);

That line is only need for attaching child component/node to inherited/native component and will trigger the ensure (added after 4.16) check if the rule been violated.

Thanks a lot for reporting that issue!

Hey there :slight_smile:

Just wanted to step in to say that the Blueprint feature is awesome!

We also improved it to support Child Blueprints and keep their custom values from Prefab to Blueprint.

Our level design process is actually going faster than ever!

Great work.

I looked at the plug-in more in-depth and came up with a couple more notes:

There’s nothing to prevent one from creating circular nested prefabs but hitting apply on such prefab will cause descent into madness and eventual out of memory crash.
With nested prefabs option turned off, there’s nothing to stop you from creating a prefab out of a prefab with poor results - nested prefabs with empty contents.
Creating a new prefab (Prefab_B) out of a prefab in the scene (Prefab_A) and immediately placing it will cause the contents of the original prefab (Prefab_A) in the scene to disappear.
“Replace Selected Actors With” action from right-click context menu on a placed prefab will replace the prefab actor but leave its contents attached to whatever you replace it with.
Occasionally “Replace Selected Actors With” will cause a crash at UObject::Rename() Line 198 - “Renaming an object on top of an existing object is not allowed” but I haven’t found a consistent reproducible case.

A nice positive - comparing InitViews/Draw performance with 4k prefabs w/ cube static mesh actor vs 4k blueprint w/ cube static mesh component the prefabs performed almost 2x better (2.5ms vs 4ms in my environment).

A couple wishes from our team:
A setting so that when we select a member of a prefab it automatically selects the parent - similar to how groups work.
A setting for the default state of “connected” so that we could have placed prefabs disconnected by default when placed.

I hope any of this feedback is useful to you, let me know if you’d like me to provide example gifs/scenes etc. And thank you, this tool has been a tremendous improvement to our workflow.

@Denis.Korkh

Thanks a lot for reporting the nested prefab issues! They’ll be fixed in next update.

The built-in “Replace Selected Actors with” action is problematic with Prefab, as it assumes one actor been spawned per selected actor and the new actor will be renamed to old actor’s name. I’ll add Prefab friendly "“Replace Selected Actors with"Prefab” action in next update.

Here’s a sneak peak of new context menu I’m working on:

Stamp Prefab: to place a disconnected prefab
Replace Selected Actors with Prefab: as replacement of built-in “Replace Selected Actors with” action
Change Prefab to: a shortcut to switch prefab

I plan to start working on the “group/lock selection” feature after next 1.0.6 update.

That’s so cool! I assume it’s been used in Sacred Swords? Now I wish you updating the Sacred Swords dev log on your youtube channel. :slight_smile:

Nope! It’s being used in our top-secret incoming game! I’m working in an indie studio in Lyon, France :slight_smile:

Sacred Swords was a solo-project I made aside from work to learn everything I could.

Let me know if you’d like me to take some production footage using your tool.

I see. It’ll be so cool to see how you guys using the tool in production. But…isn’t it still top-secret? :wink:

What’s new in Prefab Tool 1.0.6

1.0.6 update is live now on Unreal Marketplace and itch.io.


1.0.6
------------------
* Add Stamp Prefab option to level editor context menu to spawn disconnected prefab actor
* Add Replace Selected Actors with Prefab to context menu as a replacement of built-in "Replace Selected Actors with" function
* Add Change Prefab option to context menu
* Add "Replace Actors With Created Prefab" option in Prefab editor setting
* Add Prefab Component Visualizer
* Now generated blueprint will inherit mobility setting from prefab
* Add workaround to persist painted vertex color of blueprint instances inside prefab
* Fix ensure issue in generated blueprint
* Fix bug when creating a new prefab out of a prefab and immediately placing it will cause the contents of the original prefab in the scene to disappear
* Fix bug circular nested prefab might be created when applying prefab change
* Fix bug attempting to create nested prefab when nested prefab support is off
* Change Prefab editor module's LoadingPhase to PostEngineInit
* Minor code refactoring


The “Replace Actors With Created Prefab” and “Prefab Component Visualizer” options could be turn on from Prefab Tool editor setting.

Prefab Tool 1.0.7 feature sneak peak - Selection Lock

Coming to 1.0.7, you can now lock selection of prefab actor. It works kind of like group, once locked, you can’t select any children actors.

( It’s probably the most requested feature, the original plan is to implement it through built-in group actor, but at the end decided to go with my own implementation. )

Prefab Tool 1.0.7 update is now live on itch.io. Marketplace version submitted.


1.0.7
------------------
* Add Lock Selection feature, now spawned prefab actor will be locked/grouped by default
* Add context menu and hotkey to toggle lock selection
* Enable Prefab Component Visualizer by default; Now draw darker wireframe box to indicated lock status
* Add Select children actors to context menu
* Stamp prefab will now disconnecting all chidren prefab actor
* Add Undo support for hide/lock prefab actor through context menu
* Add 4.18 support; Drop 4.15 support