Configuration
World Settings

World settings(config.json)

PNX supports loading worlds from BDS, you just need to place them under worlds to load them. After loading the world, a config.json will be generated to control some world-related configs.

Example

The following is a config example used to start the built-in Terra terrain generator in PNX and use its default config pack. Remember to turn on use-terra=on in server.properties before using it.

config.json
{
  "format": "leveldb",
  "enable": true,
  "generators": {
    "0": {
      "name": "terra",
      "seed": 0,
      "enableAntiXray": false,
      "antiXrayMode": "LOW",
      "preDeobfuscate": true,
      "dimensionData": {
        "dimensionName": "minecraft:overworld",
        "dimensionId": 0,
        "minHeight": -64,
        "maxHeight": 319,
        "height": 384,
        "chunkSectionCount": 24
      },
      "preset": {
        "pack": "overworld"
      }
    }
  }
}

Config items

Here are explanations of some config items in the above example

DimensionData: object

OverWorld

config.json
{
    "dimensionName": "minecraft:overworld",
    "dimensionId": 0,
    "minHeight": -64,
    "maxHeight": 319,
    "height": 384,
    "chunkSectionCount": 24
}

Nether

config.json
{
    "dimensionName": "minecraft:nether",
    "dimensionId": 1,
    "minHeight": 0,
    "maxHeight": 127,
    "height": 128,
    "chunkSectionCount": 8
}

End

config.json
{
    "dimensionName": "minecraft:end",
    "dimensionId": 2,
    "minHeight": 0,
    "maxHeight": 255,
    "height": 256,
    "chunkSectionCount": 16
}

enable: boolean

Value: true false

Controls whether to load this world, default is true

format: string

Value: leveldb

Controls the loader for loading the world, currently only supports leveldb

generators: object

Key: DimensionId Key representing the dimension ID to load [0,1,2]
Value: Generator

Controls the dimensions loaded for this world

Generator: object

  • name Name of the generator, used to control the terrain generator used by this dimension, such as terra, specific values are determined by plugins and core
  • seed Seed used for random number generation
  • enableAntiXray Whether to enable anti Xray anti-cheat
  • antiXrayMode Anti Xray anti-cheat check level, effective only when enableAntiXray is enabled [LOW MEDIUM HIGH]
  • preDeobfuscate Whether to pre-deobfuscate blocks, which can optimize the experience of normal players, effective only when enableAntiXray is enabled [true false]
  • dimensionData: DimensionData
  • preset An object whose values are passed to the generator, how to use them needs to be checked in the corresponding generator's documentation

PNX Built-in Generators

Flat

A flat generator, very similar to the vanilla

Terra

  • Terra is an open-source generator (opens in a new tab), you can use terra in PNX to generate epic worlds.
  • Set use-terra=on in server.properties to enable the terra generator.
  • Terra controls terrain generation through config packs, and you can use different config packs for different experiences.
  • Terra supports loading config packs from zip or folder. To install a config pack, just place it in the ./terra/packs folder and restart the server.
  • Some available config packs can be found here: Community Packs (opens in a new tab).

Next, we will use the ReimagEND (opens in a new tab) config pack as an example to describe how to use config packs. Firstly create a world folder in the worlds directory, such as end, and create the following config file config.json

config.json
{
  "format": "leveldb",
  "enable": true,
  "generators": {
    "2": {
      "name": "terra",
      "seed": 0,
      "enableAntiXray": false,
      "antiXrayMode": "LOW",
      "preDeobfuscate": true,
      "dimensionData": {
        "dimensionName": "minecraft:end",
        "dimensionId": 2,
        "minHeight": 0,
        "maxHeight": 255,
        "height": 256,
        "chunkSectionCount": 16
      },
      "preset": {
        "pack": "REIMAGEND"
      }
    }
  }
}

The preset/pack is the name of the config pack, you can find it in the id item of the pack.yml file in the config pack. Then, restart the server. Type world tp end Dim2 teleport to end world

Why Settings Do Not Take Effect

  • If your world was not previously using the terra generator, the settings will not take effect, you need to create a new world.
  • Please check if you have configured Terra correctly, otherwise it will not take effect.

Too Much Memory Usage

If you want to reduce memory usage, you can try modifying ./terra/config/yml

config.yml
cache:
  structure: 0 # default 32
  sampler: 0 # default 128
  biome-provider: 0 # default 32

This will reduce memory usage but will increase CPU load.