Download

Reorder variable Categories in Class Defaults

It is fascinating and maddening that this basic usability feature has been requested and talked about in multiple forums since AT LEAST 2015 and it STILL hasn’t been fixed. There is no way within a Blueprint class to be able to order the categories so they make ANY kind of sense to an end user.

2 Likes

Five. Years.

:man_facepalming:

Has anyone tested to see if UE5 improves this?

I want my “Area” category at the top, not the bottom…

Also, I see some mention of C++ in the thread… what about Blueprint and actual UI support for this?

The problem has been solved!
I found this discussion because I had this problem today.
I have a base class A and a subclass B.
A have Category “Common”.
B have Category “Data”.
I want “common” to come before “Data”.
Create an unused variable in “B” and hide it.
Here’s the example.

//Common
UPROPERTY(BlueprintReadWrite,EditAnywhere,Category=“Common”,meta = ( EditCondition = “non1 != 0”,EditConditionHides))
int32 non1 = 0;//unused variable

//Data
UPROPERTY(BlueprintReadWrite,EditAnywhere,Category=“Data”)
FString DataSource;

As we all know, subclasses serialize first, so let the subclass serialize the parent tag ahead of time, and then fill it in when the parent class serializes.

Finally my English is not good, but I am trying to help others.
The discussion is over.
——————————————————————————————————————
简单来说官方可能不觉的这是一个缺陷,因为我们可以在子类里提前把父类的标签的顺序安排好,
例如
父类里有个标签 名为 common
子类里有个标签名为 Data
我在子类里这样写:

//Common
UPROPERTY(BlueprintReadWrite,EditAnywhere,Category=“Common”,meta = ( EditCondition = “non1 != 0”,EditConditionHides))
int32 non1 = 0;//unused variable

//Data
UPROPERTY(BlueprintReadWrite,EditAnywhere,Category=“Data”)
FString DataSource;

我们都知道子类会先于父类序列化,所以让子类先把父类的标签序列化一下,
让一个没有用的属性来做这件事情,并且它会将自己隐藏。
最后父类序列化时候就自动填入了。
最后我也是突发奇想产生的写法。

五年的帖子应该终结了。