Why won't my 3 separate Blueprints compile?

I may have created some kind of loop that does not let me compile 3 separate blueprints.

I can still play the game and it doesn’t pop-up warn me, but the Compile button keeps the orange question mark box on at least one of the BP’s.

If I compile Tile_Parent, it uncompiles MyCharacter.
If I compile MyCharacter, it uncompiles MapGenerator.
If I compile MapGenerator, it uncompiles Tile_Parent.

First, MyCharacter(BP) has a Right Mouse Button line trace that casts to Tile_Parent(BP) and calls the Terraform(Function).

Second, the Terraform(Function) destroys the Hit Actor, then casts to MapGenerator(BP) and calls the Terraform Regenerator(Function).

Third, the Terraform Regenerator(Function) casts to MyCharacter(BP) and pulls the Hit Actor variable, updates arrays, and regenerates the map.

Ok, so I was working on this before I went on a work trip. When I came back, I could not open the project in the editor due to a crash.

After sifting through the logs, I saw that some of the errors referenced my Terraform Regenerator function and the Tile_Parent.

I deleted the Tile_Parent from the blueprints folder and it allowed me to open the project. I then pasted the blueprint back into the folder and was able to access it in the editor.

Now, I am back to figuring out what black magic I have conjured… :stuck_out_tongue:

Here are some screens of what I believe are the offending pieces.

In the MyCaracter blueprint, I have a right click that leads to the Terraform Function inside the Tile_Parent being hit by the trace.

When the Tile_Parent’s Terraform function is called, it destroys the actor and then casts to the Map Generator to call the Terraform Regenerator function.

When the Terraform Regenerator function gets called, it calls for the Hit Actor variable in the MyCharacter blueprint which is then used to determine which actor was hit and update it’s array with the new information. Further down the line the whole map gets regenerated.

Basically, this whole things works as intended except for 1 piece that has nothing to do with this problem.

If I close the editor and reopen the project it I will be locked out by editor crashes.

I removed some of the executions to try and break the loop but it still won’t completely compile.

Compiling 1 blueprint works, but it somehow uncompiles one of the other 2.

In the Terraform function (after event is called, the red block) try destroying an actor in the last step. I’m not sure but I think that the rest of the code won’t run because the actor doesn’t exist anymore after calling DestroyActor(Self).

Also, have you defined Blueprint Interfaces for calling functions outside blueprint scope? I can’t see the “mail icons” in the right corners of your function calls (which indicates that).

Doh! That thought partially crossed my mind earlier, but when you say it, it makes perfect sense!

Weird though, it seemed to work initially but a few compiles later and it is all broke again.

I can’t even disconnect the executions to remove the compiling problem. The only thing that really seems to work is deleting the offending functions referenced in the other blueprints.

I’ve had some weird issues when messing with BlueprintInterfaces after I defined some stuff on inherent blueprints. Try this:

  1. If you’ve changed some function definitions AFTER you placed nodes that call that function - right click on function calling nodes and refresh them.
  2. unhook every execution wires TWICE. I’ve had errors telling me that some nodes can’t have two inputs/outputs while I could clearly see that the node had only one. After I held ALT and double clicked every exec pin - problem solved.

I think I have cleared up my problem. I do not know exactly why it would not compile, but I suspect it had something to do with the fact that I had a merry-go-round of casts. They weren’t tied directly in a loop, as in they didn’t execute each other, but maybe just the fact that their references came back to the originating blueprint at some point caused a problem. Or ghosts, who knows? :stuck_out_tongue:

What I ended up doing was reordering a few things so that I have more of a branch in blueprint communication instead of a loop. I also swapped out one of my Casts for an Interface.

Thanks, I tried that but no dice.