As a seasoned Witcher 3 modder, I cannot stress these warnings enough:
⚠️ Achievements Disable Warning:
Using the console disables ALL achievements for that game session. To re-enable them, you must restart the game completely (close and relaunch) after saving.
⚠️ Quest Dependency Cascade:
The Witcher 3 has a butterfly effect. If you type addfact(q104_completed) for "Family Matters" without doing the preceding Velen main quests, you may permanently break the main storyline. You will lose access to the Crones, the Whispering Hillock, and multiple endings.
⚠️ Character Appearance Glitches:
Forcing a quest completion mid-dialogue can leave characters in weird states (e.g., Geralt with his sword drawn permanently, Yennefer floating, Roach stuck underground).
⚠️ Save First!
Always create a manual hard save (not quicksave) before using any quest command. Console commands cannot be undone by reloading a checkpoint – only by reloading a pre-command save. witcher 3 complete quest console command top
Adds a quest item directly to your inventory. Essential if a quest item failed to spawn or you sold a key item by mistake.
Solution: Advance to the next stage manually.
| Command | Description |
| :--- | :--- |
| setstage('id', #) | Most important. Advances quest to specific stage. |
| startquest('id') | Starts a quest that hasn't begun. |
| stopquest('id') | Abruptly ends/halts a quest. |
| additem('id', #) | Adds quest items/keys. |
| addexp(#) | Grants XP rewards manually. |
Note: Using these commands to skip major plot points can cause cascading errors in your save file. It is recommended to advance stages one step at a time rather than jumping to the end. As a seasoned Witcher 3 modder, I cannot
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. Adds a quest item directly to your inventory
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
You cannot open a door because the game didn't give you the key.
The primary way to "complete" a quest via console is by manually advancing its Quest State.
setstage('quest_id', stage_number)
How to "Finish" a Quest:
To mark a quest as complete immediately, you must find the final stage number (often 100, 200, or -1 depending on the quest script).
If Keira stops moving or the portal won't open: