Naming convention - Abstract Class

Hello guys,

I have read the coding standard for Unreal Engine. It’s here.

I’m aware that it’s a silly question, but I need to create Abstract Class named CharacterState. It’s normal c++ class, not an actor or something else etc. So should I use the “F” prefix like this FCharacterState? I am obsessed with consistency and so far I couldn’t find good guidance when to use the “F” prefix. The Coding Standard wasn’t clear enough. Sorry for the kinda silly question, but I am really bothered with such things.


The CharacterState is supposed to be a normal C++ class that doesn’t inherit from the special unreal classes like UObject, AActor etc. In other words I press add new class in the editor and select the “None” option which says “An Empty C++ class with default constructor and destructor”. When I open visual studio the class is created with no prefixes exactly like I named it in the creation wizard. That’s what got me confused. I shouldn’t be bothered so much by such things, but I can’t help it :D. So I guess we can conclude that the class should be named FCharacterState?

It depends on what CharacterState inherits from / is.

I for Interfaces.
U for UObjects.
F for everything else.

The UHT will actually complain if you don’t follow this paradigm so, I wouldn’t worry too much.

Yea, just go with F.