Upgrading
How to use upgrading in Paradox Modding Toolkit.
Two upgrades are worth reading before you hit them: the 0.3.0 rename of the whole product, and the 0.4.0 config-folder rename. The 0.4.0 one is short, so it comes first.
Coming from 0.3.x to 0.4.0#
The per-mod config folder is now .px-toolkit/ on every game. It replaces .ck3modding/, .vic3modding/ and .eu5modding/, and it holds playset.json, schema.json, calendar.json, tiger-baseline.json, the generated tiger conf, the GUI preview values, workshop.json and, by default, the Workshop listing folder.
Nothing to do. An existing folder keeps working and is renamed the first time the toolkit writes to it. If you reference the old path in a script or a README of your own, that is the one place to update. .ck3modding/ is the only name still read as a fallback in the settings and docs you may have written.
Three more changes a 0.3.x user meets:
- The Workshop listing moved inside the mod.
px.workshop.dirnow defaults to empty, which resolves to.px-toolkit/workshop. An existingworkshopfolder next to the mod is still picked up, so the projects layout is untouched. Paradox: Move Workshop Listing moves it either way, and clears an explicitpx.workshop.dirwhen both places resolve the same. See Steam Workshop. - The generated tiger conf moved too, from the mod root to
.px-toolkit/<game>-tiger.conf, passed to tiger with--config, so an upload never ships your validator settings. A conf you keep at the mod root still wins, because tiger loads that one itself. Regenerate it once with Paradox Tiger: Generate tiger.conf. - A display calendar belongs in the mod.
<mod>/.px-toolkit/calendar.jsonwins over thepx.calendarsetting, which stays as the fallback. Paradox: Declare Calendar writes the file, and a stray calendar in a mod's own.vscode/settings.jsonis offered a Move Into Mod button. See Custom Calendars.
New in 0.4.0: px.coaLibraryDir. Everything else in the release is additive, and the full list is in the changelog.
Coming from the CK3 Modding Toolkit#
Version 0.3.0 renamed the product. The old CK3 Modding Toolkit (JDeffner.ck3-modding-toolkit) and the new Paradox Modding Toolkit (JDeffner.px-toolkit) are two separate Marketplace listings, so the old one will not update into the new one. You have to install the new listing yourself, and there are a handful of renames to sweep up afterwards.
The whole migration is about five minutes. Nothing about your mod files changes.
Why it happened#
A CK3-only name and a ck3.* settings namespace stopped describing the product once Victoria 3 and Europa Universalis V arrived. Rather than keep a misleading name, the extension took the rename cost once. Internally the split is: px names the product (extension id, settings, commands, npm packages, the suppression comment) and ck3 still names the game (gameId, ck3-tiger, the ck3-script diagnostic source; the .ck3modding/ folder was one of these until 0.4.0 made it .px-toolkit/). So the things that are genuinely about CK3 kept their names.
CK3 users lose nothing. Same schema, same bundled wiki data, same tiger integration, byte-identical completion ranking.
1. Install the new listing, remove the old one#
Search the Extensions view for Paradox Modding Toolkit (JDeffner.px-toolkit) and install it, then uninstall CK3 Modding Toolkit. Running both at once is not useful: they register the same languages and will fight over your .txt and .yml files.
2. Settings: ck3.* becomes px.*#
Every setting kept its name and meaning and only changed its prefix.
| Old | New |
|---|---|
ck3.gamePath |
px.gamePath |
ck3.logsPath |
px.logsPath |
ck3.tigerPath |
px.tigerPath |
ck3.modPath |
px.modPath |
ck3.parentMods |
px.parentMods |
ck3.excludedMods |
px.excludedMods |
ck3.locLanguage |
px.locLanguage |
ck3.tigerRunOn |
px.tigerRunOn |
ck3.diagnostics.ignore |
px.diagnostics.ignore |
ck3.diagnostics.ignorePatterns |
px.diagnostics.ignorePatterns |
ck3.diagnostics.vanilla |
px.diagnostics.vanilla |
ck3.scopeInlayHints |
px.scopeInlayHints |
ck3.enableForWorkspace |
px.enableForWorkspace |
ck3.trace.server |
px.trace.server |
The fastest path is to open settings.json (user and workspace) and replace "ck3. with "px. in those lines, then delete any ck3.* leftovers. Or simply delete them all and run Paradox: Run Setup & Health Check once: the machine paths are auto-detected anyway, and there is a new px.gameId to go with them (see Supported Games).
New in 0.3.0: px.gameId and px.trace.perf. Gone: ck3.tutorial, along with the bundled 10-chapter tutorial, which is becoming a tutorial website. The AI modding skill has since moved to its own repository, paradox-ai-modding.
3. Suppression comments: # ck3m:ignore becomes # px:ignore#
This is the one that fails silently. An old # ck3m:ignore comment suppresses nothing now, so diagnostics you had quieted will reappear.
The diagnostic codes themselves are unchanged, so a find-and-replace of the marker across your mod is the whole migration:
# ck3m:ignore→# px:ignore# ck3m:ignore-next-line→# px:ignore-next-line
While you are there: a trailing -- reason is now parsed as a rationale and ignored, so # px:ignore unknown-event -- fired by the base mod works. (In the old build those rationale words were read as diagnostic codes, which broke the suppression entirely.)
4. Clear the stale .dds editor association#
If you ever set VS Code's editor association for .dds files by hand, it points at the old custom-editor id ck3.ddsPreview, which no longer exists. Until you clear it, opening a .dds file breaks.
Check workbench.editorAssociations in your settings and remove any entry mentioning ck3.ddsPreview. The new id is px.ddsPreview, and it is the default for *.dds, so the setting is not needed at all.
5. Custom keybindings#
Command ids moved from ck3.* to px.* too, so any keybinding you wrote by hand needs the same prefix swap in keybindings.json. Command names in the palette moved from the CK3 / CK3 Tiger / CK3 Localization categories to Paradox / Paradox Tiger / Paradox Localization.
The set of shipped defaults has changed several times since the rename; the current list lives in Configuration. If you bound the old ck3.* ids yourself, the prefix swap is all you need, and your own binding wins where a default later came back on a different key (the format docs moved from Ctrl+Alt+O to Ctrl+Alt+D). px.showDependencies and px.openLocalizationSideBySide ship without a default; bind them yourself if you used the old Ctrl+Alt+D / Ctrl+Alt+L.
Note that Ctrl+Alt+P now opens the GUI editor rather than the retired GUI Layout preview.
What did not change#
.ck3modding/kept its name through 0.3.x; yourplayset.json,schema.jsonandtiger-baseline.jsonwere picked up as before. 0.4.0 renamed the folder to.px-toolkit/, and still reads the old one (see the 0.4.0 section above).- Diagnostic codes are identical, and so are tiger's report keys.
- The
ck3-scriptdiagnostic source for CK3, and theck3-tiger.conffile name. - Cached indexes survive: CK3 deliberately kept its legacy cache filenames.
- Your mod files. Nothing in this release writes to them.
What else is new in 0.3.0#
Victoria 3 and EU5 support (Supported Games), the visual GUI Editor replacing the old layout preview, the event simulator, a redesigned event graph and Project dashboard (Sidebar Views), full-depth outlines and folding in every language, bundled script_docs snapshots, dependency mods reaching tiger, and a language server that runs standalone outside VS Code (Outside VS Code). The full list is in the changelog.