Skip to main content
Soft-depends never crash CauseChain when missing. Check live status with:
Each adapter is auto | off | force in config.yml under integrations.*. See Configuration.

WorldGuard

Named deny for cancelled place/break (including buckets treated as place), using region id and relation (for example visitor) plus the flag that denied (block-place, block-break, build). /why deny can read like WorldGuard spawn (visitor) / flag block-place deny. Inspect uses the same region for “is this your land?” Empty inspect can prefix WorldGuard <region>. CauseChain does not replace WorldGuard flags or /rg.

GriefPrevention

Named deny for cancelled build in a claim. Labels include owner and relation, for example GriefPrevention Owner (visitor) / claim build permission. Wilderness with no claim is not a named GP deny — /why deny stays empty until a claim actually cancelled you. Inspect: members who can build in the claim can /why inspect / /why here there.

WorldEdit / FastAsyncWorldEdit

When capture.worldedit is true and the plugin is present, a //set (or similar) is stored as one semantic node plus an effect set — not thousands of fake player breaks. Staff /why and /chain can walk that node. Players inspecting their claim see it only if the operation landed in land they can build in. WorldEdit and FAWE share this path; you do not install two CauseChain adapters.

CoreProtect

Coexistence only. If CoreProtect is installed, /cc adapters reports it was detected. CauseChain does not:
  • Query CoreProtect history
  • Corroborate edges against /co l
  • Roll back blocks
  • Replace /co i
Empty inspect tells the player to use CoreProtect /co i for who placed the block. Keep CoreProtect (or Prism / Ledger) for lookup and rollback. integrations.coreprotect: off hides detection; it does not make CauseChain start logging every place/break.

PlaceholderAPI

If PlaceholderAPI is present, CauseChain registers: Use them in TAB, scoreboards, or Discord bots. Empty string means no captured death/deny yet — not “unknown cause.”

Not hooked

Do not expect CauseChain to name a canceller it cannot identify.