Guides

Image assets

The package includes over 1,900 PNG image assets covering items, characters, maps, and UI elements from Stardew Valley.


How images work

Image files are distributed with the package under the images/ directory. Each data item that has a visual representation includes an image field containing the relative path to its image file.

import { crops } from 'stardew-valley-data'

const parsnip = crops().findByName('Parsnip')
console.log(parsnip?.image)
// "images/crops/Parsnip.png"

Accessing images

In a bundler (Webpack, Vite, etc.)

Most modern bundlers can resolve image imports from node_modules. Use the image path from the data item combined with the package name:

import { crops } from 'stardew-valley-data'

const crop = crops().findByName('Parsnip')
const imagePath = `stardew-valley-data/${crop.image}`

In React

import { crops } from 'stardew-valley-data'

function CropCard({ name }: { name: string }) {
  const crop = crops().findByName(name)
  if (!crop) return null

  return (
    <div>
      <img
        src={`/node_modules/stardew-valley-data/${crop.image}`}
        alt={crop.name}
      />
      <h3>{crop.name}</h3>
      <p>{crop.cropSellPrice}g</p>
    </div>
  )
}

Copying images to your public directory

For production use, you may want to copy the images directory into your project's public/static folder during your build step:

# Copy all images to your public directory
cp -r node_modules/stardew-valley-data/images public/stardew-images

Then reference them with a simple path:

<img src={`/stardew-images/crops/Parsnip.png`} alt="Parsnip" />

In Next.js

If you are using Next.js, you can create a helper to resolve image paths:

function stardewImage(relativePath: string): string {
  return `/stardew-images/${relativePath.replace('images/', '')}`
}

// Usage
const crop = crops().findByName('Parsnip')
const src = stardewImage(crop.image)
// "/stardew-images/crops/Parsnip.png"

Image categories

Images are organized into directories by category. The following categories are available:

DirectoryContentExamples
images/crops/Crop item sprites and seed spritesParsnip.png, Melon Seeds.png
images/trees/Tree sprites, saplings, and fruitApple Tree.png, Oak Tree.png
images/fish/Fish spritesCatfish.png, Pufferfish.png
images/animals/Animal sprites (pets and farm animals)Chicken.png, Cat.png
images/villagers/Villager portraitsPenny.png, Abigail.png
images/monsters/Monster spritesSlime.png, Skeleton.png
images/weapons/Weapon spritesGalaxy Sword.png
images/tools/Tool sprites at various upgrade levelsWatering Can.png
images/hats/Hat spritesCowboy Hat.png
images/footwear/Boot and shoe spritesSneakers.png
images/rings/Ring spritesIridium Band.png
images/trinkets/Trinket spritesParrot Egg.png
images/minerals/Mineral, geode, ore, and gem spritesDiamond.png, Geode.png
images/artifacts/Artifact spritesRusty Sword.png
images/artisan-goods/Artisan goods spritesWine.png, Cheese.png
images/cooking/Cooked dish spritesPizza.png
images/crafting/Crafted item spritesScarecrow.png
images/bait/Bait spritesBait.png
images/tackle/Tackle spritesSpinner.png
images/forageables/Forageable item spritesDaffodil.png
images/buildings/Farm building spritesBarn.png, Coop.png
images/maps/Map imagesFarm.png
images/seasons/Season icons and artworkSpring.png
images/misc/Quality icons and UI elementsSilver Quality.png, Gold Quality.png

Using image paths from data

Every data item with a visual representation has an image field. Some items have additional image fields:

FieldFound onDescription
imageMost itemsPrimary item sprite
seedImageCrops, wild treesSeed or sapling sprite
saplingImageFruit treesSapling sprite
giantImageCrops (optional)Giant crop sprite
spouseImageVillagers (optional)Spouse room sprite
calendarIconFestivalsCalendar icon sprite
import { crops } from 'stardew-valley-data'

const melon = crops().findByName('Melon')
if (melon) {
  console.log(melon.image) // "images/crops/Melon.png"
  console.log(melon.seedImage) // "images/crops/Melon Seeds.png"
  console.log(melon.giantImage) // "images/crops/Giant Melon.png" (if available)
}

Quality icons

The quality calculator module references quality tier icons from the images/misc/ directory:

QualityIcon path
Silverimages/misc/Silver Quality.png
Goldimages/misc/Gold Quality.png
Iridiumimages/misc/Iridium Quality.png
import { qualityCalculator } from 'stardew-valley-data'

const prices = qualityCalculator().sellPrices(250)
prices.forEach((p) => {
  console.log(`${p.quality}: ${p.value}g (icon: ${p.icon})`)
})

Next steps

Previous
Direct data access