> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sentrystudios.org/llms.txt
> Use this file to discover all available pages before exploring further.

# SentryWipe

> Default configuration files and GUI templates for SentryWipe.

Below you can find the default configuration files for SentryWipe. We provide two versions for the visual elements (`gui.yml` and `messages.yml`): our recommended **Small Caps** version for a premium aesthetic, and a **Standard Font** version if you prefer native Minecraft text.

***

## Core Configuration (`config.yml`)

This is the main configuration file where you define your database settings, API hooks, auto-purge, and core plugin behavior.

```yaml config.yml theme={null}
version: 1.0.0

# SQLITE - Recommended for small servers (Self-contained)
# H2     - Embedded & Free (No setup required)
# MYSQL  - Production servers (Multi-server networks)
database:
  type: H2

  sqlite: # Recommended for self-contained servers
    enabled: false

  h2: # Recommended for small servers
    enabled: true

  mysql: # Recommended for production servers
    enabled: false
    host: localhost # Host IP or domain
    port: 3306
    database: sentrywipe
    username: root
    password: ""
    useSSL: false # Optional

backups:
  enabled: true

  # FILE or DATABASE
  storage: FILE

  keep-days: 7
  max-size-mb: 500

auto-purge:
  enabled: false
  threshold-days: 30 # Players inactive for this many days will be purged
  mode: "soft" # Preset to use: soft, full, or any custom preset name
  bypass-permission: "sentrywipe.bypass.purge" # Players with this permission are never auto-purged
  purge-banned-players: false # Whether to purge data for banned players

updates:
  check: true
  notify-console: true
  notify-ingame: false
  # The URL to check the latest version from. Must return a plain text version string.
  version-url: "https://raw.githubusercontent.com/SentryStudio/SentryWipeVersionChecker/main/version"

system:
  prefix: "" # Optional, for current message.yml not "required" (%prefix%)

  async: true
  confirm-required: true
  log-actions: true
  max-logs-to-keep: 10

  # Log specialized messages to console
  console-msgs: true

  # Message sent to player on kick
  kick-reason:
    - "&#c93434✘ ᴇʀʀᴏʀ &7• ᴘʀᴏғɪʟᴇ ᴡɪᴘᴇᴅ ғʀᴏᴍ &#c93434&lSERVERNAME"
    - "&#6d6d6d&m                                                    "
    - "&r"
    - "&#c93434&lʏᴏᴜʀ ᴀᴄᴄᴏᴜɴᴛ ʜᴀs ʙᴇᴇɴ ᴡɪᴘᴇᴅ"
    - "&7ᴛʜɪs ᴀᴄᴄᴏᴜɴᴛ ʜᴀs ʙᴇᴇɴ ʀᴇsᴇᴛ ᴏɴ ᴛʜᴇ ɴᴇᴛᴡᴏʀᴋ"
    - ""
    - "&#a9c8ff☻ &fɴᴀᴍᴇ &7• &f%player%"
    - "&#ffd439⌚ &fᴡɪᴘᴇᴅ ʙʏ &7• &f%admin%"
    - "&#ff5348✉ &fʀᴇᴀsᴏɴ &7• &f%reason%"
    - ""
    - "&7ʀᴇᴊᴏɪɴ ᴛᴏ ᴄᴏɴᴛɪɴᴜᴇ ᴀᴛ:"
    - "&#7289da&ndiscord.yourserver.com"

  # Default reason for wipes if not specified in command
  default-wipe-reason: "No reason specified"

# Discord webhook integration
discord:
  enabled: false

  webhook-url: "https://discord.com/api/webhooks/" # Add your discord webhook here

  username: "SentryWipe"
  avatar-url: "" # Optional, avatar url

  embed-color: "#5eb7b7"

sounds:
  enabled: true
  on-wipe: "ENTITY_PLAYER_LEVELUP"
  on-reload: "ENTITY_EXPERIENCE_ORB_PICKUP"
  on-error: "ENTITY_VILLAGER_NO"
  on-gui-click: "UI_BUTTON_CLICK"
  on-gui-open: "BLOCK_CHEST_OPEN"
  on-category-toggle: "BLOCK_LEVER_CLICK" # "none" disables sound

# Used for testing GUIs without real data loss
dev-mode:
  enabled: false
  fake-players: 10 # Number of Fake_PlayerXX to spawn in GUI
  # Custom tag shown in GUI for fake players
  tag: "&#b6d9d8[ᴅᴇᴠ]"
  bypass-permissions: true
  debug-mode: false # Extra debug logs in console
  confirm-required: true

# Worlds to process during wipes, log "playerdata" status correctly
worlds:
  world:
    enabled: true
    include-playerdata: true

  world_nether:
    enabled: true
    include-playerdata: true

  world_the_end:
    enabled: true
    include-playerdata: true
```

***

## GUI Configuration (`gui.yml`)

SentryWipe utilizes flexible UI menus for easy administration and data purging.

<Tabs>
  <Tab title="Small Caps (Recommended)">
    This version utilizes custom unicode Small Caps for a cleaner, modern look. Make sure your server uses `UTF-8` encoding.

    ```yaml gui.yml theme={null}
    selector:
      title: "&#333333sᴇʟᴇᴄᴛ ᴘʟᴀʏᴇʀ"
      size: 54
      fill: "BLACK_STAINED_GLASS_PANE"
      # Functional toggle icons at bottom
      filters:
        suspicious:
          material: "SPYGLASS"
          name: "&#ffd439sᴜsᴘɪᴄɪᴏᴜs ᴀᴄᴛɪᴠɪᴛʏ"
          slot: 45
          lore:
            - ""
            - " &fғɪʟᴛᴇʀ"
            - " &#6d6d6d• &7ᴘʀᴏᴄᴇss sᴜsᴘɪᴄɪᴏᴜs sᴛᴀᴛs"
            - ""
            - " &#6d6d6d→ &#ffd439ᴄʟɪᴄᴋ ᴛᴏ ᴀᴘᴘʟʏ"
        wealth:
          material: "GOLD_INGOT"
          name: "&#a9c8ffʜɪɢʜ ᴡᴇᴀʟᴛʜ"
          slot: 46
          lore:
            - ""
            - " &fғɪʟᴛᴇʀ"
            - " &#6d6d6d• &7sᴏʀᴛ ʙʏ ᴛᴏᴛᴀʟ ʙᴀʟᴀɴᴄᴇ"
            - ""
            - " &#6d6d6d→ &#ffd439ᴄʟɪᴄᴋ ᴛᴏ ᴀᴘᴘʟʏ"
        newest:
          material: "CLOCK"
          name: "&#6eff4aɴᴇᴡᴇsᴛ ᴄᴏɴɴᴇᴄᴛɪᴏɴs"
          slot: 47
          lore:
            - ""
            - " &fғɪʟᴛᴇʀ"
            - " &#6d6d6d• &7sᴏʀᴛ ʙʏ ᴊᴏɪɴ ᴅᴀᴛᴇ"
            - ""
            - " &#6d6d6d→ &#ffd439ᴄʟɪᴄᴋ ᴛᴏ ᴀᴘᴘʟʏ"
      
      search-button:
        material: "OAK_SIGN"
        name: "&#b6d9d8sᴇᴀʀᴄʜ ᴘʟᴀʏᴇʀ"
        slot: 49
        lore:
          - ""
          - " &fᴀᴄᴛɪᴏɴ"
          - " &#6d6d6d• &7ғɪʟᴛᴇʀ ʙʏ ᴄʜᴀᴛ ɪɴᴘᴜᴛ"
          - ""
          - " &#6d6d6d→ &#b6d9d8ᴄʟɪᴄᴋ ᴛᴏ sᴇᴀʀᴄʜ"

      stats-button:
        material: "WRITABLE_BOOK"
        name: "&#ffd439ɢʟᴏʙᴀʟ sᴛᴀᴛs"
        slot: 52
        lore:
          - ""
          - " &fɪɴsᴘᴇᴄᴛɪᴏɴ"
          - " &#6d6d6d• &7ᴠɪᴇᴡ ᴀᴅᴍɪɴ ᴍᴇᴛʀɪᴄs"
          - ""
          - " &#6d6d6d→ &#ffd439ᴄʟɪᴄᴋ ᴛᴏ ᴏᴘᴇɴ"

      pagination:
        previous:
          material: "FEATHER"
          name: "&#6eff4aᴘʀᴇᴠɪᴏᴜs ᴘᴀɢᴇ"
          slot: 48
          lore:
            - ""
            - " &fɴᴀᴠɪɢᴀᴛɪᴏɴ"
            - " &#6d6d6d• &7ɢᴏ ʙᴀᴄᴋ ᴏɴᴇ ᴘᴀɢᴇ"
            - ""
            - " &#6d6d6d→ &#6eff4aᴄʟɪᴄᴋ ᴛᴏ sᴡɪᴛᴄʜ"
        next:
          material: "FEATHER"
          name: "&#6eff4aɴᴇxᴛ ᴘᴀɢᴇ"
          slot: 50
          lore:
            - ""
            - " &fɴᴀᴠɪɢᴀᴛɪᴏɴ"
            - " &#6d6d6d• &7ɢᴏ ᴛᴏ ɴᴇxᴛ ᴘᴀɢᴇ"
            - ""
            - " &#6d6d6d→ &#6eff4aᴄʟɪᴄᴋ ᴛᴏ sᴡɪᴛᴄʜ"

    # ACTION SELECTION MENU
    action:
      title: "&#333333ᴍᴀɴᴀɢᴇ&#6d6d6d: &#a9c8ff%player%"
      size: 27
      fill: "BLACK_STAINED_GLASS_PANE"

    # CUSTOM MODULAR WIPE MENU
    custom:
      title: "&#333333ᴄᴜsᴛᴏᴍ ᴡɪᴘᴇ&#6d6d6d: &#a9c8ff%player%"
      size: 54
      fill: "BLACK_STAINED_GLASS_PANE"
      confirm-button:
        slot: 49
        material: "LIME_CONCRETE"
        name: "&#6eff4aᴇxᴇᴄᴜᴛᴇ ᴡɪᴘᴇ"
        lore:
          - ""
          - " &fᴀᴄᴛɪᴏɴ"
          - " &#6d6d6d• &7ᴘʀᴏᴄᴇss sᴇʟᴇᴄᴛᴇᴅ ᴅᴀᴛᴀ"
          - ""
          - " &#6d6d6d→ &#6eff4aᴄʟɪᴄᴋ ᴛᴏ ᴄᴏɴғɪʀᴍ"

    items:
      player:
        online: "PLAYER_HEAD"
        offline: "SKELETON_SKULL"
        lore:
          - ""
          - " &fᴍᴀɴᴀɢᴇᴍᴇɴᴛ"
          - " &#6d6d6d• &fsᴛᴀᴛᴜs&#6d6d6d: %status%"
          - ""
          - " &#6d6d6d→ &#b6d9d8ᴄʟɪᴄᴋ ᴛᴏ ᴍᴀɴᴀɢᴇ"
      
      preset:
        material: "PAPER"
        lore:
          - ""
          - " &fᴇxᴇᴄᴜᴛɪᴏɴ"
          - " &#6d6d6d• &fᴛʏᴘᴇ&#6d6d6d: &#a9c8ffᴘʀᴇsᴇᴛ"
          - ""
          - " &#6d6d6d→ &#b6d9d8ᴄʟɪᴄᴋ ᴛᴏ ᴇxᴇᴄᴜᴛᴇ"

      category:
        enabled-suffix: " &#6eff4a[✔]"
        disabled-suffix: " &#c93434[✘]"
        lore:
          - ""
          - " &fsᴇʟᴇᴄᴛɪᴏɴ"
          - " &#6d6d6d• &fsᴛᴀᴛᴜs&#6d6d6d: &#ffd439ᴛᴏɢɢʟᴇᴀʙʟᴇ"
          - ""
          - " &#6d6d6d→ &#ffd439ᴄʟɪᴄᴋ ᴛᴏ ᴄʜᴀɴɢᴇ"

      navigation:
        back-button:
          material: "ARROW"
          name: "&#c93434ʙᴀᴄᴋ"
          lore:
            - ""
            - " &#6d6d6d→ &#c93434ᴄʟɪᴄᴋ ᴛᴏ ʀᴇᴛᴜʀɴ"

    # GLOBAL STATISTICS MENU
    stats:
      title: "&#333333ɢʟᴏʙᴀʟ ᴡɪᴘᴇ sᴛᴀᴛs"
      size: 27
      fill: "BLACK_STAINED_GLASS_PANE"
      items:
        total_wipes:
          slot: 10
          material: "PAPER"
          name: "&#a9c8ffᴛᴏᴛᴀʟ ᴘᴜʀɢᴇs"
          lore:
            - ""
            - " &#6d6d6d• &fsᴛᴀᴛɪsᴛɪᴄ&#6d6d6d: &f%value%"
            - ""
        economy_wiped:
          slot: 12
          material: "GOLD_INGOT"
          name: "&#ffd439ᴇᴄᴏɴᴏᴍʏ ᴄʟᴇᴀʀᴇᴅ"
          lore:
            - ""
            - " &#6d6d6d• &fsᴛᴀᴛɪsᴛɪᴄ&#6d6d6d: &f$%value%"
            - ""
        data_cleared:
          slot: 14
          material: "BOOK"
          name: "&#6eff4aᴅᴀᴛᴀ ᴘᴀᴄᴋᴇᴛs"
          lore:
            - ""
            - " &#6d6d6d• &fsᴛᴀᴛɪsᴛɪᴄ&#6d6d6d: &f%value% ᴋʙ"
            - ""
        last_wipe:
          slot: 16
          material: "CLOCK"
          name: "&#b6d9d8ʀᴇᴄᴇɴᴛ ᴀCTIVITY"
          lore:
            - ""
            - " &#6d6d6d• &fsᴛᴀᴛɪsᴛɪᴄ&#6d6d6d: &f%value%"
            - ""
    ```
  </Tab>

  <Tab title="Standard Font">
    This version uses native Minecraft fonts. Ideal for servers that want to stick to the classic aesthetic or don't want to use UTF-8 startup flags.

    ```yaml gui-standard.yml theme={null}
    selector:
      title: "&#333333Select Player"
      size: 54
      fill: "BLACK_STAINED_GLASS_PANE"
      # Functional toggle icons at bottom
      filters:
        suspicious:
          material: "SPYGLASS"
          name: "&#ffd439Suspicious Activity"
          slot: 45
          lore:
            - ""
            - " &fFilter"
            - " &#6d6d6d• &7Process suspicious stats"
            - ""
            - " &#6d6d6d→ &#ffd439Click to apply"
        wealth:
          material: "GOLD_INGOT"
          name: "&#a9c8ffHigh Wealth"
          slot: 46
          lore:
            - ""
            - " &fFilter"
            - " &#6d6d6d• &7Sort by total balance"
            - ""
            - " &#6d6d6d→ &#ffd439Click to apply"
        newest:
          material: "CLOCK"
          name: "&#6eff4aNewest Connections"
          slot: 47
          lore:
            - ""
            - " &fFilter"
            - " &#6d6d6d• &7Sort by join date"
            - ""
            - " &#6d6d6d→ &#ffd439Click to apply"
      
      search-button:
        material: "OAK_SIGN"
        name: "&#b6d9d8Search Player"
        slot: 49
        lore:
          - ""
          - " &fAction"
          - " &#6d6d6d• &7Filter by chat input"
          - ""
          - " &#6d6d6d→ &#b6d9d8Click to search"

      stats-button:
        material: "WRITABLE_BOOK"
        name: "&#ffd439Global Stats"
        slot: 52
        lore:
          - ""
          - " &fInspection"
          - " &#6d6d6d• &7View admin metrics"
          - ""
          - " &#6d6d6d→ &#ffd439Click to open"

      pagination:
        previous:
          material: "FEATHER"
          name: "&#6eff4aPrevious Page"
          slot: 48
          lore:
            - ""
            - " &fNavigation"
            - " &#6d6d6d• &7Go back one page"
            - ""
            - " &#6d6d6d→ &#6eff4aClick to switch"
        next:
          material: "FEATHER"
          name: "&#6eff4aNext Page"
          slot: 50
          lore:
            - ""
            - " &fNavigation"
            - " &#6d6d6d• &7Go to next page"
            - ""
            - " &#6d6d6d→ &#6eff4aClick to switch"

    # ACTION SELECTION MENU
    action:
      title: "&#333333Manage&#6d6d6d: &#a9c8ff%player%"
      size: 27
      fill: "BLACK_STAINED_GLASS_PANE"

    # CUSTOM MODULAR WIPE MENU
    custom:
      title: "&#333333Custom Wipe&#6d6d6d: &#a9c8ff%player%"
      size: 54
      fill: "BLACK_STAINED_GLASS_PANE"
      confirm-button:
        slot: 49
        material: "LIME_CONCRETE"
        name: "&#6eff4aExecute Wipe"
        lore:
          - ""
          - " &fAction"
          - " &#6d6d6d• &7Process selected data"
          - ""
          - " &#6d6d6d→ &#6eff4aClick to confirm"

    items:
      player:
        online: "PLAYER_HEAD"
        offline: "SKELETON_SKULL"
        lore:
          - ""
          - " &fManagement"
          - " &#6d6d6d• &fStatus&#6d6d6d: %status%"
          - ""
          - " &#6d6d6d→ &#b6d9d8Click to manage"
      
      preset:
        material: "PAPER"
        lore:
          - ""
          - " &fExecution"
          - " &#6d6d6d• &fType&#6d6d6d: &#a9c8ffPreset"
          - ""
          - " &#6d6d6d→ &#b6d9d8Click to execute"

      category:
        enabled-suffix: " &#6eff4a[✔]"
        disabled-suffix: " &#c93434[✘]"
        lore:
          - ""
          - " &fSelection"
          - " &#6d6d6d• &fStatus&#6d6d6d: &#ffd439Toggleable"
          - ""
          - " &#6d6d6d→ &#ffd439Click to change"

      navigation:
        back-button:
          material: "ARROW"
          name: "&#c93434Back"
          lore:
            - ""
            - " &#6d6d6d→ &#c93434Click to return"

    # GLOBAL STATISTICS MENU
    stats:
      title: "&#333333Global Wipe Stats"
      size: 27
      fill: "BLACK_STAINED_GLASS_PANE"
      items:
        total_wipes:
          slot: 10
          material: "PAPER"
          name: "&#a9c8ffTotal Purges"
          lore:
            - ""
            - " &#6d6d6d• &fStatistic&#6d6d6d: &f%value%"
            - ""
        economy_wiped:
          slot: 12
          material: "GOLD_INGOT"
          name: "&#ffd439Economy Cleared"
          lore:
            - ""
            - " &#6d6d6d• &fStatistic&#6d6d6d: &f$%value%"
            - ""
        data_cleared:
          slot: 14
          material: "BOOK"
          name: "&#6eff4aData Packets"
          lore:
            - ""
            - " &#6d6d6d• &fStatistic&#6d6d6d: &f%value% KB"
            - ""
        last_wipe:
          slot: 16
          material: "CLOCK"
          name: "&#b6d9d8Recent Activity"
          lore:
            - ""
            - " &#6d6d6d• &fStatistic&#6d6d6d: &f%value%"
            - ""
    ```
  </Tab>
</Tabs>

***

## Chat & Hover Messages (`messages.yml`)

<Tabs>
  <Tab title="Small Caps (Recommended)">
    ```yaml messages.yml theme={null}
    success:
      wipe: " &l&#6eff4asᴜᴄᴄᴇss &#6d6d6d• &fᴡɪᴘᴇ ᴄᴏᴍᴘʟᴇᴛᴇᴅ ғᴏʀ &#a9c8ff%player% &#6d6d6d(&f%preset%&#6d6d6d)"
      reload: " &l&#6eff4asᴜᴄᴄᴇss &#6d6d6d• &fᴄᴏɴғɪɢᴜʀᴀᴛɪᴏɴ ʀᴇʟᴏᴀᴅᴇᴅ &#6d6d6d(%time%&#6d6d6d)"
      export: " &l&#6eff4asᴜᴄᴄᴇss &#6d6d6d• &fᴅᴀᴛᴀʙᴀsᴇ ᴇxᴘᴏʀᴛᴇᴅ ᴛᴏ &#b6d9d8/sᴛᴏʀᴀɢᴇ"
      import: " &l&#6eff4asᴜᴄᴄᴇss &#6d6d6d• &fᴅᴀᴛᴀʙᴀsᴇ ɪᴍᴘᴏʀᴛᴇᴅ sᴜᴄᴄᴇssғᴜʟʟʏ"
      undo: " &l&#6eff4asᴜᴄᴄᴇss &#6d6d6d• &fʀᴏʟʟʙᴀᴄᴋ ᴄᴏᴍᴘʟᴇᴛᴇ ғᴏʀ &#a9c8ff%player% &#6d6d6d(&f%session%&#6d6d6d)"
      redo: " &l&#6eff4asᴜᴄᴄᴇss &#6d6d6d• &fʀᴇ-ᴇxᴇᴄᴜᴛɪᴏɴ ᴄᴏᴍᴘʟᴇᴛᴇ ғᴏʀ &#a9c8ff%player% &#6d6d6d(&f%session%&#6d6d6d)"

    error:
      player-only: " &l&#c93434ᴇʀʀᴏʀ &#6d6d6d• &fᴛʜɪs ᴀᴄᴛɪᴏɴ ɪs ᴏɴʟʏ ᴀᴠᴀɪʟᴀʙʟᴇ ɪɴ-ɢᴀᴍᴇ"
      no-permission: " &l&#c93434ᴇʀʀᴏʀ &#6d6d6d• &fʏᴏᴜ ᴅᴏ ɴᴏᴛ ʜᴀᴠᴇ ᴘᴇʀᴍɪssɪᴏɴ"
      player-not-found: " &l&#c93434ᴇʀʀᴏʀ &#6d6d6d• &fᴘʟᴀʏᴇʀ ɴᴏᴛ ғᴏᴜɴᴅ"
      invalid-preset: " &l&#c93434ᴇʀʀᴏʀ &#6d6d6d• &fɪɴᴠᴀʟɪᴅ ᴡɪᴘᴇ ᴘʀᴇsᴇᴛ"
      hook-unavailable: " &l&#c93434ᴇʀʀᴏʀ &#6d6d6d• &#a9c8ff%plugin% &fɪs ɴᴏᴛ ɪɴsᴛᴀʟʟᴇᴅ"
      reload-failed: " &l&#c93434ᴇʀʀᴏʀ &#6d6d6d• &fʀᴇʟᴏᴀᴅ ғᴀɪʟᴇᴅ&#6d6d6d: &7sᴇᴇ /ʟᴏɢs"
      export-failed: " &l&#c93434ᴇʀʀᴏʀ &#6d6d6d• &fᴇxᴘᴏʀᴛ ғᴀɪʟᴇᴅ&#6d6d6d: &7ᴅᴀᴛᴀʙᴀsᴇ ɴᴏᴛ ғᴏᴜɴᴅ"
      import-failed: " &l&#c93434ᴇʀʀᴏʀ &#6d6d6d• &fɪᴍᴘᴏʀᴛ ғᴀɪʟᴇᴅ&#6d6d6d: &7ғɪʟᴇ ɴᴏᴛ ғᴏᴜɴᴅ"

    system:
      global-confirm: " &l&#ffd439ᴄᴏɴғɪʀᴍ &#6d6d6d• &fᴛʏᴘᴇ &#b6d9d8/ᴡɪᴘᴇᴀʟʟ ᴄᴏɴғɪʀᴍ &fᴛᴏ ᴇxᴇᴄᴜᴛᴇ"
      search-prompt: " &l&#b6d9d8sᴇᴀʀᴄʜ &#6d6d6d• &fᴛʏᴘᴇ ᴀ ᴘʟᴀʏᴇʀ ɴᴀᴍᴇ ɪɴ ᴄʜᴀᴛ, ᴏʀ &#ffd439/ᴡɪᴘᴇ ᴄᴀɴᴄᴇʟ"
      search-cancelled: " &l&#6eff4asᴜᴄᴄᴇss &#6d6d6d• &fᴘʟᴀʏᴇʀ sᴇᴀʀᴄʜ ᴄᴀɴᴄᴇʟʟᴇᴅ"
      confirm: " &l&#ffd439ᴄᴏɴғɪʀᴍ &#6d6d6d• &fᴛʏᴘᴇ &#b6d9d8/ᴡɪᴘᴇ %player% ᴄᴏɴғɪʀᴍ %action% &fᴛᴏ ᴘʀᴏᴄᴇᴇᴅ"
      wiping: " &l&#ffd439ᴘʀᴏᴄᴇssɪɴɢ &#6d6d6d• &fᴡɪᴘɪɴɢ ᴅᴀᴛᴀ&#6d6d6d... &7ᴘʟᴇᴀsᴇ ᴡᴀɪᴛ"
      update-available: " &l&#a9c8ffᴜᴘᴅᴀᴛᴇ &#6d6d6d• &fᴀ ɴᴇᴡ ᴠᴇʀsɪᴏɴ &#6d6d6d(&f%latest%&#6d6d6d) &fɪs ᴀᴠᴀɪʟᴀʙʟᴇ"
      global-wipe: " &l&#c93434ᴀʟᴇʀᴛ &#6d6d6d• &fɪɴɪᴛɪᴀᴛɪɴɢ ɢʟᴏʙᴀʟ sᴇʀᴠᴇʀ ᴡɪᴘᴇ..."
      importing: " &l&#ffd439sʏsᴛᴇᴍ &#6d6d6d• &fɪᴍᴘᴏʀᴛɪɴɢ ᴅᴀᴛᴀ&#6d6d6d... &7ʀᴇsᴛᴀʀᴛ ʀᴇǫᴜɪʀᴇᴅ"

    help:
      header: " &l&#a9c8ffsᴇɴᴛʀ ʏᴡɪᴘᴇ &#6d6d6d• &fᴀᴅᴍɪɴɪsᴛʀᴀᴛɪᴏɴ ʜᴇʟᴘ"
      gui: " &#b6d9d8/ᴡɪᴘᴇ ɢᴜɪ &#6d6d6d- &7ᴏᴘᴇɴ ᴘʟᴀʏᴇʀ sᴇʟᴇᴄᴛᴏʀ"
      confirm: " &#b6d9d8/ᴡɪᴘᴇ <ᴘʟᴀʏᴇʀ> ᴄᴏɴғɪʀᴍ &#6d6d6d- &7ғᴜʟʟ ʀᴇsᴇᴛ"
      preset: " &#b6d9d8/ᴡɪᴘᴇ <ᴘʟᴀʏᴇʀ> <ᴘʀᴇsᴇᴛ> &#6d6d6d- &7sᴘᴇᴄɪғɪᴄ ʀᴇsᴇᴛ"
      soft: " &#b6d9d8/sᴏғᴛᴡɪᴘᴇ <ᴘʟᴀʏᴇʀ> &#6d6d6d- &7ғᴀsᴛ sᴀғᴇ ʀᴇsᴇᴛ"
      reload: " &#b6d9d8/ᴡɪᴘᴇ ʀᴇʟᴏᴀᴅ &#6d6d6d- &7ʀᴇғʀᴇsʜ ᴄᴏɴғɪɢᴜʀᴀᴛɪᴏɴ"
      stats: " &#b6d9d8/ᴡɪᴘᴇ sᴛᴀᴛs &#6d6d6d- &7ᴠɪᴇᴡ ɢʟᴏʙᴀʟ sᴛᴀᴛɪsᴛɪᴄs"
      db: " &#b6d9d8/ᴡɪᴘᴇ ᴇxᴘᴏʀᴛ/ɪᴍᴘᴏʀᴛ &#6d6d6d- &7ᴅᴀᴛᴀʙᴀsᴇ ᴛᴀsᴋs"
      backup: " &#b6d9d8/ᴡɪᴘᴇ ᴜɴᴅᴏ/ʀᴇᴅᴏ &#6d6d6d- &7ᴅᴀᴛᴀ ʀᴇᴄᴏᴠᴇʀʏ"
      wipeall: " &#b6d9d8/ᴡɪᴘᴇᴀʟʟ <ʜᴏsᴛ> &#6d6d6d- &7ɢʟᴏʙᴀʟ sᴇʀᴠᴇʀ ʀᴇsᴇᴛ"

    broadcast:
      enabled: true
      message: " &l&#a9c8ffsᴇɴᴛʀʏ ᴡɪᴘᴇ &#6d6d6d• &#a9c8ff%player% &fʜᴀs ʙᴇᴇɴ ᴘᴜʀɢᴇᴅ ʙʏ &#ffd439%admin%"

    hover:
      success:
        wipe:
          - "&#00b4d8sᴇɴᴛʀʏ ᴡɪᴘᴇ"
          - " &#6d6d6d• &fᴘʟᴀʏᴇʀ&#6d6d6d: &#a9c8ff%player%"
          - " &#6d6d6d• &fᴘʀᴇsᴇᴛ&#6d6d6d: &#ffd439%preset%"
          - " &#6d6d6d• &fʀᴇᴀsᴏɴ&#6d6d6d: &7%reason%"
        reload:
          - "&#00b4d8ᴄᴏɴғɪɢᴜʀᴀᴛɪᴏɴ"
          - " &#6d6d6d• &fʀᴇʟᴏᴀᴅ ᴛɪᴍᴇ&#6d6d6d: &#6eff4a%time%"
      error:
        no-permission:
          - "&#c93434ᴀᴄᴄᴇss ᴅᴇɴɪᴇᴅ"
          - " &#6d6d6d• &fʀᴇǫᴜɪʀᴇᴅ&#6d6d6d: &#c93434sentrywipe.use"
        player-not-found:
          - "&#c93434ʟᴏᴏᴋᴜᴘ ғᴀɪʟᴇᴅ"
          - " &#6d6d6d• &fᴄʜᴇᴄᴋ ᴛʜᴇ ɴᴀᴍᴇ ᴀɴᴅ ᴛʀʏ ᴀɢᴀɪɴ"
        player-only:
          - "&#c93434ᴄᴏɴsᴏʟᴇ ʙʟᴏᴄᴋᴇᴅ"
          - " &#6d6d6d• &fᴏᴘᴇɴ ᴛʜᴇ ɢᴜɪ ғʀᴏᴍ ᴀɴ ɪɴ-ɢᴀᴍᴇ ᴘʟᴀʏᴇʀ"
      system:
        confirm:
          - "&#e0a116ᴄᴏɴғɪʀᴍᴀᴛɪᴏɴ"
          - " &#6d6d6d• &fᴘʟᴀʏᴇʀ&#6d6d6d: &#a9c8ff%player%"
          - " &#6d6d6d• &fɴᴇxᴛ&#6d6d6d: &#b6d9d8/wipe %player% confirm %action%"
        global-confirm:
          - "&#c93434ɢʟᴏʙᴀʟ ᴡɪᴘᴇ"
          - " &#6d6d6d• &fᴄᴏɴғɪʀᴍᴀᴛɪᴏɴ&#6d6d6d: &#ffd439confirm"
          - " &#6d6d6d• &fᴛʜɪs ᴀғғᴇᴄᴛs ᴀʟʟ ᴏɴʟɪɴᴇ ᴘʟᴀʏᴇʀs"
        search-prompt:
          - "&#00b4d8ᴘʟᴀʏᴇʀ sᴇʟᴇᴄᴛᴏʀ"
          - " &#6d6d6d• &fᴄʜᴀᴛ ɪɴᴘᴜᴛ ᴡɪʟʟ ɴᴏᴛ ʙᴇ ʙʀᴏᴀᴅᴄᴀsᴛ"
          - " &#6d6d6d• &fᴄᴀɴᴄᴇʟ&#6d6d6d: &#ffd439/wipe cancel"
        search-cancelled:
          - "&#00b4d8ᴘʟᴀʏᴇʀ sᴇʟᴇᴄᴛᴏʀ"
          - " &#6d6d6d• &fsᴇᴀʀᴄʜ sᴛᴀᴛᴇ ᴄʟᴇᴀʀᴇᴅ"
      help:
        header:
          - "&#00b4d8sᴇɴᴛʀʏ ᴡɪᴘᴇ"
          - " &#6d6d6d• &fʜᴏᴠᴇʀ ᴄᴏᴍᴍᴀɴᴅ ʟɪɴᴇs ғᴏʀ ᴅᴇᴛᴀɪʟs"
      broadcast:
        message:
          - "&#00b4d8ᴡɪᴘᴇ ʙʀᴏᴀᴅᴄᴀsᴛ"
          - " &#6d6d6d• &fᴘʟᴀʏᴇʀ&#6d6d6d: &#a9c8ff%player%"
          - " &#6d6d6d• &fᴀᴅᴍɪɴ&#6d6d6d: &#ffd439%admin%"
    ```
  </Tab>

  <Tab title="Standard Font">
    ```yaml messages-standard.yml theme={null}
    success:
      wipe: " &l&#6eff4aSuccess &#6d6d6d• &fWipe completed for &#a9c8ff%player% &#6d6d6d(&f%preset%&#6d6d6d)"
      reload: " &l&#6eff4aSuccess &#6d6d6d• &fConfiguration reloaded &#6d6d6d(%time%&#6d6d6d)"
      export: " &l&#6eff4aSuccess &#6d6d6d• &fDatabase exported to &#b6d9d8/storage"
      import: " &l&#6eff4aSuccess &#6d6d6d• &fDatabase imported successfully"
      undo: " &l&#6eff4aSuccess &#6d6d6d• &fRollback complete for &#a9c8ff%player% &#6d6d6d(&f%session%&#6d6d6d)"
      redo: " &l&#6eff4aSuccess &#6d6d6d• &fRe-execution complete for &#a9c8ff%player% &#6d6d6d(&f%session%&#6d6d6d)"

    error:
      player-only: " &l&#c93434Error &#6d6d6d• &fThis action is only available in-game"
      no-permission: " &l&#c93434Error &#6d6d6d• &fYou do not have permission"
      player-not-found: " &l&#c93434Error &#6d6d6d• &fPlayer not found"
      invalid-preset: " &l&#c93434Error &#6d6d6d• &fInvalid wipe preset"
      hook-unavailable: " &l&#c93434Error &#6d6d6d• &#a9c8ff%plugin% &fis not installed"
      reload-failed: " &l&#c93434Error &#6d6d6d• &fReload failed&#6d6d6d: &7See /logs"
      export-failed: " &l&#c93434Error &#6d6d6d• &fExport failed&#6d6d6d: &7Database not found"
      import-failed: " &l&#c93434Error &#6d6d6d• &fImport failed&#6d6d6d: &7File not found"

    system:
      global-confirm: " &l&#ffd439Confirm &#6d6d6d• &fType &#b6d9d8/wipeall confirm &fto execute"
      search-prompt: " &l&#b6d9d8Search &#6d6d6d• &fType a player name in chat, or &#ffd439/wipe cancel"
      search-cancelled: " &l&#6eff4aSuccess &#6d6d6d• &fPlayer search cancelled"
      confirm: " &l&#ffd439Confirm &#6d6d6d• &fType &#b6d9d8/wipe %player% confirm %action% &fto proceed"
      wiping: " &l&#ffd439Processing &#6d6d6d• &fWiping data&#6d6d6d... &7Please wait"
      update-available: " &l&#a9c8ffUpdate &#6d6d6d• &fA new version &#6d6d6d(&f%latest%&#6d6d6d) &fis available"
      global-wipe: " &l&#c93434Alert &#6d6d6d• &fInitiating global server wipe..."
      importing: " &l&#ffd439System &#6d6d6d• &fImporting data&#6d6d6d... &7Restart required"

    help:
      header: " &l&#a9c8ffSentry Wipe &#6d6d6d• &fAdministration Help"
      gui: " &#b6d9d8/wipe gui &#6d6d6d- &7Open player selector"
      confirm: " &#b6d9d8/wipe <player> confirm &#6d6d6d- &7Full reset"
      preset: " &#b6d9d8/wipe <player> <preset> &#6d6d6d- &7Specific reset"
      soft: " &#b6d9d8/softwipe <player> &#6d6d6d- &7Fast safe reset"
      reload: " &#b6d9d8/wipe reload &#6d6d6d- &7Refresh configuration"
      stats: " &#b6d9d8/wipe stats &#6d6d6d- &7View global statistics"
      db: " &#b6d9d8/wipe export/import &#6d6d6d- &7Database tasks"
      backup: " &#b6d9d8/wipe undo/redo &#6d6d6d- &7Data recovery"
      wipeall: " &#b6d9d8/wipeall <host> &#6d6d6d- &7Global server reset"

    broadcast:
      enabled: true
      message: " &l&#a9c8ffSentry Wipe &#6d6d6d• &#a9c8ff%player% &fhas been purged by &#ffd439%admin%"

    hover:
      success:
        wipe:
          - "&#00b4d8Sentry Wipe"
          - " &#6d6d6d• &fPlayer&#6d6d6d: &#a9c8ff%player%"
          - " &#6d6d6d• &fPreset&#6d6d6d: &#ffd439%preset%"
          - " &#6d6d6d• &fReason&#6d6d6d: &7%reason%"
        reload:
          - "&#00b4d8Configuration"
          - " &#6d6d6d• &fReload time&#6d6d6d: &#6eff4a%time%"
      error:
        no-permission:
          - "&#c93434Access Denied"
          - " &#6d6d6d• &fRequired&#6d6d6d: &#c93434sentrywipe.use"
        player-not-found:
          - "&#c93434Lookup Failed"
          - " &#6d6d6d• &fCheck the name and try again"
        player-only:
          - "&#c93434Console Blocked"
          - " &#6d6d6d• &fOpen the GUI from an in-game player"
      system:
        confirm:
          - "&#e0a116Confirmation"
          - " &#6d6d6d• &fPlayer&#6d6d6d: &#a9c8ff%player%"
          - " &#6d6d6d• &fNext&#6d6d6d: &#b6d9d8/wipe %player% confirm %action%"
        global-confirm:
          - "&#c93434Global Wipe"
          - " &#6d6d6d• &fConfirmation&#6d6d6d: &#ffd439confirm"
          - " &#6d6d6d• &fThis affects all online players"
        search-prompt:
          - "&#00b4d8Player Selector"
          - " &#6d6d6d• &fChat input will not be broadcast"
          - " &#6d6d6d• &fCancel&#6d6d6d: &#ffd439/wipe cancel"
        search-cancelled:
          - "&#00b4d8Player Selector"
          - " &#6d6d6d• &fSearch state cleared"
      help:
        header:
          - "&#00b4d8Sentry Wipe"
          - " &#6d6d6d• &fHover command lines for details"
      broadcast:
        message:
          - "&#00b4d8Wipe Broadcast"
          - " &#6d6d6d• &fPlayer&#6d6d6d: &#a9c8ff%player%"
          - " &#6d6d6d• &fAdmin&#6d6d6d: &#ffd439%admin%"
    ```
  </Tab>
</Tabs>
