Other user's assetsAll the assets in this file belong to the author, or are from free-to-use modder's resources
Upload permissionYou are not allowed to upload this file to other sites under any circumstances
Modification permissionYou are allowed to modify my files and release bug fixes or improve on the features so long as you credit me as the original creator
Conversion permissionYou are not allowed to convert this file to work on other games under any circumstances
Asset use permissionYou must get permission from me before you are allowed to use any of the assets in this file
Asset use permission in mods/files that are being soldYou are not allowed to use assets from this file in any mods/files that are being sold, for money, on Steam Workshop or other platforms
Asset use permission in mods/files that earn donation pointsYou are not allowed to earn Donation Points for your mods if they use my assets
Author notes
Please don't distribute own forks as your official mod. If you create unofficial compatibility patch with newer SMAPI or SDV, you can distribute it, but credit me as original author. Also don't redistribute this file or compiled binaries of original sources here or on another sites. Thanks.
If you want to create your own fork and distribute binaries here on Nexusmods or on other sites, please ask me for permission first. If you are distributing compatibility unofficial patch you are allowed automatically to distribute, just credit me as original author and add -unofficial.<number> after semantic version tag.
File credits
PurrplingCat (mod author) kdau (special thanks for help with creationg of this mod)
Donation Points system
This mod is opted-in to receive Donation Points
Changelogs
Version 1.3.1
Fixed problems with reintegrate quests
Version 1.3.0
Quest bulletin board in town now chooses random quest when is offered more quests of the day in the same day
Added custom drop box support for special orders
Added texture loader for content packs (allows load texture added by Content Patcher)
When NPC offers you a quest via dialogue, an indicator is shown above their head. (You can disable it in config.json)
Added support for custom quest and special order boards (in any location what you want)
Managed quests are scrollable in questlog if content needs scroll (like special orders)
Added support for multiple objectives (for future features)
Fixed some multiplayer problems
Added extra optional field Secret for OfferDetails of NPC quest offer.
Added field CustomDropBoxes for define custom drop boxes for special orders (see docs)
Added field CustomBoards for define custom quest or special order boards (see docs)
New managed API method RegisterCustomBoard
New CustomQuest apis: GetCurrentObjectives, UpdateUpdateCurrentObjectives methods for define multiple objectives for a quest. (You must handle objectives manually in your quest code)
Version 1.2.1
Update to work with Stardew Valley 1.5 (SMAPI 3.8)
Version 1.2.0
Internal hook API is deprecated
Added support for gain additional friendship by complete a quest
Added support for custom background texture and font colors for quest details window in quest log menu
Added support for new types of quest reward: Object and Weapon
Fixed some issues with multiplayer
Write quest type classes in console for quests_list, quests_log and quests_customtypes
Added new command quests_customtypes
Added field FriendshipGain for define how much friendship points for which NPCs player gains after quest completion
Added new fields for quest: RewardType, RewardAmount, Texture and Colors
Added support for custom quest types in content packs (via <modUid>/<questTypeName> in Type field)
Better error messages
Added simple API for mods which wants work with QF and do basic stuff (like resolve quest id from name; check if quest is managed; ...) without referencing dll.
Added property ConditionFunc on QuestOffer class for support additional programatic condition
Added new API on CustomQuest class for define how much friendship points for which NPCs player gains after quest completion
Added new APIs for define quest reward type, custom bg texture nad font colors
Deprecated IStateful.ResetState() and IManagedQuestApi.GetById now raise a compilation error when it is used in code
Added active state
Added new state interfaces: IPersistentState and IReactiveState
Added support for disposable quest state (by implementing IDisposable interface)
Added new APIs for expose custom quest types (class)
Exposed ITriggerLoader interface
Version 1.1.1
Fixed vanilla SDV quest type id resolving (this fixes problem with item harvest quest completion)
Fixed item harvest quest current objective
Added command for list raw content from `Data\Quests` (command `quests_list raw`)
Added korean translation (thx KAYA)
Version 1.1.0
Fixed red alert caused by wrong quest dialogue pattern (Thx @Jonquora for help, issue #16)
Improved check condition logging.
Fixed `BuildingConstructed` condition
Avoid renaming already named custom quests
Added `HasMod` condition for check if mod with specified mod UID is loaded in SMAPI
Added comptibility with Expanded Preconditions Utility (`EPU` was added to common conditions)
Added state verifier (disabled by default)
Added configuration model for config.json
Added support for custom properties for `CustomQuest` from content packs
Added option of ConversationTopic to add or remove conversation topic when quest accepted, removed, or completed. (thx itsbenter)
Added support for i18n translations (provided by SMAPI)
Added new APIs for `CustomQuest` and statefull `CustomQuest<TState>`
Added `GetQuestByName` to Managed mod API.
Added `GetQuestById` as replacement for `GetbyId` (old API method is deprecated and will be removed in one of next versions)
Version 1.0.0-beta.3
Fixed problematic issues with Android
Added Portuguese translation (thx Randy)
Version 1.0.0-beta.2
Improved Bulletinboard quest offer
Added not: prefix for negate result of checked condition (can be used in hooks and offers and in both programatic and content pack usage)
Added new conditions for check known recipes: KnownCraftingRecipe and KnownCookingRecipe
Added new condition Random with random chance in % to offer or execute hook
Added new condition QuestAcceptedDate for check if quest was accepted in specified date
Added new condition QuestAcceptedInPeriod for check if quest was accepted in current season, day, year and other time period(s).
Added stats support
Improved some minor refactors
Added API method ForceRefresh()
Improved accept quest API which allows add quest quietly (without popup alert message and without "new" flag in questlog)
Added new global quest events: QuestCompleted, QuestAccepted, QuestRemoved, QuestLogMenuOpen, QuestLogMenuClosed and Refreshed.
Added new managed API: ExposeGlobalCondition for expose global condition(s) for using in quest offers or hooks.
Added extensions for CustomQuest class (use namespace QuestFramework.Extensions for apply)
Version 1.0.0-beta.1
Fixed saving game
Added new global conditions: MinDaysPlayed, MaxDaysPlayed, DaysPlayed and IsFarmerMarried
Added support for daily quests (day limited quests)
You can define days left for quests (daily quests)
Added token for use objects from JsonAssets in quest triggers. (example for ItemDelivery quest type: Willy {{ja:Fish Oil}})
You can define days left for quests (daily quests) via SMAPI mod-provided API
Added trigger parser-loader in CustomQuest class
Version 1.0.0-beta
First release
Version 1.0.0
Added new debug commands: quests_accept, quests_complete and quests_remove.
Fixed wrong quest type binding in asset editor for Data/Quests
Fixed removing quests marked as destroy from questlog
Added new conditions: QuestCompletedDate, QuestAcceptedToday, QuestCompletedToday, QuestNeverAccepted, QuestNeverCompleted,
Added new condition SkillLevel to check if the skill level met the minimum requirement
Added new condition BuildingConstructed to check if specified building is present on farm
Added new condition IsCommunityCenterCompleted to check whether community center completed or not
Added new condition FriendshipStatus to check friendship status of specified character (Married, Engaged, Dating, Friendly)
Rename conditions: Friendship to FriendshipLevel to distinguish from FriendshipStatus
Donations
Both straight donations and premium membership donations accepted
Quest framework is a Stardew Valley framework mod which provides a tools for work with quests like create custom quests, define custom quest types and handle quests. Support Content Packs and SMAPI mod-provided API.
Unpack Quest Framework's content packs to the Mods folder (follow the pack's instructions)
Run the game using SMAPI
Requirements
SMAPI version 3.6.1 or newer
Stardew Valley 1.4
Compatibility
✔️ Quest Framework is compatible with Stardew Valley 1.4+ on Linux/Mac/Windows, both single-player and multiplayer. ❌ Quest Framework IS NOT compatible with local split-screen!
Compatibility with Android version of SMAPI/SDV is not guaranteed and not maintained by original mod author (android maintenance is in community hands only - send PR on GitHub with android fixes)
Modders
Content Pack API
You can create content packs which adds your custom quests. Options for added quests by this way are limited. For more advanced stuffs with quests use advanced api.
With advanced API you can create more complex and advanced quests, create quest observers, custom quest types and more. Using advanced API requires programming skills in C# and knowledge of SMAPI modding.
You can ask me for help with Quest Framework on my Discord server (I react here almost immediatelly) or ping me on official SDV discord (channels #using-mods, #making-mods).
Reporting issues or ask for new features
If you want to report a bug or propose new feature, please create an issue on GitHub.