# Why is it \`FTViewTarget\` instead of \`FViewTarget\`? Naming convention question 

**URL:** <https://forums.unrealengine.com/t/why-is-it-ftviewtarget-instead-of-fviewtarget-naming-convention-question/2843937>\
**Category:** Community & Industry Discussion\
**Tags:** unreal-engine, question\
**Created:** [October 22, 2026, 5:26pm UTC](https://forums.unrealengine.com/t/why-is-it-ftviewtarget-instead-of-fviewtarget-naming-convention-question/2843937 "2026-10-22T17:26:59Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Cabin](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Cabin](https://forums.unrealengine.com/u/Cabin)\
**Post date:** [October 22, 2026, 5:27pm UTC](https://forums.unrealengine.com/t/why-is-it-ftviewtarget-instead-of-fviewtarget-naming-convention-question/2843937/1 "2026-10-22T17:27:00Z")

</div>

Hi everyone,

I’ve been digging into `PlayerCameraManager.h` and the built-in camera blending code for my custom third-person camera system, and one naming detail really confused me.

We all know Unreal’s rule:

- `F` prefix for plain USTRUCT value structs
- `T` prefix is reserved for template types like `TArray`, `TObjectPtr`, etc.

But there is this struct:

```auto
USTRUCT(BlueprintType)
struct FTViewTarget
{
    GENERATED_USTRUCT_BODY()
    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=TViewTarget)
    TObjectPtr<class AActor> Target;
    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=TViewTarget)
    struct FMinimalViewInfo POV;
    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=TViewTarget)
    TObjectPtr<class APlayerState> PlayerState;
    // ... rest of the definition
};

```

It’s a regular non-template struct, so logically I expected it to be named **`FViewTarget`** , following the same pattern as `FViewTargetTransitionParams` right nearby in the same header.

Instead it’s `FTViewTarget`. The category metadata is even `TViewTarget`.

I understand the leading `F` means it’s an F-struct. But what is the purpose of that capital `T` after the F here? Is it:

- Some old legacy shorthand from early UE4 days?
- An abbreviation for Target?
- Just an accidental historical naming inconsistency, with no special meaning?

I want to make sure I understand this correctly before I follow or avoid this pattern in my own camera state structs.

Thanks a lot for any insight from anyone who knows the history or the original intention here!

---

<div class="post-metadata">

**Author:** ![ChenDong](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@ChenDong](https://forums.unrealengine.com/u/ChenDong)\
**Post date:** [October 23, 2026, 10:50am UTC](https://forums.unrealengine.com/t/why-is-it-ftviewtarget-instead-of-fviewtarget-naming-convention-question/2843937/2 "2026-10-23T10:50:11Z")

</div>

The F is the normal struct prefix. The T is not a template marker, and it is not short for Target.

Before the UE4 coding standard, plain structs used a T prefix, same as TArray already did. The camera type was TViewTarget. When structs moved to the F prefix, this one was not renamed to FViewTarget. F was added in front of the old name, which is why it is FTViewTarget, and why the UPROPERTY category next to those fields is still TViewTarget. FViewTargetTransitionParams sits in the same header with a clean F name because it was added later, under the new convention.

So FTViewTarget is an ordinary non-template USTRUCT. Nothing about the extra T should be copied. For your own camera data, use FViewTarget or FMyViewTarget.

---

<div class="post-metadata">

**Author:** ![jessicaw3344](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/jessicaw3344/32/882603_2.png) [@jessicaw3344](https://forums.unrealengine.com/u/jessicaw3344)\
**Post date:** [October 26, 2026, 12:58pm UTC](https://forums.unrealengine.com/t/why-is-it-ftviewtarget-instead-of-fviewtarget-naming-convention-question/2843937/3 "2026-10-26T12:58:23Z")

</div>

As far as I know, the extra T has no special meaning in the coding standard. The convention you described is correct, and FTViewTarget looks like a legacy name that predates the strict F-prefix rule and was never renamed, probably because renaming a widely used engine type would break a lot of existing code. I cannot point to an official statement on its origin, so treat that as an educated guess. For your own camera structs I would follow the standard F prefix, as with FViewTargetTransitionParams nearby, and keep any category metadata consistent with the struct name.
