Fishing & Mining

Artifacts

Access all artifact data in Stardew Valley including find locations, donation notes, and sell prices.

Quick Start

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

// All artifacts
const all = artifacts().get()

// Artifacts with donation notes
const donatable = artifacts().withDonationNotes().get()

// Artifacts found via fishing
const fishingArtifacts = artifacts().fromFishing().get()

// Sort by sell price
const valuable = artifacts().sortBySellPrice().get()

Type Definition

interface Artifact {
  id: string
  name: string
  description: string
  sellPrice: number
  locations: string[]
  donationNotes: string | null
  image: string
}

Field Reference

FieldTypeDescription
idstringUnique identifier.
namestringDisplay name (e.g. "Dwarf Scroll I").
descriptionstringIn-game description text.
sellPricenumberBase sell price in gold.
locationsstring[]Where the artifact can be found (dig spots, fishing, monster drops, etc.).
donationNotesstring | nullNotes about donating to the museum, or null.
imagestringPath to the image asset.

Query Methods

The artifacts() function returns an ArtifactQuery instance. All methods return a new ArtifactQuery for chaining.

Inherited Methods

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

Filter Methods

MethodSignatureDescription
withDonationNoteswithDonationNotes()Filter to artifacts that have donation reward notes.
fromFishingfromFishing()Filter to artifacts obtainable from fishing treasure chests.

Sort Methods

MethodSignatureDefaultDescription
sortByNamesortByName(order?: 'asc' | 'desc')'asc'Sort alphabetically by name.
sortBySellPricesortBySellPrice(order?: 'asc' | 'desc')'desc'Sort by sell price (highest first).

Examples

Most valuable artifacts

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

const top5 = artifacts().sortBySellPrice().get().slice(0, 5)

top5.forEach((a) => {
  console.log(`${a.name}: ${a.sellPrice}g`)
})

Artifacts with donation rewards

const withNotes = artifacts().withDonationNotes().get()

withNotes.forEach((a) => {
  console.log(`${a.name}: ${a.donationNotes}`)
})

Fishing treasure chest artifacts

const fishingFinds = artifacts().fromFishing().sortByName().get()

fishingFinds.forEach((a) => {
  console.log(`${a.name} - found via: ${a.locations.join(', ')}`)
})

Find an artifact by name

const scroll = artifacts().findByName('Dwarf Scroll I')
if (scroll) {
  console.log(`${scroll.name}: ${scroll.description}`)
  console.log(`Locations: ${scroll.locations.join(', ')}`)
}

Total artifact count

console.log(`There are ${artifacts().count()} artifacts to collect`)
Previous
Minerals