How can I replicate PlayerStart in C++ without adding a PlayerStart to my level?

That probably seems like an odd, somewhat vaguely directed question, so let me give some context. Most of the projects I work on don’t require a PlayerStart (or shouldn’t), as there’s no in-game object that the user is directly controlling. But I’ve noticed if you don’t have a PlayerStart in your scene, some odd behavior happens, usually in the form of missing functionality, for example:

  • GetHitResultUnderCursor() doesn’t
    return anything (although, as Doug
    helpfully pointed out,
    GetHitResultUnderCursor is
    deprecated)
  • It seems like mouse over events don’t fire either, e.g. if you add a function to an actor’s OnBeginCursorOver, you won’t see the results unless you have a PlayerStart in the level

So what exactly does PlayerStart do “under the hood”, and is there a way to replicate whatever it provides to the level, or otherwise enable said provided functionality without placing a PlayerStart in the level? I know this is a super specific case, and to be honest, having a PlayerStart in my level isn’t totally egregious, but I’d like to learn as much as possible, just for myself if nothing else. Cheers!

Aha! No, I haven’t messed with the GameMode, so any hints there would be greatly appreciated, many thanks!

APlayerStart is just a marker for AGameMode, the real spawning code is inside AGameMode and it using APlayerStart to know where to spawn. It can be disabled or overriden as cancel explained :stuck_out_tongue: