Hey
We’re running into an issue with the blocking geometry checks for spawning pawns from game modes using the default ChoosePlayerStart implementation.
Our Pawn is a blueprint class that inherits from Pawn, it has a collider and a movement component
When spawning, multiple pawns will occupy the same spawn point, because they’re not considered occupied.
Our blueprint pawn never sets “RootComponent”, which is only accessible from C++, but EncroachingBlockingGeometry relies on it
As a test we tried creating our RootComponent in a base C++ pawn inheriting from Pawn, assigning the RootComponent, and then inheriting our blueprint from that
That gets us further through EncroachingBlockingGeometry - but still ends up failing because it fails to find the MovementComponent on the pawn DefaultObject
It seems like components added in Blueprint don’t exist on the DefaultObject at runtime - is this a correct assumption?
If we want to use the default spawning behavior to block multiple Pawns spawning in the same spot, do we have to construct our Pawn in C++?
We started down that path, but because it has up to this point been built in Blueprint, we got to adding the MovementComponent in C++ construction time, but that didn’t really work out, because our MovementComponent constructs and object based on a TSubClassOf ptr that references a blueprint class that we can’t get from C++
Got any advice on best practices to get ourselves out of this jam?
Thanks