How Do I Spawn in 2 Different Characters For A Local Co-op Game (Not Split Screen)

No worries. I’m happy to help.

  1. The player controller is the abstract representation of the player. They are made with networking in mind so each controller holds a network channel, hardware input and a viewport (among other things). You can control 2 characters from the same controller and it’s the only way if you watn two characters to both be moved with the same hardware input (keyboard for example)
  2. No. The character class derives from pawn which means that the character can do everything a pawn can. (character is pawn)
  3. On Event Begin Play call Create Local Player in your Game Mode.
  4. Each controller is associated with a hardware input. For some reason the default is that the first player gets KB+mouse AND the first controller. You should go to your Project Settings → Project → Maps & Modes → Local Multiplayer and enable “Skip Assigning Gamepad to Player 1”. (disable Use Splitscreen while you’re at it.

For more information about the relationships between game mode, player controller and pawn check out Gameplay Framework in Unreal engine | Unreal Engine 5.4 Documentation | Epic Developer Community if you haven’t already.

Also there are a few local multiplayer tutorials in youtube. You should check them out.