Soulmask Server Settings: Startup Parameters and GameXishu.json
Soulmask dedicated servers are configured in three layers: startup parameters (name, password, ports, PvE or PvP, save timing), Engine.ini (the same basics as defaults), and GameXishu.json (every gameplay multiplier, with key names in Chinese pinyin). Startup parameters win over Engine.ini, and GameXishu.json only exists after the first successful start.
Checked against the Soulmask wiki's private server notes, a developer statement on Steam and host references, current as of November 2026. One caution up front: only Survival Mode runs on private servers right now, so Tribe and Warrior mode settings are not something you can switch on with a flag.
- Install the dedicated server with SteamCMD: app
3017310(Windows) or3017300(Linux). The first argument to the server is the map,Level01_Main. - Must-have parameters:
-server,-forcepassthrough,-SteamServerName,-MaxPlayers,-PSW,-adminpsw, and either-pveor-pvp. - Default ports: game
8777UDP, query27015UDP, and the local maintenance (telnet) port18888TCP that should not be public. - Gameplay multipliers are in
WS/Saved/GameplaySettings/GameXishu.json. Stop the server before editing and keep the JSON valid.
On this page
How Soulmask server settings are layered
Settings can come from three places, and knowing which one wins saves a lot of confusion. Startup parameters have the highest priority, then Engine.ini under [Dedicated.Settings], then the defaults. GameXishu.json is separate: it holds gameplay tuning that has no startup flag.
| File or location | Windows path | Linux path |
|---|---|---|
Engine.ini | WS\Saved\Config\WindowsServer\Engine.ini | WS/Saved/Config/LinuxServer/Engine.ini |
GameXishu.json | WS\Saved\GameplaySettings\GameXishu.json | WS/Saved/GameplaySettings/GameXishu.json |
| Server log | WS\Saved\Logs\WS.log | WS/Saved/Logs/WS.log |
The wiki's Engine.ini defaults are SteamServerName=UNNAMED_SERVER, MaxPlayers=20, pvp=False, backup=900 and saving=600, with Port=8777 under [URL] and GameServerQueryPort=27015 under [OnlineSubsystemSteam]. The config folder and GameXishu.json are generated on first run, so start and stop the server once if they are missing.
Installing the server files
Use SteamCMD with an anonymous login: steamcmd +login anonymous +app_update 3017310 validate +quit for Windows, or app 3017300 for Linux. The game's own app ID, 2646460, belongs in a steam_appid.txt file in WS/Binaries/Win64; if the server fails with a Steam initialisation error, check that the file exists and contains that number.
Each instance needs its own start script. The first boot downloads a lot of data and can take 20 to 30 minutes according to one host, so wait for the console to say the server is ready before testing. Players connect from Multiplayer, Direct Connect using your IP and game port.
Startup parameters that matter
| Parameter | What it does | Default / notes |
|---|---|---|
-server, -log | Dedicated mode, console output | -forcepassthrough must also be present |
-SteamServerName="Name" | Name in the server browser | UNNAMED_SERVER; quote names with spaces |
-MaxPlayers=N | Player cap | 20 in Engine.ini; hosts state a ceiling of 70 |
-PSW="pass" | Join password | Omit for a public server |
-adminpsw="pass" | Password for the in-game GM panel | Set it before first boot |
-pve / -pvp | Combat mode | pvp=False in Engine.ini |
-Port, -QueryPort | Game and Steam query ports (UDP) | 8777, 27015 |
-EchoPort | Maintenance telnet port (TCP) | 18888; keep it local |
-MULTIHOME=IP | Bind to one address | 0.0.0.0 by default |
-saving=SECONDS | How often game objects are written to the database | 600 |
-backup=SECONDS | How often the database is written to disk | 900 |
-initbackup | Back up saves at every start | Flag, no value |
-backupinterval=MINUTES | Interval between world-save backups | Listed in the wiki notes with no default |
-GongHuiMaxMember=N | Maximum tribe members | Host references give differing defaults |
-rconpsw, -rconport | Optional RCON | Port 19000 |
Here is a complete Windows-style example for the base map. Put it in your start script.
WSServer-Win64-Shipping.exe Level01_Main -server -log -UTF8Output -forcepassthrough -MULTIHOME=0.0.0.0 -Port=8777 -QueryPort=27015 -EchoPort=18888 -SteamServerName="My Soulmask Server" -MaxPlayers=30 -PSW="joinpassword" -adminpsw="adminpassword" -pve -saving=600 -backup=900 -initbackupThe Shifting Sands DLC map uses DLC_Level01_Main as the map argument instead of Level01_Main. CampFire's developers said a private server running that map needs its own dedicated server, so it is a separate instance rather than a toggle.
Editing GameXishu.json safely
This is where almost every gameplay rate lives. Follow this order every time:
- Stop the server completely. The server rewrites the file on shutdown and will overwrite live edits.
- Copy the file somewhere safe.
- Edit it in an editor with JSON validation. One missing comma can make the game ignore the file or fall back to defaults.
- Change each key everywhere it appears. A host reference reports every value appears three times in the file, and another describes numbered sections 0, 1 and 2.
- Start the server and test with a few changes at a time.
If you would rather not edit JSON, the in-game GM menu has a coefficient settings page. Press ~, run gm key YOUR_ADMIN_PASSWORD, and open it. A host reference says those changes persist through restarts and apply without one.
Key GameXishu.json settings
Key names are pinyin. Multipliers default to 1 unless noted; the defaults below are from the 4Netplayers key table.
| Key | Controls | Default |
|---|---|---|
ExpRatio | All XP (also ShaGuaiExpRatio for kills, MJExpRatio for mask XP) | 1 |
MaxLevel | Maximum character level | 60 |
CaiJiDiaoLuoRatio, FaMuDiaoLuoRatio, CaiKuangDiaoLuoRatio | Gathering, wood and mining yields | 1 |
ShiWuXiaoHaoRatio, ShuiXiaoHaoRatio | Food and water consumption | 1 |
NaiJiuXiShu | Equipment durability | 1 |
GeRenMaxZhaoMuCount / GongHuiMaxZhaoMuCount | Tribesmen per player / per tribe | 6 / 50 |
RuQinKaiGuan | NPC raids on or off | 1 |
JianZhuFuLanKaiGuan | Building decay on or off | 1 |
GameWorldTimePower | Time flow; XGamingServer says 24 means one real hour per game day | 24 |
WuLiYouHuaDist | Physics optimization distance | 6666 |
KaiQiKuaFu | Cross-server travel (see the clustering guide) | 0 |
Tribesman counts are the biggest performance lever. When tick rate drops, lower GeRenMaxZhaoMuCount and GongHuiMaxZhaoMuCount before anything else, and consider a scheduled daily restart during quiet hours.
Saves, backups and shutting down
Two timers protect your world. -saving writes game objects to the database, and -backup writes the database to disk. LOW.MS warns that very low -saving values (below 300) can cause micro-stutters, and that long backup intervals risk more lost progress after a crash. -initbackup makes a copy at every start.
The server never deletes old backups on its own, so prune them from time to time. Backups written by the game sit on the same disk as the server, so keep a separate copy of the WS/Saved folder, especially before updates. Hosting with ChicagoServers? The Soulmask server hosting page lists what is included, such as free server backups and SFTP file access.
Never close the server window to stop it, because that can roll the world back. Use the maintenance port instead: telnet 127.0.0.1 18888, then saveworld 1 and quit 180 (shutdown after a 180-second countdown), or use a stop control that performs a clean shutdown.
Adding Workshop mods
Mods use the -mod parameter with Steam Workshop IDs, comma-separated and without spaces: -mod="ID1,ID2,ID3". The ID is the number after filedetails/?id= in the Workshop URL. Mod files live in WS/Mods/, and a host reports you can copy a mod folder from your client's WS/Mods/ to the server if it cannot download one.
Players must subscribe to the same mods, and a major game update can disable a mod until its author updates it. Add one mod at a time.
Frequently asked questions
Where is the Soulmask GameXishu.json file?
At WS/Saved/GameplaySettings/GameXishu.json in the server directory. It is generated on first run, so start the server once if it is missing.
How many players can a Soulmask server hold?
Engine.ini defaults to 20. Host references state a ceiling of 70, set with -MaxPlayers. Performance, not the cap, is usually the limit.
What ports does a Soulmask server use?
Game port 8777 UDP and query port 27015 UDP by default. The maintenance (telnet) port 18888 TCP is meant for local use only, and RCON, if enabled, uses 19000 TCP.
Can I run Tribe or Warrior mode on a private server?
Not currently. CampFire's developers disabled mode-switching on private servers and said Tribe and Warrior mode would come in a future update, so only Survival Mode is available.