The Steam Achievement Manager lets you manage achievements, stats, and more for any currently supported Steam app.
This project is a fork of the Steam Achievement Manager project with the goal of updating to .NET Core and WPF.
SAM is comprised of five projects.
SAM
and SAM.Manager
are the two application projects that create an executable. SAM
is the executable that will display your Steam library and let you select an app (game) to manage. When the manager is started, it's passed an ID for a Steam app after which it initializes the Steam API client with that AppID just like any game on Steam would. Steam will show you as in-game, record your play time, and you can earn trading cards (if you have drops left).
The reason why there's two executables is because the manager (SAM.Manager
) needs to be in its own process anyways in order to actually manage the achievements and stats. Once a process is registered with the Steam client it's not possible to re-initialize the Client with a different AppID. Steam will also treat you as in-game until that Process and any child Processes have exited.
Both SAM.API
and SAM.Core
are libraries (*.dll
). As its name suggests, SAM.API
contains the native Steam API wrappers. SAM.Core
is referenced by both executable projects (more on these later) and allows them to both use the same types, resources, etc. without having to duplicate code.
%%{init: {"flowchart": {"htmlLabels": false, "width": "100%"}} }%%
flowchart TB
subgraph Applicaitons
S["SAM"]:::app
SM["SAM.Manager"]:::app
end
subgraph Unit Tests
SU["SAM.UnitTests"]:::unitTests
end
SC{{"SAM.Core"}}:::library
SA{{"SAM.API"}}:::library
S --> SC
SM --> SC
SC --> SA
SU --> SC
SU --> SA
classDef app fill:#247FD4,stroke:#bbb,stroke-width:1px,color:#fff
classDef library fill:#D63E48,stroke:#bbb,stroke-width:1px,color:#fff
classDef unitTests fill:#9478F0,stroke:#bbb,stroke-width:1px,color:#fff
Legacy Project | New Project | Description |
---|---|---|
SAM.Picker | SAM | The main executable used to select a game (or app) from your library |
SAM.Game | SAM.Manager | Allows for viewing and editing an app's achievements and stats |
SAM.API | SAM.API | Managed Steam API wrappers |
- | SAM.Core | Common resources used by both SAM and SAM.Manager . |
A special thank you to JetBrains for their continued Support of Open-Source Projects like SAM.
Note
Active SAM contributors are eligible to receieve complimentary licenses [for non-commercial development] for all JetBrains products. For questions regarding eligability please refer to the Open Source FAQ.