Because it really seems to me that either they do or I’m doing something wrong despite checking everything a hundred times now.
I’ve set up action data table, created controller data, set icons for keys, double checked everything in project settings but when I bring up a widget with a CommonActionWidget bound to a key and while using a keyboard it’s just EMPTY. Blank. No icon.
Why is it empty? What can cause it? My base UI widget is a CommonUserWidget that contains an activatable stack to which I push using PushWidget a CommonActivatableWidget that has CommonActionWidget that’s supposed to show a key icon but instead is just EMPTY. I just need it to display the key I’ve set up and bound. There’s literally 0 information regarding common UI I haven’t read/watched/listened to. I will appreciate any help, I’m really desperate at this point.
I’m sorry if I come off as rude, I just spent an entire day trying to set up a system that’s supposed to be an “easy solution for cross-platform user interface” because the documentation for it is absolute hot garbage.
Issue disappeared after repeating the process in a brand new project. It appears that my old project got corrupted, somehow, even though I never used live coding or hot reload. Weird.
Oh, I found another bug. Failed to find script package for import object 'Package /Script/CommonUI'
Even though CommonUI plugin is clearly installed. That causes input action data to lose it’s rows and as a result, action widgets have nothing to bind to.
It seems that those plugin issues have happened before to other users and in typical Unreal fashion, the only replies are a bump and suggesting to hack into the plugin.
I would really appreciate any help with this or to just get confirmed whether it’s a bug or wrong setup on my end.
Changed the question to better describe this new issue.
I ended up just changing loading phase of all modules to “PreDefault” in CommonUI.uplugin file as well and it seems to be working fine for now, however, I still have a suspicion it will break at some point.
I’d open a pr but it’ll just get ignored so for now just do that if you run into this sort of issue, I guess.
This should work for all plugins that spew “Failed to load outer\Failed to find script” after engine restart. I think loading phase might’ve been changed in 5.1 and most plugins just aren’t properly updated. Or it might be an issue with loading phase in general.
If anyone else stumbles into this post. I had the same issue and changing the load phase of CommonUI to PreDefault fixed it for me as well.
However, I played around with it a bit and found out that if I were referencing my CommonUI classes via for example, Create Widget, in my player controller blueprint it would fail with Default as load phase. But removing any references from the controller blueprint fixed the issue as well, without changing the load phase which I feel might have other effects long term. So I’m guessing the validation of the controller happens in PreDefault and that messes with the CommonUI stuff which isn’t ready at that point.
I’ve noticed that having CommonUI in CommonUI.uplugin set to PreDefault loading phase breaks the Action Tag reference for Input Actions defined in Project Settings > Common UI Input Settings. Which causes the UI action to not work and you’ll see an error like provided tag does not map to an existing UI input action. It can be added under Project Settings->UI Input.
In case anyone else stumbles unto this issue I was facing
I just faced the same issue with CommonUI. I tried a lot:
deleting all generated project files, regenerating them
deleting the engines generated folder → verified the installation
Nothing worked. I had CommonUI working in another project I worked on last year and it all worked fine.
In between I thought that my other open rider instance messed something up, which I can not verify to be certain.
I just spend 3h debugging and pattern matching with my previous project. Nothing worked.
In the end I had to, as suggested here change the loading phase in the CommonUI.uplugin file of all modules to ‘PreDefault’ … I don’t know if all are necessary. I just did it for good measure.