Overview
A summary of ways to cheat by editing the savegamefile.Targets for editing:Kingdom statsCharacter stats, levels (beyond 20, multiple caplevel classes possible)Item duping by swapAlignment fix/changeGuide based on my own findings.Useful tip on using the described edits: ability to remember to always make a backup before editing ;)Note: author is currently inactive in the game, no new tricks likely to come and activity in the comment field by author is sporadic.Other users have chipped in and helped so by all means post questions in the comments field, it may be answered by me or others.
Guide Contents
Editing kingdom stats, money
Editing stats on characters
Editing experience
Editing character level
Item edits:
Duplicating existing item(s)
Spawning new items
Itemcode lists
Editing character alignment
Changes do not stick! (read this then)
About a week after I posted the guide (which has very much been a work in progress thanks to questions and suggestions in the comments field) I got a couple complaints that the edits done to files didnt stick.
Its important to alter your methods for saving the changes according to the programs you use.
Im using winrar and its “smart” enough to ask me if I want to update a file inside an open archive (zks) when I have edited a file and saved the file.
From what I gather when you open a *.json file inside a zks archive in 7zip, you must select edit not open or changes will be ignored.
My initial method was to extract the json file I wanted to edit and do it outside the archive then return the file to the archive and update, but I altered this procedure when I noticed winrar being very userfriendly in my activities.
So if you have trouble getting changes to stick, verify that your program is being cooperative and if not, do edits on an extracted file and pack it back into the zks file when done.
MAC:
Additional info for mac users on filenames:
On your Mac, select a file, then choose File > Get Info, or press Command-I.
Click the triangle next to Name & Extension to expand the section.
To show or hide the filename extension, select or deselect “Hide extension.”
Then ensure you have renamed savefile back to a zks extension.
Where to find things:
Your LOCAL savegame is found in the c:users*appdatalocallowowlcat gamespathfinder kingmakersaved games
substitute * for your windowsaccountname
To get to the saves “quickly”: open a random folder, type
%userprofile%appdatalocallowowlcat gamespathfinder kingmakersaved games
in the addressbar.
Path shown below:
If you have steam cloud saves enabled, you also have duplicates in the following location:
c:program files(x86)steamuserdatayour steam id640820remote
I suggest disabling cloudsaves, they sit in your very local programfiles folder anyways and more likely than not cause issues when you alter one of the duplicate files.
(this paragraph added july 2019)
The files in savegamefolder will be either autosave files or manual saves.
Filetype is .zks and since we will be editing those files, associate it with your favorite zip program (winrar, winzip, 7zip or similar) by opening it and selecting open with this program always.
Content of the zks files:
useless files (header.json/png)
zonefiles (32 letters named files of type .json/png) – used for item manipulation
player.json – contain kingdom stats, gold
party.json – contain character info: stats, items, alignment
history – used to grab zonename and item codes
Going forward I assume you will use notepad to edit the files inside the savegame(archive).
Player.json
Player.json
Buildpoints, current: search for “BP”, line looks like:
“BP”:6178,”BPPerTurn”:0,”Alignment”:”LawfulNeutral”
simply change value right after “BP”:
Kingdom stats:
search for”stats” (one occurence), and adjust the lines looking like this:
{“$id”:”2057″,”Type”:”Community”,”Rank”:1,”Value”:40},
Rank is the bonus to event rolls (2 pts for each rank), value is the stat itself.
Gold:
Search for “Money” or hit CTRL+END, its on the last line in the file. Cant really miss it.
unrest states:
Status ok:
“UnrestOnLastRavenVisit”:”Stable”
“Unrest”:”Stable”
Status riot:
“UnrestOnLastRavenVisit”:”Unrest”
“Unrest”:”Unrest”
Gametime:
“GameTime”:* (30 less than currentday)
“CurrentDay”:*
Edit as needed to get more time for loitering.
Settings that influence some events’ execute time:
“REModifierUnclaimed”: 0.0,
“REModifierClaimed”: -0.5,
“REModifierUpgraded”: -1.0,
“ClaimCostModifier”: -0.25,
“ClaimTimeModifier”: -0.5,
“RankupTimeModifier”: -0.5,
“BuildingTimeModifier”: 0.0,
Setting “ClaimTimeModifier”: -0.95,
“RankupTimeModifier”: -0.95,
“BuildingTimeModifier”: -0.95,
Would cut time to execute claim region, rankup advisor and complete buildings to 1 day.
Interesting flag codes (registered as [Unlocks] in history)
Used for quests:
EventSolvedCounter (a90e950c73db4c5459c1d4d29f5bee24): set to *
Event-ProblemSolvedCounter (fee3518f3427a3f43aaf57ce0e8a4b69): set to *
achievement
ComradesInArmsAchevementsFlag (825efdf8e15d96b4e91177e40fd17447): set to *
used for lich quest:
Get phylactery (in capital well). Its level is derived directly from the lairscleared flag.
Kill 45 significant monsters
Open chamber to the lich, kill and loot (standard operations procedure)
This guide is about cheating(and debugging the game where it is bugged) so:
To save time on significant monsters, set flag for cleared lairs to 44 then kill a significant monster
LairsCleared (bee350a000e7ade4da900d475022ba4b): set to 44″
achievement:
Killing lich gives flag LichKulich_Defeated (f3df1f1dd009dd6479ae3b2daacc85e0): set to 1″ and achievement Yet another ancient evil
Item duplication/changing: Statistic.json/Zonename.json
Update to this section:
Statistics.json has been split in two files, history (no extension) and statistics.json.
History contain info needed to find itemcodes and mapcodes for duping.
History
This file is a historylog of the entire game.
I suppose it can become fairly large, my current file is 9 mb so far.
We can use it to find the name of the last map we entered, and item codes on items we dropped.
This is done by going to the bottom of the file (CTRL+END), then CTRL+F and search for loading area, direction up(obviously)
sample line to be found:
“06:08:16 21.07.4710 – [Area] CapitalThroneRoom (173c1547502bb7243ad94ef8eec980d0): loading area”,
Info we get:
173c1547502bb7243ad94ef8eec980d0.json is the area file where items you drop will be saved.
Nice info to be sure. open that file inside the savegame, move it to the side for now.
To get itemcode of the items you dropped and want to duplicate or spawn new items upon:
search for one item you dropped. If you dropped a longsword, search for that, again from the bottom of the file to find latest instance of the item which is what you dropped in this map.
lets search for the bag of holding we dropped:
search for bag, holding or bagofholding
“10:11:39 18.06.4710 – [Items] BagOfHolding (9ba294466c6090e4dac1c7dfbc158a03): item lost”,
“10:11:39 18.06.4710 – [Items] DevourerOfMetal (1d3e5519d0840ed4d96378d6a07cc9d1): item lost”,
Lost means you dropped it on the ground.
9ba294466c6090e4dac1c7dfbc158a03 is the itemcode.
switch to the mapfile you opened and search for this.
You should get a return like this:
That is a lot of data but thankfully we can ignore most of it.
The following is what we edit:
“m_Blueprint”:”9ba294466c6090e4dac1c7dfbc158a03″,”m_Count”:1,”m_InventorySlotIndex”:0,
Short explanation on this line:
m_Blueprint is the itemcode. m_Count is usually 1 unless you have a stack of potions in inventory.
m_InventorySlotIndex is the number the item has in a lootstack, item number 2 has ..index”:1, 2 and so on.
This being the bag holding that we want more of, we dont alter it but set “m_Count”:20 and have 20 bags of holding to loot as a stack.
As we duplicated an existing item and didnt change it in any way, we receive 20 working bags of holding.
With the next item I dropped, a Devourer of metal (+1 comp longbow with corrosive damage, very useful bow btw) I want to make a longsword with corrosive damage
searching for 1d3e5519d0840ed4d96378d6a07cc9d1 I get:
m_Blueprint”:”1d3e5519d0840ed4d96378d6a07cc9d1″,”m_Count”:1,”m_InventorySlotIndex”:1,
First off, to spawn new items: you increase the count, and the first looted item will be a dud with original statistics and it is the first looted item which you can discard.
itemcode for longsword +2, acidic: 9476b938dc89a984f90810eb084632b2
new sentence when we’re done editing:
“m_Blueprint”:”9476b938dc89a984f90810eb084632b2″,”m_Count”:20,”m_InventorySlotIndex”:0,
Which gets us 19 good acid longsword and 1 messed up item.
Looting the items:
As the screenshot will show, the first item is actually superior having higher acid damage and downgrading to +1 instead of +2 due to being changed from a bow.
This is the essence of item manipulation. Duplicate or change.
There is some rules though.
All items have an itemclass, and you cant change an item from one class to another.
Classes:
Weapons
Armor
Simple items
Charged items
Basically, if you want a ring or other accessory like boots, cloak, bracer: use same type.
use armor to armor, weapon to weapon, potion to potion/scroll/wand (charged).
One last thing.
Items can be found 2 places: in the party.json file and in zonefile.json
Due to the manner manipulated items work, I have not edited items directly in inventory.
Reason being that changing item id does not confer item enhancements and it is much quicker to simply spawn a stack of items and discard the first item that will be get the item description, but no enhancement. It can easily be used to spawn even more items, its ruined anyways.
Useful zonenames:
Olegs tradingpost (outside)
ead426a6c23d39548a670ee515d77df4.json
Throneroom:
173c1547502bb7243ad94ef8eec980d0.json
Character editing: Party.json
In the party.json file we find our inventory and character stats.
Stat order, downward:
Hitpoints “Type”:”HitPoints”
BAB “Type”:”BaseAttackBonus”
Charisma “Type”:”Charisma”
Constitution “Type”:”Constitution”
Dexterity “Type”:”Dexterity”
Intelligence “Type”:”Intelligence”
Wisdom “Type”:”Wisdom”
Strength “Type”:”Strength”
Characterlevel “Characterlevel”:
Experience “Experience”:
Alignment “Vector”:
CustomName “nameofhero/merc”
CustomAsks voice
Sample format for hitpoints:
“Type”:”HitPoints”,”m_BaseValue”:687,”m_Dependents”:null,”m_DependentFacts”:null,”PermanentValue”:687,”PersistentModifierList”:[{“$ref”:”8165″}]},”TemporaryHitPoints”:
Basevalue and PermanentValue should match. this is the rolled hitpoints, sans constitution bonus.
Most stats come with only m_BaseValue and can easily be adjusted.
Racial modifiers add or subtract from basevalue and the m_PermanentValue will be higher or lower, accordingly. Failing to adjust both base and perm value can result in no gain in stats, so hit both where they appear.
The attributes cha-str simply set the attributes to the desired level.
How characterlevel and experience works:
Characterlevel is the levels the game believes the character has trained.
Experience points on the other hand is the numerical value representing the allowed training the character can do. And this we can exploit by setting characterlevel to a lower value, and increasing the experience to permit more levels than the game intends to permit.
Setting characterlevel to 1 and experience to 4000000 will let you level 20 levels.
When you hit level 20 in a class, there can be no more training in that class.
If you still havent trained all the characterlevels, you can level up another class until characterlevel equals the experience.
And after that happens, you can reduce the characterlevel to 1 and repeat the exploit.
When lowering characterlevel, I notice that current characterlevel determine max skill rank on regular skills like mobility, perception and such. There is also some anomalies with how many points you get to spend when training up a second time toward 20, but this should probably not be a concern. Like stats, skills can be edited by setting the permanentvalue to a higher number.
I have come to the conclusion that most things on the characters can be modified, however getting new feats beyond what is granted through levelling is something I have not looked into.
From what I can see, each level up has a log entry with what feat you pick and the game automatically recognize the total level in every class but does not sum them up and throw an error when the levels exceed 20.
To edit your characters:
Save game twice and edit party.json (twice in case you make a mistake and the save is unreadable)
Find your characters:
For the mainchar or mercs, search for the name. Their hitpoints – exp values will be above the name.
For standard companion the game does not have names, but blueprintcode.
Search for “CustomPrefabGuid” – line that will come up:
“CustomPrefabGuid”:””,”m_Pet”:{“m_UniqueId”:null},”Blueprint”:”5455cd3cd375d7a459ca47ea9ff2de78″
Code in “Blueprint” is the companioncode.
Voices:
“CustomAsks”:”GUID”
Ah, one final note.
There is 2 experience sums that will correspond to your main characters xp/level:
One is your actual character’s XP.
The other is the XP any customcreated mercs get, which also determine hire cost.
Itemcodes, primer.
The itemcodes in the following lists are lifted from the resources.assets file in kingmaker installfolder, a 1.4 gb monster file.
To view the file without crashing my computer I used a hex editor since any normal program that tries to load an entire 1.4 gb file will hang or at least spend half an eternity loading it.
The format the items are listed in the file is internalname, lots of punctuations and then a 32 digit hexvalue in plaintext. That value is frequently followed by more letters starting with $, but the rest is fluff. The item spawning process described earlier in the guide creates one broken item and the rest works, so while I saw the potential for completely creating a new item without bug, it was clear that it took more time to do so than I have patience for. Afterall, cheating is done to make things easier, not to create hard work 🙂
Sample items:
BastardSwordCorrosivePlus2……………… …c485d74a439a0b249b14741d621fe322$…794d3833-b283-4a43-8b03-7b69563a39c1……..
As mentioned: the first 32 digits are the itemcode. the rest are attached property code, which will appear on the spawned items.
This is what we care about then:
BastardSwordCorrosivePlus2……………… …c485d74a439a0b249b14741d621fe322
Site with all/most itemcodes, submitted in the comments by omsion°µ:
[link]Itemlist, Weapons
While +5 weapons are available, due to the occasional need to kill trolls immune to fire, acid weapons (corrosive) is highly recommended.
Consumables:
PotionOfCureSeriousWounds……..e76d14096063ee041bdb1d13d8172599
PotionOfRemoveBlindness……….bafd5734adc579641904284aa380dd48
PotionOfRemoveCurse…………..152944f618996bb4992030141bc96659
Weapons +2 and/or special
LightCrossbowCorrosivePlus2…….19b62c46d247f9e47931fb6da5978651
LongbowCorrosivePlus2…………….294311f5f567acb4e9c33dd7b4f33e36
BastardSwordFlamingPlus2………..56d5eaaed9d4e774c9ef9f331c2d647e
BastardSwordCorrosivePlus2………c485d74a439a0b249b14741d621fe322
BastardSwordOversizedFlamingPlus2….da9408398a7391844aa29241ed298f82
BastardSwordOversizedCorrosivePlus2..8cc9c3664eeb26242aab6fc315a819c5
DaggerFlamingPlus2……………….840d56ad51e927741aa639adbdcc6881
HandCrossbowFlamingPlus2…….a9d9627fde3055145a6854f06659eca2
HeavyMaceFlamingPlus2………….0df63591e52c39948a74ed599ddc2001
LightCrossbowFlamingPlus2……..1958bdc04bbc3a64ca93e980dd7d2894
LightMaceFlamingPlus2……………09892e0ec5fbf54469833464d19f5f41
LongswordFlamingPlus2…………..684ff52e687aacf43a3f673e42b9c957
LongswordCorrosivePlus2…………9476b938dc89a984f90810eb084632b2
ScytheFlamingPlus2…………………32f9b62ea6acf8f45940d475fdc12420
ShortbowFlamingPlus2……………..2a0ad9a19f9a28347b4f2f708bde148a
ShortswordCorrosivePlus2………..b639003df0cbd0e419aea94149027f6a
ShortswordFlamingPlus2…………..8245c0d2fc3617f468cc3dd03f7c9391
SpikedHeavyShieldFlamingPlus2.e82afdce41775824fb851e947b922c82
FlailHolyPlus3………………………….d974b3a311fff4c4fbe608802e33d438
HolyDisruptionHeavyMacePlus3Item…..43501c5515f6a7e4785a81d06001fa5d
ColdIronBastardSwordHolyPlus1……..ace38e21f5507f34a956aeb707935e53
Weapons +5
BastardSwordOversizedPlus5……….4ff24ef8735a8ea48a995bb8872fbca0
BastardSwordPlus5…………………….91a4b3f6b4b53ae4fb3095cba86a38ca
CompositeLongbowPlus5…………….5f17ce231ff46b94397ea269c5393dfe
CompositeShortbowPlus5……………c948923056fbfc24883eebb07f598220
DuelingSwordPlus5…………………….c23265c7960b5c144a200eafda0e7cf1
DaggerPlus5………………………………801183fdc4e6d524f84cb209abb6e2f8
HandCrossbowPlus5…………………..9b1c6550508a0a94db612fa513cd7f94
HeavyCrossbowPlus5………………….cf03a30b823d142459fa34ea7fb595cf
HeavyMacePlus5………………………..d41c4a06568c4e2459e6a4f94f5f9120
HeavyRepeatingCrossbowPlus5…..2924c26ce91d2e143bc8bb68c9b0eb1f
LightCrossbowPlus5……………………c6f3a5ef61e39154dae388d76e981e85
LightRepeatedCrossbowPlus5……..6f70d69ba33e44744b6d458a639f5ea5
LongbowPlus5……………………………015b7388cf7d5804486c86ebc051efbf
LongswordPlus5…………………………7453fb8aa1cd7f3428a14eeadc2022d7
QuarterstaffPlus5………………………..32257fb7aaee82946aad584a02d3211a
ScimitarPlus5……………………………..af2a9b2b3a6905f49a44e4676a39cea8
ScythePlus5……………………………….492d209052d0d9f4ea65a371544f8edb
ShortbowPlus5……………………………98807f3d48bfc3e4e9f1484512219bb3
ShortswordPlus5…………………………b5f6e218fb193a24cb00bdec435732ff
SpikedLightShieldPlus5……………….b8b0c8f58b56bec48a42b16b171c4149
QuarterstaffGhostTouchPlus4……….185bb749645b73743a84a4c495970ff0
CompositeLongbowSpeedPlus2……2fe00e2c0591ecd4b9abee963373c9a7
BastardSwordOversizedExtremeFrostPlus5…………………947a00427667fa646819dbbfb5228be7
BleedSpikedHeavyShieldPlus5…………………………..33cb974f254759849a90e7b081dccab1
BastardSwordOversizedFuriouExtremeShockPlus5NoPenalty……8087fd95c19a83a43afd17c83a4d1c7a
BastardSwordOversizedFuriousExtremeFrostPlus5NoPenalty…..4d7aa1669e8c192478337e4ce2f4c213
oversized bastardsword = Amiri’s weapon.
Itemlist, armor and accessories
Shields:
BleedSpikedHeavyShieldPlus5…………33cb974f254759849a90e7b081dccab1
WeaponHeavyShieldPlus5……………..8a75f507300a6a847ba6e294fbd17166
WeaponHeavyShieldFlamingPlus2……….f1245a73626b8594aaa279d9a53741da
WeaponLightShieldPlus5……………..a841ff5e5297e984eb9401cce126ddf9
TowerShieldItemPlus5……………….a03cb1b8370305247bf94cd193e9bc82
SpikedLightShieldPlus5……………..b8b0c8f58b56bec48a42b16b171c4149
LightShieldItemPlus5……………….0bebff4f12aca5649ac4402ffd59d9ad
Armors:
MithralChainshirtPlus5……………098ef271273098e498d27ba2846b1f1a
AdamantineChainshirtPlus5…………3b5b1f3da5704f34eb33e84557e9319f
AdamantineLeatherPlus5……………de03b0e4e279b304c95aee8a5439b7bf
MithralLeatherPlus5………………51f88ef02a90de545bdbe926a1932966
Bracers:
BracersOfArmor8………………….bade8137f5101834c849c277ba0301a1
Amulets:
AmuletOfSpells…………………..b9bc244f20551564da681a54865a2103
AmuletOfLifeVeilItem……………..138f2b7ce23a4fa4fa3d633c1d3a0ae3
AmuletOfInnerVirtue………………8722776a6f94485499fe476bce767716
AmuletOfNaturalArmor5…………….11f435140501db84e8e787bf8792fac2
AmuletOfTimeTrickery……………..8fdd83cc5f9d57e4387430a1b437de0c
AmuletOfMightyFists5……………..ff74157b090c1744598408c8f221b9fc
AmuletOfEvilDoomItem……………..f02eb9b8cb10d434d905225796f0345b
AmuletOfEternalHunter…………….c4c7997fb14c9ee47a384d76fbc4512a
AmuletOfAgileFistsPlus4…………..296a9377c1f5ea44c82f023e5f54e4a3
Rings:
RingOfTwinArrows……………….83c2ff8758c18db4a93d3255d72dad16
RingOfProtection5………………2d576daea5f62ae489028bce40469285
RingOfSecurityItem……………..70dadcb5b5184e746a7ee1b8e43b8b63
RingOfLuck1……………………ec4c8aa06b5f46e4f961c5bc3526da04
RingOfHuntersLuckItem…………..fde80a3b342957f4b88b90fe8b8c261a
RingOfEnergySourceItem………….9525bbdd4aeb7db4ab7fe2a7b8f20902
Cloaks:
CloakArcaneProtection2…………9e027c05878ffbc4ab28e132038b8966
CloakOfHeroism………………..dd7e65ef127b930488b85a48616b4baa
CloakOfResistance6…………….37090c79c13262f45821d91071efc138
CloakOfShadows………………..42aa20c20917c41448fd6cb27de98d60
CloakOfTheWinterWolfItem……….77491022ca26d194fbee5e04395ae967
Boots:
BootsOfElvenKind…………..1223ceb45ed647b44a04b44a9312328b
BootsOfSwiftFoot…………..8644bca1c3bf6f64ab4d89be643a8850
Wands:
WandOfCallLightning25……….c82d0d34fc611cb4ebc2bb5a81b8121f
WandOfIceStorm25……………95aa86e236378b9468d5783b2ac97b1f
WandOfMaxBurningHands……….c9e134e82d52f514eadfb731b990dce8
WandOfCureCriticalWounds50…..8112e0066266681428a9bf35219e3eff
WandOfDispelMagic…………..840a8af5e538d9940bca7ecabd7509f9
WandOfFindTraps…………….a20d40dc97457f041a2c29bdb2e2efe8
WandOfFireball9CL8………….229fcbd357a9d6b48bc63b79188cdbd6
WandOfHoldPerson……………186f1b83119c17342993eb1099621a5a
WandOfInvisibilityGreater……617ffb2c95abd374baf210999389d27b
WandOfLightningBolt…………ec709a06b205ff44bba0d37ae541af03
WandOfNeutralizePoison………afb6a606b5d7f3a42a1a809ae8e269bb
WandOfRemoveBlindness……….93c55c75856218e47b74348e3d1791cd
WandOfRemoveDisease…………a8c05388dec2bd64d9c413f3045fbaa7
WandOfRemoveSickness………..0a06ba5af2f9a154693e4decd595a5c1
WandOfRestoration50…………20af90ab2fad2d84c8b0a200448ba517
WandOfVampiricTouch…………5a789da4d8d94454686587f32cd1bd2c
BagOfHolding 9ba294466c6090e4dac1c7dfbc158a03
ScrollOfAtonement 293a030177231024ca99cabbb1722009
Fixing alignment changes
While checking the forums for somewhere to dump my cheat tricks, before I figured out I cheat so much that a guide is the proper form, I noticed some complaints about alignment and question on how to fix it back to the original.
Paladins, lawfull/nonlawful classes can get in trouble if they stray.
So since I was making a cheating guide, I took a look at how alignment works and to see if I could fix it.
Turns out I could.
The information is stored in the party.json file.
To find the alignment info, the main characters is at the very end of the file.
My character in this playthrough is Lawful Neutral.
Searching up for LawfulNeutral (no spaces, and neutral is TrueNeutral not Neutral) i find this line:
{“$id”:”12520″,”Position”:{“x”:-1.0,”y”:-8.742278E-08},”Direction”:”LawfulNeutral”,”Provider”:”0554e6a5e0685c14b8ef54d3748e287f”}],”Vector”:{“x”:-1.0,”y”:-8.742278E-08}},”Master”:{“m_UniqueId”:null},”CustomGender”:”Male”,”LeftHandedOverride”:false,”CustomName”:”YOURCHARACTERNAMEHERE”,”
This is the bottom of the alignment change block.
Scrolling up, you will see many entries for aligment changes that got you in trouble.
and many that are unused yet at the top, like this:
{“x”:0.0,”y”:0.0},”Direction”:”TrueNeutral”,”Provider”:null},{“$id”:”12471″,”Position”:{“x”:0.0,”y”:0.0},”Direction”:”TrueNeutral”,”Provider”:null},{“$id”:”12472″,”Position”:
So, working like a cancer surgeon, we go to the last trueneutral entry above, and mark the entire section starting with
{“x”:-1.0,”y”:-8.742278E-08},”Direction”:”LawfulNeutral”,”Provider”:null},{“$id”:”12473″,”Position”:{“x”:-1.0,”y”:-8.742278E-08},”Direction”:”LawfulNeutral”,”Provider”:”4a908f0283d457c48b87e9bd33ac6a74″},{“$id”:”12474″,”Position”:{“x”:-1.0,”y”:-8.742278E-08},”Direction”:”LawfulNeutral”,”Provider”:”a3daf282d4106414fb88e52441406df2″},{“$id”:”12520″,”Position”:{“x”:-1.0,”y”:-8.742278E-08},”Direction”:”LawfulNeutral”,”Provider”:”0554e6a5e0685c14b8ef54d3748e287f”}],”Vector”
Do not remove anything after }
],”Vector is required to make the savefile stay intact.
I have omitted lots of entries here, it is probably a long block of text you need to delete.
At the very minimum, you want the block to read this afterwards:
“Direction”:”TrueNeutral”,”Provider”:null}],”Vector”:{“x”:-1.0,”y”:-8.742278E-08}},”Master”:
Update, and answer to one comment below:
The text around vector/master is the base alignment and should be like this:
“Direction”:”LawfulGood”,”Provider”:null}],”Vector”:{“x”:-0.707106769,”y”:0.707106769}},”Master”
“Direction”:”LawfulNeutral”,”Provider”:null}],”Vector”:{“x”:-1.0,”y”:-8.742278E-08}},”Master”
“Direction”:”LawfulEvil”,”Provider”:null}],”Vector”:{“x”:-0.7071068,”y”:-0.7071067}},”Master”
“Direction”:”NeutralGood”,”Provider”:null}],”Vector”:{“x”:-4.371139E-08,”y”:1.0}},”Master”
“Direction”:”TrueNeutral”,”Provider”:null}],”Vector”:{“x”:0.0,”y”:0.0}},”Master”
“Direction”:”NeutralEvil”,”Provider”:null}],”Vector”:{“x”:1.19248806E-08,”y”:-1.0}},”Master”
“Direction”:”ChaoticGood”,”Provider”:null}],”Vector”:{“x”:0.707106769,”y”:0.707106769}},”Master”
“Direction”:”ChaoticNeutral”,”Provider”:null}],”Vector”:{“x”:1.0,”y”:0.0}},”Master”
“Direction”:”ChaoticEvil”,”Provider”:null}],”Vector”:{“x”:0.70710665,”y”:-0.7071069}},”Master”
Extra items
Requested items or stuff I found useful
Tool for finding more itemcodes
For some reason I suspect the lack of a complete list of items in this guide will result in more requests.
While Im happy to help, not every question will be answered fast, and once Im done playing this game I will probably not be looking at this guide. Afterall, its my own tool.
So, how to solve the issue with abandoned guide support and availability of the itemcodes?
Turns out one program I use, agent ransack, will deliver what is needed.
It can be found at [link]
What you do to find itemcodes:
fire up the program.
browse down to the gamefolder in the steamlibrary and the kingmaker_data folder
set filename to: resources.assets assets (file has been split up recently into several sharedassets*.assets files)
and containing text to whatever item you want to find.
limit the text you search for as greatswordplus will result in only vanilla greatswords with +1 – +5
searching instead for greatsword will yield a complete list of anything containing that word. And as can be seen by the attached screenshot, the weapons generally come in a row.
To grab the itemcode:
Right after each item there is a 32digit value. Some are longer, but everything above 32 is trash (and it is as far as I have seen separated in the digit sequence by a $)
I took the liberty of highlighting the itemcode part of one such overly long string.
I guess what remains to say is, have fun looking for your favorite stuff in the resource file 🙂
No, actually: to get the itemcodes in a handy way, rightclick on the results in the right pan, select export results, either to a file or clipboard.
If clipboard, just paste it into a notepad or something and presto, itemcodes easily accessed.
Special items
Weapons (probably)
Armors (Probably)
Cheesing problem/opportunity timers
My newest trick:
1 day problemsolving and opportunity knocks.
first, put your advisors on the projects/events you want to do. save the game.
open savefile as always, and open player.json
alt tab back to game, note the name of the probs/opportunities/projects and search for them verbatim in the player.json file. Also: note how many days there is left before your advisore is done ( Ends in xx days on the card when it has been started).
Example: I picked the “Fey magic” problem. It has 14 days left before it ends.
search yields the following:
{“$id”:”2546″,“Event”:”70209f93a8faa0249ba2d7dc60298dbc”,“TriggeredOn”:267,”Solver”:null,”SolverLeader”:”Regent”,”SolutionCheck”:0,”SolvedInDays”:0,”Region”:”caacbcf9f6d6561459f526e584ded703″,”IsShow”:true,”IsUserClick”:false,”SolveResults”:[],”SolveResultsFinal”:[],”TotalChanges”:{“$id”:”2547″,”m_Changes”:[0,0,0,0,0,0,0,0,0,0],”BPPerTurn”:0,”BPOneTime”:0},”Type”:”FinishedEvent”,”WasIgnored”:false},”SourceDeck”:”3088e16da275cc648ae10ee50a94f829″,”DCModifier”:0,“IsFinished”:false,“ContinueRecurrentSolution”:false,”IgnoredOn”:0,”CheckTriggerOnStart”:false},”AssignedLeader”:{“$ref”:”2542″},“StartedOn”:272,”Name”:”Fey Magic”,”Description”:”A fey magician visited a settlement, and made everyday things come to life! The people seem to be more frightened than amused by the minor and generally harmless anomaly.”,”Region”:{“$ref”:”2311″},”IsStarted”:true},”SpecificBonuses”:[]},
I have set several points in bold in the extracted text:
“Event”:”70209f93a8faa0249ba2d7dc60298dbc” – eventid which can be changed to something else (have a care doing this)
“TriggeredOn”:267 – the day the event appeared in kingdom management
“SolveResults”:[] – i suspect this to be the diceroll. a [20] would mean a 20 roll. Not tested but I saw numerical values inside events I havent touched.
“IsFinished”:false – setting this to true cleanly ends the event without having it effect the game.
It could also break the game if the event sets a flag, so we should probably not do this unless we happen on a situation where we get spammed with eventcards all doing the same, over and over (ie, you got severely bugged and want to try to get out of it without reverting to older save)
“StartedOn” – the day you gave the task to an advisor. The big one for reducing time to wait for event/advisor being freed for other tasks.
Name”:”Fey Magic” – eventcard header. description following this is the extrapolation on the card. This is what we can search for normally.
First off: there is actually 2 $ID’s for one event. In first ID we find triggertime (when event popped on the kingdom board)
In the second ID we find what we need, which I marked in bold.
The number in underscore need to be reduced with the number of days left. Just to not make problems I add +1 to that number so the project ends one day after I reload my savefile (problem being that completiontime is passed, which might make the completion not fire when you pass time).
Reducing 272 by (14-1) gets me 259 which I plot in.
Fey magic is done one day later.
“Currentday” in player.json file states what day your game is on for the purpose of projects.
Best practice to make this eventtimer changing easy is to save the game right after assigning tasks to advisors, alt tab out when save is done and immediately edit the save.
Tab back and forth to edit the events, take note of days left and subtract that time (minus one) from “startedon”:x
Caution: It should be obvious but when your maincharacter support an advisor you will still be locked to do that action and 14 days passes in short order.
One last note: You can get rid of an eventcard by setting “IsFinished”:true, which is placed about one line above the card text (example: “Name”:”A High Society Wedding”). Just search up for that setting from “Name”
Note. Some events does not have a description. If you cant find the description, then you have one of these.
Claim/Advisor rankuptime modifier:
In player.json, there is some settings that will adjust time to rankup advisors and claim regions.
setting those to -0.95 would set those to about 1 day and free you up for more action.
“REModifierUnclaimed”: 0.0,
“REModifierClaimed”: -0.5,
“REModifierUpgraded”: -1.0,
“ClaimCostModifier”: -0.25,
“ClaimTimeModifier”: -0.5,
“RankupTimeModifier”: -0.5,
“BuildingTimeModifier”: 0.0,
Im not sure what the REmodifiers do but timemodifier should be selfevident.
Crisis points: “ConsumableEventBonus”
Added this from comments section when a user answered their own question on where to find this.
Bugged advisorcards
This info is now somewhat outdated, the advisor events after rankups has largely been fixed.
Im leaving it here for posterity ofr new players/playthroughs.
There is a RankUpsCounter in player.json that keeps track of how many kingdomrankups you have. That flag/key is: a1793d1ca81308945a30c98028ceb0de
That value is checked for quests and so on from time to time so its useful to keep it updated if you ever skip rankups. Setting it to a value below a threshold for a quest, say the 100 rankups quest: set it to 99 before running a rankup project to both set the flag to 100 legit and also make the game naturally update quests.
Main reason to skip rankups before was to avoid the 14 days spent paralyzed and also avoid the bugged advisor chats after the events.
To reduce the drag with time:
in player.json, find and set the following values:
“ClaimTimeModifier”: -0.95,
“RankupTimeModifier”: -0.95,
“BuildingTimeModifier”: -0.95,
This change all associated events to one day. When you get the project to halve rankup/claim time, remember to adjust the values if they become bogus.
—————————
Old entry:
Im including some blueprintcodes for problematic eventcards for advisors.
They are currently being bugged, but its possible to bypass them by firing the next rank.
The problem is with the rank 6 event, which will not fire.
List contain from top to bottom:
High Priest
Magister
Minister
Regent
Looking up items with resources.assets and localization file
We have a fairly comprehensive list of itemcodes listed on [link].
However. Not all names are easy giveaways for what the item is called ingame nor what it does.
In instances where you want to find a particular item and its name/id code eludes you by being named something wickedly obvious like LegendItem (yes, looking at you Bloodhound!) yet not really giving up its identity. This is where some deep digging through localization file (that is, the file with text in various languages applied to ingame items) and crossreferencing this in resources.assets come in handy.
English localization text file: enGB.json
Pathfinder KingmakerKingmaker_DataStreamingAssetsLocalizationenGB.json
In loc file you find things pretty much in clear text.
Format is:
Key takeaways from this:
each item entry seem to have at least 2 parts, sometimes more. In this case, it appears to be 4 entries.
Key is the string found in resources.assets
value is the name or text for an item or effect
Most useful code to search for in the resorces.assets file would be the itemname, which would hopefully find us the Bloodhound item. We have 2 entries with that name so looking for both in the resources file, we score 2 results:
LegendItemBuff……………… …0fefc3549186ef94081305fcbf9b41d7….$…00a00c57-dea2-4040-8620-1f1c84a6c3f4
LegendItem……………… …44a13c66284fac9499eba8b4b5489441$…cb319704-80d1-49af-a0b6-b6ba4e1e5d2c
Right, we’re not lookin for a buff, so its the item. Weird name, but spawning 44a13c66284fac9499eba8b4b5489441 yields Bloodhound.
One thing before doing such a involved procedure to find something:
If you want more of an item you already have one item of, dont do this.
Just drop the item on the ground, save, check what the last item dropped is in history, open the zonefile you are in (search up for “loading area” to see its 32digit code) and increase the amount of items in the stack you dropped. No sense in overcomplicating things.
Inconsequent debates
Unintended exchange on paper scissor rock, adding this since I have a space to do so and the outcome was rather hilarious with that dragon kobold (deekin!) in the mix:
Itemswapping for dummies.
Very short guide for itemswap.
1. Savefile is in %userprofile%appdatalocallowowlcat gamespathfinder kingmakersaved games
refer to section at start, where to find things. Open this folder now.
2. In game: drop items of the type you want on the ground. multiple items are ok. do this in ONE go for reasons.
make sure you only swap itemcodes to a similar item when you get to that point, or itemtemplate will be wrong and item does not work/invisible
3. Save game. Feel free to save twice so you have a backup
4. Open the savefile you created in savegame folder with a zip/rar program, it will be named manual_15_blablabla.ZKS
This file can be opened directly by winrar and edits promt you for accepting changes, so I recommend that app.
5. Open HISTORY in savefile. Notepad can be used as default, or notepad++.
Go to bottom of file. search upwards for: item lost”
The items dropped will be listed in sequence if you drop them at the same time in step 2.
Between itemname and item lost is a 32digit code in parantheisi. that is the itemcode you need.
6. Still in HISTORY: search from bottom upwards for: loading area
results will give a line like this:
“06:08:16 21.07.4710 – [Area] CapitalThroneRoom (173c1547502bb7243ad94ef8eec980d0): loading area”,
173c1547502bb7243ad94ef8eec980d0 is the zonename, its full name in savefile will be
173c1547502bb7243ad94ef8eec980d0.JSON
7. Open 173c1547502bb7243ad94ef8eec980d0.JSON in savefile
Search for itemcodes found in step 5. Result will be like this:
m_Blueprint”:”1d3e5519d0840ed4d96378d6a07cc9d1″,”m_Count”:1,”m_InventorySlotIndex”:1
You want to change 1d3e5519d0840ed4d96378d6a07cc9d1 to a new and better item, and you need to change
m_Count”:1 to more items. Change value to how many items you want of it, and add +1.
8. Get itemcodes either from the item lists in the rest of the guide, or from [link]
Fixed Blood Calling quest state
In player.json: This is the completed quest without timefail. Timefail is saved in id $874 with a m_State I believe. Be sure to alter the IDs in the code to correspond with your own IDs before copying it into your player.json file.
Deleted old paste
I may have extracted extra code from other quests, so replacing it with a hopefully better “cut” that doesnt alter other quests.
Important: you cant copy it in as it is, it must of course replace the the same entries in the savefile. Also change IDs to match your own. From what I can see in the savefile, using json format, there is 5 IDs in the quest not 7 as I earlier posted.
Complete list of kingdom rankups
No idea what insustry 2 and 3 is for, was snuck inbetweeen the rest of the ranks.
Advisors and their skills
Advisor section in player.json can look like this, when the advisors are assigned their mission appears in the “AssignedTask” entry and sort of break up the stats.
NPC leaders list appear after the spymaster entry.
Oh, before you go off tangent with “hey, why not make this companion/npc general or councillor..”
Tried that. Placing nonintended npcs into roles really mess up the kingdom management, they get listed as busy and its obvious something is missing (“can_be_advisortype_x” setting, I assume)
So lets look into the HighPriest.
{“$id”:”3678″,”Type”:”HighPriest”,”LeaderSelection”:”c8d4913edee594749b706de35924617e”,”FillIfAvailable”:null,”PossibleLeaders”:[“c8d4913edee594749b706de35924617e”,”aab03d0ab5262da498b32daa6a99b507″],”AssignedTask”:null,”SpecificBonuses”:[{“Key”:”c8d4913edee594749b706de35924617e”,”Value”:20}]}
c8d4913edee594749b706de35924617e is Jhod Kavken.
“SpecificBonuses”:[{“Key”:”c8d4913edee594749b706de35924617e”,”Value”:20}] gives him skill +20 to rolls. The other is Harrim, who has no bonus beyond his stats.
Treasurer:
{“$id”:”3676″,”Type”:”Treasurer”,”LeaderSelection”:”3f5777b51d301524c9b912812955ee1e”,”FillIfAvailable”:null,”PossibleLeaders”:[“3f5777b51d301524c9b912812955ee1e”,”884a076fe9a3e4b48ab60c5318caa4a3″,”04ae2a6c293c15e4f96dbbd78e062fe2″],”AssignedTask”:null,”SpecificBonuses”:[{“Key”:”04ae2a6c293c15e4f96dbbd78e062fe2″,”Value”:1},{“Key”:”884a076fe9a3e4b48ab60c5318caa4a3″,”Value”:1}]}
Learning from this, all we need to add bonuses to advisors is to set them up with a
{“Key”:”GUID”,”Value”:x} separated with comma for multiple entries inside the brackets following “SpecificBonuses”:[] -> “SpecificBonuses”:[{“Key”:”GUIDuselessadvisor1″,”Value”:20},{“Key”:”GUIDuselessadvisor2″,”Value”:20},{“Key”:”GUIDanotheruselessadvisor”,”Value”:20}]
Adding this info due to some troubleshooting by Starless:
leadersection starts with:
“Leaders”:[{“$id”:”3673″,”Type”:”Regent”
and ends with:
{“$id”:”3687″,”Type”:”Spymaster”,”LeaderSelection”:”32d2801eddf236b499d42e4a7d34de23″,”FillIfAvailable”:null,”PossibleLeaders”:[“d5bc1d94cd3e5be4bbc03f3366f67afc”,”3f5777b51d301524c9b912812955ee1e”,”32d2801eddf236b499d42e4a7d34de23″],”SpecificBonuses”:[]}],
the “Leaders”:[{ must terminate with an additional }] after spymaster entry. The other previous 9 advisor roles do not have this termination.
List miss some advisors, chiefly because I currently dont have them. This means advisors like Kassil, Tsanna etc arent on my list. This shouldnt really be a problem. The npc you want to buff would be your appointed advisor right. So just going to the advisor position (search player.json for Leaderselection, there is only the 10 entries, one for each appointed advisor) and either modify the advisors specific bonus or create the entry for it.
Companion availability
If you for some reason miss some dialogue options and as a result dont get a companion, all the story companions including Tartuccio is listed in a section at the very end of player.json.
Every character has an unique ID for each playthrough, but it shouldnt be too hard to figure out which companion is the one you are missing.
To make a character available for use, move it from ExCompanion to the “RemoteCompanion” section. Id recommend not taking in Tartuccio unless you are ok with possibly messing up the game or you couldnt care less about estetichs.
The following is an example from my save where Tartuccio is ExCompanion.
“PartyCharacters” is your standard party picks
“DetachedPartyCharacters” – Not quite sure on this setting, it is possibly used in the endgame
“RemoteCompanions” is the slackers resting in the capital
(Formatted with JSONplugin/notepad++ for readability)
“ExCompanions”: [{
“m_UniqueId”: “adcc44ae-616c-4787-92a1-e2e38b017728”
}
],
“PartyCharacters”: [{
“m_UniqueId”: “b1696ebf-06b9-4b14-864d-069f3f31767d”
}, {
“m_UniqueId”: “5c6d741d-bb05-4e71-8c90-414609d895fa”
}, {
“m_UniqueId”: “308f88d4-59ab-4166-b3b5-7a0adf764ffc”
}, {
“m_UniqueId”: “b3300961-9240-48d5-93cd-92df0e6d0fa4”
}, {
“m_UniqueId”: “ef1f672b-0eed-439f-9cdf-88c9bbba85bc”
}, {
“m_UniqueId”: “ee251a04-8b13-4d2e-accc-f2c98c0d1625”
}
],
“DetachedPartyCharacters”: [],
“RemoteCompanions”: [{
“m_UniqueId”: “3358c9e3-b4b0-4978-b30e-75b97b331a5d”
}, {
“m_UniqueId”: “d353f24f-42f2-4c1f-90d9-232da7fd4013”
}, {
“m_UniqueId”: “37ebc616-2797-4d23-a621-c5b5140d0c5e”
}, {
“m_UniqueId”: “0e10f0d9-32c8-4b9b-9d37-a600f94e16cf”
}, {
“m_UniqueId”: “10694b87-e3a3-4a00-9efd-3602e327130e”
}, {
“m_UniqueId”: “53e8a3f9-9a48-41a8-8bca-07f06f52dad8”
}, {
“m_UniqueId”: “2d33c046-1ca9-4949-a9c8-9d4b8259d837”
}, {
“m_UniqueId”: “c7a88464-2011-43b6-9c67-4052180000f6”
}, {
“m_UniqueId”: “ca92c69a-dfe1-4fad-b10d-00e5b95e3456”
}, {
“m_UniqueId”: “a2b1b3a6-5a6e-4f01-96ae-f0080a1c7a86”
}, {
“m_UniqueId”: “2cb4a1e9-e180-4917-9b2c-9b573fcbeaa2”
}, {
“m_UniqueId”: “247288e3-e911-406b-8a55-9fa52512b1e1”
}
],
Burning bridges
Quest entry for Valerie’s quest in player.json
{“$id”:”928″,”m_NextObjectiveOrder”:4,”m_State”:”Completed”,”m_IsInUiSelected”:false,”Blueprint”:”44edece41cc0ca34897f8534fd8e8d62″,”m_ComponentsData”:[],”PersistentObjectives”:[{“$id”:”929″,”m_State”:”Completed”,”m_IsVisible”:true,”m_IsCollapsed”:false,”m_ObjectiveStartTime”:”593.09:37:39.3800000″,”m_NeedToAttention”:true,”Blueprint”:”dbba326c529ad9047a5d2e8775d7d4e8″,”m_ComponentsData”:[{“$id”:”930″,”ComponentName”:”$Experience$2a1972e1-ab4f-4e1e-b1db-02e164f7872b”}],”Order”:1,”Initialized”:true,”Active”:false,”SourceItem”:null,”SourceCutscene”:null},{“$id”:”931″,”m_State”:”Completed”,”m_IsVisible”:true,”m_IsCollapsed”:false,”m_ObjectiveStartTime”:”593.09:38:04.5880000″,”m_NeedToAttention”:true,”Blueprint”:”62ff00d6b9d6a564ba6bef177c4335ec”,”m_ComponentsData”:[{“$id”:”932″,”ComponentName”:”$Experience$d645cd4d-049e-421e-a502-ee71757aa6fd”}],”Order”:2,”Initialized”:true,”Active”:false,”SourceItem”:null,”SourceCutscene”:null},{“$id”:”933″,”m_State”:”Completed”,”m_IsVisible”:true,”m_IsCollapsed”:false,”m_ObjectiveStartTime”:”593.09:38:14.6370000″,”m_NeedToAttention”:true,”Blueprint”:”806baaf75f0289c4a9b5fe5fa6d984de”,”m_ComponentsData”:[{“$id”:”934″,”ComponentName”:”$ObjectiveStatusTrigger$095c5dd2-6284-41d2-a328-ae6e29144a85″},{“$id”:”935″,”ComponentName”:”$Experience$b099c1c1-c1b1-4d36-9567-0fb30755d0f3″},{“$id”:”936″,”ComponentName”:”$ObjectiveStatusTrigger$3b8e9eec-18b7-45a0-8d18-6756906dc948″}],”Order”:3,”Initialized”:true,”Active”:false,”SourceItem”:null,”SourceCutscene”:null},{“$id”:”937″,”m_State”:”None”,”m_IsVisible”:true,”m_IsCollapsed”:false,”m_ObjectiveStartTime”:”00:00:00″,”m_NeedToAttention”:false,”Blueprint”:”f5287dfb3bbad7d459e75e24d6bce1f1″,”m_ComponentsData”:[{“$id”:”938″,”ComponentName”:”$ObjectiveStatusTrigger$75567f39-4b4d-4ae7-803d-bf4df8799fdc”}],”Order”:0,”Initialized”:true,”Active”:false,”SourceItem”:null,”SourceCutscene”:null},{“$id”:”939″,”m_State”:”None”,”m_IsVisible”:true,”m_IsCollapsed”:false,”m_ObjectiveStartTime”:”00:00:00″,”m_NeedToAttention”:false,”Blueprint”:”3d298fed70665f3489417e99c95c5cec”,”m_ComponentsData”:[{“$id”:”940″,”ComponentName”:”$ObjectiveStatusTrigger$4004f05d-a2ab-4e3b-974f-97fbc57b44f3″}],”Order”:0,”Initialized”:true,”Active”:false,”SourceItem”:null,”SourceCutscene”:null}],”Initialized”:true,”Active”:true,”SourceItem”:null,”SourceCutscene”:null}