Assign pawns to controllers from multiple classes

Absolutely! The 3 different classes you named sounded like you’re using Character and that’s why I said to create it based on the Character! Polymorphism and inheritance are object-oriented concepts and are not restricted to a specific class! You can easily do the same thing with a Pawn class :slight_smile:

The C++ approach you have in mind is a good one! See this answer for a good practice using C++ and blueprints. In this case, you can let your C++ class work as the base class. You would then create blueprints based on this class. Simply right-click anywhere in your Content Browser > Blueprint class, and search for the name of your c++ class (Alternatively, you can find your C++ class in the Content Browser, right-click on it and create a child blueprint based on it).

Did you know you can even check who the parent of your blueprint is? Simply open the blueprint, and on the top right corner you should see Parent Class: [Name of Parent Class]. You can easily change its parent from inside the blueprint by going into Class Settings.