Skip to content
Gaticus Hax edited this page Sep 12, 2018 · 11 revisions

Description

MBINCompiler is a modding tool for No Man's Sky (NMS). It allows NMS modders to convert MBIN assets from the normal binary format to a more human friendly text/EXML format that can be edited in a text editor then converted back to binary format and used by the game.

Drag-and-Drop Support

For basic use, you can simply drag and drop any number of files or folders onto the MBINCompiler.exe in Windows Explorer.

MBINCompiler will detect if each file is an MBIN or an EXML and will decompile or compile appropriately.
In either case, the output file will have the same name and location as the input file but with opposite extension.

Command Line Syntax

For more advanced use, MBINCompiler supports a number of command line options.
To specify command line options MBINCompiler can be run from a Windows Command Prompt, a batch script, a Windows Shortcut or various other methods.

Instructions for how to use the command line in general are beyond the scope of this documentation.
google Windows Command Line Execution or Windows Shortcut Command Line Options

Overview

Usage:

    MBINCompiler help
    MBINCompiler version [(-q | --quiet)] [<File>]
    MBINCompiler [convert] [<Option>...] <Path> [<Path>...]


Modes:

  help              Show this help info.
  version           Show version info.
  convert           Convert files between MBIN and EXML formats.


General Options:
  -q, --quiet               Do not display any console messages.
                            (Except requested help or version info.)
                            Do not wait for key press.


version [<Option>...] [<File>]

    If no valid <File> is specified, the version for this exe is displayed.
    If <File> is an MBIN, the version that the MBIN was compiled with will be  
    displayed.

    If -q or --quiet is used, a compact version string will be displayed with no  
    decoration.


[convert] [<Option>...] <Path> [<Path>...]

    This mode is the default. The convert keyword is optional.
    For each <Path>, convert all files between MBIN and EXML formats.

convert Options:
  -y, --overwrite           Always overwrite files if they already exist.

  -n, --keep                Never overwrite files if they already exist.

  -f, --force               Skip files with errors and continue processing.
                            Do not pause for errors.
                            (Any errors will be written to MBINCompiler.log)

  -d<Directory>, --output-dir=<Directory>
                            Specify the directory where files will be written to.
                            If this option is used, only one input <Path> can be  
                            specified.

  -i<Type>, --input-format=<Type>
                            Specify the type of input files to be converted from.
                            <Type> can be either MBIN or EXML.

  -o<Type>, --output-format=<Type>
                            Specify the type of output files to be converted to.
                            <Type> can be either MBIN or EXML.

  --include=<Glob Pattern>[;<Glob Pattern>...]
                            Filter all files to include only those that match the 
                            glob patterns. A glob pattern is a filepath with wildcards.
                            The * and ? wildcard characters can be used.
                            Multiple glob patterns are separated by a semicolon.
                            The default is --include="*.MBIN;*.MBIN.PC;*.EXML" (all).
                            The --include filter is applied before --exclude.

  --exclude=<Glob Pattern>[;<Glob Pattern>...]
                            Filter all files to exclude any that match the
                            glob patterns. A glob pattern is a filepath with wildcards.
                            The * and ? wildcard characters can be used.
                            Multiple glob patterns are separated by a semicolon.
                            The default is --exclude="LANGUAGE\*;*.GEOMETRY.*".
                            The --exclude filter is applied after --include.