I need this for the community ocean project I’m working on, the blueprint has a lot of variables in separate categories and I’m exposing more variables in their own category from the C++ base class. I need that category up near the top of the list but there’s no way to do this at the moment.
UE-26688 has been closed now, rather than create another AnswerHub thread for this could an Epic dev that sees this please create a new UE for this?
To be clear the I’m referring to is not being able to change the order of categories shown in the Details panel from the level editor window. This cannot currently be done using the Blueprint Editor window, or by using the UPROPERTY(Category = “Sample”) decorator on a property in C++. Currently the order in the details panel seems to stay in the same order as when you originally created the category, except for inherited categories which go at the bottom of the list.
This is less of a request and more of a bug. Since you can reorder them in the blueprint itself, they just don’t keep that same order in the class defaults and in any instances in the scene.
… It doesn’t work on child blueprints though. E.g. when having a child blueprint with previous category order and changing the parent blueprint, the changes are visible in the parent, but not in the Details panel of child blueprint. Is there something I can do to make it work, so changing category order will ‘propagate’ to child classes?
I’ve figured out a workaround for that - in 4.21, adding any variable with category that you want to reorder (can be even a non-editable boolean variable) into child blueprint allows to control the order of that category inside that child.
That’s not really convenient when having many child classes though, so I hope that this will be fixed in future versions.
It works well for normal categories but I’m not sure whether it also works well for sub categories.
And apart from it, it only has 6 types of priority.
In 4.24 we still can’t order the categories properly. It works only on parent class, any child classes don’t reflect the order of categories set in the blueprints. The order seems almost randomized in child classes.
DisplayAfter=“PropertyName”
This property will show up in the Blueprint Editor immediately after the property named PropertyName, regardless of its order in source code, as long as both properties are in the same category. If multiple properties have the same DisplayAfter value and the same DisplayPriority value, they will appear after the named property in the order in which they are declared in the header file.
[TABLE]
DisplayPriority=“N”
If two properties the same DisplayAfter value, or are in the same category and do not have the DisplayAfter Meta Tag, this property will determine their sorting order. The highest-priority value is 1, meaning that a property with a DisplayPriority value of 1 will appear above a property with a DisplayProirity value of 2. If multiple properties have the same DisplayAfter value, they will appear in the order in which they are declared in the header file.
I’m afraid we can’t set these in a pure blueprint projects (e.g. for a Marketplace asset). But thanks for the info, it looks like a nice solution for that.
That doesn’t work either in C++ to solve the, see how it explicitly says “as long as both properties are in the same category”. In C++ the order of the categories seems to be determined by the order in which they were added to the class, so if you add a UPROPERTY with a category called “this should be last” and then another with category “this should be first”, you’ll get the wrong order even if you try to enforce it with DisplayAfter or DisplayPriority.
This can be solved easily by putting the properties in the desired order as it seems that in C++ it is respected, but that doesn’t work properly on child classes either. Categories created in the child class seem to always be ordered first, unless you add new properties to a parent’s category. And even then, if you had multiple categories in the parent and wish to keep them in the proper order, you’re out of luck because anytime you add stuff to them in a child they’ll be reordered.
The only workaround seems to be the one you mentioned earlier about adding dummy variables with no use in the categories, but that’s an awesome way to basically clutter your classes with crap.
It would be really nice to have a UCLASS metadata similar to the “HideCategories” but to set order and/or priority for them. I’m still experimenting a bit to see if it’s possible to trick the editor into reordering them with some combination of specifiers…
Okay, it seems that using subcategories (eg. Category|SubCategory) breaks this . Which is the one way I was keeping some semblance of variable organization. When you try to drag the category to reorder, the green checkmark pops up and says “Move Category X before Category Y?” and when you release, nothing happens. I guess I’ll have to drop all the subcategory organization I’ve done so that I can at least have them in an order that makes sense.
Game development needs to be tidy. This needs to be MUCH more user/developer friendly.
It seems even your work around is not working for me. A category that exists in both the parent class and the subclass in the same order, appears in a different order on blueprints created from the subclass.
This is absolutely brutal. And I understand the reluctance to fix it, maybe they are not quite sure what to even do. The solution is most likely to display parent properties and categories in the “My Blueprint” section of subclasses with some special identifier indicating they come from the parent. Maybe even an option or a checkbox to enable/disable that functionality? Reorganizing the properties/categories then in the subclass would then allow the user to determine how they show up in blueprints based on that subclass.
As it is trying to create designer-friendly blueprint classes is a real challenge when it comes to more complex blueprints.
I keep seeing this same theme across the forums… It’s really starting to feel like all of Epic’s focus is going into ue5 and other New Exciting Features while the less flashy fixes ue4 needs get ignored.
It is fascinating and maddening that this basic usability 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.