it works fine with 4.5.1 and is completely broken in 4.6. Player and hud get ignored at the start. Level loads fine but no hud and no working default pawn class.
Btw, the compile error will reoccur every time the project is reopened. Then I hit compile and it goes away. But Standalone mode or builds won’t work properly.
I have experienced this kind of behavior a lot … using eventDispatchers in UMG widgets with parameters (weird) or using them on GameModes and GameInstance (singletons). It does not work properly either on PlayerController … I used a workaround that most of the time works for me which consists on using a Blueprint to handle all eventDispatchers. It might work for you…
I have found a work around. Instead of having the dispatcher in the GameMode BP, I put it in the PlayerController. Hud hooks onto that, so does player character, and the dispatching is done by the GameMode (For now). All seems to work and no Failure are appearing in logs anymore.
It may look like it’s a compile order issue from a clean.
I’m attempting to reproduce the event dispatcher bug you described but I need a little clarification on your setup. Are the screenshots you provided from your GameMode BP or the HUD/Player BP?
can you explain this concept a little? previously my dispatchers were coming from game mode or controller to help communicate with the persistent level. but since that is currently not working, i’m interested to know how a separate blueprint could handle this. does the new blueprint have an actor base class? do you spawn an instance of it on beginplays of your game mode or controller?
[EDIT] just to expound upon this a bit, that workaround is really helpful. basically, in my player controller i spawned an event dispatcher manager class and stored it in a variable. then, from all other classes i can access that player controller’s variable to execute whichever event dispatcher. no crashes or corrupt blueprints as a result of this method thus far.
We were having the same issue as described above and, specifically with EventDispatchers in a BP of PlayerController that are subscribed to from within a UMG widget (using GetOwningPlayer->CastToOurBPPC). The error messages will show up until you compile the Widget that is subscribing; additionally these callbacks are broken in cooked builds regardless of compiling the Widget. We have other dispatchers that do not appear to be broken, however, any custom events in our Widgets that subscribe to dispatchers appear to be whats affected.
Fortunately I was able to check the differences between 4.5 and 4.6 (using Perforce actually, I am at a studio that is a licensee and am posting in AnswerHub as opposed to UDN because this post already existed with Epic eyes on it). It looks like what broke this is CL#2308582, specifically the changes to //depot/UE4/Engine/Source/Editor/BlueprintGraph/Private/K2Node_MCDelegate.cpp [revision 33]
I reverted the changed code from this CL (only the changes in K2Node_MCDelegate.cpp) to the code that was in 4.5 and everything is now working for us. We are still testing this locally but so far it seems to be the remedy for our dispatcher regression in 4.6.
Hope that helps.
p.s. Anyone that wants to try what I am describing in their 4.6 code simply replace the implementation of UK2Node_BaseMCDelegate::AllocateDefaultPins() and UK2Node_BaseMCDelegate::GetDelegateSignature() in their 4.6 code using the functions from 4.5 found below:
I guess my point is that this is marked as resolved while it’s not resolved for users. The creation of a ticket - which I can’t track - does not solve the problem for Users.
To reiterate, my work around is currently to not use the GameMode BP but use the player controller instead. I wouldn’t consider your answer as Resolved, as there is no linked ticket, or fix version for this issue for Users.
This only occurs to custom GameMode BP indeed. For me anyway.