Discord webhook
Configuration file: discord.yml. Two rendering modes:
classic— traditional embed plus link buttons. Universally supported.components-v2— native Discord Components V2 layout (containers, sections, thumbnails, separators, media galleries, buttons). Strongly recommended for new setups.
webhook: enabled: true url: "INSERT-WEBHOOK-URL" username: "Nautic Studios" avatar: "https://i.imgur.com/ip1xV13.png"
mode: components-v2 # or: classicFilters
Section titled “Filters”Applied only to substituted placeholders ({player}, {package}, …). Literal text in the file is never touched.
filters: strip-words: - kit - rank - package
replace: vip: "VIP" mvp: "MVP"
multi-package: multiline: true bullet: "• " inline-separator: " • "| Filter | Behavior |
|---|---|
strip-words | Removes the listed words (case-insensitive). Kit ASTRO → ASTRO. |
replace | Maps raw input → display string. |
multi-package.multiline | true = one per line with bullet. false = inline with inline-separator. |
Placeholders
Section titled “Placeholders”| Placeholder | Replaces with |
|---|---|
{player} | Buyer name |
{package} | Purchased package(s) |
{price} | Purchase price |
Any customs-args key | Its value |
Mode: classic
Section titled “Mode: classic”classic: content: ""
embed: enabled: true title: "🛒 New Purchase" url: "" color: "#00FFAA"
description: - "**{player}** purchased **{package}**"
fields: - { name: "Player", value: "{player}", inline: true } - { name: "Package", value: "{package}", inline: true } - { name: "Price", value: "{price}", inline: true }
author: { name: "Server Store", url: "", icon: "" } footer: { text: "Powered by Nautic Studios", icon: "" } image: "" thumbnail: "https://mc-heads.net/avatar/{player}"
buttons: - { label: "Visit Store", url: "https://store.example.com" } - { label: "Join Discord", url: "https://discord.gg/example" }| Field | Description |
|---|---|
content | Plain text above the embed (mentions go here). |
description | List of lines. |
fields[].inline | true lays fields side by side. |
thumbnail | Top-right image. Use mc-heads.net/avatar/{player} for the buyer’s head. |
buttons | Up to 5 link buttons. |
Mode: components-v2
Section titled “Mode: components-v2”components-v2: accent: "#00FFAA"
layout:
- type: text content: "## 🛒 New Purchase"
- type: separator
- type: section text: - "**Player:** `{player}`" - "**Package:** `{package}`" - "**Price:** `{price}`" thumbnail: "https://mc-heads.net/avatar/{player}/128"
- type: separator spacing: 2
- type: text content: "-# Powered by Nautic Studios"
- type: buttons items: - { label: "Visit Store", url: "https://store.example.com" } - { label: "Join Discord", url: "https://discord.gg/example" }accent colors the left bar and wraps the layout in a Discord Container.
Node types
Section titled “Node types”type | Fields |
|---|---|
text | content: string or list of strings. Markdown supported. |
separator | divider (true / false, default true), spacing (1 / 2). |
section | text (list), thumbnail (image URL). |
media | items: ["url", ...] — image gallery. |
buttons | items: [{ label: "Visit Store", url: "https://store.example.com" }] — max 5 per row. |
Node examples
Section titled “Node examples”- type: text content: "## 🛒 New Purchase"
- type: text content: - "**Player:** `{player}`" - "**Package:** `{package}`"- type: separator divider: true spacing: 2- type: section text: - "**Player:** `{player}`" - "**Package:** `{package}`" thumbnail: "https://mc-heads.net/avatar/{player}/128"- type: media items: - "https://example.com/banner.png" - "https://example.com/logo.png"- type: buttons items: - { label: "Visit Store", url: "https://store.example.com" } - { label: "Join Discord", url: "https://discord.gg/example" }