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/
├── 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
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:
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.
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:
| File | Defines |
|---|---|
modules/kits.yml | Kit contents, cooldowns, permissions |
modules/custom-items.yml | Custom item recipes, lore, abilities |
modules/recipes.yml | Custom shaped / shapeless crafting recipes |
modules/bosses.yml | Custom boss definitions, phases, loot |
modules/rituals.yml | Multi-block / multi-item ritual definitions |
modules/events.yml | Scheduled in-game events |
modules/item-sets.yml | Wear-set bonuses (e.g. full Netherite = X) |
modules/bans.yml | Item / block / recipe / potion blacklist |
modules/death-messages.yml | Custom 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.
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
portorbind-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.
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.