LadyBug Tracker

Author: Tomasz Klin
Version: 3.0.2

Introduction

LadyBug Tracker is a plugin that integrates bug tracker systems with Unreal Engine. This plugin makes your work much more efficient and convenient. You do not have to switch all the time between the Unreal Engine editor and a bug tracker page in the web browser. With LadyBug Tracker, you can do these tasks:

Data Storage and Privacy

The LadyBug Tracker plugin does not store any data. The plugin sends all reports directly to the databases of the integrated services: Jira, YouTrack, Mantis, Trello, Asana, HacknPlan, Redmine, ClickUp and Notion. It uses the API of each service. Only you have access to this data. The plugin never sends it to a different place. Also, the plugin does not collect data for statistics or diagnostics.

Features list

Supported Integrations

LadyBug Tracker is designed to support many bug tracker systems.

YouTrack

Mantis Bug Tracker

MantisHub

Trello

Jira Software

Jira Server

Asana

HacknPlan

Redmine

ClickUp

Notion

Do you need a different integration? Tell me.

Integrations comparison

YouTrackTrelloJira SoftwareJira ServerMantisMantisHubAsanaHacknPlanRedmineClickUpNotion
View issuesYesYesYesYesYesYesYesYesYesYesYes
Edit issuesYesYesYesYesYesYesYesYesYesYesYes
Report issuesYesYesYesYesYesYesYesYesYesYesYes
Custom fieldsYesYes1YesYesYesYesYes1No2YesYes1Yes
Sort by columnsYesYesYesYesYesYesYesYesYesYesYes
Filter issuesYesYesYesYesYesYesYesYesYesYesYes
3D MarkersYesYesYesYesYesYesYesYesYesYesYes
View attachmentsYesYesYesYesYesYesYesYesYesYesYes
Add attachmentsYesYesYesYesYesYesYesYesYesYesYes
Delete attachmentsYesYesYesYesYesYesYesYesYesNo2Yes
View commentsYesYesYesYesYesYesYesYesYesYesYes
Add commentYesYesYesYesYesYesYesYesYesYesYes
Delete commentYesYesYesYesYesYesYesYesYesYesNo2
View checklists (subtasks)No2YesYesYesYesYesYesYesNoYesYes
Edit checklists (subtasks)No2YesYesYesYesYesYesYesNoYesYes
Create projectNo2YesNoNoYesYesYesYesNoYesNo2
View historyNoNoNoNoYesYesNoNoNoNoNo
Free version users101510-unlimited010unlimitedunlimitedunlimitedunlimited4
Free version storage, total / per file30 GB / 500 MBunlimited / 10 MB2 GB / 2GB-unlimited / unlimited0 / 0unlimited / 25MB500 MB / 5 MBunlimited / unlimited1 GB / 100 MBunlimited / 5 MB
Free version projectsunlimited10unlimited-unlimited0unlimitedunlimitedunlimitedunlimited lists (max 5 Spaces)unlimited

1 Available in the paid version of the service

2 The service does not have this feature

3 Not implemented yet

4 When a workspace has more than one member, Notion sets a limit of 1,000 blocks

Getting Started

Enabling Plugin

To enable the plugin, do these steps:

  1. Go to Edit -> Plugins.
  2. Select the Bug Tracker category.
  3. For LadyBug Tracker, select the Enabled check box.

Opening Tool Window

LadyBug Tracker is a tab in Unreal Editor. To open the tab, use the Window menu.

Interface

The LadyBug Tracker user interface has these parts:

  1. Toolbar
  2. Issues List
  3. Pending List
  4. Details
  5. Output

Toolbar

  1. Download - Downloads all the issues from the server.
  2. Settings - Opens the Project Settings window.
  3. User Settings - Opens the login window.
  4. Show Markers - Shows or hides the markers in the Level Viewport (see 3D Markers).
  5. Empty Issue - Makes a new issue on the pending list (see Reporting Bugs).
  6. Editor Issue - Makes an issue from the editor (see Reporting Editor Issue).
  7. Game Issue - Makes an issue from the game (see Reporting Game Issue).

Issues List

After you download all the bugs from the server, this list (2) shows all the issues. Use the filter (1) to show only the issues that you are interested in. The filter of the Issue List lets you search your issues with an advanced syntax, as in the Content Browser. This syntax supports complex search queries. It also lets you search for key-value pairs from the issue properties. For more information, see the Advanced Search Syntax page.

Examples:

Filter PhraseDescription
helloissues that contain the word 'hello' in the summary, description or additional information field
...lloissues with a summary, description or additional information that ends with 'llo'
updated >= 2017updated in 2017 or later
updated = 201712updated in December 2017
updated = 20171224updated on 24 December 2017
updated < 20171224.13updated before 1 pm on 24 December 2017
status != resolvedall issues that are not resolved
severity > minorseverity higher than minor
assignedto = john_smithassigned to john smith
submitted = 2018 & status = newnew issues submitted in 2018

Pending List

The Pending List contains bugs that are reported but not submitted yet. You complete the details of these bugs, then submit them to the server (see Reporting Bugs). You can filter the pending issues, as in the Issues List.

Details Panel

The Details panel shows all the available information about the selected bug.

  1. A link that opens the selected issue in the web browser.
  2. Property list (see Property List).
  3. Toolbar (see Details Panel Toolbar).

Property List

The property list contains all the most important information about the selected issue.

General

Standard properties are available by default in Mantis.

Custom Fields

Fields that the user defines. The plugin shows custom fields only as text. The server checks the values when you submit the issue.

Attachments

The Attachments section shows a list of attachments. For PNG, BMP and JPG images, the plugin can show thumbnails.

Comments

The Comments section shows all the notes of the issue. You can also add new notes here.

History (only mantis integration)

The history of all the activities on the issue.

Note: At this time, the history does not show readable values for enum types, for example category or priority. It shows the numeric value.

Details Panel Toolbar

The toolbar shows a different set of controls in each mode.

View Mode

  1. Edit - Starts the edit mode.
  2. Assign To - Assigns the issue to a user quickly.
  1. Change Status - Changes the status of the issue quickly.
  1. Goto - Opens the level at the location that the issue specifies (see 3D Markers).

Edit Mode

  1. Cancel - Stops the edit mode. The plugin discards all the changes.
  2. Update - Submits all the changes to the server.

Report Mode

  1. Discard - Deletes the issue from the pending list.
  2. Submit Issue - Submits the issue to the server.

Output

The Output panel collects the log output of all the plugin operations. If a problem occurs, look for the cause here first.

Message Log

The Message Log tab also shows the logs from the Output panel, in the Bug Tracker section. To make the logs more detailed, use the “Debug” section of the project settings.

Login Dialog Box

This window can be different for each provider that you select.

Project Settings

You can edit the LadyBug Tracker settings in the Project Settings tab, in the Plugins section. The settings are in the /Config/DefaultBugTracker.ini file. Your team can share this file.

  1. Provider - The bug tracker provider.
  2. Host - The address of the bug tracker host.
  3. Test - Tests the connection to the host.
  1. Change Login Settings - Opens the login window (see Login Dialog Box).
  2. User Name - The user that is logged in now.
  3. Project - Lets you select a project that is available to the logged-in user.
  4. Constructor Class - The issue constructor class (see Issue Constructor).
  5. Profiles - The default values for each issue profile (see Profiles).

User Settings

The plugin keeps the user settings in the /Saved/Config/WindowsEditor/BugTrackerPerProjectUserSettings.ini file. The user settings contain, for example, the preferences, the login and the password.

Markers

When you report a bug in the editor or in the game, the plugin automatically saves the level name. It also saves the location and orientation of the camera. The Issues List marks each bug that has this information, in the column with this symbol:

Attention! This feature is available only if you add the Camera and Level fields to the custom fields.

Goto

An issue keeps location information. With this information, you can go very quickly to the level, at the location of the issue. To do this, click this button on the Details Panel Toolbar:

3D Markers

The level viewport can show the markers of all the issues for the level that is open now. To enable this feature, select this button in the Toolbar:

If you select a marker in the level viewport, the Details panel opens its issue. If you double-click a marker, the viewport goes to the location of the marker.

You can change the labels of the 3D markers here:

Reporting Bugs in Editor

The most powerful feature of this plugin is how you report issues. It is very convenient, and you can customize it.

The plugin sends all reported bugs to the pending list. Thus you can describe an issue and submit it to the server at any time. For each new bug, the plugin makes a subdirectory in the ../Saved/Bugs/Pending/ directory. The plugin automatically adds all the files in this subdirectory to the bug as attachments.

Reporting Editor Issue

You can report an issue in two ways: from the Toolbar, or with a keyboard shortcut. To use a keyboard shortcut, first assign the command to a key. The bugs that you report in the editor automatically contain the log and the screenshots of all the open editor windows.

Reporting Game Issue

You can report a bug in the game in three ways: from the Toolbar, from the console, or from a Blueprint (see Triggering Reporting Bugs). To report a bug from the console, do these steps:

  1. Open the console in the game.
  2. Enter the command ReportBug bug_summary.

The bugs that you report from the game have a screenshot and the log as attachments.

Reporting Crashes

Each crash also appears on the pending list. Thus it is very easy to report a crash. A bug from a crash contains the log from the game and the minidump. It also contains the other files that the crash reporting tool of Unreal Engine saved.

Editing Screenshots

Before you submit an issue, you can edit all the screenshots in an image editor that you set, for example Paint.

Use the Upload check box to select the files to attach.

Reporting User Feedback

LadyBug Tracker lets the shipping game send feedback from users, with attachments (logs, saves, screenshots).

User feedback uses different authentication data from the editor. For bug reports from users, it is good practice to use a separate account that you make only for this purpose. For security, give this account the minimum permissions.

  1. Make a feedback form. It can look like the form that comes with the plugin (see \LadyBugTracker\Content\UIExample\ReportForm).
  2. To fill your UI with the possible values of a field, use the Get Field Values Async node.
  3. Make a feedback object with Create Feedback Async.
  4. Set all the data that you want to give.
  5. Send the feedback to the server with Send Feedback Async.
  6. Send Feedback returns an Issue Id. Use this Issue Id to upload attachments to the issue with Send Attachment Async.
  7. The game can already have data in memory, for example a save, a generated report or a screenshot that you took. To attach this data, use Send Attachment From Memory Async instead. This node takes the same Issue Id, file name and mime type. In place of the path, it takes a byte array.
  8. To attach the game log, use Send Log Attachment Async. This node collects the log itself. Thus it needs only the Issue Id.

Each node in these steps also has a synchronous variant. Blueprint API shows both variants.

Reporting Automation

To make the QA team more efficient, the plugin can do some of the tedious work automatically.

Profiles

Profiles let you override the default values of fields for each report mode. To override these default values, open the LadyBug Tracker Project Settings.

Issue Constructor

Issue Constructor is a Blueprint class that can change any parameter of an issue. For example, you can add information that helps to reproduce the issue. This can be the name of the current quest or the skills of the player character.

To make your own Issue Constructor, make a Blueprint that inherits from IssueConstructor. In this Blueprint, override the Construct Issue function. The plugin calls Construct Issue for all bugs, immediately after each report.

In the example below, the constructor adds information to all the issues that you report in the game. It adds the current level, the game time and some steps to reproduce.

To set your Issue Constructor, select an IssueConstructor class in the combo box in Project Settings.

Triggering Reporting Bugs

You can also make issues automatically when a specified condition occurs in the game. For example, the game can make an issue when the player falls under the terrain.

With this method, you can add more information to the report, for example the player position or the objects that collide.

To report a bug, call the Create Issue node. This node only makes an Issue object. You can change this object later.

When the Issue object is ready, call the Report Issue Data node. The reported issue goes to the Pending List.

You can also call Report Issue. This node makes and reports an issue with the summary that you give.

Blueprint API

All the nodes that the plugin adds are in the Bug Tracker category. Each node that communicates with the server has two variants:

NodeAsynchronous variantWhat it does
Create Issue-Makes an empty issue. You complete it, then give it to Report Issue Data.
Report Issue Data-Sends an issue from Create Issue to the pending list.
Report Issue-Makes and reports an issue with a given summary in one step.
Create FeedbackCreate Feedback AsyncMakes the feedback object that your form completes.
Send FeedbackSend Feedback AsyncSubmits the feedback and returns the Issue Id.
Send AttachmentSend Attachment AsyncUploads a file from disk to that issue.
Send Attachment From MemorySend Attachment From Memory AsyncUploads a byte array to that issue. It does not need a file on disk.
Send Log AttachmentSend Log Attachment AsyncUploads the current game log to that issue.
Get Field ValuesGet Field Values AsyncReturns the possible values of a field. Use them to fill your own UI.
Get IssuesGet Issues AsyncReturns the issues of the project. The game can then show them in its own list.
Get Bug Tracker Name-Returns the name of the configured integration.

Some nodes ask for Username and Password or Token. For these, use the separate account from Reporting User Feedback. Never use your own account. If Override Project Name is empty, the node uses the project from Project Settings.

Blueprints example

Example 1 - Quick report issue

Example 2 - Report issue

Example 3 - Set fields value

Example 4 - Send user feedback with attachment

Example 5 - Send user feedback with attachment (async version)

The asynchronous nodes do the same as Example 4, but they do not need custom events. Each of them has its own On Success and On Failure execution pins. Thus the full graph is one chain.

  1. Create Feedback Async - On Success gives the Feedback object.
  2. Set Field Value - Set the values that the user typed in the form.
  3. Send Feedback Async - Takes this Feedback object. On success, it returns the Issue Id.
  4. Send Attachment Async - Takes the Issue Id, and the path, file name and mime type of the file to upload.

Example 6 - Get field values