This is the web-facing version of the in-game spellbook. It lists every spell the world genuinely answers to, categorized by rune school. An Integrated badge means the exact runtime patch exists; the verdict names stable creator vocabulary or an explicit diagnostic-only boundary.
The lab is a BepInEx plugin. If you already run mods, you have this.
ComfyQuestLab.dll into BepInEx/plugins.
That is the whole install. The zip also carries a README and a default config.
The lab is client-only and does nothing at all on a dedicated server. Nothing it does touches anyone else, and uninstalling it changes nothing about your game.
lab_setup.
This writes a starter quest, safely clears marked old builds, and raises a fresh compact black-marble course with eight rune monuments and each target/tool at its point of use.
F5 is Valheim’s console, where you type commands. F6 is the lab’s own window. Two different keys, and mixing them up is the usual first stumble. The window owns the mouse while open; its − / + controls persistently tune the whole panel from 65% to 200% for windowed, 1080p, or 4K play.
Choose a colored school and any of the 34 canonical events. The cockpit explains its target, example, fields, safety, and live action. Copy an editable schema-1 quest immediately, or Prepare it into one fixed Lab-owned folder beside a deterministic manifest; a changed file is never overwritten. Run evaluator produces explicit synthetic evidence through the exact shared matcher, not a false claim that gameplay happened.
BepInEx/config/comfy-quest-lab/quests/starter.json, then run lab_reload.
No restart. The Quests tab names what changed, what will fire, and what cannot — and shows the last event the matcher was actually handed, which is how you find out why something did not fire.
lab_target.
Puts a fresh practice target in front of you — lab_target harvest for a tree, and so on for all eight schools. You should never be walking across the map looking for the thing your quest is about; that is what the gallery is for.
questlab_batch prepare all-schools.
Prepare safely clears marked old builds, stages a ground welcome camp with Birch, axe, and mounted picnic food, then raises one canopy-clear compact course with building materials, fuel, targets, tools, and the lit hub sign at point of use. Then run questlab_batch run all-schools and follow the eight prepared prompts. report shows what remains and export writes a JSON receipt. The separate creator-events suite checks all 34 shared evaluator names, but labels itself synthetic rather than claiming those actions happened in Valheim. Every exact one-event rehearsal is also available to the bounded mailbox as scenario-<event>.
The starter file holds two backward-compatible quests. first_blood is armed: kill the Greyling standing under the combat monument and it fires — and lab_target puts a fresh one in front of you whenever you need another, so testing twice never means going to look for a second one. punchwood is also armed: hit remains a compatibility alias for creature and resource damage. All eight schools feed the same shared evaluator. Low-level mutations can still be inspected under questlab_profile diagnostic, but those witnesses are structurally barred from completing quests.
Each school’s rune is also its filter. The mark beside each heading is the same mark you click in the lab’s console to show or hide that school — so learning the book teaches the console for free. One fight emits more rows than the window holds, which is why the filters matter.
What it covers: Hitting things, blocking, healing, staggering, and things dying. Each deliberate act has stable quest vocabulary; the lower-level witnesses that corroborate it remain visible only as diagnostics.
Go and try: Find a Greyling and hit it once, then finish it. You get two kinds of row: the hits, and the death.
Worth knowing: A hit and a kill are different creator events: damage_dealt and kill. Bind to the precise one when you can; the older hit spelling remains a compatibility alias for creature or resource damage. A local blow and its server-carried echo share one action identity, so one swing cannot complete a quest twice.
What it covers: Chopping trees, breaking bushes and rocks, picking berries. The first thing most people try, and the reason this lab exists: hitting a bush used to fire a quest, and the mod that could do it was retired.
Go and try: Punch a tree with bare fists, then punch a raspberry bush, then pick one. Three rows, and the third is a different shape from the first two.
Worth knowing: A standing tree and a felled trunk are different things to the game, so they are different rows. And picking a berry is not damage at all — it is an interact. Bind damage as resource_damaged and picking as resource_picked; the older hit alias still covers resource damage, but it does not mean picking.
What it covers: Picking things up, equipping them, eating them, emptying chests. The largest group of seams in the game and the noisiest, because the game moves items around constantly for reasons that have nothing to do with you.
Go and try: Drop something and pick it back up, then equip a weapon and eat food. Then open a chest and take everything.
Worth knowing: The lab watches what you DID, not every time the item list changed. Adding an item internally happens on crafting, on stacking, on moving between chests — a quest built on that would fire constantly and mean nothing. It is left diagnostic-only on purpose. Pickup, drop, equip, unequip, consume, and emptying a container are stable creator events and can each bind a quest.
What it covers: Placing pieces, repairing them, taking them down, and structures breaking. The category a settlement steward actually wants: build a longhouse, repair the dock, keep the walls up.
Go and try: Place a workbench, hit it with a hammer to repair it, then remove it. If something of yours is damaged, let it break and watch that row too.
Worth knowing: Placing is something YOU do; breaking is something that HAPPENS. So breaking is reported whoever caused it, and the row says whether it was you. That distinction is what lets a 'defend the base' quest work at all. Placement, removal, repair, damage, and destruction have separate bindable names.
What it covers: Making things at a bench, and feeding the machines that make things — smelters, kilns, cooking stations. Two different acts that people tend to lump together.
Go and try: Craft anything at a workbench. Then put ore and coal into a smelter. Notice they are separate rows with separate names.
Worth knowing: The craft is reported by the crafting WINDOW, not by your character. That is genuinely surprising and it is why searching for a 'player crafts' event turns up nothing and people conclude crafting cannot be tracked. It can: the crafted item, station input, fuel, produced output, and collected output are separate bindable events.
What it covers: Skills going up, stamina being spent, and dying. The category people ask for by name and then cannot find, because the names they ask for do not exist.
Go and try: Swing an axe at a tree a few times until the skill-up message appears. You will see the skill row fire at the same moment.
Worth knowing: There is an event for 'a skill went up'. There is no event for 'my skill is level 30' — that is a question you can ask, not something the game announces. A quest can fire on the first and cannot on the second, and that difference catches everybody once. Skill raises, skill loss, death, maximum-health changes, and stamina changes are bindable. Stamina observation is off by default because running can bury everything; enable it only for that experiment.
What it covers: Moving through the world, and the world itself changing state. Small, and it contains the most interesting seam nobody has used.
Go and try: Take a portal. If you are on a world where a boss has been killed, that already fired.
Worth knowing: Valheim keeps a short list of world-wide flags — which bosses are dead, and so what the world allows. That is the nearest thing the game has to a server-wide event. Portal travel and global-key set/remove each have stable bindable names; asking which biome a coordinate occupies remains a query, not an event.
What it covers: Talking, and writing on signs. The quietest category and the one with the most room, because it needs nothing from combat at all.
Go and try: Say something in chat, then place a sign and write on it.
Worth knowing: A quest that completes when somebody writes a particular sign, or says a phrase somewhere specific, is directly bindable through sign_written or chat_sent. Community rituals tend to look far more like this than like killing things — which is worth remembering. Messages merely received from somebody else stay diagnostic-only, so another player cannot complete your speaking quest for you.