Level stats and heat maps

First, start a server with stats enabled. Add ?LogGameplayEvents to the URL when you start the server. So, your final target will look something like

UDKGame.exe server AOCLTS-Arena3_p?dedicated=true?Adminpassword=testjpassword?LogGameplayEvents

Stats show up in UDKGame\Stats\...


Open the editor with the -gamestats  command line option. You should then see an icon to click to open up the stats window:

Open the Game Stats Visualizer window before opening the map you want to visualize. Then, when you open the map, the visualizer will populate with all the stats files. You can shift or ctrl-click the files to aggregate them, which is very useful for producing good heatmaps. For more information on how to use the feature, look at the GameStats reference on UDN: http://udn.epicgames.com/Three/GameStatsVisualizerReference.html.

You can generate heatmaps, view specific locations where events happened, and aggregate stats over multiple play sessions for better data, it's all very cool.

Basic usage instructions

The box at the top of the window is the file list. The drop-down menus above let you set filters for the files; leave them at "All time" and "Any" to show all the stats gathered for the level. You can ctrl or shift-click the files to select more than one file at once to aggregate the data over multiple sessions, which is very useful for heatmap generation; if you do so, you can no longer change the time range, it spans the entire length of all included game sessions.

Underneath the file list, you'll see a bunch of tabs; there's one for each visualizer. You can also switch tabs to different visualizers by clicking the drop-down menu (so you can have a bunch of tabs open with the same visualizer, but with different options).

Click "Enabled" at the top-right of a tab to enable a visualizer. Some visualizers (like Heatmaps) have options; click the Options button to access these.

The first of the three boxes underneath there lets you pick the specific stat(s) to visualize. The second lets you pick a team to visualize (* not working in Chivalry at the moment). The third lets you pick a specific player or players (shift or ctrl-click).

Finally, make note of the Time Range at the bottom. The spinbox at the left of the slider lets you set the first frame to see, and the right side sets the last; if you just type in 0 in the first and a very large number in the last, you can stretch the range out to cover the whole game session. Otherwise, you can drag the timerange slider around to see how things unfolded during the session, and you can use the Play button to have it automatically animate for you. If the slider and spin boxes are greyed out because you have more than one file loaded, ignore their values; again, when you have more than one file loaded, the timespan covers everything.

 Heatmap options

(Note: Heatmaps only show in orthogonal (top view) viewports!)

  • Max Density Scale – maximum hot color is assigned to a heatmap pixel that has at least this many of whatever stat you're measuring inside it. Turning this down will cause more areas to show up hot, since it's decreasing the threshold before a pixel is considered "extremely hot".
  • Min Density Scale – minimum hot color is assigned to a heatmap pixel that has this many of whatever stat you're measuring inside it. Turning this up will cause fewer areas to show up hot, as it increases the threshold before a pixel is considered "hot" at all.
  • Heat Bleed Radius – how much heat bleeds from one pixel into its neighbours. A low value will more precisely display exact areas of the map where things happened, but too low and it may overemphasize specific locations (like a catapult) over vague areas (like a hallway); too high and vice-versa
  • Heatmap Pixel Density – how large each heatmap pixel is (each pixel gathering data from all the stats points it covers)