The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →You can run a persistent Soulmask server on Linux with SteamCMD, a non-root service account, the Linux dedicated-server depot, two UDP ports, and a systemd service. Install the files under a persistent directory such as /opt/soulmask, launch with the server name, player limit, passwords, game mode and ports, then keep WS/Saved on storage that survives reboots.
Prefer not to run the server on your own PC? Godlike.Host offers hosted Soulmask servers with free DDoS protection and up to three free backups a day.
The procedure below uses the commonly documented Linux app ID 3017300, game UDP port 8777 and query UDP port 27015. Confirm the app ID and file names in your own SteamCMD output because depot contents and launcher names can change.
As an Amazon Associate I earn from qualifying purchases.
What you need before installing
Soulmask’s Steam listing publishes a 64-bit operating system, 16 GB of RAM minimum, 24 GB recommended, 25 GB of available storage and an SSD preference. Those figures describe the game’s published baseline, not a guaranteed player capacity for a dedicated server. Actual headroom depends on the world, simulation load, player count, mods and what else runs on the machine.
| Item | Published or documented value | How to use it |
|---|---|---|
| Operating system | 64-bit operating system | Use a current 64-bit Linux distribution and keep it patched. |
| Memory | 16 GB minimum; 24 GB recommended | Reserve memory for the server rather than filling the machine with other services. |
| Storage | 25 GB available; SSD preferred | Leave additional room for updates, logs, world data and backups. |
| Linux depot | SteamCMD app ID 3017300 in community documentation | Verify the ID and successful download in SteamCMD output. |
| Common network ports | Game UDP 8777; query UDP 27015 | Use the same pair in the launcher, host firewall and router. |
You also need shell access with administrative privileges, a stable private IP if the server is behind a router, and a separate machine or network for testing. Do not run the game process as root. A dedicated service account limits the damage from an exploited process and keeps ownership of saves predictable.
#1 Best Overall
- Ideal for high speed, low power storage
- Gen 4x4 NVMe PCle performance
- Up to 6,000MB/s read, 4,000MB/s write
- Includes Acronis cloning software
- 5-year limited warranty
Create the service account and directory layout
The examples use an account named steam and a server directory under /opt/soulmask. Choose another path if your Linux distribution reserves /opt, but use one persistent filesystem and record it; changing working directories later is a common cause of missing configuration and saves.
sudo useradd --system --create-home --home-dir /opt/steam --shell /usr/sbin/nologin steamsudo mkdir -p /opt/soulmask/serversudo chown -R steam:steam /opt/soulmask /opt/steam- Install administrative packages as root, but run SteamCMD and the game as
steam.
Keep the account’s home and the server files on storage that is mounted before the service starts. If you use a separate disk, give it a stable mount entry and test a reboot before inviting players.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Install SteamCMD and download the Linux server
Install SteamCMD using your distribution’s supported package method. On Ubuntu-family systems, administrators commonly enable the repository that contains SteamCMD and then install it with the package manager; the exact repository name varies by release. Verify that the resulting steamcmd.sh path is executable before attempting the depot download.
Run the download as the service account. This command creates or updates the installation in /opt/soulmask/server:
sudo -u steam /path/to/steamcmd.sh +login anonymous +force_install_dir /opt/soulmask/server +app_update 3017300 validate +quit
Replace /path/to/steamcmd.sh with the path installed on your system. The important details are the anonymous login, the forced installation directory, app ID 3017300, validation, and a clean quit. Watch the complete output. It should show a successful update or validation and the depot files being written to the directory you selected.
If SteamCMD rejects 3017300, do not keep changing Linux permissions or launch flags. Confirm the current dedicated-server listing and the app ID shown by SteamCMD, then rerun the command with the current value. Some hosting images and older guides retain obsolete depot IDs. The Windows documentation commonly lists 3017310; that is not the Linux value used in this procedure.
Run the update again whenever the client receives a version-changing update. Update the server and clients together when possible, and validate files after the update so a partial download is not mistaken for a configuration error.
Rank #2
- This product has been replaced by our latest generation. Please search for the SANDISK Optimus GX 7100 NVMe SSD
- HIGH-OCTANE GAMING. Experience speeds up to 7,250MB/s read and 6,900MB/s write (1-2TB models), with up to 35% faster performance than previous generation.
- PURPOSE-BUILT. Designed for serious on-the-go gamers, with a PCIe Gen4 interface and SANDISK’s next generation TLC 3D NAND.
- MORE TIME TO CLEAR THAT CHECKPOINT. Built with laptops and handheld gaming devices in mind, with up to 100% more power efficiency over the previous generation.
- DO MORE WITH DASHBOARD. Ensure your drive is optimized for prime performance with the downloadable WD_BLACK Dashboard (Windows only).
Inspect the delivered files before adding mods
List the installation as the steam account:
sudo -u steam find /opt/soulmask/server -maxdepth 2 -type f | sort
Look for the Linux launcher, commonly StartServer.sh, or the executable named WSServer-Linux-Shipping. Depot layouts can change, so use the file actually delivered rather than copying a path from an older guide. If a shell launcher exists, make it executable:
sudo -u steam chmod +x /opt/soulmask/server/StartServer.sh
Start with an unmodified installation. A short name, a small player limit and strong temporary passwords make the first test easier to diagnose. For example:
cd /opt/soulmask/server
./StartServer.sh -SteamServerName="Linux Test Realm" -MaxPlayers=20 -PSW="ChangeThisJoinPassword7!" -adminpsw="ChangeThisAdminPassword8!" -pve -Port=8777 -QueryPort=27015
If your depot does not include StartServer.sh, invoke WSServer-Linux-Shipping with the same arguments, or inspect the supplied launcher for the intended entry point. Keep this first run in the foreground. Read the earliest error rather than jumping to later warnings: bind failures, missing shared libraries, an invalid working directory and permission errors usually appear near the start of the log.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Do not paste real passwords into public documentation or leave them in shell history on a shared machine. After the test, replace the examples, restrict access to the service definition, and rotate credentials if they were exposed.
Choose and document one UDP port pair
The commonly documented pair is game UDP 8777 and query UDP 27015. Some container references use 27050 and 27051 instead. Either pair can be workable when the server, firewall and router agree; mixing values is what causes many invisible servers. This guide uses 8777 for game traffic and 27015 for query traffic throughout.
- Game port:
8777/udp, supplied as-Port=8777. - Query port:
27015/udp, supplied as-QueryPort=27015. - Protocol: both rules are UDP. A TCP-only rule does not publish the server browser response.
If another application already occupies a port, choose another unprivileged port above 1024 and change every reference at once. Write the selected pair in your operations notes so a later firewall edit does not silently drift from the launcher.
Persist the world and Linux configuration
Soulmask stores its Linux configuration under WS/Saved/Config/LinuxServer. The broader WS/Saved directory contains the world database and other state that must survive a restart. Never place that directory in a temporary container layer or an ephemeral filesystem.
Recommended Free Tools
Rank #3
- Solid state performance with up to 800MB/s read speeds in a portable drive. (Based on internal testing; performance may be lower depending on host device, interface, usage conditions and other factors. 1MB=1,000,000 bytes.)
- Back up your content and memories on a storage solution that fits seamlessly into your mobile lifestyle.
- Take it with you on your adventures—up to two-meter drop protection means this durable drive can take a beating. (Based on internal testing.)
- Secure it to your belt loop or backpack for extra peace of mind thanks to the tough rubber hook.
- From Sandisk, a brand professional photographers trust to take on assignments.
After the first successful start and clean shutdown, inspect ownership:
sudo chown -R steam:steam /opt/soulmask/server/WS/Saved
sudo find /opt/soulmask/server/WS/Saved -maxdepth 2 -type d -ls
Create a backup while the process is stopped so database files are not changing during the copy:
sudo systemctl stop soulmask
sudo tar -C /opt/soulmask/server -czf /opt/soulmask/saved-$(date +%F-%H%M).tar.gz WS/Saved
sudo systemctl start soulmask
Keep several dated backups on storage separate from the live world. Before changing gameplay multipliers, replacing the depot or installing a mod, take another backup and confirm that you can list and extract it.
Run the server automatically with systemd
A systemd unit starts the world after boot, restarts it after an unexpected failure and gives you a consistent place to inspect status and logs. Create /etc/systemd/system/soulmask.service as root:
[Unit]
Description=Soulmask dedicated server
Wants=network-online.target
After=network-online.target
[Service]
User=steam
Group=steam
WorkingDirectory=/opt/soulmask/server
ExecStart=/opt/soulmask/server/StartServer.sh -SteamServerName="Linux Realm" -MaxPlayers=20 -PSW="ReplaceWithJoinPassword" -adminpsw="ReplaceWithAdminPassword" -pve -Port=8777 -QueryPort=27015
Restart=on-failure
RestartSec=10
KillSignal=SIGINT
TimeoutStopSec=120
[Install]
WantedBy=multi-user.target
If your installation uses WSServer-Linux-Shipping instead of the shell launcher, change only the ExecStart path after testing that executable in the foreground. Keep WorkingDirectory pointed at the directory containing the delivered WS files; an otherwise correct executable can fail when started from the wrong directory.
Protect the unit file because it contains command-line credentials:
sudo chown root:root /etc/systemd/system/soulmask.service
sudo chmod 600 /etc/systemd/system/soulmask.service
sudo systemctl daemon-reload
sudo systemctl enable --now soulmask
sudo systemctl status soulmask --no-pager
Follow the live journal during the first managed start:
Rank #4
- HUGE SPEED BOOST: Get random read/write speeds that are 40%/55% faster than 980 PRO; Experience up to 1400K/1550K IOPS, while sequential read/write speeds up to 7,450/6,900 MB/s reach near the max performance of PCIe 4.0*
- BREAKTHROUGH POWER EFFICIENCY: Use less power and get more performance; Enjoy up to 50% improved performance per watt over 980 PRO, plus optimal power efficiency with max PCIe 4.0 performance**
- SMART THERMAL CONTROL: Samsung's own nickel-coated controller delivers effective thermal control; With its slim size, 990 PRO is a perfect fit for desktops and laptops that meet the PCI-SIG D8 standard***
- THE CHAMPION MAKER: Up to 65% improvement in random performance enables faster loads for an ultimate gaming experience on PS5 and DirectStorage PC games****
- SAMSUNG MAGICIAN SOFTWARE: Get the most out of your SSD with Samsung Magician's advanced yet intuitive optimization tools; Monitor drive health, protect valuable data, and receive important updates for your 990 PRO
sudo journalctl -u soulmask -f
Use sudo systemctl stop soulmask for maintenance and allow the process to exit cleanly. The stop timeout gives the world database time to flush. Avoid killing the process or rebooting while it is writing saves unless you have no alternative.
Open the host firewall and router
On a host using UFW, allow the exact UDP pair:
sudo ufw allow 8777/udp
sudo ufw allow 27015/udp
sudo ufw status verbose
Firewalld and cloud security groups use different commands, but the rule requirements are the same: inbound UDP on the game and query ports, limited to the appropriate source ranges if the server is LAN-only. Do not add TCP rules as a substitute.
For an internet server behind a home router, forward UDP 8777 and UDP 27015 to the Linux host’s private IP address. Reserve that address with a DHCP reservation or configure a static address; otherwise a reboot can send the forwarding rules to another device. A server intended only for a LAN should not be forwarded publicly.
Cloud or VPS hosting adds one more firewall layer: the provider’s security group or network ACL must allow the same UDP values. Confirm that the instance has a public IPv4 or IPv6 route and that the provider permits inbound UDP before troubleshooting the game process.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Verify locally, then test from another network
- Check that systemd reports the process as running and inspect the journal for bind or registration errors.
- Confirm the process is listening on the selected UDP ports with your distribution’s socket tool, for example
sudo ss -lunp | grep -E '8777|27015'. - Connect from a second device on the same LAN using the server’s private address. This separates game configuration problems from router forwarding.
- Test from a phone hotspot or another external network. Search by the exact server name and verify that the query port is reachable.
- Only after a clean connection should you raise the player limit, alter gameplay settings or add Workshop content.
If the server is not listed but a direct LAN connection works, focus on the query path, host firewall, router forwarding and public address. If it fails locally as well, return to the foreground launch and its first error.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Add gameplay settings and mods incrementally
The Linux configuration directory is WS/Saved/Config/LinuxServer. Back it up before editing supplied templates or GameXishu.json. Change one group of settings at a time, restart cleanly, and keep the previous file so you can roll back without guessing which edit broke startup.
Soulmask supports Steam Workshop content and Modkits. Treat the unmodified server as your baseline:
Best Value
- High-Efficiency Performance: The SSD 1TB SATA adopts 3D NAND flash memory, which achieves a read speed of up to 560MB/s and a write speed of up to 510MB/s. Get a faster data transfer experience and improve your work efficiency.
- Upgrate Your Computer: The SATA 1TB SSD achieved faster app load and response times, and faster boot-up and shut-down, compared to HDDs. The internal SSD adopts advanced SLC Cache Technology, which improves overall computer performance.
- Reliability and Stability: The 2.5 SSD 1TB supports garbage collection, advanced wear-leveling technology, RAID, ECC, TRIM, and S.M.A.R.T, which makes the SATA SSD more reliable and stable. With the characteristics of shockproof, the SSD hard drive can keep your data safe, without worry even if your computer drops.
- Wide Compatibility: The 2.5'' SSD built-in SATA III 6Gb/S interfaces, witch backwards compatible with SATA II and SATA interfaces. The Internal SATA SSD is compatible with Windows, Linux, and Mac OS, and compatible with laptops, desktops, and all-in-one computers.
- 3-Year Service: Our SSDs come with a 3 years after-sales service and lifetime technical support. If you have any questions, please contact us and we will sincerely and professionally solve the problem for you.
- Stop the systemd service and back up
WS/Saved. - Add one mod or a small, documented set.
- Start in the foreground or watch
journalctl -u soulmask -f. - Join with a test account and confirm the world loads.
- Record the mod order and retain a copy of the working configuration.
When a mod causes an immediate exit, remove the newest change first, restore the known-good backup and validate the depot before trying another combination. Do not troubleshoot several new mods and gameplay overrides simultaneously.
Free tools Windows power users keep installed
One-click scans. No signup required.
Troubleshooting by symptom
The server does not appear in the browser
- Check that the process is running and that it bound to the configured game and query ports.
- Confirm both firewall rules are UDP and use the same numbers as
-Portand-QueryPort. - Verify the router forwards to the host’s current private IP, not an old DHCP address.
- For a VPS, check the provider security group and whether inbound UDP is permitted.
- Test from outside the LAN; a local browser test cannot prove that internet forwarding works.
The process exits immediately
- Run the launcher in the foreground as
steamand capture the first error. - Check executable permissions with
ls -land applychmod +xto the shell launcher if necessary. - Confirm required shared libraries are installed using your distribution’s package guidance.
- Verify
WorkingDirectorycontains the expectedWSfiles. - Remove recent mods or configuration edits and retry the unmodified launch.
The world does not save
- Stop the process gracefully before inspecting files.
- Check that
steamownsWS/Savedand has write permission. - Confirm the service points to the persistent installation, not a temporary container volume.
- Check available disk space and verify that the world database changes after a controlled save.
- Restore the most recent known-good backup if the database is damaged.
Players receive version errors
Update the server depot and clients together, then run SteamCMD validation. A version mismatch is not normally fixed by changing ports, passwords or gameplay settings.
The service starts after boot but players cannot connect
Inspect systemctl status soulmask and the journal, then check the listening sockets and firewall rules. A service can be active while its launcher has failed to bind, or while the router still forwards to a previous private IP.
Updates, backups and operational routine
Before every depot update, stop the service, archive WS/Saved and copy the systemd unit and Linux configuration to your backup location. Run SteamCMD with validate, inspect the output for errors, then start the service and watch the journal until registration completes. Keep a short change log containing the depot update date, launcher arguments, port pair, configuration edits and mod versions.
Monitor disk space because logs, backups and world data grow independently of the published 25 GB installation baseline. Test restoration periodically on a separate directory rather than assuming that an archive is usable. When changing the public address or router, update your players only after an external-network test succeeds.
When a VPS or managed host is the better fit
Self-hosting is practical when you control a machine that can remain online, configure UDP forwarding and perform backups. A Linux VPS or managed game-server service can be simpler when your home connection uses carrier-grade NAT, blocks inbound UDP, changes its public address frequently or cannot run continuously.
Compare alternatives on the factors that affect this game specifically: monthly cost, CPU and RAM headroom, SSD-backed storage, public IPv4 or IPv6, inbound UDP support, backup controls, restart tooling, mod support and how easily you can edit firewall rules. Provider capacity and pricing change, so verify those details directly before committing. Regardless of platform, keep the same discipline: persistent WS/Saved, least-privilege operation, documented ports and a tested restore path.
The Bottom Line
The reliable Linux pattern is SteamCMD app ID 3017300, a non-root service account, persistent WS/Saved, consistent UDP ports (8777 and 27015 in this guide), and a systemd supervisor. Prove the unmodified server works locally and externally before adding mods or tuning the world.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




