How screamycat/openplay works
OpenPlay is a cross-platform desktop game launcher and library manager. A player browses or imports a unified collection, enriches it with store and community metadata, then launches games or manages achievements, emulation, backups, sync, and customization. The React interface communicates with a Rust/Tauri backend; the backend coordinates scanning, persistence, metadata, and runtime features. The README documents several capabilities whose individual implementations were not sampled, so those links are shown only where documented, without inferring internal call chains.
Main entry points: lib.rs Tauri commands · App.tsx Application shell · providers.rs Store scanners · mod.rs Game database
Components 23
Player interface
- Application shell
src/App.tsx - Library views
src/components/GameDetails.tsx - Library manager
src/components/LibraryManagerModal.tsx - Achievement hub
src/components/AchievementHunterHub.tsx
Library and metadata
- Tauri commands
src-tauri/src/lib.rs - Store scanners
src-tauri/src/scanner/providers.rs - Steam scanner
src-tauri/src/scanner/steam.rs - Epic scanner
src-tauri/src/scanner/epic.rs - Playnite importer
src-tauri/src/scanner/playnite.rs - Local scanner
src-tauri/src/scanner/local.rs - Metadata providers
src-tauri/src/metadata - Game database
src-tauri/src/db/mod.rs
Play and emulation
- Game launcher
src-tauri/src/launcher/mod.rs - Emulator management
src-tauri/src/emulator/mod.rs
Progress and portability
- Achievement data
src-tauri/src/scanner/providers.rs - Cloud sync
src-tauri/src/cloud_sync/mod.rs - Backup tools
src/components/library/OpenPlayBackupTab.tsx
Customization and extensions
- Theme manager
src/components/ThemesManagerModal.tsx - Theme engine
src/utils/themeEngine.ts - Theme services
src-tauri/src/themes/mod.rs - Plugin manager
src/components/PluginsManagerModal.tsx - Plugin runtime
src-tauri/src/plugins/mod.rs
Other components
- Player
Connections 26
- Player → Application shell: uses
- Application shell → Library views: renders
src/App.tsx - Application shell → Library manager: opens
src/App.tsx - Application shell → Achievement hub: opens
src/App.tsx - Application shell → Tauri commands: invokes commands
src/App.tsx - Library manager → Tauri commands: invokes commands
src/components/LibraryManagerModal.tsx - Tauri commands → Store scanners: coordinates scans
src-tauri/src/lib.rs - Store scanners → Steam scanner: dispatches to
src-tauri/src/scanner/mod.rs - Store scanners → Epic scanner: dispatches to
src-tauri/src/scanner/mod.rs - Store scanners → Playnite importer: uses
src-tauri/src/scanner/providers.rs - Store scanners → Local scanner: dispatches to
src-tauri/src/scanner/mod.rs - Tauri commands → Metadata providers: uses
src-tauri/src/lib.rs - Tauri commands → Game database: reads and writes
src-tauri/src/lib.rs - Tauri commands → Game launcher: dispatches launches
src-tauri/src/lib.rs - Tauri commands → Emulator management: manages emulation
src-tauri/src/lib.rs - Achievement hub → Tauri commands: loads progress
- Tauri commands → Achievement data: collects achievement data
- Tauri commands → Cloud sync: supports device sync
src-tauri/src/lib.rs - Cloud sync → Game database: reads and writes
src-tauri/src/cloud_sync/mod.rs - Library manager → Backup tools: manages backups
- Theme manager → Tauri commands: invokes theme commands
src/components/ThemesManagerModal.tsx - Theme manager → Theme engine: applies customization
src/components/ThemesManagerModal.tsx - Theme engine → Theme services: loads theme assets
- Theme services → Game database: persists themes
src-tauri/src/themes/mod.rs - Plugin manager → Plugin runtime: manages plugins
- Plugin runtime → Game database: uses persistence
src-tauri/src/plugins/mod.rs