<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.robopad.co.uk/index.php?action=history&amp;feed=atom&amp;title=Gamepad_Node</id>
	<title>Gamepad Node - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.robopad.co.uk/index.php?action=history&amp;feed=atom&amp;title=Gamepad_Node"/>
	<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=Gamepad_Node&amp;action=history"/>
	<updated>2026-06-09T21:34:11Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.0</generator>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=Gamepad_Node&amp;diff=258&amp;oldid=prev</id>
		<title>Blayze: /* Settings */  Adds reminder to activate the gamepad when it&#039;s plugged in.</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=Gamepad_Node&amp;diff=258&amp;oldid=prev"/>
		<updated>2024-05-07T15:39:48Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Settings: &lt;/span&gt;  Adds reminder to activate the gamepad when it&amp;#039;s plugged in.&lt;/span&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 15:39, 7 May 2024&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-l26&quot;&gt;Line 26:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 26:&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;==Settings==&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;==Settings==&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;The Gamepad Input Node&amp;#039;s settings window starts out simply with only one configurable option and a button next to &amp;quot;Open Gamepad Selector&amp;quot;. In this initial state, the button indicates whether or not the currently configured gamepad is found (by default, no gamepad is configured, so the button displays &amp;quot;gamepad &amp;quot;none&amp;quot; detected&amp;quot;). Clicking the button will open up the &amp;#039;&amp;#039;&amp;#039;Gamepad Selector&amp;#039;&amp;#039;&amp;#039; dialogue, which allows you to select a gamepad from a drop-down list of detected gamepads and also specify which buttons and axes are tracked on that gamepad (i.e. which ones this node will use as output ports). Because the Gamepad Selector requires the configured gamepad to be connected in order to list available axes and buttons, it &amp;#039;&amp;#039;&amp;#039;will wipe all selected axis and buttons if you open it without the configured gamepad detected&amp;#039;&amp;#039;&amp;#039;.&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;The Gamepad Input Node&amp;#039;s settings window starts out simply with only one configurable option and a button next to &amp;quot;Open Gamepad Selector&amp;quot;. In this initial state, the button indicates whether or not the currently configured gamepad is found (by default, no gamepad is configured, so the button displays &amp;quot;gamepad &amp;quot;none&amp;quot; detected&amp;quot;). Clicking the button will open up the &amp;#039;&amp;#039;&amp;#039;Gamepad Selector&amp;#039;&amp;#039;&amp;#039; dialogue, which allows you to select a gamepad from a drop-down list of detected gamepads and also specify which buttons and axes are tracked on that gamepad (i.e. which ones this node will use as output ports). Because the Gamepad Selector requires the configured gamepad to be connected in order to list available axes and buttons, it &amp;#039;&amp;#039;&amp;#039;will wipe all selected axis and buttons if you open it without the configured gamepad detected&amp;#039;&amp;#039;&amp;#039;.&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;&lt;/ins&gt;&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;Note that detecting a gamepad can often require that not only is &#039;&#039;&#039;the gamepad plugged in&#039;&#039;&#039;, but also that &#039;&#039;&#039;a joystick has been moved, or a button pressed&#039;&#039;&#039;.&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;*&amp;#039;&amp;#039;&amp;#039;ID&amp;#039;&amp;#039;&amp;#039;: Provides a drop-down box that lists all currently connected Gamepads by their unique vendor IDs. This will automatically select the currently configured gamepad&amp;#039;s ID, or go to &amp;quot;none&amp;quot; if it cannot be found.&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;*&amp;#039;&amp;#039;&amp;#039;ID&amp;#039;&amp;#039;&amp;#039;: Provides a drop-down box that lists all currently connected Gamepads by their unique vendor IDs. This will automatically select the currently configured gamepad&amp;#039;s ID, or go to &amp;quot;none&amp;quot; if it cannot be found.&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;&amp;lt;!--*&amp;#039;&amp;#039;&amp;#039;Index&amp;#039;&amp;#039;&amp;#039;: Rarely you may want to connect more than one gamepad of the same type (with the same ID) to a single device. This lets you specify which gamepad you are referencing. Under most normal use cases, &amp;#039;&amp;#039;&amp;#039;this should be left as &amp;quot;0&amp;quot;&amp;#039;&amp;#039;&amp;#039;.--&amp;gt;&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;&amp;lt;!--*&amp;#039;&amp;#039;&amp;#039;Index&amp;#039;&amp;#039;&amp;#039;: Rarely you may want to connect more than one gamepad of the same type (with the same ID) to a single device. This lets you specify which gamepad you are referencing. Under most normal use cases, &amp;#039;&amp;#039;&amp;#039;this should be left as &amp;quot;0&amp;quot;&amp;#039;&amp;#039;&amp;#039;.--&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=Gamepad_Node&amp;diff=257&amp;oldid=prev</id>
		<title>Blayze: Adds additional troubleshooting info for browser/gamepad compatability issues, adds information about removed &#039;Index&#039; option.</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=Gamepad_Node&amp;diff=257&amp;oldid=prev"/>
		<updated>2024-05-07T15:37:03Z</updated>

		<summary type="html">&lt;p&gt;Adds additional troubleshooting info for browser/gamepad compatability issues, adds information about removed &amp;#039;Index&amp;#039; option.&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 15:37, 7 May 2024&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-l2&quot;&gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&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;{| class=&amp;quot;wikitable&amp;quot;&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;{| class=&amp;quot;wikitable&amp;quot;&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;|+&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;|+&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;!&amp;#039;&amp;#039;&amp;#039;NOTICE:&amp;#039;&amp;#039;&amp;#039; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Currently, gamepad &lt;/del&gt;support is &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;not very robust&lt;/del&gt;. Different web browsers and devices support different levels of access to hardware peripherals (such as gamepads) &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;standardisation is lacking&lt;/del&gt;. We are working to improve this node&amp;#039;s ability to &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;detect &lt;/del&gt;gamepads across all browsers and devices, however we cannot guarantee that your specific controller/device/browser combination will work. If you encounter issues, experiment with different web browsers and/or controllers.&lt;/div&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;!&amp;#039;&amp;#039;&amp;#039;NOTICE:&amp;#039;&amp;#039;&amp;#039; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Gamepad &lt;/ins&gt;support is &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sporadic&lt;/ins&gt;. Different web browsers and devices support different levels of access to hardware peripherals (such as gamepads)&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. In particular, Firefox does not allow the use of Gamepads at all. See the &amp;quot;Browser Support&amp;quot; section for details&lt;/ins&gt;. We are working to improve this node&amp;#039;s ability to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;work with &lt;/ins&gt;gamepads across all browsers and devices, however we cannot guarantee that your specific controller/device/browser combination will work. If you encounter issues, experiment with different web browsers and/or controllers.&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;|}&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;|}&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;{{Node Data&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;{{Node Data&lt;/div&gt;&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-l27&quot;&gt;Line 27:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 27:&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;The Gamepad Input Node&amp;#039;s settings window starts out simply with only one configurable option and a button next to &amp;quot;Open Gamepad Selector&amp;quot;. In this initial state, the button indicates whether or not the currently configured gamepad is found (by default, no gamepad is configured, so the button displays &amp;quot;gamepad &amp;quot;none&amp;quot; detected&amp;quot;). Clicking the button will open up the &amp;#039;&amp;#039;&amp;#039;Gamepad Selector&amp;#039;&amp;#039;&amp;#039; dialogue, which allows you to select a gamepad from a drop-down list of detected gamepads and also specify which buttons and axes are tracked on that gamepad (i.e. which ones this node will use as output ports). Because the Gamepad Selector requires the configured gamepad to be connected in order to list available axes and buttons, it &amp;#039;&amp;#039;&amp;#039;will wipe all selected axis and buttons if you open it without the configured gamepad detected&amp;#039;&amp;#039;&amp;#039;.&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;The Gamepad Input Node&amp;#039;s settings window starts out simply with only one configurable option and a button next to &amp;quot;Open Gamepad Selector&amp;quot;. In this initial state, the button indicates whether or not the currently configured gamepad is found (by default, no gamepad is configured, so the button displays &amp;quot;gamepad &amp;quot;none&amp;quot; detected&amp;quot;). Clicking the button will open up the &amp;#039;&amp;#039;&amp;#039;Gamepad Selector&amp;#039;&amp;#039;&amp;#039; dialogue, which allows you to select a gamepad from a drop-down list of detected gamepads and also specify which buttons and axes are tracked on that gamepad (i.e. which ones this node will use as output ports). Because the Gamepad Selector requires the configured gamepad to be connected in order to list available axes and buttons, it &amp;#039;&amp;#039;&amp;#039;will wipe all selected axis and buttons if you open it without the configured gamepad detected&amp;#039;&amp;#039;&amp;#039;.&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;*&amp;#039;&amp;#039;&amp;#039;ID&amp;#039;&amp;#039;&amp;#039;: Provides a drop-down box that lists all currently connected Gamepads by their unique vendor IDs. This will automatically select the currently configured gamepad&amp;#039;s ID, or go to &amp;quot;none&amp;quot; if it cannot be found.&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;*&amp;#039;&amp;#039;&amp;#039;ID&amp;#039;&amp;#039;&amp;#039;: Provides a drop-down box that lists all currently connected Gamepads by their unique vendor IDs. This will automatically select the currently configured gamepad&amp;#039;s ID, or go to &amp;quot;none&amp;quot; if it cannot be found.&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;*&amp;#039;&amp;#039;&amp;#039;Index&amp;#039;&amp;#039;&amp;#039;: Rarely you may want to connect more than one gamepad of the same type (with the same ID) to a single device. This lets you specify which gamepad you are referencing. Under most normal use cases, &amp;#039;&amp;#039;&amp;#039;this should be left as &amp;quot;0&amp;quot;&amp;#039;&amp;#039;&amp;#039;.&lt;/div&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;&amp;lt;!--&lt;/ins&gt;*&amp;#039;&amp;#039;&amp;#039;Index&amp;#039;&amp;#039;&amp;#039;: Rarely you may want to connect more than one gamepad of the same type (with the same ID) to a single device. This lets you specify which gamepad you are referencing. Under most normal use cases, &amp;#039;&amp;#039;&amp;#039;this should be left as &amp;quot;0&amp;quot;&amp;#039;&amp;#039;&amp;#039;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;--&amp;gt;&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;*&amp;#039;&amp;#039;&amp;#039;Buttons and Axes&amp;#039;&amp;#039;&amp;#039;: A list of all buttons and axes available on the currently connected (and configured) gamepad. Each one can indpendently be selected with a checkbox on its left - check this checkbox will set that axis or button as an output port on the node in order to forward gamepad signals into the nodegraph. Make sure you read the &amp;quot;Outputs&amp;quot; section above to understand how these work.&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;*&amp;#039;&amp;#039;&amp;#039;Buttons and Axes&amp;#039;&amp;#039;&amp;#039;: A list of all buttons and axes available on the currently connected (and configured) gamepad. Each one can indpendently be selected with a checkbox on its left - check this checkbox will set that axis or button as an output port on the node in order to forward gamepad signals into the nodegraph. Make sure you read the &amp;quot;Outputs&amp;quot; section above to understand how these work.&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;*&amp;#039;&amp;#039;&amp;#039;Sample Rate (ms)&amp;#039;&amp;#039;&amp;#039;: The physical gamepad must be sampled at regular intervals to read the values of each of axes and buttons set to be emitted - this setting configures the interval that this happens at. A higher interval will result in higher percieved delay lag between interacting with a physical gamepad input and the node emitting a signal, while a lower interval will result in more responsive output emissions, but might cause lag within your web browser as it attempts to rapidly sample the gamepad.&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;*&amp;#039;&amp;#039;&amp;#039;Sample Rate (ms)&amp;#039;&amp;#039;&amp;#039;: The physical gamepad must be sampled at regular intervals to read the values of each of axes and buttons set to be emitted - this setting configures the interval that this happens at. A higher interval will result in higher percieved delay lag between interacting with a physical gamepad input and the node emitting a signal, while a lower interval will result in more responsive output emissions, but might cause lag within your web browser as it attempts to rapidly sample the gamepad.&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;&lt;/ins&gt;&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;==Browser Support==&lt;/ins&gt;&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;Gamepad support is not very well standardised across mobile devices and web browsers. As a result, gamepads may sometimes not work or not be available to the RoboPad. All versions of firefox - both mobile and PC - do not allow RoboPad access to connected gamepads due to security concerns with allowing non-https site access to peripherals. Most other browsers either allow access directly, or may have a security setting that you are required to disable to allow access:&lt;/ins&gt;&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;&lt;/ins&gt;&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;&amp;lt;!-- TODO: Make the below data automatically pull from https://unpkg.com/@mdn/browser-compat-data@5.5.25/data.json -&gt; api/Gamepad/secure_context_required --&gt;&lt;/ins&gt;&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;*Chrome, Chromium: `#restrict-gamepad-access` found by visiting [chrome://flags chrome://flags] must be set to &quot;Disabled&quot;.&lt;/ins&gt;&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;*Edge: `#restrict-gamepad-access` found by visiting [about:flags about:flags] must be set to &quot;Disabled&quot;.&lt;/ins&gt;&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;*Opera: `#restrict-gamepad-access` found by visiting [opera://flags opera://flags] must be set to &quot;Disabled&quot;.&lt;/ins&gt;&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;&lt;/ins&gt;&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;Further, you can check whether your gamepad is compatible with the webgamepad API by visiting an online gamepad tester such as [https://hardwaretester.com/gamepad Hardware Tester&#039;s GamePad Tester].&lt;/ins&gt;&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;&lt;/ins&gt;&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;==Previous Versions==&lt;/ins&gt;&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;In firmware versions 2.4-b2 and 2.4-b3, this node had an &quot;Index&quot; setting, which let you specify which gamepad the node would connect to in the situation that there were more than one type of gamepad connected with the same unique vendor ID. This was to handle the case where multiple identical controllers were pulgged into a single phone/computer connected to a RoboPad. However, this was removed in 2.4-b4 onward, as it added extra confusion to the configuration process. This feature may be re-introduced in the future, but for now is considered deprecated.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=Gamepad_Node&amp;diff=239&amp;oldid=prev</id>
		<title>Blayze: Adds descriptions of settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=Gamepad_Node&amp;diff=239&amp;oldid=prev"/>
		<updated>2023-03-10T02:25:46Z</updated>

		<summary type="html">&lt;p&gt;Adds descriptions of settings&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 02:25, 10 March 2023&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-l26&quot;&gt;Line 26:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 26:&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;==Settings==&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;==Settings==&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;The Gamepad Input Node&amp;#039;s settings window starts out simply with only one configurable option and a button next to &amp;quot;Open Gamepad Selector&amp;quot;. In this initial state, the button indicates whether or not the currently configured gamepad is found (by default, no gamepad is configured, so the button displays &amp;quot;gamepad &amp;quot;none&amp;quot; detected&amp;quot;). Clicking the button will open up the &amp;#039;&amp;#039;&amp;#039;Gamepad Selector&amp;#039;&amp;#039;&amp;#039; dialogue, which allows you to select a gamepad from a drop-down list of detected gamepads and also specify which buttons and axes are tracked on that gamepad (i.e. which ones this node will use as output ports). Because the Gamepad Selector requires the configured gamepad to be connected in order to list available axes and buttons, it &amp;#039;&amp;#039;&amp;#039;will wipe all selected axis and buttons if you open it without the configured gamepad detected&amp;#039;&amp;#039;&amp;#039;.&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;The Gamepad Input Node&amp;#039;s settings window starts out simply with only one configurable option and a button next to &amp;quot;Open Gamepad Selector&amp;quot;. In this initial state, the button indicates whether or not the currently configured gamepad is found (by default, no gamepad is configured, so the button displays &amp;quot;gamepad &amp;quot;none&amp;quot; detected&amp;quot;). Clicking the button will open up the &amp;#039;&amp;#039;&amp;#039;Gamepad Selector&amp;#039;&amp;#039;&amp;#039; dialogue, which allows you to select a gamepad from a drop-down list of detected gamepads and also specify which buttons and axes are tracked on that gamepad (i.e. which ones this node will use as output ports). Because the Gamepad Selector requires the configured gamepad to be connected in order to list available axes and buttons, it &amp;#039;&amp;#039;&amp;#039;will wipe all selected axis and buttons if you open it without the configured gamepad detected&amp;#039;&amp;#039;&amp;#039;.&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;*ID: Provides a drop-down box that lists all currently connected Gamepads by their unique vendor IDs.&lt;/div&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;&amp;#039;&amp;#039;&amp;#039;&lt;/ins&gt;ID&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;#039;&amp;#039;&amp;#039;&lt;/ins&gt;: Provides a drop-down box that lists all currently connected Gamepads by their unique vendor IDs&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. This will automatically select the currently configured gamepad&amp;#039;s ID, or go to &amp;quot;none&amp;quot; if it cannot be found&lt;/ins&gt;.&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;*Index:&lt;/div&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;&amp;#039;&amp;#039;&amp;#039;&lt;/ins&gt;Index&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;#039;&amp;#039;&amp;#039;&lt;/ins&gt;: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Rarely you may want to connect more than one gamepad of the same type (with the same ID) to a single device. This lets you specify which gamepad you are referencing. Under most normal use cases, &amp;#039;&amp;#039;&amp;#039;this should be left as &amp;quot;0&amp;quot;&amp;#039;&amp;#039;&amp;#039;.&lt;/ins&gt;&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;*Buttons and Axes:&lt;/div&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;&amp;#039;&amp;#039;&amp;#039;&lt;/ins&gt;Buttons and Axes&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;#039;&amp;#039;&amp;#039;&lt;/ins&gt;: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;A list of all buttons and axes available on the currently connected (and configured) gamepad. Each one can indpendently be selected with a checkbox on its left - check this checkbox will set that axis or button as an output port on the node in order to forward gamepad signals into the nodegraph. Make sure you read the &amp;quot;Outputs&amp;quot; section above to understand how these work.&lt;/ins&gt;&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;*Sample Rate (ms):&lt;/div&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;&amp;#039;&amp;#039;&amp;#039;&lt;/ins&gt;Sample Rate (ms)&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;#039;&amp;#039;&amp;#039;&lt;/ins&gt;: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The physical gamepad must be sampled at regular intervals to read the values of each of axes and buttons set to be emitted - this setting configures the interval that this happens at. A higher interval will result in higher percieved delay lag between interacting with a physical gamepad input and the node emitting a signal, while a lower interval will result in more responsive output emissions, but might cause lag within your web browser as it attempts to rapidly sample the gamepad.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
	<entry>
		<id>https://wiki.robopad.co.uk/index.php?title=Gamepad_Node&amp;diff=238&amp;oldid=prev</id>
		<title>Blayze: Creates Gamepad Noded page.</title>
		<link rel="alternate" type="text/html" href="https://wiki.robopad.co.uk/index.php?title=Gamepad_Node&amp;diff=238&amp;oldid=prev"/>
		<updated>2023-03-09T13:57:43Z</updated>

		<summary type="html">&lt;p&gt;Creates Gamepad Noded page.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Return to nodes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&amp;#039;&amp;#039;&amp;#039;NOTICE:&amp;#039;&amp;#039;&amp;#039; Currently, gamepad support is not very robust. Different web browsers and devices support different levels of access to hardware peripherals (such as gamepads) standardisation is lacking. We are working to improve this node&amp;#039;s ability to detect gamepads across all browsers and devices, however we cannot guarantee that your specific controller/device/browser combination will work. If you encounter issues, experiment with different web browsers and/or controllers.&lt;br /&gt;
|}&lt;br /&gt;
{{Node Data&lt;br /&gt;
|title=Gamepad Node&lt;br /&gt;
|gallery=&amp;lt;gallery mode=&amp;quot;slideshow&amp;quot;&amp;gt;&lt;br /&gt;
File:Gamepad-Input-node.png&lt;br /&gt;
File:Gamepad-Input-settings.png&lt;br /&gt;
File:Gamepad-Input-settings-examining-controller.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
|output-list=&amp;lt;li&amp;gt;connected&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;[...axis]&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;[...buttons]&amp;lt;/li&amp;gt;&lt;br /&gt;
|version=2.4-b2}}&lt;br /&gt;
The Gamepad Input Node is a Node that can be configured to search for a specific physically attached [[wikipedia:Gamepad|gamepad controller]] which, upon finding, can be configured to transmit axis (analogue stick/trigger movements) and button signals into the nodegraph.&lt;br /&gt;
&lt;br /&gt;
Gamepad Nodes were introduced in [[Firmware Releases|firmware version]] 2.4-b2.&lt;br /&gt;
&lt;br /&gt;
==Outputs==&lt;br /&gt;
By default the Gamepad Node only has one output port - &amp;#039;&amp;#039;connected&amp;#039;&amp;#039;. This output port emits a low (&amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039;) initially, but then a high (&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;) when the node&amp;#039;s configured gamepad is found.&lt;br /&gt;
&lt;br /&gt;
Further outputs of the form &amp;#039;&amp;#039;&amp;#039;axis a&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;axis b&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;axis c&amp;#039;&amp;#039;&amp;#039;, etc as well as &amp;#039;&amp;#039;&amp;#039;button a&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;button b&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;button c&amp;#039;&amp;#039;&amp;#039;, etc that track the states of physical button bushes and analogue stick movements on the physical controller.&lt;br /&gt;
&lt;br /&gt;
Note that &amp;#039;&amp;#039;&amp;#039;axis signals will usually present between -1 and 1&amp;#039;&amp;#039;&amp;#039;, while &amp;#039;&amp;#039;&amp;#039;button signals will usually present between 0 and 1&amp;#039;&amp;#039;&amp;#039;. Make sure you have fully understood the signals coming out of the node with your specific configuration before you connect any outputs to any physical actuators - it is recommended to attach the outputs to an [[Indicator Node]] first to check that you understand what signals the node is emitting.&lt;br /&gt;
&lt;br /&gt;
==Settings==&lt;br /&gt;
The Gamepad Input Node&amp;#039;s settings window starts out simply with only one configurable option and a button next to &amp;quot;Open Gamepad Selector&amp;quot;. In this initial state, the button indicates whether or not the currently configured gamepad is found (by default, no gamepad is configured, so the button displays &amp;quot;gamepad &amp;quot;none&amp;quot; detected&amp;quot;). Clicking the button will open up the &amp;#039;&amp;#039;&amp;#039;Gamepad Selector&amp;#039;&amp;#039;&amp;#039; dialogue, which allows you to select a gamepad from a drop-down list of detected gamepads and also specify which buttons and axes are tracked on that gamepad (i.e. which ones this node will use as output ports). Because the Gamepad Selector requires the configured gamepad to be connected in order to list available axes and buttons, it &amp;#039;&amp;#039;&amp;#039;will wipe all selected axis and buttons if you open it without the configured gamepad detected&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*ID: Provides a drop-down box that lists all currently connected Gamepads by their unique vendor IDs.&lt;br /&gt;
*Index:&lt;br /&gt;
*Buttons and Axes:&lt;br /&gt;
*Sample Rate (ms):&lt;/div&gt;</summary>
		<author><name>Blayze</name></author>
	</entry>
</feed>