Skip to main content

Crate nms_save

Crate nms_save 

Source
Expand description

Raw binary save file parser for No Man’s Sky.

Reads save.hg files directly from disk:

  1. Detect format (plaintext JSON vs LZ4 compressed)
  2. Parse sequential LZ4 blocks (magic 0xFEEDA1E5), decompress, concatenate
  3. Deobfuscate JSON keys using MBINCompiler’s mapping.json
  4. Deserialize into typed Rust structs via serde

Also handles metadata verification (mf_save.hg) via XXTEA + SHA-256.

Re-exports§

pub use decompress::SaveFormat;
pub use decompress::decompress_save;
pub use decompress::decompress_save_file;
pub use decompress::detect_format;
pub use error::SaveError;
pub use mapping::KeyMapping;
pub use mapping::deobfuscate_json;
pub use mapping::is_obfuscated;
pub use metadata::SaveMetadata;
pub use metadata::StorageSlot;
pub use metadata::read_metadata;
pub use metadata::verify_sha256;
pub use model::SaveRoot;

Modules§

convert
Conversion from raw save model types to nms-core domain types.
decompress
LZ4 block decompression for NMS save files.
error
Error types for save file parsing.
locate
NMS save file discovery: platform-specific paths, account directories, save files.
mapping
Key deobfuscation for NMS save file JSON.
metadata
Metadata file (mf_save*.hg) decryption and parsing.
model
Typed Rust structs for deobfuscated NMS save file JSON.
xxtea
XXTEA encryption/decryption for NMS metadata files.

Functions§

parse_save
Parse deobfuscated save file JSON bytes into a SaveRoot struct.
parse_save_file
Parse a deobfuscated save file from disk.