VRHandsFrame Mods and User Extension Specification (1.0.1)
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.1): - 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.1): - 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, there are two ways to do so:
- Add new json files that describe
Extension Object
. (recommended) - Edit official user_extension.json file
Extension Object
is used to define API URL endpoint, request/response params, and other information for user extensions.
The user_extension.json file is a file that contains some example Extension Object
.
When you install a mod from the Steam workshop, sample user_extension.json file is generated in the following directory on application startup:
- For Image Recognition
../SteamLibrary/steamapp/common/VRHandsFrame/Mods/VisionBaseMod/
- For Translation
../SteamLibrary/steamapp/common/VRHandsFrame/Mods/TranslationBaseMod/
At this location, add your json files that describe Extension Object
.
You can give any file name, but the value of the "name" key in the Extension Object
must be unique by each mod.
- 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.1",
- "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"
}