Hot reload GetVariables blueprint

Hi,

I have notices that hot-reload fails a lot in how I use it. It seems like the “GetVariable” Nodes in blueprint doesn’t refresh their types when HotReloading classes that have been changed.

To better illustrate. I have setup a class in native:

UCLASS(Blueprintable,abstract)
class DREVIL_API UEvilSkill : public UObject
{
	GENERATED_BODY()
public:
	UEvilSkill( const FObjectInitializer& ObjectInitializer );

	UFUNCTION(BlueprintCallable,Category="Skill|Cooldown")
	virtual float GetCooldown();
};

And a blueprint

25571-setup.png

Where skill is a UEvilSkill.

Then I add a member to the class:

UCLASS(Blueprintable,abstract)
class DREVIL_API UEvilSkill : public UObject
{
	GENERATED_BODY()
public:
	UEvilSkill( const FObjectInitializer& ObjectInitializer );

	UFUNCTION(BlueprintCallable,Category="Skill|Cooldown")
	virtual float GetCooldown();

	UPROPERTY( EditDefaultsOnly, BlueprintReadOnly, Category = "Skill" )
	float Cooldown;
};

and recompiles in MSVS. (It doesn’t matter if I add properties or functions)

When compiling the blueprint again, the “GetVariable” node will be of type: HOTRELOADED_EvilSkill0 (ie, it hasn’t updated to the new skill class) but target in GetCooldown will have been updated to EvilSkill.

I can workaround the issue by dragging out a new GetVariable node to the Skill member. But it feels like a really damper to the workflow.

This is in 4.6.1 but I verified that the issue exists in 4.7.0 too. 4.6.1 is verified in Source-code version and binary downloaded version, and 4.7.0 is only verified in binary downloaded version.

Hey MarkusRannare-

I was able to reproduce the issue with the node pins not updating after a hot reload which has been reported to our internal tracking database (UE-7646). Currently the only workaround appears to be to close and reopen the editor to update the pins.

Cheers

Doug Wilson

Thanks for letting me know! =)

I have tried 4.7.p3 where it seems to be resolved =) Thanks for really fast work =)