Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
denialtek committed Aug 30, 2024
0 parents commit bc3d9f1
Show file tree
Hide file tree
Showing 199 changed files with 7,209 additions and 0 deletions.
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
node_modules
.temp
.cache
.firebase
.firebaserc
docs/.vuepress/dist/
Binary file added README.md
Binary file not shown.
107 changes: 107 additions & 0 deletions docs/.vuepress/config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
import { viteBundler } from '@vuepress/bundler-vite'
import { defaultTheme } from '@vuepress/theme-default'
import { defineUserConfig } from 'vuepress'
import markdownPlugin from 'markdown-it-imsize'
import { containerPlugin } from '@vuepress/plugin-container'
import fullTextSearchPlugin from 'vuepress-plugin-full-text-search2'
export default defineUserConfig({
lang: 'en-US',
title: 'XToys Guide',
description: 'Guide on how to use the XToys.app sex toy control website',

extendsMarkdown: md => {
md.use(markdownPlugin)
},

plugins: [
fullTextSearchPlugin(),
containerPlugin({
type: 'image-grid',
before: (info) => '<div class="image-grid">',
after: (info) => '</div>'
})
],

bundler: viteBundler(),

theme: defaultTheme({
lastUpdated: false,
contributors: false,
logo: 'logo.png',
sidebarDepth: 1,
sidebar: [
{
text: 'Introduction',
children: [
'/',
'/introduction/basic-functionality',
'/introduction/tools',
'/introduction/compatibility'
]
},
{
text: 'Getting Started',
children: [
'/getting-started/first-steps',
'/getting-started/using-toys',
'/getting-started/layout-basics',
'/getting-started/using-patterns',
'/getting-started/using-scripts',
'/getting-started/using-tools',
'/getting-started/using-teases',
'/getting-started/online-play'
]
},
{
text: 'Pattern Creation',
children: [
'/pattern-creation/draw-pattern',
'/pattern-creation/basic-pattern',
'/pattern-creation/script-pattern',
'/pattern-creation/funscript-pattern',
'/pattern-creation/audio-pattern'
]
},
{
text: 'Script Creation',
children: [
'/script-creation/overview',
'/script-creation/definitions',
'/script-creation/expressions',
'/script-creation/javascript',
{
text: 'Examples',
children: [
'/script-creation/example-1',
'/script-creation/example-2',
'/script-creation/example-3',
'/script-creation/example-4'
]
}
]
},
{
text: 'Tease Creation',
children: [
'/tease-creation/overview',
]
},
{
text: 'Tools',
children: [
'/tools/webpage-monitor',
'/tools/process-monitor',
'/tools/discord-bot',
'/tools/webhook'
]
},
{
text: 'Support',
children: [
'/support/faq',
'/support/contact'
]
}
]
})
})
Binary file added docs/.vuepress/public/favicon.ico
Binary file not shown.
Binary file added docs/.vuepress/public/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
28 changes: 28 additions & 0 deletions docs/.vuepress/styles/index.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
.page img {
border: 1px solid #bbb;
}

.image-grid p {
background-color: var(--c-tip-bg);
padding: 8px;
}

:root {
// brand colors
--c-brand: #a002e3;
--c-brand-light: #ba68c8;
--search-result-width: 100% !important;
}

.suggestions {
position: fixed !important;
left: 0vw !important;
top: calc(var(--navbar-line-height) + 7px) !important;
max-width: 100% !important;
}

html.dark {
// brand colors
--c-brand: #a002e3;
--c-brand-light: #ba68c8;
}
12 changes: 12 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
lang: en-US
title: What is XToys
description:
---
# What is XToys

XToys is a cross platform sex toy control platform. With it you can connect, control, and automate any of your smart sex toys.

If you'd like to learn how to use XToys start with the [First Steps](/getting-started/first-steps.html) page.

![Introduction](images/introduction.png)
59 changes: 59 additions & 0 deletions docs/getting-started/first-steps.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
---
lang: en-US
title: First Steps
description:
---

# First Steps

Before connecting your sex toys and using XToys there's a few things you may want to do first.

## Sign Up

Under the left side slideout menu click the **Create Account** button and create your XToys account.

![Sign Up Button](../images/sign-up-button.png)

## Download the App

If using XToys on mobile you can download the Android or iOS app. In general the apps function much better than just using the site in your web browser (increased toy compatibility and handling of toy connectivity while the screen is off, some tools only work with the app and not the website, etc).

### Android

To install the Android app click the **Android Full Version** button on the XToys homepage or click [here](https://xtoys.app/XToys.apk) to directly download the APK.

::: danger Android Compatibility
Note that the app only works on Android Oreo (8.0) or later.
:::

To install the Android app:

1. Enable App Installations from Unknown Sources (ie. allow apps to be installed from outside of the Play Store). To do so search your Android Settings for 'unknown sources'.
2. Download the APK, open it, and then click Install.

::: tip XToys Lite
There is a version of XToys in the Play Store called XToys Lite. However it only supports online play, toy connectivity, and patterns. It does not support any tools, scripts, or teases. We highly recommend using the full version of XToys.
:::

### iOS

iOS unfortunately does not easily support installing apps from outside of the App Store. There are two options to install XToys on your iPhone.

#### On a Jailbroken iPhone
If you have a jailbroken iPhone install the XToys.ipa file by using AppSync Unified (available via Cydia).

#### On a Non Jailbroken iPhone
If you do not have a jailbroken iPhone using AltStore to install the XToys.ipa file:

1. Download and install AltServer onto your macOS or Windows computer.
2. Connect your phone, launch AltServer, and select Install AltStore.
3. Open AltStore on your phone, go to My Apps, click the + button, and select the XToys.ipa file.

::: tip
Note that AltServer must be left running on your computer and your phone will use it to automatically re-sign the XToys app with a valid Apple certificate once a week to keep it running on your phone.
:::

## Guided Tour
To get a quick overview of basic controls try clicking the **Basic Toy Controls** button on the XToys homepage. It will click through the basic functionality and explain things as it goes.

![Guided Tour Button](../images/guided-tour-button.png)
44 changes: 44 additions & 0 deletions docs/getting-started/layout-basics.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
lang: en-US
title: Layout Basics
description:
---

# Layout Basics

## Dashboard vs Basic Layout

XToys has two different layout modes:

* **Basic** - A single block takes up the majority of the screen and other blocks are minimized at the bottom.
* **Dashboard** - Each block is displayed in a grid and can be freely dragged around and re-sized.

By default Desktop mode is used on a PC, and Basic mode is used on a phone.

There are two ways of switching between layouts:

* In the left sidebar select either Dashboard or Basic
* Click the XToys logo in the toolbar

## Dashboard Mode
![Dashboard Mode](../images/dashboard-mode.png)

* The small top left horizontal bars on each block allow you to drag the controls around
* The small bottom right resize on each block allows you to resize the controls (if you're in Dashboard mode)

By default blocks are automatically moved to fill any empty space. To disable this functionality go to the 3 dots and select **Free Layout**.

## Basic Mode
![Basic Mode](../images/basic-mode.png)

* Click the label on any minimized block and select **Show** to display it maximized in a pop-up window. Clicking in any empty space in the block will also maximize it.
* Click the label on any minimized block and select **Set as Primary Block** to make it the new main block.
* Click the label of the primary block and select **Toggle Fullscreen** to make it take up the entire screen (hiding minimized blocks + the top toolbar).

By default the first toy you add will be the primary block. Scripts and Tools will always be minimized by default.

## Saving Layouts

Your current layout (ie. all blocks you've added, their position, and any settings you've set) can be saved so that you can easily restore everything to the same state.

To do so click the three dots and select **Save Layout**. To later restore the layout select **Layouts** from the sidebar and locate your saved layout.
79 changes: 79 additions & 0 deletions docs/getting-started/online-play.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
---
lang: en-US
title: Online Play
description:
---

# Online Play

## Starting a Session

Add any toys and other blocks you want in your session and then click the **globe** button and select **Host Session**.

![Host Session Button](../images/host-session-button.png)

::: warning Limitations
* Teases are not usable in an online session.
* Guests cannot add any blocks themselves. If you want guests to connect their toys make sure you've added their toys to the session.
:::

You will now be presented with a number of configuration options for your session (see [Session Settings](./online-play.md#Session-Settings) below for info). Configure them as desired.

Once you've decided on your settings click **Host Session**. Your online session is now active and you'll be presented with your session code and additional controls.

Share the session code or direct link with people you want to play with. You can also click the QR code button to get a QR code.

![Active Host Dialog](../images/active-host-dialog.png)

## Joining a Session

To join a session you can either:

* Click the link you were given (a link in the format of *https://xtoys.app/session/{sessioncode}*)
* Scan the QR code
* Click the **globe** in the top toolbar, select **Join Session**, and then enter the code you were given

After connecting you may be prompted with information the host would like you to read before playing, and you may need to wait for the host to accept your request to join.

You can then connect your toys or use any controls as usual. Any changes will be synced with everyone connected to the session (ie. if you change a slider everyone will see it change and everyone's toys connected to that block will react).

## Session Settings

Before starting a session there are a number of options you can configure.

![Host Session Dialog](../images/host-session-dialog.png)

* **Session Info** - Enter any info you'd like to display to guests when they connect your session. Optional.
* **Visibility** - Determine's whether your session gets publicly listed at [https://xtoys.app/sessions](https://xtoys.app/sessions)
* **Password Protect** - Allows you to set a password that guests must enter to connect to your session
* **Custom Session Code** - Allows you to create a unique reusable code for your session (requires a Premium membership)
* **Allow Chat** - Will show a chat bar on the right side of your session where you and guests can send chat messages
* **Guest Control** - Allows guests to control any toys/scripts that are in your session
* **Manually Approve Guests** - Prevents guests from connecting to your session until you manually approve them. You will get prompted to approve guests when they try and connect. This will also allow you to kick out guests.

::: tip Toy Connectivity
Note that anyone in the session can connect their toys if a relevant toy block is available. Multiple people can also connect to the same toy block at the same time and thus all be controlled from the same slider.
:::

## Session Controls

While a session is active you can adjust a number of settings.

![Active Host Dialog](../images/active-host-dialog.png)

* **Connections** - From here you can see who is connected to your session, grant them access to the session, remove them from the session, and toggle who is allowed to control the toys.
* **Per Block Permissions** - From here you can limit who in the session can see or control things at a per block level.

## Dashboard Changes

When a session is active there will be a few changes to the main screen.

![Online Session Dashboard](../images/online-session-dashboard.png)

* The globe will be green while the session is active and the number of connected guests will be shown in brackets
* A chat button will be available in the toolbar
* If guests have connected their toys the toy connect button will be blue and the number of guests with their toy connected will be shown in brackets

By default any chat messages will trigger an alert on your phone or a popup in XToys in the browser. To disable this open the chat sidebar and click the notification button.

![Chat](../images/chat.png)
Loading

0 comments on commit bc3d9f1

Please sign in to comment.