> For the complete documentation index, see [llms.txt](https://docs.existent.com/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.existent.com/documentation/v0.0.1/resources/classes-components/existentdebugpanelcomponent.md).

# ExistentDebugPanelComponent

## Overview

The ExistentDebugPanelComponent is designed to enhance debugging capabilities by providing an interactive 3D UI widget in the world that facilitates real-time monitoring and interaction with various aspects of the VR application, making it a versatile tool for developers. It is enabled when the Backstage Mode is enabled.<br>

**Key Features**

* Interactive in-world Debug Panel: Facilitates interaction with UI widgets in VR, enabling pressing buttons and executing actions directly from the debug panel.
* Log Message Display: Captures and displays log messages within the VR environment, allowing for immediate access to important debugging information.
* Dynamic Content Handling: Supports dynamic addition of buttons and widgets based on runtime conditions, such as available vehicles and spaces in the level.
* Page Navigation: Provides functionality to navigate through log messages and other dynamically generated content pages, enhancing the usability of the debug panel.
* Customizable Appearance: Offers several properties to customise the appearance of the debug panel, including text colour, font size, and padding.
* Direct Vehicle and Space Interaction: Enables direct interaction with vehicles and spaces within the VR environment, supporting actions like vehicle reset, and player teleportation to different spaces.

**Implementation Details**

* Log Interception: Utilises a custom log interceptor to capture log messages from the Unreal Engine logging system and display them within the VR debug panel.
* Networking Support: Includes server-side functions to ensure actions triggered from the debug panel are executed properly in a networked environment.
* UI Widget Class Configuration: Requires specific UI widget classes to be set up in advance (e.g., UExistentDebugPanelWidget, UExistentVehicleWidget) to ensure proper functionality of the component.
* Event Binding: Binds various UI events (e.g., button clicks) to component functions for handling user interactions within the debug panel.

## How to use

You need to enable Backstage mode through RealityBridge or Inspection Panel GUI window.

The ExistentPlayer class already has a DebugPanelComponent attached to the PlayerBody component.

* Debugging and Testing: During development, attach the ExistentDebugPanelComponent to your player pawn (ExistentPlayer already uses this component) to facilitate real-time debugging and interaction. It can be used to monitor log messages, test vehicle actions, or switch spaces without leaving the VR environment.
* Development Tools: Use the debug panel as an in-game tool to dynamically alter game states, trigger events, or visualise system statuses directly within the VR experience, streamlining the development and testing process.
* Setup: Ensure the WidgetClass property of the component is set to the widget blueprint of your choice. Existent uses the WBP\_DebugPanel by default. &#x20;
* Custom Actions: In the future ,we plan to allow Implementing custom functions to handle different interactions.
* Networking: For networked applications, ensure that actions requiring synchronisation across clients (e.g., vehicle actions) are implemented using server-side RPCs.

<figure><img src="https://lh7-us.googleusercontent.com/Hm0OFgc9OpVrWOxt7iFZMxenlCR5Tg2ooEFnI1_PalcQHZDhpQxIulBwMn-F0GLD_PsBDjBkpVnvWrOnhV79najw6BP_7UY5MJkTdq7DmUIOQMWuDE9ZnTyI8NcatThwIM3b_G9TaOxonsPqbL17Og" alt=""><figcaption></figcaption></figure>

## Additional Details
