NoMansSky:UnlockableItemTrees
From Step Mods | Change The Game
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>