Tick is never being called even though CanEverTick and StartWithTickEnables is true

YOU’RE A LEGEND! I forgot the Super::BeginPlay()

Wasted an hour not seeing the obvious… Thank you for this!

In my case the actor didn’t tick because I didn’t have any components. Adding this to the constructor fixed the problem:
RootComponent = CreateDefaultSubobject<USceneComponent>(TEXT("RootSceneComponent"));

Thanks for this thread, I had the same issue due to not calling Super::BeginPlay(), and the sneaky thing that took me a while to find after adding it to my subclasses was that I also hadn’t added it to their common base class.

In my case the reason was that i spawned AActor via NewObject:

NewObject<AMyUnit>(World);

while it have to be done via SpawnActor:

World->SpawnActor<AMyUnit>();