This is the main documentation for FixIt.
You may also have a look at the sandbox project where FixIt is integrated, demoing a simple usage in its dedicated Content folder.
Also look at the second section for more details:
Quick start
Please notice that this is the quick start.
More details including advanced usages can be found below in the ...details section.
Building
Before using the FixIt Unreal plugin (whose documentation you are reading right now), the FixIt library will have to be built. The FixIt Unreal plugin is the Unreal-specific wrapper around the more generalist FixIt library available here.
Ideally, follow these steps:
- clone the Fixit library somewhere
- build and "install" it (as in a cmake install) following its README. Use the unreal-release preset (or unreal-debug if you plan to debug FixIt).
- once the FixIt library is installed, probably under
FIXIT_LIBRARY_PATH/out/install/unreal
, copy the entire content of this folder into FIXIT_UNREAL_PATH/Source/ThirdParty/FixItLib - You may now continue with the regular Unreal integration below
Project integration
- copy the content of the entire depot, as well as the "installed" Fixit library as indicated above, in the newly created folder
YOUR_PROJECT_ROOT/Plugins/FixIt
. - open up your project.uproject file in a text editor and add this item in the "Plugins" list (that might not exist yet):
{
"Name": "FixIt",
"Enabled": true,
"SupportedTargetPlatforms": [
"Win64"
]
}
So you will end up with a .uproject file similar to:
{
"FileVersion": 3,
"EngineAssociation": "***",
"Category": "",
"Description": "",
"Modules": [
{
"Name": "YOUR_PROJECT_NAME",
"Type": "Runtime",
"LoadingPhase": "Default"
}
],
"Plugins": [
{
"Name": "FixIt",
"Enabled": true,
"SupportedTargetPlatforms": [
"Win64"
]
}
]
}
Then, if you are using a source version of the engine you may build your editor before launching it, or open your project anyway and you will get asked by a popup window:
The following modules are missing or built with a different engine version:
FixItCore
FixIt
Would you like to rebuild them?
Choosing "Yes" will build the plugin, then launch the editor.
Project settings
In project settings, in the "Plugins" section there will be a FixIt subsection. In "Connection Settings" these fields will be required:
Parameter | Content |
---|---|
Login | Login to use with the issue tracking platform (typically an email address) |
Token | Token to use with the login (password or personal token depending on the backend) |
Project name | Project name to use with the issue tracking platform |
URL | Base URL for the issue tracking platform |
Backend | The issue tracking platform to be used for this project |
Login and creating an issue
For any interaction with FixIt there should be an absolute match between C++ source and blueprint so anything can be used - no feature is hidden in C++ source code for instance, so feel free to use either.
From blueprint
You only need to call "Login". It is an async action whose result will let you know about the success or failure of the login, and a message as emitted by the backend.
Creating an issue is as simple as calling "Create New Bug". Only the issue title and content are mandatory as some backends require it. But you may attach collected player data, as explained in this section.
Setting up UI
FixIt ships with a ready-made UI.
As demonstrated in the sandbox project, the fastest way to use it is to create a new widget blueprint inheriting from it, call "CreateWidget" on it and add the resulting instance to the local player viewport.
Create a new blueprint class inheriting from FixIt MainWindow class:
Create an instance of this widget and add it to the player viewport:
Video Replay
By combining with the VideoLog plugin a video of the moments right before the issue happened can be attached to the bug.
To do so you need first to:
- integrate the VideoLog plugin into your project as indicated in its documentation
- The default behaviour for VideoLog is to start the recording at world instantiation. That means that when a bug needs to be reported we only need to stop the recording, retrieve its file, and restart the recording once the bug is reported. This is done like so (as shown in the sandbox demo project):
- Bind an event to the OnVideoFileSaved event from the VideoLog Subsystem.
- When the bug submission starts call "Stop VideoLog".
- When the bug submission process is over (either the bug is submitted or the user closed the UI) start the recording again by calling "Start Video Log"
- On the OnVideoFileSaved event you only need to check the last video file path and add it to the "player data" to be submitted with the bug
This is a simplified version of the integration into the sandbox demo project: