I have a UUserWidget. It has a UPROPERTY that is Instanced and EditInLineNew.
When I select my UUserWidget, I can see the property, I can edit it. But as soon as I hit “compile” on the parent UUserWidget, every setting I made in the property is deleted and the property is reset to “none”.
(The same UPROPERTY copied&pasted into a normal blueprint is saved just fine)
My UUserWidget: (DisplayThisData is not saved)
UCLASS(Blueprintable)
class UDataField : public UUserWidget
{
UPROPERTY(Category = "Data", EditAnywhere, Instanced, BlueprintReadWrite)
class UGameplayData* DisplayThisData;
My normal Blueprint: (CheckThisData is saved)
UCLASS(Blueprintable)
class UQuest : public UObject
{
UPROPERTY(Category = "QuestCondition", EditAnywhere, Instanced, BlueprintReadWrite)
class UGameplayData* CheckThisData;
UPROPERTY(Category = "QuestCondition", EditAnywhere, Instanced, BlueprintReadWrite)
int AmountToAchieve;
What class does UGameplayData derive from? I tried setting this up using an EditInlineNew UObject, and compiling the Blueprint kept the values that I set.
It’s very interesting that it works for you, that gives me hope that it should work. I am just nor sure what is different. Here is the full code of my 2 test classes:
#pragma once
#include "Object.h"
#include "GameplayData.generated.h"
UCLASS(Blueprintable, EditInlineNew)
class GAME_API UGameplayData : public UObject
{
GENERATED_BODY()
protected:
UPROPERTY(Category = "Parameter", EditAnywhere, BlueprintReadWrite)
int32 DummyParameter;
};
#pragma once
#include "Blueprint/UserWidget.h"
#include "GameplayData.h"
#include "DataField.generated.h"
UCLASS(Blueprintable)
class GAME_API UDataField : public UUserWidget
{
GENERATED_BODY()
protected:
UPROPERTY(Category = "Data", EditAnywhere, Instanced, BlueprintReadWrite)
class UGameplayData* DisplayThisData;
};
I create a blueprint from DataField. I tested these scenarios:
I open the blueprint, click in the hierarchy on the top element. I set the DisplayThisData field from “None” to “Gameplay Data”, Compile. It reverts back to “None”.
I open an unrelated blueprint. Place the new DataField blueprint inside of it. Select it and change the DisplayThisData field from “None” to “Gameplay Data”, Compile, It reverts to none.
Thank you for the clarification. I was able to reproduce the issue by setting the value for DisplayThisData in the Designer tab. I had previously been setting the value in the Graph tab, and it seems to work fine there. This is very similar to the report that I had entered previously, but I went ahead and entered UE-38276 to make sure this was covered as well.