# Datapack settings

Change machine settings and fluid properties.

Machine settings load with the world; fluid properties reload with `/reload`.

## Machine settings

Machine settings live in the world-loaded `hbm:machine_config` registry:

```text
data/hbm/hbm/machine_config/centrifuge.json
```

The first `hbm` is the entry's namespace; the second is the registry's namespace. Start from the corresponding file in your installed mod jar.

For example, this keeps the shipped centrifuge power settings and changes its base processing time from 200 to 100:

```json
{
  "power_consumption": 200,
  "power_capacity": 100000,
  "processing_time": 100
}
```

**Reopen the world or restart the server** to apply changes.

The [Machine Settings Reference](https://movblock.mov/ntm-next/wiki/machine-settings.md) lists each machine entry, its keys, shipped values and field meanings.

A higher-priority file replaces the whole entry. An omitted declared key uses its code default. Copy the complete installed entry and change the relevant values.

The registry validates every entry before publishing any value. An undeclared entry ID, an undeclared key or an invalid value stops the world from loading.

The [game settings](https://movblock.mov/ntm-next/wiki/game-settings.md) registries `hbm:explosion_config`, `hbm:mob_config`, `hbm:world_config`, `hbm:item_config`, `hbm:energy_config` and `hbm:radiation_config` follow the same loading, replacement and validation rules.

## Fluid properties

Fluid-property files name an **existing registered fluid**:

```text
data/hbm/fluid_property/diesel.json
data/minecraft/fluid_property/water.json
```

The file's resource identifier is the fluid identifier: `hbm:diesel` or `minecraft:water`.

The [Fluid Trait Reference](https://movblock.mov/ntm-next/wiki/fluid-traits.md) lists the outer fields, phases, flags, parameterized traits and container descriptors.

To change diesel's display colour, copy the complete installed `diesel.json` and change `color`. Retain its fuel values, pollution traits, container settings and shared-fluid tags.

Refresh fluid properties with `/reload`; the server sends the current properties to clients.

The fluid-property listener validates a replacement before publishing and syncing it. A failed reload leaves the last published property and equivalence tables active; correct the reported files and retry.

> **since NTM 1.0.4**
>
> ## Fluid property patches
>
> A patch changes selected parts of a fluid-property file that another pack or mod provides:
>
> ```text
> data/<namespace>/fluid_property_patch/<fluid-namespace>/<fluid-path>.json
> ```
>
> `data/example/fluid_property_patch/hbm/nitric_acid.json` patches `hbm:nitric_acid`. The fluid must have a fluid-property file. Patches apply on `/reload` before that file is parsed, and the patched object must satisfy the [fluid-property format](https://movblock.mov/ntm-next/wiki/fluid-traits.md).
>
> | Patch key | Effect |
> | - | - |
> | Outer field | Replaces the field; `false` removes it |
> | Entry of `traits` or `containers` | Replaces or adds that trait or container; `false` removes it |
> | Entry of `flags` | `true` adds the flag; `false` removes it |
>
> Patches for one fluid combine when no two touch the same outer field, entry or flag. Two patches touching the same key, a removal of an absent field, entry or flag, or an addition of a present flag fails the reload and names the files.
>
> NTM Space ships `data/hbmspace/fluid_property_patch/hbm/nitric_acid.json`, which removes one trait:
>
> ```json
> {"traits": {"polluting": false}}
> ```
