Modding, or creating mods, is the act of modifying the assets or behavior of the game either for personal use, or to release publicly to other players, for instance via Paradox Mods or the Steam Workshop.
As with all Paradox games, Crusader Kings III is moddable to a great extent. Motivations of modders may vary widely; better translation to native language, more events or decisions, better map, major overhaul, cheating, etc.
This guide is intended to lower the entry barriers to the world of Crusader Kings III modding. However, there is still a learning curve to it, and it cannot replace the need to read some working vanilla code and do lots of trial and error experimentation.
Important: the majority of mods will change the checksum, not allowing the player to get achievements. See checksum_manifest.txt in the game folder for the list of checksummed folders and files. The only safe mods are the ones that replace textures, shaders, fonts or music.
Tips & guidelines
- Create a mod for your modifications: use a personal mod even for minor changes, and never directly modify the game files in the CK3 game folder as they may be overwritten without warning.
- Use a good text editor to edit files and search through folders. The following are free:
- Visual Studio Code. Has a fan-made CWTools extension with Paradox syntax highlighting, validation and tooltips for triggers and effects. To install it, go to Extensions on the left panel of VS and search for CWTools. (Note: validation rules are incomplete and will show many false errors in gui and localization files)
- Notepad++. Choose Perl as your language, as it will provide good highlighting and allow to fold blocks of code and comments. To set it as default, go to Settings, Styler Configurator, find Perl in the list on the left and add "gui txt" (without quotes) to the "User ext." field at the bottom.
- Atom. Doesn't include UTF-8-BOM encoding needed for localization files. Otherwise is very customizable. Choose Perl 6 as your language for better results. To set it as default, go to File, Config, find "core:" and add below it: "customFileTypes: "source.perl6": [ "txt" "gui"]", like in this example.
- Sublime Text. There is an extension for it released by the developers of Imperator which could be used with CK3: Sublime Tools. It adds colored highlighting for effects and triggers. If you want to toggle comments in Sublime, you also need to add this file to the same "User" folder.
- Always check the error.log file for execution errors. ...\Documents\Paradox Interactive\Crusader Kings III\logs
- The log folder also contains lists of effects, triggers and scopes. Use "script_docs" and "DumpDataTypes" console commands in the game to generate them.
- Start the game with -debug_mode -develop launch options to use the console and "reload gui", "reload gfx" commands.
- On Steam: right-click the game on Steam -> Properties -> Set Launch Options -> add -debug_mode -develop
- Windows: Create a shortcut for the .exe file -> right-click it -> Properties -> add -debug_mode -develop at the end of the Target field
- The directory for the CK3 folder on Linux is ~/.local/share/Paradox Interactive/Crusader Kings III
- Clearly communicate whether your mod is ironman-friendly to players.
- Remove your local mod when you subscribe to the Steam version, otherwise it may not work in the game.
- Backup your work. Either manually or with a source control system like Git. Also consider using GitHub for team collaboration.
- Use a proper merge tool (like WinMerge) to merge between folders and update modified files for a new patch.
- If you're replacing text across dozens or hundreds lines of code, you may want to use regular expressions. They are available in all of the text editors above. Learning resources: RegexOne, RegExr.
- *.yml files in the localization folder must be saved with UTF-8 + BOM encoding to be read properly by the game.
- filenames need to be saved in the form as *l_<language>.yml for the game to read the file correctly. For example council_l_english.yml.
Creating a mod
- Open the Crusader Kings III launcher.
- Navigate to the "Mods" section.
- Press "Mod Tools", "Create a Mod"
- Enter your preferred mod name, version, directory and any tags.
- When done, press "Create Mod" at the bottom.
- Once created, the relevant mod files will appear in the game's mod folder (Default on Windows:
C:\Users\%USERPROFILE%\Documents\Paradox Interactive\Crusader Kings III\mod)
Uploading/updating a mod
Upload your mod again to update it.
- Open the launcher.
- Navigate to the "Mods" section.
- Press "Mod Tools", choose your mod from the dropdown menu.
- Choose what platform to upload it to.
- Enter any description. (If updating, make sure the launcher copied the most recent one from the site.)
- Add a thumbnail
- For the Steam Workshop, put thumbnail.png in the mod folder. Use 1:1 ratio, 1MB max. The biggest thumbnail the Workshop displays is around 600x600 pixels.
- For Paradox Mods, drag the thumbnail to the field below the description. Suggested minimum size is 900x500, png or jpg, 1MB max.
- Press "Upload".
- On Steam, the mod will be uploaded in private mode and appear in your Steam Profile -> Workshop Items. Open it and change visibility on the side bar to Public to actually publish.
- On Paradox Mods the mod will be published after the verification process. You may need to edit your description, as the site usually removes line breaks and BBCode formatting.
Save game editing
Save files are located in Documents\Paradox Interactive\Crusader Kings III\save games
It is not possible to edit an ironman save!
First start the game in the debug mode and save.
- On Steam: right-click the game on Steam -> Properties -> Set Launch Options -> add -debug_mode
- Windows: Create a shortcut for the .exe file -> right-click it -> Properties -> add -debug_mode at the end of the Target field
- Find the save file in the save games folder.
- Right-click the save file and extract it like an archive with 7-Zip or WinRar.
- Rename the extracted 'gamestate' file to something with a .ck3 extension.
- Right-click it and open with your text editor (Windows Notepad is not recommended as the save files are very big).
- Edit the file and save it.
- Load it in the game.
Autosaves can be edited directly without extracting the gamestate.
- Open Terminal
- Ensure that the directory is set to the correct folder
- Type in "unzip FileName.ck3"
- Rename the extracted 'gamestate' file to something with a .ck3 extension
- Edit this plain-text save
- Load it directly in the game (no need to re-compress)
Extracting files From Microsoft Store version
If you want to read the files using the Microsoft Store version, you can use a program called UWPDumper to extract the files.
- Download the latest x64 binary of UWPDumper
- Enable Developer Mode (Windows Settings -> Update and Security -> For Developers -> Developer Mode).
- Run CK3.
- Run UWPInjector.exe from the program you just downloaded.
- Enter the number next to ck3.exe : ParadoxInteractive.ProjectTitus_zfnrdv2de78ny as the processID.
- Check where it is going to store the files (probably somewhere like C:\Users\%USERPROFILE%\AppData\Local\Packages\ParadoxInteractive.ProjectTitus_zfnrdv2de78ny\TempState\DUMP
- Wait for the program to finish.
The files should then be present in the directory specified earlier. If you want to edit the files, create a mod and copy the desired files there.
Tools & utilities
- Exporters (Maya and Photoshop)
- Clausewitz Maya Exporter: a tool to create and export 3D models to use in CK3 and other Clausewitz games.
- UWPDumper: a tool to extract files from Microsoft Store games.
- CK3 User Mods on the Paradox Forum.
- Crusader Kings official Discord modding channel. Go to the server-roles channel and choose CK3 Modding in the Channel Access post.
- CK3 Mod Coop A community Discord server dedicated to modding for CK3.