Guide

Game harvesting and gathering systems explained

Harbor Outpost's first public playtest lasted forty minutes before players stripped every birch cluster on the starter beach. Iron nodes in the cave loop respawned globally every ninety seconds, so three friends camped the entrance and sold ore on the black market while newcomers quit at empty rock faces. The fix was not “add more trees” — it was a gathering pipeline with per-player depleted states, tool-tier yield multipliers, and biome density budgets tied to crafting tier gates. That refactor is why harvesting and gathering deserve first-class systems design: they are the faucet that feeds your entire survival or RPG economy.

Gathering covers any intentional conversion of world objects into inventory items — chopping trees, mining ore, picking herbs, skinning corpses, fishing spots, and salvageable wreckage. This guide covers resource node anatomy and state machines, interaction and tool requirements, yield tables and RNG, respawn and scarcity models, handoff into inventory, multiplayer authority, the Harbor Outpost biome refactor, a technique decision table vs auto-loot and vendor shortcuts, pitfalls, and a production checklist.

What gathering does in your core loop

Gathering sits upstream of crafting, building, and combat preparation. It performs four jobs that overlap but are not interchangeable:

  • Pacing valve — travel time plus node depletion stretches early progression so players cannot sprint to endgame gear in one session.
  • Spatial tutorial — biome-specific nodes teach map literacy: where iron lives, which coast has salt, what the red flowers mean.
  • Economy faucet — raw materials enter circulation at a rate you control through respawn timers and yield variance.
  • Risk/reward lever — dangerous zones can host richer nodes, coupling survival pressure with gathering routes.

When gathering feels bad, players blame inventory, crafting, and the whole open world. Empty nodes with no feedback, client-trusted grants, and infinite tap-spam on a single bush are the usual failure modes. Treat each harvest as a server-validated transaction the same way you treat a shop purchase or loot drop.

Resource nodes: data model and state machine

A resource node is a world-placed instance with a type, current health or charges, optional owner scope, and respawn schedule. Most teams implement a small finite-state machine:

State Player sees Server behavior
Available Full mesh, interact prompt Accepts harvest requests matching tool and distance
Partial Chipped model, fewer visual stages left Decrements charges; may change yield table per stage
Depleted Stump, bare rock, picked stem Rejects harvest; starts respawn timer
Respawning Hidden or faded placeholder Timer running; no interaction until Available

Store node definitions as data: nodeTypeId, max charges, required tool category and minimum tier, base harvest duration, yield table reference, respawn seconds, and whether depletion is per-player, per-party, or global. Instances only carry runtime state: charges remaining, depletedAt timestamp, and optional lastHarvester id for anti-grief rules.

Interaction pipeline: prompts, holds, and tool gates

The client proposes; the server disposes. A typical pipeline:

  1. Target query — raycast or proximity scan finds the nearest eligible node within interaction range.
  2. Gate check — equipped tool matches category (axe, pickaxe, knife); tier meets minimum; optional skill or quest flag unlocked.
  3. Channel or instant — tap for quick pickups; hold for channeled harvests with cancel-on-move and damage interrupt rules.
  4. Server validation — distance, line of sight, node state, rate limit, and duplicate-request idempotency key.
  5. Grant — roll yield table, push items through inventory grant path; on full bag, drop world loot or block with clear UI.

Show requirements before the player commits: greyed prompts for wrong tools, tier icons on the reticle, and remaining charges on partial nodes. Silent failure when a stone needs iron-tier pickaxe is how gathering guides become one-star reviews.

Yield tables, tool tiers, and variance

Yields are usually rows in a weighted table — the same pattern as loot tables, but keyed by node type and harvest stage:

  • Guaranteed base — every successful harvest grants at least one primary material (log, ore chunk, fiber).
  • Bonus rolls — rare sap, gems, or seeds with low probability; tune separately from base so designers can buff rarity without inflating staples.
  • Tier multipliers — iron pickaxe might grant +25% ore per swing and unlock secondary drops stone pick cannot roll.
  • Skill or perk modifiers — additive or multiplicative; document order of operations to avoid exponential stacking bugs.

Use a single RNG stream per harvest on the server and log the seed or roll index for dispute resolution. Client-side “you got lucky” animations should replay server results, not generate them.

Respawn, scarcity, and world density

Respawn policy is your economy throttle. Common models:

Model Best for Risk
Global timer Shared MMO worlds, competitive scarcity Camping, new-player starvation
Per-player instanced Co-op survival, casual pacing Feels less “real”; harder to trade routes
Per-party shard Small-group sessions Edge cases when players join mid-depletion
Off-screen regrowth Single-player open worlds Exploits if tied only to camera frustum

Budget density per biome: count nodes per square kilometer, expected harvests per hour at tier-one tools, and compare to crafting recipes that consume those materials. If a sword needs twenty ore and a player clears only eight nodes per loop, either extend the loop or shorten respawn — do not hide the math behind infinite generic bushes.

Multiplayer authority and anti-exploit

Never trust the client for item creation. Server must own node state transitions, harvest cooldowns, and inventory grants. Additional hardening:

  • Idempotency keys — duplicate harvest packets from lag must not double-grant.
  • Rate limits — cap harvests per second per player; reject macro-speed interaction spam.
  • Position sanity — reject harvests beyond max reach or through walls; teleport cheats love unattended nodes.
  • Concurrent claims — first valid request locks the node channel; second player gets “in use” feedback, not a race dup.
  • Persistence — depleted global nodes survive server restarts; store timestamps, not boolean flags.

Harbor Outpost refactor: from global strip-mining to paced routes

The Outpost team changed four levers after the playtest collapse:

  1. Per-player depletion on starter resources — birch and flint on the beach respawn independently per player within five minutes, so newcomers always have tutorial materials.
  2. Global timers on tier-two caves only — iron and crystal nodes share a twenty-minute global respawn, with UI world markers showing “depleted” state to set expectations.
  3. Tool tier gates on cave nodes — stone pick harvests at 50% speed and cannot roll crystal shards; bronze pick unlocks full table.
  4. Route quests — crafting milestones point players to swamp fiber and highland ore, spreading load across biomes instead of one camp spot.

Session length rose from forty minutes to ninety, and black-market ore listings dropped because supply matched recipe sinks. Gathering became exploration, not parking-lot simulator.

Technique decision table

Approach Strength Weak when Typical pitfall
Hand harvesting (this guide) Pacing, world presence, skill expression Players hate repetition without variety Global respawn camping
Auto-loot on kill only Fast action loops, less UI friction Survival crafters need ambient resources Combat becomes sole faucet; economy spikes
NPC vendors as faucet Predictable prices, low tech cost Immersion break; inflation without sinks Gathering feels pointless
Passive generators (base machines) Retention between sessions Early game feels empty Offline progress dominates active play
Procedural infinite nodes No respawn exploits Hard to tune scarcity World feels samey; no landmarks

Common pitfalls

  • Silent tool mismatch — player swings forever with wrong tier; always surface requirements in UI and audio.
  • Inventory deadlock — harvest completes then items vanish because bag was full; block start or spawn grounded drops.
  • Starter zone global depletion — veterans empty beaches; instanced or fast respawn on tutorial nodes.
  • Uncapped channel cancel — start harvest, loot, cancel repeat for partial grants; server must commit per valid tick or full completion only.
  • Density without sinks — infinite wood, nothing to craft; pair every faucet with recipe or build costs.
  • Client-trusted depletion — mesh hidden locally but server still grants; desync and dupes follow.
  • Identical nodes everywhere — no biome identity; players cannot learn the map or plan routes.
  • Ignoring co-op edge cases — player joins while node mid-respawn; define whether they inherit shard state or fresh instances.

Production checklist

  • Define node types as data with charges, tool gates, yield tables, and respawn scope.
  • Implement server-owned FSM: Available, Partial, Depleted, Respawning.
  • Validate distance, tool tier, and node state on every harvest request.
  • Route grants through the same inventory path as loot and crafting output.
  • Roll yields server-side with logged RNG; never trust client item counts.
  • Budget harvests per hour per biome against top-tier crafting recipes.
  • Separate starter per-player respawn from global rare-node timers.
  • Show depleted state, respawn hints, and tool requirements before channel start.
  • Handle full inventory with grounded drops or clear block messages.
  • Load-test concurrent harvest on single nodes for dupes and race conditions.

Key takeaways

  • Gathering is the economy faucet — node design sets crafting pace more than shop prices do.
  • Resource nodes need a clear FSM, data-driven yields, and server-authoritative grants.
  • Tool tiers and bonus rolls create progression without hard level gates on the map itself.
  • Respawn scope (per-player vs global) is a social design choice — pick intentionally, not by default.
  • Harbor Outpost fixed starvation by blending per-player starter respawn with global rare-node scarcity and biome routing.

Related reading