List of Game State Queries added by Mods

From Stardew Modding Wiki
Jump to navigation Jump to search

Last edited by AtlasVBot on 2025-09-13 18:47:21

This list presumes you have a basic understanding of Game State Queries and the available Vanilla selection thereof. It has been compiled via a search of Github for the phrase “GameStateQuery.Register” along with some bits and pieces noticed along the way.

In all cases if the first parameter is <player>, <location> or <item>, presume that it is defining context and can use any of the standard Vanilla context strings.

As with the vanilla wiki page, parameters in angle brackets (<>) are mandatory. Parameters in square brackets ([]) are optional. Parameter names ending with “TF” seek either true or false as their string value. Parameters followed by a + allow multiple instances separated by spaces.

If you know of a custom Game State Query added by another mod or added to an existing mod in a patch, please add it!

Button’s Extra Trigger Action Stuff (BETAS)

Documentation

Note: Queries prefixed by ** require special permission flags to be set in the BETAS manifest to operate.

  • Spiderbuttons.BETAS_CHECK_AND_SET_MAIL <MailID> [Type]. True if specified mail is in specified mailbox type for current player at time of query, then sends it. Same mailbox types as vanilla.
  • Spiderbuttons.BETAS_CHECK_AND_REMOVE_MAIL <MailID> [Type]. True if specified mail is specified mailbox type for current player at time of query, tne removes it. Same mailbox types as vanilla.
  • Spiderbuttons.BETAS_CURRENT_SONG [songName]+. True if any of the specified songs are playing, or if none, true if any song is playing.
  • Spiderbuttons.BETAS_GIANT_CROP_GROWN <GiantID>. True if specified giant crop is present in the world. ID must be specified in custom data.
  • Spiderbuttons.BETAS_GOLD_CLOCK_ACTIVE. True if Gold Clock is both constructed and running within the world.
  • Spiderbuttons.BETAS_GRANDPA_SCORE <type> <minimum> [maximum]. True if Grandpa’s score is within specified parameters. Type can be either Score or Candles.
  • Spiderbuttons.BETAS_HAS_MOD <ModID>+. GSQ equivalent of Content Patcher’s HasMod token.
  • Spiderbuttons.BETAS_FARM_MOD_DATA <key> [value]. True if farm location has modData with specified key and, if given, value.
  • Spiderbuttons.BETAS_FARM_MOD_DATA_RANGE <key> <minimum> [maximum]. True if farm location has modData with specified key and numeric value within given range.
  • Spiderbuttons.BETAS_FARM_MOD_DATA_CONTAINS <key> <value>+. True if farm location has modData with specified key and list-style value containing any of the specified values.
  • Spiderbuttons.BETAS_ITEM_ENCHANTMENTS <item> [Enchantment]+. True if context item has any of the specified enchantments, or if not given, any enchantment.
  • Spiderbuttons.BETAS_ITEM_IN_WORLD <ItemID>+. True if any of the specified items exist anywhere within the world.
  • Spiderbuttons.BETAS_ITEM_MOD_DATA <item> <key> [value]. True if context item has modData with specified key and, if given, value.
  • Spiderbuttons.BETAS_ITEM_MOD_DATA_RANGE <item> <key> <minimum> [maximum]. True if context item has modData with specified key and numeric value within given range.
  • Spiderbuttons.BETAS_ITEM_MOD_DATA_CONTAINS <item> <key> <value>+. True if context item has modData with specified key and list-style value containing any of the specified values.
  • **Spiderbuttons.BETAS_GLOBAL_MOD_DATA <ModID> <key> [value]. True if modData from ModID exists anywhere in the save with specified key and, if given, value. Requires GlobalModData permission.
  • **Spiderbuttons.BETAS_GLOBAL_MOD_DATA_RANGE <ModID> <key> <minimum> [maximum]. True if modData from ModID exists anywhere in the save with specified key and numeric value within given range. Requires GlobalModData permission.
  • **Spiderbuttons.BETAS_GLOBAL_MOD_DATA_CONTAINS <ModID> <key> <value>+. True if modData from ModID exists anywhere in the save with specified key and list-style value containing any of the specified values. Requires GlobalModData permission.
  • Spiderbuttons.BETAS_LOCATION_HAS_FURNITURE <location> <ItemID>+. True if context location contains placed furniture matching any of the given IDs. Accepts Any or All for contexts as well as standard location contexts.
  • Spiderbuttons.BETAS_LOCATION_HAS_NPC <location> [NPC]+. True if context location contains any of the specified NPCs, or if not given, any NPC at all.
  • Spiderbuttons.BETAS_LOCATION_MOD_DATA <location> <key> [value]. True if context location has modData with specified key and, if given, value.
  • Spiderbuttons.BETAS_LOCATION_MOD_DATA_RANGE <location> <key> <minimum> [maximum]. True if context location has modData with specified key and numeric value within given range.
  • Spiderbuttons.BETAS_LOCATION_MOD_DATA_CONTAINS <location> <key> <value>+. True if context location has modData with specified key and list-style value containing any of the specified values.
  • Spiderbuttons.BETAS_NPC_IS_SINGLE <NPC>+. True if any of the NPCs are not dating, engaged or married to any player.
  • Spiderbuttons.BETAS_NPC_KISSED_TODAY <NPC>+. True if any of the NPCs have been kissed today by any player.
  • Spiderbuttons.BETAS_NPC_LOCATION <NPC> <Location>+. True if specified NPC is in any of the specified location IDs. Can use “Any” for the NPC parameter.
  • Spiderbuttons.BETAS_NPC_NEAR_AREA <Location> <X> <Y> <Radius> [NPC]+. True if any NPC, optionally filtered by name, is within the given radius of tile coordinates in a location id.
  • Spiderbuttons.BETAS_NPC_NEAR_NPC <TargetNPC> <Radius> [NPC]+. True if TargetNPC is within given radius of any of the listed other NPCs, or if not provided, any NPC at all.
  • Spiderbuttons.BETAS_NPC_NEAR_PLAYER <player> <Radius> [NPC]+. True if any NPC, optionally filtered by name, is within the given radius of the context player.
  • Spiderbuttons.BETAS_PLAYER_ANNIVERSARY_TODAY <player>. True if context player has wedding anniversary today.
  • Spiderbuttons.BETAS_PLAYER_BACKPACK_SIZE <player> <minimum> [maximum]. True if context player’s backpack size is within given parameters.
  • Spiderbuttons.BETAS_PLAYER_DANCE_PARTNER <player> [NPC]. True if player has asked specified NPC to dance, or if not provided, any partner at all. NPC param can also be sent to “Farmer” to test if player has asked a farmhand.
  • Spiderbuttons.BETAS_PLAYER_DAYS_MARRIED <player> <minimum> [maximum]. True if player has been married for a day count within given parameters.
  • Spiderbuttons.BETAS_DAYS_UNTIL_HOUSE_UPGRADE <player> <minimum> [maximum]. True if context player has a house upgrade in progress set to complete within given number of days.
  • Spiderbuttons.BETAS_PLAYER_EMPTY_INVENTORY_SLOTS <player> <minimum> [maximum]. True if context player has given number of vacant spaces in inventory.
  • Spiderbuttons.BETAS_PLAYER_FULL_INVENTORY_SLOTS <player> <minimum> [maximum]. True if context player has given number of occupied spaces in inventory.
  • Spiderbuttons.BETAS_PLAYER_FESTIVAL_SCORE <player> <minimum> [maximum]. True if context player’s score for the current festival is within specified range.
  • Spiderbuttons.BETAS_PLAYER_HAS_COOKED_ITEM <player> <ItemID> <minimum> [maximum] True if context player has cooked the specified recipe within the given number of times.
  • Spiderbuttons.BETAS_PLAYER_HAS_CRAFTED_ITEM <player> <ItemID> <minimum> [maximum] True if context player has crafted the specified recipe within the given number of times.
  • Spiderbuttons.BETAS_PLAYER_HAS_EQUIPPED <player> <ItemID>+ True if context player has equipped (is holding/wearing) any of the specified items. Valid for tools, weapons, rings, apparel and trinkets.
  • Spiderbuttons.BETAS_PLAYER_HAS_QUEST <player> <questID>. True if context player has specified quest in their log.
  • Spiderbuttons.BETAS_PLAYER_HEALTH <player> <minimum> [maximum]. True if context player’s current health is within given range.
  • Spiderbuttons.BETAS_PLAYER_HELD_ITEM <player> <ItemID>+. True if context player has any of the specified items selected in their inventory.
  • Spiderbuttons.BETAS_PLAYER_MAX_HEALTH <player> <minimum> [maximum]. True if context player’s current health cap is within given range.
  • Spiderbuttons.BETAS_PLAYER_MAX_STAMINA <player> <minimum> [maximum]. True if context player’s current stamina (energy) cap is within given range.
  • Spiderbuttons.BETAS_PLAYER_MOD_DATA <player> <key> [value]. True if context player has modData with specified key and, if given, value.
  • Spiderbuttons.BETAS_PLAYER_MOD_DATA_RANGE <player> <key> <minimum> [maximum]. True if context player has modData with specified key and numeric value within given range.
  • Spiderbuttons.BETAS_PLAYER_MOD_DATA_CONTAINS <player> <key> <value>+. True if context player has modData with specified key and list-style value containing any of the specified values.
  • Spiderbuttons.BETAS_PLAYER_MOUNTED <player>. True if context player is currently on a horse/rideable item.
  • Spiderbuttons.BETAS_PLAYER_PERFECTION_FISH_CAUGHT <player> <Calculation> <minimum> [maximum]. True if context player has caught unique fish within the given range. Calculation can either be Raw or Percent. Ignores perfection exclusions.
  • Spiderbuttons.BETAS_PLAYER_PERFECTION_FRIENDSHIP <player> <Calculation> <minimum> [maximum]. True if context player has maxed friendships within the given range. Calculation can either be Raw or Percent. Ignores perfection exclusions, only counts if NPCs are social.
  • Spiderbuttons.BETAS_PLAYER_PERFECTION_ITEMS_SHIPPED <player> <Calculation> <minimum> [maximum]. True if context player has shipped “Basic Shipping” items within the given range. Calculation can either be Raw or Percent. Ignores perfection exclusions.
  • Spiderbuttons.BETAS_PLAYER_PERFECTION_RECIPES_COOKED <player> <Calculation> <minimum> [maximum]. True if context player has cooked unique recipes within the given range. Calculation can either be Raw or Percent.
  • Spiderbuttons.BETAS_PLAYER_PERFECTION_RECIPES_CRAFTED <player> <Calculation> <minimum> [maximum]. True if context player has crafted unique recipes within the given range. Calculation can either be Raw or Percent.
  • Spiderbuttons.BETAS_PLAYER_SPEED <player> <minimum> [maximum]. True if player’s current walk speed is within the given range. Minimum and Maximum can be floats.
  • Spiderbuttons.BETAS_PLAYER_SPOUSE_GENDER <player> <gender>. True if context player has a spouse matching the given gender, any of Male, Female or Undefined.
  • Spiderbuttons.BETAS_PLAYER_STAMINA <player> <minimum> [maximum]. True if context player’s current stamina (energy) is within given range.
  • Spiderbuttons.BETAS_PLAYER_STARDROPS_FOUND <player> <minimum> [maximum]. True if context player’s count of found stardrops is within given range.
  • Spiderbuttons.BETAS_PLAYER_SWIMMING <player>. True if context player is currently swimming.
  • Spiderbuttons.BETAS_PLAYER_WEDDING_TODAY <player>. True if context player will trigger wedding event today.
  • Spiderbuttons.BETAS_SALOON_DISH <ItemID>+. True if any of the specified items are the current saloon dish of the day.
  • Spiderbuttons.BETAS_TOTAL_CROPS <Minimum> [Maximum] [ItemId]+. True if count of mature crops in the world, optionally filtered by ID, is within given parameters. HarvestItemID or SeedID may be used. To filter without a max, set set maximum to -1.
  • Spiderbuttons.BETAS_TOTAL_PETS <Minimum> [Maximum] [PetType]+. True if count of pets owned, optionally filtered by type, is within given parameters. To filter without a max, set maximum to -1.
  • Spiderbuttons.BETAS_USING_SEPARATE_WALLETS. True if current multiplayer save is configured to use separate wallets per farmhand.
  • Spiderbuttons.BETAS_VOLUME <Category> <Minimum> [Maximum]. True if player volume setting is within specified parameters for any of Category: Music, Sound, Footstep, or Ambient.
  • Spiderbuttons.BETAS_WEATHER_FOR_TOMORROW <locationContext> <Weather>+. True if weather for tomorrow in specified location context matches any of the offered types, e.g. Sun, Wind, Rain.

Cauldron

Undocumented. Sourced from personal decompile.

  • CAULDRON_CONFIG_VALUE <key> <value>+. Tests for Cauldron config value.
  • Atelier.Cauldron_HasMoss. Tests if shaken tree has moss.

Dynamic Dialogues

Documentation

  • mistyspring.dynamicdialogues_PlayerWearing <player> <type> <itemID> [onlywornTF]. True if context player is wearing specified item. Type can be any of the relevant clothing qualifiers: (H), (S), (R), (P), (B) but not (TR). Onlyworn should be true if the display type of the garment should be ignored, default False.

Esca’s Modding Plugins

Documentation

  • Esca.EMP_CAN_PLAYER_MOVE. World is ready, player is free and able to move.
  • Esca.EMP_IS_PLAYER_FREE. World is ready, player is free.
  • Esca.EMP_IS_SPLIT_SCREEN. Player is connected via split-screen multiplayer.
  • Esca.EMP_IS_TIME_PASSING. True if game is not paused.
  • Esca.EMP_IS_WORLD_READY. World is ready.

Farm Type Manager

Documentation

  • Esca.FarmTypeManager_LOCATION_EXISTS <location>. Named location is currently loaded.
  • Esca.FarmTypeManager_LOCATION_IS_ACTIVE <location>. Named location is loaded and shared with local player.
  • Esca.FarmTypeManager_NUMBER_OF_MONSTERS <location> <minimum> [maximum]. True if location context has spawned monster count within given parameters.

Hat Mouse Lacey

Undocumented. Mod Source

  • ichortower.HatMouseLacey_PLAYER_HAS_SHOWN_HAT <player> <hatID> <shownTF>. True if context player has shown hatID to Lacey.
  • ichortower.HatMouseLacey_PLAYER_SHOWN_HAT_COUNT <player> <minimum> [maximum]. True if total hats shown by context player are within given parameters.

Nature In the Valley

Documentation

  • NAT_NIV_CaughtSpecific <creatureName>. True if any player has caught the specified creature.
  • NAT_NIV_DonatedTotalPercent <minimum>. True if at least minimum (float) percent of creatures have been donated to Insectarium.
  • NAT_NIV_DonatedSpecific <creatureName>. True if creature with given name has been donated.
  • NAT_NIV_Exists <creatureName>. True if specified creature exists in data.
  • NAT_NIV_SpawnedSpecific <creatureName>. True if specified creature is currently spawned in the world.
  • NAT_NIV_TriggerArbitraryCheck <index> <value>. For use in TriggerAction Condition fields only. In response to a trigger, tests if target item’s data at <index> position within the model matches <value>.
  • NAT_NIV_TriggerNameCheck <string>. For use in TriggerAction Condition fields only. In response to a trigger, tests if target item has name matching specified string.
  • NAT_NIV_TriggerNaturalCheck. For use in TriggerAction Condition fields only. In response to a trigger, tests if target item spawned naturally.
  • NAT_NIV_TriggerTileCheck <x> <y>. For use in TriggerAction Condition fields only. In response to a trigger, tests if target item has spawned on the given coordinates. X and Y are both parsed as floats.

Secret Note Framework

Documentation

  • ichortower.SecretNoteFramework_PLAYER_HAS_MOD_NOTE <player> <note_id>. True if context player has read the specified secret note. Note must be defined in custom data.

SpaceCore

Documentation Note: none of these queries take a mod ID prefix.

  • NEARBY_CROPS <radius> <cropID>. For use in SpaceCore CropExtensionData>YieldOverrides>PerItemCondition only. True if mature crop matching cropID is within the specified radius.
  • PLAYER_[SKILL]_LEVEL <player> <minimum> [maximum]. Created by default for every custom skill registered, e.g. PLAYER_COOKING_LEVEL, PLAYER_BINNING_LEVEL. True if context player buffed skill level is within specified parameters.
  • PLAYER_SEEN_CONVERSATION_TOPIC <player> <topicID>. True if context player has seen specified topic in the past.

Special Power Utilities

Documentation Note: Query does not take a mod ID prefix.

  • PLAYER_HAS_POWER <player> <powerID>. True if context player has unlocked specified power.

Stardew Aquarium

Undocumented, via personal decompile

  • StardewValleyAquarium_PLAYER_HAS_BAIT <player>. True if player is using fishing rod with bait stack.
  • StardewValleyAquarium_RANDOM_CHANCE_FOR_PUFFER. Seeded random (0.01 + 0.005 + totalDonatedFish) into nextBool. Determines chance for pufferchick fish to spawn.

Stardew Archipelago

Undocumented. Mod Source

  • KaitoKid.StardewArchipelago.GameStateCondition.HAS_RECEIVED_ITEM <amount> <itemName>. True if player has received a minimum number of a given item. itemName can contain spaces.
  • KaitoKid.StardewArchipelago.GameStateCondition.HAS_RECEIVED_ITEM_EXACT_AMOUNT <amount> <itemName>. True if player has received a specific number of a given item.
  • KaitoKid.StardewArchipelago.GameStateCondition.HAS_STOCK_SIZE <minimum>. True if traveling merchant is accessible today and has any item for sale with a stack size greater than or equal to the minimum.
  • KaitoKid.StardewArchipelago.GameStateCondition.FOUND_ARTIFACT <itemID>. True if player has found specified artifact.
  • KaitoKid.StardewArchipelago.GameStateCondition.FOUND_MINERAL <itemID>. True if player has found specified mineral.

Trinket Tinker

Documentation

For all of these, a “compare” parameter takes the format of “operator integer”, e.g. “<1”, “>=2”, “!=10”, etc.

  • mushymato.TrinketTinker_ENABLED_TRINKET_COUNT <item> <playerKey> <equip count compare>. True if total equipped trinkets matching item context have been equipped across all players in player context.
  • mushymato.TrinketTinker_IN_ALT_VARIANT <item> <altVariantKey>. True if context item spawns companions and the spawned companion is a variant of the base. e.g. a prismatic frog instead of a green one.
  • mushymato.TrinketTinker_IS_TINKER <item> [level compare] [variant compare]. True if context item has tinker data with level and variant matching given compare queries.
  • mushymato.TrinketTinker_TRINKET_HAS_ITEM <item> <itemId> <item count compare>. True if context item has inventory containing itemId with a stack size matching the comparison.
  • mushymato.TrinketTinker_HAS_LEVELS <item>. True if context item has at least two unlocked levels.
  • mushymato.TrinketTinker_HAS_VARIANTS <item>. True if context item has at least two unlocked variants.