Derived SceneComponent does not tick in packaged build

  1. Create a new Blank Blueprint project with Desktop/Console quality and no starter content
  2. Create a Blueprint asset with Scene Component as parent class, call it “BC_Test”
  3. Right click BC_Test and select “Create child Blueprint Class”. This will create the asset “BC_Test_Child”
  4. Drag an Empty Actor into the scene from the Modes panel
  5. With this actor selected, drag a BC_Test_Child into the components list in the details panel.
  6. Give BC_Test_Child the following graph:

When we play in editor the actor spams Hello onto the screen.

When we package the project for Windows 64-bit, the tick function of BC_Test_Child is not called and thus we see nothing.

Hello ,

I was going through your steps to reproduce this issue. At first I did reproduce the issue on our end. However, after double checking everything I found that I had not saved out the scene before packaging. I then simply hit the save all button, removed everything from the packaging folder and then repackaged the project. After this the print string appeared to be working correctly. In the end I was not able to reproduce this issue on our end. I have a couple of questions for you that will help narrow down what issue it is that you are experiencing.

Quick questions:

  1. Could you try these reproduction steps on your end again with the addition of using the save all button before packaging?
  2. If the issue persists, could you modify your previous reproduction steps to include any small steps that may have been over looked?

Hey Rudy,

You are right, I’ve rebuilt the earlier example project again after your reply and suddenly it works perfectly.

  1. I tried it again with a fresh project, following my own steps and with the addition of saving the scene and also putting the Game Default Map to the saved scene (a step I forgot to mention), the problem did not occur.

Unfortunately the issue for my main project remains. Hitting the Save All button had no impact on the packaged build :frowning: I’m not sure what’s different in my main project. It is at least much more complicated and comprised of several maps, so there is not just one scene that I work with. To date I haven’t been able to find out why PIE works perfectly and in the packaged build the Tick function isn’t called. These may have been errors that got introduced and anchored into the blueprint by upgrading engine versions multiple times.

Hello ,

Could you try going through your blueprints and using the refresh all nodes option (Open blueprint, file, Refresh all nodes) before packaging? Another suggestion would be to MAKE a COPY of the project, delete the Saved, Intermediate, and Binaries folders and then open the project and try to package it out to a clean packaging folder.

Hello ,

I am happy that you have your project up and running again. I am going to mark my previous comment as the answer.

Make it a great day

Hey Rudy,

Thank you for your help, I think refreshing the nodes was part of what fixed it!

At first I tried repackaging the project after refreshing all the nodes in all Blueprints. The problem was not solved. Then I noticed that the parent blueprint did not have a Tick node. I added the Tick node to the parent, refreshed all nodes in all blueprints again and then it worked!

It’s strange that this worked, because the example project does not have a Tick node in the parent blueprint either, so I’m guessing that Refresh All Nodes was an important step.

Thanks again for your support!

having the same problem in UE5.2 Any suggestions? tried to go refreshing all but it didnt work

well after some more digging i finally found the issue. Upon delving into the scene component C++ implementation (CameraComponent to be specific), I found this:

#if WITH_EDITOR
	virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;
	virtual void OnComponentDestroyed(bool bDestroyingHierarchy) override;
	virtual void CheckForErrors() override;
#endif

which made me immediately assume that this components tick is only done in play in editor/ simulate mode for some reason i can’t yet understand (correct me if im completely wrong about this), so instead i hitch hiked all of my tick functions from the owning actor tick event, which turned out to work perfectly.

1 Like