Shops

Krobus

Access the complete stock list for Krobus's shop in the sewers with permanent and daily rotating stock filtering using the chainable KrobusQuery API.

Quick Start

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

// Get all Krobus items
const all = krobus().get()

// Get permanent stock
const permanent = krobus().permanent().get()

// Get items available on Thursday
const thursday = krobus().byDay('Thursday').get()

// Get recipe items sorted by price
const recipes = krobus().recipes().sortByPrice().get()

Type Definition

Each item conforms to the KrobusItem interface:

FieldTypeDescription
idstringUnique identifier.
namestringDisplay name of the item.
pricenumberPurchase price in gold.
descriptionstringIn-game description text.
imagestringPath to the item's image.
stockTypeKrobusStockTypeWhether the item is permanent or daily rotating.
dayKrobusDay | undefinedDay of the week when available (only for daily stock).
stockLimitnumberMaximum quantity you can purchase.
isRecipebooleanWhether this item is a recipe.
availabilitystring | undefinedSpecial purchase condition, if any.

KrobusStockType

type KrobusStockType = 'permanent' | 'daily'

KrobusDay

type KrobusDay = 'Monday' | 'Tuesday' | 'Thursday' | 'Friday' | 'Sunday'

Query Methods

KrobusQuery extends QueryBase and inherits five terminal methods:

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

Filter Methods

MethodReturnsDescription
permanent()KrobusQueryFilter to year-round permanent stock only.
daily()KrobusQueryFilter to daily rotating items only.
byDay(day)KrobusQueryFilter to items available on the given day (permanent + that day's rotating item).
recipes()KrobusQueryFilter to recipe items only.
alwaysAvailable()KrobusQueryFilter to items with no special purchase condition.

Sort Methods

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

Examples

Show the daily rotation schedule

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

const days = ['Monday', 'Tuesday', 'Thursday', 'Friday', 'Sunday']

days.forEach((day) => {
  const dailyItem = krobus()
    .daily()
    .get()
    .find((i) => i.day === day)
  if (dailyItem) {
    console.log(
      `${day}: ${dailyItem.name} - ${dailyItem.price}g (limit: ${dailyItem.stockLimit})`,
    )
  }
})

List items with stock limits

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

krobus()
  .sortByName()
  .get()
  .forEach((item) => {
    console.log(`${item.name} - ${item.price}g (max ${item.stockLimit})`)
  })

Find all recipes

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

const recipes = krobus().recipes().sortByPrice().get()

recipes.forEach((r) => {
  console.log(`${r.name} - ${r.price}g`)
})
Previous
Joja mart