普通网友 2026-01-30 20:00 采纳率: 98.8%
浏览 68
已采纳

TModLoader存档位置在哪?如何手动备份/迁移世界和角色?

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),游戏启动时强制校验,失配则拒绝加载模组存档。

    三、实操指南:手动备份与迁移的原子化流程

    1. 彻底退出 Terraria 及 TModLoader 进程(含后台 terraria.exeTerraria.ModLoader.dll 加载实例);
    2. 定位并验证源路径:%USERPROFILE%\Documents\My Games\Terraria\ModLoader\
    3. 检查 ModLoader\version.txt 内容,记录 TML 版本号与 API 级别;
    4. 执行原子拷贝:robocopy "ModLoader\Worlds" "backup\worlds" /E /Z /R:1 /W:1(推荐命令行工具保障完整性);
    5. 同步导出模组清单:ModLoader\Mods\enabled.json(含模组名、版本、加载顺序);
    6. 目标机需预装完全一致的 TML 版本(建议从 GitHub Release 页面 下载对应 SHA256 校验包);
    7. enabled.json 中所列模组逐个安装至 ModLoader\Mods\,确保 modname.tmod 的内部 manifest.json"version" 字段严格匹配;
    8. 粘贴备份的 Worlds\*.wldPlayers\*.plr 至目标机相同路径;
    9. 首次启动前,运行 tModLoader.exe -verify 命令行参数触发模组签名与存档元数据双重校验;
    10. 若仍不显示,启用日志诊断:ModLoader\Logs\client.log 中搜索 Failed to load worldMissing mod: 关键字。

    四、故障树分析:常见迁移失败归因与验证矩阵

    现象根本原因验证方法修复动作
    世界列表为空TML 版本不匹配(如源为 1.4.4.932,目标为 1.4.4.928)对比两端 ModLoader\version.txt重装目标机 TML 至精确版本
    角色加载后立即崩溃某依赖模组缺失或 modname.tmod 文件损坏检查 client.logModLoadException 堆栈重新下载并校验该模组 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 同步)奠定结构基础。

    ```
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 1月31日
  • 创建了问题 1月30日