enricobuehler d6e9a5b782
CI / build (push) Successful in 1m20s
CI / publish (push) Successful in 46s
ci: skip a version the registry already serves
A version published by hand must not turn the tag's lane red: the registry refuses a second upload of the same version, so the lane asks first and skips.
2026-09-02 11:33:39 +02:00

@punktfunk/plugin-battlenet

Adds your installed Battle.net games — World of Warcraft, Diablo, Overwatch, Call of Duty, Hearthstone and the rest — to a Punktfunk host's library, launching them through the Battle.net client and ending the session when you quit the game.

Windows hosts only. Install it from the host's plugin store (Library → Game sources → Add a source), or:

punktfunk-host plugins add battlenet

What it reads

One file: %ProgramData%\Battle.net\Agent\product.db, the Agent's record of every product it manages. It is machine-wide, so the plugin reads it without any access to your user profile. The file names products by code, not by title, so a built-in table maps the codes to titles and to the launch codes the client accepts. A product the table does not know still appears, named after its install folder and launched with its code as-is.

The Battle.net client itself, the Agent, products that are not installed, and products whose install folder is gone are left out. No cover art is emitted: there is none on disk to read.

Settings

Nothing to configure. If product.db lives somewhere else, set the path in Library → Game sources → Battle.net → Settings:

Field Meaning
productDb Absolute path to the Agent's product.db. Empty means the default above.

Launching

The host starts Battle.net.exe --exec="launch <code>". The client must already be running and signed in: a cold client only opens itself (or its login window) on that first launch, so pick the tile again once it is up. Once the game is running, the host recognizes it by its install folder, so quitting the game ends the streaming session.

Commands

punktfunk-plugin-battlenet detect            # is Battle.net installed on this host?
punktfunk-plugin-battlenet scan --preview    # what WOULD be synced, as JSON (works with no host)
punktfunk-plugin-battlenet uninstall         # drop the games and release the store claim

The kit's parity verb has no baseline here: the host never had a built-in Battle.net scanner.

Development

bun install
bun run typecheck && bun test && bun run build

The framework — store claim, sync engine, __config, CLI verbs, and the capped file readers — lives in @punktfunk/plugin-kit/library. This package is the Battle.net-specific part: read product.db, filter it, map codes to entries.

License

MIT OR Apache-2.0.

S
Description
A Punktfunk plugin that adds your installed Battle.net games as a library source
Readme
58 KiB
Languages
TypeScript 100%