Fun one I just found.
Steps to reproduce:
- Start a fresh, new project (I used the FirstPerson template, but it hardly matters).
- Create a new BP Enumeration. Name it whatever, add some enumerators, save it.
- Open a blueprint (I used the FirstPersonCharacter BP, but again, it doesn’t matter).
- Add a new function. It doesn’t do anything - we just want to create its signature.
- Add an input argument named ‘Category’ to the new function.
- Set the argument type to be the BP Enumeration you just created.
- Now hit the Compile button.
In the ‘My Blueprint’ tab, the new function will now appear under a category header named ‘New Enumerator 0’. In the ‘Details’ panel however, it’s still listed as Category ‘Default’. If you do this in a project that already has a bunch of BP Enumerations, the “bad” category will have some higher number rather than 0. At any rate, any attempts to move the function to a proper category will be shot down as soon as you compile the BP again, at which point the “bad” category pops up again.
The only apparent way to resolve this is either to rename the input argument to something else, or to change its type to something that is not an enumeration.
Oh, I just noticed… While keeping the argument name as ‘Category’, setting the type to the built-in ‘RenderToTextureEnum’ produces ‘New Enumerator 10’ instead. Aaaand with a more core-type enum like ‘EDraw Debug Trace’ we get a ghost category simply called ‘None’. It’s a bit of a secretive guy, that.