Game's Architecture

Hi, I have some questions about unreal architecture because not everything is clear. I want to make a network FPS game with different character (ninja, rifleman for example) on a listen server.

So I have: [Server] = Only server, [Server-Client] = Both, [Client] = Only client, [Own] = Only on game instance

-GameMode [Server]

-GameState [Client]

-Differents characters with differents states [Server-Client]

-Player controller [Own]

-PlayerState [Own]

-HUD (UserWidget) [Own]

I understood that character, HUD, PlayerState or possessed by the controller but what does it mean exactly ? HUD, character are create in the PlayerController ? If my character dies where goes my PlayerController, because it doesn’t possess the character anymore but keep the character’s data in the PlayerState ?

My second question is about character data. For example, I have basics informations about my character like stamina, health, mana… Where is the best way for a server ? In the PlayerState, int the PlayerContoller or directly in the character ?

I think my problem is the fact that I don’t understand how these differents modules interact with each other.

Thanks ! Im using C++ and sorry for my bad English