Server-Doctor icon

Server-Doctor -----

Analyze your Minecraft server, detect plugin conflicts, identify performance issues, and receive act




ServerDoctor v0.9.2

Two new analysis scanners — plugin compatibility assessment and historical performance regression detection — both running automatically on Paper/Folia, Velocity and BungeeCord.

✨ Added

Compatibility scanner


  • []New CompatibilityScanner (core) that assesses each plugin against the running server and aggregates the signals into a transparent 0–100 risk score.
    [
    ]Runtime signals (no network): declared api-version vs. the server's Minecraft version (Paper/Folia), whether Folia support can be confirmed, and enabled state.
    []Optional external metadata feed (compatibility.metadata, off by default) adds release age, a Folia yes/no flag and known incompatibilities — honest by design: this data comes from a feed you/the community maintain, never fabricated.
    [
    ]Score → severity: <15 OK · 15–39 LOW · 40–69 MEDIUM · 70–89 HIGH · ≥90 CRITICAL.
    []Runs on all platforms; on proxies the Minecraft-version/Folia signals are skipped.
    [
    ]PluginInfo gained an apiVersion field (populated by the Paper adapter from plugin.yml).

Historical regression detection


  • []New RegressionScanner (core) that compares the older half of stored performance snapshots against the newer half to detect gradual regressions in TPS, MSPT and RAM — catching slow decline over days/weeks, not just spikes.
    [
    ]Uses only data already persisted, via an injected PerformanceHistory (limit -> storage.performance().recent(limit)).
    []Runs on all platforms; on proxies TPS/MSPT (NaN) are skipped while RAM is still compared.
    [
    ]Thresholds: TPS drop ≥8 %, MSPT rise ≥25 %, RAM rise ≥30 % (with HIGH/CRITICAL tiers); needs ≥8 stored samples. Example finding:
    Code (Text):
    Performance regression vs baseline: TPS 19.8 -> 18.4 (-7%); MSPT 14.0ms -> 23.0ms (+64%)

Both scanners surface in /serverdoctor report, the GUI, the REST /report endpoint and webhooks (which fire on state change, so a persisting issue isn't spammed).

Changed


  • []ServerDoctorCore.bootstrap now accepts a single ScannerSources object bundling the optional advisory, compatibility and performance-history sources. The previous overloads (bootstrap(platform), …, AdvisorySource, …, AdvisorySource, CompatibilityMetadataSource) are kept and delegate to it — no caller is forced to change.
    [
    ]PluginInfo gained a 7th component apiVersion; the prior 6-argument constructor is retained (delegates with an empty api-version), so existing adapters, tests and the REST serializer compile unchanged.

Setup (new optional config)

Code (YAML):

compatibility
:
metadata
:
enabled
: false
feed-url
: "" # HTTPS feed (see compatibility.sample.txt)
refresh-minutes
: 1440
 
Regression detection needs no config — it works once PerformanceHistory is wired into bootstrap (one line per platform; storage must be opened before bootstrap). Both scanners are registered automatically; unwired optional sources simply stay quiet.

Full Changelog:
https://github.com/Shvquu/server-doctor/compare/v0.9.0...v0.9.2
----------, Jun 21, 2026

Resource Information
Author:
----------
Total Downloads: 21
First Release: Jun 19, 2026
Last Update: Jun 21, 2026
Category: ---------------
All-Time Rating:
0 ratings
Find more info at github.com...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings