{"id":601,"date":"2023-10-23T08:51:45","date_gmt":"2023-10-23T08:51:45","guid":{"rendered":"https:\/\/x-change.life\/wiki\/?post_type=docs&#038;p=601"},"modified":"2025-08-21T16:09:21","modified_gmt":"2025-08-21T16:09:21","slug":"toy-integration","status":"publish","type":"docs","link":"https:\/\/x-change.life\/wiki\/docs\/toy-integration\/","title":{"rendered":"Toy Integration"},"content":{"rendered":"\n<p>X-Change Life offers integration with real-world sex toys through the <a href=\"https:\/\/buttplug-spec.docs.buttplug.io\/docs\/spec\">&#8220;buttplug intimate device control standard&#8221;<\/a>, usually with the <a href=\"https:\/\/intiface.com\/\">Intiface software<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Vibration control with Intiface<\/h2>\n\n\n\n<p>As X-Change Life runs in the browser, it cannot communicate directly with a sex toy. The game communicates through Intiface Central running on the same computer. Intiface then communicates with the sex toy.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"471\" height=\"201\" src=\"https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/intiface-setup.drawio.png\" alt=\"\" class=\"wp-image-602\" srcset=\"https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/intiface-setup.drawio.png 471w, https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/intiface-setup.drawio-300x128.png 300w\" sizes=\"(max-width: 471px) 100vw, 471px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Setting up Intiface<\/h3>\n\n\n\n<p>First, <a href=\"https:\/\/intiface.com\/central\/\">install and open Intiface central<\/a>. First, start the server using the giant play button. Intiface should then look something like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" width=\"786\" height=\"593\" src=\"https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-2.png\" alt=\"\" class=\"wp-image-605\" style=\"width:412px;height:311px\" srcset=\"https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-2.png 786w, https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-2-300x226.png 300w, https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-2-768x579.png 768w\" sizes=\"(max-width: 786px) 100vw, 786px\" \/><\/figure>\n\n\n\n<p>Next, add your sex toy. Select the &#8220;Devices&#8221; tab on the left, turn on your toy, and click the &#8220;Start Scanning&#8221; button (both highlighted yellow below).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" width=\"786\" height=\"593\" src=\"https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-3.png\" alt=\"\" class=\"wp-image-606\" style=\"width:411px;height:310px\" srcset=\"https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-3.png 786w, https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-3-300x226.png 300w, https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-3-768x579.png 768w\" sizes=\"(max-width: 786px) 100vw, 786px\" \/><\/figure>\n\n\n\n<p>The toy should appear under &#8220;Connected Devices&#8221;:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"786\" height=\"593\" src=\"https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-4.png\" alt=\"\" class=\"wp-image-607\" style=\"width:409px;height:309px\" srcset=\"https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-4.png 786w, https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-4-300x226.png 300w, https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-4-768x579.png 768w\" sizes=\"(max-width: 786px) 100vw, 786px\" \/><\/figure>\n\n\n\n<p>You can use the sliders to control the toy to verify that the integration is working.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Connecting X-Change Life to Intiface<\/h3>\n\n\n\n<p>Next, let&#8217;s connect the game to Intiface. Intiface needs to be running on the same computer as the game. After loading a save file, navigate to Menu &gt; Game Settings &gt; Configure Sex Toy Interface.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"995\" height=\"751\" src=\"https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-5.png\" alt=\"\" class=\"wp-image-608\" style=\"width:512px;height:386px\" srcset=\"https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-5.png 995w, https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-5-300x226.png 300w, https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-5-768x580.png 768w\" sizes=\"(max-width: 995px) 100vw, 995px\" \/><\/figure>\n\n\n\n<p>Leave the Intiface URI as is. &#8220;127.0.0.1&#8221; means that Intiface is running on the same computer as the game, &#8220;12345&#8221; is the default port Intiface uses (also visible in the Intiface Central application).<\/p>\n\n\n\n<p>Press &#8220;Connect&#8221; and the toy you connected to Intiface should show up:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"995\" height=\"743\" src=\"https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-6.png\" alt=\"\" class=\"wp-image-609\" style=\"width:503px;height:376px\" srcset=\"https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-6.png 995w, https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-6-300x224.png 300w, https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-6-768x573.png 768w\" sizes=\"(max-width: 995px) 100vw, 995px\" \/><\/figure>\n\n\n\n<p>Click on the device to select it. Now you can configure the different in-game events that should trigger the toy.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"379\" height=\"151\" src=\"https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-7.png\" alt=\"\" class=\"wp-image-610\" style=\"width:224px;height:89px\" srcset=\"https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-7.png 379w, https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-7-300x120.png 300w\" sizes=\"(max-width: 379px) 100vw, 379px\" \/><\/figure>\n\n\n\n<p>The settings are explained well in-game so I won&#8217;t go over them all. Let&#8217;s take a quick look at the Quick Time Game Interaction Settings.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"995\" height=\"743\" src=\"https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-8.png\" alt=\"\" class=\"wp-image-611\" style=\"width:509px;height:380px\" srcset=\"https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-8.png 995w, https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-8-300x224.png 300w, https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-8-768x573.png 768w\" sizes=\"(max-width: 995px) 100vw, 995px\" \/><\/figure>\n\n\n\n<p>You can see a dropdown where you can configure how the vibration strength should be calculated. Let&#8217;s set that to &#8220;More Intense at High Combo&#8221;. You also need to click &#8220;Toggle Vibrator&#8221; in order to link the vibration function of the toy to this game action.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"995\" height=\"743\" src=\"https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-10.png\" alt=\"\" class=\"wp-image-613\" style=\"width:507px;height:378px\" srcset=\"https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-10.png 995w, https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-10-300x224.png 300w, https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-10-768x573.png 768w\" sizes=\"(max-width: 995px) 100vw, 995px\" \/><\/figure>\n\n\n\n<p>That&#8217;s it! Now, when you get a high combo when playing the minigame e.g. for giving a blow job, your connected sex toy will vibrate stronger and stronger as you get a better combo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Notes on reconnecting<\/h3>\n\n\n\n<p>As of game version 0.18b, the connection to Intiface should survive when loading and saving. This was problematic in prior versions.<\/p>\n\n\n\n<p>When opening the game file (no matter if it&#8217;s an existing save file or a new one), you must reconnect to intiface using the steps above, <strong>and select the device you want to use by clicking on it<\/strong>. It should not be necessary to configure all the individual game settings, but you must select the device.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">E-Stim<\/h2>\n\n\n\n<p><strong>E-Stim can be dangerous and we are not liable for any injury or damage for any reason, including software bugs. Never attach electrodes above the waist, and never remove electrodes while the device is in operation.<\/strong><\/p>\n\n\n\n<p>X-Change Life has experimental support in <a href=\"https:\/\/gitgud.io\/xchange-life\/xchange-life\/-\/merge_requests\/227\">a merge request<\/a> for e-stim using the DG-Lab Coyote power box. As Intiface does not support e-stim devices, devices are instead connected through <a href=\"https:\/\/github.com\/salaink\/tomcontrol\">tomcontrol<\/a>, my (salad&#8217;s) toy control software and BPIO proxy.<\/p>\n\n\n\n<p>Install and run tomcontrol as described on the project page. Start the BPIO server, connect the e-stim power box, and calibrate the shock values as instructed. <\/p>\n\n\n\n<p>Now you can connect the game. <strong>Change the port of the Intiface URI from 12345 to 12350<\/strong> so that the game connects to tomcontrol instead of Intiface. After connecting, the screen should look something like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"812\" src=\"https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-11-1024x812.png\" alt=\"\" class=\"wp-image-616\" style=\"width:497px;height:394px\" srcset=\"https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-11-1024x812.png 1024w, https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-11-300x238.png 300w, https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-11-768x609.png 768w, https:\/\/x-change.life\/wiki\/wp-content\/uploads\/2023\/10\/image-11.png 1051w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>If the menu says &#8220;No E-Stim device detected.&#8221;, then no e-stim device is available. Make sure you are connected to tomcontrol and not Intiface, and that the e-stim device is properly connected to tomcontrol.<\/p>\n\n\n\n<p>Click &#8220;Enable E-Stim&#8221;. There should now be a button &#8220;Shock&#8221;. This will send a short shock you can use to verify everything works, at 50% of the power level calibrated in tomcontrol.<\/p>\n\n\n\n<p>At time of writing, the only implemented in-game shock is on masculinity loss.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>X-Change Life offers integration with real-world sex toys through the &#8220;buttplug intimate device control standard&#8221;, usually with the Intiface software. Vibration control with Intiface As X-Change Life runs in the browser, it cannot communicate directly with a sex toy. The game communicates through Intiface Central running on the same computer. Intiface then communicates with the [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","meta":[],"doc_category":[8],"doc_tag":[],"_links":{"self":[{"href":"https:\/\/x-change.life\/wiki\/wp-json\/wp\/v2\/docs\/601"}],"collection":[{"href":"https:\/\/x-change.life\/wiki\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/x-change.life\/wiki\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/x-change.life\/wiki\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/x-change.life\/wiki\/wp-json\/wp\/v2\/comments?post=601"}],"version-history":[{"count":3,"href":"https:\/\/x-change.life\/wiki\/wp-json\/wp\/v2\/docs\/601\/revisions"}],"predecessor-version":[{"id":1575,"href":"https:\/\/x-change.life\/wiki\/wp-json\/wp\/v2\/docs\/601\/revisions\/1575"}],"wp:attachment":[{"href":"https:\/\/x-change.life\/wiki\/wp-json\/wp\/v2\/media?parent=601"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/x-change.life\/wiki\/wp-json\/wp\/v2\/doc_category?post=601"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/x-change.life\/wiki\/wp-json\/wp\/v2\/doc_tag?post=601"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}