Start · 02

Configuration

SilkMC auto-generates its own configuration files on first boot. Defaults are tuned for the warning-mode compatibility policy — strict enforcement and per-plugin overrides are opt-in.

silkmc-compatibility.yml

This file controls the global compatibility policy.

KeyDefaultEffect
plugins.unsupported-plugin-modeWARNWARN allows unmarked plugins to load; REQUIRE_DECLARATION refuses them at load time.
plugins.warn-on-loadtrueLog a warning when an unmarked plugin loads.
plugins.disable-incompatible-pluginstrueAuto-disable plugins that hit known unsafe boundaries instead of crash-looping.
plugins.log-compatibility-stacktracestrueInclude full stack traces with compatibility failures.
compatibility.strict-modetrueRefuse to load plugins classified as UNKNOWN.
compatibility.allow-unknown-pluginsfalseWhen true, UNKNOWN plugins load with a warning instead of being blocked.
compatibility.log-analysistrueEmit a one-line compatibility analysis summary for every plugin.

silkmc-plugin-overrides.yml

Added in v0.1.5-alpha. Lets operators override SilkMC's automatic classification of a specific plugin, or force-load a plugin that would otherwise be blocked. Override use is logged with the configured operator reason for auditability.

# silkmc-plugin-overrides.yml
plugins:
  MyAuditedPlugin:
    classification: COMPATIBLE   # SAFE | COMPATIBLE | UNKNOWN | UNSAFE | AUTO
    force-load: true
    reason: "Reviewed by ops on 2026-05-15 — async scheduler use confirmed safe"
caution
force-load: true defeats SilkMC's compatibility classifier. Use it only for plugins your team has reviewed against the regional threading model.

Upstream config files

SilkMC keeps Folia and Paper's existing configuration intact: paper-global.yml, paper-world-defaults.yml, and bukkit.yml all behave as upstream. Region-threading limits live in paper-global.yml under the threading sections inherited from Folia.

Example file

A copy-pastable starting point lives in the upstream repo at examples/server/silkmc-compatibility.yml.