forked from pascalbehmenburg/MHW
-
Notifications
You must be signed in to change notification settings - Fork 45
Save Editing Documentation
AsteriskAmpersand edited this page Nov 21, 2018
·
10 revisions
The save is blowfish encrypted, the key is "xieZjoe#P2134-3zmaghgpqoe0z8$3azeq".
The save stores its own checksum. The Checksum is SHA1 from position 64 to the end.
The save stores the steam id of the player's account. To load someone else's save you need to edit the steam ID to yours.
struct SaveFile
{
Header header;
Data data;
byte[0x08] padding;
};
struct Header {
UInt32 signature;
UInt32 unknown;
UInt32 unknown;
Byte[0x14] dataHash;
UInt64 dataSize;
UInt64 steamID;
Byte[0x10] padding;
};
struct data {
UInt64[0x04] sectionIndex;
Controls sectionControls;
Options sectionOptionss;
Unknown sectionUnknown;
SaveSlots sectionSaves;
Byte[0x08] padding;
};
Sections follow a generic structure but have widely varying section contents.
struct section {
UInt32 signature;
UInt32 unknown;
UInt64 sectionSize;
SectionContents sectionData;
};
Sections follow a generic structure but have widely varying section contents. Controls and Unknown are yet unmapped.
struct Options
{
blob unknown[0x08];
byte soundOutputDevice;
byte dynamicRange;
byte _3dAudio;
byte voiceVolume; // 0-100
byte bgmVolume; // 0-100
byte soundEffectVolume; // 0-100
byte[0x02] unknown;
byte textLanguage;
byte voiceLanguage;
byte subtitles;
byte voiceLanguageB;
byte voiceChat;
byte subtitleTextSize;
byte hudHelpTextSize;
byte confirmationButton;
byte[0x10] unknown;
FLOAT brightness; // 1.2-3.2, Def: 2.2
byte[0x0C] unknown;
DLCTYPE DLCOwned[0x0100];
byte[0x1C8] unknown;
};
struct saveSlots
{
UInt32 unknown;
saveSlot[0x03] Saves
byte[0x31DCCC] empty;
};
struct saveSlot {
UChar[0x40] hunterName;
UInt32 hunterRank;
UInt32 zeni;
UInt32 researchPoints;
UInt32 hunterXP;
UInt32 playTime_s;
byte[0x04] unknown;
hunterAppearance hunterAppearance;
palicoAppearance palicoAppearance;
Guildcard hunterGC;
Guildcard[100] sharedGC;
byte[0x019e36] unknown;
itemLoadoutStructure loadouts
byte[0x08] unknown;
itemPouch pouch;
itemBox box;
equipmentSlot[1000] equipmentList;
byte[0x2449c] unknown;
investigations[250] investigationList;
byte[0x0FB9] unknown;
equipLoadout[0x70] loadouts;
Byte[0x6521] unknown;
DLCTYPE[256] DLCClaimed;
byte[0x1D5] unknown;
bool SlotActive;
byte[0x2887] unknown;
};