Skip to content

VoidRealityFBT/VoidReality-Installer

Repository files navigation

VoidReality Installer

This is the installer for VoidReality. It sets up the VoidReality desktop app for an end user, or a full developer environment for building it from source, and it can repair or cleanly remove either later.

This is not part of the SlimeVR project. VoidReality is an edited and rebranded build of the SlimeVR server, under the MIT and Apache 2.0 licenses kept in the server repo. It is subject to change. See the disclaimer at the bottom.

How it works

The window is a step wizard: Welcome, License, then a choice of what to do, then the screens for that choice, a Review of exactly what will happen, and a live run that streams each step's output. Nothing is downloaded or changed until you have reviewed your choices and pressed the button.

What it remembers: after a successful run it writes a small record to %LOCALAPPDATA%\VoidReality\.installer-state.json so a later run knows what is installed and where. That is what unlocks Repair and Uninstall, and what lets the installer find a developer setup that lives in a folder you chose.

Dependencies are fetched at install time, per user, with no admin elevation where possible. It prefers winget --scope user; when winget is missing or fails it falls back to a direct per-user download (for example, extracting a Temurin JDK onto your user PATH).

What it does

Install:
Sets up VoidReality. Pick Regular for the everyday app, or Developer to build from source.

  • Regular checks your system, notes any existing SlimeVR settings it will reuse, verifies the destination has room and is writable, installs Java 17 only if it is missing, downloads the release (latest by default, or a version you pick) from the VoidReality-Server or VoidReality-Tracker-ESP GitHub releases, extracts it, registers the SteamVR driver, and optionally adds a desktop shortcut. When it finishes you can launch the app straight away.
  • Developer clones the repositories, moves build.ps1 / run.ps1 / clean.ps1 up to the parent folder, installs the toolchain (JDK, Node, pnpm, and the firmware tools when that is enabled), generates and trusts a self-signed code-signing certificate, signs the three scripts and sets your execution policy to RemoteSigned, then verifies the signed scripts actually run without a bypass.

Repair:
Re-runs the setup over an existing install to replace missing files or fix a broken update. Your settings are kept. Only available once VoidReality is installed.

Uninstall:
Cleanly removes VoidReality. The shared data folder (dev.slimevr.SlimeVR) is left untouched, so your trackers, calibration, and settings survive a later reinstall. Only available once VoidReality is installed.

The tracker firmware option is shown but disabled until the firmware repository is published.

Building and running

The installer is built and run through the same three PowerShell scripts as the rest of VoidReality, which live in the parent folder next to the repos (see Folder layout below). Running the finished .exe needs nothing installed; the requirements here are only for building it.

Requirements

Tool Needed for Where to get it Install (winget)
Node.js (LTS) building the installer app https://nodejs.org winget install OpenJS.NodeJS.LTS
pnpm 10.33 building the installer app (package manager) https://pnpm.io npm install -g pnpm@10.33.0

Running the scripts when they aren't digitally signed

These .ps1 files aren't code-signed, so a default Windows install will refuse to run them with ... cannot be loaded because running scripts is disabled on this system or a security-warning prompt. Pick whichever fixes it for you:

  • One command, no lasting change (recommended):
    powershell -ExecutionPolicy Bypass -File .\build.ps1 installer
  • Whole terminal session (then run scripts normally as .\build.ps1 installer):
    Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
  • Permanently for your user (lets local scripts run from now on; still blocks unsigned scripts downloaded from the internet unless unblocked):
    Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
  • If the scripts came from a downloaded zip and Windows flags them as "from the internet", clear that mark once:
    Get-ChildItem *.ps1 | Unblock-File

Folder layout

The installer sits under the same parent folder as the repos, with the scripts in that parent:

VoidReality\                      <- parent (the scripts live here)
  build.ps1  run.ps1  clean.ps1
  Installer\                      <- this app
  VoidReality-Server\             <- the server + app repo
  VoidReality-Tracker-ESP\        <- the firmware repo (when published)

Build and run commands

Run from the parent folder.

.\build.ps1 installer   # build + package -> Release\VoidReality-Installer.exe (signed)
.\run.ps1 installer     # run the installer in dev mode with hot reload (no repackaging)
.\clean.ps1             # deep clean: removes the installer's node_modules, out, and dist too

build.ps1 installer is what you upload to a GitHub release, next to the server zip. It installs the app's dependencies if needed, builds it with electron-vite, packages the single portable exe with electron-builder, signs it, and copies it into Release\. run.ps1 installer is for working on the installer itself: it launches the live app without repackaging so you can see changes as you make them.

Disclaimer

VoidReality is an edited and rebranded build of the SlimeVR server. It is not produced, endorsed, or supported by the SlimeVR project. The original SlimeVR server is the work of Eiren Rain and the SlimeVR contributors under the MIT and Apache 2.0 licenses kept in the server repo. All credit for the underlying tracking server goes to them. Any problems with this build are not their responsibility. If you want the original, supported software, go to the SlimeVR project.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors