# 一般格式

我们已经学习了 **EcoX** 各个插件下的自定义内容的一般配置，下面我们要学习这些不同插件配置下相同的内容 —— The Effect System。

在前面，我们提及 The Effect System 的选项往往是 `effects` 和 `conditions`，这两个选项分别是技能的内容和技能的条件。也就是说，只有在条件被满足的情况下，技能内容才会被触发。

下面我们分别学习这两个选项的一般格式：

## effects 选项

我们给出一个示例的技能：

```
id: spawn_particle
args:
  amount: 10
  chance: 25
  particle: soul
triggers: 
  - mine_block
filters:
  blocks:
    - diamond_ore
    - ancient_debris
conditions: []
mutators:
  - id: translate_location
    args:
      add_x: 0.5
      add_y: 0.5
      add_z: 0.5
```

我们可以看出它由以下部分组成：

* **id**：技能的id，这不是你起名的，而是根据我们后文提及的技能列表对照的选择某个技能。所以，一个 `effects` 下可以有多个相同id的技能。
* **args**：技能的参量，同样也不是你瞎写的，根据我们后文提及的技能列表中，根据你所选择的技能对照填写。
* **triggers**：技能的触发器，后文详细介绍。
* **filters**：技能的筛选，后文详细介绍。
* **mutators**：技能的变化，后文详细介绍。
* **conditions**：技能的条件，后文详细介绍。

这里的 `conditions` 与和 `effects` 同级的 `conditions` 不一样，这里的 `conditions` 只能控制对应技能，而和 `effects` 同级的 `conditions` 能够控制整个 `effects` 乃至整个物品/附魔等，因为 `effects` 才是这些物品/附魔的重要部分。

例如，我们可以设置某个技能只会在玩家在水中才会发生（这是这里的 `conditions`），但这个物品只会在玩家达到 **20** 级后才会生效（这是与 effects 同级的 `conditions`）。

## conditions 选项

我们给出一个示例的条件：

```
conditions:
  - id: has_permission
    args:
      permission: "ecomc.rank.mvp"
    not-met-effects:
      - id: send_message
        args:
          message: "&c你不是我们的MVP!"
```

我们可以看出它由以下部分组成：

* **id**：条件id。同样这不是你起名的，而是根据我们后文提及的条件列表对照的选择某个技能。所以，一个 `conditions` 下可以有多个相同id的条件。
* **args**：条件参量。同 `effects`。
* **not-met-effects**：在没有满足条件的情况下触发的技能（effects），格式见上面的 `effects` 选项。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.superiormc.cn/ecox-doc/ji-neng-xi-tong/yi-ban-ge-shi.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
