-
Notifications
You must be signed in to change notification settings - Fork 14
Installation
| Server software | Spigot, Paper, or a fork of either |
| Minecraft versions | Selected releases from 1.16.5 to 1.21.11, plus 26.1.2 and 26.2 |
| Declared API version |
1.16 on Spigot, 1.19 on Paper |
Not every version in that span is supported — 1.18, 1.18.1, 1.19–1.19.3 and 1.20 are explicitly rejected, and an unsupported version makes Codex disable itself. Check the exact list in Version Support before upgrading.
- Download the Codex jar (built as
codex-<version>.jar) into your server'splugins/folder. - Start the server. Codex generates
plugins/CodexCore/config.ymland its language files. - Stop the server, adjust Configuration to taste, and start again.
- Install the plugins that depend on Codex.
The plugin registers itself as
CodexCore, notCodex. That is the name Bukkit knows it by, the name of its data folder, and the prefix on its permission nodes. The Maven artifact iscodex— the two deliberately differ. See Permissions and Developer Getting Started.
Codex has no required dependencies. It will start and run on a bare server.
Codex declares load: STARTUP, so it is enabled before worlds are loaded. The
Compat and NMS layer has to be ready before dependent plugins initialise.
paper-plugin.yml also carries a load-before block naming Fabled and Divinity. Be aware this block
is very likely inert — load-before is not part of Paper's schema (ordering there is expressed
through dependencies.server.<Plugin>.load: BEFORE), and the entries misspell bootstrap. In
practice ordering rests on load: STARTUP and each dependent plugin's own depend.
None are required. They divide into two groups, which behave differently at load time.
Load order is guaranteed relative to these:
| Plugin | What Codex uses it for |
|---|---|
| Vault | Permission groups, player prefixes/suffixes, economy access |
| WorldGuard | Region lookup and PvP/combat permission checks |
| MythicMobs | Mob identification (both v4 and v5 APIs, selected automatically) |
| Oraxen | Custom item resolution |
Not declared anywhere, so load order is not guaranteed. Codex compensates by completing hook setup when it sees the plugin enable later:
| Plugin | What Codex uses it for |
|---|---|
| Citizens | NPC trait registration and NPC click events; NPCs are also excluded from combat targeting |
| Nexo | Custom item resolution |
| PlaceholderAPI | Placeholder expansion in the actions engine and GUI items |
| ItemsAdder | Custom item resolution |
Oraxen, Nexo, and ItemsAdder resolve items through the provider API — see Item Providers. Note the Oraxen provider is marked deprecated for removal in source, though it is still registered.
A quirk worth knowing: the Vanilla, Oraxen, and ItemsAdder providers are registered whether or not those plugins are installed. Availability is checked lazily at lookup time. Only Nexo is registered conditionally.
Sentinel is a further undeclared integration: combat checks consult SentinelTrait to decide
whether an NPC may be attacked.
Codex downloads two libraries at runtime through Bukkit's libraries mechanism rather than shading
them:
com.mysql:mysql-connector-jorg.apache.commons:commons-lang3
The first server start therefore needs access to Maven Central. If your server is firewalled,
pre-seed the libraries/ folder.
Codex is the renamed continuation of ProMCCore and declares provides: ProMCCore, so any plugin
whose depend/softdepend still names ProMCCore resolves against Codex.
The data folder is migrated for you. On first startup Codex renames plugins/ProMCCore to
plugins/CodexCore and rewrites Core: keys to CodexCore: in lang/messages_en.yml. A legacy
plugins/Codex folder is migrated the same way.
To migrate:
-
Back up your
plugins/folder. Migration failures are logged only as aWARNING, so a partial migration is easy to miss. - Delete
ProMCCore.jar. Do not run both — they contain overlapping classes. - Drop in the Codex jar and start the server.
- Check the console for
Migrating ProMCCore to CodexCoreand confirmplugins/CodexCore/looks right.
Note that /corereload no longer exists. Use /codex reload — see Commands, and read the
caveat there about what reload actually does.
Codex ships both a plugin.yml and a paper-plugin.yml. On Paper the latter is used, which changes
a few things:
- The four soft-dependencies are declared with explicit
load: BEFOREordering. -
has-open-classloader: trueis set, so dependent plugins can access Codex's classes. - The declared API version is
1.19rather than1.16. -
There is no
commands:section, so the (already non-functional)/stucklabel does not exist at all on Paper./unstuckworks on both, because it is registered at runtime. See Commands.
Otherwise both paths register the same features.
Source · Issues · Discord · Maven repo
Server Owners
- Installation
- Configuration
- Commands
- Permissions
- Join and Interact Commands
- Localization
- Version Support
Deprecated
-
Chat Module
⚠️ -
Scoreboard Module
⚠️
Developers