Skip to content

Commands ​

Every /codex subcommand, the permission each one needs, and the meaning of the common errors are listed below

EmakiCodex uses /codex as its main command and /ecodex as an alias. Both codex and open open the category-entry codex GUI; the examples below all use /codex

Remember two rules first: the normal entry checks emakicodex.use, and emakicodex.admin bypasses the use, reload, and debug checks. All administrative targets currently have to be online players

Command list ​

CommandPermissionDescription
/codex / /codex helpemakicodex.useShows help
/codex codex / /codex openemakicodex.use or emakicodex.adminOpens the category-entry codex GUI
/codex reloademakicodex.reload or emakicodex.adminReloads config, language files, vanilla advancement pages, category entries, and GUI templates; rebuilds registrations and tries to resync online players
/codex grant <player> <advId>emakicodex.adminGrants one vanilla Codex advancement to an online player
/codex revoke <player> <advId>emakicodex.adminRevokes one vanilla Codex advancement from an online player
/codex admin unlock <player> <category/entry>emakicodex.adminDirectly unlocks one category entry without activating or claiming it
/codex admin reset <player> [category/entry]emakicodex.adminResets one category entry, or all category-entry state when the composite id is omitted
/codex debug ...emakicodex.debug or emakicodex.adminManages the advancement debug module. Detailed subcommands are provided by CoreLib DebugCommand

Examples ​

text
/codex
/codex codex
/codex open
/codex reload
/codex grant Steve example/first_step
/codex grant Steve emakicodex:example/challenge
/codex revoke Steve example/first_step
/codex admin unlock Steve example/first_blood
/codex admin reset Steve example/first_blood
/codex admin reset Steve
/codex debug advancement on
/codex debug advancement off

Note: grant and revoke require the target player to be online because the current implementation matches online player names exactly. admin unlock/reset also require an online target. Vanilla advId supports two forms:

FormExampleDescription
page/nodeexample/first_stepRecommended short form for server administrators
Full NamespacedKeyemakicodex:example/first_stepMatches the underlying vanilla advancement key

Category-entry commands use the composite id from codex/*.yml, not a vanilla NamespacedKey (the unique path the vanilla game assigns to each advancement):

text
<category_id>/<entry_id>

For example, example/first_blood. Keep the three-step order in mind: admin unlock changes only the unlocked state, a left click in the GUI activates attribute rewards, and a right click performs the one-time rewards.actions claim

Reload behavior ​

/codex reload performs these operations:

  1. Releases missing default resources, controlled by config.yml > release_default_data
  2. Reloads config.yml, lang/*.yml, advancements/*.yml, codex/*.yml, and GUI templates
  3. Removes and re-registers dynamic advancements under the EmakiCodex namespace, then rebuilds category entries and reward providers
  4. If PacketEvents is available, re-pushes the vanilla advancement tree to online players; otherwise online players may need to reconnect to see advancement UI changes
  5. Keeps player category-entry data in data/<uuid>.yml and derives attribute rewards again from the new configuration

Permission nodes ​

The four permission nodes and their defaults are listed below:

PermissionDefaultCovers
emakicodex.usetrueUse help, the category-entry GUI (codex/open), and the normal command entry
emakicodex.reloadopUse /codex reload. Can be replaced by emakicodex.admin
emakicodex.debugopUse /codex debug .... Can be replaced by emakicodex.admin
emakicodex.adminopUse grant, revoke, and admin unlock/reset, and override use/reload/debug checks

Common LuckPerms examples:

text
/lp group default permission set emakicodex.use true
/lp group admin permission set emakicodex.admin true
/lp group admin permission set emakicodex.reload true
/lp group admin permission set emakicodex.debug true

Common failure cases ​

Match your error against this table first:

CaseExplanation
Player not foundThe grant / revoke target is offline, or the name is not an exact match
Advancement ... is not registered or unchangedThe advancement ID is wrong, the page failed to load, or the player's progress did not change
category/entry is not foundThe category file did not load, the composite id is misspelled, or the entry has not been unlocked
admin unlock succeeds but no attributes appearunlock changes only the unlocked state; activate the entry in the GUI, and ensure it declares rewards.attributes
A right-click claim failsThe entry is locked, has no rewards.actions, or has already been claimed; claims are one-time
Online players cannot see new nodes after reloadPacketEvents is missing or resync failed; players should reconnect
Node coordinates do not applyPacketEvents must be installed and advancement.packet_coordinates: true must be enabled