Server Dashboard
Needs Attention
Checking…Operations Snapshot
Live actionable stateWatchlist / 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 / Average 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 world controls are audited and require confirmation. Remove All Tracker Entries only clears saved tracker records; it never removes world blocks or block entities.
| 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. Clear dismisses the current recommendation until its condition disappears and occurs again. It does not fix the reported condition.
| Priority | Category | Action | Reason | Status | Controls |
|---|---|---|---|---|---|
| Waiting for diagnostics. | |||||
Alerts
Clear removes retained alert history. Ongoing conditions can create new alerts; monitoring stays enabled.
| 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
Current Bottleneck Summary
Fast triage from existing lightweight diagnosticsUnified Performance Timeline
30-minute rolling viewAligned scheduler delay, CPU, players, loaded entities and managed heap. World-save markers include autosaves and manual saves; their overlap alone is not proof of a lag cause.
Suite Timing Hotspots
Rolling in-memory timings; recorded Suite wall time, not whole-server CPU attributionExecution intervals are listed first. Web elapsed and queue-wait counters include time waiting for the server; they are not CPU cost or proof of a cause. Callback wall times can include GC and scheduling pauses—inspect the spike evidence for overlapping measured work.
| Subsystem | Calls / min | Time / min | Last | Average | P95 | Max | Recent samples |
|---|---|---|---|---|---|---|---|
| No suite timing samples yet. | |||||||
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 | Likely mod | 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.
MemLeakInspector
Snapshot Comparison
Deep Heap Capture Readiness
Saved Memory Snapshots
| Time | Label | Heap | Private | Committed | Fragmented | Gen2 | Players | |
|---|---|---|---|---|---|---|---|---|
| No snapshots captured. | ||||||||
Tracked Structures
Suite-owned structures and runtime context; not a whole-heap object inventory| Category | Structure | Runtime type | Count | Note |
|---|---|---|---|---|
| Waiting for memory data. | ||||
Module Retention & Queues
Compare Suite-owned queues and caches alongside heap readings. Refresh and export are manual; no heap walk or forced collection runs.
WebPanel cache lifetimes
Optimizations
Autosave lag & public-server testing guide
Find the save cost first
Open a save marker in Performance Center and compare several save windows. Save overlap alone is correlation. Look for measured save preparation, mod save callbacks, GC pauses and background disk work. Official 1.22.7 already performs part of normal saves off-thread; main-thread preparation and mod callbacks can still stall.
NOS “Release completed save snapshots” reduces retained chunk references after successful background saves. It is not incremental autosave and does not shorten serialization or disk transactions. Do not disable saves or change transaction durability to chase lower ticks.
Use fast local SSD/NVMe storage; check host disk latency, container CPU/memory pressure and competing backup jobs during saves. Longer save intervals reduce frequency, not necessarily duration, and increase potential lost progress after a crash.
Test one change at a time
Keep your currently working allocation modules enabled. Try animation flag scan, then container transition scan/tick traversal separately if your NOS version supports them. Compare tick p95/p99, worst save duration, allocation rate and memory at similar player/entity/chunk counts across several saves.
Leave experimental distant AI/wander/repulsion scheduling, main-thread path assistance, waypoint pooling and nearby-player scaling off for the initial public-server comparison. Collision generation/traversal reduces allocation but can cost CPU; enable only when measured results justify it.
Runtime patches are reversible by disabling/removing NOS after a clean shutdown. That is not a guarantee against bugs, crashes or lost unsaved progress. Keep a recoverable world/config copy, test a copy first, and check Actual state for conflicts or failures. No buttons in this guide change settings or force GC.
Newfies Server Optimizer
Execution activity Cumulative counters · expand to inspect
Counts are cumulative for this server process. Work executed is not a TPS, latency or bytes-saved measurement. See Actual state and full failure/fallback counters below.
Safety and activation
Logs a missing block’s numeric ID or a system actor instead of failing on null values. Changes no blocks or container contents.
Apply saves optimizer.json and reapplies engine modules immediately. Stop a running NOS capture before changing settings. Unsupported builds or conflicts retain stock behavior.
API and allocation modules
Settled drops only, matching owner and exact attributes. Uses native stack limits; no radius pull or chunk loading. Items with collectible behaviors and custom entity behaviors are left unchanged.
Collision generation and animation
Off by default. Native synchronous block traversal, shape hooks, bounds and cache decisions remain. Custom block walkers fall back to the original path. Animation frames and triggers still run; no neighbour results are cached across ticks.
Collision and container traversal
Optional and off by default. Native collision resolution and food transitions still run. Custom inventory enumerators use the original path. No stationary-entity, spoilage or temperature checks are skipped. Collision traversal trades some CPU overhead for fewer allocations; compare results before leaving it enabled.
Entity queries and shapeless recipes
Optional and off by default. Entity queries retain native traversal and separate result arrays. Recipe checks preserve item attributes, comparisons and crafting hooks; no recipe results or inventories are cached.
Callbacks and spawning
Bounded scratch reuse keeps callback timing, spawn caps and random decisions unchanged. Spawn results retain their own queued lists.
Crafting recipe search
Keeps full shift-click batches, ingredient checks, recipe order, outputs and XP hooks. Uses temporary membership scratch for large candidate lists; custom recipe equality retains the original path. Does not cache recipe results or reduce crafting quantities. Check actual activation below.
Blocks, chunks and saves
Exact official types and methods only. Active cooking, fermentation and berry growth retain native timing. Chunk eligibility, force-load checks, unload callbacks and save queues stay native.
Keeps stock generation order and save transactions. Releases saved chunk references after successful background saves; failed saves keep their retry snapshot.
Pathfinding queue
Budgeting is off by default. The worker keeps running. One search cannot be interrupted and may exceed the soft budget; waiting paths may complete later. Test under actual animal workloads.
Conservative distant-entity scheduling (experimental)
Off by default. Full entity ticks and running tasks continue. Nearby players, owned/named/bred animals, mounts, combat, injured animals, custom entity/task/behavior implementations and unsafe conditions retain stock scheduling. No observer in the dimension also retains stock behavior.
Additional allocation and sync reductions (experimental)
Off by default. Node reuse is restricted to official waypoint searches, with up to 4,096 reusable candidates per solver. Raw node-returning searches retain their original ownership. Real attribute removals and subclasses keep stock behavior.
Optional population scaling
Off by default: allocation savings can trade against CPU time. Uses population hysteresis. Test against your actual player workload.
Pending changes
| Setting | Current server value | Your draft |
|---|
Review these changes before Save and Apply. Opening groups, searching or reviewing this list does not change server settings. Actual activation still depends on compatibility checks.
Entity search reuse reduces temporary objects without skipping AI ticks or changing activation ranges. Search inputs are cleared after every call. Release Stopped Capture releases retained NOS report references; exported files remain. These controls do not force GC or change process-wide GC settings.
Replacing Synergy or Tungsten: current coverage
NOS currently reduces allocations in player/entity searches, AI delegate dispatch, repulsion callbacks, physics/despawn packets, asset compression, generation requests and completed save snapshots. Each active module is listed below.
Optional collision/container traversal reuse, entity query scratch and shapeless recipe helper optimizations are also available. Optional modules now add distant AI/wander/stationary repulsion scheduling, waypoint candidate-node reuse and missing-attribute resync suppression. They do not provide full entity sleep, TCP flush batching, client delta packets, general cooking patches or terrain-noise optimizations. Removing another optimizer can remove those benefits. No full replacement or equal performance claim is made. NOS does not change GC mode or force collections.
| Module | Actual state | Compatibility / fallback reason |
|---|
Execution counters · allocation & fallback evidence
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 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
Recording & recovery
Take/put rows record transfers; snapshots record complete contents. For future snapshot-based recovery, enable all three container content settings. Reopen containers after changing settings. Snapshot debouncing reduces repeated writes; snapshots increase database usage. Original item attributes are not stored.
Entity logging, queue limits & ignored codes
Why rollback can show zero recoverable changes
A remapper can change IDs without generating break/place logs. A visible ? texture can also belong to a healthy registered block. Single-block rollback now prints its actual code/ID and history counts. For an existing container with take/put rows but no old snapshots, explicitly preview /rollback block 48h --from-live --include-claims. For a genuinely missing definition, preview /rollback block 48h --repair-missing --include-claims; unsupported retained containers still need Block ID Migration. Preview never changes blocks. Missing history, removed mod assets and old item attributes cannot be invented.
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 | Generation protection | Registered matches | Actions |
|---|---|---|---|---|---|
| Open this page to load Animal Limiter rules. | |||||
Exclusions
*. game:player is permanently protected and cannot be removed here.| Excluded pattern | Action |
|---|---|
| Open this page to load exclusions. | |
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
NewfiesServerEssentialsSuite/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 inNewfiesServerEssentialsSuite/NewfiesAnnouncements.json| State | Name / message | Schedule | Runs | Next run | Actions |
|---|---|---|---|---|---|
| No schedule loaded. | |||||
Automated Restarts
Restart Schedule
Stored inNewfiesServerEssentialsSuite/NewfiesAutomatedRestarts.jsonCustom / One-Off Restart
No one-off restart scheduled.Schedule a one-time restart countdown without changing the recurring restart schedule. Example: restart in 10 minutes for maintenance.
Chat Display
Local / proximity chat
A dedicated group for nearby players. Send messages in the Local tab (or your configured group name). General chat remains global. Uses the same Markdown, names and role colors as Chat Display.
Distance is measured in 3D within the same dimension. No separate persistent chat history or save handler. Choose an unused group name while replacing The BASICs; existing groups and history are never adopted. With auto-join off, use the native /group join Local command (substitute your group name). Leaving an auto-join group lasts until reconnect.
Message Formatting
Server-side · stock Vintage Story clients| Style | Type in chat |
|---|---|
| Bold | **bold** or __bold__ |
| Italic | *italic* or _italic_ |
| Bold italic | ***both*** or ___both___ |
| Inline code (literal text) | `/home base` |
| Color (when allowed) | [color=#80C8FF]hello[/color] |
| Link (when allowed) | [Community](https://newfiescommunity.com) |
| Literal symbols | Put a backslash before a formatting symbol to keep it literal. |
/chatformat for a private guide showing the current settings. Nested styles are supported, for example **bold with *italic***; enabled colors can also be nested. Unclosed markers remain readable. Underline, strikethrough, images, headings and HTML/VTML input are not supported. No extra client mod is required.Role Name Colors
Player Chat Format
Stored inNewfiesServerEssentialsSuite/NewfiesChatDisplay.json[Admin] Newfie: Hello. Uses the Vintage Story role name, falling back to its role code.Newfie: [21:35] Hello.HH:mm or HH:mm:ss.Role name colors: configure exact role → color mappings above. The same overrides are shared with Newfie's Player List; unmapped players keep their existing Vintage Story/mod-provided sender color.
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 inNewfiesServerEssentialsSuite/NewfiesWebMap.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. | |||
Community MOTD
Presentation
Join Options
Hub Tabs & Content
Companion Feeds
Block ID Migration
Newfie used this tool on his personal server to restore broken ? blocks to their original blocks and recover their inventories. It worked perfectly for that recovery; results depend on the saved block and inventory data available. Make a world backup before use. For questions, contact Newfie.
Add a migration rule
No scan or restart needed. After preparation, safe already-loaded solid blocks change in bounded batches. Inventory recovery, fluid and decor changes run when saved chunks next load; normal saves persist changes.
Saved rules
| Missing ID | Original code | Replacement | Inventory | Status | Actions |
|---|
Find missing IDs & review multiple replacements Optional saved-terrain scan
Scan existing saved terrain without generating or changing it. Counts are saved occurrences, not verified visible ? blocks. Healthy blocks are excluded; plants already saved as air cannot be inferred.
| Use | Missing ID | Original saved code | Occurrences | Layers / notes |
|---|
Diagnostics & in-game help
In game: look at a missing block, hold the replacement, then run /nseblockmigrate replaceheld. To skip automatic backup, use /nseblockmigrate replaceheld no-backup manual-copy-confirmed after making a manual world copy. Use /nseblockmigrate rules and /nseblockmigrate status to check progress.
Pause stops future changes; it does not undo saved migrations. Incompatible containers, layers or bytes are skipped. Removed mods need an installed replacement; suggestions are evidence for your review, not guaranteed restoration.
Read-only check: /nseblockmigrate inspect, then /nseblockmigrate previewheld. To repair only one plain missing block: /nseblockmigrate repairheld confirm-risk manual-copy-confirmed. Make a manual copy first; this creates no automatic backup or ID-wide rule. Containers and chiseled blocks require migration rules.
Migration settings and backups are under NewfiesBlockRepair in server data.
Patch Generator
1. Choose an asset
Search the server’s loaded assets.2. Set the change
3. Review and apply
Generated Vintage Story patch JSON
Generated changes are checked against loaded assets. Recipes apply after a server restart. Client item/block changes also need the managed content mod on clients; this generator does not hot-reload game assets.
Managed Content Patches
| Patch | Asset | Operation | State | Actions |
|---|---|---|---|---|
| Open Patch Studio to load JSON patch definitions. | ||||
Advanced runtime patches and profiler investigations
Patch Editor
New patch · disabled until you explicitly enable it.Recommended workflow: start with Observe, confirm the exact method and measured cost, then consider throttling only non-critical void methods. SkipVoid is intentionally high-risk and should be a temporary compatibility workaround. Patch Studio refuses to patch Server Suite itself and refuses skip/throttle recipes for methods that return a value.
Installed Patch Definitions
Runtime changes are reversible without editing mod files.| Patch | Target | Mode | Runtime | Telemetry | Actions |
|---|---|---|---|---|---|
| Open Patch Studio to load definitions. | |||||
Suggested Investigation Targets
Profiler evidence only · suggestions do not auto-apply patches.| Target | Evidence | Suggested next step |
|---|---|---|
| No profiler-backed suggestions loaded. | ||
Advanced JSON patch editor
JSON & Recipe Patches
Not loaded.Build normal Vintage Story JSON patches for assets and recipes without editing files by hand. Enabled definitions are written to a managed NewfiesSuiteContentPatches content mod and apply on the next server restart.
Recipe helper: select a recipe template, enter the recipe asset path, and use Generate Template. The generic editor remains available for blocks, items, entities, worldgen, recipes, and other patchable JSON assets. Client-side asset changes may also require distributing the generated content mod to clients; server recipe fixes normally use the Server side.
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. | ||||||||||
Tick Debugging
Native Slow-Tick Capture
/debug logticks. The Suite automatically switches it back off when the capture window ends.Native Tick Handler Inspector
Last Native Debug Result
No native debug command has been run from this page yet.
Last Slow-Tick Log Capture
No slow-tick capture has completed yet.
Likely Mod Attribution
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 | Likely mod | 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…Client Scan & Timeout Settings
Client Requirements
Connection / Heartbeat Tolerance
Startup Deep Scan
Rescans
Startup Integrity Gate / Quarantine
Coverage & Freshness
Live quality of the evidence feeding the Anti-Cheat decisions.Anti-Cheat Connection Timeline
Detailed diagnostic table
| Time | Player | Stage | Event | Action | Detail |
|---|---|---|---|---|---|
| No recent client connection diagnostics. | |||||
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
Filter the live integrity posture, then open a player for an evidence-first investigation view.| Status | Startup | Client | Platform | Action | |||||
|---|---|---|---|---|---|---|---|---|---|
| Open this page to load anti-cheat sessions. | |||||||||
Client Mods
ModDB Verification Health
Approve Mod ZIP Fingerprint
modinfo.json and hashes the package; it does not install, load, extract, or execute the uploaded mod.Approved Custom Fingerprints
| Mod / Version | Label / Notes | Content fingerprint | Approved | Action |
|---|---|---|---|---|
| No custom fingerprints approved. | ||||
Fingerprint Clusters
| Player | Mod / Version | Scope | Client Package | Official ModDB | Comparison | Checked |
|---|---|---|---|---|---|---|
| No client mod inventory loaded. | ||||||
Ore Shield Control
Protection
Revision Cache
Runtime Efficiency
Concealment Health
Additional Ore Patterns
Excluded Block Patterns
Coverage
PacketGuard
Loading policy…Ingress checks incoming vanilla packets before game handlers: packet size and rate limits, view distance caps and interaction validation. Requires PacketGuard enabled. Turning it off leaves the other enabled movement, reach and mining checks running. Save to apply immediately.
False-positive protections
Movement
Speed limits, confirmation and collision checks.
Unmounted speed limits
blocks / secondSet these above legitimate movement with XSkills or other server bonuses. Limits are server-wide and do not automatically scale with skills.
Default risk: 50 → 75 → 100. Requires three Critical unmounted speed reports in one minute, at least 10 seconds apart. Mount, low-TPS and review-only observations do not qualify.
Movement
Movement False-Positive Hardening
Server action safety
Observation-only leaves new action denials off. Existing PacketGuard, Block Nuker and noclip settings remain independent. New combat/inventory observations never automatically kick.
Empty by default. No universal weapon cooldown is assumed. Add exact tool codes only after testing; limits are 50–5000ms. Doors, chiseled/custom geometry and unknown terrain cannot establish combat-wall evidence.
Default: allow 30 distinct client targets per second, deny excess requests before mutation. Kick only after another over-limit burst at least one second later within 15 seconds under healthy timing. Secondary server-side vein/tree breaks are not counted. Requires ingress protection.
Default: five successful corrections, at least ten seconds apart; each expires after two minutes. First detection never kicks. Doors, chiseled/custom geometry, failed corrections and uncertain terrain do not count. Noclip correction must be enabled in configuration. Counts reset when the movement session ends.
Mounts & exemptions
Tune Draconis and other mounts without weakening unmounted limits.
Mount protection
Draconis / Jaunt, Shipwright and other mounts have separate speed envelopes. Unknown mounts remain telemetry-only unless enforcement is enabled.
Draconis / Jaunt
mount profileShipwright vessels
mount profileOther mounts
mount profileLegitimate Movement Exemptions
Reach & mining
Validate interactions using server-owned positions and tool timing.
Reach
Mining Validation v2
Policy & reports
Player feedback, lag allowances and independent risk families.
Player Warnings
TPS-Aware Timing
Per-Family Live Risk
Incident Correlation
Persistent Reports
Diagnostics
Trusted transitions and discarded unreliable samples.
Diagnostic detail
Adds recent movement history and reasons for discarded samples to investigation evidence.
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…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 fingerprint resolution 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. | ||||
Quick Enforcement Setup
Enforcement Policy
Finding codes and message placeholders
FORBIDDEN_MOD, FORBIDDEN_MOD_FINGERPRINT, FORBIDDEN_ASSEMBLY_FINGERPRINT, FORBIDDEN_ASSEMBLY_SIMILARITY, CLIENT_BUILD_UNAPPROVED, HOTKEY_SUSPICIOUS_NAME, CLIENT_COMMAND_SUSPICIOUS, HOTKEY_BLACKLIST_MATCH, HOTKEY_BLACKLIST_OWNER_MATCH, CLIENT_COMMAND_BLACKLIST_MATCH, MOD_CANONICAL_MISMATCH, MOD_DLL_SET_MISMATCH, ASSEMBLY_SIZE_MISMATCH, PROTECTED_ASSET_MODIFIED, PROTECTED_ASSET_DIGEST_MISMATCH, RUNTIME_SURFACE_CHANGED, 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. | |
Runtime Surface Integrity
Loading runtime surface policy…Suspicious Package Transfer
Loading transfer policy…ModConfig/NewfiesServerEssentialsSuite/SuspectedHacks and are automatically deleted 15 days after collection; the small JSON authorization/provenance sidecar is retained for audit history.Advanced / Full Anti-Cheat Configuration
ChatGuard
Protection Posture
Not loadedRule Tester
Dry-run only · no sanctions or countersCore Moderation
Stored by the standalone module inNewfiesChatGuard.jsonAutomatic Rules
Each rule can block, warn, temporarily mute, or kick.| Rule | Enabled | Session hits | Threshold | Action | Mute minutes |
|---|---|---|---|---|---|
| Flood / spam Too many messages in a short window. | 0 | msgs / sec | |||
| Repeated message Same normalized message repeated. | 0 | repeats / sec | |||
| Excessive caps | 0 | At least letters and % uppercase | |||
| Links / domains Blocks detected links unless the host is allowlisted below. | 0 | ||||
| Mention spam | 0 | More than @mentions | |||
| Message length | 0 | Max chars | |||
| Blocked words / phrases | 0 |
Warning Escalation
Manual Moderation
Active Mutes
Equivalent to/cgmutes; permanent mutes are labeled explicitly.| Player | Duration / Expires | Reason | Actor | Action |
|---|---|---|---|---|
| No active ChatGuard mutes. | ||||
Active Warnings
Equivalent to/cgwarnings and /cgclearwarnings.| Player | Warnings | Window | Oldest expires | Action |
|---|---|---|---|---|
| No active ChatGuard warnings. | ||||
Recent Moderation Activity
Session view; ChatGuard also writes its own append-only JSONL audit.| Time | Player | Rule | Action | Detail | Message preview |
|---|---|---|---|---|---|
| No ChatGuard actions recorded this session. | |||||
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 |
|---|
Role Config
Player Role Assignments
Choose a target role above, then assign it to a player. Search saved players, including offline accounts. Direct privilege grants and denials are preserved. Discord role sync may reassign linked players later; review its mappings before removing a role.
Suite Customization
Branding & Login
Used in the header and login. Empty restores the Suite logo. Use an image visitors can access.
Theme, Dashboard & Layout
Palette colors apply with Custom palette. Accent, spacing and branding apply to every theme.
Textures stay on the frame and navigation. Tables, forms and message text remain smooth. No image downloads or background polling.
Scope & Safety
Database Storage
Database Storage Viewer
-wal/-shm files by hand.How to reduce storage — settings and recovery tradeoffs
Start with Analyze Storage and find the largest table, WAL or backup area. A 25 GB file alone does not identify the cause. Detailed analysis is manual and can be partial on large databases.
| Largest area | What to change | What you give up / what to expect |
|---|---|---|
| Interaction events | Block Logging → Recording: review LogBlockUse, entity spawn/despawn logs and ignored code prefixes. Keep block break/place and take/put history if needed for investigations. | Disabling a category stops future records; it does not remove old rows. Missing history cannot be recreated. |
| Container snapshots | Review LogContainerSnapshots, SnapshotOnSlotChange and SnapshotDebounceMs in Recording. For example, increasing debounce from 2000 to 5000 ms can reduce repeated snapshots. | Keep snapshots enabled when inventory restoration matters. Take/put logs alone may not reconstruct an inventory; longer debounce loses intermediate states. |
| Entity activity | Recording → Entity logging: consider AggregateEntitySpawnDespawn and AdaptiveEntityAggregation. A longer EntityAggregateWindowMs (for example 10000 → 30000) groups more activity. | Aggregation reduces individual spawn/despawn detail. Disabling noisy categories is a stronger tradeoff; it removes future evidence. |
| Old history | Maintenance: choose RetentionDays, for example 30–60 instead of the default 180 if that meets your investigation needs. 0 disables automatic expiry. | Expired history is permanently deleted in small hourly batches. Large backlogs can take time; use a reviewed category purge for a major one-off reduction. |
| Backup copies | Maintenance: review DatabaseBackupRetentionCount (default 2) and AutoDatabaseBackupIntervalHours (default 72). A longer interval reduces copy frequency; fewer retained copies reduce steady disk usage. | Setting the interval to 0 stops automatic logger backups; it does not remove existing copies. Previously quarantined originals and world/migration backups require separate review. Keep a known-good recovery copy elsewhere. |
| Free pages / indexes / WAL | After a reviewed purge, consider optional compaction during maintenance. Free pages are normally reused; indexes keep queries fast. Persistent large WAL can indicate long-running readers or delayed checkpoints. | Deleting rows usually does not shrink the DB file immediately. VACUUM is I/O-heavy and needs spare disk space. Never delete live WAL/SHM files or required indexes manually. |
Recommended order: measure → adjust future recording → choose retention → review and purge old categories if needed → compact only when physical disk reclamation is necessary. Export or manually copy history you need before purging. None of these recommendations changes your settings automatically.
Live SQLite + WAL
Press Analyze Storage to calculate per-table and index usage.
Suite Health
Subsystem Self-Test
BlockLogger SQLite
Essentials Admin SQLite
Retention & Export Privacy
Web Server Request Diagnostics
Collecting request timings…Separates worker-queue delay, browser/network time, 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 | Queue wait avg | 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 | Queue wait | 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.
Reserved Slots
DisabledMaxClients. Players in an allowed role can use the remaining reserved capacity. The server's normal maximum player limit is never exceeded.Diagnostics & Debugging
Waiting for status.Player Commands
Command Directory
Feature Switches
Spawn Policy
Warp Command Policy
Back Command
/back swaps the saved position for back-and-forth use.Homes
Player-to-Player Teleports
/tpaccept within 60 seconds. After acceptance there is a 10-second warmup. For /t2p, the requester teleports to the target; for /t2m, the target teleports to the requester. The configured /t2m cooldown is charged only after a successful accepted teleport. Safe default: roles without an explicit /t2p or /t2m role policy require controlserver or root. Use the role matrix below to grant either command to supporter/moderator/custom roles. Successful teleports are trusted by PacketGuard and participate in /back tracking when enabled.Random Teleport
Private Message Policy
Starter Kit Policy
/setstarterkit snapshots the admin's occupied hotbar slots. Players can claim once with /starterkit. When Th3Essentials is installed, its root kit aliases are left untouched; selecting NSE keeps the suite implementation available through /nse starterkit and /nse setstarterkit.Teleport Role Access & Cooldowns
Default access, cooldowns and warp behavior
Defaults: /spawn, /home, /back, /warp and /rtp remain allowed when a role has no override. For /t2p and /t2m, an unconfigured role is allowed only when it has controlserver or root. Turning Access off blocks that role from the command. A cooldown of -1 inherits the normal command/warp cooldown; 0 removes the cooldown for that role. For /warp, a role cooldown overrides the destination/default cooldown, while each warp's own role/privilege access rules still also apply.
| Role | Policy | Access | Cooldown (seconds) |
|---|---|---|---|
| Loading server roles… | |||
Warp Management
NewfiesWarps.json. Global /warp access is controlled from Player Commands; each destination can also require specific roles or privileges here.Warp Defaults
-1 below to inherit a default.Warp Destinations
0 configured/warp. Root/controlserver staff always bypass individual warp restrictions for administration/testing./setwarp <name>. Optional cost: /setwarpcost <warp> game:gear-rusty 2.| Warp | Position | Cooldown | Warm-up | Cost | Access | Status | Actions |
|---|
Discord
Connection & Chat Bridge
Discord Announcements
Channel ID 0 inherits the main chat channel.| Event | Enabled | Channel ID | Message format |
|---|
{message} for the game’s full announcement; optional {player}, {cause}, {source}, {killer}. Temporal storms: {message}, {phase}, {strength}. Enable each route and save its row. Storm alerts begin with the next observed phase.Community MOTD Discord Feeds
Choose which Discord channels supply the MOTD feed content.Account Linking
Channels & Routing
Connected guild text channels
No channel list loaded.
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 Suite 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.