NoMansSky:Creating Mods From MBINs: Difference between revisions

From Step Mods | Change The Game
Line 3: Line 3:
{{TOC_right}}
{{TOC_right}}
== Mod Creation by Hex Editing MBINs ==
== Mod Creation by Hex Editing MBINs ==
If the MBIN you want to edit is not supported by MBINCompiler (yet) after an NMS update, you can still edit MBIN files with a hex editor. The MBIN files store the game values in a binary serialized form. In order to update a mod you can use a binary comparison between the original MBIN file (from previous version) and modded MBIN file. Then you can apply the changes you have detected to the new original MBIN file. Sometimes values have shifted and you need to recognize the patterns by human eye.
If the MBIN you want to edit is not yet supported by MBINCompiler after an NMS update, you can still edit it with an hexadecimal editor.<br>


Here is a HexEditor tool list:
For example, you want to update a mod that does not work anymore after the update.
# Use a binary comparison between the original MBIN files and modded MBIN files (both from previous NMS version).
# Note the changes and apply them to the new MBIN files from latest NMS version.
# Done
{{Notice Small|text=Beware, sometimes new values are added into the files and some values have shifted. In that case, you will need to recognize the patterns by human eye.}}
 
Here is a list of Hexadecimal Editors:
* 010 (paid, with 30 day trial)
* 010 (paid, with 30 day trial)
* HxD (freeware, proprietary)
* HxD (freeware, proprietary)
Line 13: Line 19:
* XVI32 (freeware, very small (~1Mb) and portable)
* XVI32 (freeware, very small (~1Mb) and portable)


MBIN Files are all using little indian byte order.<br>
== What's inside MBIN files ? ==
They all start with a 24 (0x18) bytes header starting with a 0xCCCCCCCC Magic data.<br>
First, you need to know that MBIN Files are all using little indian byte order. If your Hexadecimal editor uses big indian, just set it to little indian instead.<br>
 
MBIN files all start with a 24 (0x18) bytes header starting with a 0xCCCCCCCC Magic data.<br>
Then there's a 72 (0x48) bytes string reserved for the internal file name.<br>
Then there's a 72 (0x48) bytes string reserved for the internal file name.<br>
In total the header of an MBINfile is 96 (0x60) bytes.<br>
So in total the header of an MBINfile is 96 (0x60) bytes.<br>
 
For details on the header format of MBINfiles see [https://github.com/monkeyman192/MBINCompiler/wiki/MBIN-Header-Format-v0 here]. There are also associated pages which contain the header format for MBIN files produced by MBINCompiler as extra info is added to indicate the version of MBINCompiler used to compile the file.<br>
For details on the header format of MBINfiles see [https://github.com/monkeyman192/MBINCompiler/wiki/MBIN-Header-Format-v0 here]. There are also associated pages which contain the header format for MBIN files produced by MBINCompiler as extra info is added to indicate the version of MBINCompiler used to compile the file.<br>
The rest of the file contains the data.
The rest of the file contains the data. This can't be detailed here as each MBIN file has a different data structure.


{{NMSPageClose}}
{{NMSPageClose}}
[[Category:No Man's Sky]][[Category:NMS-Tutorial]]
[[Category:No Man's Sky]][[Category:NMS-Tutorial]]

Revision as of 20:06, August 8, 2020

Template:TOC right

Mod Creation by Hex Editing MBINs[edit | edit source]

If the MBIN you want to edit is not yet supported by MBINCompiler after an NMS update, you can still edit it with an hexadecimal editor.

For example, you want to update a mod that does not work anymore after the update.

  1. Use a binary comparison between the original MBIN files and modded MBIN files (both from previous NMS version).
  2. Note the changes and apply them to the new MBIN files from latest NMS version.
  3. Done

Template:Notice Small

Here is a list of Hexadecimal Editors:

  • 010 (paid, with 30 day trial)
  • HxD (freeware, proprietary)
  • Hex Editor Neo (free, has paid versions)
  • Hex Workshop (paid)
  • HexEdit (mac only?)
  • XVI32 (freeware, very small (~1Mb) and portable)

What's inside MBIN files ?[edit | edit source]

First, you need to know that MBIN Files are all using little indian byte order. If your Hexadecimal editor uses big indian, just set it to little indian instead.

MBIN files all start with a 24 (0x18) bytes header starting with a 0xCCCCCCCC Magic data.
Then there's a 72 (0x48) bytes string reserved for the internal file name.
So in total the header of an MBINfile is 96 (0x60) bytes.

For details on the header format of MBINfiles see here. There are also associated pages which contain the header format for MBIN files produced by MBINCompiler as extra info is added to indicate the version of MBINCompiler used to compile the file.
The rest of the file contains the data. This can't be detailed here as each MBIN file has a different data structure.

Template:NMSPageClose