Query plots without mutation

Inspect a plot

VegetationInstanceCountResult plot = VegetationAPI.GetVisibleInstanceCounts(area, plotCenter, plotRadius);
int wheatHere = plot.CountForType(wheatType);
bool occupied = plot.totalCount > 0;

2. Keep farming rules in your game

Your farm script should remember when a crop was planted, whether it was watered and how much it produces. This asset draws the plant and lets you change its appearance. Save the farming information with the rest of your game's progress.

3. Regrowth choices

For temporary visual damage use Grow/Regrow interaction state. For harvested crops, replant with Place/PlaceWithFeedback when the gameplay system says the crop returns.

4. Manage large farms

Query/harvest only the tool/plot radius involved in the action. Do not enumerate an entire farm every frame. Batch planting through PaintWithFeedback when random/scattered placement is appropriate.

Save/load recommendation

  • Save crop gameplay records: stable type ID, world/plot position, seed/variant choice if important, and growth state.
  • When loading the game, use the saved crop records to place the crops back at their saved positions.
  • Replay temporary Cut/Destroy state only if that temporary damage itself belongs in the save game.