> For the complete documentation index, see [llms.txt](https://docs.nexomc.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nexomc.com/configuration/plugin-settings.md).

# Plugin settings

Various options impacting the plugin in its generality

## Item configurations

Nexo configuration is mainly divided into 3, items, resourcepack & glyphs.\
These folders contain the majority of custom configurations you need.

## Formatting

Nexo has some settings for toggling its handling of various packets. Most of these are for transforming Glyph-Tags in packets that handle text or Items.\
Some of these can in some cases cause desync or other issues for some servers.\
These can be toggled of in such cases without much downside.

## ResourcePack

### Obfuscation

Obfuscation works by renaming all models, textures and files into random namespaces and paths\
This is to make it very hard for someone to just download and use your pack outside of your server.\
It comes with three modes, SIMPLE, FULL & NONE\
\
There is also an option to cache the obfuscated pack.\
This makes it so unless there are changes, Nexo will not reobfuscate the ResourcePack.\
This makes it so players do not have to redownload the ResourcePack every time your server starts.\\

```yaml
Pack:
  obfuscation:
    type: FULL
    cache: true
```

**NONE** does no obfuscation on the ResourcePack

```makefile
📁ResourcePack
└── 📁assets
    └── 📁custom_namespace
        └── 📁models
             └── 📑custom_model.json
```

**SIMPLE** only obfuscates individual filenames, but retains the original pack-structure

```makefile
📁ResourcePack
└── 📁assets
    └── 📁custom_namespace
        └── 📑02a61ae4-2457-4dfa-91af-9598cd52fd9e.json
```

**FULL** obfuscates the entire path

```
📁ResourcePack
└── 📁assets
    └── 📁0d003f53-e176-4e74-a895-d392c82f50be
        └── 📁models
             └── 📑02a61ae4-2457-4dfa-91af-9598cd52fd9e.json
```

### Texture Compression

Nexo compresses the textures inside the generated pack-zip to make the download smaller.\
Disabling it makes generating large packs faster, at the cost of the pack being a few percent bigger.

```yaml
Pack:
  generation:
    compress_textures: true
```

### PackServer

The ResourcePack Nexo generates needs to be hosted somewhere before it can be sent to players.\
Nexo has two built-in server-options, POLYMATH & SELFHOST

**POLYMATH** is Nexo's own remote server\
It is located in Germany and can therefore be slower depending on your server's location and players download speed\
\
SELFHOST is a locally hosted server on the machine and can therefore be faster if your players are closer to it. You will need to manually configure the IP-address to your servers.

```yaml
Pack:
  server:
    type: SELFHOST
      selfhost:
        public_address: 0.0.0.0   # Set to your server's IP
        port: 8082                # Set to a port you have opened on your server
      polymath:
        server: atlas.mineinabyss.com
        secret: mineinabyss
```

### Dispatch

This section is for handling when the pack should be sent to players.

```yaml
Pack:
  dispatch:
    # Sends the Resourcepack before the players loads into the server
    # Might cause issues with large packs due to long download/load times
    send_pre_join: true
    send_on_join: false
    send_on_reload: true    # Sends the pack to players after using reload-command
    delay: -1               # Delay before pack is sent, does not apply to PreJoin dispatches
    mandatory: true         # If declining the ResourcePack should kick the player
    prompt: "<#fa4943>Accept the pack to enjoy a full <b><gradient:#9055FF:#13E2DA>Nexo</b><#fa4943>experience"
```

## Misc

### Hiding Scoreboard & Tablist

This option lets you hide the red scoreboard numbers.

```yaml
hide_scoreboard_numbers: true
hide_scoreboard_background: true
```

{% hint style="danger" %}
This might not work for 1.21.8+ servers due to changes in core shaders by Mojang
{% endhint %}

## Nexo Inventory

Nexo has a `inventory.yml` which can be configured to tweak how the NexoInventory works.\
It lets you change between two types for sorting the inventory, FILE & DIRECTORY.\
FILE is the default and organized everything into one main-page where each item-config file is shown on the main menu.\
DIRECTORY organizes the menu into subpages, following the structure you have inside `plugins/Nexo/items`

You can also specify the layout to tweak the individual buttons irrespective of the type above.\
This lets you set the slot a button is in, the icon/item to display with it, its name and the title of the sub-page it opens. By default Nexo sorts slots by a-z of filenames & icon defaults to the first item in the config.\
You specify it like below, with it referencing the path to the item. The path depends on if you use FILE or DIRECTORY.\
If using FILE, the path is just the `filename`. If using DIRECTORY it is the entire path `folder.filename`

```yaml
NexoInventory:
  menu_title: <shift:-37><glyph:menu_items_search>
  search_title: <shift:256>NexoInventory Search<shift:256>
  style_default_names: true
  type: FILE
  navigation: PAGINATED
  menu_rows: 6
  layout:
    my_item:
      slot: 1
      icon: itemid
      itemname: <green>My Items
      title: <main_menu_title>ItemID
```

### Navigation

`navigation` decides how players move through menus with more items than fit on one page.\
**PAGINATED** is the default, and flips between pages using the next & previous page buttons.\
**SCROLLING** removes the page buttons, and instead moves one row per mouse-wheel notch while hovering an item in the menu.

{% hint style="info" %}
Players who were already online when switching to SCROLLING need to rejoin before scrolling works for them.\
It also relies on Nexo's packet handling, so it does not work with `Experimental.packets.disable_netty_injection` enabled
{% endhint %}

### Buttons

The NexoInventory also has some other features & buttons which can be customized like below.\
This can reference a NexoItem or an ItemModel directly from the ResourcePack

```yaml
NexoInventory:
  next_page_icon: nexo:next_page_icon
  previous_page_icon: nexo:previous_page_icon
  exit_icon: nexo:cancel_icon
  search_icon: nexo:search_icon
  directory_icon: nexo:directory_icon
```

## Experimental

### Light Data Injection

By default Nexo shows the light of [furniture](/mechanics/furniture-mechanic/light-mechanic.md) and [custom blocks](/mechanics/custom-block-mechanics/custom-block-light.md) by sending fake light blocks to players.\
With `light_data_injection` enabled, Nexo instead writes the light straight into the chunk light data sent to players.\
This means furniture lights can also be placed inside barrier hitboxes, and custom blocks use the block itself as the light source.

```yaml
Experimental:
  light_data_injection: false
```

{% hint style="warning" %}
This relies on Nexo's packet handling, so with `Experimental.packets.disable_netty_injection` enabled it falls back to light blocks.\
Bedrock players through Geyser will not see these lights.\
Changing it takes effect on `/nexo reload configs`
{% endhint %}
