Game Name: Dungeons & Dragons: Dark Alliance
Game Vendor: Steam | Microsoft Store
Game Version: 1.16.88 (Steam) | 1.15.63 (Steam) | 1.15.60 (Microsoft Store)
Game Process: DarkAlliance-Win64-Shipping.exe (Steam) | DarkAlliance-WinGDK-Shipping.exe (Microsoft Store)
Hello folks.
This topic will not tackle the usual crap you find in trainers. Please don't fill it in with requests, as I won't look at them. You can find trainers with whatever you need in the Trainers section or other parts of the internet; your choice whose you want to use. This topic is about Unreal Engine 4, console, Engine functionality, dumping the in-engine objectalia and whatever else can be done based on that.
NOTE: Know that I own the Steam version and this table was designed with that version in mind. Before posting, this was also tested by another individual on the Microsoft Store version. The setup and version there are a bit different, so expect some variations in what you're about to read.
[ 03 Jul '21 - Update #3 ]
Updated for Steam 1.16.88. Should work with the same version of the game if on other Store (e.g.: Microsoft Store).
- There are two "Instant (99%) Legendary Drops On Kill" scripts now. One for the old versions (Steam 1.15.63 | Microsoft Store 1.15.60) and one for the most recent one on Steam (Steam 1.16.88). Reason: they've added some debug elements, so the recompiled code has changed. Hence why the old script isn't working. Use the one according to your game version (!! see the bottom-left of the title screen BEFORE HITTING 'PLAY' button !!)
[ 26 Jun '21 - Update #2 ]
Added several new features:
- Updated God Mode, Unlimited Stamina, Infinite Ultimate script to also allow you to do NO COOLDOWNS for Q-skills and 1 HIT KILL. Change the sub-options that appear once you activate this script to 1 for on, to 0 for off, when needed. NOTE: 1) Cooldowns also affect enemies, so they might use skills as fast as you would. Just an FYI.
- Instant (99%) Legendary Drops On Kill
The script will set the Rest Camp rarity value to 9999 and drop chance on Actors being destroyed to (float)100.0. This means the enemies WILL DROP LOOT ALL THE TIME and this loot will be LEGENDARY in 99% of the cases. Major bosses might not be affected, so expect to see Common, Uncommon, Rare or Epic loot as well. The majority though will be Legendary. In one go, I was able to collect 59 items
Combine this with One Hit Kill and a high-level difficulty map and you're set for a shit ton of Legendaries!
[ 26 Jun '21 - Update #1 ]
Added several new features:
- Create & Initialize CheatManager
The script will initialize CheatManager once and patch AllowCheats in AGameModBase to always return 1. Meaning the CheatManager will always be created when leaving a map to camp or main menu and back. You will still need the injector that creates the console to be able to use CheatManager-related commands:- summon <Actor>
e.g.1: Enter a mission (not at camp) and type and run in the console - summon BP_LootMinor_MoneyBag_C
e.g.2: summon BP_LootMinor_Knapsack_C
- summon <Actor>
- [ Scripts ] > God Mode, Unlimited Stamina, Infinite Ultimate
Once enabled, you have 3 sub-options you can set to 0 or 1. By default, everything's set to 1 (enabled). Disable what you don't want on. With this your HP meter won't drop if you get any types of damage, the Stamina meter will not decrease and, once you've filled the Ultimate (Rage) meter, it will always stay full. So you can use it anytime - even when you've already activated it - with R key. No, this does not trigger instant Ultimate meter filling, so you'll have to fill it yourself (Potion of Heroism + several mobs killed).
- [ Scripts ] > Get Currency Data
Once enabled, open your inventory (M) key or visit a merchant and the sub-options will populate, allowing you to edit each quantity. Yes, !! YOU NEED TO BE IN BASE CAMP !! to do this. Doesn't work in an active mission.
BR,
Sun
[ 24 Jun '21 - Initial Release ]
Attached below is a DLL that will do the following:
- Run threaded UE4 code to create the UConsole UObject, member of GameViewportClient; you may then use Tilde (~) key to open up the console.
- Will dump the UE4 UObjectArray (addresses, full names). What this means is you can then know what the fuck you're looking at in memory, when debugging/tracing or mapping structures, and come up with some of your own conclusions. Just like I did with my table below. Yes, Unreal Engine reversing experience is required.
---------
Usage:
---------
- Step 1) Run the game and get to main menu (past the videos).
- Step 2) Download the archive and extract the content to a folder of your choice.
- *) For those playing the Microsoft Store version, see NOTES|1 below.
- Step 3) Run IGCSInjector.exe. You should see this happening for you:
You may close the injector after that. Press Tilde (~) key in-game and you should see this:
Press Tilde (~) key again to show the BIG console:
Press Tilde (~) key one more time to close the console. Repeat for other uses.
---------
NOTES:
---------
- 1) If you are playing the Microsoft Store version, then you will first need to edit the IGCSInjector.ini file. Why? The Microsoft Store version has a different executable name. So use an editor of your choice (I use Notepad++) and change Win64 to WinGDK on this line:
Save the file. Return now to Usage|Step 3 and continue from there.
- 2) "My Tilde key is not working" (cuz you're on some keyboard or laptop with no such key, or can't find it, or..). Two methods:
- METHOD 1: Start > Run (or WinKey+R) and paste in this:
- Steam: %LocalAppData%\CotH\Saved\Config\WindowsNoEditor
- Microsoft Store: %LOCALAPPDATA%\Packages\WizardsoftheCoastLLC.DarkAlliance_egzvkhb86xsmw\LocalCache\Local\CotH\Saved\Config\WinGDK\
Of course, change the key to the one you want. Save the file, then start the game fresh. Note that it won't apply in real-time, if the game is already running. You have to close it. Also !! DOING THIS STEP DOESN'T MEAN THE CONSOLE WILL WORK WITHOUT THE INJECTOR !! You still need to run it so the Console UObject is created. Only then will your new key work.Code: Select all
[/Script/Engine.InputSettings] ConsoleKey=F2
- METHOD 2: Add EN language to your keyboard layout and switch to it -> [Link]
- METHOD 1: Start > Run (or WinKey+R) and paste in this:
- 3) The table that follows below needs the console to work. You will be required to type in some commands in the console.
----------------
Cheat Table:
----------------
And now the table with goodies. Sneak peak preview:
Once you have the game running and you've targeted the game (File > Open Process > DarkAlliance-Win64-Shipping.exe -OR- DarkAlliance-WinGDK-Shipping.exe), start by activating the [ Enable ] script. It will run a series of scans to locate requisites. A sub-section will open up, like in the picture above.
The [ Engine ] section:
- Set UFunctions Executable (on console use)
This script will hook 2 functions that are run internally when you type in a command in the console and it executes: UPlayer::Exec and UObject::CallFunctionByNameWithArguments. The first checks if the command you are attempting to run translates into an UFunction that can be found in the context of several UPlayer-related classes: Input, Hud, PlayerController, CheatManager, etc. Since we don't have but only the stock commands that can be found in the CheatManager context (which are the stock ones and unlinked -- meaning they're of no use to us in this game), I wanted to expand the functionality to allow me to add MORE to the list So, using the dumped data, I found out that there are some juicy UFunctions (which, from console perspective, are commands you can type in and run) that can be executed:
Of course, several others can be added to the handler in the same fashion.Code: Select all
Function /Game/_Character/Player/_Base/BP_Tuq_Character_Player_CotH.BP_Tuq_Character_Player_CotH_C:Server_SetNoCooldown Function /Game/_Character/Player/_Base/BP_Tuq_Character_Player_CotH.BP_Tuq_Character_Player_CotH_C:Server_SetInfiniteStamina Function /Game/_Character/Player/_Base/BP_Tuq_Character_Player_CotH.BP_Tuq_Character_Player_CotH_C:Server_SetGodMode
Why 2 hooks: the first one will hook UPlayer::Exec and tell the execution handler that we want UE to also check Default__BP_Tuq_Character_Player_CotH_C Class and its UFunctions The second hook will check that the first hook was run (I use a flag) and SET THE UFUNCTION AS EXECUTABLE. If it doesn't have the 'execute' flag, it will not run.
!! YOU WILL NEED TO HAVE THIS SCRIPT ACTIVE IF YOU WANT THE COMMANDS BELOW TO WORK. THEY DO NOT WORK BY DEFAULT WITH JUST THE CONSOLE ALONE !!
That being said:
- Infinite Stamina:
Copy the above, paste it in the console, Enter to run.
Code: Select all
Server_SetInfiniteStamina 1 | DoSetInfiniteStamina 1
- God Mode:
Steam:Microsoft Store:Code: Select all
Server_SetGodMode 1 | DoSetGodMode
Copy the above, paste it in the console, Enter to run.Code: Select all
Server_SetGodMode 1 | DoSetGodMode 1
- No Cooldown:
Copy the above, paste it in the console, Enter to run. I believe it has to run after you use a skill. Press Q to heal, for example (I'm playing the Archer lady), then as the recharge process kicks in, open the console and copy-paste the above in. Enter and you get instant recharge. KNOWN TO DISRUPT INFINITE STAMINA (if run, it will void infinite stamina; it will start to decrease as you use it).
Code: Select all
Server_SetNoCooldown 1 | DoSetNoCooldown 1
---------
NOTES:
---------
- The commands above have to run every time you go into a map. They're not transient. When you go in a map, open the Console with Tilde key (or your key) and press UP key to scroll through the history list. Stop on an entry and press Enter to execute it. Repeat with other lines. Or just concatenate all of them into one big line:
Code: Select all
Server_SetInfiniteStamina 1 | DoSetInfiniteStamina 1 | Server_SetGodMode 1 | DoSetGodMode
- If a set of commands doesn't work from first run, run it again.
- Q: "Know a way to bind the commands to keys, so it's faster?" A: No. You cannot, as it's disabled from source-code for Shipping builds.
- Infinite Stamina:
- Patch "SET" Command
Allows you to set individual UProperty values using the console Example: set Engine.Actor bCanBeDamaged false. Yes, you will have to experiment with this one without bothering me too much. Thanks!
- Unrestrict CVars
In the event you discover there are some CVars that can be used in this game, this script will allow them to be set when changed from the console context. In short, type something like bGod = 1 (assuming this is a valid CVar) and it will be set accordingly. Without the patch, it will not work.
The [ Debug ] section:
In here you will find some mapping that should help you easily come up with your own scripts/options. Please be aware that this section is for debug purposes only (a helper section) and will not be updated if the developers update the game or change UE4 version. If you end-up relying on it, you will have to manage on your own through the updates. Won't update it even for Patreon patrons, please be advised!
That's about it from me for today. I might add stuff if and when I feel like it.
Enjoy!
BR,
Sun
How to use this cheat table?
- Install Cheat Engine
- Double-click the .CT file in order to open it.
- Click the PC icon in Cheat Engine in order to select the game process.
- Keep the list.
- Activate the trainer options by checking boxes or setting values from 0 to 1