config.yml raw text line-by-line annotation
Belongs to: Reference · Related: Config file (sectioned version)
This page shows the complete default raw text of plugins/QinhItems/config.yml, with line-by-line annotations after each section. For the topic-grouped explanatory version, see config.yml full config.
After editing, run
/qi reloadto apply. Comment lines (starting with#) are QI's built-in explanations and can be kept.
Top: language and folders
yaml
# QinhItems main config
language: zh_CN
# Item definition folder (relative to plugin folder)
items-folder: items
# Deprecated — Actions are only written inside actions.triggers in items/*.yml
# actions-folder: actions
# Items without a type field fall into this type
default-type: misc
# When giving items, whether to try filling the player's inventory slots
give-overflow-drop: true| Key | Default | Description |
|---|---|---|
language | zh_CN | Message language code |
items-folder | items | Item YAML folder (relative to plugin data folder) |
default-type | misc | Default type for items without a type field |
give-overflow-drop | true | When /qi give finds the inventory full, the overflow drops naturally |
actions-folderis deprecated: actions are only written insideactions.triggersinitems/*.yml.
Write domain isolation write-domains
yaml
# Write Domain Isolation — separates runtime / layer / instance write sources
write-domains:
strict: true
runtime-owners:
- qi_admin
- qi_ui
- admin
runtime-prefixes:
- buff_
- temp_
- ui_
layer-owners:
- strengthen
- forge
- gem
- enchant
- socket
- refine
- embed
- upgrade
layer-prefixes:
- sys_
- layer_strict: true— Strict domain isolation; out-of-bounds writes raise an error;falseonly warns.runtime-owners/runtime-prefixes— Owners / prefixes allowed to write to the RUNTIME domain (temporary buffs / UI).layer-owners/layer-prefixes— Owners / prefixes allowed to write to the LAYER domain (socketing / strengthening / embedding).
For the mechanism see Layers and Assembly → Write domain policy; for related errors see Validation error quick reference §9.
Action routing and notifications
yaml
# Action routing red line — forbids logic fields like conditions / if / flow
action-routing:
strict: true
# Action runtime player notifications (self-testing / troubleshooting)
actions:
notify-cooldown: true
notify-handler-unavailable: trueaction-routing.strict: true— Logic fields (if/when/switch…) appearing in an action raise an error;falseonly warns. See Action system → Design.actions.notify-cooldown— Notify the player when triggered during cooldown.actions.notify-handler-unavailable— Notify when a handler is unavailable.
Gem bridge gem / legendinlay / magicgem
yaml
# Gem bridge (Legendinlay / MagicGem, choose one or coexist, see integrations/*_guide.yml)
gem:
inject-sockets: true
inject-on-rebuild: false
legendinlay:
enabled: true
# Fixed template seed, so items produced by /qi give and LegendCore getHookItem have consistent PDC (the inlay GUI recognizes gems)
stable-item-compare: true
socket-catalog: integrations/legendinlay_sockets.yml
inject-sockets: true
inject-on-rebuild: false
# Automatically writes plugins/LegendCore/groovy/QinhItemsModule.groovy and runs lce reload
auto-deploy-lc-script: true
magicgem:
enabled: true
socket-catalog: integrations/magicgem_sockets.yml
inject-sockets: true
inject-on-rebuild: falsegem.inject-sockets— Render socket Lore.gem.inject-on-rebuild— Whether to re-sync the provider onrebuild()(off by default).legendinlay.stable-item-compare— Fixed template seed, guaranteeing consistent PDC (the inlay GUI recognizes gems).legendinlay.auto-deploy-lc-script— Automatically deploys the LegendCore groovy fallback script.*.socket-catalog— Socket catalog path for each backend.
For full details see Gem sockets and Integrations.
Combat module combat
yaml
# Combat module (merged into QI) — when false, pure item-library mode
combat:
enabled: true
attribute-backend: auto # auto | attributeplus | noop
swing:
vanilla-hit: true # On swing, Bukkit attack(), damage settled by APcombat.enabled—false= pure item-library mode (no attributes added).attribute-backend—auto(detects AP) /attributeplus/noop.swing.vanilla-hit— On swing, calls Bukkitattack(), damage settled by AP.
Soulbound soulbound
yaml
soulbound:
enabled: true
lore-format: "&7{owner}的物品"
auto-bind-on-pickup: true
scan-containers: true
bypass-permission: "qinhitems.bypass.soulbound"
message-cooldown-ticks: 20
messages:
drop: "&c该物品已被灵魂绑定,无法丢弃。"
pickup: "&c该物品属于 {owner},你无法拾取。"
move: "&c该物品属于 {owner},你无法移动。"
container: "&c该容器内存放着已绑定的物品,无法破坏。"
container-drop: "&c「{container}」中存有绑定物品,不可丢弃。"Item by item:
| Key | Description |
|---|---|
enabled | Master switch |
lore-format | Bound Lore line; {owner} owner name, {level} bind level; leave empty to hide |
auto-bind-on-pickup | Auto-binds when picking up an unbound item carrying bind_on_acquire |
scan-containers | Recursively scans shulker boxes: retrieves bound items inside on death, blocks smuggling via drop / break |
bypass-permission | Holders of this permission ignore all binding restrictions |
message-cooldown-ticks | Rejection-notification cooldown (ticks), prevents spam; 0 = no limit |
messages.drop | Dropping a bound item |
messages.pickup | Picking up another's bound item |
messages.move | Moving a bound item in inventory / container |
messages.container | Breaking a container holding bound items |
messages.container-drop | Dropping a container holding bound items; {container} = shulker box name |
See Soulbound.
Attribute mapping attribute-mapping
yaml
attribute-mapping:
attack_damage: "物理伤害"
health: "生命"
defense: "防御"
attack_speed: "攻击速度"
magic_damage: "魔法伤害"
armor_penetration: "护甲穿透"
max_mana: "最大魔法"
mana_regen: "魔法恢复"- The left side is QI's internal attribute key (ICVM), the right side is the real attribute display name in your AttributePlus.
- The first three are core keys (used by the base editor / growth base values); the rest are non-core mappings for importing from MMOItems etc.
- Keys not listed are passed as-is as lore lines to AP (no effect if AP doesn't recognize them).
- AP attribute names are customized by the server owner in
plugins/AttributePlus/attribute.yml.