Razer AI QA Companion
Introduction
Welcome to the Razer AI QA Companion documentation.
This documentation is intended for integrating and using the Razer AI QA Companion.
The QA Companion is an AI-powered quality assurance tool that automates bug reporting, captures video clips of bug events, and generates reproduction steps from gameplay sessions across all platforms
QA Companion can be integrated with the WYVRN SDK and supports Unity, Unreal, and C++ engines.
Pages Overview
- Introduction
- Supported Play Patterns and Bugs
- Bug Detection and Workflow Integration
- Getting Started
- Razer AI Service
- Screen Capture
- Razer AI QA Companion Dashboard
- Application Sample
- QA Companion Unreal Demo
- Known Issues
If you want to test the sample project click here
What is AI QA Companion?
It is an AI-driven QA companion that runs during gameplay to detect and document bugs automatically.
It is currently in private beta with selected partners and aimed at improving QA efficiency.
Join the beta
Key Features
-
Automated Bug Reporting:
The AI would automatically logs bugs to a central web dashboard report whenever certain bugs or anomalies occur in the game. -
Video Clip Capture:
For each detected bug, a short gameplay video clip (e.g., the last 20 seconds before the bug) is recorded automatically, providing visual context for the issue. -
AI-Generated Reproduction Steps:
The tool uses AI to analyze current gameplay and events, detecting bugs and producing a written list of steps to reproduce the issue.
Supported Platforms & Requirements
- Windows only for now
- A stable internet connection is required to detect bugs and upload reports/videos to the web dashboard (recommended upload speed: 50 Mb/s).
Beta Notes
This documentation and AI tool are in beta, so features might be limited or under active development, and direct support is available to closed beta users.
During beta, access to AI QA Companion is by invitation only, and the access must be obtained from our team. Some features are not yet fully available.
Join the beta
The workflow to participate to the beta is reported in the next image.

Supported Play Patterns and Bugs
The currently supported play patterns by the Razer AI QA Companion are
Play Patterns Development Status
Genre | Beta | Alpha |
---|---|---|
First Person Shooter (FPS) | ✅ | |
Third Person Shooter (TPS) | ✅ | |
Role-Playing Game (RPG) | ✅ | |
Fighting Game | ✅ | |
Multiplayer Online Battle Arena (MOBA) | ✅ |
If you need another play pattern, please subscribe to the beta and we will contact you back.
Order by priority | Bug Type | Description | Example(s) | Supported | In Development |
---|---|---|---|---|---|
1 | Crash/Freeze (Stability) | Critical issues that render the game unplayable by causing crashes or hangs (e.g. game closing or not responding) | N/A | ✅ | |
2 | Performance Issues | Problems that degrade game performance, such as low frame rates, extreme lag, long load times, or memory leaks | N/A | ✅ | |
3 | Gameplay/Mechanics Bugs | Functional bugs where game mechanics or features don’t work as intended, breaking game rules or logic | • Enemy death still adds to timer • Health heals wrong value (25 instead of 20) • Ammo pickup gives wrong amount (35 instead of 30) • Enemies deal too much damage (10 vs 5) | ✅ | |
4 | Collision/Physics Glitches | Issues with collision detection or physics that allow characters or objects to intersect or go places they shouldn’t | N/A | ✅ | |
5 | AI/NPC Behavior Bugs | Problems with enemy or NPC behavior not following intended design, leading to unpredictable or faulty actions | N/A | ✅ | |
6 | Graphics/Visual Glitches | Visual errors or graphical defects such as missing/misaligned textures, screen tearing, or objects/characters appearing incorrectly in the world | N/A | ✅ | |
7 | Audio Bugs | Issues with game sound or music, such as missing or delayed audio, sounds with wrong volume, or clips that play at incorrect times or loop improperly | N/A | ✅ | |
8 | UI/UX Issues | UI problems that hinder the player experience – e.g. missing/misaligned UI | N/A | ✅ |
Bug Detection and workflow integration
Bug Detection
Razer AI QA Companion supports bug detection in two main methods:
- AI Model identifies a mismatch between the expected behavior and its internal modelling
- The user identify a bug and trigger the bug detection in the web app
When a bug is detected, these actions are performed:
- A new bug entry is created
- The previous 20 seconds of play time are saved and uploaded to the Web Application
- The bug characteristics are pre compiled by AI or editeable to characterize the bug
Workflow integration
Razer AI QA Companion supports the integration with ticketing platforms. The supported platforms are:
- Jira : To set up your Jira project follow these instructions
Other ticketing platforms are currently under study, please subscribe to the beta and let us know what you need.
You can send the bug identified with the QA Companion to your Jira Project individually for each bug. The videos in the web application will be available for 24 hours after each session.
Getting Started
Project Setup
- Access to the AI QA Companion web platform and set up your project
- Download and install the Razer AI Service on your PC and set it up properly.
- (optional) Integrate with the supported ticketing platform to support your workflow
Application Sample
We provide an application sample for a TPS game showcasing the usage of the QA Companion. The application sample is both provided as Unreal Engine Project and compiled version.
Requirements:
- A valid and whitlisted Razer Account
- Access to the Razer AI QA Companion web application
- Razer AI Service running on the Host PC - click here to download - here for installing instruction
- Razer Chroma App installed and Running on the host PC
To test the application sample follow these steps
-
Step 1. Download the Game Design Document pdf from this link
-
Step 2. Set up the project through the Web application with, game studio, game title, genre and the game design document
-
Step 3. Download and Copy the service.conf shared by the application at this path (you can replace the existing one)
C:\Program Files (x86)\RazerAIService\RazerAIService\
-
Step 4. Download and run the sample scene, go through the level once to let the QA companion model set up for the game. nd run the sample scene, go through the level.
-
Step 5. Run the sample scene and verify the usage of the QA companion with bug tracking, video capturing, and Jira Integration The sample scene is a simple TPS scenario with a number of issues commonly found in TPS game development.
Razer AI Service
The Razer AI Service is a PC service capturing the WYVRN events included in the game and orchestrating the features to use the WYVRN SDK.
To setup the Razer AI Service:
- Step 1. Download the installer from here
- Step 2. Install with admin priviledge the Razer AI Service
- Step 3. Download and Copy the service.conf shared by the web application at this path (you can replace the existing one)
C:\Program Files (x86)\RazerAIService\RazerAIService\
- Step 4. Download and Install Razer Chroma App
To be able to use the QA companion you should see the active services in your task manager

Update AI Service
- Download the latest version from GitHub or from the web application settings.
- Double-click the
.exe
to install.
No need to uninstall the previous version or replace the service.conf
again.
Screen Capture
The screen capture process updating the bug detection on the web application captures the main screen of the PC. To identify the main screen of the pc, go to your Windows display settings, it will record the monitor marked with the number 1.
Razer AI QA Companion Dashboard
The AI QA Companion web dashboard is your main interface for managing test sessions, viewing bugs, triggering manual captures, and pushing issues to Jira.
Project Management
Once logged in via your whitelisted Razer ID, you’ll be prompted to create a project if none exists.
Project requirements:
- Game Studio
- Game Title
- Genre
- Game Design Document

Uploaded GDDs are downloadable later via Settings.
Report & Bug Overview
Each game session automatically creates a report, listed chronologically on the dashboard.
Within each report:
- Rename the report
- View the list of bugs
- Manually trigger a bug
- Edit bug metadata (title, severity, description)
- Replay video (valid for 24h)

How to Manually trigger a bug
- In the dashboard, select the most recent open report.
- Reproduce the bug you want to record.
- Then, click on the "Record last 20 seconds" button.
- After a few seconds, a new bug will appear in the bug list, linked to the current report.
Jira Integration
To streamline issue tracking, AI QA Companion allows direct Jira integration.
Setup:
- Go to Settings
- Connect your Jira account

- Choose a target project

Usage:
From any valid bug (with a video under 24h):
- Click “Create Jira Issue”

- Fields auto-filled: title, description, severity, reproduction steps
- Video is attached if still available
Expired videos are omitted automatically.
Settings & Utilities
From the Settings tab, you can:
- Edit project metadata
- Download the latest GDD files uploaded
- Re-download
service.conf
- View your Razer user ID and authentication token
- Connect Jira and manage integration
- Access useful links
Video Expiration
Bug videos are valid for 24 hours after capture. Past this limit:
- The video is no longer playable
- Jira exports exclude the video
- Bug metadata remains available
QA Companion Unreal Demo
This is a demo to show how to use the WYVRN Unreal SDK to communicate with Razer AI QA Companion. This project was made with Unreal Engine 5.5.4.
Download the Unreal Demo
You can download the latest version of the Unreal Demo here
How to Use
- Make sure Microsoft Visual C++ is installed. Preferred compiler version for Unreal Engine 5.5.4 is v14.38-17.8. Not tested on Clang.
- Make sure Razer Chroma is installed and running.
- Log in to Razer AI QA Companion
- Create Game project with game design document in
Content/GDD/Unreal Shooter GDD.pdf
and ensure the Game Title of the project is set toRazerUnrealQADemo
. - Go to the settings page to download and install the Razer AI Service.
- Download and replace the service configuration file.
- Open
QACompanionDemo.uproject
. - Press play.
- You should see
InitSDK_SUCCESS
in the top-left corner along with some other messages. - Go through the level. You should see some other SUCCESS messages. Bug should be reported in the QA Companion web dashboard.
Razer AI QA Companion events
This is a list of blueprints used in the demo along with an explanation of events triggered from these blueprints. Events are sent using the SetEventName
function.
Events are bolded and variables are enclosed in {}
.
BP_ThirdPersonGameMode
InitSDK
is called at the start.- After a successful init,
GameSessionStart
is sent.
Currently,InitSDK
andGameSessionStart
is triggered from the constructor for the game mode because the demo only has one level.
Also, so thatGameSessionStart
is triggered before anything else likePlayerSpawned;Player;{PlayerId};Room;{RoomId}
.
BP_ThirdPersonCharacter
PlayerSpawned;Player;{PlayerId};Room;{RoomId}
when the Player is spawned. The demo level is divided into 4 rooms so we have RoomId, but this might not be applicable to other games.LevelStarted;Level;{LevelId}
is also sent at when the player spawns because the player only has one life in the demo and the level is restarted if the player dies.CurrentLocation;Player;{PlayerId};Location;{Location}
is sent every second.FiredWeapon;Player;{PlayerId};Weapon;{WeaponId};CurrentAmmo;{Ammo}
when player fires his weapon. Player only has 1 magazine in the demo and the ammo display is (Ammo in Magazine) / (Max Ammo).ReceivedDamage;Player;{PlayerId};Damage;{Damage};CurrentHealth;{Health}
when player receives damage.OutOfHealth;Player;{PlayerId}
when player runs out of health.OutOfTime;Player;{PlayerId}
when player runs out of time. In the demo, players only have a limited amount of time to complete the level.IsMoving;Player;{PlayerId};MovingState;{MovingState}
when player stops or starts moving.
BP_AI_002
- Enemies spawned will send the
BotSpawned;Player;{PlayerId};Room;{RoomId}
event. ReceivedDamage;Player;{PlayerId};Damage;{Damage};CurrentHealth;{Health}
when enemies receive damage. Currently, enemies will continue to receive damage after being killed, so if player shoots a dead enemy, this will trigger a bug report for QA Companion.BotDead;Player;{PlayerId};CurrentRoundTimer;{TimeLeft}
when enemy runs out of health.
BP_RoomCheck
EnteredLocation;Player;{PlayerId};Room;{Room}
when player enters a room.LeftLocation;Player;{PlayerId};Room;{Room}
when player exits a room.
BP_Healthpickup
PickUpHealth;Player;{PlayerId};CurrentHealth;{Health}
when player picks up health.
BP_AmmoPickup
PickUpAmmo;Player;{PlayerId};CurrentAmmo;{Ammo}
when player picks up ammo.
BP_Enggamepickup and WP_Pause
GameSessionEnd;Player;{PlayerId}
when player completes the game by picking up the Endgame item or quits via the pause menu. When this happens, first we send this event and then we callUninitSDK
after a short delay, and finally we quit the game.
If there isn't a delay betweenSetEventName
andUninitSDK
, then the event won't be sent.
Events in table form
These events are specific to this demo and probably won’t work for other games even if similar.
Event | Purpose | Found in Blueprint |
---|---|---|
GameSessionStart | Start of a gamesession. Should be sent first before any other event. This will reset certain cached game states. | BP_ThirdPersonGameMode |
PlayerSpawned;Player;{PlayerId};Room;{RoomId} | To signify a player has spawned. This will reset the cached state for the {PlayerId} . | BP_ThirdPersonCharacter |
BotSpawned;Player;{PlayerId};Room;{RoomId} | To signify a bot/enemy has spawned. This will reset the cached state for the {PlayerId} . | BP_AI_002 |
LevelStarted;Level;{LevelId} | To signify a level has started. This will reset the cached state for the {LevelId} . | BP_ThirdPersonCharacter |
CurrentLocation;Player;{PlayerId};Location;{Location} | Updates the location of {PlayerId} . Location is in the “X= Y= Z=” format provided by Unreal. | BP_ThirdPersonCharacter |
FiredWeapon;Player;{PlayerId};Weapon;{WeaponId};CurrentAmmo;{Ammo} | Updates the ammo count for {WeaponId} held by {PlayerId} . | BP_ThirdPersonCharacter |
ReceivedDamage;Player;{PlayerId};Damage;{Damage};CurrentHealth;{Health} | Updates HP for {PlayerId} to {Health} . | BP_ThirdPersonCharacter , BP_AI_002 |
OutOfHealth;Player;{PlayerId} | Signifies that {PlayerId} is dead. | BP_ThirdPersonCharacter |
OutOfTime;Player;{PlayerId} | Signifies that {PlayerId} is out of time and has failed to complete the level. | BP_ThirdPersonCharacter |
IsMoving;Player;{PlayerId};MovingState;{MovingState} | Updates whether {PlayerId} is moving or not. | BP_ThirdPersonCharacter |
BotDead;Player;{PlayerId};CurrentRoundTimer;{TimeLeft} | Signifies that the bot/enemy {PlayerId} is dead. Updates time left to {TimeLeft} | BP_AI_002 |
EnteredLocation;Player;{PlayerId};Room;{Room} | Updates {PlayerId} room location to {Room} | BP_RoomCheck |
LeftLocation;Player;{PlayerId};Room;{Room} | Clears room location info {PlayerId} | BP_RoomCheck |
PickUpHealth;Player;{PlayerId};CurrentHealth;{Health} | Updates HP for {PlayerId} to {Health} | BP_Healthpickup |
PickUpAmmo;Player;{PlayerId};CurrentAmmo;{Ammo} | Updates current ammo for {PlayerId} to {Ammo} | BP_AmmoPickup |
GameSessionEnd;Player;{PlayerId} | End of the gamesession. | BP_Enggamepickup , WP_Pause |
Packages Used
- Animation Starter Pack
- FPS Weapon Bundle
- Modular SciFi Season 1 Starter Bundle
https://www.wyvrn.com
https://www.fab.com/listings/98ff449d-79db-4f54-9303-75486c4fb9d9
https://www.fab.com/listings/8aeb9c48-b404-4dcd-9e56-1d0ecedba7f5
https://www.fab.com/listings/86913335-3c75-42bf-8404-54fe9d9d7396
Known Issues
General
-
Video Recording issue with AMD graphics cards (currently being resolved).
-
Video not saved at session end: If a video is captured just before the end of a report, it may fail to upload properly due to a timing conflict.
-
Updating service.conf live affects health check:
Updating the configuration file while the AI Service is running can break health monitoring. Restarting the service restores proper status.
-
Update banner not disappearing:
The web app’s “Update available” banner will remain until a new report is created using the latest AI Service version.
Rare Issues
-
Video saving failure:
In rare cases, video files may fail to save due to internal encoding or timing errors.
-
Installer blocked during update:
Windows may lock files during service updates, preventing proper installation. Uninstalling and reinstalling manually can resolve the issue.
-
Using Old Razer Chroma SDK may cause the SDK to fail during initialization. Reinstalling the latest version fixe this.