Soulmask guide

Soulmask Server Settings: Startup Parameters and GameXishu.json

By the ChicagoServers team · Updated · 8 min read

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.

Quick answer
  • Install the dedicated server with SteamCMD: app 3017310 (Windows) or 3017300 (Linux). The first argument to the server is the map, Level01_Main.
  • Must-have parameters: -server, -forcepassthrough, -SteamServerName, -MaxPlayers, -PSW, -adminpsw, and either -pve or -pvp.
  • Default ports: game 8777 UDP, query 27015 UDP, and the local maintenance (telnet) port 18888 TCP 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
  1. How Soulmask server settings are layered
  2. Installing the server files
  3. Startup parameters that matter
  4. Editing GameXishu.json safely
  5. Key GameXishu.json settings
  6. Saves, backups and shutting down
  7. Adding Workshop mods
  8. Frequently asked questions
  9. References

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 locationWindows pathLinux path
Engine.iniWS\Saved\Config\WindowsServer\Engine.iniWS/Saved/Config/LinuxServer/Engine.ini
GameXishu.jsonWS\Saved\GameplaySettings\GameXishu.jsonWS/Saved/GameplaySettings/GameXishu.json
Server logWS\Saved\Logs\WS.logWS/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

ParameterWhat it doesDefault / notes
-server, -logDedicated mode, console output-forcepassthrough must also be present
-SteamServerName="Name"Name in the server browserUNNAMED_SERVER; quote names with spaces
-MaxPlayers=NPlayer cap20 in Engine.ini; hosts state a ceiling of 70
-PSW="pass"Join passwordOmit for a public server
-adminpsw="pass"Password for the in-game GM panelSet it before first boot
-pve / -pvpCombat modepvp=False in Engine.ini
-Port, -QueryPortGame and Steam query ports (UDP)8777, 27015
-EchoPortMaintenance telnet port (TCP)18888; keep it local
-MULTIHOME=IPBind to one address0.0.0.0 by default
-saving=SECONDSHow often game objects are written to the database600
-backup=SECONDSHow often the database is written to disk900
-initbackupBack up saves at every startFlag, no value
-backupinterval=MINUTESInterval between world-save backupsListed in the wiki notes with no default
-GongHuiMaxMember=NMaximum tribe membersHost references give differing defaults
-rconpsw, -rconportOptional RCONPort 19000

Here is a complete Windows-style example for the base map. Put it in your start script.

Example launch line (adjust values)
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 -initbackup

The 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:

  1. Stop the server completely. The server rewrites the file on shutdown and will overwrite live edits.
  2. Copy the file somewhere safe.
  3. Edit it in an editor with JSON validation. One missing comma can make the game ignore the file or fall back to defaults.
  4. 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.
  5. 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.

KeyControlsDefault
ExpRatioAll XP (also ShaGuaiExpRatio for kills, MJExpRatio for mask XP)1
MaxLevelMaximum character level60
CaiJiDiaoLuoRatio, FaMuDiaoLuoRatio, CaiKuangDiaoLuoRatioGathering, wood and mining yields1
ShiWuXiaoHaoRatio, ShuiXiaoHaoRatioFood and water consumption1
NaiJiuXiShuEquipment durability1
GeRenMaxZhaoMuCount / GongHuiMaxZhaoMuCountTribesmen per player / per tribe6 / 50
RuQinKaiGuanNPC raids on or off1
JianZhuFuLanKaiGuanBuilding decay on or off1
GameWorldTimePowerTime flow; XGamingServer says 24 means one real hour per game day24
WuLiYouHuaDistPhysics optimization distance6666
KaiQiKuaFuCross-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.

References