Skip to main content

Module gvas

Module gvas 

Source
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Β§

FullMetadata
Full metadata from all known GVAS properties.
SaveMetadata
Extracted metadata from a GVAS save file. Extracted metadata from a Subnautica 2 GVAS save file.

FunctionsΒ§

corruption_check
Return a corruption reason, or None if 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 .sav or .bak file 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 .sav or .bak file and return its GVAS metadata. Parse GVAS metadata from an in-memory byte slice. Useful for fuzzing.
extract_str_property πŸ”’
Find the first StrProperty named prop_name and 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, returning None if out of bounds.
read_u32 πŸ”’
Read a little-endian u32 at offset, returning None if out of bounds.
scan_double_near πŸ”’
Scan for a double value near a marker byte sequence.