Description

In the sample project we have a Widget Blueprint asset (SomeWidget) that implements a native interface (PrintSomethingInterface.h). However, in the DefaultEditor.ini file, we've also excluded all Widget Blueprints from being nativized. The end result is that we have a nativized Blueprint asset (SomeActor) that is set up to call one of the interface functions on an instance of the (non-nativized) Widget Blueprint at runtime.

In this case, the generated C++ code for the nativized Blueprint asset is failing to resolve the interface address at runtime, and the implemented function is not able to be called as a result.

Suggested workarounds include:

  • Whitelisting any Blueprint that implements the interface function for nativization (i.e. removing it from the exclusion list).
  • Selectively excluding (i.e. blacklisting) the Blueprint that's calling the interface function on the non-nativized Blueprint asset.
Steps to Reproduce
  1. Unzip the attached project to a folder.
  2. Launch UE4 editor and open the project.
  3. PIE, and notice the lines of output that print to the console/log (should be 2 lines).
  4. Exit PIE.
  5. Choose File->Package Project->Windows->Windows (64-bit), choose a folder and wait for packaging to finish.
  6. Launch the packaged game, and notice the lines of output that print to the console/log (now there's only 1 line).
    Expected result: Both PIE and the nativized game produce the same 2 lines of output.
Callstack

N/A

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-92640 in the post.

5
Login to Vote

Won't Fix
ComponentUE - Gameplay - Blueprint
Affects Versions4.224.234.244.25
CreatedApr 29, 2020
ResolvedJul 15, 2021
UpdatedJul 19, 2021