Skip to content

Configuration

Kyle Kreuter edited this page Sep 26, 2026 · 2 revisions

Configuration

Core: plugins/vistructum/config.yml

Inference

Key Default Meaning
inference.mode local local runs the models inside the server. remote sends every request to the sidecar.
inference.fallback none local runs the models locally when the sidecar is unreachable or answers with status 500 or higher. Only used with remote.
inference.threads 1 ONNX Runtime threads for local inference
models.update auto auto checks GitHub for newer models on start and every check-hours. off keeps the bundled or downloaded models.
models.repository KyleKreuter/vistructum GitHub repository that publishes model releases
models.check-hours 24 Interval of the update check
sidecar.host / sidecar.port 127.0.0.1 / 8000 Sidecar address. The environment variables SIDECAR_HOST and SIDECAR_PORT override it.
sidecar.connect-timeout-seconds 3
sidecar.request-timeout-seconds 120

Invalid values in inference.* or models.* disable the plugin and log the reason.

Model updates only install files whose SHA-256 matches the release manifest and whose metadata the plugin accepts. Downloaded models live in plugins/vistructum/models/ and take precedence over the models bundled in the jar.

Detection

Key Default Meaning
database.file vistructum.db SQLite file in the plugin folder
tracking.ttl-minutes 10 How long a block change counts
tracking.link-distance 3 Maximum distance between blocks of one build
tracking.quiet-seconds 20 Quiet time before a build is checked
tracking.min-blocks 12 Minimum number of changed blocks
tracking.max-extent 256 Larger builds are left to the fullscan. The volume check of the fullscan skips clusters above this extent.
tracking.poll-seconds 5 Check interval
scan.enabled true Daily fullscan with surface and volume check
scan.daily-at 04:00 Server time of the daily scan
scan.worlds [world, world_nether, world_the_end] Worlds of the daily scan
scan.chunks-per-tick 8 Loading limit for chunks that the scanner can't read from the region files, such as chunks with an older data version
scan.workers 2 Threads that read region files and run the surface and volume checks
scan.volume.filler-share 0.10 Share of a 16×16×16 section above which a material counts as filler. The volume check ignores filler materials in that section.
alerts.dedupe-days 14 Overlapping findings within this period are dropped

UI: plugins/vistructum-ui/config.yml

Key Default Meaning
pack.bind-port 8765 Port of the built-in resource pack server
pack.public-url http://localhost:8765/pack.zip URL that clients download the pack from
list.map-previews false Shows preview images as maps in the review list

All chat output lives in plugins/vistructum-ui/messages.yml (MiniMessage). Missing keys fall back to the defaults in the jar.

Sidecar: environment variables

Variable Default Meaning
PORT 8000 HTTP port
MODEL_DIR /models Folder for downloaded models
ORT_THREADS 1 ONNX Runtime threads
MODELS_UPDATE auto auto or off
MODELS_REPOSITORY KyleKreuter/vistructum GitHub repository of model releases
MODELS_CHECK_HOURS 24 Update interval

Endpoints: POST /infer, GET /health (503 without models), GET /version.

Clone this wiki locally