Shops

Pierre's General Store

Access the complete stock list for Pierre's General Store with seasonal, category, and availability filtering using the chainable PierreQuery API.

Quick Start

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

// Get all Pierre items
const all = pierre().get()

// Get spring items sorted by price
const spring = pierre().bySeason('spring').sortByPrice().get()

// Get seeds only
const seeds = pierre().seeds().get()

// Get always-available items
const available = pierre().alwaysAvailable().get()

Type Definition

Each item conforms to the PierreItem interface:

FieldTypeDescription
idstringUnique identifier.
namestringDisplay name of the item.
pricenumberPurchase price in gold.
descriptionstringIn-game description text.
imagestringPath to the item's image.
seasonsSeason[]Seasons when available. Empty array means year-round.
categoryPierreCategoryItem category.
availabilitystring | undefinedSpecial purchase condition, if any.

PierreCategory

type PierreCategory =
  | 'seed'
  | 'sapling'
  | 'ingredient'
  | 'fertilizer'
  | 'recipe'
  | 'special'

Season

type Season = 'spring' | 'summer' | 'fall' | 'winter' | 'ginger island'

Query Methods

PierreQuery extends QueryBase and inherits five terminal methods:

MethodReturnsDescription
get()PierreItem[]Return all results as an array.
first()PierreItem | undefinedReturn the first result.
find(id)PierreItem | undefinedFind an item by exact ID.
findByName(name)PierreItem | undefinedFind an item by name (case-insensitive).
count()numberReturn the number of results.

Filter Methods

MethodReturnsDescription
bySeason(season)PierreQueryFilter to items available in the given season (includes permanent and multi-season items).
permanent()PierreQueryFilter to year-round permanent stock only (no seasonal seeds).
seeds()PierreQueryFilter to seasonal seed stock only.
saplings()PierreQueryFilter to fruit tree saplings only.
ingredients()PierreQueryFilter to cooking ingredients only.
fertilizers()PierreQueryFilter to fertilizers and farming supplies only.
recipes()PierreQueryFilter to recipe items only.
byCategory(category)PierreQueryFilter by category.
alwaysAvailable()PierreQueryFilter to items with no special purchase condition.

Sort Methods

MethodReturnsDescription
sortByPrice(order?)PierreQuerySort by price. Pass 'asc' (default) or 'desc'.
sortByName(order?)PierreQuerySort alphabetically by name. Pass 'asc' (default) or 'desc'.

Examples

List spring seeds sorted by price

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

const springSeeds = pierre().bySeason('spring').seeds().sortByPrice().get()

springSeeds.forEach((seed) => {
  console.log(`${seed.name} - ${seed.price}g`)
})

Get all fruit tree saplings

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

const saplings = pierre().saplings().sortByPrice().get()

saplings.forEach((s) => {
  console.log(`${s.name} - ${s.price}g`)
})

Compare seasonal availability

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

const seasons = ['spring', 'summer', 'fall', 'winter']

seasons.forEach((season) => {
  const count = pierre().bySeason(season).count()
  console.log(`${season}: ${count} items available`)
})

Find recipes that require special conditions

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

const specialRecipes = pierre()
  .recipes()
  .get()
  .filter((r) => r.availability !== undefined)

specialRecipes.forEach((r) => {
  console.log(`${r.name} - ${r.price}g (requires: ${r.availability})`)
})
Previous
Oasis