[COMPLETED] Pathfinder: Kingmaker

Ask about cheats/tables for single player games here
antema
Cheater
Cheater
Posts: 28
Joined: Wed Sep 26, 2018 6:27 pm
Reputation: 2

Re: Pathfinder: Kingmaker

Post by antema »

So, bad news. I managed to edit Valerie's character level using the the Cheat Engine table found here: viewtopic.php?t=7964 and then edit the save file to decrease her class level from 2 to 1, and it worked. Valerie had decreased from character level 2 and class level 2 to character level 1 and class level 1, and I was able to level her up again. Unfortunately, upon leveling her up to level 2 again. I was unable to choose an additional feat. Since the Fighter's level 2 combat feat had already been chosen, the game did not allow me to choose the same Fighter level 2 feat again.

Image

As you can see, at the beginning of Level 2 level up process the new Feat slot had already been filled with the Shield Focus, that I had chosen during Valerie's first time leveling to Level 2. It seems that feats are basically slot based. Instead of having a heading called Feats, and under that are all feats placed, it seems that feats are managed as slots being filled. So for Fighters there are slots called Fighter Level 2 Feat, and so on, and that slot can only be filled once.

Note: This post has been posted to both discussions

antema
Cheater
Cheater
Posts: 28
Joined: Wed Sep 26, 2018 6:27 pm
Reputation: 2

Re: Pathfinder: Kingmaker

Post by antema »

Just confirmed that lowering class level through save editing and lowering class level through Cheat Engine, are very different. Using Cheat Engine apparently makes bigger changes, and this allows you to choose the same bonus feats multiple times.

I believe "pics or it didn't happen" is a common expression:

Cheat Engine (you can see the abilities tab):
Image

Save editing (no abilities tab):
Image

Rebelicious
Expert Cheater
Expert Cheater
Posts: 102
Joined: Tue May 09, 2017 10:46 am
Reputation: 13

Re: Pathfinder: Kingmaker

Post by Rebelicious »

A problem with just lowering character level to get more class levels (and thus taking also taking character levels multiple times) is that you end up getting all the effects from leveling up both your character levels and your class levels - thus rapidly inflating your stats enormously.

So when it comes to just gaining feats, it's unfortunately useless. Haven't found a way around it yet.

JohnstonMR
What is cheating?
What is cheating?
Posts: 2
Joined: Fri Sep 28, 2018 12:39 am
Reputation: 0

Re: Pathfinder: Kingmaker

Post by JohnstonMR »

Okay, so I'm going nuts. I've done this on both a Mac and in Windows, but I can't get the files to work--when I go back into Pathfinder, the game completely ignores the existence of my .zks file. I used 7zip to open and re-pack the files, but no dice. JSON editors confirm the files are correct.

All I edited were ability scores.

Ah well, I guess I'll just keep trying to play it kosher.

vuechangz
What is cheating?
What is cheating?
Posts: 3
Joined: Sun Oct 01, 2017 10:38 pm
Reputation: 1

Re: Pathfinder: Kingmaker

Post by vuechangz »

So I found out a way to edit the savegames but its pretty basic. Idk how to make a program to do everything for you so here goes.

The stuff I know so far is to edit in more abilities and feats.

You will need 7zip, and json editor of some kind.
I use an online version since its pretty conveniant.

Use 7zip and extract the save game into a folder of your choice.

Then edit party.json

Search for Abilities

There are allot and you might not know what you're looking for but somewhere right below those lines should say
$id
m_facts
Thats how you know you're looking at the correct abilities line.

The ability ill add in is the Charge specialty ability.

After many tinkering here is what I found out.

Code: Select all

{
              "$id": "173",  ; $id is very important, you will need a new number everytime otherwise your save will crash the moment you load and or be stuck in the loading screen.

              "$type": "Kingmaker.UnitLogic.Abilities.Ability, Assembly-CSharp",
              "m_Hidden": false,
              "Data": {

                "$id": "174",

                "Blueprint": "c78506dd0e14f7c45a599990e4e65038",   ; Blueprint seems refer to the ability Charge since it is unique.

                "Caster": {
                  "$ref": "5"  ;    $ref sometimes need a new number to work but if it needs a reference to use then it will use a previous number and you will have to go back digging to see which one it correlates to.

                },
                "Fact": {
                  "$ref": "173"    ;    $ref is referencing to the $id 173 which is the ability itself
                },

                "m_ConvertedFrom": null,
                "DecorationColorNumber": -1,
                "DecorationBorderNumber": -1,
                "m_SpellbookBlueprint": null,
                "IsSpellCopy": false,
                "MetamagicData": null
              },
              "Blueprint": "c78506dd0e14f7c45a599990e4e65038",
              "m_ComponentsData": [],
              "StickyTouch": null,
              "Owner": {
                "$ref": "5"    ;    Owner ref 5 means probably that the ability is of the characters. For example if the Owner ref is other than 5, means its one of the characters in your party.
              },
              "Initialized": true,
              "Active": true,
              "SourceItem": null,
              "SourceCutscene": null
            }
Now for a finished code, say for example that all the $id and $ref go up all the way to 374 and theres no 375 after then you will put 375 in the $id and continue adding up by 1 for each new $id you add.

Code: Select all

{
              "$id": "375", - Changed
              "$type": "Kingmaker.UnitLogic.Abilities.Ability, Assembly-CSharp",
              "m_Hidden": false,
              "Data": {
                "$id": "376", - Changed
                "Blueprint": "c78506dd0e14f7c45a599990e4e65038",
                "Caster": {
                  "$ref": "5"
                },
                "Fact": {
                  "$ref": "375" - Changed
                },
                "m_ConvertedFrom": null,
                "DecorationColorNumber": -1,
                "DecorationBorderNumber": -1,
                "m_SpellbookBlueprint": null,
                "IsSpellCopy": false,
                "MetamagicData": null
              },
              "Blueprint": "c78506dd0e14f7c45a599990e4e65038",
              "m_ComponentsData": [],
              "StickyTouch": null,
              "Owner": {
                "$ref": "5"
              },
              "Initialized": true,
              "Active": true,
              "SourceItem": null,
              "SourceCutscene": null
            }
After this you would compact everything and save. Then use 7zip or winrar and add to archive. MAKE SURE YOU CHOOSE ZIP as the ARCHIVE FORMAT. Or most of the time you will crash or get stuck in loading screens.

This is for abilities
I will add in activatedabilities
and feats afterwords.
Thank you for reading.

wakka9ca
Noobzor
Noobzor
Posts: 7
Joined: Fri Sep 28, 2018 9:03 am
Reputation: 2

Re: Pathfinder: Kingmaker

Post by wakka9ca »

It turns out that if you only need to allocate new IDs that continues beyond the current maximum.You do NOT need to shift the IDs, the game will do it for you. Once you load the modded save file into the game and re-save it into another save file name, it will re-assign all the IDs to maintain the same order and ID progression order. I do not recommend overwriting the existing file though due to save/load bugs (just re-save to a new file).

I was successful at adding both spells and feats to my sorcerer by cross-examining another freshly created sorcerer with the exact same build with the exception of spells selected and the feats selected. By diffing the save file I was able to reverse-engineer how this works.

For spells (Sorcerer):

-Find "m_KnownSpells"
-The spells are organized by level, starting with level 0, each level is grouped by a []
-Example entry you can add:

Code: Select all

{
	"$id": "431",
	"Blueprint": "9e1ad5d6f87d19e4d8883d63a6e35568", <-- This is the GUID for the actual spell.
	"Caster": {
		"$ref": "5"
	},
	"Fact": null,
	"m_ConvertedFrom": null,
	"DecorationColorNumber": -1,
	"DecorationBorderNumber": -1,
	"m_SpellbookBlueprint": "b3db3766a4b605040b366265e2af0e50", <-- This value needs to match the spellbook "Key". Search for "m_Spellbooks" to find your spell books
	"IsSpellCopy": false,
	"MetamagicData": null
}
For feats, they are grouped under the "Features" section.

The only good way right now until the data is mined is to create a new character and get the feat you want to copy over to another character. this is because unlike spells, each feat might differ greatly in how they are set in the save file due to different dependencies and special focus selection, etc. It's not just the GUID being changed.

An example entry for "Point-Blank Shot". This section seems to affect what gets displayed under Abilities tab.

Code: Select all

{
	"$id": "433",
	"$type": "Kingmaker.UnitLogic.Feature, Assembly-CSharp",
	"m_Context": {
		"$id": "434",
		"m_OwnerDescriptor": {
			"$ref": "5"
		},
		"m_CasterReference": {
			"m_UniqueId": "25ada0ec-49c7-43be-bb28-648bd943b938" <-- This should be unique to your character, copy it from the other feats
		},
		"m_Ranks": [0, 0, 0, 0, 0, 0, 0],
		"m_SharedValues": [0, 0, 0, 0, 0, 0],
		"m_Params": null,
		"AssociatedBlueprint": "0da0c194d6e1d43419eb8d990b28e0ab", <-- This is the GUID for the feat blueprint
		"ParentContext": null,
		"m_MainTarget": null,
		"Params": {},
		"SpellDescriptor": "None",
		"SpellSchool": "None",
		"SpellLevel": 0,
		"Direction": {
			"$type": "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
			"x": 0.0,
			"y": 0.0,
			"z": 0.0
		}
	},
	"Blueprint": "0da0c194d6e1d43419eb8d990b28e0ab", <-- This is again the GUID for the feat, referenced by AssociatedBlueprint earlier
	"m_ComponentsData": [{
			"$id": "435",
			"ComponentName": "$DistanceAttackBonus$e2c37121-af02-4d86-aed7-7766bfb1f83d" <-- This feat seems to be implemented with some sub-component by the devs. The components are usually unique for each feat. Some feat has 1, 2 or even none as far as I can tell.
		}, {
			"$id": "436",
			"ComponentName": "$DistanceDamageBonus$299a0f93-9e45-4af6-9c53-c2503fcf2f57"
		}
	],
	"Rank": 1,
	"Source": "5b72dd2ca2cb73b49903806ee8986325", <-- Source is where the feat was taken from (racial, class, etc). Copy it from the other feat you can find that belong to the same source.
	"Param": null,
	"IgnorePrerequisites": false,
	"Owner": {
		"$ref": "5"
	},
	"Initialized": true,
	"Active": true,
	"SourceItem": null,
	"SourceCutscene": null
}
Note that the selected feats under the Class tab will not change unless you change the "m_Selections" entries. As far as I can tell, the selections have a fixed slot and you don't need to touch the selection at all unless you want to swap what gets displayed in the class tab. I don't think it has any functional effect other than history and visuals.

Of course, if someone can mine all the feats and spells out for each class, a save editor would be extremely doable.
JohnstonMR wrote:
Fri Sep 28, 2018 1:12 am
Okay, so I'm going nuts. I've done this on both a Mac and in Windows, but I can't get the files to work--when I go back into Pathfinder, the game completely ignores the existence of my .zks file. I used 7zip to open and re-pack the files, but no dice. JSON editors confirm the files are correct.

All I edited were ability scores.

Ah well, I guess I'll just keep trying to play it kosher.
You do not need to repackage the extracted save into a zip. Just dropping the extracted folder the game can already read it. However you should re-save it to a new file to get all the IDs re-assigned and consistency-checked and re-packaged by the game itself.

Rebelicious
Expert Cheater
Expert Cheater
Posts: 102
Joined: Tue May 09, 2017 10:46 am
Reputation: 13

Re: Pathfinder: Kingmaker

Post by Rebelicious »

wakka9ca wrote:
Fri Sep 28, 2018 9:30 am
It turns out that if you only need to allocate new IDs that continues beyond the current maximum.You do NOT need to shift the IDs, the game will do it for you. Once you load the modded save file into the game and re-save it into another save file name, it will re-assign all the IDs to maintain the same order and ID progression order.
Oh wow, thanks for that discovery, I would never have thought that would work, but it should make copy-pasting feats extremely simple in most cases, provided that the feats themselves are read and applied independently by the game (e.g. the game actually reads the alertness and gives you +2 Perception, rather than giving you +2 as a hidden modifier somewhere upon acquiring the feat).

wannabecheater
Cheater
Cheater
Posts: 41
Joined: Fri Sep 28, 2018 1:23 pm
Reputation: 11

Re: Pathfinder: Kingmaker

Post by wannabecheater »

Many thanks to wakka9ca and vuechangz for their efforts!

I tried adding a bunch of fighter feats to a lvl 1 paladin character and it seems to be work! See attached images:
Image

Image

The DR did not show up initially, but once i swap to longsword it updated the sheet and shows up properly.
Dmg is showing +5 which is correct too (+1 from STR, +2 from Weapon specialization, +2 from Greater Weapon specialization).
Attack rolls is showing +4 which is correct (+1 from BAB, +1 from STR, +1 from Weapon Focus, +1 from Greater Weapon Focus)
P.S. note that i took Weapon Focus (Longsword) during character creation so i don't know if your game will break if you take specialization without the prerequisite feat (which is Weapon Focus).

And here are the code snippets from the feats i tested, remember to change the "$id" and "m_UniqueId" under "m_CasterReference"

Armor Focus (Heavy Armor) Feat: Grants +1 AC to Heavy Armors
Spoiler

Code: Select all

{
	"$id": "263",
	"$type": "Kingmaker.UnitLogic.Feature, Assembly-CSharp",
	"m_Context": {
		"$id": "264",
		"m_OwnerDescriptor": {
			"$ref": "5"
		},
		"m_CasterReference": {
			"m_UniqueId": "8a9ed0fe-c9a9-47d9-9fef-3fbfcd52218e"
		},
		"m_Ranks": [0, 0, 0, 0, 0, 0, 0],
		"m_SharedValues": [0, 0, 0, 0, 0, 0],
		"m_Params": null,
		"AssociatedBlueprint": "c27e6d2b0d33d42439f512c6d9a6a601",
		"ParentContext": null,
		"m_MainTarget": null,
		"Params": {},
		"SpellDescriptor": "None",
		"SpellSchool": "None",
		"SpellLevel": 0,
		"Direction": {
			"$type": "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
			"x": 0.0,
			"y": 0.0,
			"z": 0.0
		}
	},
	"Blueprint": "c27e6d2b0d33d42439f512c6d9a6a601",
	"m_ComponentsData": [{
			"$id": "265",
			"ComponentName": "$ArmorFocus$338fb6a4-4fce-494f-abf7-4e9e2e52a1a7"
			}
	],
	"Rank": 1,
	"Source": "b50e94b57be32f74892f381ae2a8905a",
	"Param": null,
	"IgnorePrerequisites": false,
	"Owner": {
		"$ref": "5"
	},
	"Initialized": true,
	"Active": true,
	"SourceItem": null,
	"SourceCutscene": null
}
Armor Mastery (Fighter) Feat: Grants Damage Resistance 5/-
Spoiler

Code: Select all

{
	"$id": "270",
	"$type": "Kingmaker.UnitLogic.Feature, Assembly-CSharp",
	"m_Context": {
		"$id": "271",
		"m_OwnerDescriptor": {
			"$ref": "5"
		},
		"m_CasterReference": {
			"m_UniqueId": "8a9ed0fe-c9a9-47d9-9fef-3fbfcd52218e"
		},
		"m_Ranks": [0, 0, 0, 0, 0, 0, 0],
		"m_SharedValues": [0, 0, 0, 0, 0, 0],
		"m_Params": null,
		"AssociatedBlueprint": "ae177f17cfb45264291d4d7c2cb64671",
		"ParentContext": null,
		"m_MainTarget": null,
		"Params": {},
		"SpellDescriptor": "None",
		"SpellSchool": "None",
		"SpellLevel": 0,
		"Direction": {
			"$type": "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
			"x": 0.0,
			"y": 0.0,
			"z": 0.0
		}
	},
	"Blueprint": "ae177f17cfb45264291d4d7c2cb64671",
	"m_ComponentsData": [{
			"$id": "272",
			"ComponentName": "$BuffOnArmor$9ae32036-0e64-4d7d-8881-f7ef2ab79e53"
		}
	],
	"Rank": 1,
	"Source": "b50e94b57be32f74892f381ae2a8905a",
	"Param": null,
	"IgnorePrerequisites": true,
	"Owner": {
		"$ref": "5"
	},
	"Initialized": true,
	"Active": true,
	"SourceItem": null,
	"SourceCutscene": null
}
Weapon Specialization (Longsword) Feat: Grants +2 damage to Longsword
Spoiler

Code: Select all

{
	"$id": "273",
	"$type": "Kingmaker.UnitLogic.Feature, Assembly-CSharp",
	"m_Context": {
		"$id": "274",
		"m_OwnerDescriptor": {
			"$ref": "5"
		},
		"m_CasterReference": {
			"m_UniqueId": "8a9ed0fe-c9a9-47d9-9fef-3fbfcd52218e"
		},
		"m_Ranks": [0, 0, 0, 0, 0, 0, 0],
		"m_SharedValues": [0, 0, 0, 0, 0, 0],
		"m_Params": null,
		"AssociatedBlueprint": "31470b17e8446ae4ea0dacd6c5817d86",
		"ParentContext": null,
		"m_MainTarget": null,
		"Params": {},
		"SpellDescriptor": "None",
		"SpellSchool": "None",
		"SpellLevel": 0,
		"Direction": {
			"$type": "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
			"x": 0.0,
			"y": 0.0,
			"z": 0.0
		}
	},
	"Blueprint": "31470b17e8446ae4ea0dacd6c5817d86",
	"m_ComponentsData": [{
			"$id": "275",
			"ComponentName": "$WeaponSpecializationParametrized$b21575e1-8fa1-4f8b-b0ca-ea5065e7969b"
		}
	],
	"Rank": 1,
	"Source": "5b72dd2ca2cb73b49903806ee8986325",
	"Param": {
		"$id": "276",
		"$type": "System.Nullable`1[[Kingmaker.Blueprints.Classes.Selection.FeatureParam, Assembly-CSharp]], mscorlib",
		"Blueprint": null,
		"WeaponCategory": "Longsword",
		"SpellSchool": null,
		"StatType": null
	},
	"IgnorePrerequisites": false,
	"Owner": {
		"$ref": "5"
	},
	"Initialized": true,
	"Active": true,
	"SourceItem": null,
	"SourceCutscene": null
}
Greater Weapon Specialization (Longsword) Feat: Grants +2 damage to Longsword (stacks with Weapon Specialization)
Spoiler

Code: Select all

{
	"$id": "279",
	"$type": "Kingmaker.UnitLogic.Feature, Assembly-CSharp",
	"m_Context": {
		"$id": "280",
		"m_OwnerDescriptor": {
			"$ref": "5"
		},
		"m_CasterReference": {
			"m_UniqueId": "8a9ed0fe-c9a9-47d9-9fef-3fbfcd52218e"
		},
		"m_Ranks": [0, 0, 0, 0, 0, 0, 0],
		"m_SharedValues": [0, 0, 0, 0, 0, 0],
		"m_Params": null,
		"AssociatedBlueprint": "7cf5edc65e785a24f9cf93af987d66b3",
		"ParentContext": null,
		"m_MainTarget": null,
		"Params": {},
		"SpellDescriptor": "None",
		"SpellSchool": "None",
		"SpellLevel": 0,
		"Direction": {
			"$type": "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
			"x": 0.0,
			"y": 0.0,
			"z": 0.0
		}
	},
	"Blueprint": "7cf5edc65e785a24f9cf93af987d66b3",
	"m_ComponentsData": [{
			"$id": "281",
			"ComponentName": "$WeaponSpecializationParametrized$76fa2e71-6c5e-4048-b84a-5e21335394f1"
		}
	],
	"Rank": 1,
	"Source": "5b72dd2ca2cb73b49903806ee8986325",
	"Param": {
		"$id": "282",
		"$type": "System.Nullable`1[[Kingmaker.Blueprints.Classes.Selection.FeatureParam, Assembly-CSharp]], mscorlib",
		"Blueprint": null,
		"WeaponCategory": "Longsword",
		"SpellSchool": null,
		"StatType": null
	},
	"IgnorePrerequisites": false,
	"Owner": {
		"$ref": "5"
	},
	"Initialized": true,
	"Active": true,
	"SourceItem": null,
	"SourceCutscene": null
}
Greater Weapon Focus (Longsword) Feat: Grants +1 to attack rolls with Longsword
Spoiler

Code: Select all

{
	"$id": "273",
	"$type": "Kingmaker.UnitLogic.Feature, Assembly-CSharp",
	"m_Context": {
		"$id": "274",
		"m_OwnerDescriptor": {
			"$ref": "5"
		},
		"m_CasterReference": {
			"m_UniqueId": "8a9ed0fe-c9a9-47d9-9fef-3fbfcd52218e"
		},
		"m_Ranks": [0, 0, 0, 0, 0, 0, 0],
		"m_SharedValues": [0, 0, 0, 0, 0, 0],
		"m_Params": null,
		"AssociatedBlueprint": "09c9e82965fb4334b984a1e9df3bd088",
		"ParentContext": null,
		"m_MainTarget": null,
		"Params": {},
		"SpellDescriptor": "None",
		"SpellSchool": "None",
		"SpellLevel": 0,
		"Direction": {
			"$type": "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
			"x": 0.0,
			"y": 0.0,
			"z": 0.0
		}
	},
	"Blueprint": "09c9e82965fb4334b984a1e9df3bd088",
	"m_ComponentsData": [{
			"$id": "275",
			"ComponentName": "$WeaponFocusParametrized$1872dc87-530b-4a2a-a167-0d5f891fb5fd"
		}
	],
	"Rank": 1,
	"Source": "b50e94b57be32f74892f381ae2a8905a",
	"Param": {
		"$id": "276",
		"$type": "System.Nullable`1[[Kingmaker.Blueprints.Classes.Selection.FeatureParam, Assembly-CSharp]], mscorlib",
		"Blueprint": null,
		"WeaponCategory": "Longsword",
		"SpellSchool": null,
		"StatType": null
	},
	"IgnorePrerequisites": false,
	"Owner": {
		"$ref": "5"
	},
	"Initialized": true,
	"Active": true,
	"SourceItem": null,
	"SourceCutscene": null
}
Armor Training Feat: No speed penalty from armor, -1 Armor Check Penalty, +1 Max Dex AC Bonus per RANK.
P.S. [Link] with Rank 10 on 40 Dexterity char gave 13 Dex bonus to AC (10+3), 0 Armor Check Penalty from Scalemail
(item tooltip won't reflect it, check your AC and skill check values to verify)
Spoiler

Code: Select all

{
	"$id": "274",
	"$type": "Kingmaker.UnitLogic.Feature, Assembly-CSharp",
	"m_Context": {
		"$id": "275",
		"m_OwnerDescriptor": {
			"$ref": "5"
		},
		"m_CasterReference": {
			"m_UniqueId": "8a9ed0fe-c9a9-47d9-9fef-3fbfcd52218e"
		},
		"m_Ranks": [0, 0, 0, 0, 0, 0, 0],
		"m_SharedValues": [0, 0, 0, 0, 0, 0],
		"m_Params": null,
		"AssociatedBlueprint": "3c380607706f209499d951b29d3c44f3",
		"ParentContext": null,
		"m_MainTarget": null,
		"Params": {},
		"SpellDescriptor": "None",
		"SpellSchool": "None",
		"SpellLevel": 0,
		"Direction": {
			"$type": "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
			"x": 0.0,
			"y": 0.0,
			"z": 0.0
		}
	},
	"Blueprint": "3c380607706f209499d951b29d3c44f3",
	"m_ComponentsData": [{
			"$id": "276",
			"ComponentName": "$MaxDexBonusIncrease$553647e6-1031-4d0e-a60f-f4df3b483b6b"
		}, {
			"$id": "277",
			"ComponentName": "$ArmorCheckPenaltyIncrease$3be72fce-2592-4d5e-bc50-7afbcf40b54c"
		}, {
			"$id": "278",
			"ComponentName": "$ArmorSpeedPenaltyRemoval$73ff772d-881c-4880-b95f-2a3e7198424d"
		}
	],
	"Rank": 1,
	"Source": "b50e94b57be32f74892f381ae2a8905a",
	"Param": null,
	"IgnorePrerequisites": true,
	"Owner": {
		"$ref": "5"
	},
	"Initialized": true,
	"Active": true,
	"SourceItem": null,
	"SourceCutscene": null
}
Shield Focus Feat: +1 AC bonus from Shield
Spoiler

Code: Select all

{
	"$id": "362",
	"$type": "Kingmaker.UnitLogic.Feature, Assembly-CSharp",
	"m_Context": {
		"$id": "363",
		"m_OwnerDescriptor": {
			"$ref": "5"
		},
		"m_CasterReference": {
			"m_UniqueId": "8a9ed0fe-c9a9-47d9-9fef-3fbfcd52218e"
		},
		"m_Ranks": [0, 0, 0, 0, 0, 0, 0],
		"m_SharedValues": [0, 0, 0, 0, 0, 0],
		"m_Params": null,
		"AssociatedBlueprint": "ac57069b6bf8c904086171683992a92a",
		"ParentContext": null,
		"m_MainTarget": null,
		"Params": {},
		"SpellDescriptor": "None",
		"SpellSchool": "None",
		"SpellLevel": 0,
		"Direction": {
			"$type": "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
			"x": 0.0,
			"y": 0.0,
			"z": 0.0
		}
	},
	"Blueprint": "ac57069b6bf8c904086171683992a92a",
	"m_ComponentsData": [{
			"$id": "364",
			"ComponentName": "$ShieldFocus$690d7580-b1b0-4375-b1f2-220f2d04e3a0"
		}
	],
	"Rank": 1,
	"Source": "5b72dd2ca2cb73b49903806ee8986325",
	"Param": null,
	"IgnorePrerequisites": false,
	"Owner": {
		"$ref": "5"
	},
	"Initialized": true,
	"Active": true,
	"SourceItem": null,
	"SourceCutscene": null
}
Acension Feat: Immunity to Acid, Cold, Petrification. Resist Electricity/Fire 10 and +4 Racial bonus save against Poison
Spoiler

Code: Select all

{
	"$id": "381",
	"$type": "Kingmaker.UnitLogic.Feature, Assembly-CSharp",
	"m_Context": {
		"$id": "382",
		"m_OwnerDescriptor": {
			"$ref": "5"
		},
		"m_CasterReference": {
			"m_UniqueId": "8a9ed0fe-c9a9-47d9-9fef-3fbfcd52218e"
		},
		"m_Ranks": [0, 0, 0, 0, 0, 0, 0],
		"m_SharedValues": [0, 0, 0, 0, 0, 0],
		"m_Params": null,
		"AssociatedBlueprint": "d85e0396d8f68e047b7b67a1290f8dbc",
		"ParentContext": null,
		"m_MainTarget": null,
		"Params": {},
		"SpellDescriptor": "None",
		"SpellSchool": "None",
		"SpellLevel": 0,
		"Direction": {
			"$type": "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
			"x": 0.0,
			"y": 0.0,
			"z": 0.0
		}
	},
	"Blueprint": "d85e0396d8f68e047b7b67a1290f8dbc",
	"m_ComponentsData": [{
			"$id": "383",
			"ComponentName": "$AddEnergyResistance$d2c47d3d-c7bb-4634-ad38-362d3b83064b"
		}, {
			"$id": "384",
			"ComponentName": "$AddEnergyResistance$50fb755d-1a47-4044-80b3-0d3930c792b1"
		}, {
			"$id": "385",
			"ComponentName": "$AddEnergyDamageImmunity$417a60b6-6c00-4845-a5c3-3f1d3cf93f7a"
		}, {
			"$id": "386",
			"ComponentName": "$AddEnergyDamageImmunity$114270fc-37d2-4d22-b4e0-8cc7177931fd"
		}, {
			"$id": "387",
			"ComponentName": "$AddConditionImmunity$0831c5ae-5f90-4864-8ec4-efc5d0aa6b57"
		}, {
			"$id": "388",
			"ComponentName": "$SavingThrowBonusAgainstDescriptor$146c9c7a-bb22-45f7-912a-ac609e7ce650"
		}
	],
	"Rank": 1,
	"Source": "aa79c65fa0e11464d9d100b038c50796",
	"Param": null,
	"IgnorePrerequisites": true,
	"Owner": {
		"$ref": "5"
	},
	"Initialized": true,
	"Active": true,
	"SourceItem": null,
	"SourceCutscene": null
}
Elemental Body (Fire) Feat: Immune to Sneak Attacks, Critical Hits and Fire Damage
Spoiler

Code: Select all

{
	"$id": "383",
	"$type": "Kingmaker.UnitLogic.Feature, Assembly-CSharp",
	"m_Context": {
		"$id": "384",
		"m_OwnerDescriptor": {
			"$ref": "5"
		},
		"m_CasterReference": {
			"m_UniqueId": "8a9ed0fe-c9a9-47d9-9fef-3fbfcd52218e"
		},
		"m_Ranks": [0, 0, 0, 0, 0, 0, 0],
		"m_SharedValues": [0, 0, 0, 0, 0, 0],
		"m_Params": null,
		"AssociatedBlueprint": "5d974328297021a479b4e3a1de749126",
		"ParentContext": null,
		"m_MainTarget": null,
		"Params": {},
		"SpellDescriptor": "None",
		"SpellSchool": "None",
		"SpellLevel": 0,
		"Direction": {
			"$type": "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
			"x": 0.0,
			"y": 0.0,
			"z": 0.0
		}
	},
	"Blueprint": "5d974328297021a479b4e3a1de749126",
	"m_ComponentsData": [{
			"$id": "385",
			"ComponentName": "$AddEnergyDamageImmunity$31ab8bce-8359-481a-bda2-bc6bde204d7a"
		}, {
			"$id": "386",
			"ComponentName": "$AddImmunityToCriticalHits$ccd94a8e-bf34-4d3d-89dc-45700b983e88"
		}, {
			"$id": "387",
			"ComponentName": "$AddImmunityToPrecisionDamage$a761b47a-7c09-4c16-bcac-88da890e9081"
		}
	],
	"Rank": 1,
	"Source": "17cc794d47408bc4986c55265475c06f",
	"Param": null,
	"IgnorePrerequisites": true,
	"Owner": {
		"$ref": "5"
	},
	"Initialized": true,
	"Active": true,
	"SourceItem": null,
	"SourceCutscene": null
}
P.S. For Weapon Focus and Specialization Feats, each weapon requires a copy of the feat. You can duplicate them but change WeaponCategory to your desired weapon: For example, Under Weapon Focus Feat, changing

Code: Select all

"WeaponCategory": "Longsword", 
to

Code: Select all

"WeaponCategory": "Glaive", 
with give you weapon focus for Glaive instead of Longsword.

Testing done on this: Save/reload + load after restart game. Would be great if someone is able to test it in combat, level up and zoning to see if the game actually applies the bonuses.

Gonna be busy mining for more feats now xD
Last edited by wannabecheater on Fri Sep 28, 2018 7:56 pm, edited 8 times in total.

JohnstonMR
What is cheating?
What is cheating?
Posts: 2
Joined: Fri Sep 28, 2018 12:39 am
Reputation: 0

Re: Pathfinder: Kingmaker

Post by JohnstonMR »

JohnstonMR wrote:
Fri Sep 28, 2018 1:12 am
Okay, so I'm going nuts. I've done this on both a Mac and in Windows, but I can't get the files to work--when I go back into Pathfinder, the game completely ignores the existence of my .zks file. I used 7zip to open and re-pack the files, but no dice. JSON editors confirm the files are correct.

All I edited were ability scores.

Ah well, I guess I'll just keep trying to play it kosher.
vuechangz wrote:
Fri Sep 28, 2018 1:59 am
You do not need to repackage the extracted save into a zip. Just dropping the extracted folder the game can already read it. However you should re-save it to a new file to get all the IDs re-assigned and consistency-checked and re-packaged by the game itself.
Ah! I just chucked the folder back in there, and it worked perfectly. I immediately saved to a new file as suggested. Thanks!

vuechangz
What is cheating?
What is cheating?
Posts: 3
Joined: Sun Oct 01, 2017 10:38 pm
Reputation: 1

Re: Pathfinder: Kingmaker

Post by vuechangz »

Nice Wakkaba, I didnt know the game could still read the folder. Ive always wondered why I lost some files when I deleted it. So I made a new folder so the game doesnt delete what I already edited. I noticed that since 7zip had the archive format at 7z, the game crashed allot. So I found out that it was actually zip that the save game was reading better and didnt constantly crash me.


Another cool thing to do if you dont want to waste time taking a specific ability and give it to you is to level up and then edit your save to level 1 again and relevel again. Its allot to do and this took awhile but this is a whole lot easier than editing specific abilities and not knowing which ability it is. For example there are some feats that I added in but werent activated. It said something like DEACTIVATED and its colored out grey.

Use the cheat from this site and level up all the way to 20 or go into the Save and Edit
"Experience":
Its right under "CharacterLevel":
The maximum experience is 360,000.

After picking your feats and etc.

There are 3 parts you have to edit
"Classes"
"m_Progressions"
"m_Selections"

In "Classes" say you picked Fighter will have this code

Code: Select all

{
              "$id": "1340",
              "CharacterClass": "48ac8db94d5de7645906c7d0ad3bcfbd",
              "Spellbook": null,
              "Archetypes": [
                "84643e02a764bff4a9c1aba333a53c89"
              ],
              "Level": 1,
              "PriorityEquipment": false
            }
The Level 1 leads to leveling your character. If it is 20 you wont be able to level up Fighter anymore.
If it is 20, replace 20 with 1 and you will be able to level up from 1 again.
You wont be able to pick new feats and Ill get to that soon.

Next to edit is "m_Progressions"

Code: Select all

"m_Progressions": [
            {
              "Key": "b50e94b57be32f74892f381ae2a8905a",
              "Value": {
                "$id": "1341",
                "Blueprint": "b50e94b57be32f74892f381ae2a8905a",
                "Archetypes": [
                  "84643e02a764bff4a9c1aba333a53c89"
                ],
                "Level": 1
              }
            },
            {
              "Key": "5b72dd2ca2cb73b49903806ee8986325",
              "Value": {
                "$id": "1342",
                "Blueprint": "5b72dd2ca2cb73b49903806ee8986325",
                "Archetypes": [],
                "Level": 1
              }
            }
Notice the Level again, just like above, replace the number to 1.

Next is "m_Selections"
This is where you can delete some of the codes so that you're able to choose new feats. You will still be able to keep your old feats so you dont have to worry. My guy has like Mastery Weapon for Glaive, Spear, Longsword, Longbow, and Shortbow. So It took quite awhile.

Image

Code: Select all

"m_Selections": [
            {
              "Key": "247a4068296e8be42890143f451b4b45",
              "Value": {
                "$id": "1876",
                "m_SelectionsByLevel": [
                  {
                    "Key": 0,
                    "Value": [
                      "1e1f627d26ad36f43bbd26cc2bf8ac7e"
                    ]
                  },
                  {
                    "Key": 1,
                    "Value": [
                      "bcbd674ec70ff6f4894bb5f07b6f4095"
                    ]
                  }
                ]
              }
            },
            {
              "Key": "41c8486641f7d6d4283ca9dae4147a9f",
              "Value": {
                "$id": "1877",
                "m_SelectionsByLevel": [
                  {
                    "Key": 1,
                    "Value": [
                      "9972f33f977fc724c838e59641b2fca5"
                    ]
                  }
                ]
              }
            }
          ]
These are the codes you get in the beginning as a fighter.
Since I have deleted some codes already, I will tell you what you will see.
In the codes there will be allot of Keys and if you got to level 20, will show up to 20 Keys. Delete all of the codes except for the codes you get as level 1. And you will be able to choose new feats and abilities. Since I dont know much about spells since I dont play the magic class, someone might be able to explain this more.

Ill explain more on deleting when I save edit my character later on. Unless you found out then thats all good.

Rebelicious
Expert Cheater
Expert Cheater
Posts: 102
Joined: Tue May 09, 2017 10:46 am
Reputation: 13

Re: Pathfinder: Kingmaker

Post by Rebelicious »

How do you figure out which strings corresponds to what feat?

I just started out a new character, extracted the first autosave, and I'm looking at the party.json now, under "Features", but despite only having two feats (Selective Channel and Extra Channelling), there's a boatload of entries and I can't figure out which entry is specifically for those two so I can copy them to my other character and try this out.

wannabecheater
Cheater
Cheater
Posts: 41
Joined: Fri Sep 28, 2018 1:23 pm
Reputation: 11

Re: Pathfinder: Kingmaker

Post by wannabecheater »

If you are using Notepad ++ and know how to read code, its easy to figure out if you have a "clean" copy of party.json to compare it with.
I find that the newer feats are all inserted at the bottom of the features function so you can usually ignore the ones on top, they are the default feats your class comes with (such as weapon and armor proficiencies). From there you just need to copy the entire block of code out (each feat is contained in it's own section within the { }, Notepad++ helpfully highlights it in red so you can see where the code begins and ends within the file.)

Beginning of each feat is something like this:

Code: Select all

{								
"$id": "274", <-- this will not be the same number, your save will assign a different number most likely
"$type": "Kingmaker.UnitLogic.Feature, Assembly-CSharp",
"m_Context": {
	"$id": "275", <-- this will not be the same number, your save will assign different number most likely, but it will be +1 from the previous id
	"m_OwnerDescriptor": {
		"$ref": "5"
	},
	"m_CasterReference": {
		"m_UniqueId": "8a9ed0fe-c9a9-47d9-9fef-3fbfcd52218e" <-- this is unique for each file, it points to the character that owns the feat
and ends with this:

Code: Select all

   "Initialized": true,
   "Active": true,
   "SourceItem": null,
   "SourceCutscene": null
}

Necrosx
Cheater
Cheater
Posts: 48
Joined: Fri Aug 10, 2018 10:06 pm
Reputation: 6

Re: Pathfinder: Kingmaker

Post by Necrosx »

Has anyone figured out how to copy traits from another character? Mainly Im hoping to make my main character undead, and as far as I know the only person in the game that has the trait is Jaethal.

Rebelicious
Expert Cheater
Expert Cheater
Posts: 102
Joined: Tue May 09, 2017 10:46 am
Reputation: 13

Re: Pathfinder: Kingmaker

Post by Rebelicious »

wannabecheater wrote:
Fri Sep 28, 2018 4:42 pm
If you are using Notepad ++ and know how to read code, its easy to figure out if you have a "clean" copy of party.json to compare it with.
I find that the newer feats are all inserted at the bottom of the features function so you can usually ignore the ones on top, they are the default feats your class comes with (such as weapon and armor proficiencies). From there you just need to copy the entire block of code out (each feat is contained in it's own section within the { }, Notepad++ helpfully highlights it in red so you can see where the code begins and ends within the file.)

Beginning of each feat is something like this:

Code: Select all

{								
"$id": "274", <-- this will not be the same number, your save will assign a different number most likely
"$type": "Kingmaker.UnitLogic.Feature, Assembly-CSharp",
"m_Context": {
	"$id": "275", <-- this will not be the same number, your save will assign different number most likely, but it will be +1 from the previous id
	"m_OwnerDescriptor": {
		"$ref": "5"
	},
	"m_CasterReference": {
		"m_UniqueId": "8a9ed0fe-c9a9-47d9-9fef-3fbfcd52218e" <-- this is unique for each file, it points to the character that owns the feat
and ends with this:

Code: Select all

   "Initialized": true,
   "Active": true,
   "SourceItem": null,
   "SourceCutscene": null
}
This is really odd, because quite literally nothing I have in my file ends like that - there's usually a bunch of stuff more. Here's my entire Features section, from a fresh Autosave, Human Cleric, two feats; Selective Channelling and Extra Channelling (Channel or Channelling, I don't remember):

[Link]

As you can see, nothing ends with SourceCutscene.

wannabecheater
Cheater
Cheater
Posts: 41
Joined: Fri Sep 28, 2018 1:23 pm
Reputation: 11

Re: Pathfinder: Kingmaker

Post by wannabecheater »

Rebelicious wrote:
Fri Sep 28, 2018 5:28 pm
wannabecheater wrote:
Fri Sep 28, 2018 4:42 pm
If you are using Notepad ++ and know how to read code, its easy to figure out if you have a "clean" copy of party.json to compare it with.
I find that the newer feats are all inserted at the bottom of the features function so you can usually ignore the ones on top, they are the default feats your class comes with (such as weapon and armor proficiencies). From there you just need to copy the entire block of code out (each feat is contained in it's own section within the { }, Notepad++ helpfully highlights it in red so you can see where the code begins and ends within the file.)

Beginning of each feat is something like this:

Code: Select all

{								
"$id": "274", <-- this will not be the same number, your save will assign a different number most likely
"$type": "Kingmaker.UnitLogic.Feature, Assembly-CSharp",
"m_Context": {
	"$id": "275", <-- this will not be the same number, your save will assign different number most likely, but it will be +1 from the previous id
	"m_OwnerDescriptor": {
		"$ref": "5"
	},
	"m_CasterReference": {
		"m_UniqueId": "8a9ed0fe-c9a9-47d9-9fef-3fbfcd52218e" <-- this is unique for each file, it points to the character that owns the feat
and ends with this:

Code: Select all

   "Initialized": true,
   "Active": true,
   "SourceItem": null,
   "SourceCutscene": null
}
This is really odd, because quite literally nothing I have in my file ends like that - there's usually a bunch of stuff more. Here's my entire Features section, from a fresh Autosave, Human Cleric, two feats; Selective Channelling and Extra Channelling (Channel or Channelling, I don't remember):

[Link]

As you can see, nothing ends with SourceCutscene.
Hi, you can see the various code snippets i pasted in my eariler post, they are all complete feats and i tested them live in the game to verify every single one worked. (Weapon Mastery doesn't seem to, hence i excluded it) They should be in that structure, though i have not touched spell casters yet so i do not know if the code is different for them. Maybe you can share your entire clean party.json file? Might be your viewer not parsing the code correctly?

Locked

Who is online

Users browsing this forum: icerose621, mortar