> For the complete documentation index, see [llms.txt](https://esmp-fun.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://esmp-fun.gitbook.io/plugins/mythic-trials/integrations.md).

# Integrations

Mythic Trials is the third module in the BetterTrialChambers family. It works on its own, and gets richer when its siblings are present. Every integration is soft — install only what you want.

## BetterTrialChambers (required)

The free base plugin. MythicTrials builds entirely on it: registered chambers, the wave system, the `ChamberClearedEvent` that drives progression, the `PreVaultOpenEvent` that drives loot, and the Folia-aware scheduler. **Minimum version: v1.6.1** — see [Installation](/plugins/mythic-trials/installation.md) for why that exact version.

## Vault Crates (optional)

When VaultCrates is installed:

* **Legendary key rewards.** High-tier chamber clears can drop crate keys — configured in [rewards.yml](/plugins/mythic-trials/rewards-yml.md) under `legendary-key`.
* **Mythic loot can be crate-backed.** Your `chambers.yml` Mythic loot tables and seasonal loot tables are TCP loot tables, which can themselves grant crate keys.
* **VaultCrates tier-weighted loot (planned).** MythicTrials publishes a `MythicTierService` via Bukkit's ServicesManager; a future VaultCrates release is planned to consume it for per-opener loot weighting. Today the service is available to any plugin, but VaultCrates does not yet call it.

Without VaultCrates, the legendary-key reward channel simply no-ops (with a one-time note in the console).

## Wild Spawners (optional)

When WildSpawners is installed, wild-preset mobs that spawn **inside a Mythic-tiered chamber** scale with that chamber's effective tier — the scaling is applied by MythicTrials itself, which scales every chamber-spawned mob regardless of which plugin provided it. (Direct WildSpawners consumption of the tier service — e.g. scaling spawners *outside* chambers — is planned, not yet implemented.)

## Vault (optional)

Enables the **currency reward** channel. On chamber clear, MythicTrials deposits the configured amount via Vault into the player's economy balance. Needs Vault plus an economy provider (EssentialsX, CMI, etc.). Without it, the currency channel no-ops.

## PlaceholderAPI (optional)

When PlaceholderAPI is installed, MythicTrials registers a `tcpmt` expansion so you can drop a player's tier into scoreboards, tab lists, chat plugins, or holograms.

Because tier is **per-(player, chamber)**, the player-facing placeholders resolve against the chamber the player is currently standing in (and only when that chamber is configured for Mythic progression).

| Placeholder                      | Result                                                                          |
| -------------------------------- | ------------------------------------------------------------------------------- |
| `%tcpmt_tier%`                   | Current-chamber tier label (e.g. `T8`, `M2`), or `—`                            |
| `%tcpmt_tier_rank%`              | Numeric rank (Standard *n* = *n*, Mythic *n* = 20 + *n*)                        |
| `%tcpmt_tier_level%`             | Level within the kind (1–20 / 1–5)                                              |
| `%tcpmt_tier_kind%`              | `Standard` / `Mythic`                                                           |
| `%tcpmt_tier_roman%`             | Level as a Roman numeral (great for nameplates)                                 |
| `%tcpmt_chamber%`                | Current Mythic chamber name                                                     |
| `%tcpmt_tier_in_<chamber>%`      | Tier for a named chamber                                                        |
| `%tcpmt_top_name_<n>_<chamber>%` | Name of the *n*-th leaderboard entry                                            |
| `%tcpmt_top_tier_<n>_<chamber>%` | Tier of the *n*-th leaderboard entry                                            |
| `%tcpmt_seasontop_name_<n>%`     | Name of the *n*-th active-season leaderboard entry (by distinct chamber clears) |
| `%tcpmt_seasontop_clears_<n>%`   | Clear count of the *n*-th active-season leaderboard entry                       |

All placeholders are non-blocking and safe to refresh from tab/scoreboard plugins as often as those plugins want. A cold lookup may briefly show the default value, then self-correct on the next refresh.

### Scoreboard sidebar recipe

The action-bar HUD (`/tcpmt hud`) handles in-chamber feedback, but if you'd also like the tier in your server's permanent scoreboard sidebar, the placeholders make it a one-line addition in any scoreboard plugin (FeatherBoard, KauriVN, BetterBoard, etc.). Use a condition so the line only shows while the player is inside a Mythic-configured chamber:

```yaml
# FeatherBoard / KauriVN-style condition:
mythic-tier:
  condition: "%tcpmt_chamber%" != ""
  text: "&7Tier: &6%tcpmt_tier_roman% &8(&7%tcpmt_chamber%&8)"
```

`%tcpmt_chamber%` is the empty string when the player isn't in a Mythic chamber, so a non-empty check is the right gate. `%tcpmt_tier_roman%` renders as `VIII` for T8, `II` for M2, etc. — fits cleanly into a sidebar line.

## TCP's chamber-remaining glow (recommended pairing)

BetterTrialChambers v1.5.4 added a new `spawner-waves.glow-mode` config option that pairs naturally with MythicTrials. Set it to `chamber-remaining` in TCP's `config.yml` and every uncleared spawner in a chamber lights up through walls once any wave starts inside it. Combined with the in-chamber HUD ("3/6 spawners cleared"), players never lose track of what they have left to do. The fix is one line in TCP's config:

```yaml
# In BetterTrialChambers/config.yml:
spawner-waves:
  glow-active-spawners: true
  glow-mode: "chamber-remaining"
```

Without this, MT's "X/Y spawners cleared" HUD text still works fine — the glow just helps players physically locate the remaining spawners in large chambers.

**Use TCP 1.5.6 or newer for the glow.** Earlier builds had glow rendering bugs (no outline at all pre-1.5.4, floating one block high on 1.5.4, a killable/farmable marker entity on 1.5.4–1.5.5) — all fixed in 1.5.6. TCP 1.5.6 also makes the chamber-cleared spawner count self-correct after discovery merges and spawner edits, which MT's tier-ups depend on.

## The full loop

With all four installed:

> Players clear chambers → tiers rise → mobs scale → better loot drops → high-tier clears pay XP, currency, and crate keys → crate keys open VaultCrates → spawner content scales to the chamber → repeat at a higher tier.

Four plugins, one self-reinforcing progression economy — and every piece is optional, so server owners build exactly the depth they want.

## For developers

MythicTrials publishes `MythicTierService` via Bukkit's `ServicesManager`. Other plugins can read per-player tiers, the active season, and the scaling math:

```kotlin
val svc = Bukkit.getServicesManager().load(MythicTierService::class.java)
    ?: return  // MythicTrials not installed
val tier = svc.getTier(player.uniqueId, "endgame_pit")
val scaledHp = svc.scaleStat(ScaledStat.HEALTH, mob.maxHealth, tier)
```

***

Next: [**Troubleshooting & FAQ →**](/plugins/mythic-trials/troubleshooting.md)
