Configuration

How NexoraSMP organises its config files, what each one does, and how to apply changes without restarting.

Folder layout

NexoraSMP keeps configs grouped by purpose so the data folder doesn't become a flat dump:

plugins/NexoraSMP/
plugins/NexoraSMP/
├── config.yml              # main settings (modules, intervals, ports)
├── messages.yml            # all player-facing text (MiniMessage)
│
├── modules/                # per-module gameplay configuration
│   ├── kits.yml
│   ├── custom-items.yml
│   ├── recipes.yml
│   ├── bosses.yml
│   ├── rituals.yml
│   ├── events.yml
│   ├── item-sets.yml
│   ├── bans.yml
│   └── death-messages.yml
│
├── data/                   # runtime persistence, don't edit by hand
│   ├── warps.yml
│   └── nexora.db           # SQLite database
│
└── config-backups/         # auto-created when you save via the dashboard
Note

Upgrading from a flat layout? NexoraSMP detects pre-1.0 installs (where every YAML lived at the root) and migrates them into the new folders automatically on first start. Your edits are preserved.

config.yml: the main file

config.yml is the central control panel. Every module has a section here that controls whether it's enabled and its top-level tunables. Per-feature data (kit definitions, custom items, etc.) lives in the dedicated files under modules/.

Top-level structure:

config.yml
general:
  language-file: messages.yml
  prefix: "<gradient:#9d4edd:#c77dff>[NexoraSMP]</gradient> <gray>"

modules:
  combat:
    enabled: true
    # … combat-specific settings

  kits:
    enabled: true

  web-dashboard:
    enabled: true
    port: 8765
    bind-address: "0.0.0.0"
    tls:
      enabled: false

messages.yml: player-facing text

Every string the plugin ever shows to a player lives in messages.yml. All values support MiniMessage (preferred) or legacy & codes.

Tip

For multi-language servers, copy messages.yml to messages-fr.yml, translate, and set general.language-file: messages-fr.yml in config.yml.

modules/*.yml: per-module data

Each file under modules/ holds the data definitions for that module:

FileDefines
modules/kits.ymlKit contents, cooldowns, permissions
modules/custom-items.ymlCustom item recipes, lore, abilities
modules/recipes.ymlCustom shaped / shapeless crafting recipes
modules/bosses.ymlCustom boss definitions, phases, loot
modules/rituals.ymlMulti-block / multi-item ritual definitions
modules/events.ymlScheduled in-game events
modules/item-sets.ymlWear-set bonuses (e.g. full Netherite = X)
modules/bans.ymlItem / block / recipe / potion blacklist
modules/death-messages.ymlCustom death messages by cause

data/: runtime persistence

Files under data/ are written to by the plugin at runtime. You generally don't need to edit them by hand. The nexora.db SQLite database stores punishments, tickets, homes, audit log, and player data.

Warning

Don't edit data/nexora.db while the server is running. Stop the server, take your edits, and restart.

Reloading

After editing a config file, run:

/nexora reload

This re-reads every YAML file and re-applies values. Most modules pick up changes immediately.

Changes that need a restart

A few changes can't be applied without a full restart because they affect early lifecycle:

  • Enabling a module that was previously enabled: false
  • Changing the database backend (SQLite ↔ MySQL)
  • Changing the dashboard port or bind-address
  • Toggling Folia compatibility paths (rare)

Editing from the dashboard

The web dashboard ships with a built-in YAML editor under the Configs page. It lists every editable file (grouped by folder), gives you syntax-friendly editing, and auto-saves a backup to config-backups/ every time you save.

Backups are timestamped and one-click restorable from the same page.

Tip

After editing in the dashboard, you still need to run /nexora reload (or click the "Reload" button on the dashboard's Modules page) to pick up changes.