z Baldur's Gate 3

Upload your cheat tables here (No requests)
ilw
Noobzor
Noobzor
Posts: 5
Joined: Sun Jul 28, 2019 6:42 am
Reputation: 1

Re: z Baldur's Gate 3

Post by ilw »

jxl wrote:
Tue Sep 19, 2023 11:56 am
Does anyone know, is it possible to edit your character's max health? The only way to change that i can see is to 'add 50 max health' from the main Zanzer table. But i'm looking for a little more granularity than that (even the ability to lower max health).

Would love it if anyone knows or has advice.
[Link]
Edit the table bg3.CT, then load it to CheatEngine

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
Last edited by ilw on Tue Sep 19, 2023 12:44 pm, edited 1 time in total.

od1n50n
What is cheating?
What is cheating?
Posts: 1
Joined: Tue Sep 19, 2023 12:08 pm
Reputation: 0

Re: z Baldur's Gate 3

Post by od1n50n »

Hi, this is my second playthrough, so to not repeat the last first one, I killed Helsin(because I thought he was going to go deff in the Druid Grove for some reason lol).
I just realized I can skip the prison part and release him from the prison later, but he's already dead and the save before his death is done quite a while ago.

What I want and what I did.

What I did:
Found a mod to resurrect any npcs and resurrected Helsin, but he's "red" for me, I can't even start a dialog with him.

What I want to do:
I want to change the relationship with him through CT, but in this case I need to choose a companion to do this.

So I need any help to raise the attitude with Halsin, if it's possible and will work without selecting him or adding him to the group.

FearLessVenom
What is cheating?
What is cheating?
Posts: 1
Joined: Tue Sep 19, 2023 1:05 pm
Reputation: 1

Re: z Baldur's Gate 3

Post by FearLessVenom »

Acleacius wrote:
Mon Sep 18, 2023 3:16 am
Thanks again for all your work and sharing! 8-)

patch version 4.1.1.3700362 seems to cause some issues or maybe some conflict with a mod?
looks like there was a small download from Steam today, Table was working 9/16/23 .
what happens is when trying to Add Gold (1000) it crashes after about 10 times.
maybe I was doing it too fast or something, basically it could be something on my end, but not sure what.

Thanks for any tips or help.

Edit: I was able to get 2000 and use Search with another to add more, without crashing.
I had the same issue with a crash, but I just edited the script to add 50k gold instead 1000, and it worked fine.

HenryEx
Cheater
Cheater
Posts: 46
Joined: Thu Aug 02, 2018 10:31 am
Reputation: 64

Re: z Baldur's Gate 3

Post by HenryEx »

I slightly modified the Register Commands script to dump all possible console commands to a file (in your table's folder), since i didn't find any comprehensive list of available commands online. And specifically something that included the possible / neccessary parameters and arguments for the game's console commands.

This relies on having the "Console Commands" script active, and like "Register Commands" it only works when you've loaded a save.

Pastebin:
Or copy & paste into CE directly:

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>9999</ID>
      <Description>"Dump Commands List"</Description>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end
local commands = readPointer("cmdList")
if not commands or commands == 0 then
  print("please load a saved game first")
  assert(false,"can't activate yet")
  return
end
local size = readInteger(commands + 0x2C)
if size &lt;= 0 then
  print("please load a saved game first")
  assert(false,"can't activate yet")
  return
elseif size &gt; 3000 then
  size = 3000 -- just in case
end
commands = readPointer(commands + 0x20)
if not commands or commands == 0 then
  print("please load a saved game first")
  assert(false,"can't activate yet")
  return
end

local paramtypes = {
  "int",
  nil,
  "float",
  "strVar",
  "strObj",
  "strChar",
  "strItem"
}
local COMMAND_LIST = "Index;Command Name\n"
--local COMMAND_LIST2 = "Index;Table Address;Cmd Address;Name;# of Arguments\n"
for i = 1, size do
  local addr = readPointer(commands)
  if addr and addr ~= 0 then
    local name = readPointer(addr + 0x08)
    if name and name ~= 0 then
      name = readString(name, 256, false)
      if type(name) == "string" then
        local self = readPointer(addr + 0x40)
        local faddr = readPointer(addr + 0x48)
        local numParam = readInteger(addr + 0x18)
        local argtable = readPointer(addr + 0x10)
        local cmdargs = ""
        for j = 1, numParam do
          local argcur = (j - 1) * 0x10 + argtable
          local argname = readPointer(argcur)
          local argtype = readInteger(argcur + 0x08)
          local isResult = readInteger(argcur + 0x0C)
          argtype = paramtypes[argtype] or "type"..tostring(argtype)
          if isResult ~= 1 then cmdargs = cmdargs.."-&gt; " end
          cmdargs = cmdargs..argtype.." "..readString(argname, 256, false)
          if j ~= numParam then cmdargs = cmdargs..", " end
        end
        COMMAND_LIST = COMMAND_LIST..string.format("%d;%s ( %s )\n", i, name, cmdargs)
--        COMMAND_LIST2 = COMMAND_LIST2..string.format("%d;%X;%X;%s;%d\n", i, commands, addr, name, numParam)
      end
    end
  end
  commands = commands + 0x08
end

--print(COMMAND_LIST)

local file = io.output('bg3_commandslist.csv')
io.write(COMMAND_LIST)
io.close(file)

{$asm}
[DISABLE]

</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Will end up as "bg3_commandslist.csv" at your table's location.
edit: i noted a few common parameter types, most of them are strings of some kind noted with "str" in the prefix, most of them are denoted by "typeXX" though, check the parameter name to find out what type it is.
Also, result parameters are denoted by a -> arrow. Like this:
IntegerSum ( int A, int B, -> int Sum )
This has 3 arguments, the first and second are what you wanna add up, and the result ends up in argument 3

EvenLess
Expert Cheater
Expert Cheater
Posts: 181
Joined: Fri Aug 04, 2023 10:59 pm
Reputation: 207

Re: z Baldur's Gate 3

Post by EvenLess »

Noway3 wrote:
Sat Sep 16, 2023 4:40 pm
Another small update to viewtopic.php?p=311868#p311868
  • Update: 2023-09-16:
    1. Added logic to better completely eliminate duplicates (from game patch updates).
    2. Added logic to put "most useful" columns in front (excel and json files).
    3. Added back the "All_Stats.xlsx" worksheet that was reported missing.
Unfortunately not all GameObjects (Items, Characters etc.) are stored in the RootTemplates or TimelineTemplates. I found that several items are only stored in _merged.lsx files.

I updated my PowerShell script to get ALL *.lsx files and then go through every GameObjects entry in each of those files (of which there are over 100k).
The script is currently running on my machine right now.
EDIT: 12+ hours later and it's still running :shock:
EDIT: 22+ hours later I stopped the script. Definitely either something wrong in my script, or simply way too much data to dig through quickly.

Also, one of the annoyances with the Templates, is that they don't always include the DisplayName, as this is inherited from the ParentTemplate. In one of my first/previous scripts I tried to resolve this writing a function that I could call recursively to get the "missing" information. However, this approach is extremely slow. I'm considering taking a look at it again, or perhaps instead just use joins/subselects in the SQL (perhaps create a view using this), so it's possible to search all the entries.

Anyway, here's my changed PowerShell script that you can use as reference, if you want. As I mentioned, it's currently running, and it's the first run, so hopefully it actually works as intended :D

Code: Select all

$Stopwatch = New-Object -TypeName System.Diagnostics.Stopwatch
$Stopwatch.Start()

$MyDocuments        = [System.IO.FileInfo][System.Environment]::GetFolderPath('MyDocuments')
$CheatTableFolder   = [System.IO.FileInfo]"$($MyDocuments.FullName)\My Cheat Tables\bg3"
$UnpackedDataFolder = [System.IO.FileInfo]'D:\BG3-Tools\BG3-Modders-Multitool\UnpackedData'
$LocalizationPath   = [System.IO.FileInfo]"$($UnpackedDataFolder.FullName)\English\Localization\English\english.loca.xml"
$LocalizationData   = New-Object -TypeName System.Xml.XmlDocument
$LocalizationData.PreserveWhitespace = $true
$LocalizationData.Load($LocalizationPath.FullName)

$RootFolders = @(
    [System.IO.FileInfo]"$($UnpackedDataFolder)\Shared",
    [System.IO.FileInfo]"$($UnpackedDataFolder)\Gustav"
)
Get-ChildItem -Directory -Filter 'Patch*' -Path $UnpackedDataFolder | ForEach-Object {
    $RootFolders += [System.IO.FileInfo]$_.FullName
}
#$Files = Get-ChildItem -Recurse -File -Filter *.lsx -Path $RootFolders
$Objects    = @()
foreach ($f in $Files) {
    $XmlDocument = New-Object -TypeName System.Xml.XmlDocument
    $XmlDocument.PreserveWhitespace = $true
    $XmlDocument.Load($f.FullName)
    $GameObjects = $XmlDocument.SelectNodes("//node[@id='GameObjects']")
    if ($GameObjects.Count -eq 0) { continue }
    foreach ($g in $GameObjects) {
        $Object = [ordered]@{}

        $Attributes = $GameObjects.SelectNodes("./attribute")
        if ($Attributes.Count -eq 0) { continue }
        foreach ($a in $Attributes) {
            $Key = $a.id
            $Value = $a.value
            $Type = $a.type
            if ($Type -eq 'TranslatedString') {
                $Value = $a.handle
                $Object."$($Key)English" = $LocalizationData.SelectSingleNode("//content[@contentuid='$($Value)']").'#text'
            }
            $Object."$($Key)" = $Value
        }

        $Equipment = $GameObjects.SelectNodes(".//node[@id='Equipment']")
        if ($Equipment.Count -gt 0) {

            $Attributes = $Equipment.SelectNodes("./attribute")
            $EquipmentObject = [ordered]@{}
            foreach ($a in $Attributes) {
                $Key = $a.id
                $Value = $a.value
                $Type = $a.type
                if ($Type -eq 'TranslatedString') {
                    $Value = $a.handle
                    $EquipmentObject."$($Key)English" = $LocalizationData.SelectSingleNode("//content[@contentuid='$($Value)']").'#text'
                }

                $Object."Equipment_$($Key)" = $Value
            }

            $Attributes = $Equipment.SelectNodes(".//node[@id='Slot']//attribute[@id='Object']")
            if ($Attributes.Count -gt 0) {
                $Object.Equipment_Slot = $Attributes.value
            }
        }

        $Attributes = $GameObjects.SelectNodes(".//node[@id='Tags']//node[@id='Tag']/attribute[@id='Object']")
        if ($Attributes.Count -gt 0) {
            $Object.Tags = $Attributes.value
        }

        $Attributes = $GameObjects.SelectNodes(".//node[@id='PrefabChildren']/attribute[@id='Object']")
        if ($Attributes.Count -gt 0) {
            $Object.PrefabChildren = $Attributes.value
        }

        $Object.UnpackedPath = $f.FullName.Replace($UnpackedDataFolder.FullName, '')
        $Objects += New-Object -TypeName PSCustomObject -Property $Object
    }
}
$Timestamp = Get-Date -Format FileDateTime
$Objects | ConvertTo-Json -Depth 5 | Out-File -Force -Encoding utf8 -FilePath "$($CheatTableFolder.FullName)\Templates_$($Timestamp).json"

$Stopwatch.Stop()
$Stopwatch.Elapsed
Last edited by EvenLess on Wed Sep 20, 2023 4:13 pm, edited 2 times in total.

dancarbr
What is cheating?
What is cheating?
Posts: 2
Joined: Tue Sep 19, 2023 7:40 pm
Reputation: 0

Re: z Baldur's Gate 3

Post by dancarbr »

Hi Folks

I tried to use this table on BG3 v 4.1.1.3700326 and doesnt worked. Any had the same problem? There any bypass ? Thank you

EvenLess
Expert Cheater
Expert Cheater
Posts: 181
Joined: Fri Aug 04, 2023 10:59 pm
Reputation: 207

Re: z Baldur's Gate 3

Post by EvenLess »

dancarbr wrote:
Tue Sep 19, 2023 7:43 pm
Hi Folks

I tried to use this table on BG3 v 4.1.1.3700326 and doesnt worked. Any had the same problem? There any bypass ? Thank you
I've never had an issue with Zanzer's table. Only issue is timing the activation of Console/Register Commands.

Get the table I have added in this post. It's Zanzer's v9 table, with my autoloaded added (script that you load when the table is loaded). Just ensure the table is opened before starting BG3, and that you accepted to run the script when opening the table. Then it will automatically attach/open the game process when the game is launched, and automatically load the console commands, when the game have loaded far enough for it to be possible, and lastly, it will automatically register commands when the save game is loaded enough for it to be possible.

As I said, I've never had an issue, as long as I followed those steps.

hXc Mike
Noobzor
Noobzor
Posts: 14
Joined: Tue Aug 08, 2023 6:37 am
Reputation: 2

Re: z Baldur's Gate 3

Post by hXc Mike »

anyone else having an issue with autoscripts not loading after the first time you open a table in CE? was having the issue with evenless's bgcommander, and then again with themaoci's autoloader table variant. i'll try and initialize the scripts via the menu and it comes up with a blank text box.
i'm opening CE, loading the table, then running the game. the first time i load it, i see the "do you wish to run lua script..." dialog, but the next day, i start it up again, and it doesn't trigger. i end up having to add in zanzerv9 base version to merge so i can activate the console/register scripts manually.

edit: tbf, the other contributing factor is i usually copypasta items from other tables as well that i've pulled over the last several weeks, that aren't always repeated in the table updates (e.g. the clear illithid tag scripts)

dusk081
What is cheating?
What is cheating?
Posts: 1
Joined: Wed Sep 20, 2023 1:15 am
Reputation: 0

Re: z Baldur's Gate 3

Post by dusk081 »

I failed to make Astarion eat the astral tadpole, forget it and now i want him to eat it but dont want to reload and lose 12 hours of game
how to change that flag and make him eat the astral tadpole?
nvm, find it: "9c5367df-18c8-4450-9156-b818b9b94975", --GLO_Daisy_State_AstralIndividualAccepted

jxl
Noobzor
Noobzor
Posts: 5
Joined: Sun Aug 13, 2023 3:24 pm
Reputation: 0

Re: z Baldur's Gate 3

Post by jxl »

ilw wrote:
Tue Sep 19, 2023 12:34 pm
jxl wrote:
Tue Sep 19, 2023 11:56 am
Does anyone know, is it possible to edit your character's max health? The only way to change that i can see is to 'add 50 max health' from the main Zanzer table. But i'm looking for a little more granularity than that (even the ability to lower max health).

Would love it if anyone knows or has advice.
[Link]
Edit the table bg3.CT, then load it to CheatEngine
Worked perfectly. Tyty.

yggdrizelda
Noobzor
Noobzor
Posts: 9
Joined: Fri Aug 11, 2023 9:52 am
Reputation: 0

Re: z Baldur's Gate 3

Post by yggdrizelda »

Good day,
Does anyone happen to know the UUID of Arfur Gregorio's hat?
or is there one that looks like this available to the player? too bad npc's don't actually drop what they appear to be wearing...

EvenLess
Expert Cheater
Expert Cheater
Posts: 181
Joined: Fri Aug 04, 2023 10:59 pm
Reputation: 207

Re: z Baldur's Gate 3

Post by EvenLess »

hXc Mike wrote:
Tue Sep 19, 2023 11:46 pm
anyone else having an issue with autoscripts not loading after the first time you open a table in CE? was having the issue with evenless's bgcommander, and then again with themaoci's autoloader table variant. i'll try and initialize the scripts via the menu and it comes up with a blank text box.
i'm opening CE, loading the table, then running the game. the first time i load it, i see the "do you wish to run lua script..." dialog, but the next day, i start it up again, and it doesn't trigger. i end up having to add in zanzerv9 base version to merge so i can activate the console/register scripts manually.

edit: tbf, the other contributing factor is i usually copypasta items from other tables as well that i've pulled over the last several weeks, that aren't always repeated in the table updates (e.g. the clear illithid tag scripts)
When you are asked to execute the lua script, are you changing the selection from "Only when signed, else ask"?
I am trying to understand the reason why the script only seems to be executing the first time for you.

As for activating them manually. The "Console Commands" and "Register Commands" are Zanzers code, unchanged. The ONLY change in regards to those, are the CheatEntry ID in the actual XML. These IDs are what is used as reference for automatically enabling the "Console Commands" and "Register Commands" MemoryRecords. What I'm saying is that they should work the same, as when using Zanzer's original table, i.e. you should be able to enable/disable those MemoryRecords without having to load Zanzer's original table and do it from there. That is, the CT Lua Script will disable them automatically, if the attached/opened process isn't the same as the actual (detected/found) process.

Finally, you mention you're pasting MemoryRecords/CheatEntries from other tables, and merging other tables into the autoloader ones.
I have experienced, when merging other tables, that it sometimes remove the playerCharactersPtr from Zanzer's original table, that is required (see screenshot below).

The next thing, when pasting CheatEntries from other tables, I don't know if that could cause conflicts with the Cheat ID's. I am assuming that CE will automatically re-order the ID's to avoid conflict. If my assumption is correct, that might break the CT Lua Scripts ID references (again, see screenshot below). You could try and edit the CT in Notepad++ (or basically any text editor) and see if the items I've marked in the screenshot below, are as expected. If the ID's are changed, then you can update the bg3setting entries to the correct ID's

Image

DandelionRoses
Noobzor
Noobzor
Posts: 5
Joined: Sun Sep 17, 2023 7:18 am
Reputation: 0

Re: z Baldur's Gate 3

Post by DandelionRoses »

Noway3 wrote:
Mon Sep 18, 2023 8:05 pm
Hi,
I have found the quest and the corresponding "MapKey"'s. You have tried the "TemplateName" which are, as the name says, the template on which the object is based. The MapKey is the UUID you have to use to spawn the object.
Unfortunately, I could not spawn any of these items. I suspect that this is because I don't have that quest yet in my save.
May be you will have more luck with these?
Here are the Object's internal Names and Mapkeys:

Code: Select all

S_LOW_CarrionVictimNote_001 = "3561618f-33e0-4305-af09-02b1a3d18a19"
S_LOW_CarrionVictimNote_002 = "17107d4e-1330-422c-bd3b-1d0b16214dd7"
S_LOW_CarrionThreat         = "2ae36508-b040-4292-843d-b5939285435e"
S_LOW_CarrionJarChest       = "a3c40b6b-220c-42e2-9a04-bfdcf724c133"
S_LOW_CarrionJarDiagrams    = "c8a2228a-adff-4fcd-b60a-81f81c033e2f"
I did find that last UUID for the book 'Funerary Jar Form and Function' aka CarrionJarDiagrams, but it failed to spawn for me as well. I tried all of those UUIDs and none of them worked, unfortunately. :/ (I mean, I *could* just kill Thrumbo but that seems rude.)

I think it must be because the item spawn script might actually be a template spawn script and then, because most 'templates' are just the items themselves, it spawns correctly? But because these specific ones are something on top of a template, they only spawn the template item?

For example, Elixir of Heroism has a UUID from it's TemplateID that is "bb27cc17-5af9-4d53-818b-3e620f3f59f2", which successfully spawns an Elixir of Heroism, but doesn't have any other UUID associated with it. (And the the script is called TemplateAddToPlayer so. Who knows.)

tmjoker
What is cheating?
What is cheating?
Posts: 3
Joined: Mon Sep 18, 2023 4:12 pm
Reputation: 0

Re: z Baldur's Gate 3

Post by tmjoker »

Hey Guys
I wanna a little help here, and I don't know if it's a thing covered by scripts or files
I would like to get some NPCs precise appearance configuration (Alfira, Lakrissa for instance)
But I don't know how to do that by script, or if there is a file I can look for these informations
These characters use the common character creation features, so supposedly it should have a place where this configuration can be acquired from, may from file, maybe from memory of "selected actor" or something like that?
Thank you in advance

Nono66300
What is cheating?
What is cheating?
Posts: 2
Joined: Wed Sep 20, 2023 2:15 pm
Reputation: 0

Re: z Baldur's Gate 3

Post by Nono66300 »

Hi
I'm front of nightsong, but shadowheart is not with me ( she died act 1, not in my party ). And i would like to kill nightsong, but i cant without shadowheart. i've try to spawn her with CE script, but without succes.
Can someone help me ? please

Post Reply