Skip to content

WatchTower 1.2.0 Beta 1

Latest

Choose a tag to compare

@djinnbanter djinnbanter released this 02 Aug 14:42

This is a beta

This build is for NeoForge 1.21.x only. It will have bugs. Please try it on a test pack first, not your big season world.

The last public GitHub release was 1.1.2. If you're still on that jar, everything below is new. (I shipped a few private builds in between. Their notes live in this beta so you don't have to dig.)

Updating from 1.1.2

Your old dashboard login becomes the owner account. Same password. No reset. After you restart, everyone signs in again (normal after any reboot). I keep a backup of the old login file at watchtower/dashboard-auth.json.pre-1.1.18.bak.

What's new since 1.1.2

Keep the server safer

  • Soft Disable / Enable for mod jars. Renames the file to *.jar.disabled so NeoForge skips it next boot. No delete button. If the world might need that mod (extra dimensions and such), you get a world risk warning and an extra confirm. Overview shows Restart needed until you reboot.
  • Backup check: Backups can show Verified / Suspicious / Broken. Hit Verify now. Optional test restore goes under watchtower/restore-verify/ only, never your live world. If the newest backup fails the check, you get an Issue.
  • Named accounts: owner / admin / viewer. Owner adds people under Settings → Accounts. There's an audit log for settings, reviews, accounts, and sign-ins.
  • The side rail shows who you're signed in as, Sign out, and an optional Minecraft skin link.
  • Join / pack sync clinic: when a player can't join because their mods don't match (missing, wrong version, channel mismatch), WatchTower reads that from latest.log, opens an Issue, and shows it on Session → Session activity with a player-safe Copy fix.
  • Mods → Configs: edit TOML under config/ from the dashboard. Form when it parses, raw editor if not. Saves make a backup and you can undo. Admin+ only.
  • Insights → Configs RAM advice looks at your host or container memory limit, not a random heap guess.
  • Jar drift: same filename + version, but the file hash changed. That becomes an Issue so you can check it was on purpose (not labeled "corrupted").
  • Client-only jars can show up on Issues when I'm pretty sure they don't belong on a dedicated server.
  • External kill / OOM: if the host or panel killed the JVM and Minecraft left no crash report, Crashes can show a Killed entry with the right fix (raise memory vs raise the panel stop timeout).
  • Soft hang / freeze: if the server tick freezes hard, you get a critical Issue (optional dump under watchtower/hangs/). When I can tell, I add a likely cause and a suspect-mod hint.
  • Restart hygiene: Overview can say "maybe restart soon" when the server has been up a long time and GC/heap look worse, plus a historically quiet hour. Advice only. It never restarts for you.
  • Silent script / datapack fails: KubeJS, CraftTweaker, datapack JSON, and /reload errors that never crash the server still become Issues.
  • Weekly digest: Insights → Digest (and a dismissible Overview card) summarizes the week.
  • Remember me survives a Minecraft restart. Sessions live under watchtower/dashboard-sessions.json.

Find lag and pack pain

  • Spark → Map: pan and zoom a heat map of chunk entity hotspots from the profile you selected. Click a square for the same chunk details as World.
  • Insights → Storage Space map: a treemap of where disk goes (world / mods / logs / backups).
  • Insights → World: entity and chunk pressure by dimension (item storms, mob spikes, forceload share, players) plus world-pressure Issues. It never auto-cleans entities or chunks.
  • Logs: real viewer for latest.log, debug.log, rotated .log.gz, and crash report files. Filters, search, problems-only, copy/download.
  • Activity: when lag, crashes, pack changes, and backups line up in a short window, I stitch an incident story. Overview can tease the latest one with a jump to Activity.
  • Startup: boot phases and a launch/config check without waiting on a giant scheduled report.
  • Issues inbox is Critical / Warning / Info only. Drift, silent-fail, world-pressure, join-sync, soft-hang, and friends still open with the right Fix actions.
  • Mods → Log errors: Active / Reviewed + Mark reviewed.
  • Mods catalog: icons, side badges, Updates / Conflicts / Modrinth / Forensics. Modrinth lookup never downloads jars for you.
  • Support packs: pick a pack type, optional note, size strip. Customize files stays optional. Redaction and size math are tighter.
  • Dashboard timezone for Schedule / quiet-window display. Stored data stays UTC.
  • In-app Help Center (Docs) with searchable wiki pages.

Look and feel

  • Night Watch Desk look: signal-blue accent, tighter corners, clearer gauge colours (metric vs healthy/warn), shared hero plates.
  • Theme + accent: Light / Dark / Black / System plus accent presets. Rail Customize and Settings → Appearance (per account).
  • Live charts jump and flash less. Tabs scroll to top when you change pages. Tabs load lazily so the shell feels snappier.

Bugs I fixed

  • Soft-disable no longer snaps the Mods detail panel back to Enabled after a successful rename (the mod stays loaded until you reboot). Also no more duplicate catalog row when a mod's mods.toml has NeoForge template junk like #mandatory / ${file.jarVersion}.
  • Boot crash from Checker Framework colliding with Groovy: nested core no longer ships those packages.
  • Live charts used to blink empty or jitter on hover. Calmer now.
  • Opening Insights after the Storage Space map animation could blank the page. Fixed.
  • Support zips could leak unredacted ops data into the facts/brief, and the size estimate was wrong. Both fixed.
  • Spark finding detail: long method names wrap, and I stopped showing internal field names like source_rollups.own_pct.
  • Spark → World busy-chunk cards stacked in one tall column when there were lots of them. Grid again (use Map if you want every chunk).
  • When Overview says Degraded, it can say why.
  • Mission uptime no longer overflows the mission band.
  • External kill shouldn't fire after a clean /stop.
  • Normal Modrinth version bumps don't raise jar drift (drift is same name + version, different hash only).

Full detail: CHANGELOG.md.

Files

File Put it here
watchtower-neoforge-1.2.0-beta.1+mc1.21.jar Server mods/
watchtower-cli-1.2.0-beta.1.jar Same mods/ (use java -jar when the game won't boot)

GitHub only for this beta. Not on Modrinth yet.