It's been half a year since the previous article, "Skyrim: 5 Civil War Bugs That You May Have Missed", and no single new bug has been found in the civil war questline. To conclude its debugging, here's the guide to troubleshooting this very special Skyrim questline!

Note: at the time of writing this article, the Open Civil War mod latest version is 2.5.6.

Papyrus Script Lag

Starting a cut content city battle with Open Civil War takes a few seconds (as measured from the beginning of Rikke/Galmar dialogue response). That's because the Papyrus scripts in Skyrim are executed one significant instruction per frame, so as to yield to other scripts. And the battle quests have to prepare 20 soldiers, that easily goes into hundreds of instructions total, and the FPS is roughly 60 if not less. However if you are running more scripts than the game can execute in one frame, it will be executed one instruction per 2 frames, or per 3 frames, or more - and so it goes for other scripts that civil war executes, increasing various delays. This does not bode well for the civil war. But that's not the only source of delays in the civil war.

Caveat: In extreme circumstances, allegedly Papyrus might drop currently executed script and discontinue it, breaking it any pretty much any place. I've never experienced such a thing directly, but read along!


Story Manager Lag

Most quest lines in Skyrim start their quests directly, civil war questline often starts quests by a Story Manager. That was convenient for quests that are parametrized by one of the 9 holds of Skyrim. You may think of the Story Manager as one big pattern-match that maps a given event to a specific quest to start up. And that has a deadline as well; if the search won't fit in time limit, it starts over on the next attempt. It's unclear if that will block also other events, but it clearly can hold up an event indefinitely or until something changes and the Story Manager manages to perform the search uninterrupted (in one case, it happened until after player fast traveled).

Therefore, it's not unthinkable that pretty much any quest or part of civil war questline won't start, virtually without a trace.

Story Manager logs can be enabled with a Skyrim INI setting bEnableStoryManagerLogging, separate from Papyrus logs.

OCW may wait up to 30 seconds for a quest to start before moving on. And if it got stuck in Story Manager, it's safer to reload an earlier savegame, than to continue the game.


Crashes To Desktop: Memory Overflow

The civil war battles take up some extra memory, and exceeding memory limits causes Skyrim to crash to desktop. Overhauls of soldiers and their equipment may exacerbate the issue. Most players will either not experience any of those crashes, or they will crash with every attempted battle (some of the latter will complain, nevertheless). The memory usage of different battles varies, however, and a fraction of players will experience crashes in only some of the battles. Those players who will find only one kind of battle crashing are most likely to report the crash as a bug, specific to that battle. Currently, the battles that seem to have the biggest surge of the memory usage are the minor hold defense battles. Your mileage may vary.

Unfortunately, if a crash occurs, Skyrim does not report the cause of the crash. Apart from exceeding resource limits, it could be corrupted data of some sort: a corrupted mesh will crash the game when the 3d object is loaded, a troublesome navmesh will crash few seconds after loading the cell it is in. A deleted object reference will crash the game if accessed.

It should be noted that Papyrus logs are not crash logs and seldom leads to finding the root cause of a crash. Most Papyrus instructions will ignore invalid data, perhaps emit a warning line, but the script will be continued. One has to go out of one's way to "bomb" the game using Papyrus code alone.


"Alas, the quest did not start"

The notification "Alas, the quest did not start" is an error message of Open Civil War, shown when a vanilla civil war quest did not, in fact, start.

There is one scenario which can cause it semi-legitimately: an attack on Riften or Markarth, that the game acknowledges as a victory once the player gets inside the city, and OCW finding an enemy invasion in the same hold when the player is still assaulting the palace. In that case, after the jarl exchange scene talking to Rikke/Galmar to start a defense battle will fail, presumably because the attack battle is technically not over yet, and the attack and defense battle share the same quest form.

Apart from this scenario, and apart from Story Manager shenanigans, the likely cause of a quest not starting is failing to fill one of its required aliases. Unfortunately, there is no information which alias failed to fill, and that makes Bethesda quests an anti-pattern, where multiple root causes lead to the same symptom, indistinguishable from one another. Investigating aliases is tricky. Especially for civil war quests, which are repeatable and started with Story Manager. Players who notoriously disable with console or kill essential NPCs with mods would better make themselves a mod that flags all aliases in quests as "Optional". Their quests would still break but in a variety of ways.

The alias failures might also prevent from starting the vanilla civil war quests: missions and fort battles, and battles of Solitude and Windhelm, and Whiterun. If that happens, the "Reporting in" dialogue will be missing - it actually belongs to a quest it starts in the journal. The Unofficial Patch fixes some bugs that could cause that error, especially for "False Front" mission.


Minor and major hold battle quests

In minor holds city battles (Dawnstar, Morthal, Falkreath, Winterhold), the battle quest editor id is CWFortSiegeCapital, and the OCW add-on logic is in quest OCWFortSiegeCapitalAI.

In cut content major holds city battles (Riften, Markarth), the primary battle quest editor id is OCWSiegeDUP. It's a copy of vanilla CWSiege quest form, with tweaked aliases definition. Also, CWSiegeObj contains battle quest objectives, CWAttackCity governs the fight inside the city and in the jarl's palace. The OCW add-on logic is in quest OCWSiegeAI.

Vanilla Whiterun battle uses CWSiege + CWSiegeObj + CWAttackCity. The vanilla capital battles use CWSiege + CWSiegeObj + CWFortSiegeCapital (for the city interior) + CWFinale quest instead. The OCW "capital relief" battles use CWSiege in defense mode, and OCWSiegeRelief as a misc quest to start the relief scene. Speaking of battles in defense mode, they use CWPrepareCity instead of CWAttackCity.

And the failed aliases can prevent from starting any subset of these quests. If there is no fight inside the major city, it could be an issue with CWAttackCity. If there is no battle quest objective - it could be an issue with CWSiegeObj.

And the Papyrus engine breaking scripts - if that is ever a thing - it could break different things, depending when it happens. If it happens to the main script loop of the add-on quests OCWFortSiegeCapitalAI and OCWSiegeAI, the add-on quest won't stop after the relevant battle quest is over. The loop in these quests is done with OnUpdate script event, so it can be monitored with console commands "sqv". If it's not there, and the battle is over, you'll have to stop those quests manually, with a console command.


CWOwner: core gameplay loop

The core gameplay loop of the civil war involves talking to your faction leader, invading a hold and conquering it, then going back to your faction leader, and so on. Which holds are available to invade depends on the value associated with keyword CWOwner for the hold locations - it can be read with console commands, and also in OCW the civil war map flags for hold capitals have their top triangles colored according to the hold CWOwner value.

When you conquer a hold in battle, the civil war starts a rather lengthy process of changing government, garrisons, and CWOwner for various locations within a hold, and also the CWOwner for the hold. This gets blocked until all those locations are unloaded by the game, and also takes some time for Story Manager and Papyrus script processing. So it may happen, especially if you fast travel and go to your faction leader right away, that the change will be still in progress. Worst case, it will never complete and get stuck somewhere in the bowels of the Story Manager.

The off-screen battle cheats at this: in case of victory, it sets the hold CWOwner first, then launches the government/garrison changes. As a result, you should always get the correct dialogue with your faction leader, that reflects the conquest, immediately. Still, the changes of government and garrisons may get stuck.

Miscellaneous notes

The initial part of the civil war questline up to the end of Battle of Whiterun, as well as the final hold campaign, is unchanged by the OCW mod, and it's virtually unaffected by its changes. Please use vanilla guides when troubleshooting those parts of the civil war.

Betrayal at Hrothgar mod contains some code to shut down the civil war questline. Perhaps it will work also when the quest line has glitched out.

Uninstalling content rich quest mods is not recommended, even with script cleaning, but Open Civil War adds little new game objects. The biggest issue with uninstalling OCW mid-game is that the vanilla questline dialogues are "say once" and may have been depleted by playing OCW (which features winning and losing holds repeatedly) - so then the vanilla civil war gets stuck.

Article information

Added on

Edited on

Written by

simtam

0 comments