What/who is responsible for handling collision of an ACharacter against a static mesh?

I’ve been trying to spawn an AIController+ACharacter programmatically for two days now with no avail.

First of all, I’m doing this because I want to spawn “multiplayer characters” that exist on the server, then make them navigate. The reason I’m not using Unreal’s built-in networking is because I simply don’t like it. I prefer writing my own server framework.

Anyways, I spawn an actor:


FVector Location = FVector(x, y, 400);
FRotator Rotation = FRotator::ZeroRotator;
FActorSpawnParameters spawnParams;
spawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AdjustIfPossibleButAlwaysSpawn;

AOtherPlayerCharacter *actor = (AOtherPlayerCharacter*)controller->GetWorld()->SpawnActor(AOtherPlayerCharacter::StaticClass(), &Location, &Rotation, spawnParams);
actor->SetUID(playerId);
actor->SetActorEnableCollision(false);

Works fine, the actor gets created and in the scene view I now see OtherPlayerCharacter (sub of ACharacter) and an AIController. So far so good, until I notice the character falls. And falls. Through the floor, right into the KillZ.

My question being, how can I fight this? I’ve been debugging for hours on end to find what handles collision as my player collides perfectly fine, yet the newly spawned Character ignores all kinds of collision. I’m honestly clueless by now and can’t find where the collision is done so that I can debug more.

Best regards,

I’m stupid. “actor->SetActorEnableCollision(false);”. Argh.