Skip to content

Editor Guide

Christopher Schnick edited this page Nov 9, 2023 · 22 revisions

Preface

Encryption

Some savegames (mostly Ironman and Multiplayer ones) usually have a special encryption for its file contents, so that users can't easily tamper with the savegames. This means that you can't edit most Ironman savegames and some others directly. The lock icon and the fact that the save button is disabled indicates that a savegame is not directly editable. However, you can make use of the Melter functionality that comes with the Pdx-Unlimiter to convert any encrypted binary savegames into normal text-based ones. (But not the other way around) You are then able to open the melted savegame in the editor and can save the changes.

Alternatively, you can also use game functionality such as a debug mode or settings file configuration to save all files unencrypted. How this works is heavily game dependent however. For games like Victoria 3 this is currently the only option make encrypted saves editable as the Pdx-Unlimiter does not have an accurate melter yet for Victoria 3. Cloud saves are especially tricky to convert to plaintext using a game specific method. So prefer creating local campaigns rather than cloud campaigns if you intend to ever edit them.

Achievement Eligibility

Whenever you perform an edit, the savegame checksum becomes invalid and the game disables achievements.

File Structure

File formats

A savegame can either be compressed or uncompressed, depending on the game, whether Ironman was enabled, and user settings for the game. An uncompressed one is a simple readable text file while a compressed savegame is usually in some kind of zip file format where the contents are split into multiple files inside the zip file. The Pdx-Unlimiter editor handles everything file format related for you so you don't have to worry about the format of your savegame at all.

When opening a savegame, the files contained in a compressed savegame are displayed like this:

Compressed

If it is uncompressed, there is only one big file displayed. The data contained in both instances is still the same, just the layout of where for example the contents of the meta entry are located changes.

Uncmpressed

File contents

A savegame consists out of many node entries, where each entry can have a name, also called the key, and an associated value. If an entry has a key name, it is formatted as <key name> = <value> and look like this:

Entry

If an entry does not have a key name, its index in the parent entry is displayed as its key:

No-Key

Navigation

The navigation bar located at the top shows you exactly where you are currently located in your savegame and also allows you go back up by clicking on any entry in the navigation path. It looks like this:

Nav-Bar

You can use the arrows to go back to the last location you were at or go forward to the location you just went back from. On the right you can also use the edit button to edit the node you are currently looking at with an external text editor.

Jumps

Node jumps allow you to quickly jump to the actual definition of a data structure:

If this button is shown next to a node, you can click on it to jump to the node to which it refers to.

This is useful in cases where the actual data is defined somewhere else and the current entry only refers to this data definition.

Common node jump locations allow you to instantly navigate to commonly used definitions in one click by opening the Jump to entry in the menu bar:

Common-Jumps

These common jump locations try to cover the most used locations so that you don't have to manually search for them.

Filters

Since savegames contain thousands of node entries, it is basically required to use filters in order to find entries that you are looking for. The filter bar is located at the bottom and looks like this:

Filter

The search string can be entered into the text field. To apply a search string, you have to press Enter. On the right, the Showing results for ... label shows the currently active filter The various buttons on the bar have the following usages:

A toggle button to include key names in the search. Key names are located to the left of the equal sign of an entry.

A toggle button to include node values in the search. The values are the objects located to the right of the equal sign of an entry. The value is searched recursively for the search string, so even if the value is an object or list with many nested entries, it matches the filter even if only one nested entry of the value matches. Therefore, if applying your search string does not have any visible effect in narrowing your choices down, it is recommended to turn this off and only search for key names instead.

Applies the filter string in the text field. Alternatively, you can press Enter after typing your search string.

Clears the active filter.

Toggles case-sensitive matching mode for the search string.

Note that you always have to clear the filter to display all entries of an object, as it doesn't reset when clicking on a new list or object. Therefore, if you used the filter to locate a certain definition, always clear the filter afterwards.

Data Types

To the right of the = sign, you can find the value of each node entry:

Values

The value can be one of many different types:

Primitives

The associated values can be of one of the following primitive types:

Boolean, either yes or no

Integer, e.g. 124

Floating point number, e.g. 1.12

Text, e.g. "Text value"

A game specific value, e.g. the relgion id catholic in eu4. While it looks like a normal Text value, the difference is that you can basically assign anything to a text value while you can only assign certain things to a game specific value without breaking the game

Color

Lists

A value can also be a list of any of the primitive types of the ones listed above and would look like this:

List-Entry

You can expand the list contents by clicking on it. For any list, you can also use a preview feature to peek at its contents:

A button that you can hover over to get a preview of the list contents in text form.

Objects

If entries of a list also have key names associated with them, they can be thought of as objects. A special type descriptor is then used to distinguish them from normal lists:

Complex type, assigned if a list contains key-value pairs on its own, its type is described as complex

Synthetic lists

It is also possible that in the underlying data, there are multiple consecutive entries with the same key name. In this case, they are automatically merged into a synthetic list entry, to improve readability:

Synthetic-Entry

They are called synthetic, because these entries do not actually exist like this in the savegame. In the case shown above, there actually exist 819 entries with the key rebel_faction instead. Synthetic entries can not be edited directly with an external editor, only its child nodes can.

Node tags

Node tags provide a graphical preview or other information for some nodes, for example CK3 coat of arms. If a node is tagged, the following buttons can be shown:

Indicates that a graphical preview is available.

Indicates that useful information can be shown for a node.

A CK3 coat of arms preview window looks like this:

Coat-Of-Arms