Documentation
Readme
View as plain text
After 10 hours of working on it, I finally found a solution!
You need to install 7-zip so you can edit a file in the game folder without unzipping a pak file.
Here is the solution that finally fixes this otherwise game-breaking bug:
1. Open the folder named Data in the installation directory. ( KingdomComeDeliverance\Data )
2. Make a backup copy of Scripts.pak on your desktop. (Just in case - so you don't need to validate all your game files if you make a mistake).
3. Right-click on the file Scripts.pak and use 7-zip to "open archive" (do not try to extract or unzip the pak file. Doing so will corrupt it and apparently add some unwanted metadata to it).
4. In the 7-zip file browser, go to Scripts.pak/Libs/AI/quests/
5. Select the file q_pribBattle.xml and press F4 - this lets you edit the file without extracting/unzipping it. (Do not attempt to make a backup of q_pribBattle.xml, as you cannot re-insert the backup back into Scripts.pak without corrupting it).
6. Delete the following lines from the file and save your changes. (You will be asked again if you want to save the xml file inside Scripts.pak after you close the editor. Say Yes).
The code below must be deleted to stop the "Too many casualties" bug:
<IfCondition failOnCondition=""false"" condition=""$questObjectiveUpdate.ObjectiveName == 'battleLost' & $questObjectiveUpdate.State == $enum:ObjectiveState.Started"">
<SetQuestObjective quest="""" objective=""battleLost"" function=""CompleteObjective"" />
</IfCondition>
<IfCondition failOnCondition=""false"" condition=""$questObjectiveUpdate.ObjectiveName == 'gameOver' & $questObjectiveUpdate.State == $enum:ObjectiveState.Completed"">
<Sequence>
<QuestObjectiveCondition quest="""" objective=""playerFled"" function=""IsObjectiveCompleted"" failSubtMissing=""false"" saveVersion="2">
<Then canSkip="1">
<GameOver Reason=""Q_IR_FledBattle"" />
</Then>
</QuestObjectiveCondition>
<QuestObjectiveCondition quest="""" objective=""battleLost"" function=""IsObjectiveCompleted"" failSubtMissing=""false"" saveVersion="2">
<Then canSkip="1">
<GameOver Reason=""TooManyCausalties"" />
</Then>
</QuestObjectiveCondition>
<QuestObjectiveCondition quest="""" objective=""killPlayer"" function=""IsObjectiveCompleted"" failSubtMissing=""false"" saveVersion="2">
<Then canSkip="1">
<GameOver Reason=""LostABattle"" />
</Then>
</QuestObjectiveCondition>
</Sequence>
</IfCondition>
I hope this will help everyone enjoy the game again. It took me all night to finally find this solution. And boy was I happy when I finally beat "Baptism of Fire". Because nothing else worked for me. No trainer. No Mods. Not Cheat Engine. Not rewriting the reputation mods to grant negative reputation. Not spawning villagers into prebyslev to kill them to decrease reputation with the village. Nothing. Only the solution above.