Type Name Prefix Convention

I’m curious about the type name prefix convention. Here’s what it looks like to me:
E - Enums
T - Templates
U - UObjectBase and subclasses (except for AActor and subclasses)
A - AActor and subclasses
F - ?

What the heck does F stand for?

1 Like

Structs are prefixed with F, e.g. FString, FHitResult.
The F doesn’t really stand for anything. The first struct in the codebase was FVector, which was prefixed with F because it was a vector of floats, and the trend caught on.

There’s also an S prefix for Slate widgets (e.g. SListView, SInGameScoreboardWidget)

Ah, got it. Thanks. I figured it was nothing more than the “other” category. At first I thought it was for floats, but then I saw FIntVector.

There is also I, used for Interfaces.

Assuming all this is true, you could intemperate F to be “data structure”, that is, just a grouping of related objects/data/flags/references.

I think F is used for various things…
And then there’s G which seems to stand for Global.

it actually stands for Float, and it is legacy from previous versions when it was necessary to differentiate float from integer variables by using these prefixes

Mike Fricker (Lead Technical Director) explained the origins of “F” Prefix:

“The ‘F’ prefix actually stands for “Float” (as in Floating Point.)

“Tim Sweeney wrote the original “FVector” class along with many of the original math classes, and the ‘F’ prefix was useful to distinguish from math constructs that would support either integers or doubles, even before such classes were written. Much of the engine code dealt with floating-point values, so the pattern spread quickly to other new engine classes at the time, then eventually became standard everywhere.”

*“This was in the mid-nineties sometime. Even though most of Unreal Engine has been rewritten a few times over since then, some of the original math classes still resemble their Unreal 1 counterparts, and certain idioms remain part of Epic’s coding standard today.”
Source: