ValheimMassFarm
耕耘机 3x3 密植:一次点击种下 3x3 最大密度作物;按逗号开启自动吸附,下一块无缝贴合上一块。Plants a 3x3 block at max density; comma toggles auto-snap so blocks tile seamlessly.ValheimMassFarm
给耕耘机(Cultivator)加一个「3x3 密植」模式:一次点击种下 3x3 的九株作物,株距取游戏允许的最大密度。再用 ,(逗号) 打开「自动吸附」,下一块 3x3 就会自动贴合上一块,按最大密度无缝拼成大片农田。
只改变"一次种几株""种在哪",不改任何配方、产量、生长速度或生长规则。
功能
- 3x3 密植:手持耕耘机、选中任意作物(树苗/种子)后按
V切换开关(默认关)。开启后,准星处会显示一块 3x3 绿色网格预览,点击一次即种下整块 3x3。 - 最大密度:株距 =
2 × 该作物的生长半径(游戏判定"空间不足"时的临界距离),即不互相挤压前提下的最密间距。 - 自动吸附:按
,(逗号)切换。开启后,下一块 3x3 会自动吸附到已种下的密植格点上,沿 3x3 的边长整数倍平移,与上一块严丝合缝地拼接。连续点击即可不断向外铺田。 - 网格预览:密植模式下用线框显示即将种下的 3x3 范围,方便对准。
- 关闭密植模式时完全是原版行为。
操作
| 按键 | 作用 |
|---|---|
V |
开/关「3x3 密植」模式(默认关) |
,(逗号) |
开/关「自动吸附」(默认关) |
| 左键 | 在密植模式下种下一整块 3x3 |
用法示例:
- 装备耕耘机,选好要种的作物。
- 按
V打开密植模式,对准一块已耕耘的土地,左键 → 种下第一块 3x3。 - 按
,打开自动吸附,把准星移到相邻位置,左键 → 第二块自动贴合第一块。 - 反复移动 + 左键,即可无缝铺满整片田。
安装
方式一:r2modman / Thunderstore Mod Manager(推荐)
- 已在 Thunderstore 上架:在 mod 管理器里搜索
ValheimMassFarm安装即可(会自动带入 BepInEx 依赖)。 - 本地包导入:下载本仓库
dist/下的SuperVikingDepartment-ValheimMassFarm-1.0.0.zip,在 r2modman 中 Settings → Import local mod(或 Install from file)选择该 zip。 - 手动放入 profile:把
ValheimMassFarm.dll放到%APPDATA%\r2modmanPlus-local\Valheim\profiles\<你的Profile>\BepInEx\plugins\下(可放在任意子文件夹)。 注意:用 r2modman 启动游戏时,生效的是 profile 目录,而不是游戏安装根目录下的BepInEx。
方式二:手动安装(直接启动游戏)
- 先安装 BepInExPack for Valheim(
denikson-BepInExPack_Valheim)。 - 把
ValheimMassFarm.dll放入游戏根目录的BepInEx/plugins/。 - 启动游戏。
配置
首次启动后生成 BepInEx/config/SuperVikingDepartment.ValheimMassFarm.cfg:
| 配置项 | 默认值 | 说明 |
|---|---|---|
ToggleKey |
V |
开关「3x3 密植」模式的按键。 |
SnapKey |
Comma |
开关「自动吸附」的按键。 |
SpacingMultiplier |
1 |
间距系数。间距 = 2 × 生长半径 × 系数。默认 1.0 即最大密度;若个别作物出现「空间不足」可略微调大(如 1.05)。 |
DebugLogging |
false |
开启后在日志输出补丁细节,用于排查。 |
按键填 KeyCode 名称(V、Comma、Period、B、LeftAlt 等)。改完需重启游戏。
会不会影响成就
不会。本 mod 不设置 Game.isModded、不触碰人物的 m_usedCheats、不给物品打作弊标记。放置完全走游戏自身的 PlacePiece 管线(含正常扣资源、扣体力、扣耐久、技能成长),因此不会禁用成就。若你同时使用控制台作弊命令或其他主动标记 mod 的插件,则属于那些功能自身的影响。
兼容性
- 游戏版本:Unity 6 时期的 Valheim(使用新版 Input System)。
- 依赖:BepInEx 5.x + HarmonyX。
- 与「一键装满」类 mod(如 ValheimQuickFill)互不冲突。
- 与 FarmGrid 等对齐类 mod 功能重叠:两者都改
Player.UpdatePlacementGhost相关流程,建议只启用其一。
工作原理(简述)
- 中心那一株仍由原版
Player.TryPlacePiece放置,因此校验、扣费、网络同步全部沿用原版。 - 补丁只在原版放置成功之后,补上周围 8 株,并逐株按原版规则校验地块(耕地/生物群系/领地/建造禁区)、扣资源与体力、扣耐久、加技能。
- 每株间距取
2 × Plant.m_growRadius,与游戏Plant.HaveGrowSpace的判定一致,故为最大密度。
从源码构建
-
安装 .NET SDK(目标
netstandard2.1)与 Node.js(打包脚本用)。 -
把本仓库克隆到 Valheim 安装目录下(默认假定
..就是游戏根目录)。 -
游戏根目录需已安装 BepInEx(
BepInEx/core/BepInEx.dll、BepInEx/core/0Harmony.dll)。 -
构建并生成发布包:
./build-package.sh 你的ThunderstoreTeam名 # 产物:dist/你的Team名-ValheimMassFarm-版本号.zip
仓库不在游戏目录下时,用属性覆盖路径:
dotnet build -c Release -p:ValheimDir="C:\Steam\steamapps\common\Valheim\"
上传到 Thunderstore
- 运行
./build-package.sh SuperVikingDepartment生成dist/SuperVikingDepartment-ValheimMassFarm-1.0.0.zip。 - 打开 https://thunderstore.io/c/valheim/create/,登录后选择该 zip 上传。
- 若使用 r2modman 的团队账号,也可在其「Publish」流程中选择该 zip。
zip 内容(Thunderstore 要求):
manifest.json 包元数据
README.md 商店页正文
CHANGELOG.md 更新日志
icon.png 256x256 图标
LICENSE 许可证
plugins/ValheimMassFarm.dll ← 会自动路由到 BepInEx/plugins/
仓库结构:
MassFarmPlugin.cs 插件源码
ValheimMassFarm.csproj 项目文件
manifest.json Thunderstore 元数据
README.md / CHANGELOG.md / LICENSE
icon.png Thunderstore 图标(256x256)
build-package.sh 一键构建 + 打包
tools/zip.js 无依赖 ZIP 打包器(保证 zip 内为正斜杠路径)
tools/make-icon.js 重新生成 icon.png
已知问题 / 说明
- 修改按键或开关插件后需要重启游戏,无法热插拔。
- 用 r2modman 启动时,插件与配置都在 profile 目录下,游戏安装根目录的
BepInEx不参与加载。 - 自动吸附的格点方向取自第一块 3x3 的朝向(滚动滚轮可旋转该朝向)。
- Steam 的"验证游戏文件完整性"可能删除根目录的
winhttp.dll,导致 mod 失效;此时重装 BepInEx 即可。 - 若按键无效,把
BepInEx/LogOutput.log发到问题区。加载成功会有ValheimMassFarm loaded一行。
来源与许可
MIT License,详见仓库内 LICENSE。欢迎提 issue / PR。


