Shops

Qi's Walnut Room

Access the complete stock list for Qi's Walnut Room with currency-based filtering using the chainable QiStockQuery API.

Quick Start

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

// Get all Qi shop items
const all = qiStock().get()

// Get items purchasable with Qi Gems
const qiGemItems = qiStock().byCurrency('qi-gem').get()

// Get recipe unlocks sorted by cost
const recipes = qiStock().recipes().sortByCost().get()

// Get non-recipe items
const items = qiStock().items().get()

Type Definition

Each item conforms to the QiStockItem interface:

FieldTypeDescription
idstringUnique identifier.
namestringDisplay name of the item.
costnumberPurchase cost in the specified currency.
currencyQiCurrencyCurrency used for purchase.
quantitynumberQuantity received per purchase.
descriptionstringIn-game description text.
imagestringPath to the item's image.
isRecipebooleanWhether this item is a recipe unlock.
availabilitystring | undefinedSpecial availability condition, if any.
notestring | undefinedAdditional notes about the item.

QiCurrency

type QiCurrency = 'qi-gem' | 'golden-walnut'

Query Methods

QiStockQuery extends QueryBase and inherits five terminal methods:

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

Filter Methods

MethodReturnsDescription
byCurrency(currency)QiStockQueryFilter to items purchased with the given currency.
recipes()QiStockQueryFilter to recipe unlocks only.
items()QiStockQueryFilter to non-recipe items only.
alwaysAvailable()QiStockQueryFilter to items with no special availability condition.

Sort Methods

MethodReturnsDescription
sortByCost(order?)QiStockQuerySort by cost. Pass 'asc' (default) or 'desc'.
sortByName(order?)QiStockQuerySort alphabetically by name. Pass 'asc' (default) or 'desc'.

Examples

List all Qi Gem items sorted by cost

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

const qiGemItems = qiStock().byCurrency('qi-gem').sortByCost().get()

qiGemItems.forEach((item) => {
  console.log(`${item.name} - ${item.cost} Qi Gems (x${item.quantity})`)
})

Show recipes versus regular items

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

const recipeCount = qiStock().recipes().count()
const itemCount = qiStock().items().count()

console.log(`Recipes: ${recipeCount}`)
console.log(`Items: ${itemCount}`)

Find the most expensive item

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

const priciest = qiStock().sortByCost('desc').first()

if (priciest) {
  console.log(`${priciest.name} costs ${priciest.cost} ${priciest.currency}`)
  if (priciest.note) console.log(`Note: ${priciest.note}`)
}
Previous
Pierre's
Next
Saloon