本文写于 2018年08月01日,距今已超过 1 年,距 2022年10月18日 的最后一次修改也已超过 3 个月,部分内容可能已经过时,您可以按需阅读。如果图片无法显示或者下载链接失效,请给我反馈,谢谢!


5 2 投票数
评分

Terraria 自建带 MOD 的服务器

2022-04-25 更新

1. 现在下载游戏服务器已经不需要借助 Steam 了,官方已经提供了服务器所需的文件。下载链接可以在这里找到,下载后解压即可
2. Ubuntu 服务器的话,如果出现 E: Unable to locate package steamcmd,在 /etc/apt/sources.list 中添加遗漏的 multiverse 源(其实就是一些闭源软件的源)
3. 保存时注意硬盘容量的问题,按照大世界 10M 来算的话,每 15 分钟自动备份存档,大概一天要用掉 1G 的空间
4. 有 Docker 镜像:https://github.com/Rfvgyhn/tmodloader-docker

zerol在2020年2月8日再次玩Terraria的时候,补全了整篇教程,完整的操作流程可以参考:这篇文章

跟 zerol 和 SYRain 一起玩Terraria

Steam 上有一个“通过Steam”加入多人游戏的功能

但是 zerol 说那样的话,房主不在,其他人就没法玩了

所以要自己动手搭建一个服务端

官方有提供一个 Server 脚本,下载并运行即可,但是那是不带 MOD 的,如果想要带 MOD 玩,就必须自己动手操作

花了大约 2 个小时的时间,搞定了

下面记录一下踩过的坑

因为不是教程向,所以这篇文章不会写的很详细

安装SteamCMD

因为是64位的 CentOS7.4,所以可能需要 32 位的运行环境

sudo yum install xulrunner.i686

然后新建 steam 用户,并切换到 steam 用户安装 SteamCMD

adduser -m steam

su - steam

mkdir ~/steamcmd

cd ~/steamcmd

wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz

tar -xvzf steamcmd_linux.tar.gz

cd ~/steamcmd

./steamcmd.sh

下载游戏

安装完成后会自动进入 steam 命令行,下面要下载游戏

虽然可以匿名登录,但是可能有些游戏还是需要账号登录以后才能下载,所以一开始就可以登录账号

login USERNAME

回车以后会要求输入密码,如果有二次验证,那么还会在密码后面请求一次 Steam 令牌或者邮箱验证码,输入以后请求用户信息,然后登录成功

最近登录过的话,输入登录以后会直接用未过期的会话,不需要重新输入密码

登录成功以后设置下载路径

force_install_dir ./Terraria

然后开始下载,下载用的命令是 app_update STEAMID

需要升级的话,在命令行加上升级参数 validate

Terraria 的 Steam ID 是 105600,所以通过 app_update 105600 下载游戏

漫长的等待,下载完成

期间可能下载失败,退出重下就可以了

下载安装MOD管理器

最好是在这个情况下就 sh 运行 Server 的那个脚本,测试一下在没有 MOD 的情况下是不是可以正常作为服务端被连入

一切 OK 的话就可以下载 MOD 管理器了

Github 下载 Linux 版的 MOD 管理器,解压并替换下载到的 Terraria 文件夹

注意需要把用户授权给 steam 用户

tModLoaderServer如果是不可执行的,还要 chmod +x tModLoaderServer

运行这个脚本,之后会在 home 下生成 MOD 文件夹

然后将 mods 上传到 home 下的对应的 MOD 文件夹

再次sh运行tModLoaderServer,启用 MOD,即 m 以后,用 e 启用全部,然后 r 刷新并返回

一切成功以后,运行tModLoaderServer,创建世界或者从本地复制到对应的文件夹

更多的坑

  • 像阿里云这样的服务器,7777 端口是需要进安全组手动开放的,因为不知道用户的 IP,所以只能开放 0.0.0.0/0 的地址段
  • 新建世界或者运行失败,可能是因为整个脚本被系统 kill 了,这样很可能是内存不够,大世界需要 1.2GB 以上的内存
  • .local 也要授权否则不能保存,就算进了游戏遇到自动或者手动保存(退出保存)的时候就会丢失连接,然后白玩
  • 后台运行,zerol 提供了一个脚本(Python程序):
5 2 投票数
评分
28条留言
订阅评论
提醒
guest

在点击发表评论按钮时,网络请求的数据包含浏览器版本、操作系统版本和 IP 地址;您的网络服务提供商、雇主或学校、政府机构可能会看到您的访问活动;根据浏览器默认行为、操作系统设置和安全防护软件的设置不同,您的浏览器可能会也可能不会在本地 Cookies 缓存您输入的用户名、邮箱以便下次评论使用。

请对自己的言行负责。

您想以什么身份发表评论
邮箱将在您的评论被回复时给您通知
(可选)如果您也有个人网站,不妨分享一下
我对这篇文章的评分
这篇文章给您带来多大帮助
28 评论
内联反馈
查看所有评论
snow
snow (@guest_3208) Chrome 77.0.3865.116 Android 10 | AQM-AL10
游客
2021年2月20日 16:47
我对这篇文章的评分 :
     

感谢,不过现在不需要steam也能开tmodloader服务器了

golemstorm
golemstorm (@guest_3197) Chrome 87.0.4280.141 Windows 10
游客
2021年2月8日 22:22
我对这篇文章的评分 :
     

这开服的时候海必须要steam登录么。。

无名无姓
无名无姓 (@guest_2199) Chrome 84.0.4122.7 Windows 10
游客
2020年4月28日 13:49

感谢!从知乎赶来学习一下