

Damien Gouron
Online Programmer
Print Message Visualizer (PMV) is a tool for tracking, saving, and comparing custom data.
Would you like to know what leads to your player’s death to improve your game design? Or how many times the player has fallen to his death in your new level? Or what are your player’s favorite items?
PMV can help you keep track of all this, as well as help you easily debug your code more easily.Thanks to its timestamp and transaction options, you can easily capture the timeline of events that led to the bug.
Summary
Integration

1. Place the plugin folder in the plugin folder of your project.
Note: Remember to activate the plugin in the editor.
2. Copy or Migrate the Print Message Visualizer folder to your Content folder from the sample project.


3. Add BP_PrintMessageVisualizer_Component to your Player Controller.
4. Now you can map your filters and priority level by selecting your component.

Example 1: Track Character Fall
In this example, we create a function that sends a message when the character touches the ground after a jump. The message contains the world location of the player.
Also, in the map, we have a BP that tracks the passage of the player - Like a check point or level design tool.
The timestamp is used to trace the event.
1. In the character, we create a function to send a custom message.

2. When the event "On Landed" is called, one message is sent to the component.

3. Now press "P" to open the visualizer widget. After a refresh, we can see the timeline of events.
Here we can see that the player fell after entering the check point 2.

Presentation of the visualizer

When the message stack is ready to refresh, an "Out of date" message will appear. You can click on the refresh button to refresh the stack.
The "Clear stack" button allows you to clear the message stack.
If you want, you can save your current record, with a custom name. Write a name and click on the save button for that.


This panel shows you how messages are loaded in the message stack. You can also see the messages currently selected by your filter/search option.
World time second is the time elapsed since the server was created. This time is replicated and comes from your Game State. This is the time used for the timestamp.
PMV offers to filter in different ways. By search option:
- All
- Timestamp Desc
- Timestamp Asc
- Instigated By
- Priority Desc
- Priority Asc
Or by filter. But you can combine the search options. For example:
All message filter by "Path" for the Character3


Exemple 2: Path Tracking
For this exemple. We have create a simple BP with box collision. When a player enter in the box. The character send a custom message who containt the "Path" filter.
In the PMV, one selects the filter "Path" and all the messages containing this filter appear.


Comparison Tool
For activate the comparison tool, check the "Active Compare Mode" checkbox.



The load pannel allow you the possibility of load two record for comparison. When you click on load button, the records will be load in two message stack.
All message stack can be filtered with his own filter or search option.

By default, the current record are stopped when you use the comparison tool.
But, if the first record textbox is empty, you can use the current message stack.
If you check the "Record Can Continue", you can combine runtime and comparison.
At the end, you can save this record and return to the simple view.


It is possible that the record you are trying to load is not valid for one reason or another. In this case, the message "No record" will appear.
Technical Support
You can join our discord server to keep you abreast of news, get technical help or report a bug.