Skip to content

Improve manifest downloads, library refresh, SteamStub ticket handling, and ticket extraction#92

Merged
OpenSteam001 merged 1 commit into
mainfrom
refactor/ipc
Jun 3, 2026
Merged

Improve manifest downloads, library refresh, SteamStub ticket handling, and ticket extraction#92
OpenSteam001 merged 1 commit into
mainfrom
refactor/ipc

Conversation

@OpenSteam001

@OpenSteam001 OpenSteam001 commented Jun 3, 2026

Copy link
Copy Markdown
Owner

Summary

This PR introduces four major improvements across manifest downloading, library state refresh, SteamStub-only game support, and ticket extraction tooling.

Changes

1. Manifest download source update

Manifest downloads now default to:

manifest.opensteamtool.com

This is the official OpenSteamTool manifest endpoint and is used as the default source for manifest downloads.
Attempt to fix #90

2. Library hot refresh and bulk operation fixes

Improved library state handling after:

  • Hot reload
  • Repeated bulk deletion
  • Repeated bulk import

Library status is now refreshed correctly after these operations. Deleted or re-imported entries no longer leave stale/residual state behind, and the UI can correctly reflect the current library status.

3. SteamStub-only game ticket handling

SteamStub-only games no longer require manually configuring AppTicket.

OpenSteamTool can reuse Steam's local ConfigStore ticket and forge the requested AppId through a SteamDRMP off-by-four ticket parsing vulnerability, without injecting into the game process.

This makes SteamStub-only workflows simpler while preserving a no-injection path for supported cases.
Attempt to fix #25

4. Ticket extraction tooling

Added the extract_tickets tool.

The tool dumps the AppTicket and ETicket hex strings required by:

  • setAppTicket
  • setETicket

Usage requirement:

Run extract_tickets on a machine where Steam is running, logged in, and the account owns the target game.
Attempt to fix #88

Notes

  • The manifest default now points to the official OpenSteamTool manifest service.
  • Library refresh behavior has been hardened for repeated hot reload, bulk deletion, and bulk import flows.
  • SteamStub-only games can reuse local Steam ConfigStore ticket data and forge the requested AppId via the SteamDRMP off-by-four ticket parsing path.
  • extract_tickets provides a simpler way to obtain ticket hex strings for owned games.

- Default manifest downloads to manifest.opensteamtool.com
- Fix library status refresh after hot reload, bulk delete, and bulk import
- Support SteamStub-only games by reusing local ConfigStore tickets and forging the requested AppId via SteamDRMP off-by-four parsing
- Add extract_tickets tool for dumping AppTicket and ETicket values
@Temlpe

Temlpe commented Jun 3, 2026

Copy link
Copy Markdown

This version seems to have a small problem. I found that it will not read opensteamtool.toml correctly. I set the pattern mirror to mirror = "https://22.guyunsq.com/beihe/steam-monitor@pattern" in opensteamtool.toml, but I found from the log that the pattern mirror called the default https://raw.githubusercontent.com/the currently officially released v1.4.6-fix version does not have this problem.

@OpenSteam001

OpenSteam001 commented Jun 3, 2026

Copy link
Copy Markdown
Owner Author

I set the pattern mirror to mirror = "https://22.guyunsq.com/beihe/steam-monitor@pattern" in opensteamtool.toml
Thanks for the report.

This is caused by a config format change in the new version. It no longer uses the old mirror option.

Please update your opensteamtool.toml to use:

[remote]
url_template = "https://22.guyunsq.com/beihe/steam-monitor@{channel}/{component}/{sha256}.toml"

The currently released v1.4.6-fix still supports the old behavior, but the new build uses [remote].url_template instead.

@OpenSteam001 OpenSteam001 merged commit 90294e0 into main Jun 3, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] INVALID CONTENT CONFIGURATION [DOCS] how to get appticket Add API endpoint for automatic AppTicket retrieval

2 participants