A game stay on "Installing" in Steam, but nothing happens

If you just licensed a game, but it stays on “Installing” inside Steam, you are experiencing an issue that started with the Steam’s update to their new interface. To sort it out: Go to Steam – Settings Go to “Web Browser” menu and click the Cache and Cookies: Go to Downloads – Click the CLEAR DOWNLOAD CACHE button You will be logged out of steam. Please login and try to download and install the game. This also fixes various issues with steam like games not showing up properly, games not loading etc.

Reading Survey Data Through API

 To programmatically read the Survey data collected by SynthesisVR, please follow the steps: 1. Login into SynthesisVR with your administrator account and navigate to:  2. Click on the API & Webhooks tab and then click on the + sign in the top right: Make sure the Survey permission is assigned.If the “Strict Access” option is enabled, you will be able to access the collected data ONLY from an IP address associated with your location. 3. Prepare the following URL: https://api.synthesisvr.com/data/survey/<API_KEY>/<START_DATE>/<RATINGS> Example: https://api.synthesisvr.com/data/survey/11111111-1111-1111-1111-111111111111/2019-06-01/4,5 Upon refreshing the Widgets page, you’ll be able to locate your API key: START_DATE — use the YYYY-MM-DD format. The results you’ll get would be related only for surveys filled from the given data onwardRATINGS — comma-separated list of the rating results you would like to receive. This allows filtering out the negative ratings.  Extracting Survey data based on date:. Prepare the following URL: https://api.synthesisvr.com/data/survey/bydate/<API_KEY>/<START_DATE>/<RANGE> Example: https://api.synthesisvr.com/data/survey/bydate/11111111-1111-1111-1111-111111111111/2019-06-01/1%20year

2D Menu Localization

The 2D menu supports different localizations and switching between them on the fly. To get that, you need to use the English locale as a base: { “en”: { “title”: “English”, “phrases”: { “PIN”: “PIN”, “Home”: “Home”, “Time”: “Time”, “Close”: “Close”, “Email”: “Email”, “Login”: “Login”, “Balance”: “Balance”, “Minutes”: “Minutes”, “Play Now”: “Play Now”, “Tutorial”: “Tutorial”, “Wrong PIN”: “Wrong PIN”, “protected”: “protected”, “Get ready!”: “Get ready!”, “Voice Chat”: “Voice Chat”, “Add balance”: “Add balance”, “Request Help”: “Request Help”, “Start Session”: “Start Session”, “Use my balance”: “Use my balance”, “Charge My Credit-Card”: “Charge My Credit-Card”, “Approve a credit-card charge of”: “Approve a credit-card charge of” } } } Duplicate the “en” part, change it to any other language code and translate the text on the right. As an example, if you want to have both English and Bulgarian, here is what your locale will look like: Copy the final JSON text and save it under:

SynthesisVR – Version 3.12 Changelog

Web Administration: New: Google Calendar support New: Checkfront support – https://synthesisvr.com/knowledge-base/checkfront-integration/ New: MailChimp support – https://synthesisvr.com/knowledge-base/mailchimp-integration/ New: “Licenses” tab under the game popup from the “Your Games” page. You now could hide games from the Access Point 3.12.0: SynthesisVR now tracks the HMD idle state and auto removes the time from the commercial use Project CARS Pro – leaderboard support The log file size is altered at 30MB Bugfix: mp4 trailers could be unnecessarily cached for removed games 3.11 Bugfix: some keys from the virtual keyboard results in wrong character New: local options to disable the game start and session launch options – https://synthesisvr.com/knowledge-base/disable-the-session-start-option-from-access-point/ Improved “Auto Pause” support Improved “Mouse Reprojection” position in the VR Mirror Window Improved mouse scrolling in the 2D VR Launcher New: Under the “Content Events”, it is now possible to hide games available for installation. The installation option can be restored through “Your Games” web administration page Improved scrolling in the 2D VR Launcher Increased log level for the Voice Chat application Access Point 3.12.1: Bugfix: if a game delivered through the CDN has an update and the update has a change in the name of the primary executable file, the game will disappear from the list of installed games (until updated) Bugfix: SteamVR loses information about the full path of the currently running game. This causes DRM failure on the Synthesis side. The authorization flow is optimized. Added few more visual touches to the V4 launcher Access Point 3.12.2: Bugfix: keyboard may lag when SteamVR is not running Bugfix: controllers battery and charge status may not show up under “Your Arcade” New: you can set default Chaperone profile through the Chaperones Manager OpenVR updated to support the SteamVR 1.8.20 changes Improved detection for SteamVR false processes – sometimes causing the game not ending at the end of the session Access Point 3.12.3: Hotfix Access Point 3.12.4: PCPro license related optimizations Access Point 3.12.5: Addressed a case of double Refresh upon ending a session On HMD Idle state, any running game will get muted and will be unmuted upon shaking the HMD New precise announcement settings through the localmanifest.json file:  “customAnnouncementInSeconds”: {“30”: “Custom Message 30 seconds before the session end” },   Access Point 3.12.6: A new localmanifest.json setting that would automatically mute any running game if the HMD goes idle: “hmdIdleMute”: true, Added support for group installation of CDN delivered games. This makes sense in situations like the newly released educational bundles (containing 40+ experiences) Use localmanifest.json to disable the Synthesis Project CARS Pro leaderboard tracking: “nopcpleaderboard”: 1, Added API functionalities for setting local, session-based parameters. Can be used to set Synthesis Engine parameters http://localhost:8080/control/setKeyVal/:key/:value Access Point 3.12.7: Improvements related to the Oculus support Access Point 3.12.8: Custom SteamVR Deployment – https://synthesisvr.com/knowledge-base/install-steamvr-off-steam/ VR Server Mode 3.12.0: Bugfix: a session with 12+ stations may not start properly If the Server Mode is disconnected (arcade is offline) it will retry the connection 30 times and then give up FreeSWITCH updated from 1.9.0 to 1.10.1

CheckFront Integration

In the regular case, all your CheckFront (CF) categories will be set as different “Experience Types” under SynthesisVR (SVR). If your CF categories are “Room Scale VR” and “Racing Simulators”, those would be represented as “Immersive” and “Racing Rigs” experience types under SVR. Your CF item’s allocation should be set as “per minute” (under the Attributes settings on the CF’s item edit page). The same durations should be configured under the SVR’s “Business Rules”. The SKU for all your CF items must match to the following format: svr-s-<N>-<NN>-<SOME_TEXT> where <N> = experience type <NN> = duration (in minutes or “N” for automated calculation) (optional) <SOME_TEXT> – internal session comment As an example, if your item is selling 20 minutes of the Immersive experience type, the SKU should be: svr-s-1-20 If you are selling 45 minutes of Premium (experience type id 6) VR: svr-s-6-45 If you are selling 35 minutes of Premium (experience type id 6), but 35 minutes is defined under Checkfront, but is not defined as a duration under Synthesis: svr-s-6-N If you would like to add a comment as well: svr-s-6-N-some_internal_comment You have to set up a new Webhook under CF. To do that: within your CF account, go to the “Manage” menu from the navigation bar and select the “Developer” option switch to the “Webhooks” section and click on “Add Webhook” from the sidebar under your SVR administration, create a new booking widget and copy the public key (https://synthesisvr.com/knowledge-base/booking-widget-setup/ – you can safely ignore all the SVR Widget settings information — you only need to create a new record) Refresh the SVR widgets page, click on the “Advanced” button and copy the public key (it looks like this: 00000000-0000-5769-b68e-000000000000) Construct the following URI (don’t forget to use your actual public key instead): https://api.synthesisvr.com/checkfront/00000000-0000-5769-b68e-000000000000/event Place the newly constructed URI as “Notification URL” on the CF’s Webhook settings Set the Webhook Event Type to “Booking Status Change“ On the “Booking Status” setting, enable all options Keep the “Content-Type” as “JSON“ Optionally, you can link SVR with MailChimp (https://synthesisvr.com/knowledge-base/mailchimp-integration/) and Google Calendar.

MailChimp Integration

For marketing purposes and ease of use, you can link your Synthesis customers directly to your MailChimp list. To do that, you need to set 3 Synthesis settings: MailChimp API Key — obtained from your MailChimp account (instructions below) Add customers to MailChimp Audience ID — obtained from your MailChimp account (instructions below) MailChimp Import Conditions — you can add either everyone or filter the MailChimp integration only to customers who signed the waiver Step 1 Step 2   How to find your MailChimp Audience ID: Step 1 Step 2 Step 3     How to find your MailChimp API Key: Step 1 Step 2 Step 3

Reservations Page Overview

SEARCH: The Search section allows you to narrow down your search by changing the date, choosing 1 day, 1 week, or 1 month. If you have multiple arcades, using the drop down menu at the top allows you to switch between your arcades. SEARCH BY LABEL: If you use tags/labels in your sessions, this is where you would filter them. Once you click on a label, only sessions with this particular label will be shown. OTHER FILTERS: In this section clicking on the View All Upcoming Reservations will show all upcoming booked sessions. FILTER BY EXPERIENCE TYPE: When clicking on a session type in this section, only sessions of that type will be shown for the time frame selected in the Search section. Note that you can click multiple Experience Types and you will see all sessions for the types selected. RESERVATIONS: This section will show all your sessions in the range chosen in the Search section. Note that these are sorted from most recent to the oldest. The first column shows if a session has been paid for (green check) or not paid for (red x) as well as if it’s been used (green check) or unused (red x). The second column will show if it’s an Ended Session or if it’s an upcoming Reservation. Clicking on one of these will bring up the session details allowing you to change certain things about the session (including launching the session from there). If the session has not been used, click on the time will allow you to change the time/date. Clicking on the customer name (if one is attached) will allow you to access all customer information that would normally be found from the Customers section. DISK ICON: If you click on the red disk icon, you will be prompted to download an xls file of the reservations showing in this filter. GOODS: If you sell goods through SynthesisVR, then the history of sold goods will be shown here (again based on the search criteria in the Search section).

Synthesis VR API – Local API

The local API is a special URL that runs on every of your VR stations and can be used for building third-party services and functionalities. The API URL is: http://localhost:8080/control/<API_COMMAND>   Commands: Command Description status Provides a way to check the if SynthesisVR is running well. It should contain “status”:1 in the response status/hmd Represents if the HMD is currently connected to SteamVR. Returns true or false status/controllers Returns the status of all connected controllers – their battery level, if they are currently charging and if they are wireless controllers status/hmdreboot Stops SteamVR, awaits for 15 seconds and starts SteamVR idleplayback/(true|false) Enables/Disables the Idle Playback functionality  

Webhooks

What is Webhook? Webhooks are an incredibly useful and resource-light way to implement event reactions. Webhooks provide a mechanism whereby a server-side application can notify a client-side application when a new event (that the client-side application might be interested in) has occurred on the server. Webhooks are also sometimes referred to as “Reverse APIs”. In APIs, the client-side application calls (consumes) the server-side application. Whereas, in the case of webhooks it is the server-side that calls (consumes) the webhook (the end-point URL provided by the client-side application), i.e. it is the server-side application that calls the client-side application. Webhooks operate on the concept of “event reaction” (don’t call me, I’ll call you if I have something new), and thus avoids the need for constant polling of the server-side application by the client-side application. Thus, rather than the client-side application constantly polling the server-side application to check for new events, the server-side application calls the client-side application (by invoking a client provided webhook URL) anytime the server-side has something new to report to the client.   Webhooks and SynthesisVR The webhooks support is the only allowed way to receive events from Synthesis “as they happen”. The Webhook configuration can be found under: Administration >> Advanced Settings –> the “Online & Email Settings” dropdown >> Web Widgets & API –> the “API & Webhooks” tab. All events are HTTP POSTed to the related webhook URL. The URL must start either with http:// or https:// (preferred). Your webhook handler has to respond within 2 seconds and the response is ignored by Synthesis. Synthesis won’t attempt resending the webhook if your webhook endpoint isn’t reachable. All webhook events consist of JSON data. One HTTP POST message may contain an array of multiple webhooks.   JSON SCHEMES:   SESSION WEBHOOK uuid — the Synthesis session id. It can be used for obtaining more information through the sessions API (https://synthesisvr.com/knowledge-base/reading-session-data-through-api/ — use the uuid: search option) action — possible values: create – upon creation of the session delete – upon removal of the session location — contains your location title. If you need to distinguish between multiple locations, you better configure unique webhook URLs rather than rely on the location title. It is included just your webhook reading experience more pleasant 🙂 stations — provides the number of stations in session customerid — the ID of your customer. The full customer profile can be fetched through the customers API (https://synthesisvr.com/knowledge-base/reading-customers-data-through-api/ — use the id value as a search parameter)   Examples: [{“uuid”: “41509791-3de8-5bb9-b4fc-a9753da95aad”, “action”: “create”, “location”: “Kamen Test”, “stations”: 1, “customerid”: 7685}] [{“uuid”: “41509791-3de8-5bb9-b4fc-a9753da95aad”, “action”: “delete”, “location”: “Kamen Test”, “stations”: 1, “customerid”: 7685}]   More webhook options will come as the need of them emerge. If you have any specific request. please let us know: info@synthesisvr.com