Enhanced Input problems in 5.5

That is great! Bug reports on the tracker for both of the issues discussed in this post. Please vote on them!

1 Like

I have the same problem and have wasted most of a day on it.

(post deleted by author)

Could someone extract the patch from 5.6 that is for 5.5.4? I have a project that is not compatible with 5.6 and needs this patch.

1 Like

Using 5.6 but the issue is still present it seems.
The bug tracker says ā€œunresolvedā€, too and Target is currently: Target Fix 5.6.1

There are two issues discussed in the topic and that might cause some confusion.

I can confirm that the parent/child event issue does not seem to be solved in 5.6. I haven’t tested the Add/Remove issue.

@Mediate Has a good solution that helped me.

But, I had to add an additional function override in order to get it to update properly in Editor.

Updating the Blueprints or relaunching the editor would break it, and I noticed that removing and re-adding the widget to its parent would fix it until I relaunched.

Here is what I have (Might Be Overkill) but with this my classes that inherit from the New Widget just work and update in Editor as expected.

At least from what I have noticed so far.

Constructor(){
bAutomaticallyRegisterInputOnConstruction = true;
}


//Override
NativeOnInitialized{
Super::NativeOnInitialized();
bAutomaticallyRegisterInputOnConstruction = true;
}

//Override
PostInitProperties{
Super::PostInitProperties();
bAutomaticallyRegisterInputOnConstruction = true;
}

Thank you to everyone in the thread. I’m grateful.

Seems like it is still broken for nested widgets with more than 2 hierarchy layers,

For example,

UserWidget
=> BP_GenericUsableWidget (has IA_<…> nodes handling)
=> BP_ActualWidget (does nothing input related, but wants to inherit parent functionality)

In this case, the BP_ActualWidget will be broken and won’t receive any input at all (which is handled by parent BP_GenericUsableWidget ). And when you are adding any input node to it, you are getting the validation error about bAutomaticallyRegisterInputOnConstruction (without specifying what am I suppose to do with it).

I’ve tried all code snippets in this thread, but unfortunately, only adding the dummy node to the final BP, getting through the validation error, and resaving the asset worked for me. Which is still a disaster, because we have like 50+ inherited BP’s.
Also, simply reverting the change from https://github.com/EpicGames/UnrealEngine/commit/5d2571bb36ab37410643e12d5a20909cc95d81c3#diff-879cdb73bf83a7b4857cc5593d56304e51262a774f5deffffc04fb8f3cb8d41aL1715 fixes the issue

Just a heads up for anyone waiting for a fix for the child widget input issue.
The target fix just changed from 5.6.1 to 5.7 and the issue remains unresolved.

About the other reported issue here after recreating widgets:
This seems already fixed for 5.7.

We ran into this on a current project and did some deep debugging. We found that sometimes the bAutomaticallyRegisterInputOnConstruction flag is not correctly saved to the CDO even if there is an input node in the widget (not sure why).
We ended up overriding PostCDOCompiled() and doing some recursion to detect if the parents were set.

The next thing that we found was that if your widget was already instanced without this flag being changed in the CDO, the Object Archetype is used over the CDO. This causes an additional bug where the CDO has the correct data, but the Archetype has not been updated.

Our fix here is that we just delete the effected widget and replace it in the layout of the outer widget. This appears to have solved the issue for now, but this is definitely not a good workflow long term. Hopefully epic figures this out for 5.7x