Far Cry 6 [Engine: Dunia 2]

Upload your cheat tables here (No requests)
Post Reply
User avatar
SunBeam
Administration
Administration
Posts: 4932
Joined: Sun Feb 04, 2018 7:16 pm
Reputation: 4630

Far Cry 6 [Engine: Dunia 2]

Post by SunBeam »

[ 28 Oct 21 - Hit #2 ]

I think it's about time I posted the updated table :)

Once you activate the [ Enable ] script, these will show up:
  • Infinite Health (+Kill Fall Blur)
    Grants you unlimited health and kills the blur + orientation towards ground when you fall from high spots. Ported over from New Dawn.
  • Infinite Stamina
    Grants you unlimited stamina. Player only. Ported over from New Dawn.
  • Infinite Clip Ammo
    Grants you unlimited clip ammo. Player only. Ported over from New Dawn.
  • No Sway
    Disables the weapon sway when doing right-click zooming. Player only. Ported over from New Dawn.
  • No Spread
    Super accuracy, in other words. Player only. Ported over from New Dawn.
  • No Weapon Overheat
    Disables overheating of weapons and their attachments (e.g.: silencer). Player only.
  • Stealth
    Kills the detection meter for Human AI. Animals, cameras, etc. will still detect you.
  • Instant [E] Hold Action
    Filtered. Script sets the time it takes for a QTE (quick time event) to occur to 0 (e.g.: E-key timer when disabling alarms).
  • Disable 'Out Of Bounds' Check
    You can now go outside boundary areas.
  • Super Speed
    Adjust the speed multiplier on the orange line. The other line (gray one) is for display only.
  • Super Jump
    Adjust the jump multiplier on the orange line. The other two (gray ones) are for display only.
  • Give Resource
    The highlight of this table. I will explain details about this script in a separate post, here: viewtopic.php?p=217668#p217668. Before asking "how does the script work?" please read the post! You've been warned.
  • Zooming (Credits: cfemen)
    Asked for cfemen's approval to include his script (viewtopic.php?p=216480#p216480) in my table. I love to play sniper, so that's that :)
  • Debug section
    Updated some stuff in there, maybe you find it useful for your endeavors. Left in also some scripts with which I scanned memory to find the archetypes for 'Give Resource' script.
FarCry6.CT
1.1
(61.05 KiB) Downloaded 7269 times

BR,
Sun

[ 07 Oct 21 - Hit #1 ]

Game Name: Far Cry 6
Game Vendor: Ubisoft Connect
Game Version: 1.1.0
Game Process: FarCry6.exe [ FC_m64d3d12.dll ]
Game File Version: 1.0.0.0

Image

Hello folks.

Just so I'm not late to the party this time around - see viewtopic.php?f=4&t=14257 - here we go. I'm going to gradually outline the information and why you (might) need it. With explanations. Whoever wants to skip to the table, please don't. I won't be lenient when you start asking stupid questions cuz you couldn't be arsed to read T_T.

* * *

Norway-_-1999 posted a while ago a tool called "Script Loader" for Far Cry 5 and Far Cry New Dawn. He was kind enough to share some information with me, such as how he was able to use the game's Lua Engine (Domino) to run Lua commands/scripts, how to dump the Lua globals and other insight. I've obtained his permission to adjust and release his Lua code in ASM format (inside the [ Enable ] script) for Far Cry 6 as well.

* * *

With the above information I was able to create the table below:

FarCry6.CT
1.0
(15.91 KiB) Downloaded 1734 times

Which can be used as follows:
  • Open Cheat Engine 7.1+, target the game (File > Open Process > Processes tab > FarCry6.exe) and open/load the table you've just downloaded.
  • Activate [ Enable ] script. Now you can use CE's Lua Engine console to type stuff in (CE > Memory View > Ctrl+L).
    • command( "command_text" ) -- for simple 1-line commands
    • script( "path_to_script" ) -- for scripts that are more complex
    Examples:
    • command( "EnableGodMode(1)" )
    Image
    • script( "C:/Users/SunBeam/Desktop/givememoney.lua" ) -- where the script would contain this code:

      Code: Select all

      local player = GetLocalPlayerId();
      CAPI_Player.SetPlayerMoney(player, 999999);
      
  • There is also a console-like UDF you can use to type in Lua code and execute it, without the need to use command( ... ) or script( ... ) functions. Just activate Toggle Console UDF script and this window will show up:

    Image
    • white input memo box at the bottom is used to type in text:
      • you can use Enter to move to next line and type some more
      • Shift+Enter key combination will execute what you've typed
      • no, you can't enlarge the memo box to your desired sizes
      • you can scroll it though horizontally and vertically
      • I recommend writing the script in Notepad++, copy-pasting it here, then Shift+Enter
    • purple memo box is used to display what you've executed
      • it doesn't work like a "return result" log-type of window (just prints a copy of your input)
    • Clear button
      • clears the purple memo box
    • Close [x] button
      • will close the UDF window and deactivate "Toggle Console UDF" script

Credits:
  • Norway-_-1999
  • Zanzer (for all your UDF help)
  • < online communities with old research: UC, guru3D, etc. >


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

User avatar
SunBeam
Administration
Administration
Posts: 4932
Joined: Sun Feb 04, 2018 7:16 pm
Reputation: 4630

Re: Far Cry 6 [Engine: Dunia 2]

Post by SunBeam »

Dump Globals
Credits: Norway-_-1999

Code: Select all

local dump = io.open("D:/dump.txt", "w")
 
local aprased = {}
 
function tab_find_exists(tab,data)
    for k,v in pairs(tab) do
        if v == data then
            return true
        end
    end
    return false
end
 
function dump_table(fi,tab,depth)
    table.insert(aprased,tab)
    for k,v in pairs(tab) do
        if type(v) == "table" and not tab_find_exists(aprased,v) then
            for i=1,depth,1 do
                fi:write("  ")
            end
            fi:write(tostring(k),":\n")
            dump_table( fi, v, depth+1 )
        else
            for i=1,depth,1 do
              fi:write("  ")
            end
            fi:write( tostring(k),"\n" );
        end
    end
    fi:write("\n")
    fi:flush()
end
 
dump_table( dump ,_G ,0 )
dump:flush()
dump:close()
Copy the script above and paste it in the input white box of the <<Far Cry 6>> Lua Exec window. Adjust the output path to the folder you want the .txt file to be created in (first line in the script). Then hit Shift+Enter and check your location.

The execution will create a file - dump.txt - containing this information:

dump.txt
(42.29 KiB) Downloaded 625 times

From here on you'll have to figure out on your own how the Domino commands/functions work and what you can do with them :) Possibilities are endless.

* * *

Dump Globals (adjusted implementation)
Credits: CoMPMStR @ UC & yours truly

Code: Select all

local tDumpCFn = true  -- C Functions
local tDumpLFn = false -- LUA Functions
local tDumpDat = false -- UserData
local tDumpUnk = false -- Others (strings, numbers)
 
local tDumpedTables = {}
local tFile = nil
 
local function OpenFile(name)
    if (tFile == nil) then
        tFile = io.open(name, "w")
    end
end
 
local function CloseFile()
    if (tFile ~= nil) then
        tFile:close()
        tFile = nil
    end
end
 
local function PrintLine(text)
    if (tFile ~= nil) then
        tFile:write(text .. "\n")
    end
end
 
local function GetLFnParams(fn)
    if (fn == nil) then return end
    local co = coroutine.create(fn)
    local paramStr = "("
 
    debug.sethook(co, function()
	local idx = 0
	while true do
            idx = idx+1
	    local n, v = debug.getlocal(co, 2, idx)
	    if not n then break end
	    if (n ~= "(*temporary)") then
                paramStr = paramStr .. n .. ", "
	    end
	end
    end, "c")
 
    local ret, err = coroutine.resume(co)
 
    if (string.len(paramStr) > 1) then
        paramStr = string.sub(paramStr, 1, string.len(paramStr) - 2) .. ")"
    else
        paramStr = paramStr .. ")"
    end
 
    return paramStr
end
 
local function DumpTableList(tbl)
    for k, v in pairs(tbl) do
        PrintLine(v)
    end
end
 
local function DumpTable(name, tbl)
    local tableString = tostring(tbl)
 
    if (tDumpedTables[tableString] == nil) then
        tDumpedTables[tableString] = tbl
    else return end
 
    local tableList = {}
    local cfnList = {}
    local cfnCount = 0
    local lfnList = {}
    local lfnCount = 0
    local datList = {}
    local datCount = 0
    local unkList = {}
    local unkCount = 0
 
    for k, v in pairs(tbl) do
        local itemNameString = tostring(k)
        local itemString = tostring(v)
        local itemType = type(v)
 
        if (itemType == "table" and tableList[itemNameString] == nil) then
            tableList[itemNameString] = v
        elseif (itemType == "function") then
            local funcInfo = debug.getinfo(v, 'S')
 
            if (funcInfo.what == "C") then -- C Function
                if (tDumpCFn == true) then
                    cfnList[itemNameString] = "\tCFN: " .. itemNameString .. " - " .. itemString
                    cfnCount = cfnCount + 1
                end
            else -- Lua function
                if (tDumpLFn == true) then
                    lfnList[itemNameString] = "\tLFN: " .. itemNameString .. " - " .. itemString .. " " .. GetLFnParams(v)
                    lfnCount = lfnCount + 1
                end
            end
        elseif (itemType == "userdata") then
            if (tDumpDat == true) then
                datList[itemNameString] = "\tDAT: " .. itemNameString .. " - " .. itemString
                datCount = datCount + 1
            end
        else
            if (tDumpUnk == true) then
                unkList[itemNameString] = "\tUNK: ( " .. itemType .. " ) " .. itemNameString .. " - " .. itemString
                unkCount = unkCount + 1
            end
        end
    end
 
    if (cfnCount > 0 or lfnCount > 0 or datCount > 0 or unkCount > 0) then
        PrintLine(tableString .. " [ " .. name .. " ]:")
        DumpTableList(cfnList)
        DumpTableList(lfnList)
        DumpTableList(datList)
        DumpTableList(unkList)
        PrintLine("")
    end
 
    for k, v in pairs(tableList) do
        DumpTable(name .. "." .. k, v)
    end
end
 
local function DumpAllTables()
    OpenFile("D:/lua_dump.txt")
    DumpTable("_G", _G)
    CloseFile()
end

local success, result = xpcall(DumpAllTables, function(err) return debug.traceback(err) end)
Copy the script above and paste it in the input white box of the <<Far Cry 6>> Lua Exec window. Adjust the output path to the folder you want the .txt file to be created in (the OpenFile("D:/lua_dump.txt") line in the script). Then hit Shift+Enter and check your location.

The execution will create a file - lua_dump.txt - containing this information:

lua_dump.txt
(99.62 KiB) Downloaded 578 times

Now you also have addresses and can debug the functions.

* * *

God Mode

Code: Select all

EnableGodMode(1)
* * *

Slow Motion

Code: Select all

SetSlowMotion(0.2)
* * *

Unlimited Magazine Ammo

Code: Select all

EnableUnlimitedAmmo(1)
* * *

Disable & Enable Fall Damage
Credits: JDimensional

Code: Select all

local player = GetLocalPlayerId()
CAPI_Player.SetLandingDamageEnabled(player, 0)

Code: Select all

local player = GetLocalPlayerId()
CAPI_Player.SetLandingDamageEnabled(player, 1)
* * *

Like I said, check the Far Cry 5 and Far Cry New Dawn topics for more shit :) Also give the Watch Dogs: Legion topic a visit.

BR,
Sun

ricou15
What is cheating?
What is cheating?
Posts: 2
Joined: Thu Oct 07, 2021 1:08 am
Reputation: 0

Re: Far Cry 6 [Engine: Dunia 2]

Post by ricou15 »

:? Im noob :cry:

User avatar
IFireflyl
Fearless Donors
Fearless Donors
Posts: 248
Joined: Tue Nov 28, 2017 7:27 pm
Reputation: 94

Re: Far Cry 6 [Engine: Dunia 2]

Post by IFireflyl »

I'm not getting this game because I don't support the Epic Games Store exclusivity thing (personal choice), but I have to say, I like what you did here. This is probably outside of most people's comfort zone when it comes to Cheat Engine, but I don't necessarily think that that is a bad thing. It forces people to use more features that they wouldn't know about or utilize with a standard cheat table. Kudos, Sunbeam.

anton77
Cheater
Cheater
Posts: 30
Joined: Mon Jun 01, 2020 11:30 pm
Reputation: 3

Re: Far Cry 6 [Engine: Dunia 2]

Post by anton77 »

IFireflyl wrote:
Thu Oct 07, 2021 4:37 am
I'm not getting this game because I don't support the Epic Games Store exclusivity thing (personal choice), but I have to say, I like what you did here. This is probably outside of most people's comfort zone when it comes to Cheat Engine, but I don't necessarily think that that is a bad thing. It forces people to use more features that they wouldn't know about or utilize with a standard cheat table. Kudos, Sunbeam.
UPLAY+ has it

User avatar
SunBeam
Administration
Administration
Posts: 4932
Joined: Sun Feb 04, 2018 7:16 pm
Reputation: 4630

Re: Far Cry 6 [Engine: Dunia 2]

Post by SunBeam »

IFireflyl wrote:
Thu Oct 07, 2021 4:37 am
It forces people to use more features that they wouldn't know about or utilize with a standard cheat table.
That's why I kinda gave up on simple tables, the same boring open process, scan memory, debug address, quick script that forces a fixed write value routine. What I posted offers a way to run internal Domino Lua commands, as well as show you the function addresses where you can comfy set a breakpoint and extract whatever pointer you need :)

I also know this topic will get heat from only people who know how to or what to do with it. Meaning filtering a shit load of "plis help" posts. Most will stay away from this, which is fine by me :P

BR,
Sun

rotikig
What is cheating?
What is cheating?
Posts: 1
Joined: Thu Oct 07, 2021 8:49 am
Reputation: 0

Re: Far Cry 6 [Engine: Dunia 2]

Post by rotikig »

SunBeam wrote:
Thu Oct 07, 2021 11:12 am
You have it in the game folder, bin folder. What the...??
I know that but still not download the game. i really need it. pls upload.

Colinious
Noobzor
Noobzor
Posts: 6
Joined: Wed Nov 29, 2017 10:13 pm
Reputation: 0

Re: Far Cry 6 [Engine: Dunia 2]

Post by Colinious »

I get this error "aob_luaL_loadbuffer' not found." when I try to enable the script. I have the Ubisoft Plus version of the game. Any idea?

yok2504
What is cheating?
What is cheating?
Posts: 1
Joined: Thu Oct 07, 2021 1:55 pm
Reputation: 0

Re: Far Cry 6 [Engine: Dunia 2]

Post by yok2504 »

SunBeam wrote:
Thu Oct 07, 2021 1:19 am
[ 07 Oct 21 - Hit #1 ]

Game Name: Far Cry 6
Game Vendor: Ubisoft Connect
Game Version: 1.1.0
Game Process: FarCry6.exe [ FC_m64d3d12.dll ]
Game File Version: 1.0.0.0

thank you
too much information for me :)

i will enjoy the story for now.

will wait for simpler table or solution :)

lassieme
What is cheating?
What is cheating?
Posts: 2
Joined: Thu Oct 07, 2021 2:13 pm
Reputation: 1

Re: Far Cry 6 [Engine: Dunia 2]

Post by lassieme »

Colinious wrote:
Thu Oct 07, 2021 1:32 pm
I get this error "aob_luaL_loadbuffer' not found." when I try to enable the script. I have the Ubisoft Plus version of the game. Any idea?
Getting the same error here, I also have the Ubisoft Plus version.

User avatar
SunBeam
Administration
Administration
Posts: 4932
Joined: Sun Feb 04, 2018 7:16 pm
Reputation: 4630

Re: Far Cry 6 [Engine: Dunia 2]

Post by SunBeam »

Those of you with the "I have the Plus version".. you have access to both versions, you have 2 folders, bin and binplus, both with the DLL named identically. What do you think will happen if you switch them? :))

A lot of you are fixated on the idea that you're dumb, don't have experience, therefore you "will wait for a simpler solution". When in fact you're not even trying to put your mind to work.

And that's my impression of the 2020-2021 years: lots of self-content people with their existence level, not willing to put in a shred of effort to learn something for a change.. Always smooching off of someone or waiting for someone to do the work for them. All of this under the slogan "I don't know how to, I'm not a computer pro like you, etc.". I wasn't born like this, I learned my way through. Why can't you? Is it fine for me to say you're stupid, that's why you can't? If it isn't, then fucking get your asses to study! :)

Justadude
What is cheating?
What is cheating?
Posts: 1
Joined: Thu Oct 07, 2021 4:44 pm
Reputation: 0

Re: Far Cry 6 [Engine: Dunia 2]

Post by Justadude »

Swapping the dlls makes the game not launch due to some verification of uplay.
Swapping the bin folder's names makes the game not launch due to some verification of uplay.
FC_m64d3d12.dll is named exactly the same for both, so i dont understand why the lua isnt working

Norway-_-1999
RCE Fanatics
RCE Fanatics
Posts: 16
Joined: Thu Apr 05, 2018 11:59 am
Reputation: 12

Re: Far Cry 6 [Engine: Dunia 2]

Post by Norway-_-1999 »

Amazing work as always😀
Keep it up 👍

lassieme
What is cheating?
What is cheating?
Posts: 2
Joined: Thu Oct 07, 2021 2:13 pm
Reputation: 1

Re: Far Cry 6 [Engine: Dunia 2]

Post by lassieme »

SunBeam wrote:
Thu Oct 07, 2021 4:19 pm
Those of you with the "I have the Plus version".. you have access to both versions, you have 2 folders, bin and binplus, both with the DLL named identically. What do you think will happen if you switch them? :))
You get an error saying "Unable to start the game. This product cannot be activated right now, please try again later." and the game doesn't actually start.

ComManDerBG
Expert Cheater
Expert Cheater
Posts: 74
Joined: Mon Aug 28, 2017 12:07 am
Reputation: 6

Re: Far Cry 6 [Engine: Dunia 2]

Post by ComManDerBG »

Is it ok if i slip in a specific cheat request? (im sorry if its not). Could we get a time of day change option? i find night in this game to just be visauling unappealing.

Post Reply

Who is online

Users browsing this forum: AhrefsBot, debuota, Gladiators1304, Google Adsense [Bot], negnoodles, qq95604014, Setchan, the128pin, vivsha3027