VRHandsFrame Mods and User Extension Specification (1.0.0)
You can use some external API by installing official mods on the Steam Workshop.
Please obtain your own authentication information such as API key.
- For Image Recognition
Default Supported APIs (1.0.0): - Google Cloud Vision (DOCUMENT_TEXT_DETECTION) - Microsoft Azure AI Vision (Read API) - *OpenAI Vision Sample (gpt4o-mini) * As an example of user extensions
- For Translation
- TranslationBaseMod: https://steamcommunity.com/sharedfiles/filedetails/?id=3393879278
Default Supported APIs (1.0.0): - DeepL API - Microsoft Azure AI Translator - *Google App Script Sample (VRHandsFrame v1 compatible) - *LibreTranslate * As an example of user extensions
When you install the mod, an item will appear at the bottom of the sidebar on the settings screen.
Turn the slide bar ON to use Mods instead of built-in functions.
If the Mods item does not appear, please restart VRHandsFrame or Steam client.
If you want to use an API that is not provided by the official mods, please edit user_extension.json
file.user_extension.json
file is a file that contains the information of the user mod.
It is used to define API URL endpoint, request/response params, and other information.
When you install a mod from the Steam workshop,
a sample "user_extension.json" file is generated in the following directory on application startup:
- For Image Recognition
../SteamLibrary/steamapp/common/VRHandsFrame/Mods/VisionBaseMod/user_extension.json
- For Translation
../SteamLibrary/steamapp/common/VRHandsFrame/Mods/TranslationBaseMod/user_extension.json
Sample definitions are provided to allow the use of some APIs in advance.
- Please comply with the VRHandsFrame Software License Agreement.
https://store.steampowered.com//eula/2324090_eula_0 - Do not use in a way that steals other user's data.
- Do not use for commercial advertising of any hosting services (such as selling API keys or subscriptions).
- When using an user extension created by someone else, be careful to ensure that no suspicious URLs are set.
- VRHandsFrame App developer (Eureka Works) will not store or view any user's data when using both mods of image recognition and translation.
- Please pay attention to the terms of use and privacy policy of each API service regarding data handling.
description required | string Mod name |
version required | string Mod version |
required | Array of ExtensionObject (object) >= 0 items User extension definitions |
{- "description": "Vision User Extension",
- "version": "1.0.0",
- "extensions": [
- {
- "name": "OpenAI Vision Sample (gpt-4o-mini)",
- "key": {
- "type": "bearer",
- "value": ""
}, - "headers": {
- "Content-Type": "application/json"
}, - "request": [
- {
- "type": "json",
- "params": {
- "model": "gpt-4o-mini",
- "messages": [
- {
- "role": "user",
- "content": [
- {
- "type": "text",
- "text": "What is in this image?"
}, - {
- "type": "image_url",
- "image_url": {
- "url": "data:image/png;base64,$image_data"
}
}
]
}
], - "max_tokens": 1024
}
}
], - "response": {
- "type": "json",
- "jsonKey": "choices[0].message.content"
}
}
]
}
name required | string Extension name
|
url required | string Destination URL for API requests |
required | Key (object) Authentication information that serves as the key for API requests.
|
object Optional HTTP headers for API requests | |
required | Array of APIRequestObject (object) non-empty Required parameters for API requests
|
required | APIResponseObject (object) Expected parameters for API responses |
{- "name": "OpenAI Vision Sample (gpt-4o-mini)",
- "key": {
- "type": "bearer",
- "value": ""
}, - "headers": {
- "Content-Type": "application/json"
}, - "request": [
- {
- "type": "json",
- "params": {
- "model": "gpt-4o-mini",
- "messages": [
- {
- "role": "user",
- "content": [
- {
- "type": "text",
- "text": "What is in this image?"
}, - {
- "type": "image_url",
- "image_url": {
- "url": "data:image/png;base64,$image_data"
}
}
]
}
], - "max_tokens": 1024
}
}
], - "response": {
- "type": "json",
- "jsonKey": "choices[0].message.content"
}
}
type required | string Enum: "json" "form" "query" Parameter type
The query parameter object can be combined with JSON or form data. |
params required | object API request parameters Set the parameters according to the specifications of the API you want to use.
|
{- "type": "json",
- "params": {
- "image": "$image_data"
}
}
type required | string Value: "json" |
jsonKey required | string Json Key that stores the text information you want to receive
|
{- "type": "json",
- "jsonKey": "choices[0].message.content"
}