z Baldur's Gate 3

Upload your cheat tables here (No requests)
User avatar
Trip
Noobzor
Noobzor
Posts: 14
Joined: Tue Aug 08, 2023 5:26 am
Reputation: 5

Re: z Baldur's Gate 3

Post by Trip »

omrictu wrote:
Sat Aug 26, 2023 12:42 pm
console commands broken? I loaded the saved game and still it keeps telling me to load saved game before activating?!
Here is what worked for me:
Load your game and CT script check the register commands: if it gives you the message to load a save uncheck it, hit F5 quicksave, reload that and hit register commands again.

How to use this cheat table?
  1. Install Cheat Engine
  2. Double-click the .CT file in order to open it.
  3. Click the PC icon in Cheat Engine in order to select the game process.
  4. Keep the list.
  5. Activate the trainer options by checking boxes or setting values from 0 to 1

emerlyn
What is cheating?
What is cheating?
Posts: 3
Joined: Sat Aug 26, 2023 1:01 pm
Reputation: 0

Re: z Baldur's Gate 3

Post by emerlyn »

Could anyone help out with adding the condition "Oath Broken". I am completely new to Cheat Engine.
Been suffering from the plagued game crash when trying to speak with Oathbreaker Knight and I have been trying to add it as it seems on my side, it's missing.

Any suggestions of how to achieve this would be appreciated.

Manny
What is cheating?
What is cheating?
Posts: 2
Joined: Wed Sep 07, 2022 9:24 am
Reputation: 0

Re: z Baldur's Gate 3

Post by Manny »

Thepledge wrote:
Mon Aug 21, 2023 1:31 am
Sylvar wrote:
Sun Aug 20, 2023 11:28 pm
Okay so for those who have been posting questions about multiple romances, I wanted to share my experience.

There are stages in the romances, i.e. dating, partnered, past partners with etc.

If you have multiple IsDating flags set to = 1 then when one of those origin characters enters a partnership with you, the others who you were dating will give you some form of "I saw you're going steady with so and so" and break things off with you.

However, I have found a separate flag state of "--ORI_State_PartneredWith" and I was doing some testing, I set the flag state of this to = 1 with both Shadowheart and Astarion. So far they are both acting as if they are in a relationship with me, I.e. I can go up to each of them and ask them for a kiss, talk "about us" etc. and doing so with one does not seem to incur any disapproval with the other, even if we're partied up together. They seem to act as if they are oblivious to my partnership with the other.

I haven't noticed any major bugs with this test, the only thing I noticed is when Halsin asks about being with you and asks you to check with your partner, it gives you the option in dialogue to say you'll check with either Shadowheart or Astarion, though you only need to click one of the options to progress dialogue. However, you can go talk to and get consent from both of them to pursue Halsin.

The other thing I noticed is the drow twins seems to default to whomever you were partnered with first, if you try to pick the both option at Sharess' Caress. For me it acts as if Astarion is my partner even if I have Shadowheart in the party instead.

I have yet to complete either of their respective personal quests yet, nor have I gotten Shadowheart's romance scene in act 3, but figured I would share what my testing had resulted in so far!

Hope that this helps!
Great work finding that stuff, I've updated my code to include all the partnered attributes, and by looking into the "Act2_ORI_RomanceConflict.txt" it seems like once the characters are at the partnered state it no longer looks for conflicts. Should mean that if you either use my scripts to selectively disable other romances to see the initiation scenes, or just skip to the partnered states, it might be free and clear. Also seems like halsin has no isdating flag, but skips straight to either partnered or secondary partnered.

Here's the new scripts. as with the old one, needs to be pasted into zanzer's table and the console commands need to be registered.

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>4762</ID>
      <Description>"Romance Flags"</Description>
      <Options moHideChildren="1"/>
      <LastState Value="" RealAddress="00000000"/>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>4763</ID>
          <Description>"Dating Gale"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "75d0e041-c16c-d089-6d89-64354fa4c9d9" --Debug_SetReallyTagsToo

local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("SetFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4492</ID>
          <Description>"Dating Wyll"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "f1520748-1d36-4500-9f8a-0da4207f8dd5" -- ORI_State_DatingWithWyll

local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("SetFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4493</ID>
          <Description>"Dating Astarion"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "ba298c56-26b6-4918-9bd4-616668d369d8" -- ORI_State_DatingAstarion


local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("SetFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4494</ID>
          <Description>"Dating Shadowheart"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "e87f1e21-a758-47ae-8c0e-9e715eb289b5" -- ORI_State_DatingShadowheart


local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("SetFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4764</ID>
          <Description>"Dating Lae'zel"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "86eaa84a-350b-401b-8b43-b53eeb534579" -- ORI_State_DatingLaezel


local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("SetFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4765</ID>
          <Description>"Dating Minthara"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "de1360cd-894b-40ea-95a7-1166d675d040" -- ORI_State_DatingMinthara


local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("SetFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4766</ID>
          <Description>"Dating Karlach"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "f24c3f3e-7287-4908-84bf-ba314921f5ee" -- ORI_State_DatingKarlach


local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("SetFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4767</ID>
          <Description>"Dating"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "a3346d5b-c54b-4c73-bf18-0a2bf90c35da" -- ORI_State_Dating

local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("SetFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4788</ID>
          <Description>"Partnered With Gale"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "e008e20d-d642-42ed-9008-297b6273aa21" --Debug_SetReallyTagsToo

local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("SetFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4789</ID>
          <Description>"Partnered With Wyll"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "5db4c1b6-3c42-43ae-aa85-1844acbf5a1d" -- ORI_State_DatingWithWyll

local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("SetFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4784</ID>
          <Description>"Partnered With Asterion"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "30819c8d-b39d-42e7-acd1-2a8c2c309994" -- ORI_State_DatingAstarion


local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("SetFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4790</ID>
          <Description>"Partnered With Halsin"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "7b53fe60-bb16-48a9-ae5c-9bce1dfac1a9" -- ORI_State_DatingAstarion


local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("SetFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4791</ID>
          <Description>"Partnered With Halsin Secondary"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "6af0be74-d032-4a20-876a-11bab5f86db2" -- ORI_State_DatingAstarion


local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("SetFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4776</ID>
          <Description>"Partnered With Shadowheart"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "3808ae35-ad4e-465b-800b-63d32b77211e" -- ORI_State_DatingShadowheart


local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("SetFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4778</ID>
          <Description>"Partnered With Lae'zel"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "d169a786-6e56-4f0d-a2eb-33c48d8d1160" -- ORI_State_DatingLaezel


local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("SetFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4782</ID>
          <Description>"Partnered With Minthara"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "39ac48fa-b440-47e6-a436-6dc9b10058d8" -- ORI_State_DatingMinthara


local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("SetFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4780</ID>
          <Description>"Partnered With Karlach"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "d9ff60fa-0af9-45d7-99b4-bd7c3f80ed12" -- ORI_State_DatingKarlach


local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("SetFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4768</ID>
          <Description>"Clear Dating Gale"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "75d0e041-c16c-d089-6d89-64354fa4c9d9" --Debug_SetReallyTagsToo

local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("ClearFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4769</ID>
          <Description>"Clear Dating Wyll"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "f1520748-1d36-4500-9f8a-0da4207f8dd5" -- ORI_State_DatingWithWyll

local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("ClearFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4770</ID>
          <Description>"Clear Dating Astarion"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "ba298c56-26b6-4918-9bd4-616668d369d8" -- ORI_State_DatingAstarion


local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("ClearFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4771</ID>
          <Description>"Clear Dating Shadowheart"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "e87f1e21-a758-47ae-8c0e-9e715eb289b5" -- ORI_State_DatingShadowheart


local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("ClearFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4772</ID>
          <Description>"Clear Dating Lae'zel"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "86eaa84a-350b-401b-8b43-b53eeb534579" -- ORI_State_DatingLaezel


local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("ClearFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4773</ID>
          <Description>"Clear Dating Minthara"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "de1360cd-894b-40ea-95a7-1166d675d040" -- ORI_State_DatingMinthara


local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("ClearFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4775</ID>
          <Description>"Clear Dating Karlach"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "f24c3f3e-7287-4908-84bf-ba314921f5ee" -- ORI_State_DatingKarlach


local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("ClearFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4774</ID>
          <Description>"Clear Dating"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "a3346d5b-c54b-4c73-bf18-0a2bf90c35da" -- ORI_State_Dating

local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("ClearFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4786</ID>
          <Description>"Clear Partnered With Gale"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "e008e20d-d642-42ed-9008-297b6273aa21" --Debug_SetReallyTagsToo

local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("ClearFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4787</ID>
          <Description>"Clear Partnered With Wyll"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "5db4c1b6-3c42-43ae-aa85-1844acbf5a1d" -- ORI_State_DatingWithWyll

local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("ClearFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4785</ID>
          <Description>"Clear Partnered With Asterion"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "30819c8d-b39d-42e7-acd1-2a8c2c309994" -- ORI_State_DatingAstarion


local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("ClearFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4779</ID>
          <Description>"Clear Partnered Shadowheart"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "3808ae35-ad4e-465b-800b-63d32b77211e" -- ORI_State_DatingLaezel


local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("ClearFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4777</ID>
          <Description>"Clear Partnered Lae'zel"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "d169a786-6e56-4f0d-a2eb-33c48d8d1160" -- ORI_State_DatingLaezel


local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("ClearFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4783</ID>
          <Description>"Clear Partnered Minthara"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "39ac48fa-b440-47e6-a436-6dc9b10058d8" -- ORI_State_DatingMinthara


local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("ClearFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4781</ID>
          <Description>"Clear Partnered Karlach"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

local uuid = "d9ff60fa-0af9-45d7-99b4-bd7c3f80ed12" -- ORI_State_DatingKarlach


local cmdCall = getAddress("cmdCall")
local cmdArgs = getAddress("cmdArgs")
local cmdStr1 = getAddress("cmdStr1")
local cmdStr2 = getAddress("cmdStr2")

PrepareCall("GetHostCharacter")
executeCodeEx(0, nil, cmdCall)

local player = readPointer(cmdArgs + 0x08)
player = readString(player, 256, false)

writeString(cmdStr1, player)
writeBytes(cmdStr1 + #player, 0)

writeString(cmdStr2, uuid)
writeBytes(cmdStr2 + #uuid, 0)

PrepareCall("ClearFlag")
writePointer(cmdArgs + 0x08, cmdStr2)
writePointer(cmdArgs + 0x18, cmdStr1)
writeQword(cmdArgs + 0x28, 0)
writeQword(cmdArgs + 0x38, 1)
local result = executeCodeEx(0, nil, cmdCall)
print(result == 1 and "success" or "failure")
{$asm}

[DISABLE]
</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
How to i paste this into the other table? sorry im still not super familiar with cheat engine, and when should i use this, in act 2?

Wisnumurti
Novice Cheater
Novice Cheater
Posts: 18
Joined: Wed Apr 11, 2018 3:05 am
Reputation: 3

Re: z Baldur's Gate 3

Post by Wisnumurti »

Does anyone know Status Effects ids? I want to add weapon status into my favorite weapons, or add status effects to avatar

starelementpoke
What is cheating?
What is cheating?
Posts: 1
Joined: Sat Aug 26, 2023 1:21 pm
Reputation: 0

Re: z Baldur's Gate 3

Post by starelementpoke »

Anyone know much about the owlbear cub? Got 2 cutscenes with it in act two, hungry and helping it with an injury, and hasn't shown up again no matter how much I've slept. In act 3 at this point. Not sure what exactly i'd need to adjust to force them to showup

User avatar
themaoci
Cheater
Cheater
Posts: 49
Joined: Sat Feb 13, 2021 4:13 pm
Reputation: 46

Re: z Baldur's Gate 3

Post by themaoci »

And hello again i have updated my table but i dropped it in github(its easier to keep track of changes like that) i hope it wont trigger any rules in here there is no executables etc. there are images, CT file and readme

[Link]

Table is updated and should properly work with latest game version (tested on my steam game version) also on old saved game and it works properly

Item spawning could crash your game make sure to save a game after each successfull spawn

Companions Update:
Image

MagikMurlok
Expert Cheater
Expert Cheater
Posts: 53
Joined: Tue Dec 12, 2017 7:01 pm
Reputation: 2

Re: z Baldur's Gate 3

Post by MagikMurlok »

Sylvar wrote:
Sun Aug 20, 2023 11:28 pm
Okay so for those who have been posting questions about multiple romances, I wanted to share my experience.

There are stages in the romances, i.e. dating, partnered, past partners with etc.

If you have multiple IsDating flags set to = 1 then when one of those origin characters enters a partnership with you, the others who you were dating will give you some form of "I saw you're going steady with so and so" and break things off with you.

However, I have found a separate flag state of "--ORI_State_PartneredWith" and I was doing some testing, I set the flag state of this to = 1 with both Shadowheart and Astarion. So far they are both acting as if they are in a relationship with me, I.e. I can go up to each of them and ask them for a kiss, talk "about us" etc. and doing so with one does not seem to incur any disapproval with the other, even if we're partied up together. They seem to act as if they are oblivious to my partnership with the other.

I haven't noticed any major bugs with this test, the only thing I noticed is when Halsin asks about being with you and asks you to check with your partner, it gives you the option in dialogue to say you'll check with either Shadowheart or Astarion, though you only need to click one of the options to progress dialogue. However, you can go talk to and get consent from both of them to pursue Halsin.

The other thing I noticed is the drow twins seems to default to whomever you were partnered with first, if you try to pick the both option at Sharess' Caress. For me it acts as if Astarion is my partner even if I have Shadowheart in the party instead.

I have yet to complete either of their respective personal quests yet, nor have I gotten Shadowheart's romance scene in act 3, but figured I would share what my testing had resulted in so far!

Hope that this helps!
Wow! I really hope this gets made into a proper mod

redlunatic
Novice Cheater
Novice Cheater
Posts: 21
Joined: Fri Aug 11, 2023 2:39 pm
Reputation: 0

Re: z Baldur's Gate 3

Post by redlunatic »

Firepengu wrote:
Fri Aug 25, 2023 9:38 pm
GrowlingScarab7 wrote:
Fri Aug 25, 2023 8:56 pm
redlunatic wrote:
Fri Aug 25, 2023 8:48 pm

Does your journal entry still say Halsin was defeated? Did you have that quest already active somehow? I'm not that far yet. I am at the mountain pass, just about to heading into the Githyanki Creche.

For me, he resurrects, add to the party, starts off at level one, and zero dialogue.
so im still facing some glitches, but yes i had the quest active after talking to the guy in bed. right now though halsin seem to get stuck after walking to the lake. All my quests still think he's alive.
Just commenting to say I have the exact same issue. Was able to add him and resurrect him using the code, but once you get to the part where he asks you to meet you by the Lake you simply can not talk to him and progress it. I may have to rollback the patch. Please update me if you can find a way to talk to him at the lake. Thank you for the help!
Did you rollback yet, and is it working? If it does, could you send me a DM. Mine might be storage related. Those 3 steam depots I would think are at least 150GB.

Gameholix
What is cheating?
What is cheating?
Posts: 2
Joined: Sat Aug 26, 2023 1:55 pm
Reputation: 1

Re: z Baldur's Gate 3

Post by Gameholix »

Trip wrote:
Sat Aug 26, 2023 12:47 pm
omrictu wrote:
Sat Aug 26, 2023 12:42 pm
console commands broken? I loaded the saved game and still it keeps telling me to load saved game before activating?!
Here is what worked for me:
Load your game and CT script check the register commands: if it gives you the message to load a save uncheck it, hit F5 quicksave, reload that and hit register commands again.
I was able to get it working using these steps, thanks! However, it only worked when I clicked register while the game was loading (as soon as command list is populated).

darcyen
Novice Cheater
Novice Cheater
Posts: 17
Joined: Fri Jul 30, 2021 10:53 pm
Reputation: 2

Re: z Baldur's Gate 3

Post by darcyen »

in the latest game version I can't seem to change ability scores. When I save it only shows companions my character doesn't show up in the 4 available slots

PasDeBras
Noobzor
Noobzor
Posts: 5
Joined: Fri Mar 03, 2023 6:56 pm
Reputation: 1

Re: z Baldur's Gate 3

Post by PasDeBras »

themaoci wrote:
Sat Aug 26, 2023 1:41 pm
And hello again i have updated my table but i dropped it in github(its easier to keep track of changes like that) i hope it wont trigger any rules in here there is no executables etc. there are images, CT file and readme

[Link]

Table is updated and should properly work with latest game version (tested on my steam game version) also on old saved game and it works properly

Item spawning could crash your game make sure to save a game after each successfull spawn

Companions Update:
Image
Works like a charm, thanks a lot !
Thank god i didn't have to restart act 1 for a bag of dyes ;)

PeDaGaNG
Expert Cheater
Expert Cheater
Posts: 111
Joined: Sun Nov 22, 2020 1:16 pm
Reputation: 24

Re: z Baldur's Gate 3

Post by PeDaGaNG »

Patch 2 around the corner. Another round of Table Update :o

Image
[Link]
Last edited by PeDaGaNG on Sat Aug 26, 2023 2:55 pm, edited 2 times in total.

Zanzer
RCE Fanatics
RCE Fanatics
Posts: 1104
Joined: Fri Mar 03, 2017 10:48 pm
Reputation: 3571

Re: z Baldur's Gate 3

Post by Zanzer »

Sounds like the people having problems are either due to the mods they have installed or maybe the game behaves differently when you're in act 3. Not a clue. So the only thing I can possibly do to help you all is provide a pointer to the command count.

Now you can see when the game has loaded all of the commands in memory and when you should click the Register Commands button.

At this time, it shows that there are 1263 commands. So when that value populates, register the commands!

Best of luck to you all.
Attachments
bg3.CT
--- Game v4.1.1.3669438 --- Table v9 ---
(520.37 KiB) Downloaded 124562 times
Last edited by Zanzer on Sat Aug 26, 2023 4:06 pm, edited 1 time in total.

User avatar
Noway3
Expert Cheater
Expert Cheater
Posts: 117
Joined: Sat Aug 12, 2023 12:20 pm
Reputation: 151

Re: z Baldur's Gate 3

Post by Noway3 »

  • Update: 2024-02-18:
    1. Data updates: I updated the script and generated data for game version "4.1.1.4763283" that includes "Patch6" stuff.
  • Update: 2024-01-18: I wish you a Happy New Year 2024!
    1. Data updates:
      • I updated the script and generated new data files for the BG3 game version "4.1.1.4494476" (2024-01-15), including up to "Patch5_Hotfix6" stuff.
    2. Improvements:
      • Added logic to fill empty stats columns from their parent templates, so you don't need to trackback the stats description (for example).
      • Added logic to remove empty GameObjects columns.
  • Update: 2023-12-18:
    1. Data updates:
      • I updated the script and generated data up to game version "4.1.1.4216792", including the "Patch5_Hotfix2" stuff.
    2. Bug Fixes:
      • Some important game elements were missing: items, passives, statuses among other and this is now corrected.
        It was due to a recent change in game "pak" directory structure that I did not noticed earlier.
      • Some translations that where also missing in Stats records have been added now.
    3. Improvements:
      • "Merged" and "Templates" objects are now consolidated together into single "GameObjects" files.
        This is much more closer to the original game structure and make it easier to find an object within a single file.
      • Added all GameObjects from "LevelTemplates" and "Levels" on top of "RootTemplates" and "TimelineTemplates".
        These are, to my understanding, objects that are available only in specific, region, level or area of the game.
      • There are columns named "LevelName" and "RootFolder" in the sheets that will hint you where, in-game, these objects can be found.
      • More globally, the script is now scanning much more thoroughly across game data for those bits and pieces that have been missed so far!
    4. Please let me know if something looks to be still missing or wrong!
  • Older updates:
    Older updates:
    [*] Update: 2023-11-04:
    1. I updated the script and generated data up to game version Patch #4 - v4.1.1.3905231
    [*] Update: 2023-10-14:
    1. I updated the script and generated data up to game version Patch3_Hotfix3
    2. I optimized the output file generation to eliminate empty columns an minimize empty cells in all formats.
    3. I fixed some minor cosmetics issues in the excel sheets
    [*] Update: 2023-10-05:
    1. I re-organized the files and data a bit differently, See the update description further down this post
    2. more python scripts updates...
    [*] Update: 2023-10-01:
    1. Updated data to games version Patch3
    2. in "Templates" files, I have recursively filled in all information from parent templates for each object.
    3. added merged-items and merged-characters to have smaller files with those more interesting stuff extracted from merged-all
    4. reworked/updated the python script...
    [*] Update: 2023-09-22:
    1. New feature: "Merged" objects (array, dict and SQLite database)

      The "Merged" database is consolidated from all _merged.lsf data files extracted from the game. These where off the radar until now.
      It is supposed, to my knowledge, to be a comprehensive list of all 'character', 'trigger', 'item', 'scenery', 'LevelTemplate' and other FX effects.
      for example: if you are looking for a specific character or a specific item, search for that name in the "DisplayNameEnglish" column. You should then find the MapKey of it (e.g. to summon it) and the UUID of the template (to spawn an instance of it).

      WARNING: these files are relatively BIG, around 300 MB, they contains a total of 475,746 game objects!

      ALSO: It is still work in progress: I am working on:
      (1) filling in the empty cells recursively from their template values to make it easier to sort out and browse thru .
      And (2) I will also split it to make it easier to download and browse, starting with 'character' (4126 rows) and 'item' list (54408 rows) which seems the most interesting for us (the other stuff could be of interest for modders)
    [*] Update: 2023-09-16:
    1. Added logic to better completely eliminate duplicates (from game patches)
    2. Added logic to put "important/useful" columns in front, excel and json files.
    [*] Update: 2023-09-15:
    1. Fixed missing English translations (mainly in templates files)
    2. Added Flags and Tags files
    3. Added TimelineTemplates in addition to RootTemplates
    4. Updated the code and data up to game version "Patch2 / Hotfix2"
    5. Re-organized files on a google drive share (see new links in this post)
    6. Published the python script source code
    7. Added SQLite3 output format (for future use)
    [*] Update: 2023-09-01:

    I have refreshed all the JSON and the EXCEL sheets to include Patch2 updates for all items, spells, etc ... and translations.
      [*] Update: 2023-08-28:

      I have updated all the JSON and the EXCEL sheets with a "fresh script run" today. With these changes:
      1. Added all RootTemplates records (.xlsx and _dict.json))
        • In these files I have gathered the records from "RootTemplates" files found in the 'UnpackedData' directory tree.
        • All are there (367792 rows) and, as a result, it is quite a cumbersome list. I suggest to filter it with "Type = item" to get the essentials:
        • You will find there, among other, "skinned" weapons and armors (like the Nightsong outfit), books, alchemy, food, weapons, quests and other more mundane stuff.
      2. Sorted the columns in the excel sheets
        • I have moved the most "interesting one" to left so you have then on screen at first sight (English names, UUID, ..)
      3. Corrected few bugs in my script that missed certain type of translations.
    Pitch and details
    I have created a script to gather all the stats of things such as Armors, Characters, Object, Passives, Spells, Statuses, Tags, Flags, Templates, Weapons and outputs them into JSON, Excel files and SQLite database .

    With these files, you should be able to query for any item, spell, boost, flag, tag, status that you may be looking for and find the corresponding UUID to use in the cheat tables.

    Here is the link to the google drive directory, with all the files: [Link]

    It is organized with "Json", "Excel" and "SQLite" and "Script" directories:
    :!: Note: the JSON, Excel or SQLite version contains exactly the same data in different formats; choose the format that fits your needs or your preference.

    The "Stats" files contains information about: "Armors", "Weapons", "Objects", "Passives", "Spells", "Statuses", "Characters", "CriticalHitTypes", "Interrupts"

    The "GameObjects" files contain information about: "item", "character", "LevelTemplate", "" --- and other environmental stuff
    • Json Files (Array or Dict format):
      • Flags, Tags
      • Stats_*: Stats file --- with all data from the "Stats" game directories files
      • GameObjects_*: -GameObjects files -- with all data from "RootTemplates", "TimelineTemplates", "LevelTemplates" and "Levels" game directories files
    • Excel files:
      • Flags.xlsx, Tags.xlsx
      • Stats.xlsx: one sheet per type of Stats
      • GameObjects_All.xlsx - sheets: "item", "character", "scenery" --- and other environmental stuff
      • GameObjects_Items_Characters.xlsx - sheets: "item" and "character" only (smaller file)
    • SQLite files:
      • bg3data-raw.sqlite3: Stats Tables (one Table per type of stats) + Flags and Tags tables.
      • bg3data-gameobjects.sqlite3: One single table with all objects types.
      • bg3data-gameobjects-split.sqlite3: Multiple tables split per object types.
      • bg3data-gameobjects-small.sqlite3: The two most wanted tables only: Characters and Items
      --> The Python script, that generates all these files, is also shared on the google drive, in the "Script" directory
    My thanks again (and again) and credits to Zanzer, EvenLess and all the others in this forum that heavily inspired my own production here.
    ----------------------------------------------------------------------

    You can view JSON files in any text viewer but I suggest to use a specialized viewer, like "Datroit JSON Viewer" (available on datroit_dot_com).
    MS Visual Studio Code is also fine for viewing and searching inside JSON files.

    While testing my script, I have found that they are sometimes multiple instances of the same object in different files.

    Does anybody knows where I can find the proper "load order" of "unpacked _data" to ensure that I am taking the latest update of an object only?
    This is the "load order" that I use in my script for now -- can someone check if that's right, please?:
    ROOT_FOLDERS_L1: List[str] = [ # List of first level root folders directory (add new game Patch/Version here)
    "Shared", "Gustav",
    "Patch0_Hotfix1", "Patch0_Hotfix2", "Patch0_Hotfix3", "Patch0_Hotfix4",
    "Patch1",
    "Patch2", "Patch2_Hotfix1", "Patch2_Hotfix2",
    "Patch3"
    ]

    ROOT_FOLDERS_L2: List[str] = [ # List of second level root folders directory
    "Public/Shared",
    "Public/SharedDev",
    "Public/Gustav",
    "Public/GustavDev"
    ]
    Here are some example of what's in those files:
    Example of spell details found in Spell_dict.json
    "Shout_MAG_Critical_ArcanicCritical": {
    "EntryName": "Shout_MAG_Critical_ArcanicCritical",
    "EntryType": "SpellData",
    "SpellType": "Shout",
    "EntryUsing": "Shout_FalseLife",
    "SpellSchool": "Divination",
    "SpellProperties": "ApplyStatus(MAG_CRITICAL_ARCANIC_CRITICAL,100, 1)",
    "Icon": "Action_Monster_Orin_DeathbringerAssault",
    "DisplayName": "hcb4c06ebgeb5dg4b0dgb4d3gce925d8b8833;2",
    "DisplayName_English": "Arcane Critical",
    "Description": "h32772a4agf2f6g43fagaa4fgecb011feb623;3",
    "Description_English": "Magically augment your ability to annihilate your foes with powerful attacks. The number you need to <LSTag Tooltip=\"AttackRoll\">roll</LSTag> a <LSTag Tooltip=\"CriticalHit\">Critical Hit</LSTag> while attacking is reduced by 2. This effect can stack.",
    "DescriptionParams": "1",
    "TooltipStatusApply": "ApplyStatus(MAG_CRITICAL_ARCANIC_CRITICAL,100, 1)",
    "UseCosts": "BonusActionPoint:1;SpellSlotsGroup:1:1:1",
    "VerbalIntent": "Buff",
    "root_folder": "Patch1/Public/GustavDev"
    },
    Example of lookup for "Legendary" in file "Armor_dict.json" with Datroit JSON viewer:
    Image

    Another example of browsing JSON file with MS Visual Studio Code:
    Image

    Please let me know if something looks to be missing or wrong!

    And don't forget to enjoy the game!
    Last edited by Noway3 on Sun Feb 18, 2024 7:32 pm, edited 24 times in total.

    Aeill
    What is cheating?
    What is cheating?
    Posts: 2
    Joined: Sat Aug 26, 2023 2:52 pm
    Reputation: 0

    Re: z Baldur's Gate 3

    Post by Aeill »

    Gameholix wrote:
    Sat Aug 26, 2023 2:09 pm
    Trip wrote:
    Sat Aug 26, 2023 12:47 pm
    omrictu wrote:
    Sat Aug 26, 2023 12:42 pm
    console commands broken? I loaded the saved game and still it keeps telling me to load saved game before activating?!
    Here is what worked for me:
    Load your game and CT script check the register commands: if it gives you the message to load a save uncheck it, hit F5 quicksave, reload that and hit register commands again.
    I was able to get it working using these steps, thanks! However, it only worked when I clicked register while the game was loading (as soon as command list is populated).
    I need some help... After multiples tentative i'm not able to make the register command working.. anyone have an idea how i can make it work? all other script work except the one i want, register command... if it can help, when i right clic on register command i have a message: lua error in the script at line 2...here what i see when i clic on that message:


    [ENABLE]
    {$lua}
    if syntaxcheck then return end
    local commands = readPointer("cmdList")
    if commands == 0 then
    print("plaese load a saved game first")
    return
    end
    local size = readInteger(commands + 0x2C)
    if size <= 0 then
    print("please load a saved game first")
    return
    elseif size > 3000 then
    size = 3000 -- just in case
    end
    commands = readPointer(commands + 0x20)
    COMMAND_SELF = {}
    for i = 1, size do
    local addr = readPointer(commands)
    local name = readPointer(addr + 0x08)
    name = readString(name, 256, false)
    local self = readPointer(addr + 0x40)
    addr = readPointer(addr + 0x48)
    COMMAND_SELF[name] = self
    if addr > 0x1000 then
    unregisterSymbol(name)
    registerSymbol(name, addr, true)
    end
    commands = commands + 0x08
    end


    thanks for your help!!!
    Last edited by Aeill on Sat Aug 26, 2023 3:11 pm, edited 1 time in total.

    Post Reply

    Who is online

    Users browsing this forum: cun1vip, Google [Bot], Google Adsense [Bot], SemrushBot, shawkuy, Skyler, xduduhao, yjcchaso, ZoanChrome