Stellaris

Stellaris

133 ratings
Dynamic Technology Tree
5
2
2
   
Award
Favorite
Favorited
Unfavorite
File Size
Posted
Updated
9.723 MB
6 Aug @ 4:35am
23 Sep @ 6:07am
9 Change Notes ( view )

Subscribe to download
Dynamic Technology Tree

Description
📜 MOD 简介

本 MOD 通过脚本,为“原版游戏 + 所有已启用 MOD”动态生成一个完整的科技树,并将其嵌入到每一项科技的描述中。现在,你只需将鼠标悬停在任意科技上,即可清晰地看到其完整的前置与后续科技结构。

(这篇简介是我把代码喂给AI后生成后我再小改的,如果有什么问题请指出,图懒得换了。)

⚠️ 重要提示: 为确保生效,请务必将本 MOD 置于游戏加载顺序的最底部。否则,其他 MOD 可能会覆盖本 MOD 的文本,导致科技树显示失效。

支持范围:
  • 原版游戏
  • 所有已启用的创意工坊 MOD
  • 本地 MOD




⚙️ 快速上手指南

请严格按照以下步骤操作,否则 MOD 将无法正常工作。

  • 订阅并启用: 订阅本 MOD,并在启动器中启用,确保它在加载顺序的最底部

  • 定位配置文件: 在创意工坊的本地文件中找到本 MOD 的根目录,用文本编辑器打开 `config.ini`。

  • 配置核心路径: 根据你的实际情况,修改 `[path]` 部分的关键路径:
    • `base_game_path` = 你的《群星》游戏本体安装目录
    • `mod_folder_path` = Steam 创意工坊 MOD 目录(通常是 `steamapps/workshop/content/281990`)
    • `dlc_load_path` = (可选)自定义 `dlc_load.json` 路径,此文件包含目前启用的mod,非 Windows 用户通常需要手动指定。(默认"~\Documents\Paradox Interactive\Stellaris\dlc_load.json")
    • `local_mod_folder_path` = (可选)存放本地MOD 文件的目录。(默认"~\Documents\Paradox Interactive\Stellaris\mod")
  • 配置生成选项:
    • 语言: 在 `[localization]` 中,设置 `language = simp_chinese` (或其他语言,如 english)。
    • 优先级: (可选) 在 `priority_mods` 中填入需要优先应用本地化的 MOD ID,用逗号分隔。
    • 显示规模: (可选) 在 `[display]` 中可调整三个规模参数,通常保持默认即可(懒得看直接跳过下面的说明是可以的)。
  • 运行生成脚本: 保存 `config.ini` 后,运行同目录下的 `generate_tech_tree.exe`。
    (如果 EXE 无法运行,可尝试使用 Python 环境运行 `generate_tech_tree.py`)

  • 覆盖本地化文件: 脚本生成成功后,进入 `output` 文件夹,将其中的 `localisation` 文件夹完整地复制并覆盖到 MOD 根目录。
    (根目录自带的 `localisation` 是一个必须被替换的空文件夹)

  • 启动游戏验证: 确认 MOD 已启用且在最底部,进入游戏,悬停任意科技查看效果。

💡 何时需要重新生成?
当你执行以下任一操作时,都必须重复上述 步骤 5 和 6
  • 新增/移除了 MOD
  • 启用/禁用了 MOD
  • 调整了 MOD 的加载顺序
  • 修改了 `config.ini` 的任何配置
  • 本 MOD 自身更新后




🔍 MOD 扫描机制

本 MOD 不再使用旧版的黑/白名单机制,而是直接读取游戏启动器生成的 `dlc_load.json` 文件,仅扫描“当前已启用”的 MOD。

  • 创意工坊 MOD: 脚本会自动解析形如 `mod/ugc_123456789.mod` 的条目,并找到对应的数字 ID 文件夹。
  • 本地 MOD: 脚本会解析本地MOD(~\Documents\Paradox Interactive\Stellaris\mod\xxx)。
  • Linux / macOS 用户: 由于 dlc_load.json 的位置可能不同,请务必在config.ini中手动填写dlc_load_path的绝对路径。




📊 显示效果与性能调节

`config.ini` 中 `[display]` 下的三个参数,用于防止超大型 MOD 整合包生成的科技树过于庞大,导致游戏内悬停卡顿或文本溢出。 一般无需调整。

  • max_children_per_node (单节点子项上限)
    限制一个科技节点能直接展开显示的后续科技数量。`0` 为不限制。
    调小更紧凑,调大更完整。推荐值: 6–20。

  • max_tree_depth (最大递归深度)
    从每个根科技向下追溯的最大层级数。`0` 为不限制。
    建议值: 3–6。过大的值在整合包中可能生成超长文本。

  • max_display_nodes (全局显示上限)
    控制单个科技树中显示的总节点数量上限,以防止卡顿。`0` 为不限制。它采用两阶段自适应策略:
    • 预判: 如果某个科技的直接后续数量超过此值,则直接提示“根层过多”,不予展开。
    • 动态回退: 脚本会尝试用完整的参数渲染,若总节点数超限,则自动缩减参数(深度和广度)重新渲染,以寻找最佳显示效果。
    经验值: 64–256。




❓ FAQ 常见问答

Q: 为什么生成后少数科技没有树状结构?
A: 可能是该科技的描述文件格式特殊,脚本未能成功覆盖,或其本身就没有标准的前置/后续关系。这不影响其他科技的正常显示。

Q: 修改 MOD 后忘记重新生成会怎样?
A: 你看到的将是过时的科技树,新 MOD 的科技会缺失,旧的结构可能错误。务必重新生成。

Q: 如何只生成原版游戏的科技树?
A: 在游戏启动器中禁用所有其他 MOD(或切换到一个只含本 MOD 的播放集),然后重新生成即可。

Q: 如何输出其他语言的科技树?
A: 不支持一次性生成多语言。请在 `config.ini` 中修改 `language` 配置项,然后重新生成一次,即可得到对应语言的文件。

Q: 游戏悬停时变慢或文本显示不全?
A: 请在 `config.ini` 中适当调低 `max_display_nodes` 或 `max_tree_depth` 的值。

Q: 我的本地 MOD 未被识别?
A: 请检查:
1. `local_mod_folder_path` 路径是否正确。
2. 你的 `.mod` 文件中是否包含 `path="..."` 字段,且路径有效。
3. 该本地 MOD 是否已在启动器中启用(只有启用后才会记录到 `dlc_load.json` 中)。




⭐ 2025-09-23 主要更新
  • UI美化
  • 扫描机制重构: 移除黑/白名单,改为自动读取启动器启用的 MOD 列表。
  • 新增本地支持: 现已支持本地 MOD 的扫描。
  • 引入动态调节: 新增三个 `[display]` 参数,对于很长的科技树会应用算法自动适配。
  • 多语言支持: 新增很多语言支持,具体可以看localization.py。(非中文和英文都是AI翻译)




📞 反馈与支持

创意工坊评论区可能无法及时跟进,推荐前往贴吧搜索帖子:
“实用工具mod:动态科技树文本生成 支持mod科技”

反馈时请尽量提供:问题描述 + 相关截图

🎈 目前可能存在问题:

  • 有些小部分科技不知道为什么不能成功覆盖描述,查过key是对的,和网上和人讨论了一会,推测是p社代码问题。
  • 对于本地mod,可能存在一些小问题。
  • 科技是使用正则表达式匹配的,可能存在漏扫的问题(问题应该不大,把那些txt文件都喂了AI了)。
  • 代码量太大,我自己都写迷糊了,后面用AI把文件拆分了,极有可能存在一些未知的问题(我不太信任AI),有问题轻尽快反馈。




❤️ 鸣谢
灵感来源:Technology Tree (for Chinese Language)
感谢所有在开发过程中提供技术支持与宝贵反馈的宝宝们!
50 Comments
summ 9 Oct @ 10:28am 
最新版本不兼容
1310790904 8 Oct @ 2:54am 
伟大,无需多言
Xingh 7 Oct @ 1:58am 
未发现循环依赖。
老无伤 5 Oct @ 2:00am 
好好感谢分享
枪马网卡耳朵聋  [author] 18 Sep @ 6:05am 
@Killiset u need run exe in the mod folder
Killiset 18 Sep @ 4:21am 
How do use this mod in the game? There is no button or anything I noticed.
枪马网卡耳朵聋  [author] 6 Sep @ 3:10am 
@pudy248 Hey bro, my apologies. I was just about to start writing the code and only just now saw that you've already finished it. It's my fault for not reading carefully, and my English isn't the best. If you know how to use GitHub, feel free to open a pull request here: FaulknerWu/DynamicTechnologyTree. If not, you can add me as a friend on Steam(or i add u).
枪马网卡耳朵聋  [author] 1 Sep @ 12:45am 
@pudy248 thx for the tip, will update asap when I get time :)
pudy248 31 Aug @ 4:07pm 
Thanks for the mod! I modified the script so that it uses Documents/Paradox Interactive/Stellaris/dlc_load.json to get the active mods so that the user doesn't have to copy them manually, which is much more convenient. Let me know if you want me to post the code somewhere.
Andy152 29 Aug @ 12:57am 
那个可执行文件要摁一下enter才能运行啊(发出了丢人的声音)(建议作者写进介绍里面作为白痴级辅导用()