跳到主要内容

Discovery Codex Category

Defines a discovery codex category

Manifest entry defining a discovery category and its menu layout.

字段

字段类型默认值描述
categoryString—Unique identifier for this discovery category
titleString—Title displayed at the top of the inventory占位符
rowsInt6Number of rows for the inventory (1-6)
orderInt0Display order when listing categories
iconItem—Icon used when referencing this category
iconNameString?—Optional custom name for the icon when displayed in menus. Placeholders: {unlocked}, {locked}, {total}, {percent}占位符
iconLoreList<String>emptyOptional lore lines for the icon when displayed in menus. Placeholders: {unlocked}, {locked}, {total}, {percent}占位符多行
lockedIconLoreList<String>emptyLore to display for the icon when the category is locked. Placeholders: {unlocked}, {locked}, {total}, {percent}占位符多行
backgroundItem?—Optional background filler item
itemSlotRangeString—Range of slots where discovery items will be displayed (e.g. '1-25')
startSlotInt0Slot index where items start (0-based)
fillByRowBooleantrueIf true, items fill row by row; otherwise column by column
previousButtonItem?—Item used for the previous page button
previousButtonSlotInt0Slot for the previous page button
previousButtonNameString?—Custom name for the previous page button. Placeholders: {page}, {max_page}, {unlocked}, {locked}, {total}, {percent}占位符
previousButtonLoreList<String>emptyLore for the previous page button. Placeholders: {page}, {max_page}, {unlocked}, {locked}, {total}, {percent}占位符多行
nextButtonItem?—Item used for the next page button
nextButtonSlotInt8Slot for the next page button
nextButtonNameString?—Custom name for the next page button. Placeholders: {page}, {max_page}, {unlocked}, {locked}, {total}, {percent}占位符
nextButtonLoreList<String>emptyLore for the next page button. Placeholders: {page}, {max_page}, {unlocked}, {locked}, {total}, {percent}占位符多行
backButtonItem?—Item used for the back button
backButtonSlotInt44Slot for the back button (default: 44, bottom-right area)
backButtonNameString?—Custom name for the back button占位符
backButtonLoreList<String>emptyLore for the back button占位符多行
infoButtonItem?—Item used for the info button
infoButtonSlotInt4Slot for the info button
infoButtonNameString?—Custom name for the info button. Placeholders: {unlocked}, {locked}, {total}, {percent}占位符
infoButtonLoreList<String>emptyLore for the info button. Placeholders: {unlocked}, {locked}, {total}, {percent}占位符多行
parentCategoryString?—Optional parent category identifier; if set, this category becomes a sub category
itemsList<DiscoveryItemConfig>emptyItems contained within this category
DiscoveryItemConfig(10)
字段类型默认值描述
entryIdString—Unique identifier for this discovery item
itemItem—Base item to display in the codex
overrideNameString?—Optional display name override. Placeholders: {unlocked}, {locked}, {total}, {percent}占位符
overrideLoreList<String>emptyLore to override the item's default lore when unlocked. Placeholders: {unlocked}, {locked}, {total}, {percent}占位符多行
overrideOrderInt?—Display order override
lockedLoreList<String>emptyLore to display when the item is locked. Placeholders: {unlocked}, {locked}, {total}, {percent}占位符多行
unlockedLoreList<String>emptyLore to append when the item is unlocked. Placeholders: {unlocked}, {locked}, {total}, {percent}占位符多行
criteriaList<Criteria>emptyCriteria that need to be met for the item to be unlocked (Typewriter facts)
lockedItemItem?—Optional item to display when the entry is locked
onUnlockTriggersList<Ref<TriggerableEntry>>emptyTriggers to fire when this specific item is unlocked by a player
guiLayoutCodexGuiLayoutPAGINATEDGUI layout type for the codex menu可选值:PAGINATEDSCROLLABLEFRAMESIMPLE
onUnlockTriggersList<Ref<TriggerableEntry>>emptyTriggers to fire when this category is unlocked by a player
baseMenuIdString—Entrée open_gui servant de châssis partagé (ex. menu_shell). Vide = la catégorie s'ouvre en inventaire autonome (comportement historique). Renseigné = la catégorie devient un écran du menu global : son propre plan de slots (itemSlotRange/boutons) doit alors tenir dans la zone de contenu du châssis (rows ≤ 3), pas l'inventaire entier.
TypeWriter 通用字段(criteria)
字段类型默认值描述
criteriaList<Criteria>emptyCriteria that must be met for this category to be unlocked

How to use it​

category is the identifier used by the command, the placeholders and parentCategory, so keep it short and unique. A category that other categories point to with parentCategory shows those sub-categories (and recipe categories) instead of its own items.

  • criteria — when not met, the category is locked: its icon uses lockedIconLore and cannot be opened from the parent menu or the global menu.
  • items — each item has an entryId, an item shown once unlocked and an optional lockedItem. Its own criteria decide whether it is unlocked; with none, it is always unlocked. overrideName and lockedLore / unlockedLore / overrideLore change the name and lore.
  • itemSlotRange — a range such as 10-16, counted from 1. Leave it empty to use startSlot and fillByRow.
  • onUnlockTriggers (category and item) — fire once per player when the category or item is first seen unlocked. They need a Codex Unlock artifact.
  • baseMenuId — opens the category inside a shared GUI chassis; keep rows at 3 or fewer.

overrideOrder on items sets the rank of an item. An item without a value takes the rank of its position in the list, so overrideOrder = n places the item as if it were at position n. When two items have the same rank, the one higher in the list comes first. With no overrideOrder at all, items appear in the order of the list.