-
Notifications
You must be signed in to change notification settings - Fork 1
Multi Mod and Translation
How the extension handles more than one mod at once, dependency mods, translating someone else's mod, and the optional per-mod workspace files.
Multi-mod workspaces just work. Every workspace folder that looks like a CK3 mod is treated as a mod being edited: definitions AND references are indexed across all of them, so completion, hover, go-to-definition and find-references span the whole workspace. ck3-tiger validates the mod that owns the file you save (with a per-mod tiger baseline), and mod-targeted commands (new content, loc editing, translations) act on the mod of the active editor.
A workspace folder that merely contains mod folders also works: its direct children that look like mods are picked up, so you can keep one parent directory with 20 mods and open just that. There is no "primary mod" to configure.
The mod-scoped sidebar views (Mod Overview, Localization Coverage, Overrides & Conflicts, the event graph and the mod report) show one mod at a time: by default the mod of the file you are editing, or pin one with CK3: Pick Focus Mod (button in the view headers; the header shows which mod is displayed). Switching mods is instant, because everything is indexed once at launch.
Mods you are not working on can be skipped entirely. CK3: Exclude Workspace Mods from Indexing shows a checklist of the detected mods; checked ones get no indexing, completion, diagnostics or views (setting: ck3.excludedMods). Both pickers live at the top of the Tools view, which also lists the currently excluded mods.
To keep 20 mods tellable apart, hovers and completion label definitions with the owning mod's launcher name (from its descriptor.mod) instead of a generic "mod", for example trait group revealed_realm · Cultivation Expanded. Mods without a descriptor fall back to their folder name. The Overrides view also flags definitions that two of your mods declare (launcher load order decides those).
Read-only parent / dependency mods can be indexed alongside your own, CW Tools style. They come from any of three places, all merged, with the first match winning on duplicates:
- Extra workspace folders. Open your submod plus its parent mods in a multi-root workspace (File → Add Folder to Workspace). These are treated as editable workspace mods (see above), which includes everything parents get.
-
The
ck3.parentModssetting (absolute paths, load order, base first). -
<mod>/.ck3modding/playset.json(below).
Parent content gets full syntax highlighting and language features, is indexed between your mod and vanilla (so completion, hover, go-to-definition and find-references from your mod resolve into parents), shows up in the overrides view, and re-indexes live when a parent file changes.
CK3 Localization: New Translation Mod scaffolds a standalone language compatibility mod for any indexed mod (a workspace mod or a read-only parent). Pick the source mod and target language, and it generates a complete mod folder:
- a
descriptor.modwith a dependency on the source mod, - every source loc file mirrored under
localization/<lang>/replace/with blanked values, keeping the original text as# english: ...comments so nothing wrong-language ever ships, - a
playset.jsonso the new mod resolves the source's symbols when opened alone, - a
TRANSLATE.mdwith the workflow, a per-file checklist, and a ready-made AI translation prompt (verbatim rules for preserving$variables$,[script], icons and formatting tags, and matching the official game translation's register and terminology).
The Localization Coverage view tracks the remaining untranslated keys (blank equals untranslated) while you or an AI fill them in.
-
playset.json-{ "parents": ["path/to/parent/mod", ...] }: index parent mods so total-conversion submods resolve names correctly. -
schema.json- extend or override the bundled type schema (folders → kinds → loc requirements) for frameworks the extension does not know. -
tiger-baseline.json- written by CK3 Tiger: Create Baseline.