本教程是在Ubuntu 22.04.2 LTS环境下演示的,对于其他版本的Ubuntu,可能有所出入,对于其他的Linux操作系统,如CentOS,本文不保证完全适用,但核心相同,可以本文为参考进行搭建。
本文只是在本机Ubuntu 22.04.2 LTS环境下完成测试,并没有在其他版本上跑过测试(原因是懒),并不保证全版本适应性,故如有错漏与不足,还请各位指出。
本文于2023.8.11写成,并不保证在较长时间后仍然有效,届时会根据情况进行更新,如有不适配之处,也请各位在评论区指出,本人会尽力进行对本文的修改,使其尽量不落后于时代。
本文只是提出一条在linux上搭建泰拉瑞亚服务器的可行方案,对于其他方案,也许其可行,但本人并未对此进行深入探究,故不在此介绍。
本文只介绍tModLoader的服务器搭建。对于纯原版服&TShock服,可以参阅本人之前的文章


基本环境准备
首先你需要一个可正常运行的Linux操作系统,本文以Ubuntu为演示,版本为Ubuntu 22.04.2 LTS,在对应Linux官网下载镜像文件,然后在虚拟机或者实体机上进行安装,具体安装流程这里不再赘述,可自行搜索安装教程;或在选择云服务器操作系统时选择Linux,本人建议Ubuntu或CentOS。
获取tModLoader
网址:https://github.com/tModLoader/tModLoader/releases
进入上方网站,选择你需要的版本,该版本最好与客户端版本统一,否则可能会出现各种各样奇怪的bug(其实统一了也有奇奇怪怪各种各样的bug)
下载完成后应该会得到一个如下图所示的.zip文件

tmodloader
将它上传到linux服务器。

并使用unzip命令解压
sudo unzip tModLoader.zip

解压后的目录结构
获取模组
首先,在客户端的tmodloader的steam创意工坊上订阅模组
老生常谈的问题:
1. 创意工坊登不上去
由于某些众所周知的原因,steam的community就上不去,这时候可能就需要一些魔法。
本人在这里推荐steam++(现在好像改名叫Watt Toolkit了)和网易uu。
2. 创意工坊没有模组
注意需要打开的是tmodloader的创意工坊,而不是泰拉瑞亚本体的。
是这个!

sir, this way!!!!
什么200小时的萌新中的萌新
然后,启动你的tModLoader

tml开始页面
第一次启动可能需要选择语言。
然后,点击创意工坊->管理模组进入模组管理页面

模组管理页面
像平时一样,启用你所需要的模组,我们这里以Recipe Browser为例
启用之后点击返回重新加载即可。
然后顺次点击创意工坊->模组整合包,进入模组整合包管理页面

模组整合包管理页面
点击右下角的 “将已启用的模组生成为新的整合包”

"将已启用的模组生成为新的整合包" 按钮
模组整合包名称可以随意填(不能含`~!@#$%^&*()[]{}<>,/?;:'"+=以及空格和中文汉字,像是.-_就可以),自己能认清楚就行

整合包名称
然后我们便可以找到整合包的信息

我们这里需要的是 “导出完整整合包”

导出完整整合包
点它。稍等片刻就会自动打开一个与整合包名同名的文件夹

文件夹名为example
我们需要的是SaveData文件夹中的Mods文件夹(/SaveData/ModConfigs是模组配置文件夹,需要可以自行取用,避免重复配置)

Mods文件夹
Mod文件夹当中的.tmod文件就是模组文件,enabled.json用于存放模组的启用/禁用状态,install.txt没用大概是与steam相关的?,tmlversion.txt用以存放tml的版本信息
可以将Mods文件打个包然后上传至linux服务器的模组文件随后解压
需要注意的是,打包时不要将Mods文件夹打包入压缩文件,这样在linux端的模组文件夹下可以直接unzip,而不需要mv。
安装模组并启动tModLoader
1. 启动tModLoader
sudo ./start-tModLoaderServer.sh 使用上述命令来启动服务器。
第一次启动可能会在下载安装dotnet上花费时间,如果需要离线安装,可以参考cv24543066的步骤12,其文件应该是通用的(大概吧)。


服务器的开始页面(这里我下载的是Preview版本)
输入m并回车

这里便是默认的mod存放位置,当然你也可以通过命令行参数或者配置文件方式来手动设置mod存放位置
sudo ./start-tModLoaderServer.sh -modpath ./mods 例如这就是通过命令行参数的方式来调整mod存放位置到./mods目录
2. 安装模组
我们将.tmod模组文件上传到mod文件夹
需要注意的是:如果是由tmodloader自动创建的目录,需要赋予权限
sudo chmod +666 mods 我在这里就使用RecipeBrowser作为演示

上传的文件
3. 启用模组
将模组上传至模组文件夹后,再次启动服务器输入m进入模组选择页面即可看见我们刚才添加的RecipeBrowser模组

输入模组序号并回车将其启用

输入1并回车后
输入e启用全部、d禁用全部
然后输入r重新加载并返回到选择世界页面
如果在复制mod文件时同时把enabled.json给复制到mods文件夹了,那么tmodloader就可以自动识别enabled.json中的内容并启用模组
4. 启动服务器
加载完成模组后的操作便与原版没有什么区别了

需要注意的是,在添加某些模组后在服务器端输入n创建世界可能会发生错误,可以选择在客户端创建后拷贝至tmodloader的文件目录(默认~/.local/share/Terraria/tModLoader/Worlds)
后台运行
可参阅 cv24543066 的步骤10

其步骤大致相同,不过启动变成了(中括号 " [ ] " 内为可选内容)
sudo ./start-tModLoaderServer.sh [-modpath ./mods] 而已
防火墙问题
可参阅 cv24543066 的步骤 11

尾声
至此,你已经完成了泰拉瑞亚tModLoader服务器在linux的安装。祝你玩的愉快。如果有任何问题,也可以在评论区给本人回复,我会尽力回答。介于本人技术、精力有限,不可能做到尽善尽美,如果本文存在任何疏漏,也欢迎各位指出,我会及时改正。