Description

When a component class contains an instanced reference to a UObject class that is EditInlineNew, adding the component to an actor makes the UObject properties uneditable in instances of the actor.

If the component is instead added to an actor instance already in the scene, the UObject properties can be edited as expected.

Regression:
No - same behavior in 4.15.3

Steps to Reproduce
  1. Open UE4 Editor (any project)
  2. Add two classes based on Object & Actor Component (MyObj & MyActorComp)
  3. Add EditInlineNew to MyObj's UCLASS macro
  4. Add the following to MyObject.h below GENERATED_BODY()
    public:
    
    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = test)
    	float RandomNumber;
    
    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = test)
    	FString RandomString;
    
    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = test)
    	FText RandomText;
    
    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = test)
    	bool RandomBoolean;
    
  5. Add the following ot MyActorComp below TIckComponent() declaration:
    UPROPERTY(EditAnywhere, Instanced, Category = UserParameters)
    	UMyObject* NewAction;
    
  6. Compile
  7. In the editor, create blueprint based on Actor (ActorBP)
  8. Add MyActorComp to component hierarchy
  9. Select MyActorComp in component hierarchy and set NewAction to MyObj
  10. In the Test dropdown, set default values
  11. In the main editor viewport add an instance of ActorBP
  12. Select MyActorComp for the instance and update values in NewAction->Test

Result:
Changing the value in the instance immediately revert to what was set in the blueprint when the variable field looses focus

Have Comments or More Details?

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

9
Login to Vote

Won't Fix
ComponentUE - Gameplay - Blueprint
Affects Versions4.15.34.16.34.174.18.34.19
CreatedAug 4, 2017
ResolvedAug 18, 2021
UpdatedAug 18, 2021