During an upgrade process of a project from UE4.27 to UE5.1 I discovered a problem with my Blueprint Interfaces (BPI).
In UE4 I had a BPI (LSA_Interface) to communicate between a traffic light controller and several instances of different traffic lights (LSAs). Therefore has the LSA controller (a blueprint actor) some array variables of other blueprint actors with the BPI (the traffic lights).
On the map I could assign that LSAs by using a drop down menu or the pimpette to the array of BPIs in the LSA contoller and the communication worked fine.
Now in UE5 something changed. I am not longer able to select my LSA actors which having the BPI interface implemented (+ be placed on the map). I am not able to select them via dropdown (list is empty) and the pimpette do not exist any more.
Both in UE4 and UE5 the LSA controller and the LSAs are normal blueprint actors (parentclass actor) with the BPI as implemented interface
different is only the name as in the ue4 project a typo happend which were corrected during the migration (all TLA renamed to LSA) Class setups or types of the actors have not changed in the migration process
It looks like this has been removed in UE5.
It’s not ideal, but as a workaround you can change the type to array of Actor instead.
The functionality should be the same.
That is correct! As Actor array the connections can be established. The pimpette is there available but the drop down list shows all actors in the map there, of course …
The question remains is it a bug or a feature of UE5
I can’t find a reason for this change, it invalidates perfectly functional workflows for no apparent benefit. The workaround of setting the variables as Actors adds additional boilerplate and makes the drop down menu or impette nearly unusable on a sufficiently dense environment.