Skip to content

CaYaDev Server Manager v0.2.0 — four surfaces, one map

Choose a tag to compare

@CaYatur CaYatur released this 29 Jul 17:51
· 16 commits to main since this release
e556cd0

The whole of MSMS runs now. v0.1.0 was a desktop manager with a web panel marked beta; v0.2.0 is four surfaces — the desktop app, an admin web panel, a public website with a store, and a page that is nothing but a fullscreen live map — that all draw the same world and share the same rules.

101 commits since v0.1.0.


🗺️ The map became a map

v0.1.0 drew dots on a grid. This release renders the server's own region files.

  • Real terrain, read from the .mca files the server already writes. MSMS never generates world — a map that could grow a world by being panned would be a map that can fill a disk.
  • Drag to pan, wheel to zoom, anchored on the cursor, on every surface.
  • Nether and End, which needed a different technique: the nether has a bedrock roof, so the scan works down from under it.
  • Structures — villages, dungeons, temples, fortresses, mineshafts — with SVG glyphs and a per-kind filter, off by default because where the loot is turns a public map into a treasure map.
  • Tiles cached on disk, re-parsed only when the server rewrites a region. Measured: ~180 ms to parse a region, ~1 ms to read one back.
  • Performance is an operator setting — cache, regions in memory, delay between parses, cache ceiling, and whether panning keeps loading.
  • One map engine in all four places. Three had drifted apart; they were unified and are now held together by a cross-check that fails if they ever disagree.

🎨 Named chunk areas

Mark a region by chunk, give it a colour, a name and a note — bu alan sahibi: CaYatur. Hovering or clicking shows them, on every surface.

Created by selecting chunks on the map, by typing coordinates (10,20 or 30,40 - 32,42), or over the API. Where two areas overlap the smallest wins, so a plot inside a town reads as the plot.

🖥️ A third page: the fullscreen map

Its own listener and port — which is the point: you can hand the map to people who must not reach the shop or the panel, with a firewall rule rather than with trust.

Access is open, a shared passphrase, or signed-in players only, and the gate refuses the data rather than just the page. Eleven settings control what it may show, every one enforced server-side.

🌍 Public website, store and economy — out of beta

  • Player accounts verified in game, so it works on an offline-mode server too.
  • Profiles with per-field publishing controls.
  • A server currency, balances and a full ledger.
  • Products, crates with published odds, stock and per-player limits enforced atomically.
  • In-game delivery that queues while a player is offline.
  • Password reset, and the cracked-server problem it exposes, handled deliberately.
  • Mobile-friendly.

🔌 REST API at /api/v1

Versioned routes, an OpenAPI document, a human-readable reference the app serves itself, and live WebSocket streams.

API keys are scoped per server, shown once, and now come with ready-to-paste curl, JavaScript and Python samples built against your own install's address. A key can be disabled — reversibly, unlike revoking — from the list.

The reference documented the body field for revoke, disable and delete as id. The server has always read keyId. Anyone following it exactly got a 404 from revoke and a 200 from a delete that deleted nothing. Fixed, and the test now takes the field name from the route table so a lying document cannot sit beside a passing test.

🧱 Item icons and block colours from Mojang's own client jar

No more third-party CDN in the middle of a private server's inventory, and it works with no internet at all.

Measured on 1.21.4: a 27 MB download, sha1 verified, of which 644 item and 1039 block textures are kept — 0.4 MB on disk. One download per Minecraft version, behind a button.

🌉 MSMS Bridge

The plugin exists, installs itself from GitHub Releases on your approval, and reports through the plugin logger rather than System.out — so Paper stops nagging about it.


📸 Screenshots

The README now has them, and they are taken by the app of itself against throwaway demo servers, so they can be retaken after a redesign instead of quietly going stale.

⚠️ Notes

  • The web panel does not provide HTTPS by itself. Do not expose it directly to the Internet — put it behind a reverse proxy that terminates TLS, or reach it over a VPN.
  • The Bridge plugin is the youngest part of MSMS. It has had far less time in live servers than the desktop core.
  • The portable .exe is unsigned; Windows SmartScreen will warn on first run.

📦 Download

CaYaDev Server Manager-0.2.0-portable.exe — put it in the folder you want as your MSMS root. Everything it keeps lives in msms-data/ beside it.