TModLoader存档位置在哪?如何手动备份/迁移世界和角色?
TModLoader 的存档(世界与角色)默认位于 Terraria 原生存档目录下,**并非独立路径**:Windows 系统为 `C:\Users\<用户名>\Documents\My Games\Terraria\ModLoader\`,其中 `Worlds\` 存放 `.wld` 世界文件,`Players\` 存放 `.plr` 角色文件。⚠️ 注意:TModLoader 1.4+ 已弃用旧版 `ModLoader\` 下的 `Worlds/Players`,改用统一的 `ModLoader\` 子目录结构(与原版分离但共用主目录)。备份时只需复制对应文件即可;迁移时,确保目标电脑已安装**相同版本的 TModLoader 及全部依赖模组**(尤其注意世界/角色所用模组必须完全一致,否则加载失败或崩溃)。常见问题:直接复制文件后游戏内不显示——多因模组缺失、版本不匹配,或误将文件放错目录(如丢进原版 `Terraria\` 而非 `ModLoader\` 下)。建议备份前先退出游戏,并核对 `ModLoader\version.txt` 以确认兼容性。
1条回答 默认 最新
三月Moon 2026-01-30 20:01关注```html一、基础认知:TModLoader 存档的物理路径与逻辑归属
TModLoader 并非独立维护存档体系,而是深度复用 Terraria 原生文件系统结构。其核心设计哲学是“模组即配置,存档即数据”,因此所有世界(
.wld)与角色(.plr)均位于原版 Terraria 主存档目录下,仅通过子路径隔离。Windows 默认路径为:C:\Users\<用户名>\Documents\My Games\Terraria\ModLoader\
该路径下包含两个关键子目录:
Worlds\(存放世界文件)与Players\(存放角色文件)。值得注意的是,自 TModLoader v1.4.0.1 起,旧版ModLoader\Worlds\和ModLoader\Players\的扁平化结构已被废弃,统一收束至ModLoader\根目录下的标准子目录——这是兼容性演进的关键分水岭。二、技术剖析:为什么路径不独立?架构级动因
- 进程级共享:TModLoader 以 DLL 注入方式扩展原版 Terraria.exe,共享同一用户文档空间,规避 UAC 权限与沙盒冲突;
- 序列化耦合:.wld/.plr 文件仍基于 Terraria 原生 BinaryFormatter(v1.4+ 迁移至更健壮的
BinaryWriter+ 自定义 TypeResolver),模组仅扩展反序列化上下文,不重写底层格式; - 版本仲裁机制:
ModLoader\version.txt记录构建哈希与 API 兼容等级(如API: 1.4.4.932),游戏启动时强制校验,失配则拒绝加载模组存档。
三、实操指南:手动备份与迁移的原子化流程
- 彻底退出 Terraria 及 TModLoader 进程(含后台
terraria.exe和Terraria.ModLoader.dll加载实例); - 定位并验证源路径:
%USERPROFILE%\Documents\My Games\Terraria\ModLoader\; - 检查
ModLoader\version.txt内容,记录 TML 版本号与 API 级别; - 执行原子拷贝:
robocopy "ModLoader\Worlds" "backup\worlds" /E /Z /R:1 /W:1(推荐命令行工具保障完整性); - 同步导出模组清单:
ModLoader\Mods\enabled.json(含模组名、版本、加载顺序); - 目标机需预装完全一致的 TML 版本(建议从 GitHub Release 页面 下载对应 SHA256 校验包);
- 将
enabled.json中所列模组逐个安装至ModLoader\Mods\,确保modname.tmod的内部manifest.json中"version"字段严格匹配; - 粘贴备份的
Worlds\*.wld与Players\*.plr至目标机相同路径; - 首次启动前,运行
tModLoader.exe -verify命令行参数触发模组签名与存档元数据双重校验; - 若仍不显示,启用日志诊断:
ModLoader\Logs\client.log中搜索Failed to load world或Missing mod:关键字。
四、故障树分析:常见迁移失败归因与验证矩阵
现象 根本原因 验证方法 修复动作 世界列表为空 TML 版本不匹配(如源为 1.4.4.932,目标为 1.4.4.928) 对比两端 ModLoader\version.txt重装目标机 TML 至精确版本 角色加载后立即崩溃 某依赖模组缺失或 modname.tmod文件损坏检查 client.log中ModLoadException堆栈重新下载并校验该模组 SHA256 五、高阶实践:自动化备份脚本与跨平台一致性保障
面向 DevOps 场景,可构建幂等备份流水线。以下为 PowerShell 核心逻辑(适用于 Windows):
$backupRoot = Join-Path $env:USERPROFILE "Desktop\TML_Backup_$(Get-Date -Format 'yyyyMMdd_HHmmss')" $modloaderPath = "$env:USERPROFILE\Documents\My Games\Terraria\ModLoader" New-Item -ItemType Directory -Path $backupRoot -Force | Out-Null Copy-Item "$modloaderPath\Worlds" "$backupRoot\" -Recurse -Force Copy-Item "$modloaderPath\Players" "$backupRoot\" -Recurse -Force Get-Content "$modloaderPath\version.txt" | Set-Content "$backupRoot\source_version.txt" # 输出校验摘要 (Get-FileHash "$backupRoot\Worlds\*.wld" -Algorithm SHA256).Hash | Out-File "$backupRoot\worlds.sha256"六、架构演进洞察:从 v0.11 到 v1.4+ 的存档治理范式迁移
早期 TModLoader(v0.11.x)采用符号链接劫持原版存档路径,导致权限混乱;v1.3 引入
```ModLoader\命名空间但未解耦 Worlds/Players;直至 v1.4+ 实施语义化路径收敛——所有模组态数据强制路由至ModLoader\{Worlds|Players|Mods|Logs},同时引入ModLoader\config.json管理全局序列化策略(如启用"useLegacySerialization": false)。此设计显著提升多模组协同可靠性,亦为未来支持云存档(如 Steam Cloud 同步)奠定结构基础。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报