Managing Your Servers

The day-to-day workflow of running game servers with Saba-chan — from adding, starting, and monitoring servers to backups, schedules, inviting friends, and integrating with Discord.

Managing Your Servers

This document explains how to use Saba-chan from a user's perspective. Even without touching module code or writing your own extensions, this single page is enough to run one or two game servers for your friends.

Installation is covered in Getting Started, and bot pairing in Discord Bot & Cloud Relay. Here, we assume you've already finished installing and focus on what to click and what to look at while the GUI is open.


1. Big picture: the GUI is a remote, the daemon runs the servers

The first thing to grasp is that closing the GUI window does not shut down your game servers.

  • saba-chan-gui (window) — the remote control that sends commands to the daemon and renders the screen. The CLI (saba-chan-cli) plays the same role.
  • saba-core (daemon) — the core process that runs in the background, launching and supervising game servers. Running servers, backups, scheduled tasks, and the Discord connection are all handled by the daemon.
  • Game server processes — the actual servers launched by the daemon (java, PalServer.exe, etc.).

So your day-to-day operations look like this:

  1. Launch the GUI and the daemon starts with it (if it's already running, the GUI simply attaches).
  2. When your friends are about to come online, hit Start on the server screen.
  3. While playing, you can minimize or close the window. When you close it, you choose between Exit Interface (the daemon keeps running) and Quit All (the daemon stops too). To keep the servers running, choose Exit Interface.
  4. After you're done, open the GUI again and hit Stop.

🔌 Naturally, shutting down your PC also shuts down your game servers. The daemon only runs on your own PC; if you want 24/7 uptime, dedicated hosting is the better choice.


2. Creating your first server (quick summary)

See Getting Started for the full walkthrough. In short:

  1. On the Servers screen, click Add server.
  2. Choose New Server. If you already have a server folder, Import Existing Server links it instead (the files stay where they are).
  3. Pick a game (Minecraft / Palworld / Project Zomboid, etc.), then set the server name and a recommended preset.
  4. If the game has terms to accept, you accept them here. For example, Minecraft requires you to accept the Minecraft EULA before the server can start (§3.7).
  5. Click Add Server. The server files are downloaded automatically and the progress is shown on the server screen.
  6. Once installation finishes, the server appears in the list.

🪪 You can name your server however you like — "Minecraft with friends", "Weekend Zomboid", and so on. In Discord commands you can refer to a server by its name or by its game name (alias). You can rename a server while it's stopped with the pencil button next to its name.


3. Day-to-day workflow

Selecting a server opens its screen on the right. At the top are the Start/Stop button and the status; below are the tabs. Which tabs appear depends on the game.

TabContents
ConsoleServer output and command input (only for games with a console)
CommandsThe commands the game defines (e.g. Palworld announcements, player list)
SettingsGame settings, auto restart, memory limit, launch arguments preview
BackupsCreate and restore backups, scheduled tasks
LogWho started, stopped, or sent commands, and when
InfoPort, version, uptime, recent exits, server check, open server folder, delete server

3.1 Start / Stop / Restart

  • Start: The daemon first checks the terms acceptance and runs the module's checks, then launches the server. If the check finds a critical problem, the server is not started and the reason is shown.
  • Stop: Sends the game's graceful stop command (e.g. Minecraft stop, Zomboid quit) and waits. If the server hasn't exited within 30 seconds by default (this can differ per game), it is force-killed.
  • Restart: Does stop → start in one step. Connected players are briefly disconnected.

3.2 Viewing the console / sending commands

  • The Console tab shows the game server's output in real time.
  • Type a command and press Enter to send it to the server console (stdin). Examples for Minecraft: say hi!, op FriendNick. Use ↑ to recall previous commands.
  • Saba-chan does not use RCON. Games without a console (such as Palworld, which is controlled only through its REST API) are operated through the predefined commands in the Commands tab.
  • The console can be popped out into a separate window, and on Windows Open in terminal opens a CLI console.
  • For each server the daemon keeps the most recent console lines (up to 10,000) in memory and also writes them to files under logs/ in the server's folder.

3.3 Running multiple servers at once

  • You can create multiple servers of the same game (e.g. "Vanilla MC" and "Modpack MC"), or run different games side by side.
  • Each server's port must not overlap. When you create a new server, Saba-chan shifts the default port so it doesn't clash with your other servers, and a warning appears on the server screen if ports do overlap. You can change the port in the Settings tab.
  • Each additional server costs PC memory/CPU, so decide based on your resources.

3.4 Crash detection and auto restart

  • When a server exits, the daemon determines why: Stopped by you, Stopped in game, Crash, or Unknown. The verdict is recorded in Recent exits on the Info tab.
  • If it's judged a Crash, the server is restarted automatically by default. The first restart happens after 5 seconds, and the wait doubles with each restart. After more than 3 restarts within 10 minutes it gives up and leaves it to you.
  • You can change this under Auto restart in the Settings tab.
    • Restart after a crash — when it clearly exited due to an error (on by default).
    • Also restart on unknown exits — also covers cases that can't be judged, such as killing it from Task Manager (off by default).
  • Servers you stopped yourself, from Saba-chan or inside the game, are not restarted.

3.5 Memory limit (Windows)

  • Under Memory limit in the Settings tab you can cap the memory (MB) the server and its child processes may use together. If the limit is exceeded, the server is stopped.
  • Leave it empty for no limit. For Java servers, set it 1–2 GB higher than -Xmx.
  • Windows only; takes effect after the server is restarted.

3.6 Launch arguments preview

  • For games that use launch arguments, Launch arguments preview in the Settings tab shows the command line the server would be launched with under the current settings, without starting it.
  • Arguments you put in Extra arguments that aren't in the settings screen (e.g. -players=16 -useperfthreads) are passed through as-is at launch. Malformed values are flagged right in the preview.
  • Values such as passwords are masked as ***.

3.7 Accepting terms (Minecraft EULA, etc.)

  • If a game server has terms that require consent, an Agreement required dialog appears when you create the server or first start it. Read the original text, check the box, and click Agree and start.
  • Consent can only be given from the GUI or CLI on this PC. If someone tries to start the server from Discord before the terms are accepted, accept them on the PC first.

4. Backups and scheduled tasks

These live in the Backups tab, which appears only for games that support backups.

4.1 Backups

  • Back up now compresses the world and save files. The game module decides what gets saved (for Minecraft, the world folders). If the server is running, a save command (Minecraft save-all, etc.) is sent to the game first.
  • The backup list shows each backup's kind: Manual, Scheduled, Before update, Before restore.
  • Restore is available only while the server is stopped. The current state is backed up once more before restoring, so even a wrongly chosen backup can be undone.
  • Manual backups are excluded from automatic cleanup. The others (scheduled, before update, before restore) are kept up to the Scheduled backups to keep count (10 by default), deleting the oldest first.
  • Backup files are stored inside the server (instance) folder. Deleting the server also deletes its backups, so copy important backups elsewhere.

4.2 Scheduled tasks

Use Add task to run the following automatically at a fixed interval (every N minutes) or at a set time every day (HH:MM, in the PC's time zone).

TaskWhat it does
BackupBacks up while the server is running
RestartRestarts the server if it's running
AnnounceSends a message in game if the server is running
UpdateChecks for a game server update and applies it if there is one (restarts the server if it was running)
  • Restart and update tasks can warn players in game ahead of time (e.g. 10, 5, 1 minutes before). Announcements and warnings are only available when the game supports an announce command.
  • When the daemon restarts, interval tasks start counting again from then. Tasks whose time passed while the daemon was off are not run in a batch afterwards.

5. Letting your friends connect

If you've set up the game server but your friends can't get in, it's almost always one of these three cases.

5.1 Friends on the same Wi-Fi (LAN)

No extra setup needed. Just connect using the server PC's private IP (e.g. 192.168.0.10) and the port.

5.2 Friends outside — router supports port forwarding

  1. In your router's admin page, forward the game port to the server PC's private IP.
  2. Address to share with friends: <public IP>:<port>. You can find your public IP on sites like whatismyip.com.
  3. Allow the port for inbound traffic in Windows Firewall.

5.3 Friends outside — port forwarding not possible

Even on networks where port forwarding is blocked — school/company networks, ISP CGNAT, guest Wi-Fi, and so on — you can still start and stop servers from Discord through the Cloud Relay.

  • On the GUI's Discord screen, use Connect a Discord server to get a code, then enter it with the /saba connect slash command in your Discord server.
  • After that, your friends can start and stop servers or check their status from Discord.
  • See Discord Bot & Cloud Relay for the detailed flow.

🛡️ The Cloud Relay forwards only control commands (start/stop/status, etc.), not game traffic. If your friends can't connect to the game server directly, you may also need an additional solution (e.g. ZeroTier, Tailscale).


6. Using the Discord bot — one-page summary

Once the bot is paired, much of your day-to-day operation can be done from Discord without opening the GUI. Message commands take the form <prefix> <server> <command>, and the default prefix is !saba (you can change it in the bot settings). For <server>, use the server name or the game name (alias).

SituationWhat you type in Discord (default prefix)
"Let's fire up MC today"!saba minecraft start
"Is the server up right now?"!saba minecraft status
"Let's shut it down"!saba minecraft stop
"Which servers are there?"!saba list
"What can I type?"!saba help

Each server also gets its own /<server name> slash command. The full command list and how to register aliases are covered in Commands.

For setup, pairing, and how the relay works for the bot itself, see Discord Bot & Cloud Relay.


7. Updates and cleanup

7.1 Updating Saba-chan

  • Saba-chan periodically checks a signed release list and shows an Updates Available notification in the GUI when a new version is out.
  • In Settings → Saba Storage, the Components tab lets you download and apply updates per component (core, modules, extensions, etc.). For components whose running files must be replaced, such as the core, the updater briefly stops the daemon, swaps the files, and starts it again.
  • Because the daemon restarts, we recommend applying updates at a quiet time.

7.2 Updating a game server

  • When a new version of the game server is available, an Update button appears on the server screen. It can be applied while the server is stopped.
  • A Before update backup is made automatically first (for games that support backups).
  • You can also apply updates automatically at a set time with the Update scheduled task (§4.2).

7.3 Deleting a server

  • Delete it with Delete server on the Info tab. A server can only be deleted after it's stopped.
  • For servers Saba-chan downloaded and created, the server folder (including game server files and backups) is deleted entirely. Copy any worlds or backups you need first.
  • For servers linked with Import an existing server, the game files in the original folder are left in place.

7.4 Uninstalling Saba-chan

  • Uninstall Saba-chan from Windows Settings → Apps → Installed apps.
  • The uninstaller removes the install folder, the data folder (%APPDATA%\saba-chan\), and shortcuts. Files and backups of servers created by Saba-chan also live in this data folder by default, so copy any worlds you want to keep before uninstalling. If you tick Keep game servers and settings, server files, worlds, backups, settings and the Discord connection stay so a reinstall picks them up. If another Saba-chan install still uses the data folder, it is left in place.

8. When something goes wrong

  • If red lines show up in the console, start by searching for that exact message. Saba-chan shows the game server's own output without modifying it.
  • Check server and Diagnose log on the Info tab check for configuration problems and known errors in recent logs.
  • If that doesn't help, the Troubleshooting page collects common scenarios and how to resolve them.
  • If you run into a new issue, please file it on GitHub Issues along with the console output. GUI logs are stored in %APPDATA%\saba-chan\logs\, and you can open that folder with Open logs folder in the window that appears when you click the daemon status at the top. Attaching those files makes diagnosis much faster.

Next: Discord Bot & Cloud Relay or Commands.