The Fix

Before you edit your save file, make a copy.

Save file location

You need Cheat Engine

Cheat Engine has powerful automation with its Lua scripting engine; using a hex editor to edit files manually will be painfully slow and confusing.

Step 0: MAKE A COPY OF THE SAVE IF YOU HAVEN'T YET!

███╗ ███╗ █████╗ ██╗ ██╗███████╗ █████╗ ██████╗ ██████╗ ██████╗ ██╗ ██╗██╗ ████╗ ████║██╔══██╗██║ ██╔╝██╔════╝ ██╔══██╗ ██╔════╝██╔═══██╗██╔══██╗╚██╗ ██╔╝██║ ██╔████╔██║███████║█████╔╝ █████╗ ███████║ ██║ ██║ ██║██████╔╝ ╚████╔╝ ██║ ██║╚██╔╝██║██╔══██║██╔═██╗ ██╔══╝ ██╔══██║ ██║ ██║ ██║██╔═══╝ ╚██╔╝ ╚═╝ ██║ ╚═╝ ██║██║ ██║██║ ██╗███████╗ ██║ ██║ ╚██████╗╚██████╔╝██║ ██║ ██╗ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝

Personally, I make 2 copies of the original save, and rename one of the copies to something like "12345save01.sav.bak" and then move the copy that I will work on to an isolated folder where none of the other saves are located. This way, if I pasted the isolated, edited save file back into the original folder and it replaces the original save, and then I find out that the edited save causes my game to crash on load, then I can simply rename the "12345save01.sav.bak" to "12345save01.sav" and replace the corrupted save.

Step 1: Open the save file in Cheat Engine

Really, if you don't believe me, just edit the value of the first byte of a copy of the save file and then close Cheat Engine without saving. Open the file back up, the edit is still there. Remember to restore the backup.

Step 2: Open the Lua Engine window in Cheat Engine

Note that pressing control+alt+L (no shift) will bring up a similar Lua scripting window, and that is fine too.

Step 3: Paste the script into the Lua Engine

It's a script that turns off the 0x80 bit of byte at offset 41 for every item [stack] in your inventory (continue reading the guide for more details). The in-game effect of this script is that it makes all items sellable.



--Kingdoms of Amalur: Reckoning - Bugged Item Fix Script - v1.1

--Author: General Cellist (https://steamcommunity.com/id/General_Cellist/)

--CE Scripting documentation: http://wiki.cheatengine.org/index.php?title=Help_File:Script_engine

local itemStackList = {}

local ms = createMemScan()

local fl = createFoundList(ms)

ms.firstScan(

soExactValue, vtByteArray, rtRounded,

"* * * * 0B 00 00 00 68 D5 24 00 03 * * * * 68",

nil, 0, 0xffffffffffffffff, "", fsmNotAligned, nil, true, false, false, false)

ms.waitTillDone()

fl.initialize()

local i, maskByte

for i = 0, fl.Count - 1 do

itemStackList[i] = {}

itemStackList[i]["Address"] = fl.Address[i] --string

itemStackList[i]["Value"] = fl.Value[i] --string

itemStackList[i]["NumStats"] = readInteger(itemStackList[i].Address.."+"..string.format("%X", 21)) --int

itemStackList[i]["AdjustedFixOffset"] = itemStackList[i].NumStats * 8 + 41 --int

itemStackList[i]["AdjustedFixAddress"] = itemStackList[i].Address.."+"..string.format("%X",itemStackList[i].AdjustedFixOffset) --string

maskByte = readBytes(itemStackList[i].AdjustedFixAddress, 1, false) --int

if maskByte & 0x80 == 0x80 then

writeBytes(itemStackList[i].Address.."+"..string.format("%X",itemStackList[i].AdjustedFixOffset), maskByte & 0x7F)

end

end



print(fl.Count .. " items changed")



fl.destroy()

ms.destroy()



print("done")



Step 4: Execute the script

Cheat Engine 6.6 and older: Changes are automatically written, so don't save. You can close Cheat Engine.





Cheat Engine 6.7 and newer: You will need to manually save the file before exiting Cheat Engine.

Step 5: Finishing Up

Your modified save is now ready to use. Make sure you place it back in the save folder before you start up the game.



When the game starts, make sure to manually load the modified save. Pressing "Continue" might load an autosave that you didn't edit.

Enjoy!

I sell all my ex-quest items to my Gravehal Keep vendor; it keeps things tidy.

Rate this guide up if you liked the fix!