Per-Module Config
Every feature in uxmEssentials is a module with its own folder under
plugins/uxmEssentials/modules/. All of a feature's tunables live in that folder, and
the module is switched on or off by the first key in its own config.conf. There is
no central switchboard file (see the warning below).
How to Edit¶
- Open
plugins/uxmEssentials/modules/<module>/config.conf. - Change the values you need — keep braces
{ }and quotes balanced. - Save.
- Apply it with a targeted reload:
HOCON, not YAML
These files are HOCON: # comments, kebab-case keys, quoted strings, bare numbers
and booleans, [ … ] lists, { … } blocks. Indentation is cosmetic; braces and
quotes are load-bearing.
There is no modules.conf
Modules are not enabled from a central file — that file does not exist. Each
module is toggled by the enabled key at the top of its own
modules/<module>/config.conf. Older notes that mention a modules.conf
switchboard are stale.
The enabled first key¶
Open any module's config.conf and the very first key is enabled:
# Homes — /home opens the slot-based GUI.
enabled = true
default-limit = 3
# … the rest of the homes settings …
- Set
enabled = falseto switch the whole module off. A disabled module registers no commands, no listeners, runs no database migrations, and holds no runtime state — it is genuinely inert, not just hidden. - Set it back to
trueand/uxmess reload <module>to bring it up live. - Disabling a module never deletes stored data. Its rows stay in the database and return untouched when you re-enable it.
All shipped modules start enabled = true, except the one-shot EssentialsX importer
(migration), which ships disabled — you turn it on only for a cutover. See
Modules & Reloading for the full roster.
Big-block sub-files¶
A few modules lift a large section out of config.conf into a sibling file in the same
folder, purely to keep the main file readable. They are mounted as if they were part of
the module:
| Module | Sub-file | Holds |
|---|---|---|
teleport |
rtp.conf |
/rtp safe-search tuning |
economy |
currencies.conf |
Every currency definition |
communication |
join-quit.conf, announcer.conf, info-pages.conf, advancements.conf |
The four communication feature blocks |
Editing a sub-file and reloading its module applies it the same as editing the main
config.conf.
The gui/ sub-folder holds one file per in-game management panel (the editors behind
/uxmess gui). Those are styled like custom menus; you rarely
touch them by hand.
Example: modules/homes/config.conf¶
enabled = true
default-limit = 3 # homes per player without a limit permission node
limit-mode = "highest" # combine limit tiers: "highest" or "stack"
unlimited-max = 1000 # slot ceiling for an unlimited (-1) quota
date-format = "dd/MM/yyyy HH:mm" # how a home's creation time renders in the GUI
disabled-worlds = [] # worlds where homes may not be created/relocated
block-unsafe-sethome = true # reject placing a home in an unsafe spot
economy {
enabled = false # charge players for home actions
create-cost = 0
relocate-cost = 0
teleport-cost = 0
currency = "default"
}
claims {
enabled = true # honour the active land-claim plugin
require-claim = false
block-foreign-claims = true
check-teleport-access = true
}
The pattern repeats everywhere: enabled first, then flat tunables, then grouped blocks
for optional sub-systems (economy charges, claim integration, and so on).
Example: modules/teleport/config.conf¶
enabled = true
cooldown-start-phase = "teleport" # request | accept | teleport
request-ttl-seconds = 60 # how long a /tpa request stays pending
default-warmup = 3 # seconds, absent a warmup permission tier
default-cooldown = 5 # seconds, absent a cooldown permission tier
teleport-to-center = true # snap the destination to the block centre
warmup {
cancel-on-move = true
cancel-on-rotate = false
move-threshold = 0.0 # blocks of movement tolerated before cancelling
}
back {
on-death = true # /back may return to a death location
death-delay-seconds = 0
ignored-causes = ["ender_pearl", "chorus_fruit"]
}
The /rtp safe-search lives beside it in modules/teleport/rtp.conf:
min-radius = 100
max-radius = 5000
claim-aware = true # avoid landing on claimed land
queue-target-size = 10 # pre-validated locations kept ready per world
excluded-biomes = ["ocean", "deep_ocean", "river"]
avoid-blocks = ["lava", "magma_block", "fire", "cactus"]
Example: modules/economy/config.conf¶
enabled = true
amount-format = "full" # full (grouped digits) | compact (1.2k style)
wallet {
default-currency = "coins" # id of the currency used when none is named
starting-balance = "0"
max-balance = "1000000000000"
gui-enabled = true
}
bank {
enabled = true # enable /bank shared accounts
}
pay {
min-pay = "0.01"
}
Individual currencies (symbol, precision, starting balance, per-currency flags) are
defined in modules/economy/currencies.conf.
Reload per module¶
/uxmess reload <module> re-reads only that module's subtree — its config.conf
plus any sub-files — restarts just that module off-thread, and re-publishes its commands.
It is faster and safer than a full reload: if you introduce a syntax error, only that one
module refuses to reload and the log points at the file.
Deep tuning lives in the feature guides
This page covers how the files are laid out. For what each key actually does per feature, jump to the matching Feature Guide — for example Homes, Teleport & RTP, Economy, Kits, or Moderation.
Next Steps¶
- Modules & Reloading — the module roster and reload model.
- config.conf (Globals) — the settings that are not per-module.
- Renaming Commands — rename or disable any command per install.
- Permission Reference — the nodes each module reads.