Status, notifications, and advisor settings
Sampling intervals, optional JSON access, Discord alerts, and analysis component limits.
What you need to configure
Console setup/status work with defaults. Cloud linking does not require the local JSON endpoint. That optional cached endpoint is for deliberate private integrations, not a setup web UI.
AI service provider/model/key configuration is excluded from public documentation. The two analysis limits describe existing components, not an assurance of an active UI. Read advisor availability.
Option reference
All options below belong in nusa-global.yml and require a full restart. Missing keys use defaults. Ranges include both ends unless marked >.
| Complete key | Type / default | Range / unit | Purpose, effects, and when to change |
|---|---|---|---|
management.dashboard.update-interval-seconds | integer3 | 1..60 seconds | Status publication/watch interval. Faster sampling/output adds overhead; watches still expire.Applies when: feature-flags.live-dashboard |
management.dashboard.max-subscribers | integer16 | 1..128 subscriber | Concurrent watch limit. One-shot summaries remain available when watch slots are full.Applies when: feature-flags.live-dashboard |
management.dashboard.json-endpoint-enabled | booleanfalse | true / false | Opt-in cached loopback JSON endpoint, not a setup/dashboard UI. Cloud linking does not require it.Applies when: live-dashboard and json-endpoint-enabled; valid token required when enabled |
management.dashboard.json-port | integer9240 | 1..65535 port | Optional loopback JSON listener port, separate from the game port and retired setup UI.Applies when: live-dashboard and json-endpoint-enabled; valid token required when enabled |
management.dashboard.json-token | string'' | 20..256 printable non-whitespace ASCII when enabled | Private Bearer token. Empty is valid when disabled; never share a configured token in examples or screenshots.Applies when: live-dashboard and json-endpoint-enabled; valid token required when enabled |
management.discord.webhook-url | string'' | empty or an official Discord HTTPS webhook URL | Private official Discord HTTPS webhook. Custom hosts, redirects, and query parameters are unsupported; empty means unavailable.Applies when: feature-flags.discord-webhook and a valid private webhook; matching alert category |
management.discord.low-tps-threshold | number15 | 1..20 TPS | Sustained-low alert threshold, not a performance target.Applies when: feature-flags.discord-webhook and a valid private webhook; matching alert category |
management.discord.low-tps-duration-seconds | integer60 | 1..3600 seconds | Time continuously below the TPS threshold before an alert. Recovery resets the interval.Applies when: feature-flags.discord-webhook and a valid private webhook; matching alert category |
management.discord.cooldown-seconds | integer300 | 1..86400 seconds | Minimum interval per alert category, shared across connections/modules.Applies when: feature-flags.discord-webhook and a valid private webhook; matching alert category |
management.discord.repeated-security-threshold | integer10 | 2..1000000 incidents | Rejection count per opaque connection before an alert. Validation incidents are not proof of hostile intent.Applies when: feature-flags.discord-webhook and a valid private webhook; matching alert category |
management.discord.repeated-security-window-seconds | integer60 | 1..3600 seconds | Repeated-rejection accounting window, independent of local log suppression.Applies when: feature-flags.discord-webhook and a valid private webhook; matching alert category |
management.discord.queue-capacity | integer32 | 1..256 alert | Bounded delivery queue. Full queues can lose alerts; local logs remain necessary.Applies when: feature-flags.discord-webhook and a valid private webhook; matching alert category |
management.discord.request-timeout-seconds | integer5 | 1..30 seconds | HTTP delivery request timeout. Main never waits for delivery.Applies when: feature-flags.discord-webhook and a valid private webhook; matching alert category |
management.discord.notify-fatal-exceptions | booleantrue | true / false | Allow fatal tick/watchdog/shutdown summaries while the notifier is alive. Forced exit/OOM can prevent delivery.Applies when: feature-flags.discord-webhook and a valid private webhook; matching alert category |
management.discord.notify-low-tps | booleantrue | true / false | Allow sustained-low TPS alerts using the configured duration/threshold.Applies when: feature-flags.discord-webhook and a valid private webhook; matching alert category |
management.discord.notify-module-disabled | booleantrue | true / false | Allow connected module-disabled and plugin enable/disable failure notices. Ordinary fallback does not automatically disable a module.Applies when: feature-flags.discord-webhook and a valid private webhook; matching alert category |
management.discord.notify-repeated-security | booleantrue | true / false | Allow thresholded rejection summaries without payloads or connection identities.Applies when: feature-flags.discord-webhook and a valid private webhook; matching alert category |
management.ai.timeout-seconds | integer20 | 2..60 seconds | Analysis-component deadline including queue/body time. Retired local UI availability must not be inferred from this setting.Applies when: analysis component connected by a supporting service release |
management.ai.max-output-tokens | integer1024 | 64..2048 token | Analysis output bound. Other service/credential settings are private; an active cloud workflow still needs release verification.Applies when: analysis component connected by a supporting service release |
Private JSON access
When explicitly enabled, the endpoint binds loopback only. A client sends Authorization: Bearer <PRIVATE_TOKEN> in a header, not the query string. Do not expose the listener publicly. It is unnecessary for the cloud dashboard.
Use the Discord guide for alerts. Webhook URLs and JSON tokens are secrets. Keep them out of shared configuration and support screenshots. Saved destination, token, interval, and flag changes require restart.