Expand description
A library for reading and writing Unreal Engine save files (commonly referred to as GVAS).
It has been tested on an extensive set of object structures and can fully read and write Deep Rock Galactic save files (and likely a lot more).
There is a small binary utility to quickly convert saves to and from a plain text JSON format which can be used for manual save editing.
Example
use std::fs::File;
use uesave::{Property, Save};
let save = Save::read(&mut File::open("drg-save-test.sav")?)?;
match save.root.properties["NumberOfGamesPlayed"] {
Property::Int { value, .. } => {
assert_eq!(2173, value);
}
_ => {}
}
Structs
- Root struct inside a save file which holds both the Unreal Engine class name and list of properties
- Used to disambiguate types within a
Property::Set
orProperty::Map
during parsing.
Enums
- Just a plain byte, or an enum in which case the variant will be a String
- Vectorized
Byte
- Properties consist of an ID and a value and are present in
Root
andStructValue::Struct
- Encapsulates
ValueVec
with a special handling of structs. See also:ValueArray
- Vectorized properties to avoid storing the variant with each value