Skip to content

Configuration

config.yml controls Discord delivery, SpigotMC scraping, plugin targets, scan timing, and state storage.

When the worker starts, it first looks for config.yml in the current working directory. If it is not found there, it falls back to a bundled config.yml resource.

config.yml
discord:
webhook-url: "https://discord.com/api/webhooks/your-webhook-id/your-webhook-token"
username: "Spigot Sales"
spigot:
cookie: "xf_session=...; xf_user=...; xf_tfa_trust=..."
request-delay-ms: 800
plugins:
- name: "Plugin Name"
buyer-list-url: "https://www.spigotmc.org/resources/resource-name.resource-id/buyers"
scan:
interval-minutes: 60
notify-existing-on-first-run: false
state-file: "data/seen-sales.json"
KeyTypeDescription
discord.webhook-urlStringDiscord webhook URL used to send sale embeds.
discord.usernameStringWebhook display name shown in Discord.

The worker sends Discord embeds in chunks of up to 10 embeds per webhook message. Mentions are disabled with allowed_mentions, so buyer names or plugin names cannot trigger role/user pings.

KeyTypeDescription
spigot.cookieStringSpigotMC authentication cookie. Must have access to the configured premium buyer pages.
spigot.request-delay-msLongDelay between paginated buyer-list requests.
spigot.pluginsListResource targets to monitor. At least one valid target is required.

Each plugin target has:

KeyTypeDescription
nameStringFriendly plugin name shown in Discord and used as the state key.
buyer-list-urlStringSpigotMC buyers page URL for that premium resource.
spigot:
plugins:
- name: "Advanced Parkour"
buyer-list-url: "https://www.spigotmc.org/resources/advanced-parkour.00000/buyers"
- name: "Santa Says"
buyer-list-url: "https://www.spigotmc.org/resources/santa-says.00000/buyers"
KeyTypeDescription
scan.interval-minutesLongDelay between continuous scans.
scan.notify-existing-on-first-runBooleanWhether the first scan should send notifications for already-existing buyers.
scan.state-fileStringPath to the JSON file that stores seen buyers. Relative paths are resolved from the working directory.

By default:

scan:
notify-existing-on-first-run: false

The first scan records all currently visible buyers and sends no Discord messages. Later scans notify only when new buyers appear.

Set it to true if you intentionally want the first run to notify every visible buyer.

Keep these values private:

  • discord.webhook-url
  • spigot.cookie
  • the generated state file if it contains buyer history you consider private

Do not put real values in examples, screenshots, issue reports, or committed files.