Tick Event Not Firing

Hi all, I recently updated my project from engine version 4.10 to 4.11, and something weird happened… One of my actor (written in C++) doesn’t tick anymore. Other functions, like BeginPlay, or keyboard triggering events are still fine.

The inheritance is like: AActor → AItem → AMyItem.

  • I didn’t override Tick function in class AItem and I called Super::Tick(DeltaTime) in class AMyItem.
  • I set PrimaryActorTick.bCanEverTick = true in the constructor in class AItem.

And I’ve tried following solution but no luck:

  • Add three statements into the constructor of AMyItem

    PrimaryActorTick.bCanEverTick = true;
    PrimaryActorTick.bStartWithTickEnabled = true;
    PrimaryActorTick.bAllowTickOnDedicatedServer = true;

Hey PhoenixThrough-

So far I’ve not been able to reproduce this myself. Can you post the code for your actor’s tick function? Does other classes tick functions trigger in the 4.11 version of your project? If possible, can you let me know if a new project w/ the same setup stops ticking when upgraded from 4.10 to 4.11?

  • Here’s my code for actor’s tick function:

    void AItem_HTC_IGramophone::Tick(float DeltaTime)
    {
    Super::Tick(DeltaTime);
    UE_LOG(LogTemp, Warning, TEXT(“tick”));
    Unlock();
    }

The “tick” text is not printed to log and the function “Unlock” is not called as well.

  • All classes derived from AActor do not tick per my check, but those derived from ACharacter are fine.

  • I’m not able to reproduce it under a clean version upgraded from 4.10 to 4.11. The actors all tick as usual.

It turns out that I missed “Super::BeginPlay” in an intermediate class. Not sure why it may have effect on the Tick function (and it still worked in 4.10) but anyway adding this statement may solve the problem.

1 Like

had same exact issue, when i created the C++ class, it did not automatically add Super::BeginPlay(), adding it fixed my problem as well.

1 Like