# UpdateChecker

### [Download Plugin](https://builtbybit.com/resources/updatechecker.97386/)

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-cover data-type="image">Cover image</th></tr></thead><tbody><tr><td></td><td data-object-fit="contain"><a href="/files/SAQX5srdXgoaN9ryBjj9">/files/SAQX5srdXgoaN9ryBjj9</a></td></tr><tr><td></td><td data-object-fit="contain"><a href="/files/OJ2D64PqUbzw04SEOrSo">/files/OJ2D64PqUbzw04SEOrSo</a></td></tr><tr><td></td><td data-object-fit="contain"><a href="/files/sbv8y1vUd97L0vq5THhh">/files/sbv8y1vUd97L0vq5THhh</a></td></tr></tbody></table>

## <mark style="color:$primary;">**Plugin description**</mark>

* Automatic and manual update scans
* Paged in-game GUI with clickable marketplace links
* Plugin status overview for:
  * Up to date
  * Update available
  * Broken / disabled
  * Not found
* Scans loaded plugins and optionally unloaded jars from the server `plugins` folder
* Automatic plugin discovery from each jar `plugin.yml`
* Provider matching for:
  * Modrinth
  * Polymart
  * SpigotMC
  * BuiltByBit
  * MythicCraft
* Manual per-plugin marketplace overrides through `plugin-links.yml`
* Configurable provider toggles, scan interval, timeout, and ignore list
* BuiltByBit API token support from:
  * `config.yml`
  * `UPDATECHECKER_BUILTBYBIT_API_TOKEN`
  * `-Dupdatechecker.builtbybit.api-token=...`
* Discord webhook dashboard with:
  * Latest scan summary
  * Installed plugin overview
  * Update / broken / not found lists
  * Server software, Minecraft version, IP, players, TPS, RAM, and CPU usage
* Automatic webhook refresh every minute
* Offline webhook update when the server shuts down

## <mark style="color:$primary;">Compatibility</mark>

* Minecraft: `1.19.4 - 1.21.x`
* API: `Paper / Spigot`

## <mark style="color:$primary;">General Commands</mark>

* `/updatechecker`
  * Permission: `updatechecker.use`
  * Opens the UpdateChecker GUI. If no scan has finished yet, starts one first and opens the GUI when it completes.
  * `/updatechecker scan`
    * Permission: `updatechecker.scan`
    * Runs a manual update scan asynchronously.
  * `/updatechecker reload`
    * Permission: `updatechecker.reload`
    * Reloads `config.yml`, re-syncs `plugin-links.yml`, and rebuilds the plugin runtime state.

## <mark style="color:$primary;">Permissions</mark>

* `updatechecker.use`
  * Allows opening the UpdateChecker GUI.
* `updatechecker.scan`
  * Allows running a manual update scan.
* `updatechecker.reload`
  * Allows reloading UpdateChecker and `plugin-links.yml`.

## <mark style="color:$primary;">Config Files</mark>

{% tabs %}
{% tab title="config.yml" %}

```yml
# Main scan settings.
scan:
  # Time between automatic scans, in hours.
  interval-hours: 1
  # HTTP timeout for marketplace requests, in seconds.
  timeout-seconds: 10
  # Include plugin jars that are not currently enabled by the server.
  include-disabled-jars: true
  # Run a scan automatically when the server starts.
  auto-scan-on-startup: true
  # Plugin names that should always be skipped during scanning.
  ignore-plugins: []

# Enable or disable individual update providers.
providers:
  modrinth:
    enabled: true
  polymart:
    enabled: true
  builtbybit:
    enabled: true
    # BuiltByBit uses only the official API, not HTML scraping.
    # Automatic BuiltByBit matching is disabled - use exact BuiltByBit links in plugin-links.yml.
    # Optional local override: set UPDATECHECKER_BUILTBYBIT_API_TOKEN env var
    # or JVM property: -Dupdatechecker.builtbybit.api-token=...
    # Raw tokens are treated as Private tokens automatically.
    # If left empty, the plugin falls back to a bundled Shared token limited to the author's resources.
    api-token: ''
  spigot:
    enabled: true
  mythiccraft:
    enabled: true

# Discord webhook integration.
discord:
  # Send scan summaries to a Discord webhook.
  enabled: false
  # Full Discord webhook URL.
  webhook-url: ''
  # Display name used by the webhook message.
  username: 'UpdateChecker'
  # Optional avatar image URL for the webhook message.
  avatar-url: ''
  # Optional embed color. Supports formats like #2ecc71, 0x2ecc71, or 3066993.
  # Leave empty to use automatic status-based colors.
  embed-color: ''
  # Optional server address shown in the webhook, for example 0.0.0.0:25565.
  # Leave empty to use automatic detection.
  server-address: ''

# Manual plugin URLs are stored in plugin-links.yml.

```

{% endtab %}

{% tab title="plugin-links.yml" %}

```yml
# Manual marketplace URLs for installed plugins.
# Leave the URL empty to use automatic matching.
# Supported links: Modrinth, SpigotMC, PolyMart, BuiltByBit, MythicCraft.
# BuiltByBit requires an exact resource URL because automatic search is disabled.
plugins:
  'AdvancedMOTD': ''
  'ChunkLock': ''
  'Essentials': ''
  'PixelEvents': ''
  'PlaceholderAPI': ''
  'ProtocolLib': ''
  'UpdateChecker': ''
  'Vault': ''

```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://pixelforge.gitbook.io/pixelforge/documentation/plugins/updatechecker.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
