Dashboard
Charts, history, lag snapshots and the settings that live on the web side rather than in config.yml.
PulseNode v5.0.2Paper · Spigot1.21 – 1.21.x
The dashboard at pulsenode.tech is where the collected data becomes useful. The plugin only sends; everything you read and configure happens here.
Live view
The default view for a server shows the current state and the last few hours:
| Panel | What to look at |
|---|---|
| TPS | The headline number, but the least informative one |
| MSPT | The honest one — TPS caps at 20 and hides a server sitting at 45ms |
| RAM | Used against max, over time. A sawtooth is healthy; a rising floor is a leak |
| Entities per world | The most common cause of slow decay |
| Loaded chunks per world | Where chunk leaks appear first |
| Players | Correlate everything else against who was online |
Read MSPT, not TPS
A server at 20 TPS and 44 MSPT is one busy moment away from dropping, and TPS will not warn you. MSPT is the amount of the 50ms tick budget you are actually spending.
History
Retention follows your plan: 7 days on Free, 90 on Pro, 365 on Business.
History is what turns a symptom into a diagnosis. A TPS drop on its own is an incident; the same drop at the same time every evening for two weeks is a cause you can find.
Lag snapshots
When TPS falls below critical-tps, the plugin captures the complete state at that moment and sends
it with the next post:
- TPS and MSPT at the moment of the drop
- entity count and loaded chunks, per world
- player count and names
- world sizes
Snapshots are listed separately from the normal timeline, so you can jump straight to the bad moments instead of scrolling for them.
Player correlation
Snapshots and metrics both record who was online. The dashboard uses that to answer the question every lag investigation eventually reaches: was it a player?
A drop that only ever happens when one specific player is online usually means a farm, a chunk loader or an autoclicker in a base you have not visited.
Plugin CPU
With Spark installed and track-plugins: true, the dashboard ranks plugins by tick time. This is
usually where the answer is, and it is the reason the Spark recommendation is worth following.
Without Spark the numbers are estimates — directionally useful, not something to make a decision on.
Console errors
Captured SEVERE lines are grouped by signature rather than listed one by one, so a single stack
trace repeating 4,000 times shows up as one entry with a count instead of burying everything else.
Security
The security tab collects what the plugin's security monitoring sends: dangerous commands, connection floods and failed logins, with severity. On higher plans it also carries the vulnerability scanner, open-port checks and a security score.
Settings that live here
| Setting | Where |
|---|---|
| Report frequency and recipients | Server → Reports |
| Alert thresholds and channels | Server → Alerts |
| Discord channel | Server → Integrations |
| Servers and API keys | Servers |
| Billing and invoices | Account → Billing |
| API tokens (Business) | Account → API |
Deliberately none of this is in config.yml. Changing who gets a report should not require SSH
access to a game server.
Status page
Business plans can publish a status page on a custom domain — uptime and current player count, without exposing the rest of the dashboard. It is the piece you link from a Discord server or a store page.
Invoices
Invoices are generated per billing period and downloadable under Account → Billing. Name and address are collected at signup because German invoicing law requires them on the document — which is also why the free plan asks for them.