When do my DefaultPawnClass and PlayerController defaults actually get instantiated?

I’m a little confused as to my responsibilities are as far as creating actual instantiations of my controller and pawn class.

In my GameMode constructor AGM_Menu() , I set the DefaultPawnClass and PlayerControllerClass using my pawn’s APlayer_View_Pawn::StaticClass() method.

My question is. When do the actual instantiations happen? I’m just telling The game mode what the default classes are here right? Where do the actual objects come to life?

I added a photo of some code that is causing me problems and I think my question will lead me to figuring out how to fix it.

Obviously the pawn i’m trying to access isn’t instantiated at this point I’m trying to access it. Strangely before it was running fine just like this. Is there a method to put this possession code in that happens at a better point in the creation cycle?

Thanks for your time.

Well I believe through the sidebar reccommendations I’ve found the answer to half my question. Here is a link I found as to where the instantiations occur.

Now I’m just wondering where is a better place to do the Possession logic?

Nevermind. I figured out where. The GenericPlayerInitialization will work for what I am looking for.