
- All games
- Stardew Valley
- Mods
- Modding Tools
- Quest Framework (obsolete)
Quest Framework (obsolete)
-
Endorsements
-
Unique DLs--
-
Total DLs--
-
Total views--
-
Version1.4.3
- Download:
- Manual
File information
Last updated
Original upload
Created by
PurrplingCatUploaded by
purrplingcatVirus scan
About this mod
Quest Framework is a framework mod that gives modders the ability to create custom quests, define custom quest types and handle quests on the back-end.
- Requirements
-
Nexus requirements
Mod name Notes Expanded Preconditions Utility Only if you want to use EPU condition in your quest offers. SMAPI - Stardew Modding API Stardew Modding API is required (>= 3.6.1) Mods requiring this file
- Permissions and credits
-
Credits and distribution permission
- Other user's assets All the assets in this file belong to the author, or are from free-to-use modder's resources
- Upload permission You are not allowed to upload this file to other sites under any circumstances
- Modification permission You 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 permission You are not allowed to convert this file to work on other games under any circumstances
- Asset use permission You 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 sold You 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 points You are not allowed to earn Donation Points for your mods if they use my assets
Author notes
Please don't redistribute mod binaries (original or built from forked or edited source code as your own mod, except unofficial fixes/updates credited me as original author) without my permissions (on Nexusmods or on other sites).
If you want use this mod source code in other projects, please credit me.
NOTE FOR UNOFFICIAL FIXES/UPDATES:
If you want to upload a fix (unofficial update) for this mod, you are allowed to do it, but add -unofficial-<yourName>.<revision> to mod version in manifest and doesn't change the name or mod author. Also credit me as an original author of the mod and link this page as official mod site. ThanksFile credits
PurrplingCat (mod author)
kdau (special thanks for help with creationg of this mod)Donation Points system
Please log in to find out whether this mod is receiving Donation Points
-
Translations
- Turkish
- German
- Changelogs
-
-
Version 1.4.3
- Fixed `IManagedQuestApi.CompleteQuest` method did't accept full-qualified quest name (This fixes quest problems in NPCA 1.0-beta)
-
Version 1.4.2
- Little logging optimizations
- Removed useless harmony patch checker
-
Version 1.4.1
- Recompiled native for SDV 1.5.6
-
Version 1.4.0
- Added Hungarian translation by martin66789 and spanish translation by Carlos
- Updated Harmony references to work with Harmony2.0 (thx shekurika)
- Enhanced logging for loading content packs and exposing quest types
- Fixed minor issue when resizing while CustomBoard is open
- Fixed controller input problem on CustomBoards
- Added better log for used action tiles for custom dropboxes
- Fixed slay monster quest reward problem
- Added new common global conditions: `HasItemInInventory`, `HasActiveQuest` and `CurrentLocation`
- Quest offer manager now internally checks if offering quest is already in log (and offers it ONLY if not)
- Added offering quest by pick up an item
- Reworked NPC quest offer system (optimized)
- Added fields `AddMailOnComplete` and `RemoveMailOnComplete` for content pack quests
- Show talk bubble mouse cursor when quest should be offered on NPC talk
- Added adjust quest trigger when farmer try talk with NPC
- Added `ITalkMessage` interface
- Quests with `BaseType` value `Custom` always returns false for Quest.checkIfComplete and your custom quest is not vanilla base type or doesn't implements `IQuestObserver` interface (for checking completion for custom quests override OnCompletionCheck method on your custom quest type class)
- Update title, objective and description methods are splited from `IQuestObserver` to `IQuestInfoUpdater` (IQuestObserver extends IQuestInfoUpdater)
- `CustomQuest<TState>.Sync` now marks quest for sync at end of update sync instead of sync immediatelly (for immediatelly sync use new API method `CustomQuest<TState>.PerformSync`)
- CustomQuest class now implements IDisposable interface
- Added new extensions: `CheckGlobalConditions`, `CheckGlobalCondition`
- Added new APIs for `CustomQuest<TState>` class: `NeedsSync`, `PerformSync`; and protected virtual methods `OnStateReset`, `OnStateRestored`
- Added new APIs for `CustomQuest` class: `onCompletionCheck`, `OnRegister`, `OnInitialize`, `ForceUpdate`, `OnUpdate`, `OnAdjust`
- Added new managed API: `CheckForQuestComplete`, `AdjustQuest` and `GetAllManagedQuests`
- Added support for offer special order via NPC talk
-
Version 1.3.4
- Fixed problem with quest type id reintegration
- Refactored quest reintegration and better log messages
-
Version 1.3.3
- Optimized NPC offer indicator performance
- Better error message when invalid client connected in multiplayer
- Fixed exception when connected client running without SMAPI or without QF
-
Version 1.3.2
- Fixed problem with special order board in town (hopefully)
-
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
-
Straight donations accepted
Quest framework is a Stardew Valley framework mod that provides a tool for modders.
It allows modders to create custom quests, define custom quest types and handle quests on the backend.
It supports Content Packs and SMAPI mod-provided API.
This mod is OBSOLETE since SDV 1.6
This mod is available only for older SDV version 1.5. No active maintenance, no future updates.
For players:
Install
- Install latest version of SMAPI
- Install this mod from nexus mods
- Unpack Quest Framework to the
Mods
folder - Unpack Quest Framework's content packs to the
Mods
folder (follow the pack's instructions) - Run the game using SMAPI
Requirements
- SMAPI version 3.9.0 or newer
- Stardew Valley 1.5
Compatibility
✔️ Quest Framework is mostly compatible with Stardew Valley 1.5+ on Linux/Mac/Windows, both single-player and multiplayer.
⚠ Partialy compatible with local-split screen (QF 1.4 beta and newer), but can cause some issues in rare cases.
✖️ Not compatible with Android SDV (since SDV 1.5 was released but it's not available for mobile)
Compatible with Json Assets.
Compatibility with Android version of SMAPI/SDV is not not possible since SDV 1.5 is released only for PC and consoles.
FOR 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.
To create JSON content pack see Content Pack API guide.
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.
How to use advanced API see Advanced API guide.
Need help?
You can ask for help with Quest Framework on the PurrplingCat Discord server.
Reporting issues / Requesting new features:
If you want to report a bug or propose a new feature, please submit issue via reporter form.
Do you have an idea or suggestion? Post it in suggestion form.
PurrplingCat - Quest Framework mod author.
Shekurika - Contributor&Maintainer
Kdau - Special thanks for help with creating this mod.
Randy (aka andrill1) - Banner for Quest Framework Nexus Mods page.
Links
API Reference
Source code
Quest Essentials
Nexusmods page
Stardew Modding API (SMAPI)
PurrplingCat's Patreon
PurrplingCat's Discord