Why was "bObserveBlackboardValue" removed(hidden from editor) from BTTask_MoveTo in UE 5.5? It appears to function if enabled.

In 5.4 BTTask_MoveTo had a pair of exposed (and one contingent on the other) variables

bObserveBlackboardValue, and (EditCondition contingent, also only visible by setting) ObservedBlackboardValueTolerance

In 5.5, the latter became unhidden( but still uneditable) but the former stopped being editable, with no comment about it.

The code in the .cpp continues to support it, and when I made it editable, it continued to function.

5.6 didn’t change this, and a glance at 5.7 suggests nothing has changed with this either.

Was this an oversight or is there some reason we shouldn’t be using it and it was semi-deprecated?

==================5.4 properties=====================

	/** if task is expected to react to changes to location represented by BB key 
	 *	this property can be used to tweak sensitivity of the mechanism. Value is 
	 *	recommended to be less than AcceptableRadius */
	UPROPERTY(Category=Blackboard, EditAnywhere, meta = (ClampMin = "1", UIMin = "1", EditCondition="bObserveBlackboardValue", DisplayAfter="bObserveBlackboardValue"))
	float ObservedBlackboardValueTolerance;

	/** if move goal in BB changes the move will be redirected to new location */
	UPROPERTY(Category = Blackboard, EditAnywhere) 
	uint32 bObserveBlackboardValue : 1;

==================5.5 properties=====================
	/** if task is expected to react to changes to location represented by BB key 
	 *	this property can be used to tweak sensitivity of the mechanism. Value is 
	 *	recommended to be less than AcceptableRadius */
	UPROPERTY(Category = Blackboard, EditAnywhere, meta = (EditCondition = "bObserveBlackboardValue", ClampMin = "1", UIMin = "1"))
	FValueOrBBKey_Float ObservedBlackboardValueTolerance;

	UPROPERTY()
	uint32 bObserveBlackboardValue : 1;



[Attachment Removed]

Steps to Reproduce
NOT APPLICABLE

[Attachment Removed]

Hi there,

This looks like it is indeed an error that was fixed in a later version of the engine (CL 8783944). However there does seem to be a bit of nuance to this as in CL 34158714 it was once again made a basic UPROPERTY with no specifiers. Despite this i found that in 5.4.4, 5.5.4 & 5.7.2 both properties were visible and editable. Although, in 5.5.4 & beyond bObserveBlackboardValue is displayed as an inline edit condition so it’s name is not visible and it’s displayed alongside ObservedBlackboardValueTolerance. I can’t speak to the reason for the change but I believe it was deliberate and it relies on a quirk of the reflection system. That being the engine treats edit conditions with no specifiers like it would one with the meta specifier InlineEditConditionToggle.

UPROPERTY()
  bool bTestHidden = false;
 
  UPROPERTY(EditAnywhere, meta=(EditCondition="bTestHidden"))
  float TestFloatHidden = 0;

is functionally the same as:

UPROPERTY(EditAnywhere, meta=(InlineEditConditionToggle))
  bool bTestInline = false;
 
 
  UPROPERTY(EditAnywhere, meta=(EditCondition="bTestInline"))
  float TestFloatInline = 0;

As seen here (after toggling the checkbox for the edit conditions):

[Image Removed]

Therefore the change that you have made should be safe to rely on.

- Louis

[Attachment Removed]

Oops! You’re right. I was unfamiliar with that auto-reflection and saw that it had no specifiers and that it didn’t appear in the editor - and I was used to ignoring “grayed out” properties and failed to notice the checkbox.

Thanks for the information.

[Attachment Removed]