Skip to content

Conversation

flavioislima
Copy link
Contributor

@flavioislima flavioislima commented Aug 18, 2025

This is the MVP for the Steam Library on HyperPlay.

For now iit

  • Works on all platforms for Native games only. No integration with Windows Steam on macOS yet.
  • Discover users and it's games.
  • Launch all Steam games on all platforms.
  • For non-installed games, it can trigger a Steam installation.
  • Gets game image from SteamDB.

Limitations

  • For non-installed games to appear in the library, the user might have its user profile and games as public on Steam. Instructions were added for when the setting is enabled.
  • Some games return no Image URL, so it will use a fallback for them.
  • HyperPlay will monitor the Steam process to keep the play button in a playing state, and it cannot close Steam (it reopens when closed with pkill on Mac and Linux, for instance), so it needs to be closed manually to change the button state to the Play state.
  • If Steam is opened and the game is launched from HyperPlay the Play button gets to the original state right away.

For the future

  • Add integration with the Quests and Overlay.
  • Get more info for the games, like descriptions.
  • Implement a way to enable or disable users if multiple were found.
  • Find a way to discover the game process and monitor it to handle the Play state (not sure if possible on all platforms, and especially on Linux Flatpak)

Screenshots

image image image image

Use the following Checklist if you have changed something on the Backend or Frontend:

  • Tested the feature and it's working on a current and clean install.
  • Tested the main App features and they are still working on a current and clean install. (Login, Install, Play, Uninstall, Move games, etc.)
  • Created / Updated Tests (If necessary)
  • Created / Updated documentation (If necessary)

@flavioislima flavioislima changed the title [Feat] Local Steam Library [MVP-Feat] Local Steam Library Aug 18, 2025
@@ -925,7 +926,7 @@ export type OverlayType = 'native' | 'browser' | 'mainWindow'

export interface Reward {
id: number
amount_per_user: number | null
amount_per_user: string | null
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not related but needed to update these after updating the utils package.

@@ -330,7 +330,7 @@ interface HyperPlayAsyncIPCFunctions {
updateActiveWallet: (walletId: number) => Promise<void>
getExternalEligibility: (questId: number) => Promise<{
walletOrEmail: string
amount: number
amount: string
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also not related, but needed to update these after updating the utils package, otherwise TS was complaining.

@flavioislima flavioislima added PR: Ready-For-Review PR is ready to be reviewed by peers and removed PR: WIP labels Aug 18, 2025
Copy link
Contributor

@biliesilva biliesilva left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be good to also change the buttons hierarchy for the install Dialog modal, primary for the first and secondary for the second, as the example below:
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
PR: Ready-For-Review PR is ready to be reviewed by peers
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants