> For the complete documentation index, see [llms.txt](https://darkstarworks.gitbook.io/plugins/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://darkstarworks.gitbook.io/plugins/mc/mt-documentation/mob-editor.md).

# The Mob Editor

The Mob Editor turns chamber mobs into **custom, named encounters** you build in-game. Define a reusable *template* (gear, name, stats, death-loot, spawn effects), say *where* it appears (tiers / chambers), optionally make it a **boss** that arrives after a clear, and fine-tune the anti-cheese **tactics** per tier, chamber, or mob.

Everything here is **additive and gated**: with nothing authored, mobs behave exactly as the tier scaling alone produces. Files live under `plugins/TCP-MythicTrials/my-mob-settings/` and are managed by the GUI, but they are plain YAML you can hand-edit and reload.

Open it with **`/tcpmt menu` → Mob Editor**.

## Templates

A **template** re-dresses an already-spawned chamber mob — it never replaces the entity, so trial-spawner wave counts stay exact. A template carries:

* a **base type** (which vanilla mob it dresses — e.g. `ZOMBIE`; "any" matches every mob),
* a **display name** (MiniMessage, e.g. `<aqua>Frost Knight</aqua>`),
* **gear** — laid out on the familiar armor-stand cross (helmet on top, main / off hand flanking the chestplate, leggings + boots below),
* **stat multipliers** relative to the tier band,
* **death-loot** dropped on top of the mob's normal drops,
* **spawn effects** (permanent or timed potion effects).

### Editing gear (stamp semantics)

In the editor, the gear slots use **stamp** input: hold an item on your cursor and **click** a slot to copy its type + enchants into the template — the item stays on your cursor (it is copied, not consumed). **Right-click** a slot to clear it. You can also drag an item onto a slot.

### Stats

The **Stat multipliers** button opens a slider dialog. Each value is a multiplier on that stat's tier-band contribution: `1.0` = unchanged, `0` = ignore the tier's boost for that stat, `>1` = amplified. Stats still pass through the `tiers.yml` guardrails (resistance / speed / damage caps) — a template can't bypass anti-cheese.

### Death-loot

The **Death-loot** panel lists each drop as its item. Add one by holding an item and clicking **＋ Add** (or shift-clicking it from your inventory); click an entry to set its drop **chance** and **min/max** amount; right-click to remove it.

### Spawn effects

The **Spawn effects** panel adds permanent or timed potion effects applied when the mob spawns — pick an effect, level, and duration.

### `mobs.yml`

The GUI writes `my-mob-settings/mobs.yml`. The same template by hand:

```yaml
mobs:
  frost_knight:
    base-type: STRAY
    display-name: "<aqua>Frost Knight</aqua>"
    equipment:
      helmet:    { type: DIAMOND_HELMET, enchants: { protection: 2 } }
      main-hand: { type: IRON_SWORD,     enchants: { sharpness: 2 } }
    stats:
      health: 1.5
      speed:  1.1
    effects:
      - { type: speed, amplifier: 0, permanent: true }
    death-loot:
      - { type: DIAMOND,    chance: 0.25, min: 1, max: 2 }
      - { type: PACKED_ICE, chance: 1.0,  min: 2, max: 5 }
```

## Assignments — *where* a template appears

A template does nothing on its own. An **assignment** maps it to the tiers and chambers it should spawn in. Without one, a template is only reachable via the `/tcpmt mob spawn` debug command.

Open **Assignments** from the template list, the editor, or a chamber's detail view. Each assignment picks a template, a tier range (`8-14`, `M1-M5`, or `all`), chamber name(s) (or `all`), and a relative **weight**. When several templates match the same mob, one is chosen by weight.

```yaml
# my-mob-settings/assignments.yml
assignments:
  - { mob: frost_knight, tiers: "8-14", weight: 1.0 }
  - { mob: frost_knight, tiers: "M1-M5", chambers: ["arena3"], weight: 2.0 }
```

## Bosses

A **boss** is an *added* encounter: after a chamber is cleared, the first boss whose tier/chamber matches spawns as an extra fight. (Tier-up still happens on clear — the boss is a bonus, not the gate.) The boss is just a mob template, so build it in the editor first, then point a boss entry at it.

```yaml
# my-mob-settings/bosses.yml
bosses:
  - template: frost_king          # a template from mobs.yml
    tiers: "M1-M5"                 # omit = every tier
    chambers: ["arena3"]          # omit = every chamber
    prep-delay-seconds: 8          # grace before it appears, so players regroup
    spawn-point: chamber_center    # or near_vault, or { x: .., y: .., z: .. }
    announce: true                 # telegraph a title to players in the chamber
    reward-bonus-tiers: 1          # extra reward tiers to whoever lands the kill
```

On clear, players get an **incoming-boss** telegraph, then after `prep-delay-seconds` the boss appears at the spawn point (the chamber centre by default — away from the room where the last wave ended). Defeat it for a **bonus reward** on top of the normal clear rewards.

Preview an encounter without grinding a full clear: **`/tcpmt boss spawn <chamber>`**.

## Scoped tactics

The gear-adaptive anti-cheese **tactics** — vs-ranged speed burst, vs-shield axe, vs-tank on-hit, the cover wall, and self-cleanse — default to the global settings in `tactics.yml`. You can **override** any of them per **tier**, per **chamber**, or per **mob template**.

Precedence is most-specific-wins: **mob > tier > chamber > global**. Each tactic is a **tri-state** toggle — *inherit* (use the broader default), *on*, or *off* — so a scope only changes what you set and inherits the rest.

* **Per-tier:** `/tcpmt menu` → **Tactics**.
* **Per-chamber:** the chamber's detail view → **Tactics**.
* **Per-mob:** the mob editor → **Tactics**.

Overrides are stored in `my-mob-settings/tactics-scopes.yml`:

```yaml
chambers:
  arena3:
    cover: { enabled: true }
tiers:
  "M1-M5":
    self-cleanse: { enabled: true }
mobs:
  frost_knight:
    vs-shield: { enabled: false }
```

### The tactics

| Tactic           | What it does                                                                                                          |
| ---------------- | --------------------------------------------------------------------------------------------------------------------- |
| **vs-ranged**    | Short speed burst toward a bow/crossbow user, to close the gap.                                                       |
| **vs-shield**    | Hands the mob a no-drop axe so its hits disable a raised shield (skips ranged mobs).                                  |
| **vs-tank**      | Punishes a heavily-armoured player with armor-bypassing on-hit effects.                                               |
| **cover**        | Drops a temporary LOS-breaking wall toward a shooter, then retreats behind it.                                        |
| **self-cleanse** | The mob sheds player-applied debuffs (poison / wither / …) on a cooldown — only harmful effects, never its own buffs. |

All are cooldown- and cap-guarded; none make a mob invincible.

## Debug commands

While building, the `/tcpmt mob list` · `mob spawn <id>` and `/tcpmt boss list` · `boss spawn [chamber]` admin commands (`tcpmt.admin`) let you test without waiting for a real spawn or clear — full descriptions are in [Commands & permissions](/plugins/mc/mt-documentation/commands-and-permissions.md#admin-commands).

***

Next: [**messages.yml →**](/plugins/mc/mt-documentation/messages-yml.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://darkstarworks.gitbook.io/plugins/mc/mt-documentation/mob-editor.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
