
StatusPing
StatusPing is a lightweight server utility for monitoring uptime, scheduling automated restarts, and sending Discord alerts to keep staff and players informed.
The ultimate lightweight monitoring, optimization, and utility solution for your server.
⚡ Overview
StatusPing is a modern utility plugin designed to keep your staff and players updated on the server's health while providing tools to improve performance. Whether it's optimizing server configurations, scheduling automated restarts with beautiful countdowns, monitoring uptime via status page services, or sending performance alerts to Discord, StatusPing handles it all.
🔥 Key Features
🚀 Server Optimizer (New!)
Stop guessing which settings cause lag. The new optimizer module scans your configuration files (server.properties, bukkit.yml, spigot.yml, paper-global.yml, etc.) and compares them against optimized presets.
- Presets: Includes built-in presets (e.g.,
example-lobby) or create your own custom presets. - Detailed Reports: Generates text files showing exactly which settings differ from the recommended values.
- Safe Application: Automatically backs up your config files before applying any changes.
- Safe Gaurds: Doesn't save certain entries in configs like server_ip etc.. or anything sensitive.
📅 Advanced Restart Planning
Forget basic stop commands. Schedule professional restarts with fully customizable countdowns.
- Visual Countdowns: Supports BossBars, Action Bars, Titles, and Chat notifications.
- Custom Reasons: Tell players why the server is restarting (e.g., "Daily Maintenance" or "Bug Fixes").
- Safety: Automatically kicks players with a custom reason right before the actual shutdown.
💬 Discord Integration
Keep your staff team and players in the loop without being in-game.
- Startup & Shutdown Webhooks: Diverse embed messages when the server opens or closes.
- MSPT/Lag Alerts: Automatically alerts your admin channel if server performance drops, with customizable thresholds and duration checks to prevent spam.
💓 Heartbeat & Uptime
- External Monitoring: Pings a URL (like BetterStack or UptimeRobot) at set intervals to track your uptime percentage accurately.
- In-Game Graph: View a visual history of heartbeat success/failures directly in-game.
📊 Performance Stats
- View real-time TPS, MSPT, and RAM Usage with a single command.
- Includes a "Heartbeat Graph" to see network stability over the last few minutes.
💻 Commands & Permissions
| Command | Usage | Permission | Description |
|---|---|---|---|
| /statusping | /statusping | statusping.view | View server uptime, RAM, MSPT, and heartbeat graph. |
| /statusping reload | /statusping reload | statusping.reload | Reloads the configuration and messages. |
| /plan-restart | /plan-restart <time> [reason] | statusping.planrestart | Schedule a server restart (e.g., /plan-restart 5m Maintenance). |
| /plan-restart cancel | /plan-restart cancel | statusping.planrestart | Cancel a currently scheduled restart. |
| /optimize | /optimize <preset> [apply] | statusping.optimize | Generate an optimization report or apply a preset. |
| /optimize save | /optimize save preset <name> | statusping.optimize | Save your current server settings as a new preset. |
| (Notification) | N/A | statusping.update | Receive a notification on join when a new update is available. |
🧩 PlaceholderAPI Support
StatusPing fully supports PlaceholderAPI, allowing you to display stats on scoreboards, tabs, or holograms.
| Placeholder | Description |
|---|---|
%statusping_uptime% | Formatted server uptime. |
%statusping_tps% | Current Server TPS. |
%statusping_mspt% | Average tick time (MSPT). |
%statusping_ram_used% | RAM used in MB. |
%statusping_ram_total% | Total allocated RAM in MB. |
%statusping_restarting% | Returns true if a restart is scheduled, otherwise false. |
%statusping_restart_time% | The remaining time until restart (e.g., "2m 30s"). |
%statusping_heartbeat_status% | Current status of the heartbeat task (Success/Failed/Waiting). |
%statusping_last_heartbeat% | Time elapsed since the last successful heartbeat. |
🛠️ Setting up BetterStack
- Sign up at https://betterstack.com/
- Create a heartbeat

- Give it a name and keep the default values for expecting heartbeat and grace period. (The expected heartbeat should match the
intervalinconfig.yml)
- Copy the url generated, and paste it into the heartbeat section in
config.yml - Restart the server and you should have connected it successfully.
- Create a free status page with your new heartbeat, if you have multiple servers you can do the same for each.
⚙️ Configuration
The plugin is highly configurable. You can toggle every feature, customize every message using MiniMessage (gradients, hover events, etc.), and tweak Discord embeds.
Click to view config.yml
# ---------------------------------------------------------------------------------- #
# StatusPing Configuration
# ---------------------------------------------------------------------------------- #
# --- General Settings ---
# Enable debug mode to see detailed logs in the console.
debug: false
# Checks for updates on startup and notifies admins.
update-checker: true
# --- Integrations ---
integrations:
# Discord Webhook Integration
# Sends automated messages to a Discord channel to announce server status.
discord:
enabled: false
webhook-url: "https://discord.com/api/webhooks/XXXX/YourSecret"
# Customization for the startup embed
startup:
username: "Server Status"
avatar-url: "https://i.imgur.com/GkTenaK.png"
embed:
title: "Server Online"
description: "The server is now marked as online."
# Color supports standard Hex codes (e.g. #64a338)
color: "#64a338"
timestamp: true
footer:
text: "YOUR-SERVER-NAME"
icon-url: ""
# Customization for the shutdown embed
shutdown:
username: "Server Status"
avatar-url: "https://i.imgur.com/GkTenaK.png"
embed:
title: "Server Shutdown"
description: "The server is now marked as offline."
color: "#e03b24"
timestamp: true
footer:
text: "YOUR-SERVER-NAME"
icon-url: ""
fields:
- name: "Shutdown Reason:"
value: "{shutdown_reason}"
inline: false
# Alerts when Server Performance (MSPT) is high
mspt-alert:
enabled: false
webhook-url: "https://discord.com/api/webhooks/YYYY/YourSecret"
threshold: 50.0
duration: 5
username: "Server Performance"
avatar-url: "https://i.imgur.com/GkTenaK.png"
embed:
title: "High MSPT Detected!"
description: "The server's MSPT is currently above the configured threshold of {threshold}."
color: "#ffc400"
timestamp: true
footer:
text: "YOUR-SERVER-NAME"
icon-url: ""
# Heartbeat / Uptime Monitoring (e.g. BetterStack)
heartbeat:
enabled: false
interval: 180
url: "https://uptime.betterstack.com/api/v1/heartbeat/"
# --- Modules ---
# Server Restart Planner (/plan-restart)
restart-system:
# Default reasons for restarts
defaults:
planned-reason: "Server is restarting as scheduled."
unplanned-reason: "Server shutdown initiated unexpectedly."
# Constraints for the /plan-restart command
# Time format examples: "10s" (seconds), "5m" (minutes), "1h" (hours).
constraints:
min-delay: "15s"
max-delay: "10m"
# Notification settings
notifications:
chat: true
action-bar: true
kick-players: true
# Times (in seconds) to broadcast a warning
intervals:
- 120
- 60
- 30
- 10
- 5
- 4
- 3
- 2
- 1
boss-bar:
enabled: true
title: "<red><bold>Server Restarting in <time></bold></red>"
# Available Colors: PINK, BLUE, RED, GREEN, YELLOW, PURPLE, WHITE
color: "RED"
# Available Overlays: PROGRESS, NOTCHED_6, NOTCHED_10, NOTCHED_12, NOTCHED_20
overlay: "PROGRESS"
titles:
enabled: true
start-at: 10
sounds:
enabled: true
tick: "block.note_block.hat"
restart: "entity.lightning_bolt.thunder"
