The Stardew Valley Save Manager is a tool for creating and loading backups for Stardew Valley save files on personal GitHub repositories, without the need for providing login details to the app. The idea was to have a centralized place where saves can be stored without managing them manually and locally.
- Independently backup local save files to GitHub, creating a history of save points
- View information about the local save files and the historical save files
- Load save points stored in GitHub to the local save files (a backup of the current files is created before a save point is loaded)
- Authenticate with a personal GitHub account without providing login information to the app (see: Device Flow Authentication)
The app can be downloaded directly from the latest release. Currently, only the win-x64
runtime is supported for this app. Support for macOS and Linux is planned for the future.
For Windows, only Windows 10 and up is supported. The app may work on Windows 7 and 8, but it is not guaranteed.
- .NET 8.0
- Avalonia UI
- FluentAvalonia
- Avalonia.Controls.DataGrid
- CommunityToolkit MVVM
- Microsoft.Extensions.DependencyInjection
- Octokit
The build.ps1
script provides a way to build the project based on the Runtime
, PublishAot
, and PublishSingleFile
parameters. These parameters are optional and the build.ps1
script can be run with the default values.
- Open PowerShell
git clone https://github.com/parthlr/StardewValleyManager.git
cd StardewValleyManager
.\build.ps1 -Runtime <runtime> -PublishAot <true/false> -PublishSingleFile <true/false>
Runtime
: The target runtime platform. Default:win-x64
PublishAot
: Publish the app as Native AOT. Default:false
PublishSingleFile
: Builds all application-dependent files into one binary. Default:false
At the time, the Octokit
library for C# .NET does not support Native AOT. I am working on trying to find a workaround for this.
Create a GitHub account here. This is the account that will be used to backup local saves. On the app, navigate to the settings page through Settings > GitHub > Account Setup > Setup Account
.
A dialog window should appear with instructions to authenticate your GitHub account. Click the Generate
button to generate a login code to authenticate your account. Once the code appears, go to https://github.com/device to enter in your code. You may be asked by GitHub to sign in to your account. Please note that the app will not directly ask for your login details. It will open a webpage to the official GitHub website to complete your account authentication. The app will also automatically create a repository for you to store your saves and can be configured to use a custom one in the GitHub settings.
Once you follow the prompted steps on the GitHub website, the dialog window on the app should display a success notification.
The main page of the app will automatically display farms that are saved locally. Clicking on one will display a table with the local save as well as the backup history on GitHub.
The Create Save
button will create a backup of the current farm that is being viewed. On the left, the Save Selected
button will create backups of the selected farms all at once.
Clicking the View
button on the table will display a dialog window with information about the save. This action can be done even for save points in GitHub. The dialog will display information such as:
- Properties: General information about the save (money, year, season, day, etc)
- Inventory: Current inventory as of that save point
- Skills: the skill level of Farming, Mining, Combat, Foraging, and Fishing
- Relationships: Player relationship level with the NPCs as well as relationship status (Friendly/Dating/Married)
The Open
button will open a webpage to the commit on GitHub. The Load
button will download the save point and override the local save. Please note that a backup save point of the current local save will be created to GitHub before it is overriden. If the backup fails, the local save will not be overriden. These two buttons are only available for save points backed up to GitHub and not local saves.
This project is still a work in progress. This is my first C# .NET application so I am open to feedback, PRs, requests, etc. I started this project as a learning opportunity and wanted to create something that might be useful to some people. There are still a lot of features that I want to implement, and I am trying to improve this application as much as possible, so any help is greatly appreciated.