Skip to content

3 Complete Quest Console Command Top: Witcher

Quests in TW3 are driven by facts (internal flags). To simulate natural progression:

Example to finish The Whispering Hillock cleanly:

addfact("q110_graves_hag_destroyed")
addfact("q110_graves_hag_freed")
addfact("q110_completed")

This is the first step. You cannot skip a quest if you don't know its exact internal name (which often differs from the English title).

Below is a curated table of the most frequently requested quest IDs. Use the pattern addfact(qXXX_completed).

| Quest Name | Quest ID | Command to Complete | | :--- | :--- | :--- | | Lilac and Gooseberries (Prologue) | q001 | addfact(q001_completed) | | The Beast of White Orchard | q002 | addfact(q002_completed) | | The Incident at White Orchard | q003 | addfact(q003_completed) | | Pyres of Novigrad | q105 | addfact(q105_completed) | | Gangs of Novigrad | q206 | addfact(q206_completed) | | The Lord of Undvik | q302 | addfact(q302_completed) | | The King's Gambit | q309 | addfact(q309_completed) | | Through Time and Space | q310 | addfact(q310_completed) | | Battle of Kaer Morhen (Ugly Baby) | q311 | addfact(q311_completed) | | Final Preparations | q601 | addfact(q601_completed) | | Blindingly Obvious | q602 | addfact(q602_completed) | | On Thin Ice (Finale) | q604 | addfact(q604_completed) | | Envoys, Wineboys (BaW Start) | q701 | addfact(q701_completed) | | The Warble of a Smitten Knight | q702 | addfact(q702_completed) | | Tesham Mutna (Dungeon) | q705 | addfact(q705_completed) | | Scenes From a Marriage (HoS) | q603 | addfact(q603_completed) |

Use sparingly – excellent for bypassing game-breaking bugs or skipping a single failed side quest, but disastrous for completionist runs or narrative immersion. For “complete every quest,” mods like Quest Objectives Plus or Friendly HUD are safer.

To complete quests in The Witcher 3: Wild Hunt using the debug console, you typically use the

command rather than a single "complete quest" button. This command allows you to manually trigger "facts" or milestones that the game uses to track progress. Core Commands for Quest Manipulation Because quests in The Witcher 3

are complex chains of events, completing one often requires triggering specific IDs (facts) associated with that quest's completion state. addfact(fact_id)

: Triggers a specific event or marks a quest objective as finished. For many quests, adding a fact like [quest_id]_completed

will move the quest to the "Completed" section of your journal. removefact(fact_id)

: Use this if you accidentally triggered a milestone or want to "un-complete" an objective to fix a bug. Examples of Common Quest & Outcome Facts

These are used to force specific game states or finish major storylines: addfact(q309_completed) : Marks the quest "Now or Never" as complete. addfact(q110_calmed_down_ciri)

: Simulates a "good" choice for the ending (snowball fight). addfact(q302_whoreson_dead)

: Forces the state where Whoreson Junior is killed during "Get Junior". addfact(q109_keira_to_km)

: Sends Keira Metz to Kaer Morhen, completing her arc favorably. CD Projekt Red How to Enable the Debug Console

Before you can use these commands, you must enable the console in your game files: Console command to complete quest :: The Witcher 3

To complete a quest in The Witcher 3: Wild Hunt using the console, you must use the witcher 3 complete quest console command top

command. Unlike some other RPGs, there is no single "complete current quest" button; instead, you must trigger the specific "fact" that the game uses to mark a quest or objective as finished. Core Completion Command

The standard syntax to manually advance or finish a quest is: addfact(quest_ID_completed) CD Projekt Red Common Quest Completion Examples

While every quest has a unique ID, here are some commonly used completion "facts" found in the game files: Main Quests: addfact(q104_completed) (Hunting a Witch), addfact(q309_completed) (Now or Never). Side Quests/Choices: addfact(sq202_yen_girlfriend) (The Last Wish romance), addfact(mq3035_fdb_radovid_dead) (Reason of State assassination). Treasure Hunts: addfact(lw_gr39_treasure_opened) (Blood Gold quest). How to Find Specific Quest IDs

Because there is no exhaustive in-game list, finding the correct ID often requires searching external databases or game files. CD Projekt Red Look in Game Files: Advanced users can search through w3journal.txt files (often provided by modding communities) to find the Online Databases:

Detailed lists for specific quest IDs can be found on community platforms like The Witcher 3 Nexus Mods Forums Steam Community Guides Important Precautions

To complete or manipulate quests in The Witcher 3: Wild Hunt using the debug console, players primarily use the addfact() and removefact() commands. These commands allow you to manually trigger "facts"—the internal flags the game uses to track progress, story decisions, and quest states. Essential Quest Control Commands

While there is no single "complete_quest" command that works for every mission, you can use these specific tools to advance or fix bugged objectives:

addfact(FactID): Marks a specific quest stage or world event as completed.

removefact(FactID): Removes a completed flag, often used to restart a failed quest or undo a specific decision.

addkeys: Instantly grants every key required to open doors in the game, which can bypass quests stuck behind locked areas. Common Quest and Romance Fact IDs

The game uses unique strings for every major milestone. Here are some of the most frequently used IDs for the addfact() command: Goal / Quest State Fact ID to use in addfact() Complete "Now or Never" q309_completed Romance Triss Merigold q309_triss_lover and q309_triss_stayed Romance Yennefer sq202_yen_girlfriend Kill Radovid (Assassination) mq3035_fdb_radovid_dead Kill Whoreson Junior q302_whoreson_dead Ciri Snowball Fight (Good Choice) q110_calmed_down_ciri Ciri Empress Ending Requirement q110_visited_emhyr How to Use Quest Commands Guide :: The Witcher 3 Console Commands: Ultimate Edition

Geralt leaned back on the warped bench at the edge of the Kaer Trolde docks, the wind from the White Frost—no, from the sea—snatching at his cloak. He'd been following a rumor like most witchers follow contracts: because it was there, because the coin promised and because it smelled of trouble.

"CompleteQuest console command: top," the crone had said in a croaking whisper that smelled faintly of iron and seaweed. "Type it wrong and you wake the wrong dead. Type it right and the world will forget one mistake." She tapped a gnarled finger against a palm-dried page, the ink still wet. That page had been torn from a workbook of an old mage who'd liked shortcuts and hated paperwork.

Geralt quoted the phrase aloud like a charm, more to mock fate than summon it. The words felt mechanical and wrong in his mouth—less spell than instruction—yet the air around him quivered with a current that had nothing to do with thunder. Something in the harbor shifted: a barge pulled itself more obediently to the pier, ropes unfurled of their own accord, and a gull that had been hunched and watchful let out a laugh like a cracking bone.

He wasn't a sorcerer; he dealt in silver and steel and the alchemy of signs. But he'd learned to respect words that arranged reality. The "CompleteQuest" wasn't a thing you'd find in the old codices. It was a cheat, a loophole between intent and consequence: force an event to resolution without the messy business of guilt, grief, or the slow chipping away of time. The "top" parameter—unexpectedly human—meant finish the job from the place of highest consequence first. End the thread where it matters.

The first "quest" that surfaced was small: a fisherman named Haldor who'd lost his boy to a kelpie two summers back and had stopped mending his nets. He stood exactly where he had been in Geralt's memory—hat in hands, eyes surfacing and receding like a dark pond. The fisherman's grief had been incomplete, looping, and the command drew a thin silver line through it. Geralt found himself telling Haldor things the man had never said aloud, confessing the guilt he'd never let himself feel. The fisherman wept, not because he had to, but because the story had been closed properly, a final knot tied. He left the docks lighter and a little ashamed of the silence he had kept.

That success brought bigger things. An orchard witch who sold apples for futures she couldn't keep—Geralt nodded and gave her back the year she'd forfeited. A baron's humiliation resolved into the whispered exchange of letters that had never been mailed. With each use the "CompleteQuest top" command stitched up loose threads in people's lives, succeeding where kindness had failed and where law had been toothless. Quests in TW3 are driven by facts (internal flags)

But triumphs leave stains. With every closure, something unmoored elsewhere. A boat that was meant to return stayed at sea. A child's grief that had kept a mother at home evaporated—she went looking for work and never came back. The command did not merely end events; it rewrote causality to prioritize the topmost pain, and the rest rearranged itself as if a stone had been plucked from a carefully balanced cairn.

Soon the village noticed patterns. Favors unpaid were forgotten. Promises evaporated. The old grandmother—who had knit the town's tapestry of memory—found threads missing. "You mend a tear at the top and you'll fray the bottom," she warned Geralt in a voice that smelled of mothballs and lavender. "The ledger of lives is a complicated thing."

Geralt, who had always preferred problems with sharp teeth and straightforward motives, began to sense a more insidious predator than drowners or noonwraiths. The "CompleteQuest top" was efficient; efficiency was seductive. People clamored for him to use it on matters that hurt them most: a lost love, a wronged inheritance, the husk of a life after a scandal. He found himself playing judge and god with a single whispered command. He had sworn an oath once to remain detached, to trade neutrality for coin and the chance to survive. The tool blurred those lines.

The more he used it, the less certain he was of which memories belonged to the town and which the command had sewn in. A farmer swore his dead son had come to him in the night to fix the fence; Geralt could not say whether that was mercy or a new deception. In the inn, a man who had been widowed three times claimed his wives had never left him—that he had simply moved on without the grief that used to keep him warm at nights. The weight of sorrow, Geralt found, was sometimes the architecture that kept people honest.

At last a choice presented itself like a crossroad with no signposts. A noblewoman petitioned him to "complete" the scandal that had cost her a title. A mother begged him to end the trial that would hang her son for a crime he might not have committed. A child with a fever wanted nothing more than to see her father return from war. Each plea tugged at the code the crone had given him; each was the "top" of someone's world.

Geralt imagined the world as a pattern of small, necessary ruptures: griefs that forged empathy, regrets that taught better choices. He thought of the time he had refused to end a monster's life merely to startle a child into obedience; of lovers who had reconciled slowly, and the lessons learned in the slow grinding of human days. To take those away wholesale was to rewrite the moral education of a town.

So he went back to the crone and asked how the command could be undone.

She smiled as if she had expected him. "You can only reverse a completion with another completion," she said. "You must 'decomplete' in kind. But every decompletion births complication twice as hungry." She slid another scrap across the table: "CompleteQuest top: echo."

Geralt understood. To restore what had been closed he would have to reopen: not merely restoring events but reinfusing their consequences. He would have to let grief back into rooms, anger back into chests, unfinished business back into the brittle bones of lives that had adapted around absence. It would be messy. It would cost him more than coin.

He started small. Haldor's boy returned as a ghost who would not leave the nets alone; the fisherman cursed and mended them by moonlight. The orchard witch's years reclaimed their due—her orchard bore fruit again, but the bargains she had made were now visible, and the town had cause to suspect her bargains. The baron's letters were unexchanged, his humiliation reinstalled; he took to beating his table and the palace silence grew thick again.

With each echo, the world snapped more closely back to its old, imperfect geometry. People grew miserable and also humane again. They apologized for things they'd never known they'd done. They bore the small, honest weight of memory that makes communities hold together.

When Geralt had undone enough to bring the net of lives back into balance—neither perfectly resolved nor cruelly unmoored—the crone laughed into her tea and said, "You did what witchers do best: choose the lesser evil."

He left Kaer Trolde feeling as if he'd walked through a storm and come out with a single wet feather in his hand—an odd, fragile thing that mattered more than all the coin in a chest. He'd found a command that could end stories and a way to start them properly, and he'd learned, again, that endings mattered less than the reasons people had for living with them.

On the road out of town a child ran after him, trailing a ribbon she had knotted in the worst of her grief. "Make it so my sister remembers me," she asked.

Geralt considered the ribbon, the child's face, the heavy world balanced on the tip of a word. He put a hand—callused, steady—on her shoulder and said, without magic or command, "Tell her once. Tell her every day for as long as you have breath."

The child nodded and ran home. Some quests could not be completed by commands. They needed time, honesty, and the small cruelty of remembering—top to bottom.

The developer console in The Witcher 3: Wild Hunt is a powerful tool for players looking to bypass bugs, skip tedious travel, or fix broken quest progression. While most commands are straightforward, managing quests requires precision to avoid breaking the game’s logic. Enabling the Console This is the first step

To use these commands, you must first enable the console. On PC, navigate to your game folder: The Witcher 3\bin\config\base general.ini and add the line DBGConsoleOn=true section. Once in-game, press the key to open the interface. Top Quest-Related Commands The most effective way to handle quests is by using Quest Facts or direct completion triggers. addfact(fact_id)

This is the most "surgical" command. Instead of forcing a whole quest to end, it tells the game a specific event happened. For example, if a door won't open because a guard didn't give you a key, adding the "fact" that you spoke to the guard can fix the trigger. removefact(fact_id)

Essential for reversing mistakes. If you accidentally triggered a "fail" state for a side quest, removing that fact can sometimes reset the quest's logic. setprogress(quest_name, phase, objective)

This is the "teleport" of quest commands. It moves your current quest to a specific stage. It is highly technical, as it requires knowing the exact internal strings (names) used by the developers. Ciri commands (e.g.,

While not strictly quest commands, many main story quests soft-lock because the game fails to swap characters. Using these commands to manually switch between Ciri and Geralt can often force a quest to resume. The Risks of Quest Manipulation

Unlike spawning items or changing the weather, quest commands can cause "sequence breaking." If you force-complete a quest that involves a major character, the game may not know where to place that character in the next scene, leading to empty rooms or infinite loading screens. save your game manually

before attempting to move quest phases. The console is a great "Plan B," but it works best when used to nudge a stuck objective rather than skipping entire chapters of the story. Should I look up the specific IDs for a quest you're currently stuck on?

To complete a quest in The Witcher 3 using the console, the standard command is addfact(quest_id_completed) or using a quest-specific success flag. Unlike some other RPGs, there isn't a universal "completequest" command that works reliably for every entry in the journal without potentially breaking scripts. Essential Quest Commands

If you have the Debug Console enabled, these are the primary ways to manipulate quest progress:

addfact(fact_id): This is the most common method. You must replace fact_id with the specific internal name for a quest's completion state (e.g., q101_done).

removefact(fact_id): Useful if you accidentally completed a quest or want to reset a specific world state.

setcustomhead(id): While not a quest command, it's often used alongside them to reset Geralt's appearance if a quest script forces a change. How to Find Quest IDs

Because The Witcher 3 commands are case-sensitive and require specific internal names, finding the right ID is the hardest part:

Check Community Lists: Sites like Witcher 3 Wiki or Steam Community Guides host spreadsheets of quest and "fact" IDs.

Quest Debugger: For modders using the REDkit, the Quests Debugger tool allows you to see active quest phases in real-time. Important Warning

Forcing quests to complete can break the main story line. If you skip a quest that sets a vital "fact" (like a character surviving), future quests may fail to trigger or characters might not appear where they should. It is highly recommended to save your game before attempting any quest-related commands.

The Witcher 3 Console Commands: Ultimate Edition - Steam Community