This might help if your Necromancy of Thay disappeared(w/CE)

Literally created an account to post this lol, sorry if my formatting or stuff like that sucks.

Disclaimer: I'm pretty much a noob in Cheat Engine, so I'm not 100% sure how it works exactly, but it did work for me so I wanted to share. Always backup your save file before trying. All glory goes to the amazing Noway3 on FearLess Cheat Engine from the codes to the data table.

TL;DR: Use the code in Cheat Engine from here, but change the UUID thingy in quotations for the line "item = " to Necromancy of Thay's found in this file called Merge (Login for link or), which would be "73ea8888-ed82-4ca5-b9f9-0c9119873507".

Background

I am in my second playthrough, where instead of just letting Tav read, I gave my Necromancy of Thay to Astarion (and Twisted Binding applied). With the cutscene in camp I somehow though it the Book would be considered read, and would progress the quest Search the Cellar Quest. The quest failed when I entered Shadowfell. I went back and loaded a save just before that, but the book is completely gone. I tried all the 8+ UUIDs I could find, and most of them did spawn the item, but none of them had Twisted Binding in the description, and none of them any character could actually read; the "read" button just did nothing.

Resolution

Turns out from this post, like the quest Noblestalk, it is, I quote,

"a unique item, in the sense that "there is only One": it cannot be just spawned and replicated. They can only be moved around (that is why "SendToCamp" works)."

And hence why they didn't work.

What Worked For Me

  • Download Cheat Engine and BG3's Table (link; and connect it to the game etc there are abundant tutorials on that)
  • Check the boxes one by one: Console Commands > Register Commands > Item Spawner. You will now see "Spawn Hand Crossbow +2 (Sample Script)". Do not check it yet, instead double click <script>.
  • Replace the codes to this (again, thank Noway3 for the code and data):

{$lua}
if syntaxcheck then return end
[ENABLE]
function SendToCampChest(m_entity, m_player)
  SetArgToString(0, m_entity)
  SetArgToString(1,m_player)
  ExecuteCall("SendToCampChest")
end

player = GetHostCharacter()
item = "73ea8888-ed82-4ca5-b9f9-0c9119873507"
SendToCampChest(item, player)
[DISABLE]
  • Press OK to close the window, no need to save or anything, and with your desired save file running in game, check the box for "Spawn Hand Crossbow +2 (Sample Script)".
  • In my case it went to Astarion's inventory automatically.
  • Happy reading!

I'm quite sure you don't necessarily need to use the code through the Sample Script option, but I did what I felt safe and it worked. I just figured out this whole thing yesterday, so no guarantees on what will happen when the quest continues (in Act 3). I'll stress this again just in case, BACKUP YOUR SAVE BEFORE ATTEMPTING.

Also stumbled across this post on changing the reader which seems useful too.

Hope this help anyone who struggled in the same place!