Controller vs. PlayerController

I’m not sure if this question was asked before, but I didn’t find a similar in the searches.

I’ve started to BP-scripting with a (normal) Controller for my PlayerController.
All is working well, so I’m quite fine.

But I’m curious about 2 things.

As there is a PlayerController I assume that there is another handling inside of UE4 instead of a (normal) Controller.

  1. Is it easily possible to merge/switch my Controller to a PlayerController? (without doing my work from start)
  2. What is the difference between (normal) Controller and PlayerController?

Many thanks.



1.) Yes. You can easily reparent a Blueprint to use a different class as its parent. If the old and new class have the same ancestry (as in your case), that shouldn’t cause any problems. I’d still create a backup copy before doing this just to be safe.


2.) I’m not entirely sure. I guess the PlayerController contains a number of useful functions that the Controller doesn’t because they’re not needed for the AIController (the Controller’s other child class).

Controller is abstract class for classes that control pawn, PlayerController is class that controls pawn based on player inputs, AIController is class that controls pawn based on UE4 AI systems (blackboard and stuff like that), controller is class that combine those 2 (as so far they are only controllers in UE4) in to common interface, so regardless if you plug PlayerController or AIController to something, it will able to communicate with it. For example Pawn use Controller class, so (obviuesly) you can use either PlayerController or AIController to possess it.

This is basis of inherency and object oriented programming and UE4 is full of such abstract classes

reparenting wasn’t that what I’m looking for - or maybe I misunderstood. As I have to reparent it to another(new) controller and I thought to migrate it to the other class.

Ok, so I can let it be as it is. :slight_smile: Many thanks.