<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.vrchat.com/index.php?action=history&amp;feed=atom&amp;title=Community%3AXSOverlay</id>
	<title>Community:XSOverlay - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.vrchat.com/index.php?action=history&amp;feed=atom&amp;title=Community%3AXSOverlay"/>
	<link rel="alternate" type="text/html" href="https://wiki.vrchat.com/index.php?title=Community:XSOverlay&amp;action=history"/>
	<updated>2026-06-03T21:40:45Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://wiki.vrchat.com/index.php?title=Community:XSOverlay&amp;diff=69287&amp;oldid=prev</id>
		<title>Usr 40be82e7-f7d5-4548-b314-3fc7b26d22ee: Undo revision 69203 by Usr 8ee44c1a-f905-4e08-bb61-e1cd34e09fc0 (talk)</title>
		<link rel="alternate" type="text/html" href="https://wiki.vrchat.com/index.php?title=Community:XSOverlay&amp;diff=69287&amp;oldid=prev"/>
		<updated>2026-04-15T09:15:32Z</updated>

		<summary type="html">&lt;p&gt;Undo revision &lt;a href=&quot;/wiki/Special:Diff/69203&quot; title=&quot;Special:Diff/69203&quot;&gt;69203&lt;/a&gt; by &lt;a href=&quot;/wiki/Special:Contributions/Usr_8ee44c1a-f905-4e08-bb61-e1cd34e09fc0&quot; title=&quot;Special:Contributions/Usr 8ee44c1a-f905-4e08-bb61-e1cd34e09fc0&quot;&gt;Usr 8ee44c1a-f905-4e08-bb61-e1cd34e09fc0&lt;/a&gt; (&lt;a href=&quot;/wiki/User_talk:Usr_8ee44c1a-f905-4e08-bb61-e1cd34e09fc0&quot; title=&quot;User talk:Usr 8ee44c1a-f905-4e08-bb61-e1cd34e09fc0&quot;&gt;talk&lt;/a&gt;)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:15, 15 April 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l100&quot;&gt;Line 100:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 100:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://store.steampowered.com/app/1173510/XSOverlay/ XSOverlay] on Steam&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://store.steampowered.com/app/1173510/XSOverlay/ XSOverlay] on Steam&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://xsoverlay.vercel.app/ XSOverlay Documentation] (official)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://xsoverlay.vercel.app/ XSOverlay Documentation] (official)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [https://discord.gg/xsoverlay XSOverlay Discord]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://github.com/Xiexe/XSOverlay-Issue-Tracker XSOverlay Issue Tracker] on GitHub&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://github.com/Xiexe/XSOverlay-Issue-Tracker XSOverlay Issue Tracker] on GitHub&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://github.com/Xiexe/XSOverlaySDK XSOverlay SDK] on GitHub&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://github.com/Xiexe/XSOverlaySDK XSOverlay SDK] on GitHub&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* XSOverlay has a community Discord server available through the Documentation!&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key vrchat_wiki:diff:1.41:old-69203:rev-69287:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Usr 40be82e7-f7d5-4548-b314-3fc7b26d22ee</name></author>
	</entry>
	<entry>
		<id>https://wiki.vrchat.com/index.php?title=Community:XSOverlay&amp;diff=69203&amp;oldid=prev</id>
		<title>Usr 8ee44c1a-f905-4e08-bb61-e1cd34e09fc0: Redacted Discord URL, as it can potentially introduce scammers; users interested can view the XSOverlay Documentation to join</title>
		<link rel="alternate" type="text/html" href="https://wiki.vrchat.com/index.php?title=Community:XSOverlay&amp;diff=69203&amp;oldid=prev"/>
		<updated>2026-04-15T05:12:43Z</updated>

		<summary type="html">&lt;p&gt;Redacted Discord URL, as it can potentially introduce scammers; users interested can view the XSOverlay Documentation to join&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 05:12, 15 April 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l100&quot;&gt;Line 100:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 100:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://store.steampowered.com/app/1173510/XSOverlay/ XSOverlay] on Steam&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://store.steampowered.com/app/1173510/XSOverlay/ XSOverlay] on Steam&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://xsoverlay.vercel.app/ XSOverlay Documentation] (official)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://xsoverlay.vercel.app/ XSOverlay Documentation] (official)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [https://discord.gg/xsoverlay XSOverlay Discord]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://github.com/Xiexe/XSOverlay-Issue-Tracker XSOverlay Issue Tracker] on GitHub&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://github.com/Xiexe/XSOverlay-Issue-Tracker XSOverlay Issue Tracker] on GitHub&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://github.com/Xiexe/XSOverlaySDK XSOverlay SDK] on GitHub&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://github.com/Xiexe/XSOverlaySDK XSOverlay SDK] on GitHub&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* XSOverlay has a community Discord server available through the Documentation!&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key vrchat_wiki:diff:1.41:old-66372:rev-69203:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Usr 8ee44c1a-f905-4e08-bb61-e1cd34e09fc0</name></author>
	</entry>
	<entry>
		<id>https://wiki.vrchat.com/index.php?title=Community:XSOverlay&amp;diff=66372&amp;oldid=prev</id>
		<title>Usr 40be82e7-f7d5-4548-b314-3fc7b26d22ee: My love beloved VR Overlay today</title>
		<link rel="alternate" type="text/html" href="https://wiki.vrchat.com/index.php?title=Community:XSOverlay&amp;diff=66372&amp;oldid=prev"/>
		<updated>2026-03-16T21:21:51Z</updated>

		<summary type="html">&lt;p&gt;My love beloved VR Overlay today&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Noticebox/Community}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;XSOverlay&amp;#039;&amp;#039;&amp;#039; is a paid SteamVR overlay utility developed and published by Xiexe. It allows users to view and interact with desktop windows while inside virtual reality. The application is popular among VRChat players for tasks such as reading messages, browsing the web, and controlling media playback.&lt;br /&gt;
&lt;br /&gt;
XSOverlay was released in early access on Steam on March 3, 2020, and is priced at $9.99. It has received a &amp;quot;Very Positive&amp;quot; rating on Steam based on over 1,300 user reviews. It has the same or lower requirements as VRChat, plus 500MB Storage.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
XSOverlay functions as a SteamVR overlay, rendering on top of any running SteamVR application. Users can select individual desktop windows or full monitors and pin them as floating, resizable panels within their VR environment. These panels can be placed freely in 3D space, attached to a controller, or locked to the headset. Interaction is handled through tracked VR controllers, with support for left, middle, and right mouse clicks, scrolling, long press, and dragging.&lt;br /&gt;
&lt;br /&gt;
XSOverlay is compatible with all SteamVR-compatible headsets, including the Valve Index, HTC Vive, Meta Quest (via SteamVR), and Windows Mixed Reality headsets. Controller bindings are fully remappable through the SteamVR bindings system.&lt;br /&gt;
&lt;br /&gt;
=== Wrist overlay ===&lt;br /&gt;
XSOverlay includes a wrist-mounted overlay displayed on the back of the non-dominant hand by default. The wrist overlay provides:&lt;br /&gt;
&lt;br /&gt;
* Current time and date (12-hour or 24-hour format)&lt;br /&gt;
* Battery levels for VR controllers and trackers, listed in order of connection&lt;br /&gt;
* System resource statistics (CPU, GPU, VRAM)&lt;br /&gt;
* A toggle for media playback controls (play/pause, skip, previous)&lt;br /&gt;
* A button to enter Layout Mode&lt;br /&gt;
&lt;br /&gt;
The wrist overlay hides itself based on a configurable clip angle, appearing only when the user looks toward it.&lt;br /&gt;
&lt;br /&gt;
=== Layout Mode ===&lt;br /&gt;
Layout Mode is XSOverlay&amp;#039;s primary interface for managing overlays. It can be opened from the wrist overlay or through a controller binding (double-tap the left A button on Index controllers by default). In Layout Mode, users can:&lt;br /&gt;
&lt;br /&gt;
* Add, move, scale, and remove window overlays&lt;br /&gt;
* Pin overlays to remain visible outside of Layout Mode&lt;br /&gt;
* Lock overlays to prevent interaction&lt;br /&gt;
* Save, load, and delete named layout configurations&lt;br /&gt;
* Arrange windows into a grid view for quick organization&lt;br /&gt;
* Recenter all windows to face the user&lt;br /&gt;
&lt;br /&gt;
An optional input blocking feature prevents controller input from reaching the background VR application while Layout Mode is open.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Desktop and window overlays&amp;#039;&amp;#039;&amp;#039; — Display full monitors or individual windows as floating panels in VR space. Overlays can be pinned, locked, attached to controllers, or attached to the headset.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Mouse and keyboard input&amp;#039;&amp;#039;&amp;#039; — Interact with desktop applications using tracked controllers for mouse input; type using a virtual keyboard with automatic detection of the system keyboard layout.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Layout saving&amp;#039;&amp;#039;&amp;#039; — Save and load named overlay layout configurations to maintain different setups for different activities.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Media controls&amp;#039;&amp;#039;&amp;#039; — Control playback for system media (Spotify, YouTube Music, and other applications) from the wrist overlay.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Curved overlays&amp;#039;&amp;#039;&amp;#039; — Wrap overlays in a curve when positioned in front of the user, with adjustable curve strength. Curvature requires Aim Movement to be enabled and does not apply to device-attached overlays.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Notifications API&amp;#039;&amp;#039;&amp;#039; — Third-party applications can send toast notifications to the user&amp;#039;s headset through a WebSocket-based API.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Discord Rich Presence&amp;#039;&amp;#039;&amp;#039; — Displays XSOverlay as the active application in Discord, along with the currently running VR game.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Per-overlay settings&amp;#039;&amp;#039;&amp;#039; — Each overlay can be individually configured for opacity, brightness, maximum and minimum frame rate, auto-hide behavior, and input blocking.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Customizable keyboard sounds&amp;#039;&amp;#039;&amp;#039; — Custom sound packs can be applied to the virtual keyboard.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Theme support&amp;#039;&amp;#039;&amp;#039; — Users can switch between light and dark themes and customize the accent color. Community-created themes are available through the [https://github.com/Xiexe/XSOverlaySDK XSOverlay SDK].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Localization&amp;#039;&amp;#039;&amp;#039; — Interface translations are available in 20 languages, with support for user-created language files.&lt;br /&gt;
&lt;br /&gt;
== OSC Parameters ==&lt;br /&gt;
The following parameters are sent:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter&lt;br /&gt;
! Description&lt;br /&gt;
! Type&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;leftControllerBattery&amp;lt;/code&amp;gt;&lt;br /&gt;
| Left controller battery percentage (0-1)&lt;br /&gt;
| Float&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;rightControllerBattery&amp;lt;/code&amp;gt;&lt;br /&gt;
| Right controller battery percentage (0-1)&lt;br /&gt;
| Float&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;averageControllerBattery&amp;lt;/code&amp;gt;&lt;br /&gt;
| Average controller battery percentage (0-1)&lt;br /&gt;
| Float&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;averageTrackerBattery&amp;lt;/code&amp;gt;&lt;br /&gt;
| Average tracker battery percentage (0-1)&lt;br /&gt;
| Float&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;isOverlayOpen&amp;lt;/code&amp;gt;&lt;br /&gt;
| Whether any overlay is currently open&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;isKeyboardOpen&amp;lt;/code&amp;gt;&lt;br /&gt;
| Whether the keyboard is currently open&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;isWristVisible&amp;lt;/code&amp;gt;&lt;br /&gt;
| Whether the wrist menu is currently visible&lt;br /&gt;
| Boolean&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;openOverlayCount&amp;lt;/code&amp;gt;&lt;br /&gt;
| Number of open overlays (0-255)&lt;br /&gt;
| Integer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These parameters can be used on VRChat avatars to display battery indicators, show typing status, or trigger other behaviors. OSC port and path settings can be changed by editing the &amp;lt;code&amp;gt;ExternalMessageAPIConfig.json&amp;lt;/code&amp;gt; configuration file in the XSOverlay installation directory.&lt;br /&gt;
&lt;br /&gt;
== Developer API ==&lt;br /&gt;
XSOverlay exposes a WebSocket-based API that allows external applications to interact with the overlay system. Through the API, developers can send notifications to the headset, toggle Layout Mode, and issue other commands.&lt;br /&gt;
&lt;br /&gt;
The [https://github.com/Xiexe/XSOverlaySDK XSOverlay SDK] on GitHub provides resources for creating custom themes.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Community:OVR Toolkit|OVR Toolkit]]&lt;br /&gt;
* [[OSC|Open Sound Control (OSC)]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* [https://store.steampowered.com/app/1173510/XSOverlay/ XSOverlay] on Steam&lt;br /&gt;
* [https://xsoverlay.vercel.app/ XSOverlay Documentation] (official)&lt;br /&gt;
* [https://discord.gg/xsoverlay XSOverlay Discord]&lt;br /&gt;
* [https://github.com/Xiexe/XSOverlay-Issue-Tracker XSOverlay Issue Tracker] on GitHub&lt;br /&gt;
* [https://github.com/Xiexe/XSOverlaySDK XSOverlay SDK] on GitHub&lt;/div&gt;</summary>
		<author><name>Usr 40be82e7-f7d5-4548-b314-3fc7b26d22ee</name></author>
	</entry>
</feed>