Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Groundwork
Pollination boosts honey and plant growth, rain speeds plant growth, hoe/cultivator ranges scale with grid views, pickaxes get scalable digging, scythes harvest all crops, and Farming skill scales mass planting, plant growth, and beehive capacity.
| Date uploaded | 4 days ago |
| Version | 1.1.2 |
| Download link | sighsorry-Groundwork-1.1.2.zip |
| Downloads | 267 |
| Dependency string | sighsorry-Groundwork-1.1.2 |
This mod requires the following mods to function
denikson-BepInExPack_Valheim
BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.
Preferred version: 5.4.2333README
Groundwork
Pollination boosts honey and plant growth, rain speeds plant growth, hoe/cultivator ranges scale with grid views, pickaxes get scalable digging, scythes harvest all crops, and Farming skill scales mass planting, plant growth, and beehive capacity.
Configurable terrain tool scaling with radius and cost. Larger terrain ranges can require proportionally more materials, stamina, and durability, making expanded tools powerful but balanced.
Hoe and Cultivator terrain range scaling with precision grid preview. Adjust tool radius with the wheel modifier, preview affected terrain cells, and see range/cost feedback before placing.
Scalable pickaxe terrain digging. Increase radius and depth per pickaxe, with stamina and durability costs scaling from the selected dig size.
Scythe harvesting for all supported crops. Sweep through planted fields and harvest mature crops in a wide arc.
Beehive upgrades and hover details. Farming-scaled honey capacity, cover, pollination, night/rain modifiers, total honey rate, and next honey timing are shown at a glance.
Rain and pollination plant growth info. Hover text shows active Farming, pollination, and rain multipliers alongside the remaining growth time.
Farming-scaled mass planting, grid planting, and foraging pollination. Plant in clean grids, scale planting count by Farming level, and let beehives boost nearby foraging respawn when conditions are right.
Features
Farming and Planting
- Grid planting is always available while placing crops.
- Mass planting scales with Farming level:
- 0-19: Off
- 20-39: 5 plants
- 40-59: 10 plants
- 60-79: 15 plants
- 80-99: 20 plants
- 100: 25 plants
- Hold the tool wheel modifier hotkey and use the mouse wheel to change mass-plant count.
- Turn off
Mass Planting Enabledto disable only multi-plant placement; grid planting stays available. - Planted crops can grow faster based on the planter's Farming skill.
- Mass planting can grant extra Farming skill.
Foraging
- Edible respawning pickables, plus prefabs registered in
BepInEx/config/Groundwork/pickables.yml, can be affected by Farming skill. - Higher Farming skill can increase nearby pickup range.
- Higher Farming skill can speed up foraging respawn.
- Rain can speed up foraging respawn while the current environment is wet.
Beehives
- Beehive capacity can increase with Farming level.
- Newly placed hives store the builder's Farming level.
- Harvesting honey updates the hive's stored Farming level from the harvester.
- Harvesting honey can grant Farming skill.
- Lower cover increases honey production speed.
- Night honey production can be slowed or paused.
- Rain can slow or pause loaded honey production.
- Beehives can pollinate nearby growing plants and foraging targets, except while it is raining.
- Empty hives give stronger pollination bonuses; the bonus fades as the hive fills with honey.
- Growing nearby pollination targets can speed up honey production.
- Beehive hover text shows honey capacity in the title, plus cover, pollination, night/rain rates, and next honey time with total rate.
- One client setting controls both the centered terrain range guide and marker highlights around Plant/Pickable targets assigned to a hovered beehive. Raising a hive shrinks the guide, while slopes change it by direction. The range turns gray when unavailable or paused; assigned target markers turn gray while rain or night pauses pollination.
Terrain Tools
BepInEx/config/Groundwork/Groundwork.ymlcontrols Hoe and Cultivator piece costs and adjustable terrain ranges.- Hold the tool wheel modifier hotkey and use the mouse wheel to adjust terrain range.
- Preview mode can be vanilla ghost scaling or an exact grid preview.
- Paved Road can optionally skip vanilla smooth-height behavior.
- Pickaxe primary terrain digging can scale radius and depth.
- Pickaxe scaled digging has configurable stamina and durability cost factors.
Hover Info
Groundwork adds compact hover information to:
- Beehives: honey capacity in the title, cover, pollination, night/rain rates, next honey with total rate.
- Plants: remaining growth time, rain growth, pollination growth.
- Foraging pickables: remaining respawn time, rain respawn, pollination respawn.
Groundwork.yml
BepInEx/config/Groundwork/Groundwork.yml defines terrain tool piece costs and adjustable ranges.
Example:
Pickaxe:
terrainDig:
range:
enabled: true
radiusMax: 1.5
depthMax: 1.5
staminaCostFactor: 1
durabilityFactor: 1
# Exact override for a specific pickaxe prefab.
# Unspecified values fall back to Pickaxe: terrainDig.
PickaxeBlackMetal:
terrainDig:
range:
# Optional: overrides the generic Pickaxe enabled state.
# enabled: true
radiusMax: 2
depthMax: 2
Hoe:
raise_v2:
cost:
Stone: 2
range:
enabled: true
min: 1
max: 5
materialCostFactor: 1
staminaCostFactor: 1
durabilityFactor: 1
Fields:
cost: replaces the build menu material cost. Use{}for no material cost.range.enabled: enables mouse-wheel range adjustment.range.min: minimum range.range.max: maximum range.range.default: optional default range.range.radiusMax: maximum radius scale forPickaxe: terrainDig.range.depthMax: maximum depth scale forPickaxe: terrainDig.range.materialCostFactor: material scaling above base range.0keeps base cost.range.staminaCostFactor: stamina scaling above base range.0keeps base cost.range.durabilityFactor: durability scaling above base range.0keeps base cost.
For Pickaxe: terrainDig, min and default scale are fixed at 1. Use range.enabled to turn the feature on or off, and use radiusMax and depthMax to set separate caps. staminaCostFactor and durabilityFactor apply to extra costs above x1; cost and materialCostFactor are ignored.
Specific pickaxe prefab blocks, such as PickaxeBlackMetal: terrainDig, override only the values they specify. Missing values fall back to the generic Pickaxe: terrainDig block, and an exact block can set range.enabled: true or false independently.
On multiplayer, the server's BepInEx/config/Groundwork/Groundwork.yml is synced to clients.
Pickable and Plant overrides
Groundwork keeps each growth domain in a separate file under BepInEx/config/Groundwork/:
pickables.reference.yml: generated Pickable values, grouped by the prefab's original provider.pickables.yml: editable Pickable and Farming overrides.plants.reference.yml: generated Plant values, grouped by the prefab's original provider.plants.yml: editable Plant grow-time and allowed-biome overrides.
Each override file is a root YAML sequence, not a pickables: or plants: mapping. Groundwork creates pickables.yml with Pickable_Dandelion and Pickable_Thistle registered as Farming targets:
- prefab: Pickable_Dandelion
farming: [true, true, 0.25, 1]
- prefab: Pickable_Thistle
farming: [true, true, 0.25, 1]
plants.yml starts as an empty root sequence:
[]
Copy only the entries you want to change from the corresponding generated reference. For example, a Plant override can be written as:
- prefab: Beech_Sapling, 3000~5000
- prefab: sapling_jotunpuffs
biomes: [Mistlands, Meadows]
Tuple schema:
- Pickable:
prefab: <prefab>[, <respawnMinutes>]. The optional positive second value replaces a Pickable's base respawn time. Omitting it keeps the live value; a live value of0cannot be made respawning by this overlay. - Farming:
farming: [foragingTarget, bonusYield, maxChanceAtLevel100, bonusAmount]. When present, the tuple has exactly four positions; usenullto preserve automatic/live behavior in a position. - Plant:
prefab: <prefab>[, <growSecondsMin>~<growSecondsMax>]. The optional values are positive seconds and the maximum must be at least the minimum. Omitting the range keeps the live grow time. - Plant biomes:
biomes: [<biome>, ...]applies one non-empty list of biome names to both cultivator placement and the planted crop's health check. Omitting it keeps the live restrictions.None,All, and numeric masks are rejected. plants.reference.ymlreports the live Plant growth mask. An inline note marks entries whose live cultivator placement mask differs, because copyingbiomesalso replaces that placement mask.foragingTarget:trueopts in to range/scythe harvesting, Farming respawn scaling, pollination, rain effects, hover info, and missing bonus-effect fallback;falseopts out;nullkeeps automatic edible-pickable detection.bonusYield:trueopts in to Valheim's Farming skill gain and bonus-yield roll.falseornulldoes not add behavior and never disables a prefab's native Farming bonus.maxChanceAtLevel100: bonus probability at Farming 100, from0to1.bonusAmount: additional items on a successful roll.
On a successful configured or native Farming bonus roll, Groundwork temporarily supplies fallback VFX/SFX when the Pickable's m_bonusEffect is empty. This includes vanilla Farming pickables such as RaspberryBush and configured targets such as Dandelion.
When a foraging target hides all of its natural hover colliders after harvesting, Groundwork leaves a small circular faint-gray dot, sized like a terrain grid point, on the nearest ground or supporting surface. Hovering the dot shows the target name, active Farming, pollination, and rain factors, and the estimated respawn time. Its logical proxy stays at the original Pickable position so the visual projection does not change beehive pollination distance. Existing post-harvest hover targets and PlantEverything's custom picked visuals are preserved rather than duplicated.
Omitted Pickable/Plant times, omitted Plant biomes, and null Farming positions use live prefab values, including values supplied by mods such as PlantEverything. Explicit times form the base before Farming, pollination, and rain multipliers.
Expand World Data custom biome names are resolved after EWD's synchronized biome map is available. A custom biome configured with nature: Mistlands participates in Plant checks as Mistlands, so it belongs to the same effective group as vanilla Mistlands and other custom biomes with that nature; members of one nature group cannot be selected separately. An independent custom biome can be selected by its EWD biome name. Groundwork synchronizes names rather than EWD's order-dependent numeric bits; until every configured name resolves, the complete biome override stays inactive and live restrictions remain in effect.
Biome overrides do not alter independent cultivated-ground, heat/cold tolerance, roof, or spacing checks.
On each reload, Groundwork reads and validates both pickables.yml and plants.yml before replacing either in-memory rule set. If either file is invalid, Groundwork keeps the last-known-good rules from both files. On multiplayer, the server synchronizes the normalized pair to clients; the generated owner-grouped reference files remain local to the server or single-player source of truth.
The root-sequence compact tuple schema is the only accepted growth schema. Groundwork does not read, parse, or migrate previous root-level YAML files or the unreleased combined/expanded Growth layouts.
Notes
- Rain effects use the currently detected wet environment and are not accumulated while an area is unloaded.
Beehive Rain Honey Rateaffects loaded beehives only. Unloaded honey catch-up is processed without rain history; current rain applies after the beehive is loaded.- Rain disables beehive pollination while the area is loaded.
- Dedicated servers may not have precise per-position weather history.
- Plant and foraging targets store owner-authoritative dynamic bonus progress and the last loaded/unloaded rates in ZDOs so later honey, weather, or pollination changes affect only future time; transient target-assignment caches remain local.
- ZenBeehive beehive containers are supported: honey removed from the container counts as beehive harvest for Farming skill gain and capacity ownership.
BepInEx/config/Groundwork/Groundwork.yml,pickables.yml, andplants.ymlare created automatically if missing.pickables.reference.ymlandplants.reference.ymlare checked after each world prefab load and rewritten only when their settled content differs.
CHANGELOG
Changelog
1.1.3
- Removed the world-space post-harvest dot for respawning foraging Pickables while retaining a 0.32 m invisible hover and pollination proxy at the original position; targets without a respawn timer no longer receive a proxy, and natural or PlantEverything visuals remain untouched.
1.1.2
- Added a client-side beehive pollination preview with a terrain-following sphere footprint and highlights for assigned Plant and foraging Pickable targets, including active and paused coloring.
- Added small faint-gray post-harvest surface markers and respawn-factor hover details for foraging Pickables whose natural hover target disappears, while preserving natural and PlantEverything visuals and keeping hidden targets discoverable by pollination.
- Made custom circular and square terrain-tool range outlines follow slopes and heightmap seams, with a safe flat fallback.
- Changed the beehive cover honey bonus from a quadratic to a linear curve and raised the new-config default maximum multiplier from x2 to x3 at 0% cover; existing saved values remain unchanged.
- Fixed cover, pollination, night/rain, and loaded/unloaded rate changes retroactively speeding up or slowing down accumulated honey progress; the next-honey hover estimate now uses the same checkpointed progress fraction. Hives without an existing progress checkpoint adopt their current partial timer without legacy conversion, so the first honey time may shift once after upgrading.
1.1.1
- Reduced startup log noise by replacing per-prefab warnings for unnamed live Plant biome bits with one Debug summary, while preserving actionable warnings for other reference conflicts.
1.1.0
- Added optional Plant biome overrides to
plants.yml, applying the same allowed-biome list to cultivator placement, mass planting, and planted-crop health checks while leaving other growth requirements unchanged. - Added Expand World Data compatibility for biome names and effective nature groups, with unresolved custom names safely preserving live restrictions until EWD's synchronized biome map is available.
- Added live Plant growth biome masks to
plants.reference.yml, including an inline warning when a cultivator placement mask differs from the reported Plant mask. - Fixed beehive honey, pollination, and rain multiplier changes retroactively rewriting earlier Plant growth or foraging respawn progress; owner-authoritative progress now records loaded and unloaded rate segments and preserves them across zone reloads.
- Updated Plant and Pickable hover countdowns to use the segmented progress calculation.
1.0.9
- Added owner-grouped
pickables.reference.ymlandplants.reference.yml, with root-sequencepickables.ymlandplants.ymloverrides for Pickable respawn/Farming behavior and Plant grow-time ranges underBepInEx/config/Groundwork/. - Registered
Pickable_DandelionandPickable_Thistleas default Farming targets with range/scythe harvesting, Farming skill gain, and vanilla bonus-yield rolls. - Applied growth overrides at runtime without permanently replacing prefab values, preserving live values from mods such as PlantEverything when override fields are omitted.
- Read and validated both Pickable and Plant override files before atomically replacing either in-memory rule set, then server-synced the normalized pair.
- Moved the generated
Groundwork.ymlterrain-tool configuration intoBepInEx/config/Groundwork/; previous root-level YAML files and the unreleased combined/expanded Growth schemas are not migrated or parsed. - Preserved native and configured Farming bonus VFX/SFX by supplying an interaction-scoped fallback when a Pickable has an empty
m_bonusEffect.
1.0.8
- Fixed scaled terrain-tool placements so extra stamina and durability costs apply exactly once to the tool that performed the placement.
- Fixed terrain tools resetting to the vanilla radius instead of the configured
range.default, prevented range-wheel input from also zooming the camera, and bounded oversized grid preview searches with a safe fallback. - Hardened scalable pickaxe digs so temporary radius and depth changes stay bound to the exact terrain hit and are restored even when spawning fails.
- Fixed pollination catch-up for honey, plant growth, and forage respawn so unloaded time keeps its reduced bonus while loaded bonuses still obey night and rain restrictions.
- Fixed ranged foraging being limited by a fixed collider buffer in dense areas and removed duplicate bonus pickup effects.
- Made plant and forage hover countdowns follow the actual timing calculations and removed the potentially misleading combined speed multiplier.
- Improved mass-planting previews by rejecting overlaps with earlier preview slots, restricting rare placement fallback searches, and avoiding duplicate Grid or Mass instructions in partial key-hint layouts.
- Prevented scythe sweeps from processing the same unhealthy multi-collider crop more than once, improved Jewelcrafting recalculation, and made temporary scythe item-type changes reversible.
- Fixed stale ZenBeehive state after containers close automatically, preventing later inventory actions from being mistaken for a local honey harvest.
- Added comprehensive unload cleanup for configuration, localization, generated UI, previews, Farming state, and compatibility changes.
- Kept normal builds isolated from the live Valheim plugin directory; local deployment now requires explicitly setting
DeployLocal=true.
1.0.7
- Clarified the Farming level 20 mass planting requirement in piece tooltips and build key hints, including live Farming progress, while listing always-available grid planting first.
1.0.6
- Fixed first-use mass planting previews stopping at five visible crops when cycling to 10, 15, 20, or 25 before the first placement.
- Reused the original renderer state of Groundwork-hidden placement ghosts when expanding a batch preview, preventing partial
3+2layouts and repeated empty preview object creation.
1.0.5
- Expanded scythe harvesting to modded wild and cultivated pickables by recognizing additional collider layers and Plant-grown prefab relationships, with shared targeting for HarvestSweep compatibility.
- Added AzuCraftyBoxes-compatible resource checks for mass planting while preserving an exact resource recheck before placement.
- Fixed mass planting previews to copy only active plant renderers, preventing hidden mature growth stages from appearing in placement ghosts.
- Added client-controlled pickaxe terrain-dig tooltips showing the configured
x1~xMaxrange and directing players to the live key hint.
1.0.4
- Improved mass planting persistence and performance by synchronizing the exact planted crop instance, with a compatibility fallback for unusual prefabs.
- Expanded pollination search buffers on demand in unusually dense fields instead of truncating targets at the initial capacity.
- Debounced
Groundwork.ymlhot reloads and simplified internal terrain tool, configuration, and Harmony state handling.
1.0.3
- Fixed terrain tool grid preview placement consistency so the terrain operation uses the last visible grid preview position at placement time.
- Removed orange coloring from terrain tool piece tooltip hints for a cleaner white/default tooltip style.
1.0.2
- Fixed grid/mass planting persistence by syncing planted crop ZDO positions and reserving batch plant spaces to prevent crops from stacking after reload.
- Disabled beehive pollination at night for both honey rate bonuses and plant/foraging growth bonuses.
- Clarified beehive capacity hover text as Max +N and kept Honey rate wording on the final next-honey line.
1.0.1
- Made grid planting always available independently from mass planting, while mass planting still scales by Farming level.
- Added ZenBeehive container compatibility so honey removed from beehive containers counts as Groundwork harvest.
- Minor refactoring and optimizations.
1.0.0
- Initial release.