How big is your project? We have, many times, had to backout changes and redo them incrementally to tip toe around bugs. You might be able to do the same.
Hey ,
It is not big in terms of size (~700mb) but there a lot of blueprints that depend on each other in order to work and our levels are constructed using these blueprints. I am going to try to migrate one thing at a time over to a new empty project to see if I can narrow down what is causing the issue. There have been a lot of changes since switching to 4.2. So, going back to 4.1.1 will mean a lot of work. We need 4.2 as the instanced static mesh collision bug was fixed along with a couple of other bugs. Gameplay is entirely done in blueprints and our materials rely on blueprints to convert material instances into layered materials to allow artists to quickly swap materials.
I see, Yea my group is also working on a project that for now is mostly in blueprints. I think a majority of the errors lies in dependency evaluation, since blueprints for the most part are stable until you start having circular dependencies and things.
Oh my gawd. After hours of searching I finally fixed the crash. Bad Epic! no cookie for you. I shall post the fix and the repro steps for this the first thing tomorrow. The crash has to do with variables in blueprint functions.
Repro Steps below:
I am going to use a simple version of my setup for this as this results in a crash 100% of the time.
-
Create a material with parameter names “Metallic” plugged into the metallic slot and “Roughness” plugged into the Roughness Slot.
-
Create a material instance of the above material.
-
Create a Blueprint Function Library
-
Create a Blueprint Function called “Create MID and Set Roughness”
-
Create a “Create Material Instance Dynamic Node”. Set the material instance field to the material instance created above.
-
Right click the output material of this node and click on promote to variable and name it MID. Notice this creates a variable that is global to all the functions present in this library. This kind of a variable is what is responsible for the crash. I am going to continue with the rest of the setup below.
-
Create a “set scalar parameter” node and set the the parameter name to “Roughness”
-
Right click the scalar parameter input and promote to variable and call it “Scalar Param”. Notice this again creates a crash causing variable
-
Create another function called Set Metallic.
-
Get the MID variable from the panel on the left and set the scalar parameter of this material.
-
Set the parameter name as “Metallic”
-
Get the Scalar Param value from the same panel and feed it into the input of the set scalar param.
-
Create a blueprint based off of actor
-
Call this function in the construction script and place this actor in the world.
-
Hit play
-
Hit Stop = Crash.
For some reason this prevented me creating new maps, it would crash the engine 100% of the time even though this blueprint wasn’t being called. I am not a programmer so I am not sure whether such variables are legit. If they are not, we should not be allowed to create it in the first place. If we are, then please fix it and allow us to create these variables straight from the variable panel itself instead of promoting to variables. I was not experiencing this crash with 4.1.1. I am on 4.2 launcher version
The fix for this issue is to replace the variables with local variables. This means you cant share the variables between functions but you can still pass them from one function to the other using function inputs.
I have attached the entire thing so you can take a look at it instead of recreating the whole thing by hand. Just merge the folder with your content folder.