Workes.SaveSystem 1.0.1

dotnet add package Workes.SaveSystem --version 1.0.1
                    
NuGet\Install-Package Workes.SaveSystem -Version 1.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Workes.SaveSystem" Version="1.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Workes.SaveSystem" Version="1.0.1" />
                    
Directory.Packages.props
<PackageReference Include="Workes.SaveSystem" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Workes.SaveSystem --version 1.0.1
                    
#r "nuget: Workes.SaveSystem, 1.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Workes.SaveSystem@1.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Workes.SaveSystem&version=1.0.1
                    
Install as a Cake Addin
#tool nuget:?package=Workes.SaveSystem&version=1.0.1
                    
Install as a Cake Tool

Workes.SaveSystem

NuGet License: MIT

Workes.SaveSystem is an engine-neutral .NET save system for games and applications that need registered state providers, disk saves, backups, metadata, and save-format migrations.

The package is not tied to Unity, Godot, or another engine. Your application chooses the persistent save path and serializer, then SaveManager<TIdentity> coordinates provider capture, persistence, loading, validation, recovery, and migration.

Highlights

  • Register typed state providers with stable save keys and schema versions.
  • Save and load named slots using string or custom identity types.
  • Use readable JSON by default, compact JSON when desired, or serializer wrappers for compression and transforms.
  • Rotate backups and recover from interrupted writes.
  • Store typed application metadata for save menus without loading provider files.
  • Migrate old provider payloads through format-neutral data nodes.
  • Distinguish old saves from missing provider files through persisted provider manifests.
  • Extend serialization, metadata, transforms, migrations, provider lifecycle, and default-state behavior.

Installation

Install from NuGet:

dotnet add package Workes.SaveSystem --version 1.0.1

Or add a package reference:

<PackageReference Include="Workes.SaveSystem" Version="1.0.1" />

The package targets .NET Standard 2.1 and currently depends on Newtonsoft.Json for the built-in JSON serializer.

Quick Example

using Workes.SaveSystem;

var serializer = new JsonSaveSerializer();
var manager = SaveManager<string>.CreateDefault(
    serializer,
    saveRootPath: "Saves");

var playerProvider = new PlayerSaveProvider();
manager.RegisterProvider(playerProvider);
manager.ValidateRegistrations();

manager.SaveToDisk("slot-1");

playerProvider.Current = new PlayerState();
manager.LoadFromDisk("slot-1");

public sealed class PlayerState
{
    public string Name { get; set; } = string.Empty;
    public int Level { get; set; }
}

public sealed class PlayerSaveProvider : ISaveProvider<PlayerState>
{
    public string SaveKey => "player";
    public int SchemaVersion => 1;
    public int LoadPriority => 0;

    public PlayerState Current { get; set; } = new PlayerState
    {
        Name = "Rook",
        Level = 5
    };

    public PlayerState CaptureState() => Current;

    public void RestoreState(PlayerState state)
    {
        Current = state;
    }
}

See the Quick Start for the beginner-first walkthrough.

Documentation

Start here:

  1. Quick Start
  2. Configuration
  3. Providers

Focused guides:

See the Changelog for release history and migration-sensitive changes.

Companion Packages

The core package ships JSON and does not reference MessagePack. Compact MessagePack saves are handled by the optional companion package:

Use JSON when readable save files are useful. Use compressed JSON for smaller files without an additional dependency. Use the MessagePack companion package when compact binary saves are more important than direct readability.

License

Workes.SaveSystem is available under the MIT License.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Workes.SaveSystem:

Package Downloads
Workes.SaveSystem.MessagePack

An optional companion package for Workes.SaveSystem, designed to add a MessagePack serializer.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.1 143 8/11/2026
1.0.0 171 6/24/2026
1.0.0-preview.3 86 6/24/2026
1.0.0-preview.1 72 6/22/2026

1.0.1 adds first-class CHANGELOG.md package documentation, packs the changelog into the NuGet package root alongside README.md, and adds focused public documentation for quick start, configuration, providers, save operations, metadata, migrations, extension points, serialization, backups, and engine integration.