The libNOM
label is a collection of .NET class libraries originally developed
and used in NomNom, the most complete savegame
editor for No Man's Sky.
libNOM.collect
can be used to backup and restore all kinds of collections, like
Starships and Companions, to bypass the in-game limits.
All commonly used formats are supported. This includes those used by goatfungus, NMS Companion, and the NMS Ship Editor/Colorizer/Customizer.
There is also a new version of the NMS Companion format that unifies the file content (including features such as marking as favorite) and adds missing entries like the customization.
Create a collection and add/remove items.
var path = "..."; // where the collection is stored
var companionCollection = new CompanionCollection(path);
// Adding a new item to the collection can be done via a JSON string or reading from a file.
var jsonString = "..."; // JSON string in one of the supported formats (depends on collection type)
companionCollection.AddOrUpdate(jsonString, libNOM.collect.Enums.FormatEnum.Kaii, out var stringCompanion);
var pathToFile = "...";
companionCollection.AddOrUpdate(pathToFile, out var fileCompanion); // format will be automatically detected
// Remove
companionCollection.Remove(fileCompanion);
Backup an item.
var json = container.GetJsonObject(); // JObject of the entire save
var format = libNOM.collect.Enums.FormatEnum.Kaii; // one of the supported formats (depends on collection type)
var path = "..."; // where the collection is stored
stringCompanion.Export(json, format, path);
This project is licensed under the GNU GPLv3 license - see the LICENSE file for details.
- Christian Engelhardt (zencq) - GitHub
Thanks to the following people for their help in one way or another.
- Dr. Kaii - Collaboration for the import/export format as well as providing some code
- libNOM.map - Obfuscation and deobfuscation
- Newtonsoft.Json - Handle JSON objects