MiX Extract 0.2.5

What it does
  Adds extraction pads. An admin makes a pad where they stand. A player who stands on a pad and
  types /extract starts a 40 second channel. Leaving the pad or taking damage cancels it. When
  the channel ends the player is moved to their own rally point, or to the pad's exit if they
  have no rally point, and a 180 second cooldown starts. If neither a rally point nor a pad exit
  is set, the channel ends with a message and nobody is moved.
  Players set their rally point with /extract rally wherever they are standing.
  Before the channel starts and again when it ends, the plugin asks other plugins through the
  CanTeleport hook. A combat or raid block plugin that answers that hook can refuse an extract.
  Without such a plugin, extracts are never blocked.
  Pads and rally points are saved in data/MixExtract/state.json. Pads are map positions, so make
  new ones after a map wipe.

Install
  Drop plugins/MixExtract.cs into carbon/plugins (Carbon) or oxide/plugins (Oxide).

Commands
  /extract               Start extracting (you must be on a pad).
  /extract rally         Set your landing point to where you stand.
  /extract cancel        Stop your channel.
  /extract list          List every pad with its position and whether it has an exit.
  /extract ui            Open a status panel (pad, cooldown, number of pads).
  /extract close         Close the panel.
  /extract add [name]    Admin: make a pad where you stand (default name pad1, pad2, ...).
  /extract exit <name>   Admin: set that pad's exit to where you stand.
  /extract remove <name> Admin: delete a pad.
  /exfil, /mixextract    Same as /extract.
  mixextract.ui [action] Console form used by the panel buttons: no argument opens the panel,
                         close closes it, any other argument runs /extract <argument> with the
                         same checks. In game only.
  Player commands need mixextract.use. Admin commands need server admin or mixextract.admin.

Permissions
  mixextract.use     Use /extract and its player commands. Given to the default group every time
                     the plugin loads, so all players have it.
  mixextract.admin   Add, set exits for and remove pads.

Config highlights  (carbon/configs/MixExtract.json)
  ChannelSeconds    40     Seconds a player must stay on the pad (8 to 180).
  PadRadius         6      Pad radius in metres.
  CooldownSeconds   180    Seconds between a player's extracts.
  CancelOnDamage    true   Taking damage cancels the channel.
  CancelOnLeave     true   Moving more than PadRadius + 1.5 m from the pad centre cancels it.
  ChatPrefix        Extract (purple)   Prefix on chat lines.

Tested
  Tested alone on Carbon 2.0.259.0 with Rust build 25454815 on 2026-09-28; runs without the rest of the MiX Server Pack.

Feedback
  Questions, bugs and ideas: MixMods Discord, discord.gg/MZCdmvFrQ, message B1.

Licence
  Free to run and change on your own servers. See LICENCE.txt.
