1. Create crop types

Use one TypeSet type per gameplay crop/resource category such as Wheat, Corn or Flower. Put growth-stage-looking visual alternatives in variants only when gameplay does not need to distinguish them as separate resources.

2. Plant a crop from code

Call Place or PlaceWithFeedback when the player plants a seed. These create Manual placements, which you can later remove with Harvest. Use Density or Noise separately for background grass and weeds.

3. Check the soil before planting

Your farm script should decide whether a plot is empty and suitable for the crop. Plant only when that check passes. A painted Placement Mask hides plants, so do not use it as your only check for whether a crop can be planted.

4. Keep stable crop IDs

Save the TypeSet stable type ID with farm state rather than relying only on display sprite names. The feedback API returns both type index and stable typeId.