[Bug 4.8.0 Release] TScriptInterface

Hello guys,
i just updated from 4.7.6 to 4.8.0 .
I had some minor issues that i have already solved, but it seems i can’t get out from this one.

I have an interface declared like this (ommitting some function declarations):

UINTERFACE(meta = (CannotImplementInterfaceInBlueprint))
class UEntityInterface : public UInterface
{
	GENERATED_UINTERFACE_BODY()
};

class IEntityInterface
{
	GENERATED_IINTERFACE_BODY()

	/** returns the owner number of the actor (0=world, otherwise it's a player) */
	UFUNCTION(BlueprintCallable, Category = "ImperoEntities")
	virtual int32 GetOwnerNum() const = 0;
 [.....]
};

And, on another interface:

UINTERFACE(Blueprintable)
class USelectableInterface : public UInterface
{
	GENERATED_UINTERFACE_BODY()
};

class ISelectableInterface
{
	GENERATED_IINTERFACE_BODY()

	/** tries to select actor */
	UFUNCTION(BlueprintImplementableEvent, Category = Selection)
	void OnSelectionGained();

	/** tries to deselect actor */
	UFUNCTION(BlueprintImplementableEvent, Category = Selection)
	void OnSelectionLost();

    /** My problems lies here */
	UFUNCTION(BlueprintImplementableEvent, Category = Commands)
	bool DoOnTargetEvent(const TScriptInterface<IEntityInterface>& Target, EJobType::Type JobType);
};

In 4.7.6, i defined the DoOnTargetEvent in a blueprint, called it from C++ and it worked like a charm.
Now, in 4.8, i see that function, but when i try to implement it, even when it’s still void, i get this error:

Error Cannot override 'SelectableInterface::DoOnTargetEvent' at  Do on Target Event  which was declared in a parent with a different signature

It works if i comment out the TScriptInterface, leaving only the enum.
I’ll soon provide some test code.

Here we go:

  1. Create a new empty c++ project called TScriptInterfaceTest
  2. Copy in it the files in the attached archive project code and content
  3. Regenerate project files and compile
  4. Open the project, open the BP class called MyCharTest
  5. You will find the function DoOnTargetEvent with the said error.

You can even try to delete the function, and reimplement it, but the error will remain the same.

Meanwhile, i switched back to 4.7.6 :confused:

Bumpity bump.
I’d hate to change all the structure of the project just to get to 4.8

Hi zamy,

Thank you for providing the code and Blueprint to reproduce your issue. Unfortunately when I created a project in 4.8.0 and implemented the code and uasset that you provided, I did not see an error. I tried this in both the Binary version of the Engine installed by the Launcher, as well as in a version built from source code.

47657-doontargetevent.png

Where do you see the error message?

You’re right!
Seems the 8.1 solved this bug indirectly.
Well, sorry and thanks.

the version 4.8.1 solved the bug.