Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
QuestMod
Quest management mod for Silksong — accept, complete, and customize quest targets with a full debug GUI.
| Date uploaded | a week ago |
| Version | 2.2.0 |
| Download link | DatUub-QuestMod-2.2.0.zip |
| Downloads | 277 |
| Dependency string | DatUub-QuestMod-2.2.0 |
This mod requires the following mods to function
BepInEx-BepInExPack_Silksong
BepInEx modloader. Preconfigured and ready to use.
Preferred version: 5.4.2304silksong_modding-DataManager
DataManager is a mod that saves and loads data - global as well as save slot-specific - on behalf of other mods.
Preferred version: 1.2.2silksong_modding-FsmUtil
A library for mods to easily make changes to PlayMakerFSMs.
Preferred version: 0.3.17silksong_modding-UnityHelper
Library containing utility functions associated with Unity objects.
Preferred version: 1.2.0README
QuestMod
BepInEx mod for Hollow Knight: Silksong. F9 opens a panel for managing quests (wishes): accept, complete, undo, tweak target counts, bypass story gates, and apply custom rules.
Current release: v2.2.0
What it does
- All Wishes Mode (Tools): Disabled (vanilla), Adjusted (recommended — opens wishes but keeps chain order, exclusions, and edge-case patches), Pure (raw, no checks; Advanced only). See docs/AllWishesModes.md.
- Per-quest Accept / Drop / Complete / Undo Complete, plus Available + AutoAccept toggles with bulk reset.
- Remote Complete (Tools, per-save): when ON, Complete mirrors NPC turn-in (deduct targets, grant rewards, cascade). When OFF (default), Complete is flag-only — only QuestData flags flip. See docs/CompleteAndUndo.md.
- Auto-Accept Available (Tools): each scene load accepts wishes that pass natural availability (chain-aware). Unlike Accept All, story-locked wishes wait for their gate.
- Chain quests collapse into one row with step navigation.
- Mass-accept / mass-complete available wishes with Undo Last Mass Operation.
- Granular prereq bypasses per save: Fleatopia, Mandatory Wishes, Faydown Cloak, Needolin, Bonebottom Quest Board, plus Quest Boards Always Available (all three wishwalls).
- Target count overrides (Targets tab): sliders, presets (Set to 1, Half, Default), category multiplier.
- Checklist UI for multi-target / sequential wishes (Mr Mushroom, etc.).
- Delivery tab: Gourmand timer freeze, quest item invincibility.
- Custom requirements presets from Tools; optional
BepInEx/config/QuestMod/QuestRequirements.user.jsonoverlay. See docs/CustomRequirements.md. - Save state Copy/Paste via clipboard.
Destructive features are gated behind a one-way safety override per save. Legacy saves stay vanilla until you confirm.
Removed in 2.2.0
- Silk & Soul tab / point overrides
- Tags editor tab (rules still work via presets + user JSON)
- Wish Location Reassignment scaffold (never implemented)
- One-click Act 3 (
blackThreadWorld) Tools toggle
Install
Use Gale or any Thunderstore mod manager. Dependencies pull automatically (BepInExPack_Silksong, DataManager, FsmUtil, UnityHelper).
Manual: drop QuestMod.dll into BepInEx/plugins/QuestMod/ (or DatUub-QuestMod/).
Keys
F9 opens the Quest Manager. Rebindable in BepInEx config (GuiToggleKey).
Config
BepInEx/config/com.silkmod.questmod.cfg or the Tools tab.
| Area | Examples |
|---|---|
| General | EnableCompletionOverrides, OnlyDiscoveredQuests, QuestItemInvincible, ShowQuestDisplayNames, GuiToggleKey, GuiScale, GuaranteedSilverBells |
| Custom requirements | EnableCustomRequirements (per-save), ActivePreset (per-save) |
| Complete | EnableFullRemoteComplete (per-save; also Tools → Remote Complete) |
| Delivery | GourmandStopDecay, GourmandDecaySeconds |
| Advanced | DebugLogging, DevRemoveLimits, DevForceOperations, ShowPureWishesMode |
The cfg file has full descriptions for each entry.
Tabs
| Tab | Purpose |
|---|---|
| Quests | Chains + wish list; Active / Done / All filter; Accept / Drop / Complete / Undo Complete; Flag-only vs Remote Complete status |
| Targets | Count overrides and presets |
| Delivery | Gourmand timer + quest item invincibility |
| Checklist | Multi-target / sequential stage ticks |
| Tools | Save safety, mass ops, mode, Remote Complete, Auto-Accept Available, prereq bypasses, rules presets, save Copy/Paste |
Complete / Undo (support)
| Situation | What to do |
|---|---|
| Normal inventory wishes | Flag-only Complete is fine; use Done → Undo Complete to reverse |
| Ecstasy of the End / flea carnival (and similar) | Flag-only Complete is blocked — finish in the world. Remote Complete may help inventory turn-ins but won’t run minigames |
| “I completed something and can’t find Undo” | Quests → Done → blue Undo Complete |
| Want NPC-style turn-in | Tools → enable Remote Complete |
Full detail: docs/CompleteAndUndo.md.
Default world-state list (flag-only refuse): Flea Games, Flea Games Pre. Extend via worldStateComplete in embedded QuestCapabilities.json if you maintain a fork.
Known issues
- With Quest Boards Always Available, the Fixer NPC may briefly play his hammering animation before the FSM rewrite catches him (Addressables load; patch retries for ~30s). The kiosk stays interactable.
- Flag-only Complete does not advance minigame / world FSM wishes — see Complete / Undo above.
- Undo Complete clears completion flags only; it does not refund abilities or minigame progress.
Docs
| Doc | Topic |
|---|---|
| CHANGELOG.md | Release history |
| docs/AllWishesModes.md | Disabled / Adjusted / Pure |
| docs/CompleteAndUndo.md | Flag-only vs Remote Complete, Undo |
| docs/CustomRequirements.md | Tags, presets, per-quest rules |
| docs/quests/ | Per-quest capability notes |
Building
git clone <repo>
# Optional: SilksongPath.props with your install path for post-build copy
dotnet build -c Release
Thunderstore package:
dotnet build -c Release -t:ThunderstorePack
Dev harness (not in Thunderstore builds)
SelfTest + GuiShots compile only when explicitly enabled:
dotnet build -c Release -p:COMPILE_SELFTEST=true
| Env | Effect |
|---|---|
QUESTMOD_SELFTEST=1 |
SelfTest IPC + GuiShots file trigger (no auto-quit) |
QUESTMOD_SELFTEST_FULL=1 |
Also runs the auto ContinueGame / assertion suite (loads save, then quits) |
Do not ship SelfTest builds to Thunderstore. Local harness sources are gitignored.
Contributing
Issues and PRs welcome. Target main. Test in-game; check BepInEx/LogOutput.log when something misbehaves.
Thanks
TheMythical2046 for the original request, quest research, and testing.