Re: z Baldur's Gate 3
Posted: Sun Dec 31, 2023 5:33 pm
Community Cheat Tables of Cheat Engine
https://fearlessrevolution.com/
That is the unique weapon enchant for the Everburn Blade. Be aware that using this will stop you from dipping your weapon.
Like I said in the initial post, you can only spawn that quest Noblestalk when you have the Find the Mushroom Trader quest active. Any other time that one won't spawn anything. The one in the script might be messed up because you can only have one of the quest Noblestalk in your inventory at a time and it is giving 20 (or trying to).citard wrote: ↑Sat Dec 30, 2023 5:21 pmI don't think it works. The script was:Yusuke614 wrote: ↑Sat Dec 30, 2023 3:25 pmIt'sThat only works if you have the Find the Mushroom Picker quest active. Once it's completed (by giving it to Derryth or Baelen) it won't spawn any longer.Code: Select all
09561b3f-f556-4a01-b289-9b362bc0d43a
What I did was spawn one and gave it to Shadowheart then spawned another to give to Derryth and ended the quest.
Derryth is sposed to have more Noblestalk for sale in their shop in Baldur's Gate, but I haven't progressed that far so can't say for sure.What is wrong in this?Code: Select all
{$lua} if syntaxcheck then return end [ENABLE] local item = "09561b3f-f556-4a01-b289-9b362bc0d43a" TemplateAddToPlayer(item, 20) [DISABLE]
Code: Select all
48c679c1-b713-4d2f-9bba-1c43ed654404
In further examination of this, I think I figured out how to fix Last Trade Vendor's AOB. After downgrading my version of BG3 to when the script last worked to try to reverse engineer how the function was originally found, I ended up actually looking through Zanzer's script for loading console commands and it made me realize I could just follow the function of ActivateTrade to its function in memory via the address he loads in the register symbol. Sure enough I realized only then (or perhaps it's some strange remnant of the many times I was running through trying to dissect the code) that it also just straight up puts a reference to ActivateTrade for Goto Address.SenorPlebeian wrote: ↑Fri Dec 29, 2023 5:26 amHasn't been working on my end either.ctulloch137 wrote: ↑Thu Dec 28, 2023 8:54 pmIs the last trade vendor cheat working for anyone? most everything else seems to still be working fine for me, but I use that one when I encounter new vendors to be able to go through their full stock (resetting), and clicking it in cheat engine now just does nothing, doesnt expand the options.
Not entirely sure how the AOB for the ActivateTrade function was found as I've mostly only dabbled in finding AOBs via it accessing a value in memory, which in this case I've found 100+ results for a vendor's UUID when doing a string search. The string it's referencing may very well be a value in RAM that's swiftly getting overwritten after the time of the function call and well after my scan, so I haven't really attempted to try to brute force through all the results for a hit. I figured since it hasn't been brought up in the last 100 or so pages on this thread, no one else was running into the issue and it might have just been the table I downloaded down, so I haven't attempted to fix it beyond that.
Thus far my short-term workaround has been to set up the script to instead let me input in the vendor's UUID which I grab off of the unpacked gustav dev files and have the script call the console commands with that instead. Unfortunately, this is a bit of a cumbersome experience without a proper mapping of the vendor to their UUID.
Code: Select all
{ ActivateTrade(
Player, Trader, CanSell, TradeMode,
InitiallySelectedTradeObject, ItemsTagFilter
) }
[ENABLE]
aobscanmodule(trade,$process,48 33 ?? 48 89 ?? ?? 48 8B ?? 48 8B ?? E8 ?? ?? ?? ?? ?? 8B ?? 48 8D ?? ?? E8 ?? ?? ?? ?? 4C 8B F8)
alloc(newmem,$1000,trade)
label(tradePC)
label(tradeNPC)
label(tradeBkp)
label(return)
newmem:
mov rbx,tradePC
mov rax,[rdx+08]
test rax,rax
je @f
mov rcx,[rax+00]
mov [rbx+00],rcx
mov rcx,[rax+08]
mov [rbx+08],rcx
mov rcx,[rax+10]
mov [rbx+10],rcx
mov rcx,[rax+18]
mov [rbx+18],rcx
mov rcx,[rax+20]
mov [rbx+20],rcx
mov rcx,[rax+28]
mov [rbx+28],rcx
mov rcx,[rax+30]
mov [rbx+30],rcx
mov rcx,[rax+38]
mov [rbx+38],rcx
mov rbx,tradeNPC
mov rax,[rdx+18]
test rax,rax
je @f
mov rcx,[rax+00]
mov [rbx+00],rcx
mov rcx,[rax+08]
mov [rbx+08],rcx
mov rcx,[rax+10]
mov [rbx+10],rcx
mov rcx,[rax+18]
mov [rbx+18],rcx
mov rcx,[rax+20]
mov [rbx+20],rcx
mov rcx,[rax+28]
mov [rbx+28],rcx
mov rcx,[rax+30]
mov [rbx+30],rcx
mov rcx,[rax+38]
mov [rbx+38],rcx
mov rcx,[rax+40]
mov [rbx+40],rcx
mov rcx,[rax+48]
mov [rbx+48],rcx
mov rcx,[rax+50]
mov [rbx+50],rcx
mov rcx,[rax+58]
mov [rbx+58],rcx
tradeBkp:
readmem(trade+07,6)
jmp return
align 10
tradePC:
dq 0
dq 0
dq 0
dq 0
dq 0
dq 0
dq 0
dq 0
dq 0
dq 0
tradeNPC:
dq 0
dq 0
dq 0
dq 0
dq 0
dq 0
dq 0
dq 0
dq 0
dq 0
trade+07:
jmp newmem
nop
return:
registersymbol(trade)
registersymbol(tradeBkp)
registersymbol(tradePC)
registersymbol(tradeNPC)
[DISABLE]
trade+07:
readmem(tradeBkp,6)
unregistersymbol(trade)
unregistersymbol(tradeBkp)
unregistersymbol(tradePC)
unregistersymbol(tradeNPC)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: bg3.exe+1431352
bg3.exe+143132F: 55 - push rbp
bg3.exe+1431330: 41 54 - push r12
bg3.exe+1431332: 41 55 - push r13
bg3.exe+1431334: 41 56 - push r14
bg3.exe+1431336: 41 57 - push r15
bg3.exe+1431338: 48 8D 6C 24 C9 - lea rbp,[rsp-37]
bg3.exe+143133D: 48 81 EC A0 00 00 00 - sub rsp,000000A0
bg3.exe+1431344: 48 8B 05 AD F0 1F 04 - mov rax,[bg3.exe+56303F8]
bg3.exe+143134B: 48 33 C4 - xor rax,rsp
bg3.exe+143134E: 48 89 45 2F - mov [rbp+2F],rax
// ---------- INJECTING HERE ----------
bg3.exe+1431352: 48 8B DA - mov rbx,rdx
// ---------- DONE INJECTING ----------
bg3.exe+1431355: 33 D2 - xor edx,edx
bg3.exe+1431357: 48 8B CB - mov rcx,rbx
bg3.exe+143135A: E8 91 0A CA FF - call bg3.exe+10D1DF0
bg3.exe+143135F: 4C 8B E0 - mov r12,rax
bg3.exe+1431362: 48 8D 4B 10 - lea rcx,[rbx+10]
bg3.exe+1431366: 33 D2 - xor edx,edx
bg3.exe+1431368: E8 83 0A CA FF - call bg3.exe+10D1DF0
bg3.exe+143136D: 4C 8B F8 - mov r15,rax
bg3.exe+1431370: 4D 85 E4 - test r12,r12
bg3.exe+1431373: 0F 84 CD 01 00 00 - je bg3.exe+1431546
}
I'm not having any luck with this (Game v4.1.1.3905231 --- Table v14) version - unless I'm missing something. Tried saving/Loading, but no pointers update.zch wrote: ↑Sun Dec 31, 2023 1:27 pmThe version on first page of this thread works with current patch/hotfix just fineadam007ace wrote: ↑Sat Dec 30, 2023 11:42 pmdoes any one have a updated table so i can spawn items in with cheat engine?
These bonuses are for playing on the easiest difficulty: Explorer.Magikorp wrote: ↑Mon Jan 01, 2024 12:32 pmWhat is "PlayerBonusesStory" and how would you get it through normal game play?
From the code I can see that it provides:
data "Boosts" "IncreaseMaxHP(100%);ProficiencyBonus(SavingThrow,Strength);ProficiencyBonus(SavingThrow,Dexterity);ProficiencyBonus(SavingThrow,Intelligence);ProficiencyBonus(SavingThrow,Constitution);ProficiencyBonus(SavingThrow,Charisma);ProficiencyBonus(SavingThrow,Wisdom)"
Just wondering where this comes from in game.
The family of spells "Target_PactOfTheChain_*" and "Target_FindFamiliar_*" are part of a sub-group, the main spell is "Target_FindFamiliar_Ritual"zch wrote: ↑Sun Dec 31, 2023 1:24 pmcan someone help me figure out how to add a summon imp or quasit to a character, I successfully added ritual spells and some cantrips with this script, but summon imp just doesn't work. This is what I used to add ritual spells/cantrips tho they go under character sheet and not under class sheet when you press K, but I don't mind that.Any help is appreciated <3Code: Select all
{$lua} if syntaxcheck then return end spell = { "Target_MinorIllusion", "Shout_FeatherFall", "Target_Longstrider_6", "Shout_FeatherFall", "Projectile_FireBolt", "Shout_DisguiseSelf", --"Target_PactOfTheChain_Imp", doesn't work, I looked trough the forums and found the code I tried bellow which also doesn't work --"Target_PactOfTheChain_Imp_Container,MostPowerful,e9127b70-22b7-42a1-b172-d02f828f260a)" - ^ } [ENABLE] AddSpellToPlayer(spell) [DISABLE]
Code: Select all
{$lua}
if syntaxcheck then return end
passive = "PactOfTheChain"
[ENABLE]
AddPassiveToPlayer(passive)
[DISABLE]
RemovePassiveFromPlayer(passive)