Oplix Unreal Plugin Overview - Help Center | Oplix

Oplix Unreal Plugin Overview

💡 Unreal Engine Compatibility

Compatible with Unreal Engine 5 but may require minor adjustments or recompilation per version (e.g., 5.1, 5.2, 5.3, 5.4+).

The Oplix Plugin provides a flexible and gamepad-friendly bug reporting and feedback system for Unreal Engine projects. Leveraging the Common UI framework, the plugin offers a smooth cross-platform experience and supports comprehensive data submission to the Oplix API.

Quick Start Video

Here’s a tutorial on how to integrate the plugin in under 5 minutes:

⚠️ Framework Implementation

The Oplix Plugin has been designed primarily as a starting framework and reference implementation for developers looking to integrate Oplix within Unreal Engine projects using the v2 version of the Oplix API.

We highly recommend that developers:

  • Review and modify the source code to align with their project-specific coding standards, naming conventions, and architectural patterns
  • Evaluate and adapt the input mappings, UI layer hierarchy, and subsystem logic to ensure clean integration with your project’s Common UI input model
  • Treat the default form and tab structure as an example only - design your own row, column, and widget layout to match your project’s UX requirements

Setup Instructions

Place the Oplix folder in the target Plugins directory of your Unreal Engine project, then:

  • Enable the Oplix Plugin from the Plugins window in Unreal Engine
  • Ensure that the Common UI Plugin is enabled as a dependency
Project Structure

Your plugin should be located at: YourProject/Plugins/Oplix/

The plugin uses the Enhanced Input System for gamepad and keyboard shortcuts.

Input Mapping Context

Input Configuration

Field Name Type Required Notes
Input Mapping Context IMC_Gamepad Optional Located at Content → Blueprints → Input
Toggle Action IA_ToggleBugReport Optional Opens/closes the Oplix feedback window
Default Keyboard Bind F9 Optional Default keyboard shortcut
Controller Setup Enhanced Input Subsystem Optional Bind IMC_Gamepad to Player Controller (see Sandbox level blueprint for reference)

Common Input Settings

Navigate to Project Settings → Common Input Settings and configure:

Input Data Asset:

  • Set to B_CommonInputData
  • Includes UI input actions: Back, Forward, Confirm

Platform Input Settings (Windows):

  • Default Controller Data: GenericGamepad
  • Enables automatic gamepad icon switching based on input device
💡 Gamepad Support

The plugin is fully gamepad-friendly and will automatically switch between keyboard and controller icons based on the active input device.

Navigate to Edit → Project Settings → Oplix Settings and configure the following:

Required Settings

Field Name Type Required Notes
App Key String Required Your unique application key from Oplix Dashboard
Client Secret Key String Required Your secret credential from Team Settings
Window Class Widget Class Required Assign to WBP_OplixWindow (or your custom widget)

Oplix Settings Configuration

Window Class Assignment

To ensure the plugin functions correctly, set up the styles for buttons and editable text boxes. The plugin includes default styles, but they still need to be configured within the editor.

Navigate to Project Settings → Oplix Settings → Styles to configure visual appearance.

UI Style Configuration

Styling Options

You can either create new Blueprints for each style and assign them in settings, or edit the default provided styles for a tailored look.

Usage and Form Handling

Forms are dynamically generated based on templates received from the Oplix API:

  • Each form is organized into tabs using the TabsListWidget
  • Full gamepad navigation support:
    • Controller Shoulder Buttons for switching tabs
    • Face Button Bottom (e.g., “A” on Xbox, “Cross” on PlayStation) for selection
  • Seamless support for both gamepad and mouse/keyboard input

Form Navigation Example

Customization Options

💡 Customization Location

All customization options can be accessed in Project Settings → Oplix Settings → Styles

The plugin uses Common UI styling framework:

  • CommonBorderStyle for the Window
  • CommonButtonStyle for various button types
  • CommonTextStyle for text elements

CommonButtonStyle incorporates text styles, providing a cohesive and flexible design framework.

Customization Settings

Window Configuration

Window Settings

Field Name Type Required Notes
WindowWidth Number Optional Window width in pixels (default: 1200)
WindowHeight Number Optional Window height in pixels (default: 800)
WindowTitle String Optional Displayed window title text
WindowBorderStyle CommonBorderStyle Optional Border appearance configuration

Logo Settings

Logo Configuration

Field Name Type Required Notes
LogoWidth Number Optional Logo width in pixels
LogoHeight Number Optional Logo height in pixels
LogoImage Texture2D Optional Custom logo texture to display in UI

Button Styles

Button Style Configuration

Field Name Type Required Notes
Submit Button CommonButtonStyle Optional Style for submission actions
Close Button CommonButtonStyle Optional Style for closing the form or window
Tab Button CommonButtonStyle Optional Style used for navigation tabs
Switch Button CommonButtonStyle Optional Style for toggle/switch buttons
Rating Button CommonButtonStyle Optional Style for rating-based inputs
Multi-Select Button CommonButtonStyle Optional Style for buttons used in multi-select options

Text Input Settings

Editable TextBox Configuration

Field Name Type Required Notes
SingleLineEditableTextboxHeight Number Optional Height for single-line text boxes (default: 40)
MultiLineEditableTextboxHeight Number Optional Height for multi-line text boxes (default: 100)
EditableTextBoxStyle CommonTextStyle Optional Appearance of text boxes used for input fields

Dropdown Settings

Field Name Type Required Notes
DropdownInputHeight Number Optional Height of dropdown menus
DropdownStyle Style Asset Optional Overall dropdown menu appearance
DropdownEntryStyle Style Asset Optional Individual dropdown entry appearance
DropdownFont Font Asset Optional Font style for dropdown entries
DropdownForegroundColor Color Optional Foreground color for dropdown entries

Switch Styles

Switch Configuration

Field Name Type Required Notes
Button Style CommonButtonStyle Optional Button style for switches (affects background)
SwitchOnColor Color Optional Color when the switch is toggled ON
SwitchOffColor Color Optional Color when the switch is toggled OFF
Widget WBP_Switch Optional Implemented using a slider widget

Text Styles

Text Style Configuration

Field Name Type Required Notes
QuestionTextStyle CommonTextStyle Optional Text style for questions within the form
SubmitStatusTextStyle CommonTextStyle Optional Appearance of submit status text (e.g., 'Submitting...', 'Form submitted successfully')
WindowTitleTextStyle CommonTextStyle Optional Font and color of the window title

Testing File Attachments

Development Feature

This feature is useful for verifying that the file attachment process is working correctly with the Oplix backend without requiring manual file selection during every test submission.

To simplify testing the file attachment functionality during development, the Oplix plugin provides an option to automatically attach a designated test file to every feedback submission.

Configuration

Go to Project Settings > Plugins > Oplix and scroll down to the Testing category.

Check the Submit Test File box to enable automatic attachment of the specified test file.

Use the Test File Path setting to select the file you want to attach automatically. Click the browse button (…) to choose a file from your project or computer.

⚠️ File Path Requirements

The path selected here must point to an existing file at the time of submission. The subsystem will attempt to resolve the path and log a warning if the file cannot be found, but it will not prevent the rest of the feedback from being submitted.

Test File Configuration

How it Works

When Submit Test File is enabled in the settings, UOplixSubsystem::SubmitFormData will automatically:

  1. Retrieve the file path specified in Test File Path
  2. Convert it to an absolute path
  3. Verify that the file exists
  4. If the file exists, add its path to the list of files being sent in the multipart/form-data request to the Oplix backend under the files field name, alongside any other files programmatically attached via the OptionalFilePaths parameter
⚠️ Production Warning

This feature is intended for development and testing purposes only. Ensure Submit Test File is unchecked in your final build configurations unless you specifically intend for this test file to be included in all user submissions.

API & Key Components

💡 Blueprint Functions

Toggle Form Visibility

Use the ToggleOplixForm Blueprint node to show or hide the Oplix form with a single function call.

[Event BeginPlay] ---> [Toggle Oplix Form]

This can be bound to any input event, button press, or triggered programmatically based on your game’s logic.

💡 Core Subsystems

OplixSubsystem

The central coordinator that manages communication with the Oplix API for data submission.

Responsibilities:

  • Handles authentication and token management
  • Collects screenshots automatically
  • Gathers system specifications and device info
  • Submits form data to the Oplix backend

OplixWindow

The main UI window that organizes multiple forms into tabs for easy navigation.

Features:

  • Uses OplixFormWidget to handle dynamic field generation
  • Supports tab switching with gamepad shoulder buttons
  • Manages form state and submission status
  • Displays branding and custom logos
💡 UI Widget Hierarchy

The plugin uses a modular widget architecture:

OplixWindow (Main Container)

  • Handles overall window display
  • Manages tab navigation
  • Shows branding/logo

OplixFormWidget (Form Renderer)

  • Dynamically generates form fields based on API templates
  • Tracks user input and validates required fields
  • Handles form submission

OplixRowWidget (Field Container)

  • Layouts individual form fields
  • Contains input elements (text boxes, dropdowns, ratings, etc.)
  • Manages field-specific validation
You're Ready!

Your Oplix plugin is now configured! Players can submit feedback directly from your game with full gamepad support.