-
Notifications
You must be signed in to change notification settings - Fork 1
Content Creators
Forms over the game's own documented keys, so a trait, a culture, a legacy track or a dynasty is something you fill in rather than something you type from memory. Each one writes ordinary script into your mod, and the script is the only artifact: nothing here keeps a project file you have to come back through.
Crusader Kings III only. The creators are built against CK3's own files and the folders the schema table already indexes, so Victoria 3 and EU5 show no rows for them. The Coat of Arms Designer at the bottom of this page is the CK3 face of the Flag Builder.
Open them from the Create group of the Project panel (Sidebar Views), or from the palette: Paradox: Open Trait Creator, Open Dynasty Legacy Creator, Open Culture Creator, Open Tradition Creator, Open Dynasty Tree, Open Coat of Arms Designer.
They say where they save, before you save. The top bar of every creator reads <mod> › <folder>/<file> from the moment the form loads, and clicking it changes the target. With more than one mod in the workspace you pick which one. A file name that would replace a whole game file is refused rather than written.
They open what you already have. The Open menu lists your mod's definitions and the game's own, marked by source. Load one and only the lines you change are written back, so comments, formatting and everything no field can stand for survive the round trip. A game definition is duplicated into your mod by default; overriding it says so first.
They fit their pane. The form sits centred in its pane, the label column is wide enough for the game's own field names (Name order convention, Head determination), and a single-line control stops at a readable width instead of stretching a dropdown across the whole pane. Text and picture blocks keep the full width.
Pickers, not typing. Every value the toolkit's index knows about (traits, pillars, traditions, name lists, modifiers, doctrines, houses, parents) is a picker. Empty inputs carry the value the game itself writes most as their placeholder, so an unfamiliar field still shows you what belongs in it. Number fields scrub on their label, which leaves the input free for typing.
They preview what the game draws. Each creator renders its result from the game's own art and text, through the indexed game and mod folders: a trait's tooltip, a legacy row with its perk tiles, the culture window header, a tradition's layered icon.
Script stays in the editor. A form field that holds script says so ("No completion or highlighting here. Edit in the file") and offers a button that saves the definition and opens it in the editor at its block. Completion, hover and diagnostics live there, not in a webview textarea.
Localization is written for you. New loc keys go to localization/<lang>/<the script file's name>_l_<lang>.yml in the mod the definition was written to, through the normal localization writer. Name and description are both prefilled, so a save never leaves the game printing a raw key.
Pictures explain themselves. Every picture field carries an (i) with the size, the format, the path the game builds and what has to be transparent, all read out of your installed game. A custom picture accepts PNG, JPEG, WebP, GIF, BMP, AVIF, ICO, SVG, TGA or DDS, asks which folder of your mod it belongs in, and writes the DDS.
One save, one undo. The whole save lands as a single undo step, and the generated script is an ordinary section in the form, open by default, with a copy button beside Save.
None of them validates your script. ck3-tiger stays the validator (Editor Features).

common/traits. The 60 keys _traits.info documents, each with the game's own one-line explanation, laid out in sections, plus the display name and the description. A new trait saves with only a name typed.
The preview prints what the game prints: the category frame under the picture, the icon at the tooltip's 52 px, every opinion key through the game's own sentences, and the modifiers the game hides from players (hidden = yes in the format files, the ai_* family) in a group of their own. Every key the doc file lists has a control, so a loaded vanilla trait comes back with nothing left as raw script.
Icons are a grid of the trait icons your game and your mods actually have (120x120). The Modifiers picker leaves out the six skills and the other keys the form already draws a field for.

common/dynasty_legacies for the track, common/dynasty_perks for the perks, with legacy = <track> filled in for you. A track has exactly five perks, which is what every vanilla track has, read from the game's own perk files; a loaded track with a different count says so under the row.
A perk carries the seven keys the game documents, and none of them needs script:
-
character_modifierand the trait chances intraitsare modifier rows. -
doctrine_character_modifieris a list, because the game's own erudition legacy writes three of them, each with its doctrine, its optional name and its own modifiers. -
is_shownandcan_be_pickedare rows over the DLC features, game rules and scripted triggers the game files use. -
ai_chanceis a number. -
effectis built from tooltip lines, modifiers and flags, or copied from a game perk as a starting point.
Raw script stays as the advanced fallback and round trips unchanged. An empty script area returns without a word; one the reader stopped on names the line and offers to drop the script.
The Art section names what the game expects (the icon at 140x140, shown at 80x80; the illustration at 4216x368) and the row below draws the illustration the way the window does, stretched behind every perk. The illustration picker shows one full strip per row.
After a save a notification names the track file, the perks file and the loc file, with a button for each. Every section of the track form and of the perk editor has a ? saying what it writes, what it accepts and what the game does with it. A perk you drop off a track is reported, never deleted behind your back.

common/culture/cultures. A culture composed out of the game's own parts: the five pillars as one picker each (they all live in one folder, so each option is labelled with the family its own block declares), the traditions as searchable chips carrying the game's description, a name list, the art sets and ethnicities with the values the game writes for them, a color as a named color or a picked one, and parents plus a creation date for a hybrid or divergent culture. Every other documented key is there as raw script.
The preview is the culture window header: pillar icons tinted the way icon_flat_standard tints them, the ethos as the wide banner behind the rough-edge mask, tradition tiles in the window's 276:138 shape. A tradition chip opens the Tradition Creator on that tradition; New tradition opens it blank. A tradition saved there is offered by the Add tradition picker at once, and one started blank from this culture's row joins the culture as it saves.
Measured on 1.19: two vanilla cultures round trip byte for byte, and ck3-tiger finds no problem in what it writes.

common/culture/traditions. Name and description, category, an icon composed from the game's own layer folders with a picker per layer and a live preview, cost, parameters as switches, modifier blocks with the player's own lines, and conditions as script with real examples beside them.
Parameters read as the game words them. A sentence that calls the game's text functions is resolved through the loc, definition and schema tables, so the chip says "The Rough Terrain Expert Commander Trait is more common" instead of showing the markup. 242 of the 280 parameter sentences that carry such a call resolve completely; one that does not falls back to the parameter's key.
The icon section shows the composed tile at the game's 220x120, decoded full size from the chosen layers. The game draws every layer, not only the named ones: a layer the tradition leaves out, or one that names a folder, gets a random file of that folder, which is why a vanilla tradition naming only a background, a pattern and an item still wears a support frame and a stroke in game. The tile shows a stand-in for each such layer and says which layers the game will pick at random, and under each such row it lists the files the game can land on, large enough to tell apart; one click on a file picks it for a left-out layer. A file name with spaces (the game's own rec1 copy 2.dds) is written quoted, because bare it made the engine log "Left was not a number: copy" and draw the tradition without that layer. The Culture Creator's tradition tiles follow the same rules. The cost prints as the game's <CURRENCY>_COST line with its icon, and tooltip tones #P, #N and #V are drawn the way the game draws them. Keys are written in the order the game writes them, and the output passes ck3-tiger clean.

history/characters, common/dynasties and common/dynasty_houses. Any dynasty of the game or your mod as a family tree: generations top down, couples side by side under a marriage bar, children centered under their own marriage, siblings oldest first, houses as a badge, and game characters drawn apart from your own.
The picker leads with the dynasty you had open last, then your mod's own dynasties, then the game's, each under a heading, and a search narrows every group. Women's cards carry a rose tint and men's a blue one, on the fill, the outline and the sex glyph, so a line of the tree reads at a glance; the character form's Sex field is two named buttons in those colours.

Click a card and the inspector opens. It edits your characters and adds a child or a spouse to anyone, game characters included; the new character is written into your mod pointing at the one it descends from. Edit on a game character writes a full copy under the same id as an override, and the form's heading says so. Clicking empty canvas closes the character view and shows the dynasty again, the same as Escape.
-
Dates are era, year, month and day controls driven by your display calendar (Custom Calendars), read from the mod's
.px-toolkit/calendar.jsonfirst and thepx.calendarsetting second, custom month names and eras included: "31 Third Moon 1000 BC" writes1000.3.31. The cards read their years through the same calendar, the era named once for the pair ("332–385 AI"). A Calendar / Script toggle in the toolbar, shown when the mod has a calendar, puts every date on screen in the game's ownyear.month.dayand back, and the panel remembers the choice. -
DNA carries the portrait, not just the name, with Open, Copy DNA (the whole
common/dna_datablock) and Paste DNA (a block or a bareportrait_infooff the clipboard, written under a free key, never over one that exists). -
Traits show a 28 px picture and the first stat lines in the game's own words, with a
modtag for traits your workspace defines; the tooltip is the game's 52 px picture and every stat line. - Undo and redo (Ctrl+Z, Ctrl+Y, or the toolbar buttons) cover every write the panel makes, including the loc line a new dynasty writes. A file somebody else changed meanwhile is named and left alone.
New dynasty, New house and a Design coat of arms button that hands the id to the coat-of-arms panel round it out. A save says what it wrote and offers the file, instead of throwing an editor over the tree.

The CK3 coat-of-arms editor, opened by Paradox: Open Coat of Arms Designer, by the Create row, or by Paradox: Open Flag Builder, which routes to it on CK3 and to the Flag Builder on the other games. Paradox: New Coat of Arms… asks what the arms are for (a dynasty, a house, a landed title, a character, or a key you type), lists your mod's definitions of that kind, and opens the designer on the key the game reads the arms under. A character has no key of their own, so the pick resolves to their house and falls back to their dynasty.
Two panels. What a design is (Background, Layout and Emblems tabs, from the game's pattern list, color palette, emblem catalog by category and preset layouts) stays on the right; what you do to it (the library, the preview frame, the grid and the placement numbers) sits on the left, so the numbers stay on screen whichever tab is up. The left panel carries no headings: the buttons name themselves, and the placement numbers sit as one row per quantity (Position X Y, Scale X lock Y, Rotation and Depth), each number behind a one-letter label that is also its drag handle. The key is typed once, in the top-left field. Start from scratch, adjust an existing design from any game or mod definition, or paste script from the clipboard; copy puts it back. The game's own Adjust mode locks the emblem textures; this editor does not, so arms opened to change one emblem can have it changed. A pattern tile renders the colours the design has not set as three greys, so the tiles read as patterns rather than in the texture's yellow placeholders, and an emblem colour written as a reference (color1 = color2, the blank template's form) is held as the colour it names, because the game's own designer draws a pasted reference in red.
- Emblems. Position, scale, rotation, flip and depth per instance. Shift-click and Ctrl+A select several, a layer can be locked, and a selection moves, scales, rotates, aligns, distributes, mirrors and duplicates as one box. The align, distribute, mirror and duplicate tools are one row of four groups; every button's tooltip says what it does and to what. Delete or Backspace removes the selected placements, and an emblem whose last placement goes leaves with it.
- The grid is one segmented row, Off beside 4, 8, 16, 32 and 64, the active segment pressed. An arrow key moves one grid cell and Shift four; with the grid off, 1/256 and 1/32 of the arms.
-
Frames. House and dynasty frames are sprite sheets of six tiers, so a tier picker sits beside the frame picker. Each frame is named after the heritages whose cultures wear it, read from
house_coa_frameincommon/culture/cultures: "House Frame 14 (Turkic, Mongolic, Tungusic)", up to three, then the rest in the button's tooltip. A frame no culture names keeps its number. -
The arms sit where the game puts them. A frame widget draws the arms as a smaller icon inside the frame, and the house widget shrinks and raises them further by the
house_coa_mask_scaleandhouse_coa_mask_offsetof the culture wearing the frame (house_frame_22 draws the arms at 0.85 of the icon and 0.11 of it higher, house_frame_12 at 0.95 and 0.04 higher); the title shield shrinks them to 0.9 and moves them down by 0.04 of the icon. The preview reads those numbers off the gui and the cultures, measured on 1.19, so a design lines up with the game's own designer previews. The band between the arms and the frame shows the arms' edge stretched, the way the game's texture sampling shows it, so an emblem placed across the edge streaks here as it does there. The grid's border marks the edge; with the grid off a dashed line does. -
The library stores designs as script files outside any mod, so a design survives the mod it was drawn for. Save writes one, Library shows what is stored as pictures and loads the one you pick, and the folder button sets
px.coaLibraryDir(defaultDocuments/Paradox Interactive/<game>/px-toolkit/coat_of_arms). Each file holds exactly what Copy puts on the clipboard.
Textures decode on worker threads, so opening the designer on a large mod does not stall the editor.
- Sidebar Views for the Create group these rows live in.
- Flag Builder for the Victoria 3 and EU5 coat-of-arms editor.
- Custom Calendars for the calendar the Dynasty Tree writes dates in.
- Editor Features for the completion, snippets and diagnostics that take over once you are in the file.
Source-backed Coat of Arms definitions expose native PX source actions. Use the context menu on the definition, or Shift+F10 while it is focused. Definitions without a source location do not offer a source-navigation action.
Wiki notice: This wiki is mainly AI-generated, with limited human review and moderation. Pages primarily describe the latest preview version of the toolkit and may contain errors or differ from stable and older releases.
Repository · Releases · Changelog · Report a bug · Credits
Extension id JDeffner.px-toolkit. Licensed GPL-3.0-or-later; bundled third-party data keeps its own terms (notices).