Skip to content

A tool for decompiling No Man's Sky .MBIN files to XML format

License

Notifications You must be signed in to change notification settings

asceth/MBINCompiler

 
 

Repository files navigation

MBINCompiler Build status

A tool for decompiling No Man's Sky MBIN files to XML format, and recompiling them back from XML to MBIN.

MBIN reading seems to be working well, structures just have to be created for all the different templates used by the game.

MBIN compiling also seems to be working well, but hasn't been tested very much yet (bug reports are welcomed!)

Note that the format of XML files created by this tool could change at any time.

Builds can be downloaded from our AppVeyor page: https://ci.appveyor.com/project/emoose/mbincompiler/build/artifacts

Requests & Issues

If you have any problems with the compiler feel free to write a bug report in the issue tracker.

Likewise, if you have any requests (eg. a request for a certain MBIN file to be supported) feel free to add your request to the issue tracker too.

Contributions

Contributions would be a great help for this tool, there are hundreds of different templates in No Man's Sky and mapping them all out will take a long time, but with contributions from the modding community this effort can be sped up a great deal.

If you'd like to contribute and have reverse-engineering experience, I've written a guide for finding templates in the game EXE here.

Templates aren't the only contributions accepted though, if you have any improvements to make to the source code they'd be greatly appreciated, while I like to pretend that I'm a decent C# programmer there are loads of people who have a better grasp of the language than I, if any of you can help to improve the code in any way I'd be very grateful.

If you want to talk about development feel free to join the NMS modding discord, MBINCompiler discussion usually takes place in the #modding-mbin channel: https://discordapp.com/invite/3Ytkxss (should work in browsers too, no client downloads needed)

Examples

SCENES\SCREENSHOTS\E32015\MAINSETTINGS.MBIN:

<?xml version="1.0" encoding="utf-8"?>
<Data template="GcSceneSettings">
  <Property name="NextSettingFile" value="" />
  <Property name="SceneFile" value="SCENES/DEMOS/E32015/MAINSETTINGS/SCENES/SPACE.SCENE.MBIN" />
  <Property name="PlanetSceneFiles">
    <Data template="NMSString0x80">
      <Property name="Value" value="SCENES/DEMOS/E32015/MAINSETTINGS/SCENES/PLANET0.SCENE.MBIN" />
    </Data>
    <Data template="NMSString0x80">
      <Property name="Value" value="SCENES/DEMOS/E32015/MAINSETTINGS/SCENES/PLANET1.SCENE.MBIN" />
    </Data>
  </Property>
  <Property name="SolarSystemFile" value="SCENES/DEMOS/E32015/MAINSETTINGS/SOLARSYSTEMS/SOLARSYSTEM.MBIN" />
  <Property name="PlanetFiles1" value="SCENES/DEMOS/E32015/MAINSETTINGS/PLANETS/SUGAS.MBIN" />
  <Property name="PlanetFiles2" value="SCENES/DEMOS/E32015/MAINSETTINGS/PLANETS/OBEK.MBIN" />
  <Property name="PlanetFiles3" value="SCENES/DEMOS/E32015/MAINSETTINGS/PLANETS/ARMCHAIR.MBIN" />
  <Property name="PlanetFiles4" value="SCENES/DEMOS/E32015/MAINSETTINGS/PLANETS/METYUK.MBIN" />
  <Property name="PlanetFiles5" value="" />
  <Property name="ShipPreloadFiles" />
  <Property name="SpawnShip" value="False" />
  <Property name="SpawnInsideShip" value="False" />
  <Data name="PlayerState" template="GcPlayerSpawnStateData">
    <Data name="PlayerPositionInSystem" template="Vector4f">
      <Property name="x" value="0" />
      <Property name="y" value="0" />
      <Property name="z" value="0" />
      <Property name="t" value="0" />
    </Data>
    <Data name="PlayerTransformAt" template="Vector4f">
      <Property name="x" value="0" />
      <Property name="y" value="0" />
      <Property name="z" value="1" />
      <Property name="t" value="1" />
    </Data>
    <Data name="ShipPositionInSystem" template="Vector4f">
      <Property name="x" value="0" />
      <Property name="y" value="0" />
      <Property name="z" value="0" />
      <Property name="t" value="0" />
    </Data>
    <Data name="ShipTransformAt" template="Vector4f">
      <Property name="x" value="0" />
      <Property name="y" value="0" />
      <Property name="z" value="1" />
      <Property name="t" value="1" />
    </Data>
    <Property name="LastKnownPlayerState" value="OnStation" />
  </Data>
  <Property name="Events" />
  <Property name="PostWarpEvents" />
  <Property name="SpawnerOptionId" value="" />
</Data>

About

A tool for decompiling No Man's Sky .MBIN files to XML format

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 99.8%
  • Python 0.2%