Game Name: Darksiders Genesis
Game Vendor: Steam
Game Version: 1.0
Game Process: DarksidersGenesis-Win64-Shipping.exe
Game File Version: 4.22.2.0 (the UE4 version)
Hi folks,
Attached is the dumper and console enabler. Same drill:
1) Run the game and get to main menu.
2) Run 'IGCSInjector.exe'. You can close it when asked.
3) Takes 3-4 seconds for the DLL to find the stuff and StaticCreate the Console UObject and dump Names/Objects to disk in the Win64 folder (e.g.: D:\SteamLibrary\steamapps\common\DarksidersGenesis\ProjectMayhem\Binaries\Win64)
4) The console can also be open with the F10 key! (not just Tilde)
Function DarksidersGenesis.MayhemCheatManager.GetOwner // works
Function DarksidersGenesis.MayhemCheatManager.KillAllAI // works
Function DarksidersGenesis.MayhemCheatManager.KillNearestAI // works
Function DarksidersGenesis.MayhemCheatManager.LobotomizeAI // works
Function DarksidersGenesis.MayhemCheatManager.QueryAchievements // works
Function DarksidersGenesis.MayhemCheatManager.ResetAllAchievements // NULL-ed
Function DarksidersGenesis.MayhemCheatManager.SetAchievementValue // works
Aside from the above, god should work (haven't tested it yet). Then toggledebugcamera, slomo and perhaps some others.
If you want to unpack the game files, use the below package:
[Link]
(pass: sunbeam)
Usage:
1) Download the above, extract it to a folder of your choice.
2) Copy the ProjectMayhem-WindowsNoEditor.pak file from D:\SteamLibrary\steamapps\common\DarksidersGenesis\ProjectMayhem\Content\Paks to the PK folder.
3) Run quickbms_4gb_files.exe.
4) Choose the unreal_tournament_4_0.4.23.1a.bms file when the open file dialog shows up.
5) Select the .pak file from PK folder (e.g.: /PK/ProjectMayhem-WindowsNoEditor.pak)
6) Select the EXT folder to have the data unpacked there.
7) Wait for it to finish.
The unpacking process finished in like 10 minutes on my 7200 rpm disk. You should then see this in the EXT folder when done:
Table will be posted soon, if it makes any sense to even use one given the above
If you wish to change your Console key from Tilde to some other, head to:
Note that 'god' gets reset when you switch characters. Well.. doesn't get reset per-se.. everytime you swap characters with V key, the Character UObject is reinitialized. Therefore, so does the bCanBeDamaged flag get set to its default (off) value.
1) In "ProjectMayhem\Config" there is a file called "DefaultDebug.ini". In this file I noticed these lines:
Type=Boolean,Value="d.DrawDebugUI", Description="Show Debug UI is on."
Type=Boolean,Value="d.UnlockTest", Description="Lets player do all combat, wrath, etc ONLY while on; does not save unlock state."
Type=Boolean,Value="d.IgnoreMissionLock", Description="Lets player play any mission as if all of them have been unlocked."
Type=Boolean,Value="d.IgnoreDifficultyLock", Description="Lets player play on any difficulty as if all of them have been unlocked."
Type=ConsoleCommand,Value="DebugGiveSouls 50000", Description="Give player 50,000 souls"
Type=ConsoleCommand,Value="DebugGiveCoins 500", Description="Give player 500 boat coins"
Type=ConsoleCommand,Value="DebugUnlockAllCreatureCores", Description="Unlocks in save data"
Type=ConsoleCommand,Value="DebugUnlockAbility Strife_Wrath_1", Description="Unlocks in save data"
Type=ConsoleCommand,Value="DebugUnlockAbility Strife_Wrath_2", Description="Unlocks in save data"
Type=ConsoleCommand,Value="DebugUnlockAbility Strife_Wrath_3", Description="Unlocks in save data"
Type=ConsoleCommand,Value="DebugUnlockAbility Strife_Synergy", Description="Unlocks in save data"
Type=ConsoleCommand,Value="DebugUnlockAbility War_Wrath_1", Description="Unlocks in save data"
Type=ConsoleCommand,Value="DebugUnlockAbility War_Wrath_2", Description="Unlocks in save data"
Type=ConsoleCommand,Value="DebugUnlockAbility War_Wrath_3", Description="Unlocks in save data"
Type=ConsoleCommand,Value="DebugUnlockAbility War_Synergy", Description="Unlocks in save data"
Type=ConsoleCommand,Value="DebugUnlockAllAbilities", Description="Unlocks all combat and ability upgrades; Unlocks in save data"
Type=Boolean,Value="d.GodMode", Description="You're invincible"
Type=Boolean,Value="d.JesusMode", Description="You come back to life when you hit 0 health"
Type=Boolean,Value="d.GandhiMode", Description="Everyone comes back to life when they hit 0 health"
Type=Boolean,Value="g.AutoSwapAmmoOnEmpty", Description="Automatically switches to next ammo if you run out"
Type=ConsoleCommand,Value="KillNearestAI", Description=""
Type=ConsoleCommand,Value="KillAllAI", Description=""
Type=ConsoleCommand,Value="DebugSetCurrentSynergy 5000", Description="Refill Synergy Meter for current character"
Type=ConsoleCommand,Value="DebugRefillChaos", Description="Refill Chaos Meter for current character"
Type=Boolean,Value="d.InfiniteChaos", Description="Chaos meter never depletes"
Type=ConsoleCommand,Value="DebugRefillJuice", Description="Refill Hotstreak Meter for Strife"
Type=Boolean,Value="d.InfiniteHotstreak", Description="Hotstreak meter never depletes"
Type=Boolean,Value="d.InfiniteWrath", Description="Wrath abilties have no cost"
Type=Boolean,Value="d.InfiniteAmmo", Description="There'll always be one in the chamber"
Type=Boolean,Value="d.InfiniteSynergy", Description="Synergy abilities have no cost"
Type=ConsoleCommand,Value="DebugGiveHealthPotions 1", Description="Give the current character a health potion"
Type=ConsoleCommand,Value="DebugGiveWrathPotions 1", Description="Give the current character a wrath potion"
Type=ConsoleCommand,Value="DebugDoDamageToSelf 100", Description="Deals 100 damage to the current character"
Type=ConsoleCommand,Value="DebugGameOver", Description="Trigger Game Over; kill players."
Type=ConsoleCommand,Value="DebugCompleteCurrentMission 0", Description="Complete the current mission immediately"
Type=Boolean,Value="d.IgnoreMissionLock", Description="Lets player play any mission as if all of them have been unlocked."
Type=Boolean,Value="d.IgnoreDifficultyLock", Description="Lets player play on any difficulty as if all of them have been unlocked."
Time to get accustomed to CVars Let's see how to toggle those Boolean values on/off. One thing I've not done in UE4 so far, should be interesting
2) Unfortunately, turns out most of the above are NULL-ed:
"GodMode" is referenced only in the dumped Names text file, it seems.
I've checked the memory of the CVar based on your snippet and saw this:
So by the looks of it:
d.GodMode CVar starts at [DarksidersGenesis-Win64-Shipping.exe+37ED550] - 0x38 == x
x+8 = &CVar_description
x+38 = CVar_value
x+40 = CVar_name
So from that perspective, thanks for the contribution; it led to the above analysis. It is known fact most engines hard-code the direct pointer to the CVar effect just like you pointed in the snippets. Though running that through the console (the point of this topic) leads to no result; and that is mostly because it's not linked in the AssetRegistry (there is no reference to the CVar block start address). Similarly, 'god' command didn't work in Borderlands 3 and I had to create a constructor for it, then link and add child functions to the existing mapped list (yeah, convoluted and complicated shit you don't care about, cuz "this is how you do it simpler without fancy stuff"; I care). Leaving this here, if interested: [Link].
To quote someone who said it better than myself:
While I appreciate your post, please keep the above in mind. Hope the dumper is useful to you as well; else, if it just slows down your brute, direct, scan/debug approach, and you have no time or use for it, do tell, rather than posting acidic remarks.
So, if your form of contribution is posting ASM snippets and going "this is how you do it", then please consider posting in this topic: viewtopic.php?f=4&t=11008. The people there too would like to know these things.
Thanks,
Sun
P.S.: If the CVar value was not referenced at all in ASM, I wonder if you still would have commented T_T...
LE: Apparently, the ECVF_Cheat CVars are not listed out when used via console (via the FConsoleManager::ProcessUserConsoleInput function). Apart from that, they can also be of ECVF_ReadOnly type So this is what I got now:
Will post a list of valid and useful CVars and a way to disable any restrictions for set/get/help.
Attached you will find a table with some incipient elements, as well as an Unrestrict CVars script. Activate [ Enable ] script first, then this latter one and have a go at the below list of CVars:
How do I get out of Debug Camera once I enabled it? I can't seem to be able to do so. Re-entering command does not work obviously.
Also do you think it's possible to make a camera hack that would allow turning camera around during normal gameplay?
How do I get out of Debug Camera once I enabled it? I can't seem to be able to do so. Re-entering command does not work obviously.
Also do you think it's possible to make a camera hack that would allow turning camera around during normal gameplay?
As far as I tested, you can't turn it off. I did mention in the other topic, if I remember. No idea how you'd do it otherwise;, don't care for that, don't use it.
On another note, I've taken a look at the .pak content and this is what you can spawn in-game with the summon command (I've already formatted them for you; just copy-paste-in-the-console-then-hit-enter and try them out):
1) Some of them may not load when you run the command. Why? The rule is this: the blueprint for the object you want to summon has to be loaded by the engine in the level you're playing. Otherwise, nothing will happen. The summon command doesn't statically load ALL blueprints and looks for what you entered, but deals with just the ones loaded in the current map.That's the Unreal Engine command's design.
2) Since you're summoning blueprints, once you pickup the item off-ground, its mesh texture will remain in the spot. The blueprint did not initialize the object's behavior, so "on_pickup_vanish_destroy" won't occur. Just an FYI.
3) If you AI doesn't spawn, it's either do to #1 above OR command not working on the spot you're in. Either walk to some other spot (10-20m away) OR just stack up more of the same command to get it to succeed (e.g.: summon Skeleton_Basic_Melee_Character_C|summon Skeleton_Basic_Melee_Character_C|summon Skeleton_Basic_Melee_Character_C [Enter]; yes, it will spawn just 1 skeleton, not 3!). I usually stack up 2 or 3 and summon always works, regardless where I'm at (the only observation is #1). Just experiment is all I say
4) You can run as many commands as you want by using the "|" separator between them However, summon command will run one-time in the event you're generating with concatenated "|" summon commands. It will execute the last one.
5) Regarding Cores - as I know you will ask - there is one major blueprint you can summon, however, although you will see an F to pick it up, it won't do anything (doesn't get added to inventory). That is the template used by the game to use in the creation/drop process. So that's that. Try this: summon CreatureCorePickup_BP_C [Enter]. (P.S.: No, I have no intention making these work, so don't bother asking)
Attached you will find a table with some incipient elements, as well as an Unrestrict CVars script. Activate [ Enable ] script first, then this latter one and have a go at the below list of CVars:
If you want to learn what a CVar does simply type the CVar in the console and use the "?" flag (e.g.: d.GodMode ? [Enter]).