EvenLess wrote: ↑Mon Nov 06, 2023 6:55 pm
OtakuGamer wrote: ↑Mon Nov 06, 2023 9:28 am
Azura_Zaraki wrote: ↑Mon Nov 06, 2023 8:15 am
Nevermind I figured it out, you can edit stats by editing the script in the console commands max all stats, just edit Ability(Strength,31,20) to Ability(Strength,30000,20) to get 30000 strength. Same for the rest of the stats.
Pretty sure that's temporary and doesn't survive loading games. Correct me if I'm wrong.
I'm hereby correcting you
I think there's a misunderstanding, perhaps on my side. I was talking about the Max All Stats cheat which uses
Code: Select all
AddBoostsToPlayer("Ability(Strength,31,20);Ability(Dexterity,31,20);Ability(Constitution,31,20);Ability(Intelligence,31,20);Ability(Wisdom,31,20);Ability(Charisma,31,20)")
Then the debugmax command I was talking about was like this:
Code: Select all
status = "DEBUG_MAX_CONSTITUTION"
...
ApplyStatusToPlayer(status, -1)
The various hag hair workarounds I assume all fundamentally work by giving you the bonus passive one way or another, but I don't like them because the passive shows up in the character sheet.
low_density wrote: ↑Tue Nov 07, 2023 3:58 pm
Hey guys, I've fixed the script for "Unlimited Prepared Spells" for Game v4.1.1.3905231, enjoy~
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>4982</ID>
<Description>"Unlimited Prepared Spells (just keep selecting more, ignore slots)"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : Baldur's Gate 3 (2560x1440) - (DX11) - (6 + 6 WT)
Version:
Date : 2023-11-07
Author : YS
This script does blah blah blah
}
[ENABLE]
aobscanmodule(prepareSpells,$process,7C 6B 48 8B 44 24 20) // should be unique
prepareSpells:
db EB
registersymbol(prepareSpells)
aobscanmodule(prepareSpells2,$process,0F 8E 2A 02 00 00 8D) // should be unique
prepareSpells2:
db EB 04
registersymbol(prepareSpells2)
[DISABLE]
prepareSpells:
db 7C
unregistersymbol(prepareSpells)
prepareSpells2:
db 0F 8E
unregistersymbol(prepareSpells2)
{
// ORIGINAL CODE - INJECTION POINT: bg3_dx11.exe+2A8F35F
bg3_dx11.exe+2A8F339: 49 8B 80 80 00 00 00 - mov rax,[r8+00000080]
bg3_dx11.exe+2A8F340: 48 8D 14 88 - lea rdx,[rax+rcx*4]
bg3_dx11.exe+2A8F344: 0F 57 C0 - xorps xmm0,xmm0
bg3_dx11.exe+2A8F347: 0F 11 45 50 - movups [rbp+50],xmm0
bg3_dx11.exe+2A8F34B: 48 89 55 50 - mov [rbp+50],rdx
bg3_dx11.exe+2A8F34F: 44 8B 3A - mov r15d,[rdx]
bg3_dx11.exe+2A8F352: EB 80 - jmp bg3_dx11.exe+2A8F2D4
bg3_dx11.exe+2A8F354: 41 8B C6 - mov eax,r14d
bg3_dx11.exe+2A8F357: 4C 8B 64 24 30 - mov r12,[rsp+30]
bg3_dx11.exe+2A8F35C: 41 3B C7 - cmp eax,r15d
// ---------- INJECTING HERE ----------
bg3_dx11.exe+2A8F35F: 7C 6B - jl bg3_dx11.exe+2A8F3CC
// ---------- DONE INJECTING ----------
bg3_dx11.exe+2A8F361: 48 8B 44 24 20 - mov rax,[rsp+20]
bg3_dx11.exe+2A8F366: 8B 80 3C 01 00 00 - mov eax,[rax+0000013C]
bg3_dx11.exe+2A8F36C: A9 00 00 FF FF - test eax,FFFF0000
bg3_dx11.exe+2A8F371: 66 41 0F 45 C6 - cmovne ax,r14w
bg3_dx11.exe+2A8F376: 66 89 44 24 2A - mov [rsp+2A],ax
bg3_dx11.exe+2A8F37B: 49 8B 9C 24 A8 00 00 00 - mov rbx,[r12+000000A8]
bg3_dx11.exe+2A8F383: 48 85 DB - test rbx,rbx
bg3_dx11.exe+2A8F386: 0F 84 7F 01 00 00 - je bg3_dx11.exe+2A8F50B
bg3_dx11.exe+2A8F38C: 49 63 84 24 B4 00 00 00 - movsxd rax,dword ptr [r12+000000B4]
bg3_dx11.exe+2A8F394: 48 8D 0C C0 - lea rcx,[rax+rax*8]
}
{
// ORIGINAL CODE - INJECTION POINT: bg3_dx11.exe+235F45B
bg3_dx11.exe+235F432: 0F 57 C0 - xorps xmm0,xmm0
bg3_dx11.exe+235F435: 0F 11 85 80 03 00 00 - movups [rbp+00000380],xmm0
bg3_dx11.exe+235F43C: EB 14 - jmp bg3_dx11.exe+235F452
bg3_dx11.exe+235F43E: 48 8B 00 - mov rax,[rax]
bg3_dx11.exe+235F441: 0F 57 C0 - xorps xmm0,xmm0
bg3_dx11.exe+235F444: 0F 11 85 A0 03 00 00 - movups [rbp+000003A0],xmm0
bg3_dx11.exe+235F44B: 48 89 85 A0 03 00 00 - mov [rbp+000003A0],rax
bg3_dx11.exe+235F452: 4C 89 64 24 38 - mov [rsp+38],r12
bg3_dx11.exe+235F457: 8B 00 - mov eax,[rax]
bg3_dx11.exe+235F459: 3B C3 - cmp eax,ebx
// ---------- INJECTING HERE ----------
bg3_dx11.exe+235F45B: 0F 8E 2A 02 00 00 - jng bg3_dx11.exe+235F68B
// ---------- DONE INJECTING ----------
bg3_dx11.exe+235F461: 8D 43 01 - lea eax,[rbx+01]
bg3_dx11.exe+235F464: 89 85 80 03 00 00 - mov [rbp+00000380],eax
bg3_dx11.exe+235F46A: 4C 8D 85 80 03 00 00 - lea r8,[rbp+00000380]
bg3_dx11.exe+235F471: 48 8D 55 98 - lea rdx,[rbp-68]
bg3_dx11.exe+235F475: 48 8D 8D E1 00 00 00 - lea rcx,[rbp+000000E1]
bg3_dx11.exe+235F47C: E8 1F 3F 00 00 - call bg3_dx11.exe+23633A0
bg3_dx11.exe+235F481: 48 8B 4D 88 - mov rcx,[rbp-78]
bg3_dx11.exe+235F485: 0F B6 5C 24 30 - movzx ebx,byte ptr [rsp+30]
bg3_dx11.exe+235F48A: 83 79 44 FF - cmp dword ptr [rcx+44],-01
bg3_dx11.exe+235F48E: 0F 85 B9 00 00 00 - jne bg3_dx11.exe+235F54D
}
{
// ORIGINAL CODE - INJECTION POINT: bg3_dx11.exe+DA5FC1
bg3_dx11.exe+DA5F9F: EB 9C - jmp bg3_dx11.exe+DA5F3D
bg3_dx11.exe+DA5FA1: 48 8B 83 80 00 00 00 - mov rax,[rbx+00000080]
bg3_dx11.exe+DA5FA8: 0F 57 C0 - xorps xmm0,xmm0
bg3_dx11.exe+DA5FAB: 48 8D 14 B0 - lea rdx,[rax+rsi*4]
bg3_dx11.exe+DA5FAF: 0F 11 45 40 - movups [rbp+40],xmm0
bg3_dx11.exe+DA5FB3: 48 89 55 40 - mov [rbp+40],rdx
bg3_dx11.exe+DA5FB7: 44 8B 32 - mov r14d,[rdx]
bg3_dx11.exe+DA5FBA: EB 81 - jmp bg3_dx11.exe+DA5F3D
bg3_dx11.exe+DA5FBC: 33 C0 - xor eax,eax
bg3_dx11.exe+DA5FBE: 41 3B C6 - cmp eax,r14d
// ---------- INJECTING HERE ----------
bg3_dx11.exe+DA5FC1: 7C 56 - jl bg3_dx11.exe+DA6019
// ---------- DONE INJECTING ----------
bg3_dx11.exe+DA5FC3: 48 8B 4C 24 28 - mov rcx,[rsp+28]
bg3_dx11.exe+DA5FC8: B2 01 - mov dl,01
bg3_dx11.exe+DA5FCA: E8 11 E9 B2 FF - call bg3_dx11.exe+8D48E0
bg3_dx11.exe+DA5FCF: 49 8B 9D A8 00 00 00 - mov rbx,[r13+000000A8]
bg3_dx11.exe+DA5FD6: 66 89 44 24 22 - mov [rsp+22],ax
bg3_dx11.exe+DA5FDB: 48 85 DB - test rbx,rbx
bg3_dx11.exe+DA5FDE: 74 66 - je bg3_dx11.exe+DA6046
bg3_dx11.exe+DA5FE0: 49 63 85 B4 00 00 00 - movsxd rax,dword ptr [r13+000000B4]
bg3_dx11.exe+DA5FE7: 48 8D 0C C0 - lea rcx,[rax+rax*8]
bg3_dx11.exe+DA5FEB: 48 8D 34 CB - lea rsi,[rbx+rcx*8]
}
{
// ORIGINAL CODE - INJECTION POINT: bg3_dx11.exe+164DF64
bg3_dx11.exe+164DF37: 0F 11 85 70 02 00 00 - movups [rbp+00000270],xmm0
bg3_dx11.exe+164DF3E: 48 89 85 70 02 00 00 - mov [rbp+00000270],rax
bg3_dx11.exe+164DF45: EB 14 - jmp bg3_dx11.exe+164DF5B
bg3_dx11.exe+164DF47: 48 8B 00 - mov rax,[rax]
bg3_dx11.exe+164DF4A: 0F 57 C0 - xorps xmm0,xmm0
bg3_dx11.exe+164DF4D: 0F 11 85 80 02 00 00 - movups [rbp+00000280],xmm0
bg3_dx11.exe+164DF54: 48 89 85 80 02 00 00 - mov [rbp+00000280],rax
bg3_dx11.exe+164DF5B: 4C 89 6C 24 48 - mov [rsp+48],r13
bg3_dx11.exe+164DF60: 8B 00 - mov eax,[rax]
bg3_dx11.exe+164DF62: 3B C3 - cmp eax,ebx
// ---------- INJECTING HERE ----------
bg3_dx11.exe+164DF64: 0F 8E B6 02 00 00 - jng bg3_dx11.exe+164E220
// ---------- DONE INJECTING ----------
bg3_dx11.exe+164DF6A: 44 8D 6B 01 - lea r13d,[rbx+01]
bg3_dx11.exe+164DF6E: 44 89 6D 94 - mov [rbp-6C],r13d
bg3_dx11.exe+164DF72: 80 BD F1 01 00 00 00 - cmp byte ptr [rbp+000001F1],00
bg3_dx11.exe+164DF79: 75 4A - jne bg3_dx11.exe+164DFC5
bg3_dx11.exe+164DF7B: 48 8B 85 A0 01 00 00 - mov rax,[rbp+000001A0]
bg3_dx11.exe+164DF82: 84 C0 - test al,al
bg3_dx11.exe+164DF84: 75 3F - jne bg3_dx11.exe+164DFC5
bg3_dx11.exe+164DF86: 83 BD 9C 01 00 00 00 - cmp dword ptr [rbp+0000019C],00
bg3_dx11.exe+164DF8D: 75 1B - jne bg3_dx11.exe+164DFAA
bg3_dx11.exe+164DF8F: 41 B0 01 - mov r8b,01
}
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatTable>
Thank you! This is exactly what I was just looking for. I did have some trouble deploying it but deleting some bits at the start and end fixed it. I assume you copied the entire checkbox option in CE, for those who just want to edit the script in the existing checkbox:
Code: Select all
[ENABLE]
aobscanmodule(prepareSpells,$process,7C 6B 48 8B 44 24 20) // should be unique
prepareSpells:
db EB
registersymbol(prepareSpells)
aobscanmodule(prepareSpells2,$process,0F 8E 2A 02 00 00 8D) // should be unique
prepareSpells2:
db EB 04
registersymbol(prepareSpells2)
[DISABLE]
prepareSpells:
db 7C
unregistersymbol(prepareSpells)
prepareSpells2:
db 0F 8E
unregistersymbol(prepareSpells2)
{
// ORIGINAL CODE - INJECTION POINT: bg3_dx11.exe+2A8F35F
bg3_dx11.exe+2A8F339: 49 8B 80 80 00 00 00 - mov rax,[r8+00000080]
bg3_dx11.exe+2A8F340: 48 8D 14 88 - lea rdx,[rax+rcx*4]
bg3_dx11.exe+2A8F344: 0F 57 C0 - xorps xmm0,xmm0
bg3_dx11.exe+2A8F347: 0F 11 45 50 - movups [rbp+50],xmm0
bg3_dx11.exe+2A8F34B: 48 89 55 50 - mov [rbp+50],rdx
bg3_dx11.exe+2A8F34F: 44 8B 3A - mov r15d,[rdx]
bg3_dx11.exe+2A8F352: EB 80 - jmp bg3_dx11.exe+2A8F2D4
bg3_dx11.exe+2A8F354: 41 8B C6 - mov eax,r14d
bg3_dx11.exe+2A8F357: 4C 8B 64 24 30 - mov r12,[rsp+30]
bg3_dx11.exe+2A8F35C: 41 3B C7 - cmp eax,r15d
// ---------- INJECTING HERE ----------
bg3_dx11.exe+2A8F35F: 7C 6B - jl bg3_dx11.exe+2A8F3CC
// ---------- DONE INJECTING ----------
bg3_dx11.exe+2A8F361: 48 8B 44 24 20 - mov rax,[rsp+20]
bg3_dx11.exe+2A8F366: 8B 80 3C 01 00 00 - mov eax,[rax+0000013C]
bg3_dx11.exe+2A8F36C: A9 00 00 FF FF - test eax,FFFF0000
bg3_dx11.exe+2A8F371: 66 41 0F 45 C6 - cmovne ax,r14w
bg3_dx11.exe+2A8F376: 66 89 44 24 2A - mov [rsp+2A],ax
bg3_dx11.exe+2A8F37B: 49 8B 9C 24 A8 00 00 00 - mov rbx,[r12+000000A8]
bg3_dx11.exe+2A8F383: 48 85 DB - test rbx,rbx
bg3_dx11.exe+2A8F386: 0F 84 7F 01 00 00 - je bg3_dx11.exe+2A8F50B
bg3_dx11.exe+2A8F38C: 49 63 84 24 B4 00 00 00 - movsxd rax,dword ptr [r12+000000B4]
bg3_dx11.exe+2A8F394: 48 8D 0C C0 - lea rcx,[rax+rax*8]
}
{
// ORIGINAL CODE - INJECTION POINT: bg3_dx11.exe+235F45B
bg3_dx11.exe+235F432: 0F 57 C0 - xorps xmm0,xmm0
bg3_dx11.exe+235F435: 0F 11 85 80 03 00 00 - movups [rbp+00000380],xmm0
bg3_dx11.exe+235F43C: EB 14 - jmp bg3_dx11.exe+235F452
bg3_dx11.exe+235F43E: 48 8B 00 - mov rax,[rax]
bg3_dx11.exe+235F441: 0F 57 C0 - xorps xmm0,xmm0
bg3_dx11.exe+235F444: 0F 11 85 A0 03 00 00 - movups [rbp+000003A0],xmm0
bg3_dx11.exe+235F44B: 48 89 85 A0 03 00 00 - mov [rbp+000003A0],rax
bg3_dx11.exe+235F452: 4C 89 64 24 38 - mov [rsp+38],r12
bg3_dx11.exe+235F457: 8B 00 - mov eax,[rax]
bg3_dx11.exe+235F459: 3B C3 - cmp eax,ebx
// ---------- INJECTING HERE ----------
bg3_dx11.exe+235F45B: 0F 8E 2A 02 00 00 - jng bg3_dx11.exe+235F68B
// ---------- DONE INJECTING ----------
bg3_dx11.exe+235F461: 8D 43 01 - lea eax,[rbx+01]
bg3_dx11.exe+235F464: 89 85 80 03 00 00 - mov [rbp+00000380],eax
bg3_dx11.exe+235F46A: 4C 8D 85 80 03 00 00 - lea r8,[rbp+00000380]
bg3_dx11.exe+235F471: 48 8D 55 98 - lea rdx,[rbp-68]
bg3_dx11.exe+235F475: 48 8D 8D E1 00 00 00 - lea rcx,[rbp+000000E1]
bg3_dx11.exe+235F47C: E8 1F 3F 00 00 - call bg3_dx11.exe+23633A0
bg3_dx11.exe+235F481: 48 8B 4D 88 - mov rcx,[rbp-78]
bg3_dx11.exe+235F485: 0F B6 5C 24 30 - movzx ebx,byte ptr [rsp+30]
bg3_dx11.exe+235F48A: 83 79 44 FF - cmp dword ptr [rcx+44],-01
bg3_dx11.exe+235F48E: 0F 85 B9 00 00 00 - jne bg3_dx11.exe+235F54D
}
{
// ORIGINAL CODE - INJECTION POINT: bg3_dx11.exe+DA5FC1
bg3_dx11.exe+DA5F9F: EB 9C - jmp bg3_dx11.exe+DA5F3D
bg3_dx11.exe+DA5FA1: 48 8B 83 80 00 00 00 - mov rax,[rbx+00000080]
bg3_dx11.exe+DA5FA8: 0F 57 C0 - xorps xmm0,xmm0
bg3_dx11.exe+DA5FAB: 48 8D 14 B0 - lea rdx,[rax+rsi*4]
bg3_dx11.exe+DA5FAF: 0F 11 45 40 - movups [rbp+40],xmm0
bg3_dx11.exe+DA5FB3: 48 89 55 40 - mov [rbp+40],rdx
bg3_dx11.exe+DA5FB7: 44 8B 32 - mov r14d,[rdx]
bg3_dx11.exe+DA5FBA: EB 81 - jmp bg3_dx11.exe+DA5F3D
bg3_dx11.exe+DA5FBC: 33 C0 - xor eax,eax
bg3_dx11.exe+DA5FBE: 41 3B C6 - cmp eax,r14d
// ---------- INJECTING HERE ----------
bg3_dx11.exe+DA5FC1: 7C 56 - jl bg3_dx11.exe+DA6019
// ---------- DONE INJECTING ----------
bg3_dx11.exe+DA5FC3: 48 8B 4C 24 28 - mov rcx,[rsp+28]
bg3_dx11.exe+DA5FC8: B2 01 - mov dl,01
bg3_dx11.exe+DA5FCA: E8 11 E9 B2 FF - call bg3_dx11.exe+8D48E0
bg3_dx11.exe+DA5FCF: 49 8B 9D A8 00 00 00 - mov rbx,[r13+000000A8]
bg3_dx11.exe+DA5FD6: 66 89 44 24 22 - mov [rsp+22],ax
bg3_dx11.exe+DA5FDB: 48 85 DB - test rbx,rbx
bg3_dx11.exe+DA5FDE: 74 66 - je bg3_dx11.exe+DA6046
bg3_dx11.exe+DA5FE0: 49 63 85 B4 00 00 00 - movsxd rax,dword ptr [r13+000000B4]
bg3_dx11.exe+DA5FE7: 48 8D 0C C0 - lea rcx,[rax+rax*8]
bg3_dx11.exe+DA5FEB: 48 8D 34 CB - lea rsi,[rbx+rcx*8]
}
{
// ORIGINAL CODE - INJECTION POINT: bg3_dx11.exe+164DF64
bg3_dx11.exe+164DF37: 0F 11 85 70 02 00 00 - movups [rbp+00000270],xmm0
bg3_dx11.exe+164DF3E: 48 89 85 70 02 00 00 - mov [rbp+00000270],rax
bg3_dx11.exe+164DF45: EB 14 - jmp bg3_dx11.exe+164DF5B
bg3_dx11.exe+164DF47: 48 8B 00 - mov rax,[rax]
bg3_dx11.exe+164DF4A: 0F 57 C0 - xorps xmm0,xmm0
bg3_dx11.exe+164DF4D: 0F 11 85 80 02 00 00 - movups [rbp+00000280],xmm0
bg3_dx11.exe+164DF54: 48 89 85 80 02 00 00 - mov [rbp+00000280],rax
bg3_dx11.exe+164DF5B: 4C 89 6C 24 48 - mov [rsp+48],r13
bg3_dx11.exe+164DF60: 8B 00 - mov eax,[rax]
bg3_dx11.exe+164DF62: 3B C3 - cmp eax,ebx
// ---------- INJECTING HERE ----------
bg3_dx11.exe+164DF64: 0F 8E B6 02 00 00 - jng bg3_dx11.exe+164E220
// ---------- DONE INJECTING ----------
bg3_dx11.exe+164DF6A: 44 8D 6B 01 - lea r13d,[rbx+01]
bg3_dx11.exe+164DF6E: 44 89 6D 94 - mov [rbp-6C],r13d
bg3_dx11.exe+164DF72: 80 BD F1 01 00 00 00 - cmp byte ptr [rbp+000001F1],00
bg3_dx11.exe+164DF79: 75 4A - jne bg3_dx11.exe+164DFC5
bg3_dx11.exe+164DF7B: 48 8B 85 A0 01 00 00 - mov rax,[rbp+000001A0]
bg3_dx11.exe+164DF82: 84 C0 - test al,al
bg3_dx11.exe+164DF84: 75 3F - jne bg3_dx11.exe+164DFC5
bg3_dx11.exe+164DF86: 83 BD 9C 01 00 00 00 - cmp dword ptr [rbp+0000019C],00
bg3_dx11.exe+164DF8D: 75 1B - jne bg3_dx11.exe+164DFAA
bg3_dx11.exe+164DF8F: 41 B0 01 - mov r8b,01
}
EDIT: It seems someone has the same issue but perhaps hasn't figured it out yet:
yeewesley wrote: ↑Tue Nov 07, 2023 5:15 pm
Thank you so much. I tried to enable "Unlimited Prepared Spells (just keep selecting more, ignore slots)"' checkbox but got an error message : <<The array of byte named prepareSpells2 could not be found >>
is this anything i could have done wrong? TQ again
See above, friend. Or just use the latest table shared by Zanzer a bit above your comment