NMS:Game Structure/METADATA/REALITY/UNLOCKABLEITEMTREES.MBIN

From STEP Modding Wiki
BannerLogo
Game Structure // METADATA / REALITY / TABLES / UNLOCKABLEITEMTREES.MBIN

Contents

Introduction

Crafting is a key point in No Man's Sky and a lot of blueprints can be unlocked via technology trees.
All the tech trees, either from Nexus, Freighter or Blueprint Analysis Module are declared in METADATA\REALITY\TABLES\UNLOCKABLEITEMTREES.MBIN.

The whole file is composed of 2 parts :

  • Trees themselves, which represents 95% of the file, listing each item in a nested way
  • Cost types, describing currencies used in the trees

Trees Definition

The file structure is pretty simple as it mimics the tech tree it describes.

Wooden parts tree

Wooden parts tree


Here is a small extract of the first branch of the wooden parts tree above :

   <Property name="BasicBaseParts" value="GcUnlockableItemTrees.xml">
     <Property name="Title" value="UI_PURCHASABLE_BASICPARTS_TREE" />        Tree Name. This name is referenced in each language file for translation
     <Property name="Trees">
       <Property value="GcUnlockableItemTree.xml">
         <Property name="Title" value="UI_BASIC_WOOD_SUB" />     Branch Name. This name is referenced in each language file for translation
         <Property name="CostTypeID" value="SALVAGE" />     Currency used, as defined at the end of the file.
         <Property name="Root" value="GcUnlockableItemTreeNode.xml">
           <Property name="Unlockable" value="W_WALL" />     Item Name. This name is referenced in each language file for translation
           <Property name="Children">
             <Property value="GcUnlockableItemTreeNode.xml">
               <Property name="Unlockable" value="W_FLOOR" />     Item Name. This name is referenced in each language file for translation
               <Property name="Children">
                 <Property value="GcUnlockableItemTreeNode.xml">
                   <Property name="Unlockable" value="W_GFLOOR" />
                   <Property name="Children" />
                 </Property>
                 <Property value="GcUnlockableItemTreeNode.xml">
                   <Property name="Unlockable" value="W_RAMP" />
                   <Property name="Children">
                     <Property value="GcUnlockableItemTreeNode.xml">
                       <Property name="Unlockable" value="W_RAMP_H" />
                       <Property name="Children" />
                     </Property>
                   </Property>
                 </Property>

As you can see, each item has childrens, as in the trees themselves, and you can't unlock a child if you havn't unlocked its parent.

Cost types

Each tree items requires a currency to be unlocked.
All of them are listed at the end of the file.

Here is one of the currencies :

   <Property value="GcUnlockableTreeCostType.xml">
     <Property name="CostTypeID" value="SALVAGE" />    Currency. This is the name used in the trees to define the required currency
     <Property name="TypeOfCost" value="Product" />
     <Property name="CurrencyType" value="GcCurrency.xml">
       <Property name="Currency" value="Units" />
     </Property>
     <Property name="TypeID" value="BP_SALVAGE" />    Currency Name. This name is referenced in each language file for translation
     <Property name="CantAffortString" value="TRADE_BUY_BUILDING_NO_ITEMS" />   Insufficient currency message. This is referenced in each language file for translation
   </Property>