Skip to main content
Soft-depends never crash Halt when missing. Optional plugins: PlaceholderAPI, CoreProtect, GrimAC, Vulcan. Discord is a webhook URL, not a plugin.

Discord

Staff outbound path. Not a required dependency.
  1. config.ymlalerts.discord: true
  2. alerts.ymldiscord.enabled: true and a valid webhook_url
  3. /halt webhook test
Embeds include incident id, coords, and /halt incident <id> when those fields exist. Rate-limited by rate_limit_per_minute. Malformed URLs are ignored so Discord cannot break core runtime. See Installation.

PlaceholderAPI

If PlaceholderAPI is present, Halt registers identifier halt. Missing PlaceholderAPI is ignored. Use them on staff scoreboards. Empty or 0 means no score yet, not “clean forever.”

CoreProtect

Coexistence and hints only. If CoreProtect is installed, incident detail can include lookup/rollback hint copy around the incident location and time. Halt does not:
  • Query CoreProtect history
  • Run /co rollback for you
  • Replace CoreProtect lookup
Keep CoreProtect (or Prism / Ledger) for who-placed-this and rollback. Pair /halt export with your logger. See the Incident playbook.

GrimAC and Vulcan

integrations.grim_ingest and integrations.vulcan_ingest (default true) copy flag events into Halt incidents when those plugins are present. Missing plugins are ignored. Halt does not replace Grim or Vulcan. Do not stack Grim and Vulcan. See Recommended stacks.

Geyser / Floodgate

FreecamWatch geyser_lenient: true uses looser reach and angle for Geyser/Floodgate client brands. That reduces Bedrock false flags. It does not block freecam clients on join and does not make Freecam “unaffected” on Geyser. GUI search falls back to chat on Geyser/Bedrock when the anvil search UI cannot open.

Public events

Package: dev.mattbaconz.halt.api Other plugins can listen. Payloads expose both record-style and JavaBean accessors (incident() / getIncident(), and the same for signal, riskScore, lockdown, containment). Cancellable containment hooks hop onto the global scheduler before evaluating containment so Folia never touches Bukkit off-thread.

Not hooked