各位玩家好!
很多朋友想知道如何搭建私人服务器游玩,请查看WIKI开服攻略:
https://soulmask.fandom.com/zh/wiki/私人服务器
私人服务器是通过个人搭建的,为多人网络联机游戏提供支持的非官方服务器。如今私服供应商GPORTAL和CLAWCLOUD已支持一键租用及配置,服务器租赁链接如下
ClawCloud:https://claw.cloud/store/soulmask
G-portal:https://www.g-portal.com/soulmask

服务器运行环境
服务器运行于 64 位 Linux(Server) / Windows(Server) 操作系统
单台服务器可以运行多个游戏实例
单个游戏进程约需要 16 GB 内存,2-4 个 CPU 核心
带宽要求,目前每个游戏服务器进出口带宽约 100 kbps/玩家
游戏包大小约 1-2 GB,运行时需要有 20 GB 左右空闲硬盘空间
游戏使用 Steam 平台, 需要服务器安装 steamcmd 工具
Windows 服务器需要安装 telnet 工具
每个游戏进程需要开放两个 UDP 端口(默认 8777 和 27015,可以通过游戏命令行参数修改)

安装服务器及所需工具(以 Windows 为例)
1. 在服务器里新建一个为 SteamCMD 准备的文件夹。
2. 下载适用于 Windows 系统的 SteamCMD
3. 提取 zip 中的文件至C盘根目录的文件夹,如图所示:

4. 在Windows中搜索cmd,运行命令提示符
5. 在命令行中打开steamcmd安装路径,举例,输入如下指令:cd C:\steamcmd

6. 使用以下命令下载专用服务器:
steamcmd +login anonymous +app_update 3017310 validate +quit

等待一段时间,服务器即可安装完毕,提示success表示下载成功。

7. 安装 telnet 工具
安装方法可以参考这篇文档。

打开StartServer.bat运行服务器,路径:C:\steamcmd\steamapps\common\Soulmask Dedicated Server For Windows\StartServer.bat


1. 启动 telnet 工具连接服务器
在 Windows 中搜索 cmd,运行命令提示符。然后输入:
telnet 127.0.0.1 18888
2. 关闭服务器
输入以下命令:
quit 180
服务器将于 3 分钟后关闭。
请不要直接关闭服务器窗口,否则可能导致回档。

1. 关闭服务器(参考Wiki)
2. 等待服务器关闭后, 通过steamcmd更新服务器包
Windows with SteamCMD:
steamcmd +login anonymous +app_update 3017310 validate +quit
Linux with SteamCMD:
steamcmd +login anonymous +app_update 3017300 validate +quit
3. 更新完毕后, 启动服务器

1. 首先,你可以复制一份 StartServer.bat,用于编辑并自定义该文件。
2. 编辑 StartServer - 副本.bat。
删除原来的文件内容,替换为:
call StartServer.bat
然后把需要自定义修改的参数添加在行尾,参数与参数之间用空格间隔。
3. 比较常用的参数:
-SteamServerName=\"your server name\"【服务器名字】
-MaxPlayers=50最大玩家数量-PSW=\"yourpassword\"【加入服务器的密码】
-adminpsw=\"yourGMpassword\"【开启 GM 权限的密码】
-pvp【设置为PvP模式】
-pve【设置为PvE模式】
4. 最后 StartServer - 副本.bat 可能的样子:
call StartServer.bat -SteamServerName=\"your server name\" -MaxPlayers=50 -PSW=\"yourpassword\" -adminpsw=\"yourGMpassword\" -pve
5. 选择文件 - 另存为,下方的“编码”选择 ANSI,点击保存。(如果不是这个编码,中文服务器名可能会乱码)

6. 运行 StartServer - 副本.bat,服务器会以你的新设置启动。

Windows存档路径:WindowsServer/WS/Saved
Linux存档路径:LinuxServer/WS/Saved

第一个参数, 指定游戏场景名称, 目前只有一个, 即: Level01_Main


参考文档安装Windows with SteamCMD
https://developer.valvesoftware.com/wiki/SteamCMD#Windows
参考文档安装Linux with SteamCMD
https://developer.valvesoftware.com/wiki/SteamCMD#Linux
下载Dedicated server指令:
Windows with SteamCMD
steamcmd +login anonymous +app_update 3017310 validate +quit
Linux with SteamCMD
steamcmd +login anonymous +app_update 3017300 validate +quit
注意:每个游戏实例都需要一个独立的sh/bat启动, 在批处理文件中进行一些配置, 例如:
./StartServer.sh -SteamServerName='your server name' -MaxPlayers=50 -PSW='yourpassword' -adminpsw='yourGMpassword' -pve -Port=8777 -QueryPort=27015 -EchoPort=18888

Engine.ini
路径: WS\Saved\Config\WindowsServer\Engine.ini
服务器第一次运行过后, 会自动生成这个文件
如果没有这个路径, 或者找不到这个文件, 在WS\Saved\Config\WindowsServer\手动创建一个Engine.ini, 写入以下内容即可:
[URL]
Port=8777
[OnlineSubsystemSteam]
GameServerQueryPort=27015
[Dedicated.Settings]
SteamServerName=UNNAMED_SERVER
MaxPlayers=20
pvp=False
backup=900
saving=600

我按照说明安装好灵魂面甲专有服务器, 但是启动失败?
灵魂面甲服务器设计为仅支持steam平台, 因此服务器启动过程中必须正确初始化steam相关设置
如何确定服务器初始化steam是否成功完成?
查看服务器启动log文件(位于服务器安装目录下:/WS/Saved/Logs/WS.log)
约126行开始, 会有如下输出(初始化成功):
LogOnline: STEAM: [AppId: 2646460] Game Server API initialized 1 LogOnline: STEAM: Initializing SteamNetworking Layer LogOnline: STEAM: Missing P2PCleanupTimeout key in OnlineSubsystemSteam of DefaultEngine.ini, using default LogOnline: STEAM: AUTH: Steam Auth Enabled
初始化失败输出可能如下:
LogOnline: OSS: Creating online subsystem instance for: steam LogSteamShared: Warning: Steam Dedicated Server API failed to initialize. LogOnline: STEAM: [AppId: 0] Game Server API initialized 0 LogOnline: Warning: STEAM: Failed to initialize Steam, this could be due to a Steam server and client running on the same machine. Try running with -NOSTEAM on the cmdline to disable.
初始化失败原因一般如下:
缺少steam_appid.txt 此文件位于WS/Binaries/Win64/steam_appid.txt (文本文件, 内容只有一行数字, 为: 2646460)
-Port 或者-QueryPort 指定的端口无法使用
-MULTIHOME指定的IP不可用
服务器已经启动, 但是无法从服务器列表看到
发生这种情况一般是游戏端口(通过-Port指定, 或者默认8777) 查询端口(通过-QueryPort指定, 或者默认27015) 这两个端口无法访问
检查电脑防火墙, 是否开放服务器程序WSServer.exe的网络权限
检查电脑防火墙, 是否阻止了8777/27015的访问
如果电脑通过路由器上网, 还需要检查是否针对8777以及27015做了NAT映射
我如何知道服务器的邀请码是什么?
服务器的邀请码是一个Base36编码的GUID 长度25字符, 游戏服务器第一次运行会自动生成一个唯一的邀请码. (客户端在服务器列表中可以使用邀请码搜索到该服务器)
服务器启动过程中会将邀请码打印到Console和Log文件中, 可以通过查看服务器log文件(WS/Saved/Logs/WS.log)找到邀请码, 内容如下:
[2024.06.01-16.25.53:517][ 0]logStoreGamemode: Display: [SERVER UNIQUE ID:] 6U1WE0O933CC7H4RFBSQ8ND47.
6U1WE0O933CC7H4RFBSQ8ND47 即为该服务器的唯一邀请码
我应该如何成为游戏管理员?
从客户端 按~激活控制台输入
输入gm key 管理员密码(通过 -adminpsw 指定) 按下回车, 将打开gm控制面板
打开GM面板后,输入管理员密码,点击成为管理员
我如何在服务器封禁玩家
开启账号封禁功能, 有两种方式:
执行GM命令: gm EnableServerPermissionList 1 1
设置服务器启动命令行: -serverpm=2 (如果同时还要开启禁言功能, 使用 -serverpm=18)
执行GM命令: AddServerPermissionList 1 steamID
如何对玩家解除封禁
执行GM命令: RemoveServerPermissionList 1 steamID
如何保存游戏
要在服务器运行过程中保存世界存档需要执行GM命令
gm BaoCun
如何使用维护端口?
维护端口是一种简单维护服务器的方式, 通过命令行参数: -EchoPort指定维护端口. 在服务器运行过程中使用Telnet工具连接维护端口, 如下
执行Window运行命令: telnet 127.0.0.1 18888
进入到telnet界面, 输入help, 可以查看服务器可用的维护命令
30秒后关闭服务器, 输入: quit 30
保存, 输入: saveword 1

常用的GM命令
命令名命令行打开GM面板gm key [password]
加经验( [value] 填写想增加的数值,如 gm AddExp 99999)gm AddExp [value]
加面具经验( [value] 填写想增加的数值,如 gm AddExp 99999)gm Addmjexp [value]
加狩猎经验( [value] 填写想增加的数值,如 gm AddExp 99999)gm Addshoulieexp [value]
增加狩猎经验( [value] 填写想增加的数值,如 gm AddExp 99999)gm AddShouLieExp [value]
游戏角色洗点gm XiDian
游戏角色自杀gm ZiSha 1
游戏角色gm FuHuo
游戏角色删号gm shanhao
查看自己的位置GPS快速招募NPC(准心对准目标)gm ZhaoMu传送(举例:“gm Go 222 333 111” 即可传送X222 Y333 Z111座标)gm Go [position_x] [position_y] [position_z]
清理所有NPCgm ClearAllNpc
清除选中的目标gm ClearSelect
刷新范围内的植被gm ShuaXinZhiBei
显示自身的信息,品质、熟练度、天赋等gm ShowInfo 1
关闭显示角色的信息,品质、熟练度、天赋等gm ShowInfo 0
隐身gm SetAttr YinShen 1
关闭隐身gm SetAttr YinShen 0
修复面具节点gm JSMJ
解锁所有地图信息gm ShowMap
解锁所有科技树节点gm KeJiShu
显示蛮人入侵热度信息表gm ShowReDu
清理蛮人入侵所有热度gm ClearAllReDu
所在位置增加蛮人入侵热度( [value] 填写想增加的数值)gm AddReDu [value]
重置引导任务gm ChongZhiRenWu
查看服务器状态信息Debuginfo 1
关闭服务器状态信息Debuginfo 0
强制加入面对对象的部落gm JoinGuildFromViewActor
获取所在部落酋长权限gm ForceGuildOwner
删除排序index-1
排序的部落gm DeleteGuild <Index>
摧毁建筑半径(单位米),“<Radius>”填写数值,最小值1,最大值400gm CuiHuiViewGongHuiJianZhuByRadius <Radius>
自己穿上测试装备gm god
手动存档gm BaoCun
创造模式gm setcreativemode
服主可以查看任何包裹及建筑物库存gm SetGMOperateAllInventory
跟随用户视角gm weisui 1