Shops

Adventurer's Guild

Access the complete stock list for the Adventurer's Guild with weapon type filtering, mine level requirements, and category-based queries using the chainable GuildQuery API.

Quick Start

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

// Get all guild shop items
const all = guild().get()

// Get all weapons sorted by price
const weapons = guild().weapons().sortByPrice().get()

// Get items available by mine level 40
const earlyItems = guild().byMineLevel(40).get()

// Get only swords
const swords = guild().byWeaponType('sword').get()

Type Definition

Each item conforms to the GuildItem interface:

FieldTypeDescription
idstringUnique identifier.
namestringDisplay name of the item.
pricenumberPurchase price in gold.
descriptionstringIn-game description text.
imagestringPath to the item's image.
categoryGuildCategoryItem category.
weaponTypeGuildWeaponType | undefinedWeapon type (only present for weapon category items).
mineLevelnumber | undefinedMinimum mine level required to unlock this item.
availabilitystring | undefinedSpecial purchase condition, if any.

GuildCategory

type GuildCategory =
  | 'weapon'
  | 'boots'
  | 'ring'
  | 'slingshot'
  | 'ammo'
  | 'furniture'

GuildWeaponType

type GuildWeaponType = 'sword' | 'dagger' | 'club'

Query Methods

GuildQuery extends QueryBase and inherits five terminal methods:

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

Filter Methods

MethodReturnsDescription
weapons()GuildQueryFilter to weapons only.
boots()GuildQueryFilter to boots only.
rings()GuildQueryFilter to rings only.
slingshots()GuildQueryFilter to slingshots only.
byCategory(category)GuildQueryFilter to items in the given category.
byWeaponType(type)GuildQueryFilter weapons by type: 'sword', 'dagger', or 'club'.
byMineLevel(level)GuildQueryFilter to items that unlock at or below the given mine level.
alwaysAvailable()GuildQueryFilter to items with no special purchase condition.

Sort Methods

MethodReturnsDescription
sortByPrice(order?)GuildQuerySort by price. Pass 'asc' (default) or 'desc'.
sortByName(order?)GuildQuerySort alphabetically by name. Pass 'asc' (default) or 'desc'.
sortByMineLevel(order?)GuildQuerySort by mine level required. Pass 'asc' (default) or 'desc'.

Examples

List all daggers sorted by price

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

const daggers = guild().byWeaponType('dagger').sortByPrice().get()

daggers.forEach((d) => {
  console.log(`${d.name} - ${d.price}g (mine level ${d.mineLevel ?? 'none'})`)
})

Show items unlocked at each mine level milestone

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

const milestones = [0, 20, 40, 60, 80, 100, 120]

milestones.forEach((level) => {
  const count = guild().byMineLevel(level).count()
  console.log(`Mine level ${level}: ${count} items available`)
})

Get the most expensive ring

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

const priciest = guild().rings().sortByPrice('desc').first()

if (priciest) {
  console.log(`${priciest.name} costs ${priciest.price}g`)
}
Previous
Dwarf