前置

Windows

Visual C++ Redistributable for Visual Studio 2013 vc_redist.x64.exe
Visual C++ Redistributable for Visual Studio 2015 vc_redist.x64.exe
DirectX End-User Runtimes (June 2010)

ADVERTISEMENT

Linux

GLIBC 2.17 或更高

安装

Windows

1. 下载 SteamCMD 并解压到您的安装目录 如:(C:\ 指定文件名),以下用C:\ SteamCMD表示。


2. 新建一个文件夹用于放置服务端文件(C:\ SteamCMD\Servers\Squad)。


3. 在文件夹中新建一个名为 “更新战术小队服务端.bat” 的文件。


4. 将以下内容复制到文件 “更新战术小队服务端.bat” 中:

SET SRVPATH="C:\Servers\Squad"
SET STEAMCMD="C:\SteamCMD\steamcmd.exe"
%STEAMCMD% +login anonymous +force_install_dir %SRVPATH% +app_update 403240 validate +quit


5. 运行 “更新战术小队服务端.bat” 文件。


6. 等待 CMD窗口 自动关闭,则代表 更新 完成。


7. 进入服务端文件夹(C:\ SteamCMD\Servers\Squad)。


8. 新建一个名为 "启动.bat" 的文件,并将以下内容写入文件内:

start SquadGameServer.exe Port=6301 QueryPort=26301 RANDOM=ALWAYS -log


9. 运行 "启动.bat" 文件,启动服务器。


您现在已经成功安装好服务器了,但是您仍然必须配置网络以允许客户端从 Internet 连接到服务器。您可以在下面的 "开放端口" 中找到 战术小队 服务器 的连接端口。


Linux

首先,本教程假设您已经安装了一个 64位 的 Linux 发行版。(大多数托管公司都使用的 64位)

除此之外,本教程不需要任何 Linux 经验。

本教程中的 $ 符号之后的任何命令都需要在 Linux 终端(SSH)中执行。

提示: Linux 终端(SSH)可以使用 Tab 补全,假如你有一个名为 "testfolder" 的文件或文件夹,你可以输入 "text",然后按 Tab 键,它会自动补全 "testfolder"。

Linux 服务器终端(SSH)连接工具:


好了,我们开始吧:


安装服务器:

1. 以 root 用户身份登录,安装 SteamCMD 以及所需要的库。

 Debian/Ubuntu: $ apt-get install screen lib32gcc1
 CentOS: $ yum -y install screen glibc libstdc++ glibc.i686 libstdc++.i686


2. 创建一个用于 squadgameservers 的用户。

$ adduser 用户名

给这个用户设置一个密码,您可能必须使用 "sudo passwd 用户名" 来设置密码。 当提示您输入全名、地址、电话等其它信息时,只需要按回车键即可。 当询问您信息是否正确时,请输入 Y 并按回车键。


3. 登录到新的用户: ssh 用户名@localhost,然后输入您的密码。


4. 创建一个名为 SquadGameServer 的目录。

$ mkdir SquadGameServer

5. 进入目录

$ cd SquadGameServer


6. 使用其中一个命令 下载&解压 SteamCMD:

 $ wget -q -O - https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz | tar xzv
    $ curl -so - https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz | tar xzv

注意:部分人出现了 不可信/许可错误,那么你可以试试这些命令:

$ wget -q -O - http://media.steampowered.com/installer/steamcmd_linux.tar.gz | tar xzv
$ curl -so - http://media.steampowered.com/installer/steamcmd_linux.tar.gz | tar xzv


7. 创建用于 安装&更新 战术小队服务端 的实例脚本:

 $ echo "./steamcmd.sh +login anonymous +force_install_dir server1 +app_update 403240 validate"  > updateserver1.sh


8. 设置执行权限

$ chmod +x updateserver1.sh


9. 安装服务器实例 (发布新版本时,可以使用相同的命令更新服务器)

$ ./updateserver1.sh


10. 安装完成时会显示 "Success! App '403240' fully installed.",使用 exit 退出 SteamCMD。

    $ exit

然后按回车键


11. 创建 启动服务器实例 的脚本:

    $ echo "cd server1; ./SquadGameServer.sh Port=6301 QueryPort=26301 FIXEDMAXPLAYERS=100 RANDOM=NONE" > startserver1.sh


12. 设置执行权限

    $ chmod +x startserver1.sh


13. 打开一个运行服务器的窗口,然后进入窗口。

    $ screen -dmS server1
    $ screen -r server1

启动服务器:

    $ ./startserver1.sh 

窗口可以让服务器后台运行,即使您关闭了 SSH 会话。

编辑配置文件:

1. 登录运行服务器的账户,并进入配置文件夹:SquadGameServer/server1/SquadGame/ServerConfig。

    $ cd SquadGameServer/server1/SquadGame/ServerConfig


2. 使用文本编辑器打开配置文件(nano、vim、vi)。

    $ $编辑器 Server.cfg

编辑文件,完成后保存文件。如果您使用的是 Nano,可以使用 Ctrl + O 保存文件,按 Ctrl + X 退出 Nano。

关闭服务器:

1. SSH 登录用于 squadgameserver 的账户连接到服务器(非root),打开运行服务器的窗口。

    $ screen -r server1

2. 你可以看到 SquadGameServer 的日志窗口,按 Ctrl + C 关闭服务器。(您可以使用启动命令重新启动服务器)


Docker

如果您的服务器有 Docker,你可以跳过上述步骤,只需要使用:

docker run -d --net=host --name=squad-dedicated cm2network/squad

Docker 启动服务器时会自动更新,如果有更新只需重新启动服务器。

配置文件目录:/home/steam/squad-dedicated/SquadGame/ServerConfig/

  • Docker Volumes

当 Docker 容器被销毁时,它的整个文件系统也会被销毁。与其在容器上编辑文件,使用 Docker Volumes 是一个好主意,这样做的好处是数据是持久的,如果你删除容器并从图像中创建一个新的,你不需要修改任何配置文件。

docker run -d --net=host --volume=/<您的本地目录>:/home/steam/squad-dedicated --name=squad-dedicated cm2network/squad
  • 多个实例

如果你想启动另一个实例,你可以增加环境变量。使用 -e (--env):

docker run -d --net=host -e PORT=6301 -e QUERYPORT=26301 -e RCONPORT=21115 --name=squad-dedicated2 cm2network/squad

别忘了更改 Rcon.cfg 使用的端口(默认为 21114)

您可以在此处找到相关的 Docker Hub 页面: https://hub.docker.com/r/cm2network/squad/

多实例

Linux

注意事项:

- 复制目录并重命名。

- 然后编辑配置文件,在 Rcon.cfg 中设置一个端口号(+10).


例子:

服务器1 Rcon 端口: 21114

服务器2 Rcon 端口: 21124

- 请在 start.sh 脚本中更改连接端口,避免出现问题。

测试版参数

许可证 服务器有时候会被允许访问游戏测试版本,这些测试版本通常在一个单独的仓库中发布。要访问这些测试版本,请将 “NAMEOFTHEBETA” 和 “PASSWORD” 替换为测试版名称和密码。

Linux

./steamcmd.sh +login anonymous +force_install_dir server1 +app_update 403240 -beta NAMEOFTHEBETA -betapassword PASSWORD validate +quit

Windows

SET STEAMCMD="C:\SteamCMD\steamcmd.exe"
%STEAMCMD% +login anonymous +force_install_dir "C:\Servers\Squad" +app_update 403240 -beta NAMEOFTHEBETA -betapassword PASSWORD validate +quit

开放端口

需要在 Windows 防火墙和路由器上打开(仅入站)


游戏端口 = UDP 6301 + 6302

Steam 查询端口 = UDP & TCP 26301 + 26302

RCON 端口 = UDP & TCP 21114 + 21124

温馨提示

启动服务器前请确保 Steam Client 已关闭,否则服务端无法运行。


有关于战术小队服务器相关问题,请访问 Offworld Industries Hosting Discord 服务器:https://discord.gg/VmUwR7J


[Windows] 允许 SquadGameServer.exe 文件通过防火墙可以为您省去很多麻烦。


当 战术小队 服务端 与 游戏 在同一主机时,请先关闭 Steam 再启动服务器。 服务器启动后再登录 Steam 启动游戏,否则服务端会出错。

AppID - 403240

许可证

部分相关问题解答

  • 不可以使用 许可证 来运行测服务器
  • 100人的服务器最低宽带需要15m/s
  • Xeon 的服务器不能获得许可证,也不能给玩家提供良好的游戏体验
  • 授权服务器/未授权服务器 都可以运行DLC,DLC是游戏的一部分,不算MOD
  • 需要申请许可证才能在 主浏览器 中显示,你可以看看这个:PAGE服务器授权
  • 可以授权一个 60+ 的服务器,但是你的服务器硬件必须可以容纳 80 个玩家
  • 在认证服务器上玩训练场地图:玩家 < 30人 可以,玩家 > 30人 不能
  • 不能授权服务器上设置密码,如需设置密码请先删除许可证
  • 许可证超过一个星期没有使用将被注销。
  • 每个许可证服务器至少需要 10 个管理员
  • 申请服务器许可证地址:服务器许可证门户
  • 许可证安装:将申请下来的许可证文件放至于C:\servers\squad_server\SquadGame\ServerConfig\License.cfg 文件中

申请服务器许可证

如果您通过Offworld托管合作伙伴租用服务器实例(非专用服务器),请在服务器许可证门户上申请时选择合适的托管商。如果您租用专用服务器或拥有自己的服务器硬件,您仍然可以申请许可证,但请确保在申请时不要选择合作伙伴托管商。

如果您通过我们的合作游戏服务器提供商之一进行托管,即:

运行 80-100 个玩家的服务器需要什么 CPU

INTEL:

  • I7 6700K 超频到 4.5 或更高
  • I7 7700K
  • I7 7700K 超频到 4.5 或更高
  • I7 8086K
  • I7 8700K
  • I7 9700K
  • I9 9900K

目前还没有任何 XEON 服务器可以正常运行 战术小队 服务器。

AMD:

  • Ryzen 5 3600
  • Ryzen 5 3600X
  • Ryzen 7 2700X 超频到 4.3 或更高
  • Ryzen 7 3700X
  • Ryzen 7 3800X
  • Ryzen 9 3900X

服务器配置

可以将以下参数加到您的启动命令行中来配置你的服务器,添加这些参数时要注意错别字。


MULTIHOME = 服务器IP地址 (可选)

Port = 游戏端口 (必要)

QueryPort = Steam 查询端口 (必要)

RANDOM = 地图循环方式 [ALWAYS, FIRST, NONE] (可选)

FIXEDMAXPLAYERS = 最大玩家数量 (可选)

FIXEDMAXTICKRATE = 服务器刷新率 [Tickrate] (可选)

PREFERPREPROCESSOR = CPU Affinity (可选) UNTESTED

-log = 显示日志窗口 (可选)

-fullcrashdump = 崩溃时保存完整的服务器日志 (可选)


例子:

start SquadGameServer.exe MULTIHOME=127.0.0.1 Port=6301 QueryPort=26301 FIXEDMAXPLAYERS=100 FIXEDMAXTICKRATE=50 RANDOM=ALWAYS -log

设置处理器使用率

计算使用率

squad服务器搭建插图

打开您的 Windows 计算器


1 - 点击 菜单图标

2 - 选择 程序员 模式

3 - 选择 位切换键盘

4 - 单击,直到看到 BYTE 就是 4 核心 8 线程。(您也可以切换其它选项来适配您的CPU)

5 - 点击 HEX 切换到十六进制


核心线程计数从 0 开始,您可以在第三张图片中看到哪个数字负责哪个线程。1=使用;0=不使用;


所需的结果限制在 HEX 中,如果所有核心线程都为 1,结果将显示 "FF"。


对于我们的 "/AFFINITY" 参数,我们需要 "FF" 来设置 CPU 的核心线程使用率。


如果之选择核心线程 4-7 [0000 1111],则对应结果应该为 "F"。


[建议] 尽量使用偶数的 核心线程 使用数(2 4 6 8),否则容易造成服务端崩溃。

F = 2核心
FF = 4核心
FFF = 6核心
FFFF = 8核心
...

ADVERTISEMENT

Windows

您可以使用 start-命令 来设置每个服务器的核心线程使用率(如果您在一台主机上运行多个服务器):

start /AFFINITY C /WAIT SquadGameServer.exe Port=6301 QueryPort=26301 FIXEDMAXPLAYERS=100 RANDOM=ALWAYS -log

Linux

Linux 用户可以通过 "taskset" 命令来设置核心线程使用率,核心线程索引从 0 开始。如果您的处理器有 8 个核心,那么您可以分配的核心就是 0-7。

cd server1; taskset -c 0-3 ./SquadGameServer.sh Port=6301 QueryPort=26301 FIXEDMAXPLAYERS=80 RANDOM=NONE

配置文件

服务器的配置文件目录位于:C:\servers\squad_server\SquadGame\ServerConfig\

Admins.cfg                     # 权限组[管理员]
Bans.cfg                       # 封禁玩家列表
License.cfg                    # 许可证
MapRotation.cfg                # 地图循环列表
MOTD.cfg                       # 服务器介绍[每日消息]
Rcon.cfg                       # 远程管理配置
RemoteAdminListHosts.cfg       # 远程权限组[管理员]列表
RemoteBanListHosts.cfg         # 远程封禁玩家列表
Server.cfg                     # 服务器配置
ServerMessages.cfg             # 服务器循环[红字]公告

权限组[管理员]

文件名:Admins.cfg

可以创建一个 权限组,并将管理员分配到该组中。您可以创建 任意类型,任意数量 的权限组。这些文件在更新时将不会被覆盖,所以当我们添加权限时您需要前往 官方Wiki/en 更新。

必须使用 SteamID64,您可以在 steamid.io/lookup 中转换。

Group=SuperAdmin:changemap,cheat,private,balance,chat,kick,ban,config,cameraman,debug,pause
Group=Admin:changemap,balance,chat,kick,ban,cameraman,pause
Group=Moderator:changemap,chat,kick,ban
Group=Whitelist:reserve

//实习管理员
Admin=76561115695178:Moderator //玩家 5
Admin=8915618948911:Moderator //玩家 4

//管理员
Admin=7894591951519:Admin //玩家 3
Admin=7895365435431:Admin //玩家 8792

//超级管理员
Admin=7984591565611:SuperAdmin //玩家 2
Admin=7917236241624:SuperAdmin //玩家 1 

//白名单 - VIP&SVIP
Admin=7984591565611:Whitelist //玩家 123
Admin=7984591565523:Whitelist //玩家 156

权限列表

changemap                      # 更换/预设地图              
pause                          # 暂停游戏
cheat                          # 使用作弊命令
private	                       # 设置服务器密码
balance	                       # 忽略服务器阵营平衡
chat                           # 管理员聊天/服务器公告
kick                           # 踢出玩家
ban                            # 封禁玩家
config                         # 更改服务器配置
cameraman                      # 摄影机 - 管理员视角
immune                         # 无法被 踢出/封禁
manageserver                   # 关闭服务器
reserve                        # 预留位
debug                          # 调试
teamchange                     # 忽略更换阵营时间限制
forceteamchange                # 允许执行强制更换阵营命令
canseeadminchat                # 查看 管理员聊天/友军击杀/管理员加入 消息

封禁玩家

文件名:Bans.cfg

这个文件储存的是封禁玩家列表,格式为:SteamID64:封禁时间戳 //备注

76561198039509812:0 //永久封禁-使用作弊程序
7862895148978485:1623366856 //击杀友军

手动添加封禁玩家时,请使用 换行符 作为每个封禁玩家的分割。

如果要检查封禁玩家的封禁时间或创建一个限时的玩家封禁,请使用此工具转换时间戳:

https://tool.chinaz.com/Tools/unixtime.aspx

地图循环模式

在2.0地图更新后,现在有两种模式来进行地图循环,第一种是分类循环,第二种是逐个循环,逐个循环方法与1.0的MapRotation.cfg的方法类似

文件名:LevelRotation.cfg

若您想使用分类循环请在Server.cfg内将“MapRotationMode=”设置为LevelList或者LevelList_Randomized即可

# v2.0 分类循环 : 里面的内容必须为相应的地图组,与在游戏内显示的地图不一样!
//注意:只有你使用LevelList模式或LevelList_Randomized模式才会使用此文件内的循环列表

AlBasrah
Belaya
Chora
Fallujah
FoolsRoad
Gorodok
Kamdesh
Kohat
Kokan
Lashkar
Logar
Mestia
Mutaha
Narva
Skorpo
Sumari
Tallil
Yehorivka

# v2.0 加拿大DLC

GooseBay
Manic-5


文件名:LayerRotation.cfg

此运行模式与之前的循环方式一致,直接运行指定的地图,若您想使用该循环方法请在Server.cfg内将“MapRotationMode=”设置为LayerList或者LayerList_Randomized即可

# v1.0 地图循环

Al Basrah AAS v1
Al Basrah AAS v2
Al Basrah Insurgency v1
Al Basrah Invasion v1
Al Basrah Invasion v2
Al Basrah RAAS v1
Al Basrah Skirmish v1
Al Basrah Skirmish v2
Al Basrah TA v1
Al Basrah TC v1
Al Basrah TC v2

Belaya AAS v1
Belaya AAS v2
Belaya Invasion v1
Belaya Invasion v2
Belaya Invasion v3
Belaya RAAS v1
Belaya RAAS v2
Belaya RAAS v3
Belaya Skirmish v1
Belaya TC v1

Chora AAS v1
Chora AAS v2
Chora Insurgency v1
Chora Invasion v1
Chora Invasion v2
Chora RAAS v1
Chora RAAS v2
Chora Skirmish v1
Chora TC v1

Fallujah AAS v1
Fallujah AAS v2
Fallujah Insurgency v1
Fallujah Invasion v1
Fallujah Invasion v2
Fallujah Invasion v3
Fallujah RAAS v1
Fallujah RAAS v2
Fallujah RAAS v3
Fallujah Skirmish v1
Fallujah Skirmish v2
Fallujah TC v1
Fallujah TC v2

Fool's Road AAS v1
Fool's Road AAS v2
Fool's Road Destruction v1
Fool's Road Invasion v1
Fool's Road RAAS v1
Fool's Road RAAS v2
Fool's Road RAAS v3
Fool's Road Skirmish v1
Fool's Road Skirmish v2
Fool's Road TC v1

Gorodok AAS v1
Gorodok AAS v2
Gorodok Destruction v1
Gorodok Insurgency v1
Gorodok Invasion v1
Gorodok Invasion v2
Gorodok RAAS v1
Gorodok RAAS v2
Gorodok RAAS v3
Gorodok RAAS v4
Gorodok RAAS v5
Gorodok Skirmish v1
Gorodok TC v1

Jensen's Range v1
Jensen's Range v2
Jensen's Range v3

Kamdesh AAS v1
Kamdesh Insurgency v1
Kamdesh Insurgency v2
Kamdesh Invasion v1
Kamdesh Invasion v2
Kamdesh Invasion v3
Kamdesh RAAS v1
Kamdesh RAAS v2
Kamdesh RAAS v3
Kamdesh RAAS v4
Kamdesh Skirmish v1
Kamdesh TC v1
Kamdesh TC v2

Kohat AAS v1
Kohat AAS v2
Kohat Insurgency v1
Kohat Invasion v1
Kohat Invasion v2
Kohat RAAS v1
Kohat RAAS v2
Kohat RAAS v3
Kohat RAAS v4
Kohat Skirmish v1
Kohat TC v1

Kokan AAS v1
Kokan Insurgency v1
Kokan Invasion v1
Kokan RAAS v1
Kokan RAAS v2
Kokan Skirmish v1
Kokan TC v1

Lashkar Valley AAS v1
Lashkar Valley AAS v2
Lashkar Valley Insurgency v1
Lashkar Valley Invasion v1
Lashkar Valley RAAS v1
Lashkar Valley Skirmish v1
Lashkar Valley TC v1
Lashkar Valley TC v2

Logar Valley AAS v1
Logar Valley AAS v2
Logar Valley Insurgency v1
Logar Valley RAAS v1
Logar Valley Skirmish v1
Logar Valley TC v1

Mestia AAS v1
Mestia Invasion v1
Mestia Invasion v2
Mestia RAAS v1
Mestia Skirmish v1
Mestia TC v1

Mutaha AAS v1
Mutaha Invasion v1
Mutaha RAAS v1
Mutaha Skirmish v1
Mutaha TC v1
Mutaha TC v2

Narva AAS v1
Narva AAS v2
Narva AAS v3
Narva Destruction v1
Narva Invasion v1
Narva Invasion v2
Narva RAAS v1
Narva Skirmish v1
Narva TA v1
Narva TC v1
Narva TC v2

Skorpo AAS v1
Skorpo Invasion v1
Skorpo Invasion v2
Skorpo RAAS v1
Skorpo RAAS v2
Skorpo RAAS v3
Skorpo RAAS v4
Skorpo Skirmish v1
Skorpo TC v1
Skorpo TC v2
Skorpo TC v3

Sumari AAS v1
Sumari Insurgency v1
Sumari Invasion v1
Sumari RAAS v1
Sumari RAAS v2
Sumari Skirmish v1
Sumari TC v1

Tallil Outskirts AAS v1
Tallil Outskirts AAS v2
Tallil Outskirts Invasion v1
Tallil Outskirts Invasion v2
Tallil Outskirts Invasion v3
Tallil Outskirts RAAS v1
Tallil Outskirts RAAS v2
Tallil Outskirts RAAS v3
Tallil Outskirts RAAS v4
Tallil Outskirts Skirmish v1
Tallil Outskirts Skirmish v2
Tallil Outskirts Skirmish v3
Tallil Outskirts Tanks v1
Tallil Outskirts Tanks v2
Tallil Outskirts TA v1
Tallil Outskirts TC v1

Yehorivka AAS v1
Yehorivka AAS v2
Yehorivka Destruction v1
Yehorivka Invasion v1
Yehorivka Invasion v2
Yehorivka RAAS v1
Yehorivka RAAS v2
Yehorivka RAAS v3
Yehorivka RAAS v4
Yehorivka RAAS v5
Yehorivka Skirmish v1
Yehorivka Skirmish v2
Yehorivka Skirmish v3
Yehorivka TA v1
Yehorivka TC v1
Yehorivka TC v2




# v1.0 加拿大DLC

CAF_Al_Basrah_Invasion_v1
CAF_Al_Basrah_Invasion_v2
CAF_Belaya_AAS_v1
CAF_Belaya_RAAS_v1
CAF_Belaya_RAAS_v2
CAF_Chora_AAS_v1
CAF_Chora_RAAS_v1
CAF_Fallujah_Invasion_v1
CAF_Fallujah_RAAS_v1
CAF_Fools_Road_RAAS_v1
CAF_Gorodok_AAS_v1
CAF_Gorodok_Invasion_v1
CAF_Gorodok_RAAS_v1
CAF_Gorodok_RAAS_v2
CAF_Gorodok_TC_v1
CAF_Jensens_Range_v4
CAF_Kamdesh_Invasion_v1
CAF_Kamdesh_RAAS_v1
CAF_Kamdesh_TC_v1
CAF_Kohat_Invasion_v1
CAF_Kokan_RAAS_v1
CAF_Lashkar_Valley_Invasion_v1
CAF_Lashkar_Valley_RAAS_v1
CAF_Lashkar_Valley_TC_v1
CAF_Logar_Valley_RAAS_v1
CAF_Manic-5_AAS_v1
CAF_Manic-5_AAS_v2
CAF_Manic-5_Invasion_v1
CAF_Manic-5_Invasion_v2
CAF_Manic-5_RAAS_v1
CAF_Manic-5_RAAS_v2
CAF_Manic-5_RAAS_v3
CAF_Manic-5_RAAS_v4
CAF_Manic-5_Skirmish_v1
CAF_Manic-5_Skirmish_v2
CAF_Manic-5_TC_v1
CAF_Mestia_RAAS_v1
CAF_Mutaha_AAS_v1
CAF_Mutaha_RAAS_v1
CAF_Mutaha_RAAS_v2
CAF_Nanisivik_AAS_v1
CAF_Nanisivik_Invasion_v1
CAF_Nanisivik_RAAS_v1
CAF_Narva_RAAS_v1
CAF_Skorpo_RAAS_v1
CAF_Sumari_AAS_v1
CAF_Tallil_Outskirts_RAAS_v1
CAF_Tallil_Outskirts_RAAS_v2
CAF_Yehorivka_Invasion_v1
CAF_Yehorivka_RAAS_v1
CAF_Yehorivka_TC_V1

地图循环: 添加创意工坊地图

See this article: How to add one or more Steam Workshop Maps to the Squad Server

服务器介绍[每日消息]

文件名:MOTD.cfg

MOTD.cfg 支持两个 HTML 标记:

<a>黄色字体</a>
<a href="link.com">黄色字体链接</a>
  • 注意: MOTD.cfg 文件名必须是大写的,对 UNIX 很重要。

远程权限组[管理员]列表

文件名:RemoteAdminListHosts.cfg

每行应包含指向 权限组[管理员] 列表的URL,格式遵循上面 权限组[管理员] 相同。

如果您运行多个服务器,且希望所有服务器都使用一个 权限组[管理员] 文件,请使用此项。

远程封禁玩家列表

文件名:RemoteBanListHosts.cfg

每行应包含指向 封禁玩家 列表的URL,封禁玩家格式与上面 封禁玩家 相同。

如果您运行多个服务器,且希望所有服务器都使用一个 封禁玩家 文件,请使用此项。

服务器配置

文件名:Server.cfg

这个文件储存的是常规的服务器配置,新添加的内容请前往 官方Wiki/en 更新。

因此您如果想更改默认值,您需要手动把配置项添加到现有服务器配置中。

  • 如果服务器名称的特殊字符在 服务器列表 中显示为 "?????",解决方法:将特殊字符粘贴到文本编辑器,然后再复制到配置文件。示例:ServerName="Test Server Λ".
  • AutoTkBanTime: 此选项可用于在服务器玩家击杀7个友军时,自动封禁的时间秒数。例子: AutoTkBanTime=1209600 封禁玩家 14 天
  • PublicQueueLimit: Cap public queue. Standard is PublicQueueLimit=25 and this cap the public queue to 25. =0 means that there wont be public queue. =-1 is unlimited queue.
ServerName="Squad Dedicated Server"
IsLANMatch=false
ShouldAdvertise=true
MaxPlayers=40
NumReservedSlots=0
PublicQueueLimit=25
NumPlayersDiffForTeamChanges=3
AllowTeamChanges=true
PreventTeamChangeIfUnbalanced=true
EnforceTeamBalance=true
RejoinSquadDelayAfterKick=180
ServerMessageInterval=300
ServerPassword=Password
AutoTkBanTime=1209600
TKAutoKickEnabled=true //设置为 false 则禁用服务器击杀友军自动踢出,认证服务器必须为 true。
RecordDemos=false
VehicleClaimingDisabled=false
VehicleKitRequirementDisabled=false
AllowQA=false
// 强制启用服务器认证 (仅 OWI 开发人员 & qa 管理员)
AllowCommunityAdminAccess=false
// 强制启用服务器认证 (仅 OWI 开发人员)
AllowDevProfiling=false

服务器消息

文件名:ServerMessages.cfg

在游戏中每隔 x 秒按顺序循环发送一条消息(基于服务器配置)

远程管理[Rcon]

文件名:Rcon.cfg

如果您不想使用 远程管理[Rcon],请将密码 [Password=] 设置为空。 注意: 如果IP为 0.0.0.0,将自动绑定到默认的公网IP。

// 远程管理[Rcon] IP
// 或者,在命令行中使用以下参数来设置:
//   RCONIP=0.0.0.0
IP=0.0.0.0

// 远程管理[Rcon] 端口
// 或者,在命令行中使用以下参数来设置:
//   RCONPORT=21114
Port=21114

// 远程管理[Rcon] 密码
// 如果为空,则关闭 远程管理[Rcon]。
// 或者,在命令行中使用以下参数来设置:
//   RCONPASSWORD=MyPassword
Password=

// 远程管理[Rcon] 并发数量
// 同时使用 Rcon 连接到服务器的最大数量
// 或者,在命令行中使用以下参数来设置:
//   RCONMAXCONNECTIONS=5
MaxConnections=5

// 远程管理[Rcon] 超时时间(秒)
// 可选值为:30 - 3600
// 或者,在命令行中使用以下参数来设置:
//   RCONSECONDSBEFORETIMEOUTCHECK=120
SecondsBeforeTimeoutCheck=120

比赛模式

1. 要启用比赛模式,至少启动一次服务器以生成必要的文件。

2. 进入服务器文件夹,找到 \Saved\Config\WindowsServer 或 Saved\Config\LinuxServer 下的 Game.ini 文件,然后根据需要 添加/修改 内容。

3. 需要重新启动服务器才能更改比赛模式配置。


相关详情信息,请参阅:forum post. This mode was added with Alpha 5.2


V15 兼容版本:

[/Script/Squad.SQGameMode] bTournamentMode=true

[/Script/Squad.SQTournamentModeRuleset] Restrictions=(Setting="r.ShadowQuality", Min=1, Max=5) Restrictions=(Setting="r.ViewDistanceQuality", Min=3, Max=4) Restrictions=(Setting="r.ViewDistanceScale", Min=1, Max=4) Restrictions=(Setting="grass.MaxUpdateFrequency", Min=10, Max=40)

旧版本:

[/Script/Squad.SQGameMode]
bTournamentMode=true

[/Script/Squad.SQTournamentModeRuleset]
Restrictions=(Setting="r.LightFunctionQuality", Min=1, Max=1)
Restrictions=(Setting="r.ShadowQuality", Min=3, Max=5)
Restrictions=(Setting="r.Shadow.CSM.MaxCascades", Min=1, Max=10)
Restrictions=(Setting="r.Shadow.MaxResolution", Min=1024, Max=4096)
Restrictions=(Setting="r.Shadow.RadiusThreshold", Min=0.03, Max=0.05)
Restrictions=(Setting="r.Shadow.DistanceScale", Min=0.5, Max=1.0)
Restrictions=(Setting="r.Shadow.CSM.TransitionScale", Min=0.4, Max=1.0)
Restrictions=(Setting="r.DistanceFieldShadowing", Min=0, Max=1)
Restrictions=(Setting="r.DistanceFieldAO", Min=0, Max=1)
Restrictions=(Setting="r.AllowLandscapeShadows", Min=0, Max=1)
Restrictions=(Setting="r.MotionBlurQuality", Min=0, Max=4)
Restrictions=(Setting="r.AmbientOcclusionMipLevelFactor", Min=0.4, Max=1.0)
Restrictions=(Setting="r.AmbientOcclusionMaxQuality", Min=0, Max=100)
Restrictions=(Setting="r.DepthOfFieldQuality", Min=0, Max=4)
Restrictions=(Setting="r.RenderTargetPoolMin", Min=300, Max=1000)
Restrictions=(Setting="r.LensFlareQuality", Min=0, Max=3)
Restrictions=(Setting="r.SceneColorFringeQuality", Min=0, Max=1)
Restrictions=(Setting="r.EyeAdaptationQuality", Min=0, Max=2)
Restrictions=(Setting="r.FastBlurThreshold", Min=0, Max=100)
Restrictions=(Setting="r.Upscale.Quality", Min=1, Max=3)
Restrictions=(Setting="r.Tonemapper.GrainQuantization", Min=0, Max=1)
Restrictions=(Setting="r.LightShaftQuality", Min=0, Max=1)
Restrictions=(Setting="r.Filter.SizeScale", Min=0.6, Max=1)
Restrictions=(Setting="r.Tonemapper.Quality", Min=0, Max=5)
Restrictions=(Setting="r.SkeletalMeshLODBias", Min=-1, Max=0)
Restrictions=(Setting="r.ViewDistanceScale", Min=1.0, Max=10.0)
Restrictions=(Setting="r.MipMapLODBias", Min=-1, Max=0)
Restrictions=(Setting="r.Streaming.MipBias", Min=0, Max=1.5)
Restrictions=(Setting="r.MaxAnisotropy", Min=0, Max=16)
Restrictions=(Setting="r.TranslucencyLightingVolumeDim", Min=24, Max=64)
Restrictions=(Setting="r.RefractionQuality", Min=0, Max=2)
Restrictions=(Setting="r.SSR.Quality", Min=0, Max=4)
Restrictions=(Setting="r.SceneColorFormat", Min=3, Max=4)
Restrictions=(Setting="r.DetailMode", Min=0, Max=2)
Restrictions=(Setting="r.TranslucencyVolumeBlur", Min=0, Max=1)
Restrictions=(Setting="r.MaterialQualityLevel", Min=0, Max=2)
Restrictions=(Setting="r.SSS.Scale", Min=0, Max=1)
Restrictions=(Setting="r.SSS.SampleSet", Min=0, Max=2)
Restrictions=(Setting="r.EmitterSpawnRateScale", Min=0.125, Max=1.0)
Restrictions=(Setting="r.ParticleMinTimeBetweenTicks", Min=8, Max=33)
Restrictions=(Setting="foliage.DensityScale", Min=0, Max=1.0)
Restrictions=(Setting="grass.DensityScale", Min=0, Max=1.0)
Restrictions=(Setting="grass.MaxUpdateFrequency", Min=10, Max=30)
Restrictions=(Setting="r.PostProcessAAQuality", Min=0, Max=6)
Restrictions=(Setting="r.Shadow.MaxCSMResolution", Min=512, Max=4096)
Restrictions=(Setting="r.VolumetricFog", Min=0, Max=1)
Restrictions=(Setting="r.Streaming.LimitPoolSizeToVRAM", Min=0, Max=1)
Restrictions=(Setting="r.Streaming.MaxEffectiveScreenSize", Min=0, Max=0)
Restrictions=(Setting="r.SSS.HalfRes", Min=0, Max=1)
Restrictions=(Setting="r.ParticleLightQuality", Min=0, Max=2)

Categories

Community content is available under CC BY-NC-SA unless otherwise noted.