The Battle of Kaer Morhen
Fixing a softlock
Enable the debug console, then look for a fact under Gates the quest checks — one the quest is actively waiting on. If that flag never got written, addfact it to the value shown and the gate clears.
Setting a Set these to advance fact only marks a step done — it won't run the step or skip the quest forward, and it can't fix a softlock caused by a scene that never played or an NPC that didn't spawn (reload an earlier save for those). Save before forcing any fact.
Quest facts (139)
Set these to advance
98 factsCompletion flags this step writes — they record a step as done but won't run it or skip the quest forward on their own.
PLAYER_eqp_mountAlso used by Blood on the Battlefield, To Bait a Forktail...
ciri_dd_startAlso used by Bald Mountain, Child of the Elder Blood
ciri_dd_stopAlso used by Bald Mountain, Child of the Elder Blood, Something Ends, Something Begins
ciri_eqp_mountAlso used by Blood on the Battlefield, Child of the Elder Blood
ciri_eqp_unmountAlso used by Blood on the Battlefield, Child of the Elder Blood, The Isle of Mists
eskel_dd_startAlso used by To Bait a Forktail...
eskel_dd_stopAlso used by To Bait a Forktail...
eskel_dissecting_ekimaAlso used by To Bait a Forktail...
eskel_eqp_mountAlso used by To Bait a Forktail...
eskel_eqp_unmountAlso used by To Bait a Forktail...
hjalmar_dd_startAlso used by Coronation, King's Gambit, The Isle of Mists +1 more
hjalmar_dd_stopAlso used by Coronation, King's Gambit, On Thin Ice +1 more
keira_part1_dd_startAlso used by A Favor for a Friend, An Invitation from Keira Metz, Wandering in the Dark
keira_part1_dd_stopAlso used by A Favor for a Friend, An Invitation from Keira Metz, For the Advancement of Learning +1 more
lambert_dd_startAlso used by Following the Thread, To Bait a Forktail...
lambert_dd_stopAlso used by Following the Thread, To Bait a Forktail...
lambert_eqp_mountAlso used by To Bait a Forktail...
lambert_eqp_unmountAlso used by To Bait a Forktail...
mousesack_dd_startAlso used by Child of the Elder Blood, Coronation, The Isle of Mists
mousesack_dd_stopAlso used by Child of the Elder Blood, Coronation, Echoes of the Past
q403_race_voorhis_wonAlso used by Broken Flowers
roche_dd_startAlso used by A Deadly Plot, An Eye for an Eye, Honor Among Thieves +2 more
roche_dd_stopAlso used by A Deadly Plot, An Eye for an Eye, Honor Among Thieves +2 more
triss_dd_startAlso used by A Matter of Life and Death, Count Reuven's Treasure, Now or Never +3 more
triss_dd_stopAlso used by A Matter of Life and Death, Child of the Elder Blood, Count Reuven's Treasure +4 more
tutorial_messages_enabledAlso used by The Incident at White Orchard
vesemir_dd_stopAlso used by Following the Thread, The Incident at White Orchard
vesemir_eqp_mountAlso used by To Bait a Forktail...
vesemir_eqp_unmountAlso used by To Bait a Forktail...
yennefer_dd_startAlso used by Child of the Elder Blood, Echoes of the Past, Tedd Deireadh, the Final Age +4 more
yennefer_dd_stopAlso used by Child of the Elder Blood, Echoes of the Past, Something Ends, Something Begins +5 more
zoltan_dd_startAlso used by A Dangerous Game, Broken Flowers, Ciri's Story: Breakneck Speed
zoltan_dd_stopAlso used by A Dangerous Game, Broken Flowers, Ciri's Story: Breakneck Speed +1 more
zoltan_eqp_mountAlso used by Broken Flowers
zoltan_eqp_unmountAlso used by Broken Flowers, Something Ends, Something Begins
q403_battle_endsAlso used by Of Dairy and Darkness
q403_completedAlso used by A Dangerous Game
q403_councilAlso used by Berengar's Blade, Races: Crow's Perch
q403_hjalmar_cs_doneAdd q403_hjalmar_cs_done
q403_lambert_deadAlso used by Blood on the Battlefield, Of Dairy and Darkness
q403_lambert_pitfall_traps_doneAdd q403_lambert_pitfall_traps_done
q403_race_geralt_wonAlso used by Broken Flowers
q403_race_luiza_wonAlso used by Broken Flowers
q403_rift_center_hunt_killedAdd q403_rift_center_hunt_killed
q403_rift_left_hunt_killedAdd q403_rift_left_hunt_killed
q403_rift_right_hunt_killedAdd q403_rift_right_hunt_killed
avallach_eqp_mountAdd avallach_eqp_mount
avallach_eqp_unmountAdd avallach_eqp_unmount
letho_dd_startAdd letho_dd_start
letho_dd_stopAdd letho_dd_stop
letho_eqp_mountIn phase: Forest
letho_eqp_unmountIn phase: Forest
mousesack_eqp_mountAdd mousesack_eqp_mount
mousesack_eqp_unmountAdd mousesack_eqp_unmount
q403_temporary_immunityAdd q403_temporary_immunity
q403_vesemir_reached_low_yardAdd q403_vesemir_reached_low_yard
ves_dd_startAdd ves_dd_start
ves_dd_stopAdd ves_dd_stop
letho_follow_startAdd letho_follow_start
letho_follow_stopIn phase: First Square
q403_arachas_attackedAdd q403_arachas_attacked
q403_arachas_luredAdd q403_arachas_lured
q403_canaris_introAdd q403_canaris_intro
q403_close_gateAdd q403_close_gate +1
q403_componions_commentAdd q403_componions_comment
q403_eskel_gate_checkedAdd q403_eskel_gate_checked
q403_final_battle_startsAdd q403_final_battle_starts
q403_finale_stage_1Add q403_finale_stage_1
q403_finale_stage_2Add q403_finale_stage_2
q403_finale_stage_3Add q403_finale_stage_3
q403_finale_stage_3bAdd q403_finale_stage_3b
q403_finale_stage_4Add q403_finale_stage_4
q403_folan_diedAdd q403_folan_died
q403_geralt_saved_lambertAdd q403_geralt_saved_lambert
q403_hjalmar_csAdd q403_hjalmar_cs
q403_horse_fixedAdd q403_horse_fixed
q403_hunting_stopAdd q403_hunting_stop
q403_keira_saved_lambertAdd q403_keira_saved_lambert
q403_lamber_done_about_trissAdd q403_lamber_done_about_triss
q403_lambert_pitfall_trapsAdd q403_lambert_pitfall_traps
q403_last_rift_forest_closedSet q403_last_rift_forest_closed = 1
q403_letho_lam_start_movingIn phase: First Square
q403_meteor_tutorialAdd q403_meteor_tutorial
q403_mordownia_activatedAdd q403_mordownia_activated
q403_mousesack_opened_circleAdd q403_mousesack_opened_circle
q403_retreatAdd q403_retreat
q403_rift_forest_closedAdd q403_rift_forest_closed
q403_rift_tutorial_bombAdd q403_rift_tutorial_bomb
q403_rift_tutorial_bomb_seenAdd q403_rift_tutorial_bomb_seen
q403_rift_tutorial_signAdd q403_rift_tutorial_sign
q403_talking_arachasAdd q403_talking_arachas
q403_teleported_to_kmAdd q403_teleported_to_km
q403_turn_off_first_replacer_securityAdd q403_turn_off_first_replacer_security
q403_turn_off_second_replacer_securityAdd q403_turn_off_second_replacer_security
q403_vesemir_buriedAdd q403_vesemir_buried
q403_vigi_diedAdd q403_vigi_died
witchers_follow_startAdd witchers_follow_start
witchers_follow_stopAdd witchers_follow_stop
Gates the quest checks
41 factsq109_keira_to_kmAlso used by Blood on the Battlefield, For the Advancement of Learning, The Isle of Mists +1 more
q202_folan_livesAlso used by The Lord of Undvik
q202_folan_savedGates: Burial
q202_vigi_savedAlso used by The Lord of Undvik
q206_hjalmar_kingAlso used by Coronation, King's Gambit, The Isle of Mists
q402_invited_hjalmar_to_kmAlso used by Coronation, The Isle of Mists
q402_invited_letho_to_kmAlso used by The Fall of the House of Reardon, The Isle of Mists
q402_invited_mousesack_to_kmAlso used by Coronation, The Isle of Mists
q402_invited_roche_to_kmAlso used by The Isle of Mists
q402_invited_zoltan_to_kmAlso used by A Dangerous Game, The Isle of Mists
q403_blend_out_invisibilityGates: Forest
q403_blend_wt_battleGates: Council
q403_bubble_final_formGates: Final Battle
q403_burial_laterGates: Burial
q403_burial_weatherGates: Burial
q403_cinematic_ciri_1st_replacerGates: 1St Replacer
q403_ciri_last_talkGates: Council
q403_ciri_meteor_usedGates: Anywhere
q403_council_beginsGates: Council
q403_council_decisionsGates: Council
q403_council_laterGates: Council
q403_elixirsGates: Council
q403_fix_wallGates: Final Battle, Forest
q403_load_pyre_firesGates: Burial
q403_made_trapsGates: Forest
q403_move_imlerith_divisionGates: First Square
q403_move_suicide_divisionGates: Forest
q403_move_suicide_division_againGates: Forest
q403_new_gearGates: Forest, Persistent Content
q403_rift_1a_closedGates: Final Battle
q403_rift_1b_closedGates: Final Battle
q403_rift_2a_closedGates: Final Battle
q403_rift_2b_closedGates: Final Battle
q403_rift_3a_closedGates: Final Battle
q403_rift_3b_closedGates: Final Battle
q403_rift_3c_closedGates: Final Battle
q403_rift_forest_1_closedGates: Forest
q403_rift_forest_2_closedGates: Forest
q403_rift_forest_3_closedGates: Forest
q403_stop_suicide_divisionGates: Forest
q403_tried_dispelling_illusionGates: Supporters
Objectives
- 1.Enter Kaer Morhen keep and begin the council.
- 2.Exit the keep and join Lambert when you're ready to face the Wild Hunt.
- 3.Use dimeritium bombs or the Yrden Sign to close all the Hunt's portals in the woods around Kaer Morhen.
- 4.Kill the Wild Hunt warriors near the center portal in the forest.
- 5.Kill the Wild Hunt warriors near the left portal in the forest.
- 6.Kill the Wild Hunt warriors near the right portal in the forest.
- 7.Wait for Lambert to arm the traps.
- 8.(Optional) Lure the Wild Hunt warriors into the traps.
- 9.(Optional) Explore the arachas cave Lambert mentioned.
- 10.Wait for Lambert to lure the arachas out of the cave.
- 11.Lure the Wild Hunt warriors into the pitfall traps.
- 12.Use dimeritium bombs or the Yrden Sign to close the Hunt's portals and stop their attack on Kaer Morhen.
- 13.(Optional) Equip yourself with dimeritium bombs from Vesemir's supplies.
- 14.Help Eskel defend the inner courtyard.
- 15.Help Ciri defend the inner courtyard.
- 16.Help Triss fight the Wild Hunt by the gate to the inner courtyard.
- 17.Run to Triss's aid on the battlements.
- 18.Defeat the warriors threatening Triss.
- 19.Protect Triss as she casts the spell.
- 20.Return to the place where you left the horses.
- 21.Return to Kaer Morhen.
- 22.Close the main gate.
- 23.Help Lambert defeat the Hunt's warriors.
- 24.Kill the Wild Hunt warriors in the lower courtyard.
- 25.Retreat to the middle courtyard.
- 26.Defeat your opponents and retreat behind the main gate.
- 27.Get to Triss.
- 28.Help Triss fight the Hunt's warriors.
- 29.Defeat Caranthir's warriors.
- 30.Open the gate to Kaer Morhen's inner courtyard.
Objectives a quest can show, in roughly the order they appear; some are optional or mutually exclusive branches.