Documents
Last updated: Oct 5, 2026
A thorough guide to everything Coalstack can do, from setting up your first server to automating a whole network of them. Use the sidebar on the right to jump to a section.
On Linux? This guide is written for the Windows build. The app works the same way, but a few things differ and some are still rough. The Linux notes have install steps, current bugs, and limitations.
Overview
Coalstack is a desktop app for running and managing your own Minecraft server - Java Edition or Bedrock Edition. It runs on Windows and Linux (see the Linux notes), and handles everything from downloading the server software to keeping backups, all from one window on your own computer. You don't need a hosting provider, a VPS, or any command-line experience.
The app is built with Tauri (Rust) and React. The server process runs on your machine. Coalstack picks the Java version your server needs and downloads it from Adoptium (Eclipse Temurin) the first time. Each version is stored once in the app's data folder and shared by every server that needs it. If that download fails, Coalstack falls back to whatever Java is already on your PATH. Your world files, server configuration, and console output never leave your computer.
Coalstack talks to our servers at coalstack.net only for account and license verification, update checks, and optional features you explicitly turn on (remote admin commands via the website, Discord webhook notifications). It never reads or uploads your world data.
Getting Started
Download the installer from the Download page and run it. Coalstack installs like any other Windows app.
The first time you open the app, Coalstack takes you straight into the New Server flow. After that, it remembers your last-used server and opens directly to it; if that folder is missing, you land on the All Servers page instead. From there you have two ways to add a server:
- Add a server I already have: point Coalstack at a folder that already contains a Minecraft server (a server.jar file, an accepted EULA, and the usual server directory layout). Coalstack will detect its platform and version automatically and pick up right where you left off.
- Create a new server: the Setup Wizard starts with an edition toggle, Java or Bedrock. For Java it walks you through picking a platform (Vanilla, Paper, Fabric, Quilt, Forge, or NeoForge), a Minecraft version, a name, and where the server files go. You agree to the Minecraft EULA with a checkbox, and then Coalstack downloads the correct server jar, creates the folder, writes the EULA file, and writes an initial server.properties file. For Bedrock, see Bedrock Edition. The server is ready to start immediately afterward.
You can add as many servers as you want. Each one is an independent folder on disk with its own world, configuration, mods, and settings. Switch between them from the server switcher in the title bar (click the server name and status pill next to the Start/Stop button), or from the All Servers page.
All Servers
All Servers shows every server you've added as a card. It's a normal sidebar item, not the home screen anymore - Coalstack opens straight to your last-used server (see Getting Started) and lands here only if that folder can't be found. Each card displays:
- The server's name, platform icon, and Minecraft version
- A status pill: RUNNING, OFFLINE, BOOTING UP, STOPPING, or RESTARTING
- The folder path on disk
- Copyable IP address and domain address (if one is configured)
- Live CPU percentage, RAM usage, and player count while running
- Start/Stop, Clone, and Dashboard buttons - Dashboard opens the Server workspace for that server
- A "Show more details" button that expands to reveal the world name, size on disk, seed, dimensions present, and a count of installed mods and plugins
- A red warning icon if any errors or crashes were logged for that server this session
Below the cards, the Global Performance section shows the combined CPU and RAM usage across all currently running servers. This is useful when you're running several servers at once and want to see the total load at a glance.
The "New Server" card at the end of the grid opens a dialog to either point at an existing server folder or launch the Setup Wizard for a fresh one.
Server Workspace
Selecting a server takes you to the Server page - the main control surface, split into tabs: Overview, Console, Automations, Performance, Diagnostics, and Server Settings, all visible at once. Everything on it updates live. The title bar above every page also carries the server switcher and the Start/Stop button, so the running server can be controlled from any page, not just this one.
Switching Servers
Click the server name and status pill in the title bar to open a dropdown listing every server for the current game, each with its running state, plus "+ New server" and "All servers". This is the one place to switch servers now - it replaces the old fleet strip and the per-page switchers that used to live on the Dashboard.
Overview Tab
A status strip across the top shows the platform icon, name, version (editable if unknown), status pill, session uptime, port (editable inline - changing it cascades to UPnP and firewall rules the same way it always has), and a copyable connect address. If the server is running but not port-forwarded, a line appears linking straight to Networking.
Below that, three compact cards sit side by side: CPU and Memory, each with a sparkline of the last 30 samples (one every 2 seconds) so you can see trends rather than just the current number, and Players, showing everyone online with their Minecraft head icon pulled from mc-heads.net (a colored initial circle if the head service is unreachable). A Health card appears while the server is running; threshold editing needs Coalstack Plus.
Quick Settings
A card lets you change difficulty, gamemode, PvP, and hardcore mode with simple dropdowns and checkboxes. Changes are written to server.properties immediately but take effect the next time the server starts - a note to that effect stays visible under the controls instead of fading out after a few seconds.
Console Tab
A Console | Chat toggle at the top switches between the raw live console and a structured chat view. The console streams the server's live output with every line color-coded (errors red, warnings yellow), a search filter box, and a "Clear" button that empties the visible buffer without touching the log file on disk. The Chat view extracts every INFO-level line into player chat messages, joins/leaves, deaths, advancements, and announcements, searchable by player name or message content. Both views respect the "Hide RCON Client messages" setting in Settings → General, since Coalstack's own RCON traffic (automations, scheduled commands, the send-command bar) would otherwise clutter both.
For servers that produce huge amounts of log output during boot (heavily modded Forge or NeoForge instances can dump thousands of lines), there's a "Virtualize the console" setting in Settings → General. When enabled, only the visible rows are mounted in the DOM, which keeps the interface responsive during startup. The tradeoff is that native browser text selection and Ctrl+F search across the whole log won't work in virtualized mode, so it's off by default.
A send-command bar sits directly beneath the console, working the same way as before: commands starting with / are sent as-is (like /weather clear); text without a leading slash is sent as a chat message (like Server restarting in 5 minutes). The input keeps a command history you can recall with the up and down arrow keys, and a "Help" button opens the Minecraft wiki's commands reference. Any macros you've saved live under a "Saved commands ▾" disclosure in this same tab. On a Bedrock server the console works the same way, but it is the server program's own console, not RCON.
Server Settings Tab
Everything that belongs to one server rather than to the whole app lives here: renaming the server (which renames its folder on disk, so the server must be stopped), the Conduit toggle that connects the server to the coalstack.net dashboard, saving the server's settings as a reusable template, exporting it as a shareable recipe (you can import a recipe from the New Server wizard), and a Danger Zone to forget the server (unlink it without touching any files) or delete it. Templates and recipes are for Java servers.
Server Creation & Cloning
Setup Wizard
The Setup Wizard walks through picking a platform (Vanilla, Paper, Fabric, Quilt, Forge, or NeoForge - each with a one-line plain-English description of what it means), a Minecraft version fetched live from that platform's own API, a name, and where the server files go. That location is pre-filled to Documents/Coalstack/Servers/<name>, so you never have to open a folder picker unless you want to. RAM is set automatically to a safe share of your system's total and sits behind a "Change" disclosure if you'd rather set it yourself.
Once you tick the Minecraft EULA checkbox, Coalstack fetches the correct server jar, creates the folder structure, writes the EULA file, and writes a starting server.properties. The wizard runs full-width now instead of a narrow centered column, and it handles platform-specific installers like the Forge and NeoForge bootstrap jars automatically.
Cloning
The Clone button on each server card creates a copy of that server in a new folder. You choose a name and parent folder, then pick between a full clone (copies the world too) or a template clone (same server software and settings but a fresh world). The original server must be stopped first, since copying a live world mid-write would risk corruption. The clone lands on the Servers page and is ready to start immediately.
Modpack Installation
Beyond the Setup Wizard, you can also create a server by installing a modpack directly from Modrinth. The Marketplace page has a "Modpacks" search that lists Modrinth modpacks with their game versions and loaders. Picking a pack version downloads the .mrpack file and installs it as a complete, ready-to-run server.
Bedrock Edition
Besides Java Edition, Coalstack runs Minecraft Bedrock Edition servers - the version phones, consoles, and Windows players use. It uses Mojang's own Bedrock Dedicated Server, a native program with no Java involved. Bedrock servers sit in the same server list as Java ones, with the same Start/Stop button, console, backups, and tiers.
Creating a Bedrock Server
Choose Bedrock in the New Server wizard. You pick Latest stable (what most players' clients are on) or Latest preview (early builds that only players on the Minecraft Preview app can join), a name, a location, the game mode and difficulty, max players, an optional seed, whether players must be signed in to Xbox Live, whether to use the allow-list, and the port (default 19132). Coalstack downloads the current build from Mojang's own download service and unpacks it; nothing is bundled with the app. Mojang publishes no checksum, so Coalstack checks that the download is a valid zip containing the server program. You agree to the Minecraft EULA with a checkbox first.
Running It
Starting, stopping, restarting, and the live console work the way they do for Java. Stop asks the server to save and exit cleanly, and closing Coalstack stops it. Because Bedrock has no RCON, Coalstack controls the server through its own console, so the server has to be started by Coalstack in the current session to receive commands. A Bedrock server left running from an earlier session can still be stopped, but that force-quits it. Who is online is tracked from the server's join and leave lines.
Allow-list and Permissions
The Players page has an Allow-list tab instead of Whitelist & Bans. Add players by Xbox gamertag; the server fills in their XUID the first time they join. Below it, Permissions sets each player's role (operator, member, or visitor), also by XUID. Changes apply right away on a running server. Mojang's own default is an allow-list that is on and empty, which lets nobody in, so the wizard asks outright and defaults to open. Bedrock has no ban command; remove a player from the allow-list instead.
Backups and Properties
See Backups & Snapshots for how a running Bedrock server is backed up, and Server Properties for the Bedrock settings form.
Networking
Bedrock needs a TCP port and a block of UDP ports; see Bedrock Ports under Networking. To join from the same PC on Windows, the Minecraft app has to be allowed to connect to localhost: run CheckNetIsolation LoopbackExempt -a -n="Microsoft.MinecraftUWP_8wekyb3d8bbwe" once in an administrator terminal.
What Isn't Available for Bedrock
Bedrock has no mods or plugins in the Java sense, so the Mods & Plugins marketplace, LuckPerms, the Live Map, Docker mode, invite links, the Playit tunnel, the Icon & MOTD editor, and templates and recipes are hidden on Bedrock servers. Bedrock servers also have no TPS or JVM settings. On Linux, Bedrock is available for 64-bit x86 only, and Mojang's server has to be able to run on your distribution.
The Bedrock Dedicated Server is Mojang's software: it contacts Mojang's services for sign-in checks, and Mojang receives its crash reports. Coalstack adds no telemetry to it.
Content: Mods & Plugins
Mods, plugins, resource packs, and data packs all live under the Content page's Mods & Plugins tab (people still call the interface itself "the Marketplace"). It's built around four sub-tabs: Mods, Plugins, Resource Packs, and Data Packs. Each combines a Modrinth-powered search and install interface with a file manager for the corresponding server subdirectory. A fifth sub-tab, Configs, gives you quick access to plugin configuration files.
Browsing and Installing
Each tab's browser section lets you search Modrinth by keyword or browse trending projects. Every result shows the project's title, description, icon, download count, category tags, and compatible game versions. Clicking a result opens a detail panel with the full description, a screenshot gallery, a list of required dependencies (with an "Install required dependencies" button), and a version picker that lists every published version with its game version, loader, filename, and file size.
Installing a project downloads its jar into the correct subdirectory. For mods, the app also checks compatibility with the server's detected platform and version, flagging mods as compatible, incompatible, or unknown - a Coalstack Plus feature.
File Manager
Below the browser, a file manager lists every file in the tab's subdirectory. You can drag and drop files from your desktop to add them, delete files one at a time, rename files, and extract zip archives directly into the folder. The file manager shows each file's name, size, and modification time.
Configs Tab
The Configs tab walks the plugins directory recursively for common configuration file extensions (.yml, .yaml, .json, .toml, .properties, .xml, .conf, .cfg, .hocon) and lists them all in a flat, searchable list. Clicking "Edit" on any file opens an inline text editor where you can modify the config and save it back to disk. This is a quick way to tweak a plugin's settings without leaving the app or digging through nested folders.
Mod Compatibility
The Marketplace's Mods tab shows a compatibility column next to each installed jar, with Coalstack Plus. The check reads each mod's internal metadata (mcmod.info, mods.toml, fabric.mod.json) and compares the declared game versions and loader against what the server actually runs. Results are color-coded: compatible (green), incompatible (red with an explanation), or unknown (grey, for mods Coalstack couldn't parse). Compatibility can also be checked across the entire mods folder at once with the "Check Compatibility" button.
World & Files: Files
The Files tab, under World & Files, is for everything that doesn't fit into the dedicated Mods, Plugins, Data Packs, or Resource Packs sub-tabs. It lets you create arbitrary folders at the server root and then manage files inside them with the same drag-and-drop file manager used throughout Content.
This is useful for mods that need their own directory at the server root (a config folder, a scripts folder, a world-gen data folder). You create the folder once, select it from the dropdown, and then add, rename, or delete files inside it.
World & Files: Worlds
The Worlds tab shows the server's current world (size and when it last changed) and has two buttons: Import world and Reset world. Both are guarded the same way, since either one replaces a world you may care about.
- The server has to be stopped. The buttons are disabled, with the reason, while it runs.
- Coalstack makes a normal backup first, labelled "Before import/reset", so you can find it in the Backups tab. If that backup fails, nothing is touched.
- You type the server's name to confirm.
- The new world is built beside the old one and swapped in, and rolled back if anything goes wrong, so a failed import can't leave a half-written world.
Importing a World
On Java, pick a .zip or a folder. Coalstack finds level.dat inside it (it can be one folder down) and sets it up as the server's world, bringing the Nether and End along when they're there. On Bedrock, pick a .mcworld, a .zip or a folder; it goes under worlds/ and the server is pointed at it. An archive with no level.dat is rejected with a clear message.
Resetting a World
Reset deletes the world after the backup, and a fresh one generates the next time the server starts. You can enter a seed first.
Limits
Java servers with a custom level-name aren't supported yet: Coalstack expects the standard world, world_nether and world_the_end folders.
Server: Upgrade Minecraft Version
Server Settings has an Upgrade Minecraft Version card (Coalstack Plus, Java servers). It moves a server to a newer Minecraft version in one guided flow: a check that changes nothing, a backup, the upgrade itself, and an undo until you decide to keep it. Only newer versions are offered, because Minecraft can't open a world that a newer version has saved.
What it can upgrade
Vanilla, Paper, Fabric, Quilt, Forge and NeoForge servers that Coalstack can recognise. Purpur, Spigot, a custom server jar and Bedrock servers aren't supported yet, and the card says why. The server has to be stopped.
The check
Pick a version and Coalstack looks up every jar in mods/ (or plugins/ on Paper) on Modrinth by its contents, so a renamed file still counts. Each one ends up in one of four groups:
- Works as it is: the installed build already lists the new version.
- Will be updated: Modrinth has a build for the new version. You can keep the current file instead.
- No version for it yet: disabled by default (moved aside, not deleted). You can keep it, but it may stop the server from starting.
- Not on Modrinth: kept by default, because Coalstack can't tell whether it works. You can disable it.
The upgrade
Coalstack backs up the world first (a restore-tested snapshot; if that fails nothing is changed), downloads the updates and checks each against the checksum Modrinth publishes, sets the old server files aside, installs the new server and applies your choices. If any step fails the file changes are undone for you. The server is left stopped: start it to finish.
Keep or undo
Until you press Keep the upgrade, the card offers Undo. Undo puts the old server files and mods back and restores the world from just before the upgrade, so anything players built since is lost. Keep clears the undo files and leaves the backup among your snapshots. The undo files live in the server's .coalstack-upgrade folder.
Limits
An updated mod can need a new library mod that wasn't installed before. Coalstack doesn't add those during the upgrade; if the server then fails to start, Auto-fix downloads what is missing. Jars outside mods/ and plugins/, datapacks and resource packs aren't checked.
World & Files: Icon & MOTD
Icon & MOTD, a Coalstack Plus tab under World & Files for Java servers, covers the visual identity of your server. You can set a server icon by picking a 64x64 PNG from your computer; Coalstack copies it to the server-icon.png file that Minecraft looks for at the server root. The page shows a live preview of the current icon.
The MOTD (Message of the Day) editor lets you write the text players see in their server list, with a live preview that shows roughly how it will appear in the Minecraft client. MOTD formatting codes using the section sign are supported. Changes are saved to server.properties and take effect the next time the server starts.
To rename the server, use Server Settings on the Server page.
Players: Online
The Online tab, on the Players page, tracks every player who has joined the currently selected server during this session. Each player row shows their Minecraft head icon, their name, the time they joined, how long their current session has lasted, and a running total of their playtime across all sessions this session.
Session tracking is driven by the same log-tailing poll that powers the console and notifications. When a player joins or leaves, the app matches the log line against known join and leave patterns, records the timestamp, and updates the running totals. This data is session-scoped: closing Coalstack resets the counters, since persistent playtime tracking across app restarts would need a database rather than in-memory state.
Player heads are fetched from mc-heads.net. If the service is unreachable, each player shows a colored circle with their initial instead. Bedrock servers show gamertags without heads, and their joins and leaves are read from the server's own "Player connected" and "Player disconnected" lines.
Players: Whitelist & Bans
The Whitelist & Bans tab, on the Players page (Java servers; a Bedrock server has an Allow-list tab instead, see Bedrock Edition), gives you a visual interface for the three JSON files Minecraft uses to control who can join and who has admin powers. Instead of editing whitelist.json, banned-players.json, and ops.json by hand, you add and remove entries through the app.
Whitelist
Add players by UUID and name. Toggling the whitelist on or off requires editing server.properties (the "white-list" property on the Server Properties page), but Coalstack shows you the current state so you can see at a glance who's on it.
Bans
Ban a player permanently by UUID and name with an optional reason. The ban is written to banned-players.json and takes effect immediately. Coalstack also supports temporary bans: set a duration, and the app will automatically issue a /pardon command when the time is up. Temp bans are checked on the same 15-minute scheduler tick as scheduled commands. Vanilla Minecraft itself has no concept of temp bans; Coalstack tracks the expiry on its own and sends the pardon when it's due.
Operators
Add and remove ops with a permission level (1 through 4, matching Minecraft's own op levels) and a toggle for whether the op bypasses the player limit. Changes are written to ops.json.
World & Files: Server Properties
The Server Properties tab, under World & Files, opens with a plain-language "Common settings" section - difficulty, gamemode, max players, PvP, whitelist, online mode, and the server description - for the properties people actually change most. The full key-value table for every other property in server.properties sits below it behind a disclosure.
In that raw table, each row shows the property name on the left and its current value on the right. Editing a value and clicking Save writes the change back to the file immediately. New properties can be added with the input at the bottom.
Changes to most properties only take effect the next time the server starts. A few, like the whitelist and ban list, are read by the server process continuously, but the safe rule of thumb is to restart after making changes here.
Editing server.properties through this page rather than opening the file in Notepad avoids common pitfalls: the app preserves the existing order of properties, keeps comments and blank lines intact, and handles the escaping of special characters correctly.
Config History (Coalstack Plus): every tracked write to this file - and to plugin configs edited through the Marketplace - is saved as a revision. Open the history panel next to the editor to diff a past revision against the current file or revert to it with one click. Only edits made through the app are tracked; a change made outside Coalstack has no entry.
On a Bedrock server the same tab shows Bedrock's own common settings (game mode, difficulty, who new players are, cheats, the allow-list, max players, and so on) above the full table.
Server: Performance
Performance, a tab on the Server page, shows the server's CPU and memory history over time. Two sparkline charts are stacked vertically: CPU percentage and memory usage in MB, each spanning the last 30 samples collected at 2-second intervals. The current value is displayed as a large number above each chart.
The page also shows your system's hardware specs: the CPU model name, total installed RAM, and RAM type (DDR4, DDR5, etc.) when detectable. This is useful context when deciding how much RAM to allocate.
Performance Presets & Docker
Below the metrics, JVM tuning (renamed "Performance Presets" in the app) and Docker / Container Mode both live on this page now - Container Mode moved here from the Server Overview tab, since it's a one-time-per-server setting rather than something you check daily. Both need Coalstack Plus; see Docker Support below.
TPS (Ticks Per Second)
On Paper, Spigot, Purpur, Forge, and NeoForge servers, Coalstack queries the server's TPS via RCON commands (/tps or /forge tps) and includes it in the metrics history. TPS is the best single indicator of server performance: 20.0 means the server is keeping up perfectly, and anything consistently below 18 indicates lag. Vanilla and Fabric servers don't expose TPS through RCON, so the metric isn't available for those platforms. Bedrock servers have no JVM, no TPS and no Docker mode, so for them this page shows CPU and memory only.
Backups & Snapshots
Automatic Backups
Coalstack can back up your server automatically on a schedule, on every tier. You set the interval in hours, and the app zips the world folders (world, world_nether, world_the_end, or whatever your level-name is set to) into a timestamped archive in the server's own backups directory. Automatic backups run while Coalstack is open, whether or not the server is running; the scheduler checks every 15 minutes whether any server is due. If an automatic backup fails, you get a notification instead of finding out when you need to restore.
Manual Backups & Snapshots
You can trigger a backup manually at any time from the Backups page with the "Back Up Now" button. A snapshot is the same thing as a backup but stored in a separate snapshots directory and limited to the 5 most recent; it's meant for quick save points before trying something risky rather than long-term archival.
Restoring
From the Backups page you can browse any backup's contents and restore it. Restoring deletes the world folders the backup replaces and extracts the archive in their place. The server must be stopped first. Each backup entry shows its size and creation date so you can find the right one.
Backup Destinations
Every backup is always saved in the server's own backups folder. On top of that you can add destinations so a single failed drive doesn't take your backups with it: a local or mounted folder (an external drive, a NAS, a synced OneDrive folder) or Google Drive. Free includes one extra destination; Coalstack Plus has no limit and adds S3-compatible storage (Amazon S3, Cloudflare R2, Backblaze B2, and similar). If a destination is unavailable (drive unplugged, sign-in expired), the local backup still succeeds and that destination is marked with a warning.
Backup History
The Backups page lists every run, automatic or manual, with a check or a warning. Open a run to see how each destination did and what went wrong, if anything.
Bedrock Servers
A running Bedrock server doesn't have to be stopped for a backup. Coalstack asks it to hold its world still, copies exactly the files the server lists, then lets it carry on. Only the active world (worlds/<level-name>) is backed up. Restoring a Bedrock backup replaces the world inside it and points the server's level-name at that world.
Pruning
You can set a maximum number of backups to keep. When a new backup is created, Coalstack deletes the oldest ones beyond that limit. Set it to 0 or leave it blank for unlimited backups.
Networking
The Networking page is where you make your server reachable from the internet, across five tabs: Port Forwarding, Tunnel, Custom Domain, Crossplay, and Network. The first three cover five approaches to reaching your server from outside, from simplest to most advanced; Crossplay and Network are described at the end of this section.
Port Forwarding with UPnP
UPnP (Universal Plug and Play) lets Coalstack ask your router to forward a port automatically. You pick a port number and protocol (TCP, UDP, or both), and the app discovers your router via SSDP, adds a port mapping, and offers to add a firewall rule. On Windows only that one step asks for permission (a UAC prompt), and Coalstack itself never restarts as administrator; on Linux a PolicyKit prompt does the same for ufw or firewalld. The status line shows whether the mapping is active.
Not all routers support UPnP, and some have it disabled by default. If discovery fails, you'll need to forward the port manually through your router's admin interface.
Bedrock Ports
A Bedrock server needs more than one port: a TCP port (default 19132) for the connection handshake and a block of 32 UDP ports starting at that number for gameplay. On a Bedrock server the Port Forwarding tab forwards and opens the firewall for both in one click, and changing the port moves the whole block with it. If you run two Bedrock servers on one PC, give them ports at least 32 apart. The Playit tunnel isn't available for Bedrock servers.
Playit Tunnel
If UPnP isn't an option - CGNAT, a locked-down router, or a network you don't control - the Tunnel tab connects your server through Playit instead, giving you a public address without any router configuration at all. Click Connect and Coalstack handles the rest; the address is available to copy once the tunnel is up. Free on every tier.
Custom Domain
If you already own a domain and have pointed an A record at your public IP, you can enter it here. Coalstack will show yourdomain.com:port as the connect address on server cards instead of a raw IP. The app doesn't manage the DNS for you, it just remembers the domain as a display preference.
Dynamic DNS: DuckDNS
DuckDNS is a free dynamic DNS service. You create a subdomain (likemyserver.duckdns.org) on their website, get a token, and enter both into Coalstack. The app then pings DuckDNS's update API every 5 minutes with your current public IP, keeping the subdomain pointed at your machine even if your residential IP changes when your ISP re-leases it or your router reboots.
Dynamic DNS: Cloudflare
If you own a domain hosted on Cloudflare, Coalstack can update an A record automatically using a Cloudflare API token scoped to Zone:DNS:Edit. You provide the token, root domain (like example.com), and record name (like play.example.com). The app updates Cloudflare's DNS every 5 minutes with your current public IP, just like DuckDNS.
Crossplay: Bedrock Players on a Java Server
The Crossplay tab lets Bedrock players (phones, consoles, Windows) join a Java server, without a Java account. It installs two plugins from GeyserMC: Geyser, which translates between the two editions, and Floodgate, which lets Bedrock players sign in with their own account. Each download is checked against the sha256 GeyserMC publishes, and rejected if it doesn't match. An existing Geyser or Floodgate jar, say one from the Marketplace, is reused rather than duplicated.
Crossplay works on Paper, Purpur and Spigot servers; the tab explains why on Vanilla and mod loaders. Coalstack also sets Geyser to use Floodgate sign-in. Geyser listens on UDP 19132 by default, and the tab can open that port (UPnP and firewall rule) for you. If a Bedrock server of yours already uses 19132, change Geyser's port. Floodgate puts a dot in front of Bedrock players' names, so allow-list and operator entries need the dotted name. Turn Crossplay off only while the server is stopped; the plugin data stays so linked accounts survive turning it back on.
Velocity Proxy Networks
A Velocity proxy puts several of your servers behind one address. Choose Velocity as the platform in the New Server wizard; it's an ordinary Coalstack server (start, stop, console) that uses stable Velocity releases. Then open its Network tab to link Paper or Purpur servers. Linking adds the server to the proxy, enables Velocity forwarding on it with the proxy's secret, turns its online-mode off (the proxy checks logins, and unlinking puts the old value back), and moves its port if it clashed with the proxy's. Restart both servers afterwards.
Known limits: only Paper and Purpur can be linked; a proxy Coalstack reattached after a restart can only be force-stopped; proxies can't be backed up; and a proxy's settings live in velocity.toml (edit it in Files) rather than Server Properties.
Address Display
On every server card, Coalstack shows the best available connect address: your custom domain if set, otherwise your DuckDNS or Cloudflare domain if active, otherwise your raw public IP. Each address is copyable with one click.
World & Files: Live Map
Live Map, a tab under World & Files (Java servers only), shows your world if you're running Dynmap or BlueMap (plugins that render Minecraft as a browsable web map). Coalstack detects them and shows the map in an embedded iframe. The detection checks the server's plugins directory for either plugin and reads the port from their respective configuration files.
If neither plugin is installed, the page shows a link to Content where you can install one. Coalstack doesn't bundle its own map renderer; it relies on these existing plugins, which are mature, well-maintained, and far more capable than anything the app could realistically replicate.
Server: Diagnostics
Diagnostics, a tab on the Server page, stacks two tools on one page: the free Auto Debugger at the top, and the paid AI Log Analyzer (see AI Tools) below it. Sharing a page doesn't share a code path - the Auto Debugger stays a deterministic pattern matcher either way.
The Auto Debugger scans the server's latest.log, recent crash report files, and the server's captured console output for known error patterns: OutOfMemoryError, port conflicts, mod dependency issues, corrupted chunk warnings, client-only mods installed on a server, and several dozen others. It filters out benign noise like deprecation notices and informational lines that look alarming but aren't.
This is a fixed, deterministic pattern matcher written in Rust, not an AI call. It's available on the free tier because it doesn't cost anything to run. Each match is shown with the file it came from, a stable error code, a plain-English explanation of what the error means, and the surrounding log lines for context. See the full error code reference for longer explanations than fit in the app.
Auto-fix
When a server crashes or fails to start and the Auto Debugger recognises the cause, Coalstack can fix it for you. It plans the fix, shows it, applies it, restarts the server and checks it comes online. It covers:
- A missing mod dependency: the mod it needs is downloaded from Modrinth, matched to your loader and Minecraft version. Coalstack finds the right project by identifying the mod that is asking (Modrinth recognises a jar by its contents, so a renamed file still works), and uses Forgified Fabric API and Sinytra Connector where Fabric mods run on NeoForge or Forge.
- A client-only mod (a rendering or shader mod that crashes a server): moved out of mods/. A client-only mod that is asking for libraries is removed rather than fed what it wants.
- A taken port: the next free port is chosen. Players and port forwarding will need the new one.
- Too little memory: the server's memory is doubled, never past 70% of your PC's memory or 16 GB.
- An unaccepted EULA: always asks first, because it is you agreeing to Minecraft's EULA.
Settings has three modes: ask (the default, you review every change first), automatic (applies straight away, except the EULA step), and off. When a fix does not work, you choose to revert that round or continue, with a reason shown; there are at most five rounds. Mods Coalstack removes are moved aside, not deleted, and everything from a session can be undone from the same dialog. The journal behind Undo lives in the server's .coalstack-autofix folder and keeps the latest session only.
Check for problems
The Content page has a Check for problems button. It looks through your mods folder for what is likely to break the server before it does: a client-only mod, or a mod whose required mod isn't installed. Optional dependencies are ignored, and so is a required mod that another mod carries inside itself (jar-in-jar). The result opens in the same review dialog as auto-fix, and nothing changes until you press Apply. The server is not started, and the button waits until it is stopped, because the fixes change files it is using.
The last result is kept. Clicking the button again shows it straight away while nothing has changed (the Minecraft version, the loader, and every jar in mods/ by name, size and date); if anything has, or the result is more than half an hour old, Coalstack checks again. Recheck in the dialog always checks again.
Notifications
A 🔔 icon in the title bar opens a popover with the same feed; "See all" opens the full Notifications page below, which has two tabs, Feed and Alerts. The Feed shows a real-time feed of events for the currently selected server. Each entry has a timestamp, the server name, and a message. Events are categorized by type with a colored icon:
- Join (green): a player connected
- Leave (grey): a player disconnected
- Advancement (amber): a player earned an achievement
- Restart (grey): the server restarted
- Error (red): an error was logged
- Crash (red): the server stopped unexpectedly
- Automation (green): an automation rule fired and this was its result
You can filter by type using the tab bar, or clear all notifications for the current server. Notifications are session-scoped; they clear when Coalstack closes. The feed is driven by the same central log-tailing poll in App.tsx that streams console output, so notifications appear regardless of which page you're on.
The Alerts tab is where you choose what leaves the feed. Desktop notifications (on by default) show a native pop-up for the events you pick, such as server crashes and failed backups, while Coalstack is in the background; a "Send a test notification" button confirms they work. The same tab holds the per-server webhook notifications.
Settings → General includes a toggle to permanently hide the "Hey! I see you are using our app" feedback toast that appears on startup. When checked, the toast won't appear on any future launch. The setting persists in localStorage.
Automations
Automations, a tab on the Server page, are visual IF/THEN rules. You pick a trigger and one or more actions, and Coalstack runs them automatically when the trigger fires. Rules are per-server and stored in that server's coalstack-server-config.json file. Scheduled Restarts and Scheduled Commands (below) are sections of this same page, not a separate screen.
Triggers
- A player joins: fires every time someone connects. Optionally restricted to a player's first-ever join to this server (Coalstack tracks every name it's ever seen join).
- A player leaves: fires every time someone disconnects.
- Server is empty for N minutes: fires once after the server has had zero players online for the specified duration. Resets when someone joins. Useful for stopping an idle server.
- Server crashes: fires when the server stops unexpectedly (the process exits without a deliberate "stop" command).
- Server finishes booting: fires when the server is fully started and ready for connections.
- On a time schedule every N minutes: fires repeatedly at a fixed interval, like a cron job.
- CPU usage exceeds N%: fires when the server process's CPU usage surpasses the threshold. Subject to a 5-minute cooldown to avoid spamming.
- Memory usage exceeds N MB: fires when the server process's memory usage surpasses the threshold. Same 5-minute cooldown.
Actions
- Run console command: sends an arbitrary command to the server via RCON. The command's result is logged to notifications.
- Stop the server: gracefully stops the server.
- Restart the server: gracefully restarts the server.
- Run a backup: creates a backup of the world folders immediately.
- Send a webhook: posts a JSON payload to a URL of your choice - separate from the per-server Discord/Slack webhook in Settings, useful for wiring a trigger into your own tooling.
Multiple Actions
A single rule can have multiple actions. For example: "IF server crashes THEN run a backup AND restart the server." Actions run in sequence; if one fails (a backup runs out of disk space, say), the rest still execute.
How They Run
Event-based triggers (player join, player leave, server empty, crash, server online) are detected by the frontend's log-tailing poll in App.tsx, which scans every new log line for the matching pattern. Time-based triggers (scheduled, CPU high, memory high) are evaluated by a Rust-side scheduler that runs every 60 seconds. Both paths call the same action dispatch logic. Every execution is logged to Notifications with the command and its result.
Conditions, Cooldowns & Circuit Breaker (Coalstack Plus)
Any rule can be narrowed with a condition: only fire if the player count is above or below a number, or only during a time window (e.g. no restart pings between midnight and 8am). A cooldown stops a rule from re-firing again for N minutes after it last ran. A circuit breaker auto-pauses a rule (with a notification) if it fires more than a set number of times in an hour - a safety net for crash-triggered rules that could otherwise loop if something's actually broken.
Scheduled Commands & Restarts
In addition to the full rule-based system above, the Automations page has three simpler built-in schedulers for the most common use cases.
Scheduled Restarts
Turn on automatic restarts with a configurable interval in hours, with optional warning messages counting down beforehand. Coalstack checks every minute whether a restart is due and issues a graceful restart if the server is running. The last restart time is displayed. This needs Coalstack Plus.
Announcements
Free-form messages on their own repeating interval, with no restart attached - a welcome message, a rules reminder, or a Discord invite link. This needs the Coalstack Plus.
Scheduled Commands
Add any number of console commands that repeat on their own interval. For example,save-all every hour, or a broadcast every 30 minutes to warn players about an upcoming restart. Each command has its own independent interval, enabled toggle, and last-run timestamp. Checked every 15 minutes while the server is running. This needs the Coalstack Plus.
Webhook Notifications
Coalstack can send notifications to Discord, Slack, or any endpoint that accepts a JSON webhook POST. The webhook is per-server: paste the URL into the Webhook Notifications section of Notifications → Alerts, pick the matching format (Discord/Slack/Generic), and Coalstack posts messages there automatically. This needs Coalstack Plus.
The app sends notifications for: the server coming online ("Server is online"), a player joining or leaving, and the server stopping unexpectedly (possible crash). A "Send Test Message" button confirms the webhook is working. Webhook URLs are stored in the server's config file; they're not high-value secrets (they can only post messages to one channel), so they don't go through the OS keystore.
Docker Support
With Coalstack Plus, you can run a server inside a Docker container instead of as a plain Java process. Coalstack uses your existing Docker Desktop installation; it never bundles or installs Docker itself.
When Docker mode is enabled for a server, starting it launches an Eclipse Temurin container with the server jar, the world folder bind-mounted, and the game port and RCON port published through to the host. The container is named from the server's folder path, so stop and restart always hit the same container.
Console streaming, RCON commands, and stats monitoring all behave exactly like a plain Java process. Docker mode works for Vanilla, Paper, Spigot, Fabric, Forge, and NeoForge servers. Bedrock servers aren't run in Docker.
AI Tools
Coalstack ships three AI-powered tools, all built on the Anthropic API (or OpenRouter as an alternative provider). Each requires you to bring your own API key; Coalstack doesn't bundle or proxy any AI calls through its own servers.
Log Analyzer
Paste a server log or crash report into the text box, and Coalstack sends it to the AI with a prompt asking for a plain-English explanation of what went wrong and how to fix it. The result is rendered as Markdown. This needs Coalstack Plus - the free Auto Debugger above covers the same ground with a deterministic pattern matcher instead.
Config Generator
Describe the server settings you want in plain English (for example, "a hard mode survival server with PvP off, a 10,000 block world border, and no nether"), and the AI generates a matching server.properties file. You can review it before saving. This needs Coalstack Plus.
Plugin Generator
Describe a plugin you want (for example, "a plugin that gives every new player a stone pickaxe and 16 torches when they first join"), and the AI generates a starter Java class for Paper/Spigot along with a plugin.yml snippet. The generated code is a starting point, not a finished plugin. This needs Coalstack Plus.
API Key & Provider
Enter your Anthropic API key in Settings → Integrations. The key is stored in the Windows credential store (the OS keychain), not in a plain text file. You can switch to OpenRouter as the provider and bring your own OpenRouter key, which gives you access to models from OpenAI, Google, Meta, and DeepSeek in addition to Anthropic's models.
Server Context
When generating configs or plugins, you can optionally include your server's context: the app scans the server jar and its plugins directory for known API classes and sends a summary to the AI so the generated code references the right Minecraft and plugin APIs. For a Bedrock server there are no jars or plugins to scan, so the context simply says it is a Bedrock Dedicated Server.
Players: Admins
Server Admins
The Admins tab on the Players page lets you invite other people to help manage a server without giving them access to your computer or your Coalstack account. You invite someone by email, and they get an email with a link to accept. Each admin gets a configurable set of permissions:
- Can use the console (send commands)
- Can restart the server
- Can manage backups
- Can manage files
- Can manage the whitelist
Admins manage the server through the coalstack.net website, not through the desktop app. Their actions reach your app over Conduit, which keeps a live outbound connection to coalstack.net and falls back to a periodic check-in if that drops. This same tab's admin log records every admin action with a timestamp and the admin's email. Bedrock servers work with Conduit too; the one thing that doesn't carry over is the ban button, since Bedrock has no ban command.
Local API
Coalstack runs a small local HTTP API server on 127.0.0.1 with a randomly generated API key. This is used internally by the command relay and the website's server management features. You can view and regenerate the API key under Settings → Integrations. The API only listens on localhost, so it's never reachable from outside your machine.
Security
Account Security
Your Coalstack account password is hashed with bcrypt by Supabase Auth before it's ever stored. Coalstack itself never sees or saves the plain text. Every connection to coalstack.net is HTTPS, encrypted in transit with TLS.
API Keys
Your Anthropic and OpenRouter API keys, your login token, and your license key are stored in the Windows Credential Manager, the same secure store Windows uses for saved Wi-Fi passwords and web credentials. On Linux they go in the kernel keyring instead. They're never written to disk as plain text. (See the Linux notes for a caveat about the keyring after a reboot.)
RCON
Coalstack communicates with your server over RCON (Remote Console), a small locked-down connection built into Minecraft for this exact purpose. The RCON password is randomly generated per server and stored in the server's config file. RCON is only bound to 127.0.0.1, so it's never exposed to the internet. You can rotate the password from the Security page if you think someone else got hold of it.
Bedrock servers have no RCON. Coalstack talks to them through the server program's own console, which only Coalstack's process can reach.
File System Safety
Every file operation that takes a user-supplied path (reading server files, writing configs, extracting zips) validates that the path doesn't escape the server folder. The Rust backend rejects absolute paths, paths containing .. components, and paths with a root prefix. This applies to mod installs from Modrinth too, since anyone can publish a mod or modpack with arbitrary file paths in its manifest.
Settings & Licensing
App Settings
Settings, in the sidebar, has three tabs: General (the game, console display preferences such as virtualize mode for large logs and hiding RCON messages), Integrations (AI provider and API key, and the local automation API), and Changelog.
Licensing
Coalstack uses a bring-your-own-key model for AI features and a one-time license key for everything else. The free tier includes server management, console streaming, manual and automated backups (with one extra backup destination), the Marketplace, and the Auto Debugger. Coalstack Plus adds mod compatibility checks, more backup destinations, scheduled restarts and announcements, config and plugin generation, and the AI Log Analyzer, scheduled commands, Docker support, fleet automations, and more. The web relay (Conduit) is a separate optional subscription. Bedrock servers are on the same plans as Java servers. The Pricing page has the exact list.
You can log in through the app with email and password, or through the coalstack.net website in your browser. The website login supports Google OAuth, which an embedded webview can't handle. When you log in on the website, it sends your license key back to the desktop app via a coalstack:// deep link, so the license applies automatically without a manual copy and paste.
The license is validated against the server on launch and roughly every 24 hours thereafter. If validation fails (you're offline or the server is unreachable), the app falls back to the last known good result within a grace period, so a temporary internet outage doesn't immediately lock you out of paid features.
Updates
Coalstack checks for updates once per launch via the Tauri updater plugin. If an update is available, an UpdateToast appears at the bottom of the window with release notes and a download button. The update is downloaded and applied through Tauri's built-in update mechanism; you don't need to re-run the installer manually.
Tray Icon & Background Operation
Coalstack can keep running in the background after you close the window. The system tray icon (in the Windows taskbar notification area) gives you a menu with "Show Coalstack" and "Quit." Left-clicking the tray icon restores the window.
When you close the window while a server is running, the window hides to the tray instead of quitting. The server keeps running. When you try to quit the app entirely (via the tray menu's Quit or Alt+F4 on the main window), Coalstack shows a confirmation dialog and, if you confirm, gracefully stops every running server before exiting. There's an 8-second timeout on the stop-all step so that a stuck Java process can't prevent the app from closing.
Privacy & Your Data
Your server's files, world data, console output, and configuration stay on your own computer. Coalstack does not read, upload, or analyze your world files. The app talks to coalstack.net only for:
- Account creation, login, and license verification (Supabase Auth)
- License checks and feature gating
- Update checks (Tauri updater plugin)
- Remote admin commands (only if you've invited server admins through the website)
- Modrinth API calls for the Marketplace (proxied through the app, not our servers)
- Downloading server software straight from its publisher when you create a server: Mojang or Microsoft (Vanilla and Bedrock), PaperMC (Paper and Velocity), Fabric, Quilt, Forge, NeoForge, and Adoptium for Java. Crossplay downloads Geyser and Floodgate from GeyserMC. These requests go from the app to them, not through us.
- Anthropic or OpenRouter API calls for AI features (direct from the app)
See our Privacy Policy for the full details. If you have questions, contact help@coalstack.net.

