Current State of Modding

Some aspects of the game remain hidden and without more experimentation through playing with more heavily modified configurations of the game, the effects of these configurations simply cannot be known. Due to this, there are still some aspects to modding that cannot be done consistently and some that may perhaps never be possible.

However, there are numerous aspects of the game with which we *have* become reasonably familiar, and allow for some fairly extensive changes.

## What We Know So Far!

#### Adjusting Rewards

Possibly one of the first things that comes to mind for new modders might be to change the rewards given from alien interactions, opening containers, and so on. This is fortunately a fairly easy task by visiting and modifying the REWARDTABLE.MBIN found in METADATA\REALITY\TABLES. One can adjust amounts of currency and/or items received, or change the items entirely with a simple switch of the product/substance IDs, which can be found in the Reference Tables. For adding completely new rewards you can use this list for all available reward types.

#### Adding Objects to the Build Menu

As noted in the Beginner Topics, not only can we add existing objects to the Build Menu, which can be incredibly helpful in testing out custom interactions, but any custom objects which one may create can also be added here. Altogether the Build Menu, and the ability to make additions to it, has proven an incredibly convenient tool for modders.

#### Adding Custom Interactions

This goes two ways. There are the interaction *types* which are involved with alien and facility terminal interactions (largely found in NMS\_DIALOG\_GCALIENPUZZLETABLE.MBIN, in METADATA\REALITY\TABLES), which we can add to with our separate CUSTOMINTERACTION0-4 types, enabling new pools of interactions to be created. That is, if you've tired of the same old Gek conversations and Observatory puzzles, you could rewrite and/or add to them using the existing interaction type, or simply replace them with a pool of your own with a custominteraction type.

Alongside this there are the roots of *interactions* themselves found in *entities*, where one can script in some events with ActionTriggers, such as particle effects going off, messages displaying, and entire elements of an object being switched off and removed from view. These sorts of interactions can be incredibly rewarding to work with for certain circumstances.

#### Add New Interior Layouts

Since we can customize scenes to our liking, and since interiors are largely layout scenes, we can totally overhaul the interiors of buildings we encounter in the game. We can slightly rearrange them, replace them, and/or simply add to the list of them to give buildings a more varied feel to them!

#### Adjust Building Generation Altogether!

With the improved understanding of LSYSTEMs established recently, we now have a better sense of how we could alter the generation of structures entirely. This means that instead of lonely little structures with nothing but a single room, we could make it so that they have new wings on the sides with almost whatever we imagine to add to them.

There are undoubtedly constraints to this, but so far, no one has pushed the LSYSTEMs far enough to uncover what those constraints might be.

#### Transform Planets with Custom Biomes!

Many have complained that existing biomes rapidly become too familiar, so why not *create your own!?* Through extensive work, you can customize and make new biomes through examining the existing biomes in METADATA\SIMULATION\SOLARSYSTEM\BIOMES.

#### Add More Ships!

Although this requires some 3D modeling experience, you can create new ships to have appear in the game. This way you can add to the existing variety of ship looks, and fly in ships of your own design!

And these are only a *few* of the things we've figured out, without even mentioning shader mods and some AI grouping stuff!

## What We're Still Figuring Out!

#### GLOBALS EXML Files and Unknown Properties

Many of the most game-changing attributes and structs are found in the GLOBALS EXML files that are all found in the root directory of a fully extracted game archive. These include everything from the physics values of spacecraft, the density of clouds and fog on planets, the way information is rendered in the HUD, and more.

While some of these values have already been exposed, many unknown properties remain as such as they do not have attached names to be found within the binary from which MBINCompiler obtains most structures for EXML files. There is currently \*no way\* to find out exactly what most of these properties are unless one is willing to test them manually by changing some values and observing differences in-game.

Provided this, back these GLOBALs up, make and note your changes to specific Unknown Properties in specific GLOBALs and play awhile until you notice some changes. If you've been feeling a little burnt out on the game, this may be an excellent way to spice things up through trying to really break it in in new ways. But if you do so, please, please, please note which properties you changed, in which GLOBAL, and how you changed them, as this will enable others to reproduce and refine whatever strange effects they may have had on your game!

Currently, you can add your findings to the MBINCompiler Github wiki if you've a Github account.

#### Tool-Related

**Complex custom animations** are currently out of scope and are not yet supported by the model exporter. Translating Blender animation armatures into No Man's Sky's animation system is a difficult task and not yet doable for robust animations (e.g. creature movement). If you've the skills to do so, however, and are willing to help in producing a plugin, please give us a hand!

**Mesh collisions** have been broken since the release of Atlas Rises. Any help in restoring these would be greatly appreciated. Source for the Blender plugin involved in exporting custom models may be found here.

#### New Stuff in Familiar MBINs

**Missions** have received major attention with v1.3x, and it looks like it is possible that you are able to do custom missions that allow the player to be sent to specific places and do specific interactions. Testing the boundaries and flexibility of these would be very useful.

Much mission-related information can be found in METADATA\SIMULATION\MISSIONS, and almost certainly weaves through the NMS\_DIALOG\_GCALIENPUZZLETABLE.MBIN as well the REWARDTABLE.MBIN.

## Oddities Not Found in MBINs

While spawning objects on planets have a wide variety of already-existing solutions, the ability to **spawn new objects in space** is largely locked within the game binaries rather than the MBIN files and thus cannot be changed without modifying the game executable itself.

**Any form of functionality the game does not provide by default** cannot be introduced without modifying the executable itself or inserting code during runtime via NMSE (script extender).There is currently no way to natively access scripting otherwise.

**GLSL shaders,** found in the Shaders and Pipeline folder among the Unpacked game files as well as in the SHADERCACHE in the GAMEDATA folder are heavily used by NMS for a variety of different visual elements of the game. These are typically .BIN files, but can all be opened and modified with Notepad and other text editors.