Updated 2026-08-09 with the naming and feed decisions from ADR-0029.
The SatisfactorySaveNet fork is 21 commits ahead, 0 behind upstream R3dByt3/SatisfactorySaveNet, whose last substantive commit was 2025-12-18 (~8 months ago, 18 stars). Every save-version fix since — v1.2 TOC/Data Blob, deep-parse ArrayProperty<StructProperty>, chain-actor ExtraData fallback, the save v60 resilience fix — originated here. ADR-0014 left the endgame open pending an upstream merge that never came (#33 closed unmerged). ADR-0029 accepts the permanent fork.
It already publishes its own packages — but to GitHub Packages, which is the single biggest source of setup friction in this repo. Every contributor and CI job must do this before dotnet restore works at all:
gh auth refresh -h github.com -s read:packages # one-time
export GITHUB_TOKEN=$(gh auth token) # every shell
That's why nuget.config carries packageSourceCredentials and an explicit packageSourceMapping (without the mapping, a user-level * fallback silently swallows the packages and NuGet reports "Versions from github-chrisonsimtian were not considered").
nuget.org deletes all of it — the same move ADR-0021 made for the build system, which is precisely why the Nuke.* mapping could be dropped.
Naming (decided — ADR-0029 §1)
|
|
| Repo |
erp-for-factory-games/Satisfactory |
| Packages |
ErpForFactoryGames.Satisfactory.Saves, ErpForFactoryGames.Satisfactory.Saves.Abstracts |
| Later |
ErpForFactoryGames.Satisfactory.Catalogue (pak extraction, moves out of tools/) |
Rebrand as a hard-fork successor, following the NUKE → Fallout playbook ADR-0021 documents: 1:1 namespace mapping, README stating the lineage, upstream MIT copyright preserved. Version numbering continues the 4.x line — the id change already disambiguates, and the release-number ↔ game-save-version correspondence is worth keeping.
Scope
Sequencing
Do this before the org transfer (#311): feed URLs don't redirect on transfer (repo URLs do), so transferring first means republishing to a GitHub Packages feed we then abandon.
Out of scope
The
SatisfactorySaveNetfork is 21 commits ahead, 0 behind upstreamR3dByt3/SatisfactorySaveNet, whose last substantive commit was 2025-12-18 (~8 months ago, 18 stars). Every save-version fix since — v1.2 TOC/Data Blob, deep-parseArrayProperty<StructProperty>, chain-actor ExtraData fallback, the save v60 resilience fix — originated here. ADR-0014 left the endgame open pending an upstream merge that never came (#33 closed unmerged). ADR-0029 accepts the permanent fork.It already publishes its own packages — but to GitHub Packages, which is the single biggest source of setup friction in this repo. Every contributor and CI job must do this before
dotnet restoreworks at all:That's why
nuget.configcarriespackageSourceCredentialsand an explicitpackageSourceMapping(without the mapping, a user-level*fallback silently swallows the packages and NuGet reports "Versions from github-chrisonsimtian were not considered").nuget.org deletes all of it — the same move ADR-0021 made for the build system, which is precisely why the
Nuke.*mapping could be dropped.Naming (decided — ADR-0029 §1)
erp-for-factory-games/SatisfactoryErpForFactoryGames.Satisfactory.Saves,ErpForFactoryGames.Satisfactory.Saves.AbstractsErpForFactoryGames.Satisfactory.Catalogue(pak extraction, moves out oftools/)Rebrand as a hard-fork successor, following the NUKE → Fallout playbook ADR-0021 documents: 1:1 namespace mapping, README stating the lineage, upstream MIT copyright preserved. Version numbering continues the 4.x line — the id change already disambiguates, and the release-number ↔ game-save-version correspondence is worth keeping.
Scope
ErpForFactoryGames.*prefix on nuget.org. External dependency, needed before the first push — do this first.PackageIdfor both packages; setAuthors/RepositoryUrl/ licence + attribution metadata, preserving upstream MIT notice.SatisfactorySaveNet.*→ErpForFactoryGames.Satisfactory.Saves.*; README states the fork lineage.Satisfactory.Infrastructure.csprojto the new ids, and theusingdirectives inSatisfactorySaveNetFactoryStateProvider/SaveFileReader.packageSourceCredentials, andpackageSourceMappingfromnuget.config.GITHUB_TOKENprerequisite fromCLAUDE.md"Build & run" andpackages: readfrom the CI workflow.vendor/SatisfactorySaveNetsubmodule, or demote it in docs to a purely optional local-iteration checkout.Sequencing
Do this before the org transfer (#311): feed URLs don't redirect on transfer (repo URLs do), so transferring first means republishing to a GitHub Packages feed we then abandon.
Out of scope
….Catalogue— later step, must not block the save library.