Spawn multiple player controllers in multiplayer game

I did take a look. According to the video you took the controls which were inside of the pawn and copy pasted them into the player controller. You told the engine that the player controller holds those input information now.

Your Mouse Input and Jump look fine, IF you have some information in the variable “Cast Player”. Let’s check if you do.

Let’s have a look at your “Get Player Character”-block:
At “Begin Play” you tell the game that it should fire the event “Cast Player” which is your custom event. “Cast Player” then gets all your actors of your desired class, which is your third-person character in this case. It returns an array of those characters and you want to give this array into a ForEachLoop. But what do you actually do? You want to branch and the branch depends on the boolean “is being controlled”.

You get the error that you try to access “none”. Where do you access “none”? Inside of your player controller “custom controller”, because you want to access “Cast Player”. So, where is “Cast Player” set, does it have an default value? It will have no default value, because it is “none”. You could argue, that you set the “Cast Player” inside of your ForEachLoop, but yeah, here comes the problem.

It appears you never set “Cast Player”, so it stays “none”. Every actor you check is controlled. By whom? By yourself I would assume. therefore it always returns true and you will never set the “cast player”, because there are no actors who are not controlled, otherwise it would have been set to “something”.

You should debug this and print something out(like the index value of your array element) if it branches into the “true” path, so you know for sure how many/which actors are actually “controlled” and how many are “not”. Do you have auto possess enabled? It sounds weird to me, that you move “every” character with your input, because that would mean that you do not control that pawn, but that class and therefore everyone.