DUXPLIMA Documentation

Core Concepts

Modules, the config layout, permissions, messages and threading.

Five ideas carry through the rest of the documentation.

Modules

The plugin is 34 modules: teleport, homes, warps, economy, kits, moderation, holograms, worlds and the rest. Each is self-contained, and a disabled module wires nothing: no commands, no listeners, no tables, no tasks, no state.

A module is switched by the enabled key at the top of its own config file. There is no central switchboard, and disabling a module never deletes its data.

/uxmess status              # which modules are on
/uxmess reload <module>     # re-read one module's files
/uxmess reload              # re-read everything

A reload re-reads the config tree and the message catalogs off the main thread, then runs each module's own re-read step and reports what happened.

LineMeaning
[OK]Re-read, and the new values are live
[RESTART]That module wires itself at startup, so the edit waits for a restart
[FAIL]The file could not be read, usually a HOCON syntax error; the old values stay in force

Changing what is wired (turning a module or a mechanic on, adding a command) needs a restart. Message edits and anything reported [OK] apply at once.

Config layout

PathWhat lives there
config.confGlobals: storage, default language, cross-server, update checks
modules/<module>/config.confOne file per module, with enabled as the first key
messages/messages_<lang>.confPlayer-facing text, per language
commands/commands.confRename, re-alias or disable any command
menus/*.confYour own menus

Keys are kebab-case. An update appends the keys it added, with their comments, and leaves your values alone; a key you deleted is not put back. Delete a key to reset it, delete a file to regenerate it. Config is loaded once and swapped in one go on reload. See Configuration.

Permissions

Every node lives under uxmessentials.. Self-service verbs default to on, so /home, /balance, /msg, /kit and /warp work on a fresh install; verbs that touch other players or the server default to op.

Quotas and tiers are numbered nodes rather than config lists:

NodeMeaning
uxmessentials.home.limit.<n>How many homes a player may set
uxmessentials.vault.amount.<n>How many vaults a player may own
uxmessentials.tp.cooldown.<seconds>Teleport cooldown for that group
uxmessentials.kit.cooldown.<seconds>Kit cooldown for that group

Granting uxmessentials.home.limit.5 allows five homes. The highest node held wins. A permission plugin is optional; with LuckPerms installed the same quotas can also come from LuckPerms meta. See the Permission Reference.

Messages

Every player-facing string is a catalog entry written in MiniMessage, never legacy & codes. Catalogs are per language in messages/messages_<lang>.conf; English and Turkish ship with the plugin.

/lang            # your current language
/lang tr         # switch
/lang reset      # back to the default

The chain is your /lang choice, then your client locale, then the server default, then English. See Messages.

Threading

Work is scheduled through Folia-safe schedulers, so the plugin runs on both Paper and Folia. Anything slow (the /rtp location search, a /baltop query, every database call) runs off the main thread and hands the tick loop back quickly. Storage is embedded SQLite unless you point it elsewhere; see Database.