How to reorder variable Categories in Class Defaults?

In UE 5.0.3 at least, the sub-categories seem to be ordered based on the order of the variables when NOT in sub-categories.

In other words:

  • Put all the variables in a top level category
  • Order the variables as they will be once split into sub-categories
  • Then move the variables into their sub-categories

e.g., if you want a category tree that look like this:

  • MyCategory
    – MySubCategory1
    — VarFoo
    — VarZoo
    – MySubCategory2
    — VarBar
    — VarTest

Then do this first:

  • MyCategory
    – VarFoo
    – VarZoo
    – VarBar
    – VarTest
2 Likes

2022: Still an issue.

Got a lot of categories and subcategories in order for a child actor by creating unexposed (not public) proxy parameters to represent each category. It worked for a while but now the categories and subcategories are all over the place once more and the way to fix this would be to de-categorize hundreds of parameters and then re-categorize them again in correct order as explained above. Would be nice to just drag n’ drop them as this is how how the UI already works but it just isn’t keeping the set orders when the actual BP is dragged into a level. Very frustrating.

1 Like

2023: Still an issue.

3 Likes

@Bjartmann 's solution worked for me in 5.0.3 - thanks. Just remember to compile & save after sorting and it should be updated.

2 Likes

I’ve known this issues for years (since 2016) and I’ve been very mindful of it on every Blueprint I started. But dev is dev and every time it gets to a point where it just makes a mess of my BP. And it’s really frustrating to not see any development on the matter.
Categories appearing as duplicates is also an issue that’s been around for years. multiple variable grouped under the same category will appear split under 2 identical categories in details panel, not even adjacent to each other. Very messy.

Would be awesome if compiling also sorted all categories as specified by the user.

1 Like

I was also facing it and wasted 3 hours

TO all users who are facing this issue, do as following

select the category name in variable panel

press f2 , you will see it will show you the box with cursor for renaming,

Do not rename it and press enter

Hit compile and your done!

Now you will see sort order working until next restart

2 Likes

this is bang on

hv u tried my method?

How is it possible that STILL in 5.2.1 this is not fixed?
So simple thing but makes the UI a lot easier to use when you can order the parameters.
Just make the order the same as on Variables list, that’s it. Can’t be that big job.

I have seen many of you didnt understand the topic and answer what you know of. The problem here is :


image
Here is the variables, categories’ order could be CHANGED!


This has been reflected perfectly to Class Defaults panel.

BUT
When you previously created a child from it, that child’s details window categorization is random.

How to fix it. How to change categorization order.

PS : Do not tell like reparent again or clear and put it again, many data needs to be placed so that workaround is not good one.

It works, but when you have a huge library, it breaks your brain)
In any case, thanks!

OMG!
Thank you for this!
Works as of 5.3 for me!

But there some solution work in C++?

My problem is that,I created a Class of DataAsset,and writed some variable in it,and categoryed them.
After create a ChildClass for it,and write some new variable in Child,categoryed them…
In DataAsset Editor,it is see that these inherited variable and category are order in lower.

I konw that is not some means but still just want it reorder for look more beautiful.

It look like that solution is find.
Reorder variable Categories in Class Defaults - General / Feedback & Requests - Epic Developer Community Forums (unrealengine.com)
In there, use

UCLASS(Abstract, meta = (PrioritizeCategories ="Sound Content Style"))

to sign the categories.

Cool, it works great.
But unfortunately, it doesn’t work with groups, inside other groups)
But thanks, it’s better than nothing!