NoMansSky:Reference Guides/LSYSTEM Files

From Step Mods | Change The Game
Nomanssky flare.png

LSYSTEM Files

LSYSTEM Files

LSYSTEM MBINs are at the heart of No Man's Sky's building generation, both interiors and exteriors. They are a series of lists of scenes carefully processed through a set of rules to produce coherent and consistent buildings. They range from standard scenes as you can find associated with models, to unusual scenes that are essentially nothing but a single locator, to even more interesting scenes that appear to be nothing but carefully arranged locators and referenced scenes.

Provided this, you can think of lsystems as locator, list, and layout systems (for a more generic view, here is the wikipedia page about L-Systems).

Lsystems use locators to identify where to place lists of scenes and specific scenes (e.g. capmodules are extremely common to observe).

Lsystems use layouts to load in specific arrangements of lists of objects (typically via locators) and specific scenes for different interiors and exteriors.

Types of Lsystems

There are three types of Lsystem to keep in mind when handling Lsystems, and these are the following:

Basecommon.lsystem.mbin
located under:
  • MODELS/PLANETS/BIOMES/COMMON/BUILDINGS/PARTS/COMMONPARTS/LSYSTEM
Base[race].lsystem.mbin
located under:
  • MODELS/PLANETS/BIOMES/COMMON/BUILDINGS/PARTS/SCIENTIFICPARTS/LSYSTEM
  • MODELS/PLANETS/BIOMES/COMMON/BUILDINGS/PARTS/TRADERPARTS/LSYSTEM
  • MODELS/PLANETS/BIOMES/COMMON/BUILDINGS/PARTS/WARRIORPARTS/LSYSTEM
[building][race].lsystem.mbin
located under:
  • MODELS/PLANETS/BIOMES/COMMON/BUILDINGS/OBSERVATORY
  • MODELS/PLANETS/BIOMES/COMMON/BUILDINGS/RADIOTOWER
  • MODELS/PLANETS/BIOMES/COMMON/BUILDINGS/HARVESTER
  • MODELS/PLANETS/BIOMES/COMMON/BUILDINGS/FACTORY
  • MODELS/PLANETS/BIOMES/COMMON/BUILDINGS/SHACK
  • MODELS/PLANETS/BIOMES/COMMON/BUILDINGS/SHOP

Lsystem type traversal

The reason the above Lsystem types are important to note is that Lsystems are tightly bound together through system rule templates as can be observed here:

<!-- From: HARVESTERSCIENTIFIC.LSYSTEM.MBIN -->
<Property name="Templates">
    <Property value="TkLSystemRuleTemplate.xml">
      <Property name="Name" value="Base" />
      <Property name="LSystem" value="MODELS/PLANETS/BIOMES/COMMON/BUILDINGS/PARTS/
SCIENTIFICPARTS/LSYSTEM/BASESCIENTIFIC.LSYSTEM.MBIN" />
    </Property>
  </Property>
 

<!-- From: BASESCIENTIFIC.LSYSTEM.MBIN -->
<Property name="Templates">
    <Property value="TkLSystemRuleTemplate.xml">
      <Property name="Name" value="BASE" />
      <Property name="LSystem" value="MODELS/PLANETS/BIOMES/COMMON/BUILDINGS/PARTS/
COMMONPARTS/LSYSTEM/BASECOMMON.LSYSTEM.MBIN" />
    </Property>
  </Property>

As you examine these files, you'll notice some oddities. For example, despite harvesters (operations centers in the game proper), generally having two side rooms besides the main room, there's next to no hint of them in the harvester[race].lsystem.mbin. This is because it relies upon the the base[race].lsystem.mbin to complete the generation of the structure, producing the side rooms that are only briefly referenced at the top of the harvester[race].lsystem.mbin.

Then you may notice as you're looking through the base[race].lsystem.mbin that there's an odd absence of anything about the health/shield stations, encyclopedias, or nanite stations (formerly multitool blueprint stations). This is because the base[race].lsystem.mbin relies upon the basecommon.lsystem.mbin to complete this side of things.

Thus you can roughly see how each Lsystem is heavily reliant upon the other to fully complete the generation of any complex building within the game (i.e. with interior and exterior elements). If you wish to lightly change any building, you may simply readjust or add new layouts for the lsystem to call to create custom rooms without having to build entirely new structures. Alternatively, if you wished to thoroughly generate new buildings, you could create new sets of layouts and modules for the game to assemble buildings out of, albeit this would be a more challenging task.