<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://nomansskyretro.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=EthanRDoesMC</id>
	<title>No Man&#039;s Sky Retro - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://nomansskyretro.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=EthanRDoesMC"/>
	<link rel="alternate" type="text/html" href="https://nomansskyretro.com/wiki/Special:Contributions/EthanRDoesMC"/>
	<updated>2026-05-15T15:50:17Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.2</generator>
	<entry>
		<id>https://nomansskyretro.com/index.php?title=User_talk:Babscoole&amp;diff=449</id>
		<title>User talk:Babscoole</title>
		<link rel="alternate" type="text/html" href="https://nomansskyretro.com/index.php?title=User_talk:Babscoole&amp;diff=449"/>
		<updated>2023-08-02T14:27:19Z</updated>

		<summary type="html">&lt;p&gt;EthanRDoesMC: Welcome!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Welcome to &#039;&#039;No Man&#039;s Sky Retro&#039;&#039;!&#039;&#039;&#039;&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:EthanRDoesMC|EthanRDoesMC]] ([[User talk:EthanRDoesMC|talk]]) 14:27, 2 August 2023 (GMT)&lt;/div&gt;</summary>
		<author><name>EthanRDoesMC</name></author>
	</entry>
	<entry>
		<id>https://nomansskyretro.com/index.php?title=Welcome&amp;diff=411</id>
		<title>Welcome</title>
		<link rel="alternate" type="text/html" href="https://nomansskyretro.com/index.php?title=Welcome&amp;diff=411"/>
		<updated>2023-06-12T06:38:14Z</updated>

		<summary type="html">&lt;p&gt;EthanRDoesMC: forgot a word? lol&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
===Overview===&lt;br /&gt;
[[File:Moon 1.13.png|300px|thumb|right]]&lt;br /&gt;
Welcome to No Man&#039;s Sky Retro, a community and wiki project centered on supporting, analyzing and celebrating the original releases No Man&#039;s Sky.&lt;br /&gt;
&lt;br /&gt;
Here you will find information on how to get started playing older versions of No Man&#039;s Sky, in addition an archive of [[:Category:Mods|mods]], [[:Category:Tools|tools]], [[Compatibility Fixes|compatibility fixes]], and other resources.&lt;br /&gt;
&lt;br /&gt;
Additionally, we are continuing to grow and [[:Category:TechDocs|share a technical breakdown of the game]] to support and grow the modding community.&lt;br /&gt;
&lt;br /&gt;
We also provide a platform for the community to share their own mods, tools, and projects. On our [https://discord.gg/YcQ8Aq2FA6 discord channel] we discuss various topics related to the game, share our experiences, and ask for help or advice.&lt;br /&gt;
&lt;br /&gt;
Here, we revisit and appreciate the magic of early No Man&#039;s Sky.&lt;br /&gt;
&lt;br /&gt;
===How to Play===&lt;br /&gt;
====PC====&lt;br /&gt;
If you own No Man&#039;s Sky on Steam, you can use our No Man&#039;s Sky Legacy Installer tool with your Steam Account to download old versions of No Man&#039;s Sky. You can download this on the project&#039;s [https://github.com/qjimbo/NMSLegacyVersionInstaller/releases releases page].&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:Nms legacy installer screenshot.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Previous versions of No Man&#039;s Sky can also be downloaded from Steam manually using the DepotDownloader tool and your Steam Account. Read [[How to Install Old Versions from Steam]]. If you have an old offline installer from GOG.com, these can be installed as well.&lt;br /&gt;
&lt;br /&gt;
You can learn more about the differences between each version in the [[Legacy Versions Guide]].&lt;br /&gt;
&lt;br /&gt;
If you have multiple different versions of No Man&#039;s Sky installed, check out the [[Change Save Game Folder]] page to see how to keep all of your No Man&#039;s Sky savegames in separate folders.&lt;br /&gt;
&lt;br /&gt;
Some Graphics Cards and Drivers may have problems working with older versions of No Man&#039;s Sky, check out the [[Compatibility Fixes]] page for information on how to resolve any issues.&lt;br /&gt;
&lt;br /&gt;
====Playstation 4====&lt;br /&gt;
Version 1.00 can be accessed by uninstalling the game from the harddrive and reinstalling with the internet disconnected. It&#039;s worth noting that only the Playstation 4 received version 1.00, where as the first PC release was 1.03.&lt;br /&gt;
&lt;br /&gt;
Updates can also be installed manually and more detail will be added on this soon.&lt;br /&gt;
&lt;br /&gt;
===Current Version===&lt;br /&gt;
Don&#039;t want to downgrade but miss the old aesthetic? The [[Back to Foundations]] mod allows players of the current version to restore planets closer to their appearance in the Foundation Update and is compatible with the latest updates to No Man&#039;s Sky.&lt;br /&gt;
&lt;br /&gt;
While we focus on older versions we welcome discussion, modification and analysis of current versions of No Man&#039;s Sky, and are aiming to grow our collection of [[:Category:Current_Version_Mods|current version mods]].&lt;br /&gt;
&lt;br /&gt;
===A Growing Interest===&lt;br /&gt;
There has been a growing interest in revisiting the &amp;quot;original vision&amp;quot; of No Man&#039;s Sky&lt;br /&gt;
* [https://www.thegamer.com/no-mans-sky-frontiers-update-base-building-focus/ This article from TheGamer] talks about how No Man&#039;s Sky today is very different to it&#039;s initial release.&lt;br /&gt;
* In two Youtube videos [https://www.youtube.com/watch?v=ZQ0s_h6xYjw here] and [https://www.youtube.com/watch?v=EpkheIvRS6I here], Unholy_Mr_Brown talks about why he enjoys playing No Man&#039;s Sky Foundation.&lt;br /&gt;
* [https://www.reddit.com/r/NoMansSkyTheGame/comments/pncjpy/sometimes_i_do_wonder_if_gamers_would_have_ever/ A reddit post by Sharks11] comments on how the pushback from gamers changed the direction of No Man&#039;s Sky.&lt;br /&gt;
* [https://old.reddit.com/r/NoMansSkyTheGame/comments/11ezj9y/should_they_bring_back_these_beautiful_old_planets/ A reddit post by laikaspark] about how planets looked in older versions with many comments of praise for the old No Man&#039;s Sky era.&lt;br /&gt;
&lt;br /&gt;
===Community &amp;amp; Friends===&lt;br /&gt;
* We have a growing community of fans who love the older versions of No Man&#039;s Sky, please join us at the [https://discord.gg/YcQ8Aq2FA6 No Man&#039;s Sky Retro discord channel].&lt;br /&gt;
&lt;br /&gt;
*[https://www.reddit.com/r/NMS_Foundations/ NMS_Foundations Subreddit].&lt;br /&gt;
* [https://www.reddit.com/r/old_mans_sky/ Old_Mans_Sky Subreddit].&lt;br /&gt;
* [https://www.reddit.com/r/NoMansSkyTheGame/ NoMansSkyTheGame Subreddit] (For all No Man&#039;s Sky discussion).&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/channel/UCJVRRdXTA93xjzlK_baA-0g Unholy_Mr_Brown&#039;s Youtube Channel].&lt;br /&gt;
* [https://www.youtube.com/user/GmrLeon/videos Gmr_Leon&#039;s Youtube Channel].&lt;br /&gt;
* [https://www.youtube.com/c/MZK MZK&#039;s Youtube Channel] (covers No Man&#039;s Sky, old and new).&lt;br /&gt;
&lt;br /&gt;
* [https://nmsspot.com/ NMSSpot] is a blog ran by Blake Patterson that covers his many adventures in No Man&#039;s Sky, and was the first place to have a guide on running old versions of No Man&#039;s Sky.&lt;/div&gt;</summary>
		<author><name>EthanRDoesMC</name></author>
	</entry>
	<entry>
		<id>https://nomansskyretro.com/index.php?title=Mod_Development_Tips&amp;diff=358</id>
		<title>Mod Development Tips</title>
		<link rel="alternate" type="text/html" href="https://nomansskyretro.com/index.php?title=Mod_Development_Tips&amp;diff=358"/>
		<updated>2023-05-07T09:07:58Z</updated>

		<summary type="html">&lt;p&gt;EthanRDoesMC: Create page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Articles]]&lt;br /&gt;
This is a non-exhaustive, potentially opinionated list of mod development tips for No Man’s Sky, both for Retro and in general. Feel free to add to it.&lt;br /&gt;
&lt;br /&gt;
== Don’t Trust The Old Structs ==&lt;br /&gt;
&lt;br /&gt;
  don’t trust the old structs &lt;br /&gt;
  trust the data haha&lt;br /&gt;
-monkeyman192&lt;br /&gt;
&lt;br /&gt;
Much work has been done on MBINCompiler in the years since No Man’s Sky released. While work is being done to backport modern versions of MBINCompiler to support older versions of NMS, we are &amp;lt;em&amp;gt;not quite there yet.&amp;lt;/em&amp;gt; Until then, you can generally assume the following:&lt;br /&gt;
&lt;br /&gt;
* The newer a version is, the more reliable its MBINCompiler structs are.&lt;br /&gt;
** This especially applies to 1.38 Atlas Rises, as it had a year to mature!&lt;br /&gt;
* Globals are going to be missing names for a while.&lt;br /&gt;
** Until 1.50 NEXT, property names for globals were not included in the exe&lt;br /&gt;
** NEXT was a big update and so a lot of globals were added, changed, or removed&lt;br /&gt;
** That makes it difficult and tedious, but not impossible, to find matching values (especially if they’re nearby in order with other matching values) for 1.38 Atlas Rises&lt;br /&gt;
* EXMLs may fail to compile, and it may not be your fault.&lt;br /&gt;
** Most globals do not compile correctly with MBINCompiler for 1.13 Foundations&lt;br /&gt;
* MBINCompiler may have the wrong data types for structs.&lt;br /&gt;
** This particularly applies to the 1.0x Release versions&lt;br /&gt;
*** This is where the above quote comes from.&lt;br /&gt;
** In this case you may have better luck manually editing an MBIN with a hex editor&lt;br /&gt;
&lt;br /&gt;
We will get there eventually. In the meantime, question the output as well as your edits.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== EXML is flexible ==&lt;br /&gt;
&lt;br /&gt;
MBINCompiler compiles an EXML by serialization, and as a result it does not care much about the &amp;lt;em&amp;gt;visual layout&amp;lt;/em&amp;gt; of the XML, so long as it is valid XML, the XML is formed as expected, and the XML can be reconstructed into an object. This gives you some flexibility. You can change the indentation style, add breaks between lines (I think), and use XML comments: &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;!-- This is an XML comment --&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use this to your advantage - documentation is invaluable.&lt;br /&gt;
&lt;br /&gt;
== File Explorer ==&lt;br /&gt;
&lt;br /&gt;
=== EXML and MBIN ===&lt;br /&gt;
&lt;br /&gt;
It’s &amp;lt;em&amp;gt;highly recommended&amp;lt;/em&amp;gt; that you go ahead and set a default program for editing EXML files. Notepad++ is typically the editor of choice, but this is up to personal preference.&lt;br /&gt;
&lt;br /&gt;
Additionally, if you generally stick to a specific version of NMS, you might find it helpful to set MBINs to open with MBINCompiler by default.&lt;br /&gt;
&lt;br /&gt;
Multi-version modders experienced with the command line might consider creating aliases for different MBINCompiler versions. (PowerShell instructions here??)&lt;br /&gt;
&lt;br /&gt;
=== Textures ===&lt;br /&gt;
&lt;br /&gt;
Textures can be previewed using a program that generates thumbnails for .dds files. (More details??)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Tips for specific editors ==&lt;br /&gt;
&lt;br /&gt;
=== Neovim ===&lt;br /&gt;
&lt;br /&gt;
tree-sitter has a decent module for glsl that adds pretty good highlighting. It’s available through the usual means. It’s far better, in my opinion, than using Notepad++ (which does not actually provide proper GLSL highlighting).&lt;br /&gt;
&lt;br /&gt;
To get neovim to automatically switch file types for shaders, pipelines, and EXMLs, add the following snippet to your init.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
vim.filetype.add({&lt;br /&gt;
  extension {&lt;br /&gt;
    exml = &#039;xml&#039;,&lt;br /&gt;
  },&lt;br /&gt;
  pattern = {&lt;br /&gt;
    [&#039;.*.SHADER.*.BIN&#039;] = &#039;glsl&#039;,&lt;br /&gt;
    [&#039;PIPELINE.*.BIN&#039;]  = &#039;xml&#039;,&lt;br /&gt;
  },&lt;br /&gt;
})&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>EthanRDoesMC</name></author>
	</entry>
	<entry>
		<id>https://nomansskyretro.com/index.php?title=MBIN&amp;diff=88</id>
		<title>MBIN</title>
		<link rel="alternate" type="text/html" href="https://nomansskyretro.com/index.php?title=MBIN&amp;diff=88"/>
		<updated>2023-03-20T08:40:55Z</updated>

		<summary type="html">&lt;p&gt;EthanRDoesMC: /* Naming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:TechDocs]]&lt;br /&gt;
&lt;br /&gt;
MBIN files are located inside the GAMEDATA folder inside the [[PAK]] files. They are a binary serialization of the XML Data values uses to populate each property only (strings, ints, etc) but contain no information on the data structure, such as the name or type of each value.&lt;br /&gt;
&lt;br /&gt;
The data structure of the MBIN (and XML) is stored inside the [[NMS.EXE]] executable. However, the name of each property in cases like *GLOBALS*.MBIN files were missing in pre-NEXT versions. In these cases &amp;quot;Unknown&amp;quot; is used instead.&lt;br /&gt;
&lt;br /&gt;
[[MBINCompiler]] can be used to decompile and recompile MBIN files, however as each No Man&#039;s Sky version has changes to it&#039;s main executable, a different MBINCompiler version is needed that matches the No Man&#039;s Sky version that the MBIN files come from.&lt;br /&gt;
&lt;br /&gt;
== EXML ==&lt;br /&gt;
&lt;br /&gt;
MBINs extracted with MBINCompiler use an XML variant called EXML, which is based off of the mXML format that Hello Games uses. &lt;br /&gt;
&lt;br /&gt;
Each EXML document has a root element &amp;lt;code&amp;gt;&amp;lt;Data&amp;gt;&amp;lt;/code&amp;gt;, which has one required attribute, &amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt;. This tells MBINCompiler what class it should &amp;lt;sup&amp;gt;de?&amp;lt;/sup&amp;gt;serialize the EXML into. &lt;br /&gt;
&lt;br /&gt;
The children of the Data element are all &amp;lt;code&amp;gt;&amp;lt;Property&amp;gt;&amp;lt;/code&amp;gt; elements, each of which represents a property of the class. A property element can have a &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, a &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;, or both, but not neither. &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; represents the name of the property. &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; can be the literal value of the property, with an implicit type, or it can represent a data type (usually vectors or other classes) by being set to &amp;lt;code&amp;gt;datatype.xml&amp;lt;/code&amp;gt;, where datatype is the class you want to use. When doing this, the children of the Property element will reflect a standalone EXML of that data type, minus the Data tag.&lt;br /&gt;
&lt;br /&gt;
An example of a .mXml document can be found in &amp;lt;code&amp;gt;/BINARIES/SETTINGS&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Naming ==&lt;br /&gt;
&lt;br /&gt;
[[PAK]]s are case-insensitive for file names. Thus, all extracted MBINs have uppercase file names. Based on information gathered from the game’s MBINs&amp;lt;sup&amp;gt;[example?]&amp;lt;/sup&amp;gt;, though, we can infer a few things about how Hello Games tends to capitalize files. &lt;br /&gt;
&lt;br /&gt;
* Files and folders are named using PascalCase. &lt;br /&gt;
* File sub-extensions are lowercased.&lt;br /&gt;
* The proper name of the XML format that No Man’s Sky uses is “mXml”.&lt;br /&gt;
&lt;br /&gt;
For example, we can assume that the mXml corresponding to &amp;lt;code&amp;gt;MATERIALS/BACKGROUNDFROMTEXTURE.MATERIAL.MBIN&amp;lt;/code&amp;gt; is &amp;lt;code&amp;gt;Materials/BackgroundFromTexture.material.mXml&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This is a much simpler way to refer to files in the game.&amp;lt;sup&amp;gt;[how so?]&amp;lt;/sup&amp;gt;&lt;/div&gt;</summary>
		<author><name>EthanRDoesMC</name></author>
	</entry>
	<entry>
		<id>https://nomansskyretro.com/index.php?title=MBIN&amp;diff=87</id>
		<title>MBIN</title>
		<link rel="alternate" type="text/html" href="https://nomansskyretro.com/index.php?title=MBIN&amp;diff=87"/>
		<updated>2023-03-20T08:40:28Z</updated>

		<summary type="html">&lt;p&gt;EthanRDoesMC: /* Naming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:TechDocs]]&lt;br /&gt;
&lt;br /&gt;
MBIN files are located inside the GAMEDATA folder inside the [[PAK]] files. They are a binary serialization of the XML Data values uses to populate each property only (strings, ints, etc) but contain no information on the data structure, such as the name or type of each value.&lt;br /&gt;
&lt;br /&gt;
The data structure of the MBIN (and XML) is stored inside the [[NMS.EXE]] executable. However, the name of each property in cases like *GLOBALS*.MBIN files were missing in pre-NEXT versions. In these cases &amp;quot;Unknown&amp;quot; is used instead.&lt;br /&gt;
&lt;br /&gt;
[[MBINCompiler]] can be used to decompile and recompile MBIN files, however as each No Man&#039;s Sky version has changes to it&#039;s main executable, a different MBINCompiler version is needed that matches the No Man&#039;s Sky version that the MBIN files come from.&lt;br /&gt;
&lt;br /&gt;
== EXML ==&lt;br /&gt;
&lt;br /&gt;
MBINs extracted with MBINCompiler use an XML variant called EXML, which is based off of the mXML format that Hello Games uses. &lt;br /&gt;
&lt;br /&gt;
Each EXML document has a root element &amp;lt;code&amp;gt;&amp;lt;Data&amp;gt;&amp;lt;/code&amp;gt;, which has one required attribute, &amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt;. This tells MBINCompiler what class it should &amp;lt;sup&amp;gt;de?&amp;lt;/sup&amp;gt;serialize the EXML into. &lt;br /&gt;
&lt;br /&gt;
The children of the Data element are all &amp;lt;code&amp;gt;&amp;lt;Property&amp;gt;&amp;lt;/code&amp;gt; elements, each of which represents a property of the class. A property element can have a &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, a &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;, or both, but not neither. &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; represents the name of the property. &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; can be the literal value of the property, with an implicit type, or it can represent a data type (usually vectors or other classes) by being set to &amp;lt;code&amp;gt;datatype.xml&amp;lt;/code&amp;gt;, where datatype is the class you want to use. When doing this, the children of the Property element will reflect a standalone EXML of that data type, minus the Data tag.&lt;br /&gt;
&lt;br /&gt;
An example of a .mXml document can be found in &amp;lt;code&amp;gt;/BINARIES/SETTINGS&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Naming ==&lt;br /&gt;
&lt;br /&gt;
[[PAK]]s are case-insensitive for file names. Thus, all extracted MBINs have uppercase file names. Based on information gathered from the game’s MBINs&amp;lt;sup&amp;gt;[example?]&amp;lt;/sup&amp;gt;, though, we can infer a few things about how Hello Games tends to capitalize files. &lt;br /&gt;
&lt;br /&gt;
* Files and folders are named using PascalCase. &lt;br /&gt;
* File sub-extensions are lowercased.&lt;br /&gt;
* The proper name of the XML format that No Man’s Sky uses is “mXml”.&lt;br /&gt;
&lt;br /&gt;
For example, we can assume that the mXml corresponding to &amp;lt;code&amp;gt;MATERIALS/BACKGROUNDFROMTEXTURE.MATERIAL.MBIN&amp;lt;/code&amp;gt; is &amp;lt;code&amp;gt;Materials/BackgroundFromTexture.material.mXml&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This is a much simpler way to refer to files in the game.&amp;lt;sup&amp;gt;how so?&amp;lt;/sup&amp;gt;&lt;/div&gt;</summary>
		<author><name>EthanRDoesMC</name></author>
	</entry>
	<entry>
		<id>https://nomansskyretro.com/index.php?title=MBIN&amp;diff=86</id>
		<title>MBIN</title>
		<link rel="alternate" type="text/html" href="https://nomansskyretro.com/index.php?title=MBIN&amp;diff=86"/>
		<updated>2023-03-20T08:39:06Z</updated>

		<summary type="html">&lt;p&gt;EthanRDoesMC: /* Naming */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:TechDocs]]&lt;br /&gt;
&lt;br /&gt;
MBIN files are located inside the GAMEDATA folder inside the [[PAK]] files. They are a binary serialization of the XML Data values uses to populate each property only (strings, ints, etc) but contain no information on the data structure, such as the name or type of each value.&lt;br /&gt;
&lt;br /&gt;
The data structure of the MBIN (and XML) is stored inside the [[NMS.EXE]] executable. However, the name of each property in cases like *GLOBALS*.MBIN files were missing in pre-NEXT versions. In these cases &amp;quot;Unknown&amp;quot; is used instead.&lt;br /&gt;
&lt;br /&gt;
[[MBINCompiler]] can be used to decompile and recompile MBIN files, however as each No Man&#039;s Sky version has changes to it&#039;s main executable, a different MBINCompiler version is needed that matches the No Man&#039;s Sky version that the MBIN files come from.&lt;br /&gt;
&lt;br /&gt;
== EXML ==&lt;br /&gt;
&lt;br /&gt;
MBINs extracted with MBINCompiler use an XML variant called EXML, which is based off of the mXML format that Hello Games uses. &lt;br /&gt;
&lt;br /&gt;
Each EXML document has a root element &amp;lt;code&amp;gt;&amp;lt;Data&amp;gt;&amp;lt;/code&amp;gt;, which has one required attribute, &amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt;. This tells MBINCompiler what class it should &amp;lt;sup&amp;gt;de?&amp;lt;/sup&amp;gt;serialize the EXML into. &lt;br /&gt;
&lt;br /&gt;
The children of the Data element are all &amp;lt;code&amp;gt;&amp;lt;Property&amp;gt;&amp;lt;/code&amp;gt; elements, each of which represents a property of the class. A property element can have a &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, a &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;, or both, but not neither. &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; represents the name of the property. &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; can be the literal value of the property, with an implicit type, or it can represent a data type (usually vectors or other classes) by being set to &amp;lt;code&amp;gt;datatype.xml&amp;lt;/code&amp;gt;, where datatype is the class you want to use. When doing this, the children of the Property element will reflect a standalone EXML of that data type, minus the Data tag.&lt;br /&gt;
&lt;br /&gt;
An example of a .mXml document can be found in &amp;lt;code&amp;gt;/BINARIES/SETTINGS&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Naming ==&lt;br /&gt;
&lt;br /&gt;
[[PAK]]s are case-insensitive for file names. Thus, all extracted MBINs have uppercase file names. Based on information gathered from the game’s MBINs&amp;lt;sup&amp;gt;[example?]&amp;lt;/sup&amp;gt;, though, we can infer a few things about how Hello Games tends to capitalize files. &lt;br /&gt;
&lt;br /&gt;
* Files and folders are named using PascalCase. &lt;br /&gt;
* File sub-extensions are lowercased.&lt;br /&gt;
* The proper name of the XML format that No Man’s Sky uses is “mXml”.&lt;br /&gt;
&lt;br /&gt;
For example, we can assume that the mXml corresponding to &amp;lt;code&amp;gt;MATERIALS/BACKGROUNDFROMTEXTURE.MATERIAL.MBIN&amp;lt;/code&amp;gt; is &amp;lt;code&amp;gt;Materials/BackgroundFromTexture.material.mXml&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This is a much simpler way to refer to files in the game.&lt;/div&gt;</summary>
		<author><name>EthanRDoesMC</name></author>
	</entry>
	<entry>
		<id>https://nomansskyretro.com/index.php?title=MBIN&amp;diff=85</id>
		<title>MBIN</title>
		<link rel="alternate" type="text/html" href="https://nomansskyretro.com/index.php?title=MBIN&amp;diff=85"/>
		<updated>2023-03-20T08:33:08Z</updated>

		<summary type="html">&lt;p&gt;EthanRDoesMC: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:TechDocs]]&lt;br /&gt;
&lt;br /&gt;
MBIN files are located inside the GAMEDATA folder inside the [[PAK]] files. They are a binary serialization of the XML Data values uses to populate each property only (strings, ints, etc) but contain no information on the data structure, such as the name or type of each value.&lt;br /&gt;
&lt;br /&gt;
The data structure of the MBIN (and XML) is stored inside the [[NMS.EXE]] executable. However, the name of each property in cases like *GLOBALS*.MBIN files were missing in pre-NEXT versions. In these cases &amp;quot;Unknown&amp;quot; is used instead.&lt;br /&gt;
&lt;br /&gt;
[[MBINCompiler]] can be used to decompile and recompile MBIN files, however as each No Man&#039;s Sky version has changes to it&#039;s main executable, a different MBINCompiler version is needed that matches the No Man&#039;s Sky version that the MBIN files come from.&lt;br /&gt;
&lt;br /&gt;
== EXML ==&lt;br /&gt;
&lt;br /&gt;
MBINs extracted with MBINCompiler use an XML variant called EXML, which is based off of the mXML format that Hello Games uses. &lt;br /&gt;
&lt;br /&gt;
Each EXML document has a root element &amp;lt;code&amp;gt;&amp;lt;Data&amp;gt;&amp;lt;/code&amp;gt;, which has one required attribute, &amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt;. This tells MBINCompiler what class it should &amp;lt;sup&amp;gt;de?&amp;lt;/sup&amp;gt;serialize the EXML into. &lt;br /&gt;
&lt;br /&gt;
The children of the Data element are all &amp;lt;code&amp;gt;&amp;lt;Property&amp;gt;&amp;lt;/code&amp;gt; elements, each of which represents a property of the class. A property element can have a &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, a &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;, or both, but not neither. &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; represents the name of the property. &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; can be the literal value of the property, with an implicit type, or it can represent a data type (usually vectors or other classes) by being set to &amp;lt;code&amp;gt;datatype.xml&amp;lt;/code&amp;gt;, where datatype is the class you want to use. When doing this, the children of the Property element will reflect a standalone EXML of that data type, minus the Data tag.&lt;br /&gt;
&lt;br /&gt;
An example of a .mXml document can be found in &amp;lt;code&amp;gt;/BINARIES/SETTINGS&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Naming ==&lt;br /&gt;
&lt;br /&gt;
[[PAK]]s are case-insensitive for file names. Thus, all extracted MBINs have uppercase file names. Based on information gathered from the game’s MBINs&amp;lt;sup&amp;gt;[example?]&amp;lt;/sup&amp;gt;, though, we can infer a few things about how Hello Games tends to capitalize files. &lt;br /&gt;
&lt;br /&gt;
* Files and folders are named using PascalCase. &lt;br /&gt;
* File sub-extensions are lowercased.&lt;br /&gt;
* The proper capitalization of the XML format that No Man’s Sky uses is “mXml”.&lt;/div&gt;</summary>
		<author><name>EthanRDoesMC</name></author>
	</entry>
	<entry>
		<id>https://nomansskyretro.com/index.php?title=PAK&amp;diff=84</id>
		<title>PAK</title>
		<link rel="alternate" type="text/html" href="https://nomansskyretro.com/index.php?title=PAK&amp;diff=84"/>
		<updated>2023-03-20T05:39:42Z</updated>

		<summary type="html">&lt;p&gt;EthanRDoesMC: Add category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;PAK files&#039;&#039;&#039; are a type of archive used by No Man’s Sky to efficiently store and load assets. They are essentially &#039;&#039;&#039;.psarc&#039;&#039;&#039; archives by a different name. [https://github.com/periander/PSArcTool PSArcTool] is typically used for extracting and packing PAK files, and as the format has not changed, the tool works with any version of No Man’s Sky[https://stepmodifications.org/wiki/NoMansSky:Tutorials/PSArcTool_Guide].&lt;br /&gt;
&lt;br /&gt;
== Loading ==&lt;br /&gt;
&lt;br /&gt;
No Man’s Sky will load any PAK contained within &amp;lt;code&amp;gt;/GAMEDATA/PCBANKS&amp;lt;/code&amp;gt;&amp;lt;sup&amp;gt;[any?]&amp;lt;/sup&amp;gt; and, as of 1.12, &amp;lt;code&amp;gt;/GAMEDATA/PCBANKS/MODS&amp;lt;/code&amp;gt; — provided that &amp;lt;code&amp;gt;/GAMEDATA/PCBANKS/DISABLEMODS.TXT&amp;lt;/code&amp;gt; does not exist. The PAKs that ship with No Man’s Sky are located in the aforementioned PCBANKS folder. In 1.10 and below, mods are stored in PCBANKS as well. PAKs in the &amp;lt;code&amp;gt;MODS&amp;lt;/code&amp;gt; folder will load after the game’s PAKs load.&lt;br /&gt;
&lt;br /&gt;
A PAK will load even if its file extension is appended or changed&amp;lt;sup&amp;gt;[not sure about the latter]&amp;lt;/sup&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Load Order and Priority ===&lt;br /&gt;
&lt;br /&gt;
PAKs are loaded in alphabetical order, starting with symbols, then 0-9, then Aaà-Zzź (capital, lowercase, accent)[https://nmsmodding.fandom.com/wiki/PAK_file_load_order_and_legal_characters]. It is worth noting that the “priority” of a PAK is the exact opposite order, and if two given PAKs contain the same file, the game will use the file from the PAK that loads second. This can be mentally visualized as a stack: the PAK to load last will override all files, and the second-to-last PAK will have priority for every file not contained in the last PAK, and so on. &lt;br /&gt;
&lt;br /&gt;
A mod developer should carefully consider this when deciding the name of a PAK, &#039;&#039;particularly&#039;&#039; on the Release 1.0x versions of No Man’s Sky, but also with regard to other mods in general. Mods with custom content may want to load earlier than most, while mods that largely change vanilla files will probably want to load as late as possible. In the case of shader mods, mods with fragment and vertex shader edits should load before mods with edits to “common” shaders. A new function should be contained either within the shader that will use it, or in a new header shader. &lt;br /&gt;
&lt;br /&gt;
Mod conflicts are generally resolved with AMUMSS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: TechDocs]]&lt;/div&gt;</summary>
		<author><name>EthanRDoesMC</name></author>
	</entry>
	<entry>
		<id>https://nomansskyretro.com/index.php?title=PAK&amp;diff=83</id>
		<title>PAK</title>
		<link rel="alternate" type="text/html" href="https://nomansskyretro.com/index.php?title=PAK&amp;diff=83"/>
		<updated>2023-03-20T05:35:09Z</updated>

		<summary type="html">&lt;p&gt;EthanRDoesMC: Some basic PAK info and notes on priority&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;PAK files&#039;&#039;&#039; are a type of archive used by No Man’s Sky to efficiently store and load assets. They are essentially &#039;&#039;&#039;.psarc&#039;&#039;&#039; archives by a different name. [https://github.com/periander/PSArcTool PSArcTool] is typically used for extracting and packing PAK files, and as the format has not changed, the tool works with any version of No Man’s Sky[https://stepmodifications.org/wiki/NoMansSky:Tutorials/PSArcTool_Guide].&lt;br /&gt;
&lt;br /&gt;
== Loading ==&lt;br /&gt;
&lt;br /&gt;
No Man’s Sky will load any PAK contained within &amp;lt;code&amp;gt;/GAMEDATA/PCBANKS&amp;lt;/code&amp;gt;&amp;lt;sup&amp;gt;[any?]&amp;lt;/sup&amp;gt; and, as of 1.12, &amp;lt;code&amp;gt;/GAMEDATA/PCBANKS/MODS&amp;lt;/code&amp;gt; — provided that &amp;lt;code&amp;gt;/GAMEDATA/PCBANKS/DISABLEMODS.TXT&amp;lt;/code&amp;gt; does not exist. The PAKs that ship with No Man’s Sky are located in the aforementioned PCBANKS folder. In 1.10 and below, mods are stored in PCBANKS as well. PAKs in the &amp;lt;code&amp;gt;MODS&amp;lt;/code&amp;gt; folder will load after the game’s PAKs load.&lt;br /&gt;
&lt;br /&gt;
A PAK will load even if its file extension is appended or changed&amp;lt;sup&amp;gt;[not sure about the latter]&amp;lt;/sup&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Load Order and Priority ===&lt;br /&gt;
&lt;br /&gt;
PAKs are loaded in alphabetical order, starting with symbols, then 0-9, then Aaà-Zzź (capital, lowercase, accent)[https://nmsmodding.fandom.com/wiki/PAK_file_load_order_and_legal_characters]. It is worth noting that the “priority” of a PAK is the exact opposite order, and if two given PAKs contain the same file, the game will use the file from the PAK that loads second. This can be mentally visualized as a stack: the PAK to load last will override all files, and the second-to-last PAK will have priority for every file not contained in the last PAK, and so on. &lt;br /&gt;
&lt;br /&gt;
A mod developer should carefully consider this when deciding the name of a PAK, &#039;&#039;particularly&#039;&#039; on the Release 1.0x versions of No Man’s Sky, but also with regard to other mods in general. Mods with custom content may want to load earlier than most, while mods that largely change vanilla files will probably want to load as late as possible. In the case of shader mods, mods with fragment and vertex shader edits should load before mods with edits to “common” shaders. A new function should be contained either within the shader that will use it, or in a new header shader. &lt;br /&gt;
&lt;br /&gt;
Mod conflicts are generally resolved with AMUMSS.&lt;/div&gt;</summary>
		<author><name>EthanRDoesMC</name></author>
	</entry>
</feed>