What is player controller and auto posses?

I have read that player controller is a class which gives input to pawn but it was also written that input facility can also be added directly into pawn class.I have few question
1)so what is the use of player controller?
2) can my game run without any player controller?
3)what is auto posses?( read in forum that only that pawn will move which is auto possessed but i didn’t understood the concept)
4)what is default player controller?
5)how many player controller can i have in a level?

I am a noob and recently started learning ue4. so if any of my questions is invalid then sorry for that.please clarify my concept of player controller.
thanks

  1. If pawn is a body, the PlayerController is a soul of player, it represents player and it sends control calls to the pawn that is currently possessing

2)If you mean without Player Controller object, no… at least without modifying UE4 gameplay framework in UE4 engine. Well you could control pawn with simple key nodes in Level Blueprint and some other classes that accept those, but it’s not recommended and player controller will be created anyway

If you mean without Player Controller class then yes you can use standard Player Controller class if this is sufficent.

3)Makes Player Controller automatically possess the pawn on the start, Player Controller also auto possess spawned default pawn if you have one, normally you can manually possess pawn with Possess function/node from Player Controller

  1. APlayerController class coded in C++, which you extend with blueprint when you make Player Controller class blueprint

  2. Player Controller is made for each player connected, engine creates them automatically on start and if someone connects, in include local players when you call Create Player.

Read about how gameplay framework works in UE4 explaining all those base classes and what they are for here:

I also have another doubt if player controller is necessary for movement of pawn then how many player controller can i have in the level and if i can have more than one player controller then which of these will receive my input.ex-i have 4 player controller in the level and each of those control their respective pawns and input handling of those pawns are coded in their respective player controller and all input handling keys and logic is same. now when i press any bind key then which will respond to my input.