Changelog

What's New

A full history of NodeMesh releases, bug fixes, and improvements.

v1.3.0  Current
New

Paper plugins from Hangar, next to Modrinth

Paper servers can now install plugins from Hangar, PaperMC’s own plugin repository, as well as from Modrinth. The Plugins tab has a source picker next to the search box (Modrinth stays the default), and results only show plugins built for Paper on your server’s Minecraft version. Every file is checked against the checksum Hangar publishes, a plugin’s required Hangar dependencies install with it, and update checks stay on the site each plugin came from. Two honest limits: some plugins on Hangar only link to a download on another site (EssentialsX is one) — we never fetch from an unknown site, so the install tells you where the file lives instead; and installing the same plugin from both sources is refused, because two copies make Paper load neither.

Agent

A server that crashes again right after a restart is no longer recorded as simply stopped

When a game exited, the agent stopped tracking it a moment before it reported the exit. If its regular status update went out in that gap, the panel saw the server vanish and marked it stopped, then ignored the crash report that arrived a few milliseconds later. So nothing restarted it and no crash was recorded. We saw this happen once, on an ARK: Survival Ascended server that crashed again after an automatic restart. The agent now reports every exit, with its exit code, before it stops tracking the process, and sends it ahead of the next status update. A burst of console output just before a crash can no longer push that report out of the queue either. This is an agent change, so it reaches your host once its agent updates to this version.

New

Upload your own Satisfactory mods

The Satisfactory Mods tab now takes a mod file too: upload the .smod you downloaded from ficsit.app and we unpack it into the server’s mod folder, setting up the Satisfactory Mod Loader first if it isn’t there yet. The tab tells you which file your host needs (LinuxServer or WindowsServer). If you upload the Windows game build your players use instead, we say so and nothing is changed. You can add a new mod while the server runs; replacing one needs it stopped. Turning mods off now also removes the empty mod folders it used to leave behind.

New

Mods for Satisfactory servers, from ficsit.app

Satisfactory servers now have a Mods tab. Search ficsit.app, click Install, and we set up the Satisfactory Mod Loader (SML) with the first mod after one confirm. We pick the newest version made for your server’s game build, install the mods it needs, and only list mods that have a dedicated-server build for your host (Linux or Windows). Each file is checked against the checksum ficsit.app publishes before it reaches your machine. Adding a mod never stops your server; the restart bar appears and the mod loads at the next start. Updating or removing one needs the server stopped first, because the running game has it loaded. Nothing changes on a Satisfactory server until you install a mod. Players need the same mods to join — they install them with Satisfactory Mod Manager.

Fix

ARK: Survival Ascended's server browser now points at the NodeMesh address

ARK: Survival Ascended advertised your own machine’s address in the in-game server browser, so a friend joining from the list tried to reach your PC directly — which fails behind a home router. A server that uses the NodeMesh address now listens on the same port the address uses and tells the game to advertise the NodeMesh address instead. Its game port may change once, on its next start, and then stays put.

Fix

A crashing ARK: Survival Ascended server is now reported as crashed

When an ARK: Survival Ascended server crashed while starting — for example because of a mod ID that does not exist — the panel showed it as simply stopped. So nothing restarted it, and the card that names the mod you just changed never appeared. The server’s real exit is now passed on, and a crash report or a fatal error in its log counts as a crash even when the game itself exits quietly.

Fix

Modpack imports now install the datapacks a pack lists

Some Modrinth modpacks list datapacks for download alongside their mods — Hermitcraft does this for two of its features, loaded by a mod in the pack. The import used to skip them (the preview said so, but the server quietly lost those features). They are now downloaded into the server’s datapacks folder, checked against the pack’s own checksum like every mod, and the preview lists them under “Datapacks to install”. If a file with the same name is already there, a copy is kept first, and a failed import puts it back.

Fix

ARK: Survival Ascended servers now get an admin password

ARK: Survival Ascended servers on Windows were starting with an empty admin password, because the step that creates it only ever ran for other games. That meant no in-game admin login and no RCON. The password is now created on your host the first time the server is installed or started, kept in the same place as before, and never shown in the console log. Existing servers pick one up on their next start.

New

Upload your own mods to Valheim and Rust servers

The “Can’t find it here?” upload on the Mods tab now works for Valheim and Rust, not just Minecraft. On Valheim, upload a mod’s .dll, or the .zip you downloaded from Thunderstore — we unpack it into its own folder the way a mod manager would. On Rust, upload an Oxide plugin’s .cs file. If the server doesn’t have BepInEx or Oxide yet, we ask once and set it up first, so the file never lands somewhere nothing reads it. Zips are checked before anything is written, and uploading the same package again keeps a copy of the previous one.

New

Bring your r2modman profile to your Valheim server

If you and your friends play Valheim with an r2modman profile, the server can now match it in one go: paste the profile code r2modman gives you (or upload the file it exports), look over what will happen, and confirm. We set up BepInEx if the server doesn’t have it yet, install the profile’s mods from Thunderstore at the versions you use, and copy its config files across. Mods that only matter on a player’s PC — interface tweaks, camera mods — are left out, and the preview lists each one with the reason. A mod its author marked “client-side” is still installed when it isn’t one of those, because some of them add things players build with, and a server without them can lose those builds; the preview flags each one. If a version you use is no longer on Thunderstore, we say so and install the newest instead. As with modpacks, it is all or nothing: if anything fails, your mods and configs are put back exactly as they were (BepInEx stays installed, which on its own changes nothing). Mods on the server that are not in the profile are moved into a plugins.disabled folder rather than deleted. Linux hosts only for now, like the rest of Valheim’s mod support.

Fix

A failed modpack import now says why in plain words

When an import failed, the message showed our internal error text — things like dispatcher.Download: agent error. It now says what actually went wrong: a download didn’t match its checksum, a file is no longer available, your host went offline, it ran out of disk space. Packs built for loaders we don’t run yet are named the way you know them (NeoForge, Quilt).

New

Import a whole Minecraft modpack by pasting its link

The Mods tab can now import a Modrinth modpack in one go: paste the pack’s modrinth.com link (or upload its .mrpack file), look over what it will do, and confirm. We set the loader and the Minecraft version the pack is built for, install the mods a server needs — skipping the ones the pack marks as client-only, plus resource packs and shaders — and apply the pack’s config files. Every mod is checked against the pack’s own checksum, and imported mods keep their update checks. It is all or nothing: if any step fails, the server is put back exactly as it was. Nothing is deleted to make room either — mods that are not part of the pack are moved into a mods.disabled folder, and any file the pack replaces is copied aside first. Stop the server before importing. Honest limits: NeoForge and Quilt packs cannot be imported yet, server.properties is never overwritten (your ports and settings stay yours), and a pack for an older Minecraft version than your world is refused rather than risk breaking the world.

New

When a mod breaks your server, we point at it and put it aside for you

If your server crashes, or runs for ten minutes without ever accepting a connection, right after you changed its mods, the console and the Mods tab now say so plainly: which mods changed since the server last started properly, and one button — “Disable those and restart”. Disabling moves the mods’ files into a folder next to the usual one (for example mods.disabled); nothing is deleted, and each one has a Re-enable button on the Mods tab. If another installed mod depends on one of them, it is set aside too, and the card tells you why. An ordinary crash with no mod change looks exactly as it did before. Two honest limits: a server stuck while starting is only spotted on hosts whose agent can report whether the game port is open, and a mod that cannot be moved (a single file over 100 MB) is left in place and named rather than half-moved.

New

Removing a mod no longer quietly breaks the mods that need it

Some mods are libraries other mods are built on — Fabric API on Minecraft, Jotunn on Valheim. We installed them for you automatically, but forgot why, so removing one left every mod that needed it broken with nothing telling you. We now remember which mod pulled in which. Removing a library that others still need tells you exactly which mods depend on it, and asks whether to remove them together; nothing is removed until you say yes. If one of them cannot be removed partway through, we stop there, leave the library in place, and tell you what was and was not removed. One honest limit: mods you installed before this change carry no such record, so for those the check only kicks in after their next update. A mod that needs a dependency with no version for your server now also says which dependency it was, instead of a generic failure.

Fix

Turning Oxide off no longer reinstalls your whole Rust server

Disabling Oxide used to remove it by reinstalling the game files, because Oxide's package replaces a good number of Rust's own files and nothing tracked which ones. We now record exactly what the Oxide package contains when you turn it on, so turning it off deletes precisely those files and asks Steam to restore the handful of game files they had replaced — seconds and a few megabytes instead of a full reinstall, with your world and saves kept either way. Servers that had Oxide enabled before this change still use the old reinstall route, and so does any removal we cannot verify finished cleanly: we would rather spend the download than leave you with a half-removed install. The confirmation you get now says which of the two will happen, instead of warning about a 10 GB download that was never accurate.

Fix

Turning on Rust's Oxide now really does restart your server

Installing your first Rust plugin sets up Oxide and restarts the server so it loads — and that restart was never actually being sent. Everything reported success, Oxide really was installed, and the server simply stayed stopped until you started it yourself. The cause was ours and squarely internal: recording “mods are on” also quietly rewrote the server's state back to “running”, so the restart step thought there was nothing to do. It is sent, and confirmed, now.

Fix

Pairing a second host with the same name no longer replaces the first

If a new host reported the same name as one you'd already connected — for example installing Linux in WSL on a PC that already runs a paired Windows host, since WSL reports the Windows machine's own name — connecting it used to silently take over the existing host's record instead of adding a new one, disconnecting it and pointing its servers at the wrong machine. A new host now always gets its own record, and if its name collides with one you already have, we simply add a number to tell them apart on the Hosts page.

Fix

A mod that can't be installed now tells you why

Installing a mod that has no version for your server's game version or loader used to fail with a generic “Failed to install mod”, with no way to tell that from any other failure. It now names the actual problem — for example, that a plugin has no version for your Minecraft version on Paper — and suggests trying a different mod or loader. We also fixed the same generic-failure message for a few other cases along the way: a host whose agent is too old for a mod that needs it, a host that's offline, and Modrinth/Thunderstore/umod.org themselves being briefly unavailable.

Fix

Stopping a server is now honest about whether it actually stopped

Clicking Stop used to mark a server “stopped” the instant the command was sent, before your host had actually shut it down — so an action taken right afterwards (like turning on Rust’s Oxide mod support) could run against a server that was still shutting down. The panel now shows “Stopping…” until your host confirms the server actually exited, and nothing that needs a truly-stopped server can jump the queue in the meantime. If your host never confirms within a couple of minutes, the server is marked stopped anyway and the activity feed says so honestly.

Fix

Turning on Rust or Valheim mods now tells you if the automatic restart didn't happen

Enabling Oxide or BepInEx restarts the server so the change takes effect, and that restart was reported as successful the moment we sent it — even on the rare occasion it never actually reached your host. Mods installed fine, but the server itself stayed stopped with nothing saying so. We now confirm the server is really running again before calling it done, and tell you plainly if it isn't so you know to start it yourself.

Fix

A brief blip no longer wrongly blocks a server restart with a missing-runtime error

Right around a stop-and-restart, your host's status could very briefly under-report which Java/SteamCMD runtimes it had installed — long enough, on rare occasions, to make a perfectly normal restart fail with a false “runtime not installed” error. We no longer let a single empty report erase a runtime we already knew was there.

New

Install your first Valheim or Rust mod without a separate setup step

Valheim and Rust used to make you find and click a separate “Enable mods” button before the Mods tab would even appear — four steps before your first mod. The Mods tab is now always there: you can search Thunderstore or umod.org right away, and clicking Install on your first mod sets up BepInEx or Oxide as part of that same click (one confirmation, since it may restart your server). The old Overview toggle becomes a simple status line once mods are on.

New

Add mods to a Minecraft server without recreating it

Adding mod support used to mean starting over: the loader (Vanilla, Paper, Fabric, Forge) was a choice you only got to make when you first created a server. The Mods tab now lets you switch it in place — stop the server, pick a loader, and it reinstalls with that loader while keeping your world and your current server.properties settings (MOTD, difficulty, whitelist toggle, and so on). Switching between two modded loaders works the same way, with a plain warning that plugins and mods are different ecosystems: whatever was installed under the old one stays on disk but won't load under the new one. After installing, updating, uninstalling, or uploading a mod, a bar now tells you whether to restart now or that the change will simply apply the next time the server starts.

Fix

Disabling Oxide on Rust no longer risks an unbootable server

Turning Oxide off ran a partial cleanup after reinstalling Rust's own files, and Oxide's package turned out to replace far more of them than that cleanup tracked — restoring all of it reliably was not possible without a deeper fix. Disable now reinstalls the server from a clean download to remove Oxide completely instead: your world and saves are kept, and it downloads roughly 10 GB. A lighter, in-place removal is planned; this is the safe way to do it in the meantime.

Fix

Valheim and Rust mod support actually works now

Turning on BepInEx or Oxide worked, but the Mods tab behind it never did — searching or installing anything failed with a confusing “server type does not support mods” error, every time, for every Valheim or Rust server. That page was checking a setting that only makes sense for Minecraft, and Valheim and Rust never had a value it recognised. It now checks the thing that actually matters: whether mod support is turned on. We’re also being upfront about where this stands — Oxide and BepInEx only work on Linux hosts for now; on Windows the “Enable mods” option won’t appear rather than installing something that can’t run.

Agent

ARK and Minecraft on Windows now get the “running but nobody can join” warning too

The warning below relies on the agent reporting whether your server’s port is actually open. On Windows, ARK: Survival Ascended and Minecraft start through a different path that never reported it — so a server that got stuck while starting looked perfectly healthy, and the warning could not fire for exactly the two games where it mattered most. It now does. This is an agent change, so you only get it once the agent on your host updates to this version; if you run ARK or Minecraft on Windows and do not see the warning right away, that is why.

New

We now tell you when a server is running but nobody can join

“Running” only ever meant the process had started — it said nothing about whether anyone could actually connect. If your server reports running for ten minutes straight while its port never accepts a connection, you now get a message: what that usually means (it is still loading a big map, or it failed partway through starting) and where to look. We do not restart it for you, and we do not claim to know why — only that it is happening, so you find out in a quarter of an hour rather than never.

New

Upload a mod that isn't in the search

The mod search covers a lot, but not everything — a mod that only exists on another site, a private jar from a friend, something you built yourself. The Mods tab now takes a direct upload. Two things worth knowing, because we would rather say them than let you find out: an uploaded mod gets no update notifications, since there is no catalogue entry to compare it against and we will not guess; and uploading the same file name again replaces it rather than leaving you with two copies.

New

The Windows tray icon now shows each server, not just a count

Until now the icon in your notification area could tell you the agent was connected and how many servers were running, and nothing more. It now lists them one by one — name, game, and whether anyone is playing. A server that is running but not yet accepting connections says exactly that, instead of looking identical to one that is ready. Where we genuinely cannot tell how many players are online, we leave it blank rather than showing you a zero we made up. Re-run the installer on your Windows host to update the tray.

New

Copy a server's join address straight from the tray

The one thing you need when you are hosting for friends is the address to give them, and getting it meant opening the panel. Each server in the tray menu now has it, one click to copy. Servers reachable only on your own network do not show an address at all — we would rather say nothing than hand you something your friends cannot connect to.

New

The tray tells you when something goes wrong

An icon you have to go and look at does not help when a server dies at three in the morning. You now get a Windows notification when your host loses its connection, when a server stops unexpectedly, and when something needs you to act. Only when the situation changes — it will not keep repeating itself at you.

Fix

The tray stopped asking you to reinstall it forever

The tray nudged you to re-run the installer whenever the agent was newer than itself. Since the agent updates itself automatically and the tray does not, that nudge switched on after the first update and never switched off again — so the one message that means “your tray really is out of date” had become noise you learned to ignore. It now only appears when the tray itself is genuinely behind.

Fix

Losing the connection no longer looks like your servers stopped

If your host briefly lost contact with us, the tray showed nothing running — alarming, and untrue: your servers were still up the whole time, and a dropped connection to us has never stopped a game. It now says the connection was lost and how many servers are still running.

Agent

Stopping a Windows server now really stops it

Some games — Palworld and Satisfactory among them — start through a tiny launcher that hands off to the real server. On Windows we were only ever stopping the launcher, so the actual server kept running: it held its port, kept using memory, and because its files were still open, deleting the server left the entire install behind, tens of gigabytes you had no way to reclaim from the panel. We now stop the whole group of processes a server started, so stopping means stopped and deleting really frees the disk. Games that run as a single process were never affected. Update the agent on your hosts to get it.

Agent

A server installed on a second drive can now be managed and deleted

If you put a server on a drive other than the one the agent lives on, the files were installed correctly and the server ran — but nothing could touch those files afterwards. The file browser, the config editor and backups all came back empty-handed, and deleting the server left the entire game install behind, quietly using tens of gigabytes you had no way to reclaim from the panel. The agent was refusing its own legitimate requests: it builds the list of folders it is allowed to work in, and on Windows a plain drive letter produced an entry no real path could ever match. Everything on a second drive now works exactly as it does on the first. Nothing else was loosened — a request pointing anywhere outside the folders we install into is still refused. Update the agent on your hosts to get it.

New

Put a server to sleep on its own when nobody is playing

A server on your own PC costs you electricity and a machine you also game on, so leaving it running all night is a real cost. You can now let a server stop itself once it has been empty for a while — the world is saved first, exactly as if you had pressed Sleep. It will not wake up by itself when a friend tries to join yet, so you still start it from the panel or share a wake link. Off unless you turn it on, and available on Minecraft first, because it is the game where we can honestly tell whether anyone is online.

Agent

Restoring a backup shows real progress

A restore used to show a spinner and nothing else, so a large world was indistinguishable from a stuck one. You now see how much has actually been written, and when we genuinely cannot know the total, you get an honest “working” bar rather than a made-up percentage. A restore that fails now says so, with the reason, instead of leaving a bar frozen part-way. Update the agent on your hosts to get it.

New

See what you changed in a server's settings — and undo it

Editing a server's settings was a one-way door: you saved, and the old values were gone. Every save is now kept, so the Config tab shows what actually changed in plain words — “Difficulty: peaceful → hard” — and you can put any earlier version back with one click. A rollback is recorded as a change of its own, so nothing is quietly rewritten. It cannot undo everything: a world already generated, or a mod already installed, stays as it is, and we say so rather than pretending.

New

A host that fails to connect now says so, instead of spinning forever

If the installer started but never reached us — a used or expired token, a step that failed on your machine — the Add Host window kept showing “waiting” indefinitely, with the real reason visible nowhere. It now shows which step the installer reached, and if it failed, what went wrong and what to change, with a button to try again.

Fix

A server that keeps crashing now tells you it gave up

When a server crashed repeatedly, we stopped restarting it — that part was deliberate, and correct. But nobody told you: the server simply sat there, stopped, with the explanation only in a log you cannot see. You now get a message in the panel when that happens, once, not one per restart attempt.

Fix

Fewer silent moments while your server is being set up

Two gaps in the create-a-server flow showed you nothing at all: an install that could not even reach your host (offline, or a connection problem) left the page saying “waiting” with no sign anything had failed, and the moment between “stopped” and “starting automatically” was blank. Both now say what is happening, and a failure names the reason and leaves a Retry.

Agent

Stopping a server yourself no longer counts as a crash

If you ended the server process yourself — from Task Manager, a terminal, or by closing its window — we called it a crash and restarted it, fighting you. A deliberate stop is now recognised as one, and left alone. One case deliberately still counts as a crash: when the system kills a server for running out of memory, because that is a real failure and hiding it would help nobody — and it now says so, so you know to give the server more RAM. Update the agent on your hosts to get it.

New

ARK is back in the server list

Both ARK games are offered again when you create a server. Being honest about where they stand: neither has yet been run by us on real hardware, so they are marked Unverified rather than carrying a badge we cannot back up. ARK: Survival Ascended is Windows-only and needs about 150 GB of free disk — the game itself is around 60 GB, but the download needs room to unpack. We also fixed its map list, which was offering map names from the older game that Ascended cannot load.

Fix

The RCON console no longer looks ready when RCON is switched off

Minecraft ships with RCON disabled, so the console tab greeted you looking perfectly functional and then failed on your first command. It now checks first: if RCON is off it explains that and offers to switch it on for you, and if we genuinely cannot tell — your host is offline, say — it says that instead of guessing.

New

A refused connection now reaches you, not just the host

If you connected a host with a token that had already been used or had expired, the host kept knocking and your panel kept saying “waiting for host” — one real machine tried several thousand times in a morning and nothing anywhere told its owner. You now get a message in the panel naming the problem and the fix: generate a new token and run the installer again. One message per token, however many times the host tries.

Fix

A server that died while the agent was away no longer says “crashed”

If your server was gone when the agent reconnected — after a host restart, an agent update, or a genuine crash — we called it a crash. We could not actually tell which of those it was: the agent was not watching at the time. The history now says the server was not running when the agent reconnected, and names the three possibilities instead of asserting one. Nothing changes about the behaviour: the server is still started again for you. A crash we really did watch happen is still called a crash.

New

A tray icon for your Windows host

The Windows agent runs invisibly as a service, so there was never anywhere to glance and see whether it was actually connected. There's now an optional icon in the notification area showing connected, idle, updating, offline, or needs attention. It's read-only — it can't start or stop anything, and it doesn't show install progress, only whether the host itself is reachable. Installed by default; pass -NoTray to the installer to skip it. Update the agent on your Windows hosts to get it.

Agent

Windows: your game server no longer runs with the keys to the whole machine

On Windows the agent runs as a system service, and until now every game server it started inherited that same total authority over the computer — able to read any other program's memory or bypass file protections. Game servers are exactly the software you least want holding those permissions: internet-facing, and often running mods you did not write. Those permissions are now stripped from the server process. Nothing about your server changes; it reads and writes exactly what it did before. Update the agent on your Windows hosts to get it.

Agent

The agent's log stops growing forever

The agent kept one log file that never rotated and wrote a line every five seconds — on a host running for a few months that is tens of megabytes of nothing, and the one detail you need when something breaks is buried in it. The log now rotates and keeps a bounded history, and the routine chatter is gone unless you turn detail back on. Update the agent on your hosts to get it.

Agent

A host with a refused pairing token stops knocking and says so

If a host was connected with a token that had expired or been used already, the agent kept retrying the same refused connection every five seconds, indefinitely — one host managed several hundred attempts in a morning — and said nothing you would ever see. The agent now recognises a refusal it can never recover from, stops retrying, and writes down what you need to do: generate a new token and run the installer again. It keeps running, so any game servers already started on that host are left alone. Update the agent on your hosts to get it.

Fix

The installer now tells you when pairing failed

Connecting a host with a token that had expired, been used already, or simply been mistyped ended with the installer saying everything was fine — while the panel sat on “waiting for host” indefinitely and nothing anywhere explained why. The installer now waits for our confirmation before claiming success, and if the token was refused it says so and tells you to generate a new one. It also distinguishes that from a network problem, which needs a different fix.

New

Messages from NodeMesh, in the panel as well as by email

When we need to tell you something — a problem with your server, a change that affects you — it went out by email and nowhere else, so it missed anyone whose address was never confirmed and vanished into a crowded inbox for everyone else. Messages now also appear in the panel, where they wait until you have read them. Nothing changes about how rarely we write.

Agent

A server that dies while the agent is offline now comes back

If your game server crashed during a moment when the agent itself was down — an agent update, a host reboot, a restart — nobody noticed. The server stayed down, the panel showed it as simply stopped, and auto-restart never fired because as far as we knew you had stopped it yourself. The agent now reports servers it finds dead when it comes back, so they are restarted and the crash appears in the server's history. A server you stopped on purpose is still left alone. Update the agent on your hosts to get it.

Agent

Quieter, tidier syncing for shared folders

Two harmless but noisy problems are gone. When the same file was fetched twice at once, both fetches wrote to the same temporary file and one of them failed loudly — on Windows with an alarming message about the file being in use. And a large upload kept retrying pieces it had already finished sending. Your files were always correct in both cases; what changes is that the logs no longer cry wolf, which matters because a log full of harmless errors is one nobody reads. Update the agent on your hosts to get it.

Fix

A file that will not sync now tells you why

When a shared folder hit its size limit, the file simply stopped syncing and nothing anywhere said so — the only trace was in a log on your own machine that the panel never shows you. A refused write now appears in the server's activity, naming the file and saying whether it was the folder's limit or your account's total sync allowance, which are two different problems with two different fixes.

Fix

Stopping a server no longer briefly shows it as running again

A background task that keeps your server's public address alive could overwrite a stop you had just made, flipping the server back to "running" for a second before a routine check corrected it. The correction always arrived, so the server really was stopped — but the panel told you otherwise in between, and the public address was left reserved for a server that was no longer there.

Agent

Shared Volumes now keep a file's permissions

Syncing a file carried its contents but not its permissions, so a script arrived on the other host without the right to run and a private file arrived with the wrong protection. Permissions now travel with the file. This also fixes a subtler problem introduced when we stopped running game servers as root: a synced file could land in a state your own game server was not allowed to read. Update the agent on your hosts to get it.

Agent

A brand-new host's first server no longer fails on a Steam hiccup

On a freshly connected host, the very first game download could stop with "Missing configuration" — a Steam-side hiccup that clears itself, but it left your first server sitting in error with nothing telling you to just try again. We now retry that download once automatically, so the install simply takes a moment longer instead of failing. Only this one specific hiccup is retried; a genuine problem still stops and tells you what it is. Update the agent on your hosts to get it.

New

A failed install now tells you what went wrong

Connecting a host was all-or-nothing: the installer either worked, or it stopped with an error in a terminal window and the panel just kept saying "waiting for host" forever. The installer now reports each step as it goes, so the Add Host window shows you where it got to — and if it stops, it says why and what to change. Not enough permissions, a missing Windows component, a service that would not start: each one now comes with the specific fix instead of a dead end.

Fix

Shared Volumes: a conflicting file no longer risks staying out of date

When two hosts edited the same synced file at once, we kept your losing edit safely beside it — but fetching the winning version could fail outright if a partly-finished download of the same file was already on disk. The file was usually corrected a moment later by the ordinary sync, so this was noise more often than harm; now the fetch either reuses that finished download or simply starts over, instead of giving up. Update the agent on your hosts to get it.

Agent

Windows servers now report real memory use, and stop meaning stopped

On a Windows host we were measuring the wrong process: the launcher that starts your server, not the server itself. A 4 GB Minecraft server reported around 100 MB, and a healthy server could be recorded as crashed while it was still running fine. We now track the actual game process — so the numbers on your dashboard are real, and stopping a server no longer risks leaving it running in the background holding its port. Update the agent on your Windows hosts to get it.

Improve

Large synced files resume instead of starting over

A big file now uploads in parts, and if the transfer is interrupted — a dropped connection, or the agent restarting mid-upload — it picks up from the last completed part instead of starting from zero. It also checks the file hasn't changed underneath it before resuming, so a resumed transfer can never stitch together two versions.

Improve

Shared Volumes handle large files without hogging memory

The agent used to load an entire synced file into memory to move it — fine for a config, a problem for a multi-gigabyte world. It now streams files in and out, so memory no longer grows with file size. First step toward reliable sync of very large files, with progress and resume coming next.

Fix

Windows: stop reporting a working Visual C++ runtime as missing

Yesterday's stricter check went too far the other way: Windows records the runtime's version with a leading letter that our check couldn't read, so a host with a perfectly current runtime was told it was missing. Fixed — a genuinely up-to-date runtime now reads as installed, and only a genuinely old one is flagged.

Fix

Windows: "installed" now means the game will actually start

We could report the Visual C++ runtime as installed while the game still refused to launch — because the check looked for the right file names rather than the installed version, and because Windows sometimes needs a restart to finish the job and we never passed that on. The check now reads the actual version, a pending restart is shown as a restart instead of a green tick, and a server will refuse to start with that explanation rather than dying on a Windows error code.

Agent

Windows: install the missing Visual C++ runtime in one click

Nine of our games need Microsoft's Visual C++ runtime, and on Windows they simply refuse to start without it. We already detected it early — before a multi-gigabyte install rather than after — but then asked you to go and install it yourself. Now a Windows host offers it in its Runtimes section like any other component: one click, and we install it for you. We still ask first, because it is your machine.

Agent

A bad agent release now stops itself after the first host it affects

An agent that rolls itself back after a failed update now reports that to us, and we stop offering that release to anyone else immediately. Before this, a host that reverted looked exactly like a host whose owner had simply chosen not to update — so the clearest possible sign that a release was bad was the one signal the rollout ignored.

Agent

Agent updates now undo themselves if they go wrong

Updating the agent on your own machine was a one-way door: if an update ever left it unable to reach us, it stayed that way, and only you could fix it — on a machine we have no access to. The agent now treats an update as provisional. It has to prove it can still reach NodeMesh; if it cannot, it puts the previous version back and restarts itself, without anyone asking it to. Your game servers keep running throughout.

Agent

Hosts now tell you when the agent is running as root

New installs have set the agent up under its own limited account for a while now, but hosts you connected before that stayed on the old root setup — and nothing in the panel said so. That matters: some games, Satisfactory among them, simply refuse to start when launched as root, and the failure looks like the game is broken rather than like a host setting. A host running as root now says so on its card. Update the agent on your hosts for it to appear; a host that hasn't reported yet shows nothing rather than a guess.

Agent

Game servers no longer run as root, even on a host whose agent still does

We just told you when a host's agent runs as root. Now the games on it don't have to: on a host in that state, we automatically hand each game server off to its own limited account right before it starts. This fixes Satisfactory and other games that refuse to launch as root outright, and it means a game process can no longer reach outside its own server folder. Update the agent on your hosts to get it — if the handoff can't be set up for any reason, the server still starts exactly as it did before, so this can never turn a working server into a broken one.

New

Retry a server that failed to set up

A server that errored during setup stayed errored forever — even after we had already fixed the cause — and the only way forward was deleting it and starting again. There is now a Retry button on a failed server. If it never finished installing, Retry runs the install again from scratch. If it installed fine and only failed to start, Retry just starts it, leaving your world and your settings untouched.

Fix

Shared Volumes: a failed upload no longer gives up silently

If an upload from a synced folder failed — a brief network drop, the storage service restarting — the agent logged it and moved on. The file stayed on your disk looking synced, and unless you edited it again it was never uploaded. Uploads now retry with a widening delay, and a background pass re-checks every synced folder so anything missed is picked up on its own. It also converges folders you delete, which previously only took effect on the files inside them.

Fix

Errors now tell you what actually went wrong

Several failures showed "An unexpected error occurred." when the panel already knew the real reason. Starting a server whose host was offline said nothing useful, when it could have said "Node is offline. Connect the agent first." — same for backups and host actions. The specific message was being built and then thrown away one layer later. Fixed, along with the opposite problem: a raw database error could occasionally reach the page instead of a readable message.

New

Put a server to sleep instead of leaving your PC running

"Sleep now" saves the world and stops the server, freeing your PC's CPU and RAM — but keeps the server, its world, its settings and its address exactly where they were. Wake it from the panel in one click, or share a link that lets a friend wake it themselves (off by default, and the link can be rotated if it leaks). Backups keep running on a sleeping server; a sleeping server is actually the cleanest thing to back up.

New

Discord webhook notifications

Paste a Discord webhook URL on any server's Overview page and get colour-coded posts in your channel when the server starts, stops, crashes, auto-restarts, or hits a new player-count peak. No bot to invite, no OAuth — just the webhook URL, and a Send test button so you can see it land before you rely on it.

New

A weekly summary of your servers

An opt-in weekly email covering the servers that actually had something happen: crashes recovered, backups taken, your new player-count peak and when it hit, and 7-day uptime. Quiet weeks send nothing rather than a guilt-mail, and every message carries a one-click unsubscribe.

New

Notification settings that actually do something

Settings showed an "Email notifications: Active" badge that was decoration — it wasn't wired to anything, and there was no way to turn any of it off. You now get real switches for crash alerts, auto-stop notices, and a weekly summary, and every notification email carries a one-click unsubscribe link that works without logging in.

New

ARK Config tab: taming times, live

Change Taming Speed on an ARK: Survival Ascended server and the Config tab now tells you what it means in practice — "Lvl 150 Rex on Exceptional Kibble: ~36m, ~17 Narcotics" — recalculated as you type, from the same verified math the Taming calculator uses.

Improve

Your dashboard now tells you when a host has an agent update waiting

Agent updates were only visible if you happened to look at the Hosts page, so hosts could sit for weeks on a version missing a fix they needed. The dashboard now says when an update is available and which hosts it applies to. Updating restarts the NodeMesh agent on that host; your running game servers keep running through it.

Fix

The ARK breeding simulator works again

On an ARK server's Tools → Breeding page, the mini-simulator below the results was dead: the timeline bar, the scrubber readout, the playback controls, and the what-if sliders all rendered but did nothing. The page was missing the small library that drives them. Everything above it — the breeding times themselves — was always correct; only the interactive simulator was affected. The public breeding calculator was never affected.

Fix

Paper servers on Windows install again

Creating a Paper Minecraft server on a Windows host failed during setup with a "sunset" error. PaperMC retired the download service we were asking for on that path; we now look builds up the same way the rest of NodeMesh already did, and this path is covered by the automated check that watches for exactly this kind of upstream change.

Fix

Large installs are no longer marked failed while they're still downloading

A server whose install took longer than five minutes was flipped to "error" even though the download was progressing normally — which meant nearly every big game (Rust, ARK, Satisfactory) on a home connection. Installs are now judged on whether they're still making progress, not on a stopwatch, so a slow download simply takes as long as it takes.

Fix

Console no longer cuts out on Windows servers

Some output from Windows servers contained characters we couldn't store, and those lines were silently thrown away — so the console could stop mid-install or right as a server crashed, hiding the very output you needed. Those lines are now cleaned up and kept.

Improve

A clearer explanation when a game refuses to run as root

Some game servers (Satisfactory among them) abort immediately if they're launched as the root user, previously leaving you with just "Aborted" in the console. The console now explains what happened and exactly which change to make on your host.

Fix

A freshly paired host's first server no longer fails instantly

Creating a server on a brand-new host could fail within milliseconds with a confusing "not found" error — the required game software was still downloading in the background when server setup started, so it raced a download that takes minutes and lost. Setup now waits for that download to finish before starting your server, instead of failing immediately.

Fix

Windows hosts: game software is discoverable again

On a Windows host, correctly installed game software could still be reported as missing, so setup for Rust, Valheim, Satisfactory, Palworld, and Project Zomboid servers failed even after everything downloaded successfully. We've fixed the underlying detection and download/launch path — we're still verifying full server boot on real Windows hardware before calling Windows support confirmed for these games.

New

Create now warns you before an unsupported game+host combination

Picking a game your host's operating system can't actually run used to fail only after you clicked Create. The New Server page now checks compatibility as soon as you pick a host — a clear warning appears immediately, and Create is disabled outright for combinations that have no chance of working.

Fix

7 Days to Die saves now stored inside the server folder

A newly created 7 Days to Die server could save its world outside the folder our backups capture, so a restore might have silently rolled back to a fresh world instead of your actual progress. New servers now pin their save folder inside the server's own folder, so backups can capture it — we're verifying this holds on real hardware before calling it fully confirmed. Servers created before this fix are not affected retroactively — if you're unsure, check that a recent backup includes your save before relying on it.

New

Binding a volume now keeps your world (Beta)

Binding a Valheim or 7 Days to Die server to a local Shared Volume copies your existing world onto the volume first — the server starts on the same world, not a fresh one. Rebind to a volume that already has data to adopt it. Beta while we finish a hardware pass.

New

Valheim worlds on a host volume (Beta)

Bind a Valheim server's worlds to a local Shared Volume so they survive deleting and recreating the server. Unbind returns the server to its built-in save folder; no data is ever deleted. In beta while we finish a hardware pass — we'd love your feedback.

New

Mount a shared folder on a host

Shared folders can now mount directly on a host, not just on one server — head to a host's page, mount a volume, and it lives there independent of any game server, so deleting and recreating a server doesn't touch it. Letting a game plug straight into a host folder is coming next.

Fix

7 Days to Die updated for V3.0 (Dead Hot Summer)

7 Days to Die's V3.0 update moved difficulty and gameplay tuning — XP, loot, blood moons, zombie speed, day length and more — into a single in-game Sandbox Code, so those individual settings no longer live in serverconfig.xml. The Config tab now matches: set your difficulty by pasting a Sandbox Code (generate one in-game under New Game → Sandbox Options → Copy Code), and we've added the new V3.0 server settings — website URL, land-claim dynamic-mesh tuning, persistent profiles, save-data limits, and Twitch integration. Per-setting difficulty sliders are coming in a follow-up.

New

Restores run in the background, with live progress

Restoring a backup no longer ties up the page while a big world extracts — kick off a restore and watch it move through stopping the server and restoring the save, right on the Backups tab, then start the server when it's ready. Every server also gets a new Activity tab: a full, filterable history of everything that's happened — starts, stops, crashes, backups, restores, config changes, and mod installs — so you can see what changed without digging through console logs.

New

See everything, across every server

See everything that happened across all your servers in one place — the new Activity page, in the sidebar, brings starts, stops, crashes, backups, restores, config changes, and mod installs from every server you own into one filterable, paginated feed, with a link back to whichever server each event happened on.

Fix

Hosts reliably reconnect after an agent update

Updating a host's agent could leave it offline: the agent replaced itself and exited cleanly, but some hosts were set up in a way that told the system not to restart a clean exit, so the agent never came back. The agent now relaunches itself directly after an update, restart, or rollback — so it reconnects regardless of how the host is configured — and running game servers keep running through it. New hosts also get a hardened service setup that survives restarts and never gives up retrying.

New

Mods on Rust (Oxide) — Beta

Turn on mod support for a Rust server right from its Overview page — one click installs Oxide/uMod, the standard Rust mod framework. The server automatically re-applies Oxide after every Rust update, so your mods survive updates instead of getting wiped. A plugin browser is coming next. In beta — we'd love your feedback.

New

Browse & install Rust plugins — one click (Beta)

Search umod.org right from a Rust server's Plugins tab and install Oxide plugins into oxide/plugins/ with a click — every download is SHA-1 verified before it's saved. Update or remove a plugin the same way, no file manager needed. Requires mod support to be turned on first (the Enable Mods toggle on Overview). In beta — some plugins need a companion plugin to work fully; we'd love your feedback.

New

Browse & install Valheim mods — one click (Beta)

Search Thunderstore right from a Valheim server's Mods tab and install BepInEx plugins with a click — required dependencies come along automatically. Update or remove a mod the same way, no file manager needed. Requires mod support to be turned on first (the Enable Mods toggle on Overview). In beta — most plugins install cleanly, but some patchers or unusual packages may not, and you'll get a clear error rather than a broken server. We'd love your feedback.

New

Mods on Valheim (BepInEx) — Beta

Turn on mod support for a Valheim server right from its Overview page — one click installs BepInEx, the standard Valheim mod-loader, and switches the server to launch with it, then restarts to apply. In beta — we'd love your feedback.

New

Factorio dedicated server support (Beta)

Host a Factorio dedicated server on your own Linux hardware — NodeMesh installs the headless server, generates your first world, and hands you a point-and-click editor for the settings that matter: name, password, visibility, autosave, and the pause-when-empty and command-permission controls. A built-in admin console (RCON) lets you save, list players, and kick or ban from the browser. Linux hosts only, in beta — custom map generation from the create wizard is coming next. We'd love your feedback.

New

Arma Reforger admin console (RCON) + crossplay

Run admin commands on your Arma Reforger server straight from the browser — list players, kick, ban, and shut down — over the game's built-in BattlEye RCON. Set an RCON password on the server's Config tab to switch it on. And a one-click Crossplay toggle lets Xbox and PlayStation players join (the scenario and mods must support console play).

Improve

Arma Reforger mods manager

Manage your Arma Reforger server's mod list right in the panel: paste a mod's ID (and an optional name and version) from the in-game Workshop, and the server downloads it on the host the next time it starts. Add or remove as many as you like — a bad ID just skips that one mod, it doesn't stop the server.

New

Arma Reforger dedicated server (Beta)

Host an Arma Reforger dedicated server on your own Linux hardware — NodeMesh installs the server and starts you on the default Conflict scenario, with a point-and-click editor for the settings that matter: name, password, player count, and visibility. Your host needs libcurl4 and libssl installed (the server won't start without them). Linux hosts only, in beta — we'd love your feedback.

New

Minecraft: Bedrock Edition support (Beta)

Host the console-and-mobile edition of Minecraft on your own Linux hardware — the one your kids play on Switch, phone, or Xbox. A point-and-click editor covers the settings that matter, from game mode and difficulty to view distance, the allow list, and the anti-cheat controls. Linux hosts only, in beta — we'd love your feedback.

New

Bedrock crossplay for Java servers

Turn on Bedrock Crossplay from any Paper or Fabric server's overview and NodeMesh installs what that server needs — Geyser, plus Floodgate on Fabric — so console and phone players can join your Java world. The card shows Bedrock players exactly how to connect, whether that's through the traffic proxy or over your LAN.

Fix

Traffic proxy now relays the right protocol for every game

The proxy was opening a TCP-only tunnel for some games whose servers actually speak UDP, so players could not connect through the shared address on ARK: Survival Evolved or Minecraft: Bedrock Edition. Those now get a UDP tunnel. 7 Days to Die and Satisfactory listen on both TCP and UDP on their game port, and both are now relayed. The protocol is read from each game's own definition rather than a separate list, so a newly added game cannot drift out of sync again.

Improve

Bedrock crossplay works through the traffic proxy

Once you turn on Bedrock Crossplay on a Paper or Fabric server, starting that server with the traffic proxy on now also relays the Bedrock port — on its own address, separate from the Java one — so console and phone players can join from anywhere: no LAN, no forwarded port, no router changes. If the server isn't running, the traffic proxy is off, or the relay couldn't be set up, the card falls back to the same LAN / forwarded-port instructions instead of showing an address that isn't live.

v1.2.0
New

7 Days to Die dedicated server support (Beta)

Host a 7 Days to Die server on your own Linux hardware. One of the deepest survival configs anywhere — around 80 settings, from difficulty and loot to day length, blood-moon frequency, land claims, and zombie behaviour — is now a proper point-and-click editor instead of hand-edited XML. A built-in admin console (telnet) lets you list players, broadcast, set the time, kick, ban, save, and shut down from the browser. Linux hosts only, in beta — we'd love your feedback.

v1.1.0
New

Public server pages for friends

Turn on a shareable page for any server and send friends one link instead of explaining IPs and ports. It shows live status, the connect address with a copy button, and game-specific join instructions — and, for modded Minecraft, the mod list with links so they know what to install. Off by default; you control it from the server overview.

New

Hytale dedicated server support (Beta)

Host a Hytale server on your own Linux hardware. NodeMesh handles the runtime, configuration, and a live console — you bring the server files using Hytale's official tools and your Early Access account. Turn on the traffic proxy for a shareable address your friends can join, with no port forwarding. Linux hosts only, in beta — we'd love your feedback.

Improve

A smoother way to add your first host

If you haven't connected a host yet, the New Server flow now guides you through it without leaving the page and continues on its own as soon as your host comes online.

Improve

Clearer server creation

Player presets now show what each one needs and let you know when the host you picked doesn't have enough memory — so you find out before you create, not after. Setting up a Minecraft server now includes a quick EULA confirmation.

Improve

Share your server in one click

While a new server sets up for the first time, the console now shows clear progress. Once it's live with the traffic proxy on, a single button copies an address you can send straight to friends.

Fix

Reliability fixes

A round of smaller fixes across server creation and the file manager for a smoother day-to-day experience.

Open Beta
New

Email registration & login

Sign up with email and password — no third-party account required. Full verification flow with email confirmation, forgot password, and reset password support.

New

Mod Manager (Modrinth)

Browse, install, and manage Fabric and Forge mods directly from the panel. Dependency resolution, version compatibility checks, and one-click install from Modrinth's catalog.

New

Email notifications

Automatic email alerts when your server crashes or is auto-stopped due to low balance. Sent to your verified email address.

Improve

Billing hardening

NMC billing is now atomic — server restarts can no longer cause double-charges. Grace period state persists across reboots. Auto-stop retries up to 3 times before marking a server as errored.

Improve

Server lifecycle reliability

Instances stuck in "Starting" for over 5 minutes are automatically transitioned to Error. Heartbeat reconciliation marks servers as Stopped if the agent stops reporting them. Port conflicts are now prevented at the database level.

Improve

Live status header

The instance header now polls every 3 seconds — status badge and action buttons always reflect the real state without a page refresh.

Fix

CPU/RAM hidden when server is stopped

Metrics are no longer shown when a server is offline. The panel now tracks per-instance resource usage rather than the whole host.

v0.9.2
Fix

Proxy reconnect on node restart

The traffic proxy tunnel now automatically re-establishes within 3 s after the agent reconnects, rather than requiring a full instance restart.

Fix

Session expiry during long console sessions

Users watching the live console for more than 30 minutes were being silently logged out. Sessions are now refreshed on active SSE connections.

Improve

Node offline detection latency

Reduced the heartbeat timeout from 30 s to 12 s. Offline alerts now fire within 15 s of a node going offline.

v0.9.0
New

Traffic Proxy (NAT bypass)

Route player traffic through the NodeMesh edge proxy without port forwarding. Works behind CGNAT, university networks, and VPNs. TCP and UDP both supported. Included for all beta testers.

New

Schema-driven Config UI

Game configurations now render as visual forms based on a JSON schema. Edit max-players, world seed, game mode, and dozens of other settings with sliders, dropdowns, and toggles — no file editing.

Improve

Instance start time

Minecraft Java server cold start reduced from ~40 s to ~22 s by caching the JRE download after first install.

Agent

Agent v0.9.0

New CommandStream RPC replaces the previous polling architecture. Latency between panel action and agent execution reduced from ~2 s to <200 ms.

v0.8.1
Security

Session fixation fix

Regenerate session ID on every login. Addresses a theoretical session fixation vector reported via responsible disclosure.

Fix

Instance STDOUT buffer overflow

High-throughput servers (>2000 log lines/min) were causing the in-memory log ring buffer to block. Buffer is now asynchronous with backpressure.

v0.8.0
New

Live console (SSE)

Real-time stdout/stderr streaming in the web panel via Server-Sent Events. No polling, no WebSocket library — just the browser's native EventSource.

New

Crash analytics

Automatic crash detection and log capture when a game server exits unexpectedly. Crash details available on the instance overview page.

Improve

Dashboard responsiveness

Tailwind CSS grid rework — dashboard is now fully usable on mobile screens down to 375 px.

v0.7.0
New

Pairing flow

New frictionless node onboarding: installer prints a token, paste it in the panel, done. Replaces the previous 6-step manual config approach.

Agent

Linux arm64 + Windows amd64 builds

Agent binaries now published for Linux arm64 (Raspberry Pi 4/5) and Windows amd64 in addition to Linux amd64.

Coming next

◆ Team members & roles
◆ Multi-region proxy nodes