Server Dock

Beta

Server Dock connects your Paper servers to genesix Blocks, so you manage them from the same place you build plugins: see what needs fixing on each server and how, follow lag, memory, disk and crashes, install plugins in one click, and restart with a countdown for your players. Add genesix Runtime — a small plugin — to each server to connect it. Connected servers appear in the sidebar under Server Dock.

Server Dock is included with the Iron plan (up to 3 servers) and the Diamond plan (up to 8 servers). Removing a server frees its place. If you move to a plan with fewer servers, the servers you have stay connected; you just can't add more until you're under the new limit. See pricing.

Available today

  • Connect up to 3 servers (Iron) or 8 (Diamond)
  • Live status: online or offline, Minecraft and Runtime version, players
  • A setup check of 24 rules on Java, memory, config, plugins and crashes, re-run at every start and every night
  • Every plugin on your server inspected by Plugin Inspector automatically: plugins you built with genesix, and those whose file is on Modrinth
  • Lag, memory, disk and world readings every minute, with charts for 24 hours, 7 days and 30 days
  • A history of plugin, config, server build and Java changes, with every restart and crash
  • One-click install and update of plugins you built
  • Automatic backup on every update, and one-click restore of the previous version
  • An owner switch on the server that turns remote installs off
  • Remote restart with a countdown, cancellable from the console
  • Each server's plugin list, including updates waiting for a restart

Coming next

  • AI diagnosis of crashes and lag, with fixes you approve
  • Server-aware building: the agent sees your server's plugins and versions
  • Fleet-wide rollouts and config drift checks across your network
  • Plugin Inspector inspections of everything installed on a server

Requirements

  • A Paper 1.21.x server on 64-bit Linux, Windows or macOS.
  • Outbound internet access on port 443 (or 8883) to runtime.blocks.genesix.app. The server opens no ports.
  • On the first start, Paper downloads the libraries genesix Runtime needs (about 24 MB) from Maven Central into the server's libraries/ folder. Later starts reuse that copy.

Connect a server

  1. In the sidebar, open Server Dock and click Connect a server.
  2. Give the server a name you'll recognise and pick its Minecraft version.
  3. Click Download Runtime. This JAR is made for this one server and carries a one-time key.
  4. Put the JAR in the server's plugins/ folder.
  5. Start or restart the server within 24 hours. It shows as Online within a minute.

Don't share the download: its key links the first server that starts with it to your account. If 24 hours pass, download again for a fresh key. After the first start the server keeps its own identity in plugins/genesixRuntime/. Keep that folder when you update the plugin.

Server status

  • Not downloaded yet / Waiting for first connection: the server was added but hasn't connected yet.
  • Download expired: 24 hours passed without a connection. Download again.
  • Online: connected now.
  • Offline: the server is stopped or can't reach genesix. Shown within about 90 seconds.
  • Update available: a newer genesix Runtime exists for this server's Minecraft version.

Your server page

Open a server from Server Dock. Its page has five tabs: Overview, Issues, Plugins, History and Settings.

Overview

  • Status card: one line telling you whether the server is OK, and the four vital signs — Performance, Memory, Disk and Players — with their 24-hour trend. Click any for the full charts.
  • To do: the things that need an action — issues to fix, changes waiting for a restart, and a genesix Runtime update when one is available — each with one button.

Issues

  • Everything genesix checks, by urgency: Fix now, Worth a look and Suggestions.
  • Below the list: issues resolved recently, and the ones you dismissed. Open an issue to see why it matters and how to fix it, or to dismiss it.

How urgent is an issue?

  • Fix now: a confirmed problem on this server.
  • Worth a look: likely to cause trouble, depending on your setup.
  • Suggestions: optional; a suggestion or a trade-off you may have chosen.

Plugin inspection

genesix inspects every plugin on a connected server with Plugin Inspector, without you uploading anything. It matches each plugin file by its fingerprint: plugins you built with genesix are matched to your own builds, and when the identical file is on Modrinth, genesix fetches that public copy. Results appear on the Plugins tab and in your Plugin Inspector list. Other plugins (paid or private ones) show “Not available”; you can upload those to Plugin Inspector yourself. On the Plugins tab, the Code check column shows each plugin's result; click it to open the full report. genesix Runtime itself is inspected the same way.

When genesix checks

  • The setup check runs when the server starts, after /reload, when a plugin is turned on or off, and when you run /genesix snapshot resend in the console. genesix also re-checks every server each night against outside information, such as new Paper builds and plugin updates.
  • Lag, memory and disk are read every minute while the server runs. A lag issue opens only while players are online. To stop sending them, set metrics.enabled: false in plugins/genesixRuntime/config.yml and restart.
  • An issue resolves by itself when a later check no longer sees the problem.

How long genesix keeps it

Minute-by-minute readings for 48 hours, hourly readings for 90 days, the change history for 90 days, restarts and crashes for 30 days, and resolved issues for 30 days.

Install a plugin

  1. Open the server from Server Dock. It must be Online.
  2. Click Install plugin, pick one of your plugins, then the version.
  3. Confirm. Progress shows live: sent, downloading, installed. You can close the window; the install carries on.
  4. Restart the server to load it, from genesix (see below) or your hosting panel.

What happens on the server

  • The server downloads the JAR over a secure link that works for 15 minutes and only for that one file.
  • The file is named after the plugin, without a version (for example BountyHunter.jar), so later updates replace it cleanly.
  • First install: it goes into plugins/.
  • Update (a file with that name already exists): it goes into plugins/update/, and Paper swaps it in at the next start.
  • Before an update, the current JAR is copied to plugins/genesixRuntime/backups/<plugin>/. The 3 newest backups per plugin are kept. If the backup fails, nothing is changed.
  • Nothing is loaded while the server runs. Every install takes effect at the next restart.
  • Staff with genesixruntime.notify (ops by default) get a chat notice.

One install or restart runs at a time on each server. If an older copy of the same plugin exists under a different file name (for example BountyHunter-1.0.4.jar), the install stops and asks you to remove it first: two copies would stop Paper from loading either.

Restore the previous version

An update didn't work out? In the server's Plugins list, a plugin that was updated by an install shows Restore <version>.

  1. Click Restore next to the plugin and confirm.
  2. The server puts its backup of the previous version into plugins/update/. The backup itself is kept.
  3. Restart the server (Restart to apply, or your hosting panel). Paper swaps the old version back in.

Restore needs genesix Runtime 1.0.21 or later and a backup, which only exists for plugins that an install from genesix updated. It restores the JAR only: a plugin's config and data files are not rolled back. Like installs, it runs one at a time and only when installs are allowed on the server.

Restart a server

The Restart button appears when the server is online and can start itself again after stopping. Right after an install it reads Restart to apply.

  • Players see a 30-second countdown in chat (5 seconds when nobody is online), then the server restarts.
  • Anyone with genesixruntime.restart (ops by default) can stop it with /genesix restart cancel.
  • The server shows Offline, then Online again, and the plugin list updates with what actually loaded.

Why the button might be missing

A restart only brings the server back if it knows how to start itself. That's controlled by remote-restart in plugins/genesixRuntime/config.yml:

  • auto (default): allowed when settings.restart-script in spigot.yml points to a start script that exists.
  • enabled: always allowed. Choose this if your host starts the server again after it stops.
  • disabled: never. Restart from your hosting panel instead.

After changing it, run /genesix reload.

Turn remote installs off

The server's owner decides whether genesix may install anything. In plugins/genesixRuntime/config.yml, set remote-install: disabled and run /genesix reload. genesix then shows installs as turned off for that server, and the server refuses every install and restore, whatever it receives. Status, the plugin list and restarts keep working. Nothing sent from genesix can change this setting.

Update genesix Runtime

When a server shows Update available, click Download update on its page, then:

  1. Stop the server.
  2. Upload genesix-runtime.jar to plugins/, replacing the file with the same name. Keep the genesixRuntime folder: it holds the server's connection.
  3. Start the server. Its page shows the new Runtime version within a minute.

Every download is named genesix-runtime.jar, so an update simply replaces the old file. If your server's file has a version in its name (for example genesix-runtime-1.0.19.jar), delete that one once (the server's page shows its exact name). Never keep two genesix Runtime JARs in plugins/. To update without stopping the server, put genesix-runtime.jar in plugins/update/ and restart; this works once the installed file has that same name.

Remove a server

Open the server and click Remove server. Its identity is revoked and it disconnects at once. To connect it again later, delete its genesix Runtime JAR and genesixRuntime folder, then add it as a new server.

Commands and permissions

/genesix works in the server console and in game (not over RCON). Every permission is granted to ops by default, and genesixruntime.admin includes them all.

CommandWhat it doesPermission
/genesix statusConnection state, server ID, last install, last problemgenesixruntime.status
/genesix connect · disconnect · reconnectTurn the connection on, off (stays off across restarts), or reopen it nowgenesixruntime.connection
/genesix test <message>Send a test message; it shows on the server pagegenesixruntime.test
/genesix messagesThe last messages received from genesixgenesixruntime.messages
/genesix reloadRe-read config.ymlgenesixruntime.config
/genesix set port 443|8883Change the connection portgenesixruntime.config
/genesix debug on|offExtra detail in the consolegenesixruntime.config
/genesix restart cancelStop a restart countdown started from genesixgenesixruntime.restart

genesixruntime.notify: chat notices about installs and connection problems.

Settings

In plugins/genesixRuntime/config.yml. Most servers never change them, and nothing genesix sends can change this file.

SettingDefaultMeaning
enabledtruefalse disconnects and stays disconnected: the off switch
connection.endpointset on first startThe genesix address. Change it only if support asks
connection.port443443 or 8883
notify-stafftrueChat notices to staff with genesixruntime.notify
remote-restartautoauto, enabled or disabled (see Restart a server)
remote-installenableddisabled refuses every install and restore from genesix
debugfalseExtra console detail for troubleshooting

Security and privacy

  • Outbound only. The server dials out to genesix. You open no ports and share no panel or SFTP passwords.
  • Its own identity. Each server gets its own certificate on first start and can only reach its own messages, never another server's.
  • What it sends: Minecraft, Paper and Java versions; the plugin list (names, versions, file names, file hashes); selected settings from server.properties, bukkit.yml, spigot.yml and Paper's config files (never passwords or proxy secrets); Java start flags only if you turn that on; once a minute, performance readings (MSPT and TPS, memory, disk space, entity and chunk counts per world) and the player count; how the previous run ended; and your test messages. No chat, no player names, no world files.
  • bStats: like most Paper plugins, genesix Runtime also sends bStats' standard anonymous usage statistics (for example the number of servers and Minecraft versions) to bstats.org, a third party. Switch it off for all plugins in plugins/bStats/config.yml.
  • Files it writes: only inside plugins/genesixRuntime/ (config.yml, runtime.db, native/, backups/, and debug/ when debug is on), plus the plugins you install and the libraries Paper downloads into libraries/.
  • What genesix can do on the server: place the plugins you choose, or a previous version you restore, into plugins/ or plugins/update/ (unless remote-install is disabled), and restart it when remote-restart allows. It can't run commands, read or change other files, or change its own settings.
  • You can always cut it off: /genesix disconnect, enabled: false, or removing the JAR on the server; or Remove server in genesix, which revokes its identity.

Troubleshooting

“This copy of genesix Runtime isn't linked to an account”

The server has no saved identity and the JAR isn't a personal download. This happens when plugins/genesixRuntime/ was deleted, or a plain update JAR was used on a new server. Remove the server in genesix, add it again, and use the new personal download.

“Your genesix enrollment key is invalid, expired, or already used”

The download's one-time key was used by another server, or 24 hours passed. Download again from the server's page.

“genesix refused this server's connection”

The server was removed in genesix, or your host blocks secure connections to runtime.blocks.genesix.app. If you removed it, add it again. Otherwise ask your host to allow outbound port 443, or try /genesix set port 8883.

“Another server is using this server's genesix identity”

The plugins/genesixRuntime/ folder was copied to a second server. Each server needs its own: delete the folder on the copy and connect it as a new server.

“This server's Java can't use port 443”

Run /genesix set port 8883.

The install says “The download link expired”

The server took longer than 15 minutes to start the download. Click Install plugin again.

The install says an older copy has a different file name

Delete the older JAR named in the message from plugins/, restart, and install again.

“The server didn't respond”

The server went offline during the install or restart, or runs a genesix Runtime older than 1.0.12 (installs) or 1.0.15 (restarts). Update genesix Runtime and try again.

“Installs are turned off on this server”

The server's owner set remote-install: disabled in plugins/genesixRuntime/config.yml. Set it to enabled and run /genesix reload to allow installs and restores again.

No Restore button next to a plugin

There's no earlier version on the server: backups start with genesix Runtime 1.0.21 and are taken only when an install updates a plugin. A plugin with an update waiting for a restart shows none until the restart.

“Couldn't back up the current version, so nothing was changed”

The server couldn't write to plugins/genesixRuntime/backups/ (disk full or file permissions). Free space or fix the folder's permissions and install again.

genesix Runtime doesn't load on the first start (“Error resolving libraries” or “Could not transfer artifact … from/to central”)

Paper couldn't download the libraries genesix Runtime needs. Allow outbound HTTPS to repo1.maven.org and repo.maven.apache.org and restart. Some hosts empty libraries/ on every restart; there, every start needs that access.

“You've connected as many servers as your plan allows”

Remove a server you no longer use, or upgrade: Iron connects up to 3 servers, Diamond up to 8.

No Restart button

The server can't restart itself yet. See “Why the button might be missing” above, or restart from your hosting panel.

“genesixRuntime needs a full server restart (a /reload is not enough)”

Restart the server. /reload and plugin managers can't reload genesix Runtime's native libraries.