交谈中的村民

交谈中的村民

一个服务端Fabric模组,为Minecraft村民赋予名字、个性、家庭和政治——并让你能用自己运行的语言模型,用自己的话与他们交谈。

怪物

会说话的村民

拥有名字、性格、家庭和政治的村民——而且你还能用自己的话跟他们聊天。

每个村民都会获得一个名字、性别、性取向,以及16种MBTI人格类型之一。他们会对你和彼此形成看法,坠入爱河、结婚、生子、哀悼、八卦、抱怨食物,并选举出村长。潜行点击其中一个并输入文字——他们会用符合角色身份的方式回应你,这一切都依靠运行在你自己机器上的语言模型。

不会向任何外部服务发送数据。 语音由 Ollama 在本地生成。无需API密钥、无需账户、无需云端、无需费用。如果Ollama运行缓慢或缺失,村民只会保持沉默——服务器绝不会因等待它而阻塞。


原版客户端可加入

这是一个服务端模组。它所做的所有事情都通过原版客户端已经理解的机制来体现——实体名称、悬浮文字、粒子效果、标题、动作栏、成书和聊天栏。

将其安装到你的服务器上,每个玩家都可以使用未安装模组的客户端加入。任何人都无需下载任何东西。它在单人游戏中也有效。


新增内容

真实对话

  • 潜行并右键点击任意村民(空手)即可开始交谈。正常输入——你的聊天内容会发送给他们,而不是服务器。
  • 回复会悬浮在他们头顶,出现在你的聊天栏中,或者两者兼有(由你选择)。
  • 他们知道自己是谁、你是谁、对你的感受、村里今天发生了什么,以及人们都在谈论什么。
  • 模型会评判你说话的和善程度。赞美和主动帮助会增进村民对你的好感;侮辱和威胁会让你付出更大的代价,而且他们会记住这些。
  • 当你告别、走得太远或沉默30秒时,对话就会结束。

具有实际机制影响的关系

  • 每个村民都会对他们认识的每个人保持一个−100…+100的好感度,该数值会受到交易、礼物、被攻击、目睹邻居被杀、被治愈僵尸化以及你对他们说话方式的影响。
  • 这个数值会反馈到原版交易定价中——真正被喜欢确实会让交易更便宜。
  • 一个足够讨厌你的村民会完全拒绝打开交易界面。

自治的村庄

  • 一个定居点会围绕村庄钟声形成,自行命名,并选举其居民之一为村长。杀死村长后,村庄会举行新的选举。
  • 村民需要床和工作站点。连续两晚没有地方睡觉,他们就会放弃并离开。
  • 农民、渔夫、屠夫和牧羊人负责养活人口。如果农田无法跟上需求,村庄就会挨饿。
  • 未满足的需求会成为持续性的抱怨——而持续存在的抱怨会损害村长在每位成年居民中的声望。包括你,如果你就是村长的话。
  • 村庄会注意到掠夺事件并记住其经过。

家庭系统

  • 求爱、订婚、婚礼(有烟花)、生育,以及有人去世时可见的哀悼。
  • 孩子会继承父亲的姓氏,并诞生于真实的家族谱系中。

八卦

  • 每个村庄每天都会编造一些新话题,居民们在停下来互相交谈时会提起这些话题。
  • 成对的村民会进行他们自己的对话,聊天的结果会微妙地影响他们彼此的看法——并通过高兴或愤怒的粒子效果来宣告。

两本成书

  • 村民自传——潜行点击一个手持书本的村民。记录他们是谁、他们的家庭,以及所有他们认识的人(按他们对这些人的好感度排序)。
  • 村庄名录——潜行点击一个手持书本的村庄钟。记录人口、交易、食物、氛围、近期事件和当前的抱怨。

这两者都适用于普通书本或模组已写好的书本(模组会重写它,所以记录永远不会停留在过时状态)。

自己当村长

站在某个村庄中阅读现任村长的书本时,你会被提供[接管村长职务]选项。接受职务后,村庄名录会为你提供[重命名村庄]选项。这两个按钮是模组仅有的交互控制——而村庄的抱怨也将成为你的问题。


设置

1. 安装模组

将 talkingvillagers-1.0.0.jar 放入 mods 文件夹,并同时安装 Fabric API。仅限服务端——或者如果你在玩单人游戏,就放入你自己的 mods 文件夹。

2. 安装 Ollama

从 ollama.com/download 下载。

在 Linux 上:

curl -fsSL https://ollama.com/install.sh | sh

3. 拉取一个模型

3B 模型是此模组调优的目标——小巧、快速,并且足以维持一个角色:

ollama pull llama3.2:3b

你已拉取的任何模型都可以使用。使用 ollama list 查看你已有的模型——配置中的 model 设置必须与该列表中的某个名称完全一致,包括冒号后的标签。

4. 确保 Ollama 正在运行

它通常随你的计算机启动并监听 11434 端口。如果没有,请运行 ollama serve。用以下命令检查:

curl http://localhost:11434

一个正常工作的服务器会响应 Ollama is running。

5. 启动服务器

就这样。如果 Ollama 与 Minecraft 服务器在同一台机器上,默认设置即可工作——无需配置任何东西。配置文件在首次运行时写入 config/talkingvillagers.toml,服务器日志会告诉你 Ollama 是否可达。

Ollama 在不同的机器上?

Ollama 在被告知之前会拒绝外部连接。在运行 Ollama 的机器上:

  1. 设置环境变量 OLLAMA_HOST=0.0.0.0
  2. 重启 Ollama
  3. 在其防火墙中允许 11434 端口
  4. 在 config/talkingvillagers.toml 中,将 base_url 指向它——例如 base_url = "http://192.168.1.50:11434"