Hi all. I have been having this incredibly annoying issue where it seems that my tick for an actor is never called. I have a function called within the tick that is never triggered and a print statement in there also which never prints saying the tick is being called. I’ve been searching online for days and everyone says to enable CanEverTick and StartWithTickEnabled but nothing seems to be working with my project. I have even created a new project and tryed just printing out a line and it doesn’t even work in there either. If anyone has any ideas or has a method of checking to see if something has finished every frame that would be amazing!
Unfortunately my internet is down ( Having to use mobile ATM ) so not able to send full source but I have taken some photos of the code. Please find the link attacked to them Imgur: The magic of the Internet
This didn’t work unfortunately. Like I say I have tried even using a different project and the same issue occurs so not sure what exactly is causing it not to run.
but nothing. Pawn works fine otherwise, gets input and my movement methods are being called. I have a BP inheriting from this C++ pawn and on that i have set “Start with Tick Enabled” as well.
Not sure if this a bug? Although if it’s been there since 4.11, surely people would have noticed long ago.
Still now work around yet!! Really need a work around for this as its stopping me from do anything that i need to do!!
Does anyone know any other way to have a function called every frame? PLEASE
The above link doesn’t work anymore. Can you share the code? Normally those two calls is all you need (along with the declaration “virtual void Tick( float DeltaSeconds ) override;”). Is it a spawned actor or a placed actor? As a long shot, you can try deleting the actor from the level and placing him there again, then run it and see if it works.
Just fixed it for my project. Turns out “Allow Tick Before Begin Play” was the culprit. In my BP derived from my custom C++ pawn I had to set that to true or else neither BP nor C++ would ever tick.
A bug or by design? I don’t really get what sense it makes to tick before BeginPlay, but then to have it result in not ticking at all unless set to true is another level of strange.
If you’re using a blueprint which derives from this actor, did you check the BP “Class Defaults”->“Actor Tick” section? The BP has its own checkboxes for “Start with Tick Enabled”, “Allow Tick on Dedicated Server”, and “Allow Tick Before Begin Play”; make sure they’re all checked.
If you’re overriding BeginPlay, make sure you put Super::BeginPlay() in you’re overridden BeginPlay() function. Also do the same for Tick(DeltaSeconds) with Super::Tick(DeltaSeconds).
It fixed my actor not ticking for me inexplicably.
Geez, I’m an idiot, if I had to cut off a finger for every time not calling Super has wasted an hour of my time I would not have anymore fingers, thanks for the obvious!
I just had the same issue, but everything mentioned above checked.
In my case, my Blueprint subclass, the one that is actually being spawned in the world, had its tick disabled in BP. Worth checking if you’re googling this.