Releases: joogiebear/spawnloft
Release list
v0.12.1 — The repository is now joogiebear/spawnloft
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
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
mcctlprogram folder
with aSpawnLoftone 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
- feat: rebrand the app to SpawnLoft by @joogiebear in #19
- release: 0.12.0 — mcctl is now SpawnLoft by @joogiebear in #20
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
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
A slow Java is not a missing Java
Java
- A
java -versionthat 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
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
.logfile 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 inrun/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
survivalwas 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
- @CallumJohnson made their first contribution in #9
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
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-2if 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 andlabel=offclears it, and
mcctl statusreports 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
mainmerges on green CI.
Built from b12f1d02d51f on 2026-09-03T02:59:03.217Z.
v0.10.1-beta.1 — Call a server anything
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-2if 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 andlabel=offclears 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
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
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
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.