How do add frame separator to output log?

My actors during a single frame are processed in a certain order. (The order is set by node Add Tick Prerequisite Actor.) I need to check if this order correct. I print to log a message in all Event Tick handlers. But I need to distinguish if two neighbor records in the log belong to the same frame or to different frames. I need a separator between frames in the log.

It can be implemented by some event which is called before all Event Tick evens or after all Event Tick events. Is there such event in Blueprint? Or maybe there is a special actor type which is processed before all other actors or after all other actors? Or maybe other solution possible?

My log looks like this:

....
LogBlueprintUserMessages: [Ball_C_2] Move
LogBlueprintUserMessages: [Ball_C_3] Move
LogBlueprintUserMessages: [Ball_C_4] Move
LogBlueprintUserMessages: [Ball_C_1] Move
LogBlueprintUserMessages: [Ball_C_2] Move
LogBlueprintUserMessages: [Ball_C_3] Move
LogBlueprintUserMessages: [Ball_C_4] Move
LogBlueprintUserMessages: [Ball_C_5] YellowBall BEFORE BlueBall
LogBlueprintUserMessages: [Ball_C_1] Move
LogBlueprintUserMessages: [Ball_C_2] Move
LogBlueprintUserMessages: [Ball_C_3] Move
LogBlueprintUserMessages: [Ball_C_4] Move
LogBlueprintUserMessages: [Ball_C_1] Move
LogBlueprintUserMessages: [Ball_C_2] Move
LogBlueprintUserMessages: [Ball_C_3] Mo tove
...

Balls 1-4 processing is ordered. They processed in order 1-2-3-4 within one frame. I need to know is Ball_C_5 processed after all other balls or before all other balls?

There console command for tick logging:

Tick.LogTicks 1

to disable:

Tick.LogTicks 0

All of them have frame number so , you can distinguish :slight_smile:

This command is not very convenient. There is a lot of info in the console when this command is enabled. It is hard to understand what is happening. Maybe there is a way to get frame number from Blueprint or print frame number with PrintString node?

When I need to know which order multiple actors are processed I usually just add print string nodes feeding them the self object name and or set breakpoints.

I do the same. But there is a problem. For example, I see in the log: “… Obj1, Obj2, Obj1, Obj2, …” Which object is processed first and which second?

If you place your Print statements in the place in your code where the objects get “processed” then the log will show them in the order they happened.

It is confusing to look at the screen output because those appear for 2 seco ds then the others rise up to fill the gap when they disappear.
So just use the log window instead.

You can use the Append node in Blueprints to combine multiple strings into one log which should make it easier to search or filter the logs to see just these parts.

In the log window the highest line is the oldest and the lowest line is the newest.

I have such log:

LogBlueprintUserMessages: [Ball_C_2] Move

LogBlueprintUserMessages: [Ball_C_3] Move

LogBlueprintUserMessages: [Ball_C_4] Move

LogBlueprintUserMessages: [Ball_C_1] Move

LogBlueprintUserMessages: [Ball_C_2] Move

LogBlueprintUserMessages: [Ball_C_3] Move

LogBlueprintUserMessages: [Ball_C_4] Move

LogBlueprintUserMessages: [Ball_C_5] YellowBall BEFORE BlueBall

LogBlueprintUserMessages: [Ball_C_1] Move

LogBlueprintUserMessages: [Ball_C_2] Move

LogBlueprintUserMessages: [Ball_C_3] Move

LogBlueprintUserMessages: [Ball_C_4] Move

LogBlueprintUserMessages: [Ball_C_1] Move

LogBlueprintUserMessages: [Ball_C_2] Move

LogBlueprintUserMessages: [Ball_C_3] Move

Balls 1-4 processing is ordered. They processed in order 1-2-3-4 within one frame. I need to know is Ball_C_5 processed after all other balls or before all other balls?

Ah. Then you need to add another log that marks the beginning or end of the process.Place it outside your For loop or however you’re iterating through the ball actors.