Troubleshooting is the identification of the cause of crashes, bugs or other problems. Some of CK2's debugging features are restricted in retail builds, but there is still plenty to work with.
Log files
The game stores various log files in your CK2 user folder (~\Documents\Paradox Interactive\Crusader Kings II\logs\
). These are overwritten every time the game starts.
More logging can be activated by using command line arguments (via Steam game properties / define launch options):
-debug -debugscripts
File | Description |
---|---|
game.log | In game notifications and output of log commands. Since patch 2.4.1 only logged if -debugscripts is enabled.
|
setup.log | Game data loading logs (gui, modifiers, traits, ...) |
error.log | Parsing and loading errors. More asserts will be logged when enabling -debugscripts .
The following lines are OK if no elements is listed: [technology.cpp:718]: Missing Tech seed values: [technology.cpp:755]: None. [texturehandler.cpp:181]: Couldn't find texture file: . |
historical_setup_errors.log | Extra errors linked to title/character history. Only logged if -fullhistoricalsetuplog is enabled.
|
system_interface.log | Errors linked to interface modding |
graphics.log | Errors linked to map modding |
system.log | Hardware report |
system_interface.log | Interface errors |
text.log | Asserts on localization keys |
script_optimizations.log | Asserts on events that fire for courtiers |
ai.log | |
exceptions.log | In case of crash, you may get a stacktrace, with the last method called (ex: CLandedTitle::GetShortName) |
time.log | Logs the game loading time. |
memory.log | Logs the memory usage. |
Loading
When launching the game the following steps occur:
- Initialising Map Logic
- Loading Databases
- Generating Coat of Arms
- Loading Events
- Loading Sounds
- (Loading of vanilla history files occurs here (even if is replace_path), though it'll still show as "Loading Sounds") - very slow step !
- Processing Flags - generates the flag sprites in gfx\flags from the individual .tga files
- Loading Flags
- Loading Graphics
- Creating Provinces
- Loading Map(Creating Terrain)
- Loading Map(Creating Borders)
- Loading Map(Creating Trees)
- Loading Map(Creating Textures)
Once this is done the lobby interface will be rendered.
Crashes
Crashes or Crash To Desktop (CTD) are the despair of the players and nightmare of the modders. There is usually little to no information to identify the cause.
Here is a list of known issues:
Symptom | Troubleshooting |
---|---|
Instant CTD clicking Play in the launcher | Check no new defines.lua entries are missing in the mod (or better use defines folder to override, and avoid duplication) |
CTD at "Loading Databases" |
|
CTD at "Loading Events" |
|
CTD when rendering the lobby interface | Check that interface .gui and .gfx files are properly merged with vanilla, if copied in the mod. |
CTD on applying history (initial load or selecting a bookmark) | Check that all groups in technology history have an entry for earliest starting date of the mod. See technology modding. |
CTD on load/resign |
|
CTD when hovering or clicking an event option | Invalid syntax in the event, or calling a command with an invalid value. |
CTD when clicking on religion screen | Check that no more than 5 holy sites are defined in landed_titles for that religion |
CTD when clicking on button to open College of Cardinals | See Interface modding#Papal succession |
CTD when starting typing specific letters in the Title finder | Check that there are no empty geographical regions (at least 1 valid province) |
Debugging
In last resort you can use Visual Studio (including the free Express editions; get the "Windows Desktop" one) to see detailed debugging information. Though it won't let you debug step by step, as the sources for the game are not available.
Simply start the game, then use the Debug > Attach to process... menu option. Use the Output window to read the game's messages, which will include script validation errors and performance data.
For best results create an empty project and configure it to launch CK2.exe with your mod active (i.e. with the argument -mod=mod/foo.mod
); check the documentation for details on how to do this. You will then be able to launch the game with debugging by clicking the green Play button in Visual Studio. This will ensure that you capture any problems that show up right after the game starts.
When the game crashes Visual Studio will freeze it, tell you where the offset at which crash happened, and provide the option to save a "minidump". The offset and dump won't mean much to you but if you want to report the crash to Paradox they would find both useful.
Bugs
Bugs are usually easier to identify than crashes, as there is in-game context to identify the cause. Most non-functional bugs can be spotted via The Validator, a third-party tool which checks script files for various kinds of problems.
Symptom | Troubleshooting |
---|---|
Blank event popups that pause the game and can't be closed. |
|
Scripting keywords appearing in decisions/councillor names |
|
Decision not appearing |
|
Decision not having any effect when taken |
|
Truncated localization |
|
Localization not appearing in game |
|
Localized names show strange characters (Ã) |
|
Events not triggering (but OK via console testevent) |
|
Titles have wrong flags |
|
Black coats of arms |
|
Missing layers in portraits for custom ethnicities | |
Casus Belli immediately ends inconclusively |
|
All units models use wrong gfx |
|
Title is badly displayed on the map (not visible or way outside its area) |
|
Popups like naming children not showing up |
# ID 1 and 2 are empty dummy events that are used by the message system to spawn messages # that should be displayed as events, their descriptions are filled in by the message system letter_event = { id = 1 is_triggered_only = yes desc = "A" } character_event = { id = 2 is_triggered_only = yes desc = "B" } |
Testing
Testing is the process of checking your mod for bugs, including crashes, broken functionalities, or gameplay/balance issues.
Tooling for testing include:
- In-game console, with various debugging (or cheating...) features, in particular
play
,testevent
andevent
commands. Note that the "debug_" console commands are currently disabled in retail builds. - Cheat mods, allowing to automate many console commands, or things not achievable or too complex via console commands.
- Observer mode (
observe
console command), to check for game balance, and detect random CTDs over hundred of in-game years.
References
- ↑ In 2.6.3 game is fully playable and crashes only if you load saved game or resign the game
历史 | 角色 • 家族 • 省份 • 头衔 • 剧本 |
脚本 | 指令 • 条件 • 作用域 • 修正 • 事件 • 决议 |
常规 | 定义 • 游戏规则 • 另类开局 • 宗教 • 文化 • 政体 • 特质 • 血脉 • 科技 • 法律 • 建筑 • 宣战理由 • 朝贡国 • 单位 • 目标 • 疾病 • 死亡 • 荣誉头衔 • 社团 • 宝物 • 地图外政权 • 内阁成员 • 贸易路线 • 继承 • 奇观 • 称号 |
图像/音效/本地化 | 地图 • 图形 • 盾徽 • 肖像 • 界面 • 小地图 • 音乐 • 本地化 |
其他 | 故障排除 • 验证器 • 控制台指令 • 编辑游戏存档 • Steam创意工坊 • EU4转档器模组制作 |