跳转到内容

Rust 服务器启动参数与命令行开关

简短回答: 打开服务器的 配置 标签页,展开底部的 启动参数(高级),在分隔线下面单独占一行输入你的参数(例如 -useNewNavmesh),然后按 保存。它在服务器下次启动时生效。

有些 Rust 服务器选项根本不是控制台变量。它们是 命令行开关,从启动服务器的那一行里读取,无论怎么改 server.cfg 都打不开。这类开关就放在 启动参数 编辑器里,你也可以在这里看到 Crucible Local Server 为该服务器使用的完整命令行。

它位于 配置 标签页底部的 启动参数(高级) 下面,在 server.cfg 编辑器的下方。每个服务器都有自己的一份,所以一个服务器可以开着某个开关,其他服务器不开。

这个区别值得用两句话讲清,因为整个编辑器的存在就是为了它。

  • server.cfg 里的一行是游戏启动时执行的 控制台命令。它能设置任意 convar,别的做不了。见 Rust server.cfg 示例。
  • 命令行两样都能做。+some.convar value 会在读取 cfg 之前 设置一个 convar,而 -someswitch 设置的是一个 不是 convar 的标志,没有对应的 cfg 写法。

-useNewNavmesh 属于第二种。Rust 直接从服务器启动时的命令行里读取它,它自己的控制台也会这么告诉你:不带它运行任何一条 rustnav 命令,服务器就会回复 “Restart the server with command line argument -useNewNavmesh”。

  1. 选中服务器,点击快速视图底部那一排按钮里的 配置。
  2. 展开 启动参数(高级)。
  3. 在 分隔线下面 单独占一行输入你的参数,每行一个参数。
  4. 按 保存,或按 Ctrl+S。

开关就是它的名字,比如 -useNewNavmesh。convar 后面要带值,比如 +ai.move false。如果值里含有空格,用英文双引号括起来。

参数在 服务器下次启动时 生效。服务器运行时保存,不会改变已经在跑的那个服务器,所以准备好后再重启。

分隔线以上的所有内容都由应用根据这个服务器的设置生成,每次启动都会重新生成。包括每个服务器都需要的几个开关、服务器 identity、游戏端口和查询端口、RCON 端口和密码、RCON 监听的地址、游戏模式、自定义地图的地图链接,以及应用内控制台读取的日志文件。

你可以读它,这正是展示它的用意,但要改的话请到设置里改,而不是在这里。保存时如果改动了这些行,会被拒绝,提示里会指出应该改哪个设置,比如 游戏端口。

唯一可以由你自己设置的一行是 +rcon.ip。RCON 只在这台电脑上响应;想用另一台电脑上的 RCON 工具连接,就在分隔线下面加上 +rcon.ip 0.0.0.0。见在另一台电脑上使用 RCON 工具,并且永远不要转发 RCON 端口。

你在分隔线下面添加的任何内容都归你。它会完全按你输入的样子保留,包括注释,并在受管理的参数之后传给 Rust。

编辑器会在你输入时检查每一行。问题会显示在它下面,带行号,错误没有清除之前 保存 按钮一直是禁用的。

下面这些情况会阻止保存:

  • 引号不成对。
  • 一行 不是参数,也就是不以 - 或 + 开头。
  • convar 没有值,比如单独一个 +ai.move。
  • 一行里有两个参数。每个参数各占一行,如果它属于某个值的一部分,就加引号。
  • 同一个参数出现两次。
  • 一行 与受管理的参数冲突,提示里会指出应该改哪个设置。

它还会显示一条不会阻止保存的警告:你在这里设置的某个 convar,server.cfg 里也设置了。命令行优先,所以 cfg 里那行会被忽略,知道这一点能省下你一下午去琢磨为什么表单里的设置没反应。

已保存的错误行永远不会阻止服务器启动:应用会跳过那一行,用其余的内容启动服务器。

移除自定义参数 会清除你添加的所有内容,受管理的命令行保持不动。服务器没有自己的自定义参数时,这个按钮是灰的。

如果你以前手动开过 Rust 服务器,你有两样东西:一个塞满参数的 .bat 文件,和一个塞满 convar 的 server.cfg。Crucible Local Server 两样都有,形式也一样。这个编辑器就是 .bat 那一行,它正上方的 server.cfg 编辑器就是那个文件。区别在于应用会替你写它管理的那部分,所以改端口就只是改端口,不会变成要在两个地方各改一次、还可能不一致。