Editor Overview & Navigation Tree
Belongs to: Editor GUI · Subpages: Item Editor · Action Editor · Set Editor · Other Editors
QI provides a full suite of in-game visual editors, letting you create / edit items, actions, Sets, and more without touching YAML. The GUI saves to the same YAML, fully interoperable with hand-writing.
1. Opening the Editor
| Command | Opens |
|---|---|
/qi editor | Type browser (the edit root entry) |
/qi editor browse | Same as above |
/qi editor <itemId> | Directly opens the Item Editor for a given item |
Permission: qinhitems.editor.
🖼️ [Image placeholder] The type browser interface opened by
/qi editor· suggestedassets/editor-type-browser.png
2. Navigation Tree Overview
/qi editor → Type Browser (TypeBrowser)
│
└─ Pick type → Item Browser (ItemBrowser, filtered by type)
│
├─ Right-click item / New → Item Editor (ItemEdition) ★ main interface
│ ├─ Material / Quality / Type / Display Name / Item Name / Lore (chat input)
│ ├─ Toggles: Unbreakable / Glow / Hide Attributes / Hide Enchantments (instant toggle)
│ ├─ Max Stack / CustomModelData / Enchant Total Cap (chat input)
│ ├─ [Actions/Skills] → Action Editor (ActionRefsEdition)
│ │ ├─ Trigger tabs
│ │ ├─ [Add Handler] → Action Handler Picker (ActionHandlerPicker)
│ │ │ └─ Pick handler → Payload form (PayloadSchemaForm) or chat input
│ │ └─ [Bind Skill] → Skill Binding (SkillBinding)
│ ├─ [Gem Sockets] → Gem Socket Editor (GemSocketEdition)
│ ├─ [Attributes] → Attribute Editor (AttributeEditor)
│ │ └─ [Base Value] → Base Value Editor (BaseValueEditor)
│ ├─ [Permanent Effects] → Permanent Effect Editor (PermEffectEditor)
│ ├─ [Enchantments] → Enchantment Editor (EnchantmentEditor)
│ ├─ [Restrictions] → Restriction Editor (RestrictionEditor)
│ ├─ [Provider] → Provider Browser (ProviderBrowser)
│ ├─ [Templates] → Template Hub (TemplateHub)
│ │ ├─ Definitions: Lore / Fragments / Variables
│ │ ├─ Skills / Abilities / Resource Packs
│ ├─ [Set] → Set Hub (SetHub)
│ │ ├─ New Set / Bind to existing Set
│ │ └─ Edit Set (SetEdit) → Piece count / Bonuses (SetBonusEdit)
│ ├─ [Resource Pack/Model] → Resource Pack Hub (ResourcePackHub) → Model picker
│ └─ [Save] (slot 53)
│
└─ Delete mode / PagingSee the corresponding subpages for details on each sub-interface.
3. Common Interaction Conventions
| Operation | Meaning (common to most interfaces) |
|---|---|
| Left-click | Edit / Select / Move up |
| Shift + Left-click | Move down |
| Right-click | Delete / Cancel |
| Shift + Right-click | Delete / Confirm dangerous operation |
| Chat input | Many fields, when clicked, will close the inventory and prompt you to type in chat; enter cancel to abort |
| Paging buttons | Previous / Next page when a list exceeds one page |
Chat input is driven by EditorChatInput, with a unified prompt format (title, hint, example, cancel to abort).
🖼️ [Image placeholder] A screenshot of the chat box during a chat input prompt (editing the display name) · suggested
assets/editor-chat-prompt.png
4. Sessions & Saving
- Edit session (EditorSession): tracks the current edit state per player (working copy, current trigger, drafts, etc.). Closing the inventory without saving = discard changes.
- Save (EditorSaveGuard): only clicking the save button (Item Editor slot 53) writes back to YAML. Before saving,
PolicyEnginevalidation runs: errors are reported and rejected, warnings are reported but proceed. After saving, the action table is hot-reloaded.
5. Key Features
- Fully GUI-driven: almost every YAML field can be edited in the GUI; YAML is merely the persistence format.
- Opaque action payloads: QI does not interpret handler payloads, but if a handler registers a payload schema, the GUI generates a form with typed fields.
- Sets are global: binding an item into a Set automatically updates the Set YAML, no separate save needed.
- MiniMessage Lore: display names / Lore support full MiniMessage.
- Single permission:
qinhitems.editoris the one permission governing all editing features, with no fine-grained division.