Game Launcher Detector

A single batch file that detects every game on your Windows machine — Steam library, Roblox player, Minecraft install, Epic Games launcher — and shows you how to combine them into an e# playable game.

Supported launchers

Steam

Reads steamapps/libraryfolders.vdf and lists every installed game.

Roblox

Detects RobloxPlayerBeta.exe in %LOCALAPPDATA% and reports the version.

Minecraft

Finds .minecraft/launcher_profiles.json and counts the profiles.

Epic Games

Reads Epic's LauncherData.dat and lists the installed titles.

Run it

Download game-launcher-detector.bat, double-click it, and the batch file writes a games.json file you can pass to e#.

Download game-launcher-detector.bat hello.esharp

What the batch file does

When you double-click game-launcher-detector.bat, it runs in three phases:

Phase 1 — Detect Steam
  → Read %PROGRAMFILES(X86)%\Steam\steamapps\libraryfolders.vdf
  → Parse every steamapps/manifest_*.acf file
  → Output: Steam games list + install paths

Phase 2 — Detect Roblox & Minecraft
  → %LOCALAPPDATA%\Roblox\Versions\RobloxPlayerBeta.exe   ← Roblox installed?
  → %APPDATA%\.minecraft\launcher_profiles.json            ← Minecraft installed?
  → Output: Roblox version, Minecraft profiles

Phase 3 — Detect Epic Games
  → %PROGRAMFILES(X86)%\Epic Games\Launcher\Data\Manifests\*.item
  → Output: Epic installed titles

Phase 4 — Write games.json
  → Write a JSON manifest of every detected game to .\games.json
  → Print a copy-paste e# snippet that uses Steam::library().pick(title)

Sample output

API Board — Game Launcher Detector v1.4
========================================

[1/4] Detecting Steam games...
  → C:\Program Files (x86)\Steam\steamapps
    - Portal 2                (appid 620)
    - Stardew Valley          (appid 413150)
    - Hollow Knight           (appid 367520)
    - Cyberpunk 2077          (appid 1091500)
  Found 4 Steam games.

[2/4] Detecting Roblox...
  → C:\Users\gefrus112\AppData\Local\Roblox\Versions\version-abc123\RobloxPlayerBeta.exe
  Roblox installed: version 2.654.321

[3/4] Detecting Minecraft...
  → C:\Users\gefrus112\AppData\Roaming\.minecraft\launcher_profiles.json
  Found 2 Minecraft profiles: "gefrus112", "creative"

[4/4] Detecting Epic Games...
  → C:\ProgramData\Epic\EpicGamesLauncher\Data\Manifests
    - Fortnite                (Namespace: fn)
    - Fall Guys               (Namespace: fg)
  Found 2 Epic Games.

========================================
Writing games.json... done.

Total games detected: 8 (4 Steam · 1 Roblox · 2 Minecraft · 2 Epic)
Pick any of them with e#:

use api_board::Steam;

game! Mashup {
    scenes: [
        Scene::from(Steam::library().pick("Portal 2")),
        Scene::from(Steam::library().pick("Stardew Valley")),
        Scene::from(Steam::library().pick("Hollow Knight"))
            .overlay(position: TopRight, alpha: 0.6),
    ],
}

Combining games & running the test

Once you have games.json, write your .esharp program that picks games by title, then build + run:

# Build the .game bundle
esharp build mashup.esharp

# Run it to test
esharp run mashup.game

# If everything works, you'll see:
✓ Build OK
✓ Runtime launched · 60 fps · 0 errors
✓ Scenes registered: Portal 2, Stardew Valley, Hollow Knight

No administrator rights needed

The detector batch file does not require admin elevation. It only reads files in user-writable locations: %LOCALAPPDATA%, %APPDATA%, and the user's Steam directory. It does not modify any files.