Class values definition

Why do we set precise values for Character classes speed, pos, etc., if it’s not an instance?

In UE5, when you click on the Character blueprint and set speed, gravity, jump height, etc., you’re technically not setting the class in the “dry type” sense, but its default object – the so-called CDO (Class Default Object). This is a “hidden instance” from which the engine copies values ​​to each new instance of that class.

Meaning:
– values ​​in the class = default settings for all future instances,
– values ​​in the level instance = a specific instance that can override these defaults.

Position is per-instance (the actor in the level has its own transform), so setting “pos” on the class makes sense mainly as a preview, not as actual in-game coordinates.

In normal programming terms, what you do in the class window in UE5 is simply set default field values, like in a constructor, not mess with an abstract “type definition” that no one ever creates. The engine just masks it with a single UI, so people confuse “class” with “default instance.”

Hi Roma,

It is so you have a solid starting point. If this is a player character, the character itself will spawn with these values at the Player Start.

If you are placing the characters in the world, it may be you want good defaults but you can then adjust per instance if needed.