A community administration plugin for Pumpkin 0.1.0-dev+26.2-26.45, the latest published release checked on September 14, 2026. Uses the official Pumpkin WASM plugin API with the stock, unmodified server. Derived from Aryaa2020's fork. Official endorsement or marketplace publication requires Pumpkin-MC approval.
Requires Node.js 22+ and the Pumpkin release above. The same .wasm plugin
works across Pumpkin platforms; the companion runs anywhere Node does.
Download the plugin and companion bundle from this repository's Releases page.
The server executable and a world are not included in the plugin release.
-
Extract the dashboard release archive into a separate folder. Copy
pumpkin-dashboard.wasmto your server'splugins/directory. -
Add this per-plugin permission section to the server's
pumpkin.toml(merge it if that section already exists), or approve those two permissions in Pumpkin's normal plugin prompt on first startup:[plugins.overrides.pumpkin-dashboard] allowed_permissions = ["fs.read.data", "fs.write.data"]
-
From the dashboard folder, run:
node scripts/setup.mjs "/absolute/path/to/your/server" node scripts/launch.mjsSetup generates a password and
dashboard.local.json; it does not overwrite an existing configuration. Setexecutablein that JSON if your server binary is not namedpumpkin.exe(Windows) orpumpkin(other platforms). Setportto change the dashboard port. The launcher captures server stdout, stderr and command replies inlogs/dashboard-console.log, retaining the previous run as.previous. The log grows during a run; normal server logs remain managed by Pumpkin. The browser reads only a bounded tail.
The dashboard binds to loopback only. It is a local administrator interface.
If Pumpkin is already managed by another process, start only node server.mjs
and set logFile to that process manager's captured stdout/stderr file. Pumpkin's
ordinary logs/latest.log omits command replies, because those use stdout.
On Windows, after setup, ./Start-Dashboard.ps1 starts the launcher. Open
http://127.0.0.1:8080 and sign in as owner with the generated password in
runtime/dashboard-login.txt. Ctrl+C asks Pumpkin to save and stop. Do not start
a second server copy while it is running. The plugin supports both online and
offline-mode servers; it does not change Minecraft authentication settings.
The interface uses the locally bundled Tabler 1.5.1 dashboard template and
Tabler Icons 3.46.0, customized with indigo panels, pumpkin-orange accents,
responsive navigation and an original voxel illustration. No CDN connection is
needed. Template/icon license notices are included in web/vendor.
- Responsive overview, searchable players, performance charts and editable settings.
- Start, graceful stop, restart, and explicitly confirmed force stop. The panel
stays available when Pumpkin is stopped. Launch with
--no-startto start only the panel. - Validated options, resource packs and advanced TOML editing; changes apply after restart.
- Operators, whitelist, player bans and IP bans, online or while stopped. Exact UUIDs are required; offline and online player identities differ.
- File browsing, text editing, upload/download, rename, folders and recovery copies.
- WASM plugin upload, enable/disable and removal. Host compatibility and permissions are checked by Pumpkin on startup; downloaded plugins are not sandbox-reviewed here.
- World generation, selection, regeneration and ZIP import/export.
- Local backups of configuration, player lists, plugins and all discovered worlds; checked restores keep a safety backup and a recovery copy.
- Additional administrator accounts with per-feature permissions and session revocation.
- Recurring backups, restarts and console commands while the companion is running.
- Official Pumpkin release downloads with SHA-256 verification and executable recovery.
- Administration activity history. See FEATURES.md for scope and limits.
- Live TPS measured from completed tick events and monotonic elapsed time. The
release API's
get_tps()reports reciprocal work time, so it is deliberately not used as the actual tick rate. - MSPT from Pumpkin, live player UUIDs, ping, world and game mode.
- Java and Bedrock kick paths; permanent bans through the host ban manager.
- Console history, pause/resume, export, command recall, and command submission.
- World/player save with an explicit acknowledgement.
- Cookie sessions with 8-hour expiry, logout revocation, bounded session count, login throttling, same-origin checks, host validation and a strict CSP.
- Offline detection, chart gaps during outages, bounded command queues, expiring requests bound to the current server boot, and no automatic retries of commands whose outcome is uncertain.
Browser → local Node HTTP service → plugin-private request files → WASM plugin →
Pumpkin API. The plugin writes atomic status snapshots and action acknowledgements
back to its private data folder. It needs no network or system-information permission.
No server patch, Rust dynamic-library ABI, npm installation or frontend build
service is required. This is a WASM plugin plus a companion process, not a
single self-hosting .wasm or a Fabric/Forge mod.
Snapshots refresh about once per 20 game ticks; browser polling is every 2 seconds.
Uptime is since plugin load. Charts retain five minutes in the current browser
session. Management features require the launcher; node server.mjs retains the
read-only configuration mode for externally supervised servers. Process memory is unavailable through this API
and is not fabricated from host-wide memory. Commands run with console authority;
the API supplies no result text, so submission acknowledgements are distinct from
command success. Inspect the captured console for the result.
Save acknowledgements confirm that Pumpkin handled the request, not that every disk write succeeded. With the launcher, known chunk-save failures in captured logs remain visible as a warning for that server run, and subsequent save requests return a warning/error instead of claiming success. This detects reported failures; it does not validate or repair world files and depends on available host logging.
Requests time out after 12 seconds and are never retried automatically. A timeout after an action began cannot prove whether it finished. Inspect the server before retrying. Access lists can also be managed from the dashboard while the server is stopped.
The companion owns the server process. Stop other server launchers before using it.
Mutating world/file/plugin operations require a stopped server. Backups and world ZIPs
are limited to 256 MiB expanded and 20,000 entries; uploads to 64 MiB (plugins: 32 MiB);
the text editor to 512 KiB. Larger worlds need filesystem backup tools. Backup archives
contain server configuration and may include secrets; store them privately. Generated
plugin caches, bridge data, dashboard credentials and logs are excluded from backups.
Recovery copies and audit logs are kept in the server's .dashboard folder and need
periodic disk-space maintenance. Schedules run only while the companion runs, and
missed executions are coalesced into one run. Console, Files, Backups and Software
are powerful permissions intended for trusted administrators.
This provides local server management, not Aternos hosting infrastructure. Cloud compute, public networking, DDoS protection, hosted DNS and Google Drive backup integration are not included. The interface never implies that these are connected.
rustup target add wasm32-wasip2
cargo build --locked --release --target wasm32-wasip2 -p pumpkin-dashboard
node --test tests/*.test.mjs
node tests/runtime-smoke.mjs "/path/to/pumpkin"
node scripts/package.mjsBuilt plugin: target/wasm32-wasip2/release/pumpkin_dashboard.wasm.
The opt-in integration test creates a separate loopback-only offline test server
under test-results, checks a real Java connection, kick, permanent ban after
restart, commands and world saving, then stops it. It never uses your live world.
See VALIDATION.md for results and remaining test limits, and NOTICE.md and
provenance.json for source attribution and exact compatibility revisions.