List of Triggers and Trigger Actions added by Mod Frameworks

From Stardew Modding Wiki
Jump to navigation Jump to search

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

Several mod frameworks exist which add custom Triggers or Trigger Actions which you can use in your mods. While this is not an exhaustive list, it includes several that I have found while trawling through Github.

Some of these Triggers and Actions are not mentioned in the respective mod documentation, particularly the ones from mods that aren't really "frameworks" but expansions (e.g. Archipelago, SVE, Ridgeside, etc.). I have tried my best in these cases to determine what they do. Undocumented triggers/actions are included so that other devs to use them as references in making other similar methods, although I suppose one could use them outright provided the necessary dependencies are in place.

If you encounter others or create a framework containing others please add them!

In the list below, a parameter name followed by "TF" indicates it's a boolean (true/false) parameter.

Button's Extra Trigger Action Stuff (BETAS)

BETAS documentation

BETAS adds a ton of triggers and actions. This is a cursory and non-exhaustive overview. Please visit the documentation for more info on parameters, formats and returned data from triggers.

Triggers

  • SpiderButtons.BETAS_AnimalPetted
  • SpiderButtons.BETAS_BombExploded
  • SpiderButtons.BETAS_BookRead
  • SpiderButtons.BETAS_CropHarvested
  • SpiderButtons.BETAS_DamageTaken
  • SpiderButtons.BETAS_DialogueOpened
  • SpiderButtons.BETAS_ExperienceGained
  • SpiderButtons.BETAS_FishCaught
  • SpiderButtons.BETAS_FloraShaken
  • SpiderButtons.BETAS_ForgeUsed
  • SpiderButtons.BETAS_GarbageChecked
  • SpiderButtons.BETAS_GiftGiven
  • SpiderButtons.BETAS_ItemBought
  • SpiderButtons.BETAS_ItemSold
  • SpiderButtons.BETAS_ItemEqupped (Similar Trigger available from Item Extensions, see below)
  • SpiderButtons.BETAS_ItemUnequipped (Similar Trigger available from Item Extensions)
  • SpiderButtons.BETAS_LetterRead
  • SpiderButtons.BETAS_LightningStruck
  • SpiderButtons.BETAS_MenuChanged
  • SpiderButtons.BETAS_MinecartUsed
  • SpiderButtons.BETAS_MonsterKilled
  • SpiderButtons.BETAS_MorningStarted
  • SpiderButtons.BETAS_MusicChanged
  • SpiderButtons.BETAS_NpcArrived
  • SpiderButtons.BETAS_NpcKissed
  • SpiderButtons.BETAS_PassedOut
  • SpiderButtons.BETAS_QuestAdded
  • SpiderButtons.BETAS_RelationshipChanged
  • SpiderButtons.BETAS_ShopOpened
  • SpiderButtons.BETAS_SwimmingChanged

Actions

  • SpiderButtons.BETAS_AddExperience [Amount] [Skill]. Adds XP in any skill, including modded skills, to the current player.
  • SpiderButtons.BETAS_EmoteFarmer [emote id]. Makes the farmer display an emote.
  • SpiderButtons.BETAS_EmoteNpc [npc] [emote id]. Makes an NPC display an emote.
  • SpiderButtons.BETAS_Lightning [X] [Y]. Makes lighthing strike.
  • SpiderButtons.BETAS_MakeMachineReady [machine id] [output Id] [location] [count]. Forces machines to instantly finish their current production.
  • SpiderButtons.BETAS_SetNewDialogue [npc] [dialogue] [appendTF]. Replaces or appends dialogue to the given NPC.
  • SpiderButtons.BETAS_TextAboveHead [npc] [dialogue] [duration] [delay] [jitterTF] [color]. Shows speech bubble over an NPC's head.
  • SpiderButtons.BETAS_WarpFarmer [Location] [X] [Y} [FacingDirection]. Warps the farmer.
  • SpiderButtons.BETAS_WarpNpc [NPC] [Location] [X] [Y] [FacingDirection]. Warps an NPC.
  • SpiderButtons.BETAS_UpdateAppearance [NPC] [ID]. Switches which NPC sprite is shown.
  • SpiderButtons.BETAS_ChangeMusicTrack [Track]. Changes current music track.
  • SpiderButtons.BETAS_EatObject [ItemId] [FromInventoryTF]. Forces current player to eat an object, optionally from their own inventory.
  • SpiderButtons.BETAS_ReloadItemField [ItemId] [Field]+. Resets a specific field within an item's model globally.
  • SpiderButtons.BETAS_SetHealth [Value] [OverrideTF]. Sets health of current player, overriding max possible if specified.
  • SpiderButtons.BETAS_SetStamina [Value] [OverrideTF]. Sets stamina of current player, overriding max possible if specified.
  • SpiderButtons.BETAS_RandomAction [Action String]+. Select a random action from a list of provided action strings.
  • SpiderButtons.BETAS_DelayedAction [Action String] [Delay]. Perform the action string after the delay has elapsed.
  • SpiderButtons.BETAS_FadeToBlack [Duration]. Black out the screen for a period of time.
  • SpiderButtons.BETAS_SetFriendshipPoints [NPC] [Points]. Self-explanatory.
  • SpiderButtons.BETAS_RegionalFriendship [HomeRegion] [Amount] [SetTF]. Sets or appends friendship points with every NPC living in a given Home region.
  • SpiderButtons.BETAS_WeatherForTomorrow [LocationContext] [Weather]. Sets the weather for tomorrow for a given Location Context.
  • SpiderButtons.BETAS_Message [Text]. Display simple dialogue box.
  • SpiderButtons.BETAS_DialogueBox [NPC] [Message] [Portrait] [DIsplayName]. Display a full dialogue box with NPC portrait.
  • SpiderButtons.BETAS_ShakeNpc [NPC] [Duration]. Make the NPC vibrate.
  • SpiderButtons.BETAS_AddQiCoins [Amount]. Self-explanatory.
  • SpiderButtons.BETAS_AddFestivalScore [Amount]. Increase score for the current festival.
  • SpiderButtons.BETAS_PatchUpdate [UniqueID]. Force Content Patcher to reload a mod.
  • SpiderButtons.BETAS_WritePlayerModData [Key] [Value]. Set a specific ModData key in the player's save.
  • SpiderButtons.BETAS_RemovePlayerModData [Key] [Value]. Unset a specific ModData key in the player's save
  • SpiderButtons.BETAS_ClearTerrainFeatures [Location] [Type] [TopLeftX] [TopLeftY] [BottomRightX] [BottomRightY]. Remove all terrain features.
  • SpiderButtons.BETAS_ClearObjects [Location] [Type] [TopLeftX] [TopLeftY] [BottomRightX] [BottomRightY]. Remove all objects.
  • SpiderButtons.BETAS_RegeneratePathsLayer [Location] [X] {Y] [Width] [Height]. Regenerates terrain based on paths layer for location (default Here) in given area, starting at X, Y, default 0, 0, max map size.

Calcifer

Calcifer Documentation

Triggers

  • sophie.Calcifer_FurnitureTriggered: Player interacts with a piece of furniture (note underscore instead of slash in trigger.)
  • sophie.Calcifer/MachineLoaded [Player] {Location] [TargetItem] [InputItem]. Player loads item into machine.
  • sophie.Calcifer/MachineHarvested [Player] [Location] [TargetItem] [InputItem]. Player collects output from a machine.
  • sophie.Calcifer/StatMilestoneReached [Stat] [Milestone]. Player surpasses a stat milestone as defined in Calcifer custom data.
  • sophie.Calcifer/TriggerZoneEntered. Player enters a Trigger Zone as defined in Calcifer custom data. (Undocumented.)

Content Patcher

Content Patcher Trigger Actions Documentation

Actions

  • Pathoschild.ContentPatcher_MigrateIds [type] [old id] [new id]. Allows conversion of IDs from old versions of Stardew (including old frameworks) to conform to newer versions in players' save files. For example, mods that once used Json Assets and now wish to switch to Content Patcher may use this to automatically update old game saves to use the new IDs.

Dynamic Dialogues

Dynamic Dialogues Documentation

Actions

  • mistyspring.dynamicdialogues_AddExp <player> <skill> <amount>. Adjusts player XP in selected skill by specfied amount.
  • mistyspring.dynamicdialogues_DoEvent <eventID> <location> [preconditionsTF] [seenTF] [resetTriggerTF]. Must run with trigger DayStarted. Plays specified event, optionally overriding preconditions and seen status, and optionally resetting the trigger if the event does not complete.
  • mistyspring.dynamicdialogues_SendNotification <notificationID> <ifNotSentTF>. Sends Notification based on Custom Data IDs, optionally only if not already sent.
  • mistyspring.dynamicdialogues_Speak <NPC> <key> [overrideTF]. Makes NPC speak a specific dialogue key, optionally overriding queued dialogue and actions.

Esca's Modding Plugins (EMP)

EMP Documentation

Triggers

  • Esca.EMP_GameLaunched
  • Esca.EMP_OneSecondUpdateTicked
  • Esca.EMP_ReturnedToTitle
  • Esca.EMP_SaveLoaded
  • Esca.EMP_TimeChanged

Actions

  • Esca.EMP_LogMessage [Message]. Sends a message to the SMAPI console.

Generic Mod Config Menu (GMCM)

GMCM has only one undocumented action. Mod Source

Actions

  • spacechase0.GenericModConfigMenu_OpenModConfig <modID>. Opens the GMCM menu for a specific mod.

Hat Mouse Lacey

All undocumented. Mod Source

Actions

  • ichortower.HatMouseLacey.Core_AdvanceTime <time>. Advances time to given 3 or 4 digit integer. Must be divisible by 10.
  • ichortower.HatMouseLacey.Core_TryAddNextHatCountCT. Tries to add next tier of conversation topic based on how many hats player has shown to NPC Lacey.
  • ichortower.HatMouseLacey.Core_WarpOut. Forces player to leave current location.
  • ichortower.HatMouseLacey.Core_WarpHome. Forces player to warp home.

Item Extensions

Item Extensions Documentation

Triggers

  • mistyspring.ItemExtensions_OnBeingHeld. When farmer starts holding an item over their head.
  • mistyspring.ItemExtensions_OnStopHolding.
  • mistyspring.ItemExtensions_OnItemDropped.
  • mistyspring.ItemExtensions_OnEquip.
  • mistyspring.ItemExtensions_OnUnequip.
  • mistyspring.ItemExtensions_AddedToStack. When an item is added to an existing stack.

Livestock Bazaar

Livestock Bazaar Documentation

Triggers

  • mushymato.LivestockBazaar_purchasedAnimal [AnimalHouse] [FarmAnimal]

Actions

  • mushymato.LivestockBazaar_Shop <shopID>. Opens Livestock Bazaar shop; with the given Id.

Misc. Map Action Properties (MMAP)

MMAP Documentation

Triggers

  • mushymato.MMAP_MoveObjectsForHouseUpgrade. Game attempts to move interior objects following FarmHouse upgrade completion.
  • mushymato.MMAP_ProtectTree. All wild trees in a location gain protection from chopping. (Undocumented.)
  • mushymato.MMAP_ProtectFruitTree. All fruit trees in a location gain protection from chopping. (Undocumented.)

Actions

  • mushymato.MMAP_HoleWarp <location> <x> <y> [mailflag]. Opens a hole in the ground warping to location/x/y, optionally sending mail.
  • mushymato.MMAP_QuestionDialogue <dialogueID>. Opens a question dialogue box with ID as defined in MMAP custom data.
  • mushymato.MMAP_ShiftContents <sourceX> <sourceY> <targetX> <targetY> <areawidth> <areaheight> [LocationName]. Moves all contents in an area of areaWidth x areaHeight starting at sourceX, sourceY to targetX, targetY. If LocationName is not specified, default is FarmHouse.
  • mushymato.MMAP_ShowConstruct <builder> [restrictTF]. Shows construction menu for builder (either Robin or Wizard). If restrict is true, only opens if nothing else is being constructed at this time.
  • mushymato.MMAP_ShowConstructForCurrent <builder> [restrictTF]. As above, but for current area only.

Nature In the Valley

Nature In the Valley Documentation

Triggers

  • NAT_NIV_Caught [creatureID]. Creature is caught by the player.
  • NAT_NIV_Spawned [creatureID] [tilex} [tileY]. Creature is spawned.

Actions

  • NAT_NIV_ClearCreatures. Clears the list of spawned creatures.
  • NAT_NIV_InstantiateSpecificCreature <CreatureName> <TileX> <TileY>. Spawns a creature at given tile.
  • NAT_NIV_InstantiateSpecificNearTriggered <CreatureName> <Range>. Spawns a creature within range of the player.
  • NAT_NIV_RemoveSpecific <CreatureID> [count]. Force despawns creatures starting with most recently spawned, default 1.
  • NAT_NIV_TryCatch <relativeX> <relativeY>. Try to catch a creature at x, y relative to player's current position. Note: x, y are relative, not absolute.

Ridgeside Village

All undocumented. Mod Source

Triggers

  • Rafseazz.RidgesideVillage_GiftTorts <itemID>. On gifting NPC Torts an item.
  • Rafseazz.RidgesideVillage_OfferingMade <itemID>. On tossing an item into the water at the Ridge Falls location.
  • Rafseazz.RidgesideVillage_OfferNormalObject. On tossing any non-trash object not covered by the OfferingMade trigger into the water at Ridge Falls.

Actions

  • Rafseazz.RidgesideVillage_GrowPlants. Immediately completes growing all planted crops in locations Farm and Summit Farm.
  • Rafseazz.RidgesideVillage_ForecastRain. Forces it to rain tomorrow.
  • Rafseazz.RidgesideVillage_ForecastSun. Forces it to be sunny tomorrow.
  • Rafseazz.RidgesideVillage_BoostLuck. All players have max luck all day.
  • Rafseazz.RidgesideVillage_BabyChance. Current player has 50% chance of spouse asking for a baby that night.
  • Rafseazz.RidgesideVillage_MeteorChance. 10% chance of meteor landing on Farm that night.
  • Rafseazz.RidgesideVillage_Lore. NPC Raeriyala tells some lore about offered item.
  • Rafseazz.RidgesideVillage_QuestItem. Raeriyala tells player to return offered Quest Item to its owner.
  • Rafseazz.RidgesideVillage_NormalResponse. Raeriyala gives random positive dialogue.
  • Rafseazz.RidgesideVillage_TrashResponse. Raeriyala gives random negative dialogue.
  • Rafseazz.RidgesideVillage_ApplyInterest. Deduct 10% from all items shipped via the bin until Loan is Repaid.
  • Rafseazz.RidgesideVillage_LoanReminderMessage. Sends chat message with total paid in loan interest from shipped items the previous night.

Polyamory Sweet

Undocumented. Mod Source

Actions

  • Mermaid_Hug <NPC>. Makes current player hug the given NPC. This action is not prefixed by the mod ID!

Secret Note Framework

Secret Note Framework Documentation

Actions

  • ichortower.SecretNoteFramework_MarkModNoteSeen <player> <noteID> [seenTF]. Marks a secret note as defined in custom data as seen or unseen for specified player context. Default seen.

SpaceCore

Spacecore Documentation.

Triggers

  • spacechase0.SpaceCore_OnItemUsed
  • spacechase0.SpaceCore_OnItemEaten

Actions

  • spacechase0.SpaceCore_PlaySound [sound] [localTF]. Plays a sound, either locally or globally
  • spacechase0.SpaceCore_ShowHudMessage [message] [icon qid]. Shows a HUD message (bottom left corner of the screen) with optional icon.
  • spacechase0.SpaceCore_PlayEvent [event ID] [IfNotSeenTF]. Starts an event, optionally qualified by if the player has already seen it.
  • spacechase0.SpaceCore_DamageCurrentFarmer [amount]. Self-explanatory.
  • spacechase0.SpaceCore_ApplyBuff [Buff id] [Source flavor Text]. Applies buff to player, with optional decorative tooltip text.
  • spacechase0.SpaceCore_TriggerSpawnGroup [spawn group ID] [location] [includeRegions] [excludeRegions]. Force spawns a group of predefined items at a given location.
  • spacechase0.SpaceCore_ClearSetPiecesFromSpawnable [spawnDefinitionId] [location]. Removes anything remaining of a spawn group.
  • spacechase0.SpaceCore_OpenGuidebook [bookID] Opens guidebook with given ID as defined in custom data. (Undocumented.)

Special Power Utilities (SPU)

SPU Documentation

Actions

  • Spiderbuttons.SpecialPowerUtilities/Actions/SetPowerAvailable [player] <powerID>. Sets flag within power's custom data as available for context player, default Current. This flag does nothing on its own unless your content has a handler for it.
  • Spiderbuttons.SpecialPowerUtilities/Actions/SetPowerUnavailable [player] <powerID>. Sets flag within power's custom data as unavailable for context player, default Current.

Stardew Archipelago

This action is undocumented. Mod Source

Actions

  • KaitoKid.StardewArchipelago.TriggerAction.TravelingMerchantPurchase. Purchase a random item from the Traveling Merchant's current stock.

Stardew Valley Expanded

All undocumented. Mod Source

Triggers

  • Flashshifter.SVECode_SwimInGrove. Player swims at the Sprite Spring location for at least 3 seconds.

Actions

  • FlashShifter.SVECode_ApplyGrandpasGroveBuff. Applies random buff from choice of Farming 3, Fishing 3, Mining 3, Foraging 3 or Attack 3 for 2 minutes to current player.

Trinket Tinker

Trinket Tinker Documentation

Actions

  • mushymato.TrinketTinker_EquipHiddenTrinket [trinket ID] [level] [variant] [days]. Equips a hidden trinket on the player for a certain number of days.
  • mushymato.TrinketTinker_UnequipHiddenTrinket [trinket ID] [level] [variant]. Removes a hidden trinket from the player.
  • mushymato.TrinketTinker_ProcTrinket [trinket ID] [level] [variant]. Forces all relevant trinkets to apply their effects.

Unlockable Bundles

Unlockable Bundles Documentation

Actions

  • UB_AddCurrency <player> <currencyID> <amount>. Alters amount of wallet currency as defined in custom data for context player.
  • UB_PlaceBundle <bundleID>. Places bundle with the given ID into the game based on custom data positioning.
  • UB_ResetDigSpot <player> <location> <x> <y> [resetMailKeyTF]. Regenerates a dig spot for context player at the given location and coordinates, optionally revoking a mail flag generated by a previous dig at that location.