Getting Placed Editor Utility Base to tick in game?

Ran into an issue recently that I’m hoping to find a solution for. Basically I have a blueprint actor with its parent class set to “Placed Editor Utility Base” so that it ticks properly while I’m working in editor. This works perfectly in every way but unfortunately this actor only ticks in editor and does not tick in game. Is there a way to get these actors to tick properly in game?

Basically this actor gathers all actors in the world through ticking in editor, gets those actors values in real time. It gives them ID numbers and passes all of their information into material parameter collections. It does all of this flawlessly in editor but it does not do so in game because neither event tick or begin play trigger properly on these actors.

I can convert the blueprints Parent Class to be Actor so that it ticks in game but I lose the actors entire purpose at that point.

I’ve also tried setting this blueprints class to Actor and then on all of the actors it gathers info on turned on their construction scripts to call a custom event on the blueprint which works mostly for what I need but unfortunately deleting any of these actors leaves things broken as no info gets passed correctly at that point.

So I guess overall my question would be, is there a way to get these “Placed Editor Utility Base” actors to work properly with begin play/event tick, OR is there a way to get regular Actor blueprints to use event tick while in editor as well?

In 4.23 you can try the EditorUtilityActor class, because the Placed Editor Utility Base was deprecated. It seems to tick in game… But it doesn’t tick in editor like the Placed Editor Utility Base was. Maybe that’s a bug or unintended change, because we can’t get the in-editor tick working anymore.
I’ll probably submit a bug report for 4.23 regarding this, I just hope it’s not a deliberate decision to turn off in-editor ticking for editor utility classes.

New post, to let you know about the update:
I’ve found a workaround for that: Use the EditorUtilityBase class as parent. On both Construction Script and Begin Play, execute a custom event that starts a Timer (Set Timer by Event) with Looping == true and smallest possible Time (like 0.01). Then it works both in editor and in game!

**Update: **Scratch that. It was working only when the actor BP was opened in the tab. :frowning:
When drag&dropped into a level, it doesn’t work without keeping the blueprint opened.

@Slavq @evilmrfrank I figured out a workaround and documented it here. Let me know if that works for you.

Seems like a nice workaround, thanks for sharing! Personally I’ve used the timers + events with Call in Editor on, that also can serve as a workaround. Not a ‘true’ tick from the Event Tick, but the interval is controllable, so the tick behavior can be replicated to match the standard tick.
More info here: Unreal Engine 4.23 Released! - #149 by Slavq - Announcements and Releases - Unreal Engine Forums

Using the timer/event stuff is indeed the way I ended up going with this, thanks for the answers :slight_smile:

Hello,
Anyone found out a native way of ticking in editor without the “timer + in editor event call”?

@Slavq Did you end up submitting a bug or feature request?

For reference: the related documentation pages are:

I did try whether the utility actor class would tick if the plugin for editor scripting is enabled. it didn’t.

@WouterWeynants thanks for the nice guide. I’ve implemented my ticker as a editor utility class itself, and don’t require an editor component in the ticked actor, just to implement the interface. Placing the ticker in world starts the ticking, and removing stops it. Includes a fake delta time.

Epic: a checkbox or a rational (planning or issue) could be nice.

In my case I just went with the Set Timer + event solution. This was the solution that was recommended to me by Epic Staff here on forums.
The ticker trick from @WouterWeynants look nice too.