ZedarMC

Platform developer · Jul 2026 → Present

  • Deployed Cryon as the network’s core runtime.

    ZedarMC runs on my Cryon module framework, so most of my work here lands in the framework itself: feature flags, network-wide maintenance mode, the server registry and player routing across the sharded backend, and the Velocity proxy loader. Read the full Cryon write-up →

  • Built Cryon-Filter to replace the old chat filter.

    Two tiers: swear categories each player can switch off, stored network-wide, and a slur tier nobody can. Matching runs an Aho-Corasick automaton plus hand-written fuzzy search instead of regex, about 28 µs a chat line against roughly 3,800 rules, and sign edits are dropped at the packet layer before the block is ever written. /punishwhosaid sweeps everyone who recently said a phrase.

  • Built Cryon-Visibility, a vanish that looks like a real disconnect.

    Leave message, shrinking tab list, lower server-list count, and a /msg that answers “not online”. The server treats a vanished staffer as a spectator while their client stays in creative, so mobs, villagers and trial spawners ignore them with no packet sent. Read the full breakdown →

  • Shipped a Towny claim tool.

    Select land with a shovel, see ghost-block outlines, confirm in a dialog on Java or a form on Bedrock. Outlines are block-change packets sent only when the selection, the claim map or the ground under you changes, a flood fill rejects selections split by someone else’s land, and outposts claim in two phases so a multi-chunk outpost costs one slot instead of one per chunk.

  • Built network-wide presence in Cryon-Commons.

    Pub/sub carries joins and quits in about a millisecond, and each server’s own Redis hash with a heartbeat TTL repairs anything pub/sub dropped. Every server holds an in-memory roster of the whole network, so /msg resolves instantly and a crashed server’s players expire on their own.

  • Built Cryon-Metrics.

    A metrics module that writes into the SQL database Cryon already owns, so Grafana reads it straight out. It counts a session once even when a player hops between servers, gives Bedrock players a third session scope captured inside Geyser (device, input mode, logins the proxy never saw), and tracks server health, the Vault economy and real-money Tebex revenue. Eleven tables, seventeen dashboards, five alert rules.

  • Hardened player data and the economy.

    Player data preloads before login so joining is a cache hit, concurrent loads of one player share a single database read, and a failed save stays dirty until the write lands. Sell payouts batch once a second, with balances counting what’s still pending so nothing can see the gap.

  • Wired a WorldGuard addon into Cryon.

    Cryon-WorldGuardAddon adds three region flags (mace-use, spear-use, wind-charge-use). WorldGuard seals its flag registry the moment it enables, which happens before any Cryon module’s onLoad, so the addon claims its flags in the earlier preLoad phase instead.

  • Shipped features and fixes across the Zedar plugin fleet.

    Capturable outposts that pay out on an interval, crash-safe crop regrowth, a module loader where one failed module no longer stops the rest, metric hooks in ZedarCore, Paper 26.2 compat fixes in ZedarDrops, and admin-menu work in zedar-vault.