Skip to content

Releases: joogiebear/spawnloft

v0.12.1 — The repository is now joogiebear/spawnloft

Choose a tag to compare

@joogiebear joogiebear released this 05 Sep 01:38
Immutable release. Only release title and notes can be modified.
73d41a7

The repository is now joogiebear/spawnloft

Around the project

  • The source, the releases and the discussions have moved to
    github.com/joogiebear/spawnloft
    , so the
    place you download from and report to now carries the same name as the program. GitHub
    forwards the old address, so an install on 0.12.0 or earlier still finds this update. From
    this release on, the app asks for the new address directly rather than relying on that
    forward.
  • The command-line tool inside it is still mcctl, and every command works as typed.

Nothing else in the app changed in this release.

What's Changed

Everything else

  • release: 0.12.1 — the repository is now joogiebear/spawnloft by @joogiebear in #21

Full Changelog: v0.12.0...v0.12.1


Built from 73d41a7db964 on 2026-09-05T01:37:54.525Z.

v0.12.0 — mcctl is now SpawnLoft

Choose a tag to compare

@joogiebear joogiebear released this 05 Sep 01:25
Immutable release. Only release title and notes can be modified.
d70e467

mcctl is now SpawnLoft

Same program, new name. The desktop app, the panel, the installer and the
site are SpawnLoft; the site is at spawnloft.com.
The command-line tool inside it is still mcctl, and so is the repository,
so every command you know still works exactly as typed.

Upgrading

  • Install over the top. The setup replaces the old mcctl program folder
    with a SpawnLoft one and renames the shortcuts. The app updates itself to
    this release the same way it always has.
  • Everything you have stays where it is. Servers, worlds, backups, jars
    and settings live in the same folders under the same names. Servers that
    are running keep running through the upgrade; the window opens where you
    left it, and the first-run screen does not come back.
  • Scheduled tasks and launchers follow the program. The batch file behind
    each scheduled task, and the start/console/stop launchers in each server
    folder, named the old executable by its full path. They are rewritten the
    first time the panel opens after the upgrade, so tonight's backup still
    runs and a double-click still starts the server. The same happens if the
    program folder is ever moved by hand.

Around the project

  • The project page and the docs have moved to
    spawnloft.com, in their own repository. The old
    page sends visitors on.

What's Changed

Everything else

Full Changelog: v0.11.2...v0.12.0


Built from d70e467e0b8e on 2026-09-05T01:25:02.088Z.

v0.11.2 — Click the name instead of typing it

Choose a tag to compare

@joogiebear joogiebear released this 04 Sep 00:46
Immutable release. Only release title and notes can be modified.
6712711

Click the name instead of typing it

Deleting

  • The name you have to type to delete a server can be clicked instead. It is a button
    now: one click puts it in the box and the Delete button comes alive. The name is still
    shown, and still has to end up in the box, so the moment of reading which server this is
    has not gone anywhere; only the typo has. The same applies to every other prompt that asks
    for a name: deleting a world, removing a backup.

What's Changed

Everything else

  • release: 0.11.2 — click the name instead of typing it by @joogiebear in #18

Full Changelog: v0.11.1...v0.11.2


Built from 67127113dbed plus uncommitted changes: ?? .claude/ on 2026-09-04T00:45:46.090Z.

v0.11.1 — A slow Java is not a missing Java

Choose a tag to compare

@joogiebear joogiebear released this 04 Sep 00:37
Immutable release. Only release title and notes can be modified.
924e45d

A slow Java is not a missing Java

Java

  • A java -version that takes too long to answer is asked again before it counts against
    the binary. mcctl starts every Java on the machine at once when it looks for one, and on a
    busy machine one of them can overrun the eight-second window just printing its version. That
    was reported exactly like Java not being installed, so the Java on PATH could vanish from one
    look and be back the next, and the default could flip between the two. When it still does not
    answer after a second try, the message now says it was slow rather than absent.

What's Changed

Everything else

  • release: 0.11.1 — a slow Java is not a missing Java by @joogiebear in #17

Full Changelog: v0.11.0...v0.11.1


Built from 924e45dbd804 on 2026-09-04T00:36:55.802Z.

v0.11.0 — Share the log, and the first outside contributions

Choose a tag to compare

@joogiebear joogiebear released this 04 Sep 00:21
Immutable release. Only release title and notes can be modified.
d500512

Share the log, and the first outside contributions

The console can now leave the machine when you want it to, and this is the
first release with changes from outside the project. Console export and line
numbers are by @CallumJohnson.

Console

  • Export. Save the console to a .log file beside the server's
    snapshots, or upload it to mclo.gs, the log-sharing service plugin
    developers ask for, and open the link. The upload happens only after a
    dialog that says what is in it: mcctl replaces your account name in file
    paths first, mclo.gs removes IP addresses on its side (best effort, by its
    own policy) and deletes the log 90 days after it was last opened, and
    everything else goes as is. The delete token is kept in run/mclogs.json.
  • Line numbers, toggleable and remembered.
  • The name to type when deleting a server is shown in its own case. The
    label had been styling it uppercase while the check was exact, so
    survival was shown as SURVIVAL and never matched. Reported in #8.

Around the project

  • Every release now names its contributors: GitHub appends the merged pull
    requests with their authors under these notes, and a "New Contributors"
    line for first-timers.
  • A project page, and banner artwork for partner sites.

What's Changed

Everything else

  • fix: Case sensitivity for deletion. by @CallumJohnson in #9
  • feat: Line Numbers in logs by @CallumJohnson in #10
  • feat: Export logs by @CallumJohnson in #11
  • fix(mclogs): promise only what mclo.gs documents, and take the account name out first by @joogiebear in #12
  • chore(release): name the contributors on every release by @joogiebear in #13
  • feat(site): a project page, published by GitHub Pages, and banner artwork for partners by @joogiebear in #14
  • docs: drop the 0.9.1 release notes, which shipped as 0.10.0 by @joogiebear in #16

New Contributors

Full Changelog: v0.10.1...v0.11.0


Built from d500512f46aa on 2026-09-04T00:19:29.192Z.

v0.10.1 — Call a server anything

Choose a tag to compare

@joogiebear joogiebear released this 03 Sep 02:59
Immutable release. Only release title and notes can be modified.
b12f1d0

Call a server anything

Names

  • The name field takes anything, up to 48 characters - "Survival (Season 3)" included. It
    used to insist on letters, digits, dash and underscore, because the name is also the folder,
    the argument to every command and the scheduled-task name. Those still get a safe name; it is
    derived from what you type and shown under the field as you type it: Survival-Season-3, or
    Survival-Season-3-2 if that one is taken.
  • The name you gave shows on the card, in the header and in the edit dialog under Manage, where
    it can be changed or cleared. When it differs from the folder name, the folder name sits in
    small type beside the header so the console and commands still make sense.
  • Existing servers are untouched; one with no display name shows its name as before.
  • From a terminal, mcctl set <name> label="…" sets it and label=off clears it, and
    mcctl status reports it.

Feedback

  • The Feedback sheet has a door each for A question and An idea, opening a new post
    straight in the right Discussions category instead of on the index. The README and
    CONTRIBUTING say where each kind of thing goes.

Also

  • A dialog that opens the moment another closes - Manage, then Edit - can no longer be shut by
    the first one's late close event.
  • The repository has a Sponsor button, and main merges on green CI.

Built from b12f1d02d51f on 2026-09-03T02:59:03.217Z.

v0.10.1-beta.1 — Call a server anything

Choose a tag to compare

@joogiebear joogiebear released this 03 Sep 02:55
Immutable release. Only release title and notes can be modified.

Call a server anything

A pre-release. Install it by hand once; later betas arrive through the app, and so does 0.10.1
when it is released.

Names

  • The name field takes anything, up to 48 characters - "Survival (Season 3)" included. It
    used to insist on letters, digits, dash and underscore, because the name is also the folder,
    the argument to every command and the scheduled-task name. Those still get a safe name; it is
    derived from what you type and shown under the field as you type it: Survival-Season-3, or
    Survival-Season-3-2 if that one is taken.
  • The name you gave shows on the card, in the header and in the edit dialog under Manage, where
    it can be changed or cleared. When it differs from the folder name, the folder name sits in
    small type beside the header so the console and commands still make sense.
  • Existing servers are untouched; one with no display name shows its name as before.
  • From a terminal, mcctl set <name> label="…" sets it and label=off clears it.

Feedback

  • The Feedback sheet has a door each for A question and An idea, opening a new post
    straight in the right Discussions category instead of on the index.

Also

  • A dialog that opens the moment another closes - Manage, then Edit - can no longer be shut by
    the first one's late close event.

Built from 40457e0f0413 on 2026-09-03T02:54:59.135Z.

v0.10.0 — The panel, polished

Choose a tag to compare

@joogiebear joogiebear released this 03 Sep 01:52
f49b1d2

The panel, polished

Every screen of the panel got the same treatment. Some sections had been drawn with care and
others in a hurry, and the difference showed. This release closes the gap, and adds a few
things the panel should always have had.

The server list folds to a rail

A control in the list's header collapses it to a strip of lamps. Every server's state stays in
view, the selected one stays lit, and hovering a lamp names the server. The add button becomes
a plus. The fold is your choice and is remembered. In a narrow window the folded list is one
short row, so the console gets nearly the whole window.

Notices that do something

A finding under the vitals used to say what was wrong and, in prose, where to go about it. Now
it carries the button:

  • Change port… on "The port is already taken" opens the same dialog Manage does, with the
    port filled in. Out of memory offers Raise memory…. A missing dependency or two plugins
    with one name opens Plugins; a Java that is too old, or a missing jar, opens Settings; a
    world that would not load opens Backups; a ticking crash opens the crash reports.
  • Show in console switches to the console filtered to the exact line the finding was read
    from.
  • Dismiss. Every notice can be closed for the run it belongs to. It comes back with the
    next run, because a port that was taken may be taken again.
  • The crash notice and the state notes wear the same shape, and a stale state offers Start.

Settings

  • One Save. The crash card and the Java card no longer carry their own Apply. One button
    writes everything, says how many changes are waiting, and is disabled when nothing is.
  • It stays in view. The save bar sticks to the bottom of the pane while you scroll, the way
    the title sticks to the top.
  • Cards in a row share a bottom edge, and the automatic-backup row on Backups wraps between
    phrases instead of through one.

Keyboard

  • Escape closes every dialog, including Manage. It had been ignored there.
  • Closing Add a server, Settings or Feedback puts focus back on the button that opened it,
    instead of dropping a keyboard user at the top of the page.

Empty screens

  • Performance draws itself empty: both gauges with their grids and the reason written across
    the chart, instead of a sentence where the charts will be.
  • Scheduler shows one empty state rather than two stacked.
  • Performance and the plugin search use the same empty state as every other pane.

Underneath

  • The vitals strip wraps evenly into equal cells, the jar name keeps two of them, and a
    partial last row stays plain - instead of one fact alone on a stretched second line.
  • Every size, gap, radius and tone is on a token. Seventeen font sizes became a seven-step
    scale, spacing sits on a four-pixel grid, and the state colours stop being pasted hex. The
    visible effect is small on any one screen and adds up across all of them.
  • The panel was tried as two pre-releases first. A version with a prerelease part is now
    published as a GitHub pre-release, which only installs that are themselves a beta are
    offered; stable installs never see one.

Built from f49b1d2fce67 on 2026-09-03T01:51:56.596Z.

v0.10.0-beta.2 — Notices that do something

Choose a tag to compare

@joogiebear joogiebear released this 03 Sep 01:15

Notices that do something

Second pre-release of the panel pass. On top of beta.1:

Notices under the vitals

  • A button for the way out. "The port is already taken" offers Change port…, which opens
    the same dialog Manage does with the port filled in. Out of memory offers Raise memory…. A
    missing dependency or two plugins with one name opens Plugins; a Java that is too old, or a
    missing jar, opens Settings; a world that would not load opens Backups; a ticking crash opens
    the crash reports. The advice still says it in words for the terminal.
  • Show in console switches to the console filtered to the exact line the finding was read
    from.
  • Dismiss. Every notice can be closed for the run it belongs to. It comes back with the next
    run, because a port that was taken may be taken again.
  • The crash notice and the state notes wear the same shape, and a stale state offers Start.

Built from d281bca13613 on 2026-09-03T01:14:27.059Z.

v0.10.0-beta.1 — The panel, polished

Pre-release

Choose a tag to compare

@joogiebear joogiebear released this 03 Sep 01:02

The panel, polished

A pre-release for trying the panel's new look before it ships. Install it by hand once; from
then on it updates itself to each later beta, and to 0.10.0 when that is released. Installs on
0.9.1 are not offered this.

The panel

  • The server list folds to a rail. A control in the list's header collapses it to a strip
    of lamps: every server's state stays in view, the selected one stays lit, and hovering a lamp
    names the server. The add button becomes a plus. The fold is remembered.
  • One Save for Settings. The crash card and the Java card no longer carry their own Apply.
    One button writes everything, says how many changes are waiting, and is disabled when nothing
    is. It stays in view at the bottom of the pane while you scroll.
  • Cards in a row share a bottom edge, and the automatic-backup row on Backups wraps between
    phrases instead of through one.
  • Escape closes every dialog, including Manage, and closing Add a server, Settings or
    Feedback puts focus back on the button that opened it.
  • The vitals strip wraps evenly into equal cells instead of leaving one fact alone on a
    stretched second line.
  • Performance draws itself empty: both gauges with their grids and the reason written across
    the chart, instead of a sentence where the charts will be. Scheduler shows one empty state
    rather than two.
  • Every size, gap, radius and tone is on a token. Seventeen font sizes became a seven-step
    scale, spacing sits on a four-pixel grid, and the state colours stop being pasted hex. The
    visible effect is small on any one screen and adds up across all of them.

Built from 65d6986a3fd1 on 2026-09-03T01:02:08.258Z.