Server Dashboard
Watchlist / Pinned Items
Pin an entity, chunk, mod, or page while investigating and it will appear here.
Recent Lag Evidence
Newest correlated events from lightweight diagnosticsServer Status
Operations State
Current Players
| Player | Ping | State | Session | Role |
|---|---|---|---|---|
| Loading players… | ||||
Player Growth & Analytics
Daily Peak / Low Player Count
Rolling Player Count — Last 24 Hours
New Players — Last 30 Days
Collection Notes
Player-count collection is profiler-independent. Population changes are recorded on player lifecycle events and reconciled once per minute. Hourly averages are time-weighted. Growth metrics use Player Administration first-seen/last-seen records, so new-player counts remain available across restarts.
Log Intelligence
Bad Block Entity Tracker
No tracker data loaded.Tracks Vintage Story's standard BlockEntity ... threw an error when ticked log entries by exact coordinate. It reuses the existing incremental log tail: no world scan, per-tick scanner, or extra Harmony patch is added. Destructive controls are audited and require confirmation.
| Status | Position | Block / Entity | Errors | First / Last seen | Last exception | Controls |
|---|---|---|---|---|---|---|
| No bad block entities tracked yet. | ||||||
Issue Categories
Repeated lines are grouped into normalized signatures.| Category | Occurrences | Unique issues | Impact |
|---|---|---|---|
| No scan loaded. | |||
Issue Signatures
Click an issue for context, diagnosis, correlation, and recommended action.| Impact | Category | Issue | Count | Likely mod | Confidence | Last seen |
|---|---|---|---|---|---|---|
| No issues loaded. | ||||||
Startup Preflight
| State | Category | Check | Detail | Recommended action |
|---|---|---|---|---|
| No preflight data loaded. | ||||
Changes Since Previous Recorded Boot
Loaded-mod manifest regression trackerAction Center
Server Performance Scorecard
Click a category to investigateRecommended Actions
Recommendations combine active alerts and Smart Diagnosis. Mark items Investigating, Resolved, or Ignored to keep the queue manageable.
| Priority | Category | Action | Reason | Status | Controls |
|---|---|---|---|---|---|
| Waiting for diagnostics. | |||||
Alerts
| Severity | Category | Alert | Evidence | Occurrences | Last seen | Status | Controls |
|---|---|---|---|---|---|---|---|
| No alerts loaded. | |||||||
Observed Player Load
Historical one-minute samples grouped by online player count. This is an observed workload model, not a hard player limit.
| Players | Samples | Avg delay | Worst delay | Avg CPU | Max CPU | Stall samples | Stall % |
|---|---|---|---|---|---|---|---|
| Collecting player-load history. | |||||||
World Save Performance
Measured from the official GameWorldSave event until the server main thread services a post-save callback. This is an observed main-thread save window, not pure disk-write time.
| Time | Observed window | Players | Delay at start | Severity |
|---|---|---|---|---|
| Waiting for the next world save. | ||||
Server Network
Real server-wide sent/received byte counters. Per-mod/per-packet attribution is not claimed.
| Time | Outbound | Inbound | Players |
|---|---|---|---|
| Collecting network history. | |||
Deep Instrumentation Status
Performance Center
Suite Timing Hotspots
Rolling in-memory timings; no per-operation log spam| Subsystem | Recent samples | Last | Average | P95 | Max |
|---|---|---|---|---|---|
| No suite timing samples yet. | |||||
Unified Performance Timeline
30-minute rolling viewAligned scheduler delay, CPU, loaded entities, and managed heap. Vertical markers show archived lag incidents, mod-environment changes, and manual entity scans.
Automatic Lag Incident Center
Built from the lightweight rolling diagnostics. Archived incidents retain approximately 30 seconds before, the incident itself, and 15 seconds after. Click a row for drill-down or select two incidents to compare recurring patterns.
| Compare | Start | Duration | Severity | Likely area | Confidence | Worst delay | CPU | Evidence | Next action |
|---|---|---|---|---|---|---|---|---|---|
| Waiting for diagnostics. | |||||||||
Entity Type Hotspots
Manual scan of currently loaded entities. Counts/population are pressure evidence, not per-entity CPU timing.
| Entity type | Runtime type | Count | Chunks | Actions |
|---|---|---|---|---|
| Run Scan Entity / Chunk Hotspots. | ||||
Chunk Pressure Heatmap
7×7 around hottest scanned chunkPressure combines loaded entities, unique entity types, and players. It is a triage score, not measured chunk CPU time.
Entity Growth / Runaway Watch
Type-level growth compares the last two manual entity scans. Large increases are investigation leads, not automatic proof of a broken spawn rule.
| Entity type | Before | After | Delta | Change % | Severity | Reason | Actions |
|---|---|---|---|---|---|---|---|
| Run at least two manual entity scans to build type-level growth history. | |||||||
Highest-Pressure Chunks
| Chunk | Dimension | Pressure | Entities | Players | Unique types | Top entity types | Actions |
|---|---|---|---|---|---|---|---|
| Run the manual entity/chunk scan. | |||||||
Block / Container Activity Hotspots
| Coordinate | Dimension | Block | Events | Action types | Last activity |
|---|---|---|---|---|---|
| Loading activity hotspots… | |||||
Mod / Environment Regression History
The suite fingerprints the loaded mod/version environment. When it changes, it compares the previous environment's last known performance with the new one after enough diagnostics have collected.
| Detected | Changed mods | Result | Regression score | Confidence | Reason |
|---|---|---|---|---|---|
| No mod-environment change has been recorded yet. | |||||
Optimization Providers
Instrumentation Coverage
Automatic: CPU, scheduler delay, GC, memory, entities/chunk counts, BlockLogger backpressure, Smart Diagnosis, grouped lag incidents.
Manual: loaded entity/type/chunk hotspot scan and exact 10s/30s engine profiling.
Activity proxy: block/container coordinates from BlockLogger history.
Not claimed yet: exact per-block-entity CPU, packet bandwidth by mod, or world-save phase timing. Those need dedicated instrumentation before the dashboard should present them as measured cost.
Harmony Patch / Compatibility Inspector
Shows methods patched by more than one Harmony owner. Multiple owners can be completely compatible; this is a conflict-investigation lead, not automatic blame.
| Severity | Type | Method | Owners | Note |
|---|---|---|---|---|
| Run Inspect Harmony Patches. | ||||
Memory & GC
Managed Heap Timeline
30-minute rolling viewInterpretation
What the detector means
Allocation pressure: heap rises, Gen2 runs, then heap returns near its old baseline.
Possible retained growth: the estimated post-Gen2 heap floor repeatedly settles higher.
The detector deliberately says possible; a rising heap floor is evidence, not proof of a memory leak in a particular mod.
Optimizations
Smart Optimization Advisor
Before / After Measurement
Diagnostics
Tungsten documents diagnostics as zero-overhead when disabled. Detailed dump output may be written to the Vintage Story server log.
Benchmark & Slow Tick Tools
These controls call Tungsten's benchmark harness and frame-profiler commands; they are separate from BlockLogger's own profiler.
Tungsten Optimizations
/tungsten <name> on|off commands.| Optimization | Recommendation | Category | What it targets | Available | Controls |
|---|---|---|---|---|---|
| Waiting for Tungsten status… | |||||
Synergy
/synergy command interface.Synergy Advisor
Safety Notes
Synergy Optimizations
/synergy status output; a restart is still required before changed patches are applied. Runtime circuit-breaker health remains visible in full Synergy status output.| Optimization | Configured | Recommendation | Scope | Category | What it targets | Caution | Controls |
|---|---|---|---|---|---|---|---|
| Waiting for Synergy status… | |||||||
Last Synergy Command
No Synergy command has been run from the web dashboard yet.
Optimization Test History
Persistent server-side before/after results| Optimization | Target | Result | Score | Confidence | Reason |
|---|---|---|---|---|---|
| No completed measurements yet. | |||||
Last Tungsten Command
No Tungsten command has been run from the web dashboard yet.
BlockLogger
Database Maintenance & Disk Usage
Manual database purge
Nearby history
Player history
| Time | Player | Action | Detail | Coordinates | In-game date |
|---|
Animal Limiter
Status
Not loaded.
Population Scan
Rule Editor
Current Rules
Not loaded.| Pattern | Limit | Radius | Registered matches | Actions |
|---|---|---|---|---|
| Open this page to load Animal Limiter rules. | ||||
Recommended Rules
Not analyzed.| Entity | Observed | Suggested | Radius | Estimated effect now | Confidence | Why | Actions |
|---|---|---|---|---|---|---|---|
| Press Analyze & Recommend to inspect loaded populations. | |||||||
Login Protection
Runtime Status
Not loaded.
Configuration
NewfiesLoginProtection.json. Disabling protection immediately clears active shields.Automated Announcements
Announcement Editor
Placeholders: {players}, {time}, {date}. Schedules use the server machine's local timezone.
Scheduled Messages
Stored inNewfiesAnnouncements.json| State | Name / message | Schedule | Runs | Next run | Actions |
|---|---|---|---|---|---|
| No schedule loaded. | |||||
Web Console
Open this page to load server-main.log.
Server controls: Stop and Restart use the suite's clean shutdown scheduler with a 5-second safety delay. Restart still depends on Stratum or your external host/service/container supervisor to relaunch the process. Start is shown for control-panel symmetry but is disabled while this in-process dashboard is online; once Vintage Story stops, this dashboard stops with it and cannot start the process itself.
Input modes: Auto treats a leading / as a Vintage Story command and plain text as a server message. Command mode accepts commands with or without /. Message mode always broadcasts the text to online players. Input starts OFF and automatically expires after 15 minutes. No OS shell access is exposed.
Native Web Map
Map Host Settings
Stored inNewfiesWebMap.jsonListener settings and public layers apply immediately. Terrain tile-size changes apply on the next export. Version 1.5.33 requires one Full Rebuild Map to repaint terrain with the corrected v11 hillshade; the existing v10 raw patch sidecars are still used for fast dirty-chunk updates afterward.
Export Schedule
Not loaded.The one-shot checkbox is cleared after a successful export. Saving this card changes only export scheduling/mode settings and cannot toggle the public Web Map listener. When the map host is OFF, queued startup exports remain paused and live export controls are unavailable. Turning the map OFF also cancels an active live export after the current chunk load finishes.
Terrain Export
Not loaded.No terrain status loaded.
Update Changed Terrain uses the persistent dirty-chunk journal and renders only dirty/new/missing tiles when the cache is compatible. Full Rebuild Map recreates the entire explored terrain cache and should be used after renderer/tile-size changes or for repair. Full rebuilds prefer parallel read-only save-database terrain workers; changed live chunks and compatibility fallbacks use the safe runtime world-loader path.
Admin Waypoints
Persistent per world · public marker data onlyAdministrator/Owner accounts can create, edit and remove any marker. Players create markers only in-game at their current position with /webmap waypoint add major|minor [icon:<type>] <name> and remove their own with /webmap waypoint remove <name>. Major and minor limits are enforced separately. Major markers remain visible farther out; minor markers appear closer in. Players can use /webmap live off|on|status to control whether their live player data appears publicly. Enter the same relative X/Y/Z shown by the in-game coordinate HUD; the public map translates them to its internal terrain origin automatically.
| Waypoint | Position | Updated | Actions |
|---|---|---|---|
| No waypoints. | |||
Runtime Update Cadence
Idle when map runtime is OFFWhen the map runtime is OFF, terrain dirty-journal writes, map listeners, player/date tracking and export hooks remain inactive. When enabled, terrain still has no continuous scanner: block place/break events only mark their 32×32 map chunk dirty in a deduplicated journal. Administrators can queue a one-shot startup export or enable a startup-only interval such as weekly; neither option renders terrain while the server is already running. The public browser feed remains 30 seconds. Player coordinates remain at most 60 seconds. BlockLogger activity remains at most one query per 60 seconds while viewed.
Cached Players
60-second snapshot| Player | Position | Dimension | Ping | Playtime |
|---|---|---|---|---|
| No map data loaded. | ||||
Bad Block-Entity Markers
Existing Log Intelligence cache| Position | Block | Errors | Actions |
|---|---|---|---|
| No map data loaded. | |||
BlockLogger Activity Hotspots
Cached; at most one SQLite query/minute while viewed| Position | Block | Events | Actions |
|---|---|---|---|
| No map data loaded. | |||
Compatibility Center
Compatibility Checks
Evidence-based; warnings are not automatic blame.| State | Category | Check | Detail | Recommended action | Control |
|---|---|---|---|---|---|
| Open this page to run lightweight checks. | |||||
Command Ownership
Prevents the Th3Essentials-style startup collision.| Command | Owner | Suite fallback | Status |
|---|
Harmony Patch Overlap
Manual deep scan not run.Multiple Harmony owners on the same method is overlap evidence, not proof of an incompatibility. This scan is manual because reflection across every patched method is unnecessary during normal live updates.
| Severity | Method | Owners | Note |
|---|---|---|---|
| Press Run Deep Harmony Scan when investigating compatibility. | |||
Mod Management
How updates and performance impact work
| # | Impact | Mod | Version | Update | Tick share | Max segment | ≥10ms | Confidence | Top profiled part | Systems |
|---|---|---|---|---|---|---|---|---|---|---|
| Open this page to load the mod inventory. | ||||||||||
Profiler & Lag Diagnostics
Smart Findings
Recommended Next Steps
Adaptive Server Baseline
Trend / Leak Watch
10-minute directionSaved Baseline Comparison
Main-thread delay
CPU
Managed heap
Loaded entities
BlockLogger queue
BlockLogger writer
Top Attributed Mods
last manual profile| Mod | Total | Max | ≥10ms | Share | Confidence |
|---|
Worst Profiled Ticks
last manual profile| Tick | Leading causes |
|---|
Grouped Lag Incidents
Adjacent lag samples are grouped into one incident and classified by the strongest evidence. Click a row to open its archived black-box evidence; the synchronized graph crosshair follows the incident.
| Start | Duration | Severity | Likely area | Confidence | Worst delay | CPU | Gen2 | Next action |
|---|
Correlated Lag Samples
Evidence correlations are not automatic blame. Use Profile 10s/30s when you need exact engine tick timing and mod ownership.
| Time | Severity | Delay | CPU | GC 0/1/2 | BL queue/writer | Entities Δ | Chunks Δ | Evidence |
|---|
Anti-Cheat
Anti-Cheat Module
Loading…Attention Queue
Review/suspicious/missing clients first; click a player for evidence.| Player | Status | Risk | Findings | Runtime changes | Client |
|---|---|---|---|---|---|
| No anti-cheat snapshot loaded. | |||||
How the protection model works
Recommended workflow
Detection strength
Supporting: structural similarity and other fuzzy evidence. Similarity should generally log/freeze for review rather than automatically long-ban by itself.
Online Player State
Select a player for findings, reported mods, assemblies, and a manual rescan.| Player | Status | Risk | Client | Platform | Client-only Mods | Findings | Last scan | Action |
|---|---|---|---|---|---|---|---|---|
| Open this page to load anti-cheat sessions. | ||||||||
Server-Authoritative Packet Protection
Loading policy…False-positive protections
Trusted Teleport Sources
Waiting for PacketGuard telemetry…| Source | Status | Scope | Observed | Last player | Last seen | Verification |
|---|---|---|---|---|---|---|
| No trusted teleport telemetry loaded. | ||||||
Packet Suppression Counters
Waiting for suppression telemetry…Movement
Legitimate Movement Exemptions
Reach
Mining Validation v2
TPS-Aware Timing
Incident Correlation
Persistent Reports
Persistent Anti-Cheat Reports
Not loaded.| Time | Player | Severity | Confidence | Finding | Risk | Position | Evidence / guidance | Consequence |
|---|---|---|---|---|---|---|---|---|
| Open this tab or press Load Reports. | ||||||||
Client Mod Blacklist
Loading policy…What Resolve / Refresh does
modinfo.json, so changing only the declared mod ID does not bypass it. IL behavior signatures also ignore metadata-token operands and symbol names, improving detection of simple repacks/renames.| Forbidden Mod ID | Fingerprint Sources | Package SHA-256 | Normalized Content SHA-256 | Action |
|---|---|---|---|---|
| No blacklist loaded yet. | ||||
Automatic Consequences
Loading policy…Finding codes and message placeholders
FORBIDDEN_MOD, FORBIDDEN_MOD_FINGERPRINT, FORBIDDEN_ASSEMBLY_FINGERPRINT, FORBIDDEN_ASSEMBLY_SIMILARITY, CLIENT_BUILD_UNAPPROVED, CLIENT_MISSING, SCAN_TIMEOUT, HEARTBEAT_TIMEOUT, PROTOCOL_MISMATCH, INVALID_REPORT, DUPLICATE_MOD_ID, DUPLICATE_ASSEMBLY_IDENTITY, RUNTIME_UNASSOCIATED_ASSEMBLY_ADDED, RUNTIME_DYNAMIC_ASSEMBLY_ADDED, CLIENT_SELF_CHANGED_DURING_SESSION, RUNTIME_DEBUGGER_ATTACHED, RUNTIME_INSTRUMENTATION_PRESENT, RUNTIME_GENERATION_REGRESSED. Placeholders: {player}, {status}, {risk}, {code}, {subject}, {duration}.| On | Name | Trigger | Value | Subject | Action | Duration | Message | |
|---|---|---|---|---|---|---|---|---|
| No consequence rules loaded yet. | ||||||||
Client Build Integrity
Loading policy…Approved-build lock
| Approved SHA-256 | Action |
|---|---|
| No approved hashes loaded. | |
Reports & Tickets
Command Provider
/report <issue> is registered only when no other mod already owns the root command. /nse report always remains available. Staff management commands use /nse reports, /nse reportstatus, /nse reportassign, and /nse reportnote.Report Queue
| ID | Status | Reporter | Issue | Assigned | Updated |
|---|---|---|---|---|---|
| Loading reports… | |||||
Its timeline, notes, assignment and workflow controls will appear here.
Player Administration
Players
Online and offline players are separated for faster moderation. Offline players are ordered by Last Seen.| Player | Status | Role | Ping | Player List | Last Seen | Playtime | Warnings | Restrictions | Manage |
|---|---|---|---|---|---|---|---|---|---|
| Loading players… | |||||||||
Maintenance Mode
When enabled, non-staff connections are rejected. Existing players are not forcibly removed.
Scheduled Shutdown
Schedules announcements, then requests a clean Vintage Story shutdown so the world can save normally.
*Restart means clean shutdown plus external host/service supervisor restart.
Entity Cleanup
The scan summarizes all loaded entities and identifies dropped items/dead-or-despawning entities. Removal is intentionally limited to dropped items and requires explicit confirmation.
Recent Admin Audit
Includes both in-game and browser actions| Time | Actor | Action | Target | Source | Detail |
|---|
Server Essentials Suite Health
Subsystem Self-Test
BlockLogger SQLite
Essentials Admin SQLite
Retention & Export Privacy
Web Server Request Diagnostics
Collecting request timings…Separates browser/network time from time waiting on Vintage Story's main thread and actual main-thread work. This is the quickest way to prove whether the dashboard itself contributed to a lag event.
| Endpoint | Requests | Errors | Avg | P95 | Max | Main wait avg | Main work avg | Payload |
|---|---|---|---|---|---|---|---|---|
| No web request samples yet. | ||||||||
Recent slow/error requests
last 10 minutes · ≥100ms or HTTP error| Time | Endpoint | Status | Total | Main wait | Main work | Payload | Interpretation |
|---|---|---|---|---|---|---|---|
| No slow/error web requests. | |||||||
Data Collection Audit
Loading collector policy…Every automatic collector should have a bounded cadence and avoid full world/entity walks. Manual heavy operations are clearly separated from background telemetry.
| Collector | Cadence | Thread | Cost | Automatic | Cached/bounded | Detail |
|---|---|---|---|---|---|---|
| Loading collection audit… | ||||||
Feature Circuit Breakers
3 consecutive failures → 5-minute local feature disableCircuit breakers disable only the failing nonessential feature. Core BlockLogger logging continues.
| Feature | Safety | State | Consecutive | Total failures | Last error |
|---|---|---|---|---|---|
| No feature failures recorded. | |||||
Server Essentials Suite Self-Overhead
Wall-clock execution time for the suite itselfThis answers “is the monitoring suite becoming part of the performance problem?” Background maintenance should normally remain tiny; manual scans are shown separately because they are intentionally heavier.
| Feature / action | Calls | Last | Average | Max | Status |
|---|---|---|---|---|---|
| No overhead samples yet. | |||||
Web Endpoint Safety Matrix
Authentication, risk, cooldown, and exclusive-operation policy| Method | Endpoint | Access | Risk | Safety | Cooldown | Exclusive |
|---|---|---|---|---|---|---|
| Loading route policy… | ||||||
Operations & Audit
Performance Comparison Snapshots
| Captured | Label | Players | Health | Delay | CPU | Profile P95 | Compare |
|---|---|---|---|---|---|---|---|
| No performance snapshots yet. | |||||||
Configuration Snapshots
| Created | Label | Created by | Included configs | Action |
|---|---|---|---|---|
| No configuration snapshots yet. | ||||
Audit Summary
Web Administration Audit Log
| Time | Actor | Remote | Action | Detail | Result |
|---|---|---|---|---|---|
| No audit entries loaded. | |||||
Player List
Roster Configuration
Not loaded.[ServerEssentials/PlayerList] request/response diagnostics to the server log.
Diagnostics & Debugging
Waiting for status.Web Server
Suite Feature Gates
Panel Admin Accounts
| User | Role | State | Created | Last login | Actions |
|---|---|---|---|---|---|
| Loading accounts… | |||||
Owner Credential
/serverutils web password <your-password>
Exposure Guidance
Technical listener and request details
Loading…
Help & About
Measured
A value taken directly from server counters, stored logs, or the manual engine profiler. Examples: CPU, heap, server-wide bytes, BlockLogger queue, FrameProfiler timing.
Inferred
A conclusion derived from measured signals. Example: possible retained-memory growth based on a rising post-Gen2 heap floor.
Correlated
Two events changed at similar times. Correlation is a lead for investigation, not automatic mod blame or causation.
Activity Proxy
Block/container activity counts show where interactions are happening. They are intentionally not labeled block-entity CPU cost.
Pressure Score
A triage score combining entity count, unique entity types and players in a chunk. It is not milliseconds of chunk CPU time.
P95 Tick Time
95% of measured profiled ticks were at or below this time. Use the manual engine profiler when exact timing/ownership matters.
Keyboard Shortcuts
Ctrl K Global search / command palette
G then D Dashboard · P Performance · A Action Center · M Memory · H System Health
R Refresh current page when not typing
Esc Close command palette / notification panel / incident detail
Privacy & Safety
Diagnostic bundles exclude session tokens, CSRF tokens, password hashes/salts, one-time plaintext passwords and raw configuration snapshot JSON. Audit remote addresses are redacted in exported bundles.
Safe Diagnostics Mode keeps lightweight diagnostics on, browser Live Updates off, and locks state-changing Tungsten operations plus the manual engine profiler.
Workflow
A typical investigation is: Alert → incident black box → timeline → entity/chunk or memory evidence → manual engine profile when exact timing is required → measured optimization/config comparison → diagnostic bundle if support is needed.