Expand description
UE4/UE5 GVAS save-file binary parser.
The GVAS serialization format is defined by the public Unreal Engine 5 source code β the SaveGame system and its binary layout are part of the engineβs open API.
Ported from legacy/extract_save_name.py. Extracts SlotName and
DisplayName properties via manual binary walking, plus corruption
detection by cross-referencing metadata against the canonical filename
convention (savegame_N.sav / savegame_N_M.bak).
StructsΒ§
- Full
Metadata - Full metadata from all known GVAS properties.
- Save
Metadata - Extracted metadata from a GVAS save file. Extracted metadata from a Subnautica 2 GVAS save file.
FunctionsΒ§
- corruption_
check - Return a corruption reason, or
Noneif the file looks clean. - derive_
slot_ from_ filename - Derive the expected slot name from a filename.
- extract_
bool_ πproperty - Find a BoolProperty by name and return its value (true/false).
- extract_
double_ πproperty - Find an IntProperty by name and return its u32 value.
- extract_
full_ metadata - Parse a
.savor.bakfile and return all known GVAS metadata. - extract_
int_ πproperty - Extract an integer property value from a key-value text pair.
- extract_
metadata - extract_
metadata_ from_ bytes - Parse a
.savor.bakfile and return its GVAS metadata. Parse GVAS metadata from an in-memory byte slice. Useful for fuzzing. - extract_
str_ πproperty - Find the first
StrPropertynamedprop_nameand return its FString value. - read_
fname π - Read a length-prefixed, null-terminated FName string.
- read_
fstring π - Read an FString: length-prefixed, possibly UTF-16.
- read_
i32 π - Read a little-endian i32 at
offset, returningNoneif out of bounds. - read_
u32 π - Read a little-endian u32 at
offset, returningNoneif out of bounds. - scan_
double_ πnear - Scan for a double value near a marker byte sequence.