t
描述
tModLoader本质上是一个模组,它提供了一种在不直接处理泰拉瑞亚源代码的情况下加载你自己模组的方式。这意味着你可以轻松制作与其他人的模组兼容的模组,省去反编译和重新编译Terraria.exe的麻烦,并且不必理解泰拉瑞亚源代码中所有晦涩难懂的“复杂之处”。它被设计为适用于泰拉瑞亚1.3及以上版本。
139 浏览
19 下载
2026-07-01
更新于 15 分钟前
预设配置详情
tModLoader
来自他们的 GitHub
tModLoader 本质上是一个模组,它提供了一种加载你自己模组的方法,而无需直接处理 Terraria 的源代码。这意味着你可以轻松制作与其他玩家模组兼容的模组,省去反编译和重新编译 Terraria.exe 的麻烦,并且无需理解 Terraria 源代码中所有晦涩难懂的“细节”。它设计用于 Terraria 1.3+ 版本。
安装说明
由于速率限制,面板上的控制台无法跟上游戏控制台的速度,构建完成时面板控制台可能还未显示完成。刷新控制台将使其加载到日志的最新部分。
最低内存警告
你可能需要为服务器分配至少 768 MB 的内存,因为首次启动时生成世界将消耗约 650 MB 内存。
服务器端口
tModloader 与 Terraria 一样,只需一个端口即可运行。默认端口为 7777
| 端口 | 默认值 |
|---|---|
| 游戏端口 | 7777 |
插件可能需要向服务器添加额外端口。
额外信息
如果希望在控制台中下载模组,则需要更改启动命令。
新的启动命令:
./tModLoaderServer -ip 0.0.0.0 -port ${SERVER_PORT} -maxplayers ${MAX_PLAYERS} -savedirectory ~/ -tmlsavedirectory ~/saves -modpath ~/mods
这将移除自动创建功能,从而允许你下载模组并生成世界。
之后,你可以将启动命令改回使用正确的世界名称以自动启动。世界名称在配置面板中设置。
registry.cn-shanghai.aliyuncs.com/pterodactyl-images/yolks:dotnet_8
registry.cn-shanghai.aliyuncs.com/pterodactyl-images/yolks:dotnet_6
./tModLoaderServer -ip 0.0.0.0 -port {{SERVER_PORT}} -maxplayers {{MAX_PLAYERS}} -password "{{SERVER_PASSWORD}}" -motd "{{MOTD}}" -lang {{LANGUAGE}} -world ~/saves/Worlds/{{WORLD_NAME}}.wld -worldname {{WORLD_NAME}} -autocreate {{WORLD_SIZE}} -config serverconfig.txt -savedirectory ~/ -tmlsavedirectory ~/saves -modpath ~/mods
| 变量名 | 变量 | 描述 | 默认值 | 规则 | 可查看 | 可编辑 |
|---|---|---|---|---|---|---|
| 世界名称 | WORLD_NAME |
世界文件的名称。 | world |
required|string|max:20
必填 字符串 最大 20
|
||
| 最大玩家数 | MAX_PLAYERS |
服务器能容纳的最大玩家数量。 | 8 |
required|numeric|digits_between:1,3
必填 数字
|
||
| 世界大小 | WORLD_SIZE |
定义世界的尺寸。3种尺寸:1(小型)、2(中型)、3(大型)。 | 1 |
required|string|in:1,2,3
必填 字符串 选项: 1,2,3
|
||
| tModloader 版本 | VERSION |
要使用的 tModloader 版本。 | latest |
required|string|max:20
必填 字符串 最大 20
|
||
| GitHub用户 | GITHUB_USER |
用于API调用的GitHub用户。 如果你在多台服务器上频繁调用GitHub API,才需要设置此项。 | |
string|nullable
可选 字符串
|
||
| GitHub OAuth Token | GITHUB_OAUTH_TOKEN |
这可以是OAuth或Personal Access Token。如果你设置了用户,则在安装时需要此项。 | |
string|nullable
可选 字符串
|
||
| 难度 | DIFFICULTY |
设置使用自动创建时的世界难度。选项:0(正常),1(专家),2(大师),3(旅途) | 0 |
required|string|in:0,1,2,3
必填 字符串 选项: 0,1,2,3
|
||
| 服务器密码 | SERVER_PASSWORD |
用户连接服务器所需的密码。 留空表示无密码。 | |
nullable|string|max:20
可选 字符串 最大 20
|
||
| MOTD | MOTD |
服务器每日消息 | Please don’t cut the purple trees! |
required|string|max:40
必填 字符串 最大 40
|
||
| 语言 | LANGUAGE |
设置服务器语言 1:英语, 2:德语, 3:意大利语, 4:法语, 5:西班牙语 | 1 |
required|string|in:1,2,3,4,5
必填 字符串 选项: 1,2,3,4,5
|
镜像
registry.cn-shanghai.aliyuncs.com/pterodactyl-images/installers:debian
入口
bash
#!/bin/bash
# Vanilla tModloader Installation Script
#
# Server Files: /mnt/server
## install packages to get version and download links
apt update
apt install -y file
if [ -z "$GITHUB_USER" ] && [ -z "$GITHUB_OAUTH_TOKEN" ] ; then
echo -e "using anon api call"
else
echo -e "user and oauth token set"
alias curl='curl -u $GITHUB_USER:$GITHUB_OAUTH_TOKEN '
fi
## get release info and download links
LATEST_JSON=$(curl --silent "https://api.github.com/repos/tmodloader/tmodloader/releases/latest")
RELEASES=$(curl --silent "https://api.github.com/repos/tmodloader/tmodloader/releases")
if [ -z "$VERSION" ] || [ "$VERSION" == "latest" ]; then
echo -e "defaulting to latest release"
DOWNLOAD_LINK=$(echo $LATEST_JSON | jq .assets | jq -r .[].browser_download_url | grep -i tmodloader.zip)
else
VERSION_CHECK=$(echo $RELEASES | jq -r --arg VERSION "$VERSION" '. | select(.tag_name==$VERSION) | .tag_name')
if [ "$VERSION" == "$VERSION_CHECK" ]; then
if [[ "$VERSION" == v0* ]]; then
DOWNLOAD_LINK=$(echo $RELEASES | jq -r --arg VERSION "$VERSION" '. | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i linux | grep -i zip)
else
DOWNLOAD_LINK=$(echo $RELEASES | jq -r --arg VERSION "$VERSION" '. | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i tmodloader.zip)
fi
else
echo -e "defaulting to latest release"
DOWNLOAD_LINK=$(echo $LATEST_JSON | jq .assets | jq -r .[].browser_download_url | grep -i tmodloader.zip)
fi
fi
## mkdir and cd to /mnt/server/
mkdir -p /mnt/server
cd /mnt/server || exit 5
## download release
echo -e "running: curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*/}"
curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*/}
FILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*/} | cut -d',' -f2 | cut -d' ' -f2)
if [ "$FILETYPE" == "gzip" ]; then
tar xzvf ${DOWNLOAD_LINK##*/}
elif [ "$FILETYPE" == "Zip" ]; then
unzip -o ${DOWNLOAD_LINK##*/}
else
echo -e "unknown filetype. Exiting"
exit 2
fi
if [[ "$VERSION" == v0* ]]; then
chmod +x tModLoaderServer.bin.x86_64
chmod +x tModLoaderServer
else
#tiny startup script for backward compatibility
echo 'dotnet tModLoader.dll -server "$@"' > tModLoaderServer
chmod +x tModLoaderServer
fi
echo -e "Cleaning up extra files."
rm -rf terraria-server-*.zip rm ${DOWNLOAD_LINK##*/}
if [[ "$VERSION" != v0* ]]; then
rm -rf DedicatedServerUtils LaunchUtils PlatformVariantLibs tModPorter RecentGitHubCommits.txt *.bat *.sh
fi
## using config for difficulty as the startup parameter does not work -> config parser
mv /mnt/server/serverconfig.txt /mnt/server/config.txt
sed 's/#difficulty/difficulty/' /mnt/server/config.txt > /mnt/server/serverconfig.txt
rm /mnt/server/config.txt
## install end
echo "-----------------------------------------"
echo "Installation completed..."
echo "-----------------------------------------"
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL",
"meta": {
"version": "PTDL_v2",
"update_url": "https://eggs.pterodactyl.top/eggs/249/download/egg-tmodloader.json"
},
"exported_at": "2024-06-15T09:58:09+02:00",
"name": "tModloader",
"author": "parker@parkervcp.com",
"description": "tModLoader本质上是一个模组,它提供了一种在不直接处理泰拉瑞亚源代码的情况下加载你自己模组的方式。这意味着你可以轻松制作与其他人的模组兼容的模组,省去反编译和重新编译Terraria.exe的麻烦,并且不必理解泰拉瑞亚源代码中所有晦涩难懂的“复杂之处”。它被设计为适用于泰拉瑞亚1.3及以上版本。",
"features": [],
"docker_images": {
"Dotnet 8": "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/yolks:dotnet_8",
"Dotnet 6": "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/yolks:dotnet_6"
},
"file_denylist": [],
"startup": "./tModLoaderServer -ip 0.0.0.0 -port {{SERVER_PORT}} -maxplayers {{MAX_PLAYERS}} -password \"{{SERVER_PASSWORD}}\" -motd \"{{MOTD}}\" -lang {{LANGUAGE}} -world ~/saves/Worlds/{{WORLD_NAME}}.wld -worldname {{WORLD_NAME}} -autocreate {{WORLD_SIZE}} -config serverconfig.txt -savedirectory ~/ -tmlsavedirectory ~/saves -modpath ~/mods",
"config": {
"files": "{\r\n \"serverconfig.txt\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"difficulty\": \"difficulty={{env.DIFFICULTY}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"Type 'help' for a list of commands\"\r\n}",
"logs": "{}",
"stop": "exit"
},
"scripts": {
"installation": {
"script": "#!/bin/bash\r\n# Vanilla tModloader Installation Script\r\n#\r\n# Server Files: /mnt/server\r\n## install packages to get version and download links\r\napt update\r\napt install -y file \r\n\r\nif [ -z \"$GITHUB_USER\" ] && [ -z \"$GITHUB_OAUTH_TOKEN\" ] ; then\r\n echo -e \"using anon api call\"\r\nelse\r\n echo -e \"user and oauth token set\"\r\n alias curl='curl -u $GITHUB_USER:$GITHUB_OAUTH_TOKEN '\r\nfi\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https://api.github.com/repos/tmodloader/tmodloader/releases/latest\")\r\nRELEASES=$(curl --silent \"https://api.github.com/repos/tmodloader/tmodloader/releases\")\r\n\r\n\r\nif [ -z \"$VERSION\" ] || [ \"$VERSION\" == \"latest\" ]; then\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_LINK=$(echo $LATEST_JSON | jq .assets | jq -r .[].browser_download_url | grep -i tmodloader.zip)\r\nelse\r\n VERSION_CHECK=$(echo $RELEASES | jq -r --arg VERSION \"$VERSION\" '. | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"$VERSION\" == \"$VERSION_CHECK\" ]; then\r\n if [[ \"$VERSION\" == v0* ]]; then\r\n DOWNLOAD_LINK=$(echo $RELEASES | jq -r --arg VERSION \"$VERSION\" '. | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i linux | grep -i zip)\r\n else\r\n DOWNLOAD_LINK=$(echo $RELEASES | jq -r --arg VERSION \"$VERSION\" '. | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i tmodloader.zip)\r\n fi\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_LINK=$(echo $LATEST_JSON | jq .assets | jq -r .[].browser_download_url | grep -i tmodloader.zip)\r\n fi\r\nfi\r\n\r\n## mkdir and cd to /mnt/server/\r\nmkdir -p /mnt/server\r\n\r\ncd /mnt/server || exit 5\r\n\r\n## download release\r\necho -e \"running: curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*/}\"\r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*/}\r\n\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip -o ${DOWNLOAD_LINK##*/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n exit 2\r\nfi\r\n\r\nif [[ \"$VERSION\" == v0* ]]; then\r\n chmod +x tModLoaderServer.bin.x86_64\r\n chmod +x tModLoaderServer\r\nelse\r\n #tiny startup script for backward compatibility\r\n echo 'dotnet tModLoader.dll -server \"$@\"' > tModLoaderServer\r\n chmod +x tModLoaderServer\r\nfi\r\n\r\necho -e \"Cleaning up extra files.\"\r\nrm -rf terraria-server-*.zip rm ${DOWNLOAD_LINK##*/}\r\nif [[ \"$VERSION\" != v0* ]]; then\r\n rm -rf DedicatedServerUtils LaunchUtils PlatformVariantLibs tModPorter RecentGitHubCommits.txt *.bat *.sh\r\nfi\r\n\r\n## using config for difficulty as the startup parameter does not work -> config parser\r\nmv /mnt/server/serverconfig.txt /mnt/server/config.txt\r\nsed 's/#difficulty/difficulty/' /mnt/server/config.txt > /mnt/server/serverconfig.txt\r\nrm /mnt/server/config.txt\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
"container": "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/installers:debian",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "世界名称",
"description": "世界文件的名称。",
"env_variable": "WORLD_NAME",
"default_value": "world",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20",
"field_type": "text"
},
{
"name": "最大玩家数",
"description": "服务器能容纳的最大玩家数量。",
"env_variable": "MAX_PLAYERS",
"default_value": "8",
"user_viewable": true,
"user_editable": false,
"rules": "required|numeric|digits_between:1,3",
"field_type": "text"
},
{
"name": "世界大小",
"description": "定义世界的尺寸。3种尺寸:1(小型)、2(中型)、3(大型)。",
"env_variable": "WORLD_SIZE",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:1,2,3",
"field_type": "text"
},
{
"name": "tModloader 版本",
"description": "要使用的 tModloader 版本。",
"env_variable": "VERSION",
"default_value": "latest",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20",
"field_type": "text"
},
{
"name": "GitHub用户",
"description": "用于API调用的GitHub用户。\n\n如果你在多台服务器上频繁调用GitHub API,才需要设置此项。",
"env_variable": "GITHUB_USER",
"default_value": "",
"user_viewable": false,
"user_editable": false,
"rules": "string|nullable",
"field_type": "text"
},
{
"name": "GitHub OAuth Token",
"description": "这可以是OAuth或Personal Access Token。如果你设置了用户,则在安装时需要此项。",
"env_variable": "GITHUB_OAUTH_TOKEN",
"default_value": "",
"user_viewable": false,
"user_editable": false,
"rules": "string|nullable",
"field_type": "text"
},
{
"name": "难度",
"description": "设置使用自动创建时的世界难度。选项:0(正常),1(专家),2(大师),3(旅途)",
"env_variable": "DIFFICULTY",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:0,1,2,3",
"field_type": "text"
},
{
"name": "服务器密码",
"description": "用户连接服务器所需的密码。 \n留空表示无密码。",
"env_variable": "SERVER_PASSWORD",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string|max:20",
"field_type": "text"
},
{
"name": "MOTD",
"description": "服务器每日消息",
"env_variable": "MOTD",
"default_value": "Please don’t cut the purple trees!",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:40",
"field_type": "text"
},
{
"name": "语言",
"description": "设置服务器语言\n1:英语,\n2:德语,\n3:意大利语,\n4:法语,\n5:西班牙语",
"env_variable": "LANGUAGE",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:1,2,3,4,5",
"field_type": "text"
}
]
}附属文件
暂无附属文件
Fork 关系
查看关系图暂无 Fork,成为第一个 Fork 的人吧!
统计
139
浏览
19
下载
0
星标
0
复刻
作者
飒
飒爽师叔
UID: 1
277 预设
·
2026-06