Skip to content

A .NET class library to obfuscate and deobfuscate save files from the game No Man's Sky.

License

Notifications You must be signed in to change notification settings

zencq/libNOM.map

Repository files navigation

libNOM.map

Maintained GitHub Actions Workflow Status Maintainability

.NET | Standard 2.0 - 2.1 | 6 - 8 C# 12 GitHub Release NuGet Version

Introduction

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.map can be used to obfuscate and deobfuscate the JSON save file content.

Getting Started

The mapping can be accessed through a single static class and each functionality is just a simple call.

Not only the latest mapping is supported but also legacy keys that are gone in a game version after Beyond 2.11. It is also possible to download an updated mapping file from the latest MBINCompiler release. It will be downloaded to download/mapping.json (if no other path is set) and automatically used if present.

Usage

The obfuscation and deobfuscation is done in-place. Deobfuscation will return a set of unknown keys.

// Deobfuscate
HashSet<string> unknownKeys = Mapping.Deobfuscate(jsonObject);

// Obfuscate
Mapping.Obfuscate(jsonObject);

Create and update settings.

// Settings
Mapping.Settings = new() { Download = "download" };

Update by downloading a newer version of the mapping file.

// Update
Mapping.Update();
Mapping.UpdateAsync();

License

This project is licensed under the GNU GPLv3 license - see the LICENSE file for details.

Authors

  • Christian Engelhardt (zencq) - GitHub

Credits

Thanks to the following people for their help in one way or another.

  • monkeyman192 - Maintaining MBINCompiler and creating up-to-date mapping files

Dependencies