NoMansSky:UnlockableItemTrees

From Step Mods | Change The Game
Nomanssky flare.png

UnlockableItemTrees File

by: Lo2k

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.


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 children, as in the trees themselves, and you can't unlock a child if you haven'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>