TrimKit.GameSettings
1.0.0
dotnet add package TrimKit.GameSettings --version 1.0.0
NuGet\Install-Package TrimKit.GameSettings -Version 1.0.0
<PackageReference Include="TrimKit.GameSettings" Version="1.0.0" />
<PackageVersion Include="TrimKit.GameSettings" Version="1.0.0" />
<PackageReference Include="TrimKit.GameSettings" />
paket add TrimKit.GameSettings --version 1.0.0
#r "nuget: TrimKit.GameSettings, 1.0.0"
#:package TrimKit.GameSettings@1.0.0
#addin nuget:?package=TrimKit.GameSettings&version=1.0.0
#tool nuget:?package=TrimKit.GameSettings&version=1.0.0
TrimKit.GameSettings
A lightweight and generic JSON-based settings manager for small games or C# applications. Designed for simplicity, low and ease of use.
Features
- Strongly typed via generics (
GameSettings<T>). - Automatically populates settings on initialization.
- Gracefully handles corrupt or invalid data (auto-resets to defaults).
Installation
Use provided nuget package or download the source.
🔧 dotnet add package TrimKit.GameSettings
Quick start
Define your settings class - any public fields or properties will be serialized:
public class MySettings
{
public string Name = "Player";
public bool Fullscreen = true;
public float Volume = 0.8f;
public Difficulty Difficulty = Difficulty.Normal;
}
Initialize settings object. It will automatically load existing settings from the disk or populate default values if it couldn't.
var settings = new GameSettings<MySettings>("MyAwesomeGame");
And then, just use it!
// read values using static typing
var temp = settings.Values.Fullscreen;
// modify values
settings.Values.Volume = 0.5f;
settings.Values.Name = "UserX";
// save settings to file at any time
settings.Save();
// or load from file
settings.Load();
// reset to defaults
settings.ResetToDefaults();
API Overview
| Method / Property | Description |
|---|---|
string SettingsDirectoryPath |
Full path to the settings folder inside AppData. |
string SettingsFilePath |
Full path to the JSON file. |
T Values |
The current settings object instance. |
void Save() |
Saves settings to disk (atomic write). |
void Load() |
Loads from disk; resets and overwrites if corrupted. |
void ResetToDefaults() |
Reinitializes settings with default values. |
Changes
- v1.0 - Initial release.
TrimKit Collection
This library is part of the TrimKit collection - a set of small, focused C# libraries that make game development more enjoyable by reducing the need for boilerplate code and providing simple reusable building blocks that can be dropped into any project.
- TrimKit.EventBus - Lightweight, mutation-safe event bus (event aggregator).
- TrimKit.GameSettings - JSON-based persistent settings manager.
- TrimKit.VirtualFileSystem - Unified file hierarchy abstraction to enable modding and additional content in games.
Each module is independent and can be used standalone or combined with others for a complete lightweight foundation.
Contribution
Contributions are welcome!
You can start with submitting an issue on GitHub.
License
This library is released under the MIT License.
| Product | Versions 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 | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- System.Text.Json (>= 9.0.9)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 179 | 10/8/2025 |