Days Gone [Engine:Unreal 4.11]

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

Days Gone [Engine:Unreal 4.11]

Post by SunBeam »

[ 22 May 21 - Hit #3 ]

Kindly DO NOT POST this table on other forums/communities (e.g.: Nexus). Same as you prefer those places, I prefer FRF and I made this specifically for this community! If you want to share the news, do send those users to FRF instead. Thank you for respecting my choice!

Added CurrentEncampment and PlayerExperienceLevel to the Exec handler. You can now also run these commands:

Code: Select all

GainCredits <amount> // e.g.: GainCredits 100 -- adds 100 Money (open shop/inventory screen to see the update)
ModifyTrust <amount> 1 // e.g.: ModifyTrust 10 1 -- adds 10 Trust to the Current Encampment
SetTrust <amount> // e.g.: SetTrust 10 -- same as above, but with no notify
AddXP <amount> // e.g.: AddXP 10 -- adds 10 XP to the Player
DebugSetLevel <int> // e.g.: DebugSetLevel 20 -- level up to level 20
NOTES:

1) For CurrentEncampment commands to work, you have to be IN the camp. Haven't tested it outside.

2) When you use GainCredits command the amount doesn't update in your right-hand-side of the screen. That is normal, as there's no 'notify' functionality to the command. Enter a shop or open the inventory to see the updated amount.


DaysGone.CT
v1.2
(68.65 KiB) Downloaded 2126 times


[ 21 May 21 - Hit #2 ]

Updated, adding the ability to bring up the DEBUG MENU:

Image

How to:

1) Activate Set UFunctions Executable (on console use) script.

2) Open the console (assuming you've run the game, injected the DLL from the section below -- DaysGone_Console_Dumper.zip -- if not, keep scrolling) and type in ToggleCheatMenu. Close the console and look around. I RECOMMEND NOT DOING IT WITH THE GAME MENU UP. So when you go back in-game, resume game, then console and type that + Enter.

3) Browse the menu with Up and Down keyboard keys. Expand or collapse the trees with Right or Left keys. To change an option or execute it, use the same Left/Right keys. Note that Execute: 0 and Execute: 1 have no meaning. It's a toggle. Both states will execute the command. Don't get fooled thinking you have to get back from Execute: 1 to Execute: 0.

4) Console, type it again, Enter -- to close it. Or type HideCheatMenu [Enter].

Enjoy the SHITLOAD of options in those menus :)


DaysGone.CT
v1.1
(64.44 KiB) Downloaded 576 times


[ 20 May 21 - Hit #1 ]

Game Name: Days Gone
Game Vendor: Steam
Game Build ID: 6677713 [ Steam Client > Library > Days Gone > right-click > Properties > Updates tab > check at the bottom ]
Game Process: DaysGone.exe



Hello folks.

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. As far as what you can or can't do with the console, well.. I'm not the game developer :) You'll have to google around for commands, test stuff out and return with feedback. As opposed to just asking "what are the commands?" and doing nothing about it, waiting to be spoon-fed.
  • Will dump the UE4 FNameArray and UObjectArray, along with their addresses. 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 your own conclusions. Just like I did with my table below.

DaysGone_Console_Dumper.zip
(209.87 KiB) Downloaded 753 times


Instructions:
  • Download the archive; extract content to a folder of your choice.
  • Run the game, get to main menu.
  • Run IGCSInjector.exe. You can close it when asked.
  • Takes 1-2 seconds for the DLL to find the stuff, StaticCreate the Console UObject and dump Names/Objects to disk in the Win64 folder.
  • You may then use Tilde (~) key to open up the console in-game.

Notes:
  • The dump location is your game folder (e.g.: D:\SteamLibrary\steamapps\common\Days Gone\BendGame\Binaries\Win64). You will find 2 files there: NamesDump.txt and ObjectsDump.txt. You'll be very interested in the 2nd one :)
  • The .txt files are generated at "run-time". What this means is if you transition in-game from one map to another or from main menu to game world and backwards, you need to re-dump them. Why? UE4 destroys and recreates UObjects; re-initialization. To re-dump the .txt files press Numpad / (no, key can't be changed).

Commands (stock):
  • god
    Makes you invulnerable. It is stored in your save-game on a normal or quick-save. So if you want to play only with god enabled, you just need to enable the console and type in 'god' one time. Then either save or quick-save. No need to use the console anymore the next time you open the game.
  • slomo <float>
    Slows down, accelerates or sets game speed back to normal, depending on the value you give it. (e.g.: slomo 0.5; slomo 1; slomo 1.5)
  • teleport
    Will teleport your character to the location appointed by your mouse pointer. Simply aim some spot, then ~ and teleport [Enter]. You'll instantly get to your targeted location.
  • playersonly
    Currently is designed to freeze any AI in place, including yourself. In older versions of the Engine, this was freezing everything but you. Guess Epic changed their mind. Could probably be tweaked through code hooks to exclude the player Character from the list of frozen entities.
  • toggledebugcamera
    This will detach current camera from the player (in reality, it changes controller to the newly created camera UObject) letting you fly around and explore the area. You can use it together with 'teleport', for example, to move your player to the location where the camera is pointing. Just type it in the console once you've decided for the spot.
  • summon <blueprint_name>
    Probably the most powerful command one can use. It's designed to spawn/generate in front of your view an UObject defined by the Blueprint's name you've typed in. What you can do with this is simply use it in conjunction with either extracting the game's .pak archive (\Days Gone\BendGame\Content\Paks\BendGame-WindowsNoEditor.pak) or with the ObjectsDump.txt file (\Days Gone\BendGame\Binaries\Win64\ObjectsDump.txt). I'll describe the 2nd one, as it's faster:

    - get in-game, inject the DLL
    - hit Numpad / just to make sure you have the latest .txt dumps
    - open ObjectsDump.txt in Notepad++ and search for "Package BP_"
    - everything that you see now can be summoned in-game, condition being you suffix them with a "_C"

    NOTES:

    - only Actors can be summoned/spawned
    - they are not initialized (don't ask how to spawn whatever NPC; you can't)
    - the Blueprint must have been loaded by the LEVEL for this command to work; if your Actor is part of level 13 and you're in level 2, which doesn't load its Blueprint, it won't spawn (it's an example)

While there is a BendCheatManager UObject, there aren't any custom developer commands (cheats) as part of it. However.. I've come up with a nice hook that lets you use several other UFunctions (commands) from other UObject contexts ;) Keep reading the next post :P

BR,
Sun

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: 4702
Joined: Sun Feb 04, 2018 7:16 pm
Reputation: 4285

Re: Days Gone [Engine:Unreal 4.11]

Post by SunBeam »

And now the table with goodies.

Up-front you need to know that this table is not for your everyday necessities. So, if you want options the table doesn't have, please do not request adding them, as I won't do it. You need to understand FRF is a forum where people post what they come up with for free. IT IS NOT A SERVICE for your needs. Or maybe it is, but DON'T BOTHER THE AUTHORS with your needs. For that there's the other trainer sites which charge you for the service. It's how it should normally be: want something custom? -- pay for it. Or manage on your own to get it. Not beg/whine and complain authors don't look at your request(s).

That aside, this is what you will see when you open the table:

Image

Once you have the game running and you've targeted the game (File > Open Process > DaysGone.exe), start by activating the [ Enable ] script. It will run a series of scans to locate requisites (if you're interested, I can detail about it) then open this tree up:

Image


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 (see previous post, Commands section), 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:

    Code: Select all

    [00041666] 0x00000248B124C9C0 Function BendGame.PlayerInventoryComponent.AddItem
    [00041667] 0x00000248B124CA80 IntProperty BendGame.PlayerInventoryComponent.AddItem.ReturnValue
    [00041668] 0x00000248B124CB00 IntProperty BendGame.PlayerInventoryComponent.AddItem.ItemCount
    [00041669] 0x00000248B124CB80 ObjectProperty BendGame.PlayerInventoryComponent.AddItem.Item
    [00041670] 0x00000248B124CC00 Function BendGame.PlayerInventoryComponent.AddItemByTag
    [00041671] 0x00000248B124CCC0 IntProperty BendGame.PlayerInventoryComponent.AddItemByTag.ReturnValue
    [00041672] 0x00000248B124CD40 IntProperty BendGame.PlayerInventoryComponent.AddItemByTag.ItemCount
    [00041673] 0x00000248B124CDC0 StructProperty BendGame.PlayerInventoryComponent.AddItemByTag.ItemTag
    [00041674] 0x00000248B124CE40 Function BendGame.PlayerInventoryComponent.AddItemQuery
    [00041675] 0x00000248B124CF00 ByteProperty BendGame.PlayerInventoryComponent.AddItemQuery.ReturnValue
    [00041676] 0x00000248B124CF80 IntProperty BendGame.PlayerInventoryComponent.AddItemQuery.OutCountAdded
    [00041677] 0x00000248B124D000 IntProperty BendGame.PlayerInventoryComponent.AddItemQuery.ItemCount
    [00041678] 0x00000248B124D080 ObjectProperty BendGame.PlayerInventoryComponent.AddItemQuery.Item
    [00041679] 0x00000248B124D100 Function BendGame.PlayerInventoryComponent.AddWeapon
    [00041680] 0x00000248B124D1C0 IntProperty BendGame.PlayerInventoryComponent.AddWeapon.ReturnValue
    [00041681] 0x00000248B124D240 BoolProperty BendGame.PlayerInventoryComponent.AddWeapon.AfterAsyncLoad_CallAddWeapon
    [00041682] 0x00000248B124D2C0 IntProperty BendGame.PlayerInventoryComponent.AddWeapon.ItemCount
    [00041683] 0x00000248B124D340 ByteProperty BendGame.PlayerInventoryComponent.AddWeapon.WeaponID
    [00041684] 0x00000248B124D3C0 Function BendGame.PlayerInventoryComponent.AdjustAmmo
    [00041685] 0x00000248B124D480 IntProperty BendGame.PlayerInventoryComponent.AdjustAmmo.ReturnValue
    [00041686] 0x00000248B124D500 IntProperty BendGame.PlayerInventoryComponent.AdjustAmmo.ItemCount
    [00041687] 0x00000248B124D580 ByteProperty BendGame.PlayerInventoryComponent.AdjustAmmo.AmmoID
    [00041688] 0x00000248B124D600 Function BendGame.PlayerInventoryComponent.AdjustScrapCount
    [00041689] 0x00000248B124D6C0 IntProperty BendGame.PlayerInventoryComponent.AdjustScrapCount.ReturnValue
    [00041690] 0x00000248B124D740 IntProperty BendGame.PlayerInventoryComponent.AdjustScrapCount.Count
    [00041691] 0x00000248B124D7C0 Function BendGame.PlayerInventoryComponent.AmmoStorage
    [00041692] 0x00000248B124D880 ObjectProperty BendGame.PlayerInventoryComponent.AmmoStorage.ReturnValue
    [00041693] 0x00000248B124D900 Function BendGame.PlayerInventoryComponent.BikePartStorage
    [00041694] 0x00000248B124D9C0 ObjectProperty BendGame.PlayerInventoryComponent.BikePartStorage.ReturnValue
    [00041695] 0x00000248B124DA40 Function BendGame.PlayerInventoryComponent.BikeStorage
    [00041696] 0x00000248B124DB00 ObjectProperty BendGame.PlayerInventoryComponent.BikeStorage.ReturnValue
    [00041697] 0x00000248B124DB80 Function BendGame.PlayerInventoryComponent.CanCraftRecipe
    [00041698] 0x00000248B124DC40 BoolProperty BendGame.PlayerInventoryComponent.CanCraftRecipe.ReturnValue
    [00041699] 0x00000248B124DCC0 StructProperty BendGame.PlayerInventoryComponent.CanCraftRecipe.RecipeTag
    [00041700] 0x00000248B124DD40 Function BendGame.PlayerInventoryComponent.CanStoreItem
    [00041701] 0x00000248B124DE00 BoolProperty BendGame.PlayerInventoryComponent.CanStoreItem.ReturnValue
    [00041702] 0x00000248B124DE80 ObjectProperty BendGame.PlayerInventoryComponent.CanStoreItem.Item
    [00041703] 0x00000248B124DF00 Function BendGame.PlayerInventoryComponent.CollectibleStorage
    [00041704] 0x00000248B124DFC0 ObjectProperty BendGame.PlayerInventoryComponent.CollectibleStorage.ReturnValue
    [00041705] 0x00000248B124E040 Function BendGame.PlayerInventoryComponent.CraftRecipe
    [00041706] 0x00000248B124E100 BoolProperty BendGame.PlayerInventoryComponent.CraftRecipe.ReturnValue
    [00041707] 0x00000248B124E180 StructProperty BendGame.PlayerInventoryComponent.CraftRecipe.RecipeTag
    [00041708] 0x00000248B124E200 Function BendGame.PlayerInventoryComponent.EmptyInventory
    [00041709] 0x00000248B124E2C0 Function BendGame.PlayerInventoryComponent.GetAmmoCount
    [00041710] 0x00000248B124E380 IntProperty BendGame.PlayerInventoryComponent.GetAmmoCount.ReturnValue
    [00041711] 0x00000248B124E400 ByteProperty BendGame.PlayerInventoryComponent.GetAmmoCount.AmmoID
    [00041712] 0x00000248B124E480 Function BendGame.PlayerInventoryComponent.GetAmmoMaxCount
    [00041713] 0x00000248B124E540 IntProperty BendGame.PlayerInventoryComponent.GetAmmoMaxCount.ReturnValue
    [00041714] 0x00000248B124E5C0 ByteProperty BendGame.PlayerInventoryComponent.GetAmmoMaxCount.AmmoID
    [00041715] 0x00000248B124E640 Function BendGame.PlayerInventoryComponent.GetItemCount
    [00041716] 0x00000248B124E700 IntProperty BendGame.PlayerInventoryComponent.GetItemCount.ReturnValue
    [00041717] 0x00000248B124E780 ObjectProperty BendGame.PlayerInventoryComponent.GetItemCount.Item
    [00041718] 0x00000248B124E800 Function BendGame.PlayerInventoryComponent.GetItemCountByTag
    [00041719] 0x00000248B124E8C0 IntProperty BendGame.PlayerInventoryComponent.GetItemCountByTag.ReturnValue
    [00041720] 0x00000248B124E940 StructProperty BendGame.PlayerInventoryComponent.GetItemCountByTag.ItemTag
    [00041721] 0x00000248B124E9C0 Function BendGame.PlayerInventoryComponent.GetItemCountForTagArray
    [00041722] 0x00000248B124EA80 IntProperty BendGame.PlayerInventoryComponent.GetItemCountForTagArray.ReturnValue
    [00041723] 0x00000248B124EB00 ArrayProperty BendGame.PlayerInventoryComponent.GetItemCountForTagArray.ItemTags
    [00041724] 0x00000248B124EB80 StructProperty BendGame.PlayerInventoryComponent.GetItemCountForTagArray.ItemTags.ItemTags
    [00041725] 0x00000248B124EC00 Function BendGame.PlayerInventoryComponent.GetNewWeapons
    [00041726] 0x00000248B124ECC0 ArrayProperty BendGame.PlayerInventoryComponent.GetNewWeapons.ReturnValue
    [00041727] 0x00000248B124ED40 StructProperty BendGame.PlayerInventoryComponent.GetNewWeapons.ReturnValue.ReturnValue
    [00041728] 0x00000248B124EDC0 Function BendGame.PlayerInventoryComponent.GetScrapCount
    [00041729] 0x00000248B124EE80 IntProperty BendGame.PlayerInventoryComponent.GetScrapCount.ReturnValue
    [00041730] 0x00000248B124EF00 Function BendGame.PlayerInventoryComponent.GetStorage
    [00041731] 0x00000248B124EFC0 ObjectProperty BendGame.PlayerInventoryComponent.GetStorage.ReturnValue
    [00041732] 0x00000248B124F040 ByteProperty BendGame.PlayerInventoryComponent.GetStorage.Type
    [00041733] 0x00000248B124F0C0 Function BendGame.PlayerInventoryComponent.GiveBackStoredInventory
    [00041734] 0x00000248B124F180 BoolProperty BendGame.PlayerInventoryComponent.GiveBackStoredInventory.ReturnValue
    [00041735] 0x00000248B124F200 Function BendGame.PlayerInventoryComponent.GiveBackStoredInventoryAndKeepCurrentEquipment
    [00041736] 0x00000248B124F2C0 BoolProperty BendGame.PlayerInventoryComponent.GiveBackStoredInventoryAndKeepCurrentEquipment.ReturnValue
    [00041737] 0x00000248B124F340 Function BendGame.PlayerInventoryComponent.GuidQuery
    [00041738] 0x00000248B124F400 ArrayProperty BendGame.PlayerInventoryComponent.GuidQuery.OutGuids
    [00041739] 0x00000248B124F480 StructProperty BendGame.PlayerInventoryComponent.GuidQuery.OutGuids.OutGuids
    [00041740] 0x00000248B124F500 StructProperty BendGame.PlayerInventoryComponent.GuidQuery.Query
    [00041741] 0x00000248B124F580 Function BendGame.PlayerInventoryComponent.HasDiscoveredItem
    [00041742] 0x00000248B124F640 BoolProperty BendGame.PlayerInventoryComponent.HasDiscoveredItem.ReturnValue
    [00041743] 0x00000248B124F6C0 StructProperty BendGame.PlayerInventoryComponent.HasDiscoveredItem.ItemTag
    [00041744] 0x00000248B124F740 Function BendGame.PlayerInventoryComponent.HasUnlockedCollectible
    [00041745] 0x00000248B124F800 BoolProperty BendGame.PlayerInventoryComponent.HasUnlockedCollectible.ReturnValue
    [00041746] 0x00000248B124F880 ByteProperty BendGame.PlayerInventoryComponent.HasUnlockedCollectible.CollectibleID
    [00041747] 0x00000248B124F900 Function BendGame.PlayerInventoryComponent.InspectWeapon
    [00041748] 0x00000248B124F9C0 StructProperty BendGame.PlayerInventoryComponent.InspectWeapon.WeaponTag
    [00041749] 0x00000248B124FA40 Function BendGame.PlayerInventoryComponent.IsMissionItem
    [00041750] 0x00000248B124FB00 BoolProperty BendGame.PlayerInventoryComponent.IsMissionItem.ReturnValue
    [00041751] 0x00000248B124FB80 ObjectProperty BendGame.PlayerInventoryComponent.IsMissionItem.Item
    [00041752] 0x00000248B124FC00 Function BendGame.PlayerInventoryComponent.IsMissionItemTag
    [00041753] 0x00000248B124FCC0 BoolProperty BendGame.PlayerInventoryComponent.IsMissionItemTag.ReturnValue
    [00041754] 0x00000248B124FD40 StructProperty BendGame.PlayerInventoryComponent.IsMissionItemTag.ItemTag
    [00041755] 0x00000248B124FDC0 Function BendGame.PlayerInventoryComponent.IsTutorialUnlocked
    [00041756] 0x00000248B124FE80 BoolProperty BendGame.PlayerInventoryComponent.IsTutorialUnlocked.ReturnValue
    [00041757] 0x00000248B124FF00 NameProperty BendGame.PlayerInventoryComponent.IsTutorialUnlocked.TutorialName
    [00041758] 0x00000248B124FF80 Function BendGame.PlayerInventoryComponent.ItemTagQuery
    [00041759] 0x00000248B1250040 IntProperty BendGame.PlayerInventoryComponent.ItemTagQuery.ReturnValue
    [00041760] 0x00000248B12500C0 ArrayProperty BendGame.PlayerInventoryComponent.ItemTagQuery.OutItems
    [00041761] 0x00000248B1250140 StructProperty BendGame.PlayerInventoryComponent.ItemTagQuery.OutItems.OutItems
    [00041762] 0x00000248B12501C0 StructProperty BendGame.PlayerInventoryComponent.ItemTagQuery.Query
    [00041763] 0x00000248B1250240 Function BendGame.PlayerInventoryComponent.LootStorage
    [00041764] 0x00000248B1250300 ObjectProperty BendGame.PlayerInventoryComponent.LootStorage.ReturnValue
    [00041765] 0x00000248B1250380 Function BendGame.PlayerInventoryComponent.OnCollectibleDiscovered
    [00041766] 0x00000248B1250440 ObjectProperty BendGame.PlayerInventoryComponent.OnCollectibleDiscovered.Collectible
    [00041767] 0x00000248B12504C0 Function BendGame.PlayerInventoryComponent.OnInventoryChange
    [00041768] 0x00000248B1250580 StructProperty BendGame.PlayerInventoryComponent.OnInventoryChange.StorageOp
    [00041769] 0x00000248B1250600 Function BendGame.PlayerInventoryComponent.OnRecipeCraftable
    [00041770] 0x00000248B12506C0 ObjectProperty BendGame.PlayerInventoryComponent.OnRecipeCraftable.Recipe
    [00041771] 0x00000248B1250740 Function BendGame.PlayerInventoryComponent.OnRecipeDiscovered
    [00041772] 0x00000248B1250800 ObjectProperty BendGame.PlayerInventoryComponent.OnRecipeDiscovered.Recipe
    [00041773] 0x00000248B1250880 Function BendGame.PlayerInventoryComponent.PlayerWeaponFromGuid
    [00041774] 0x00000248B1250940 ObjectProperty BendGame.PlayerInventoryComponent.PlayerWeaponFromGuid.ReturnValue
    [00041775] 0x00000248B12509C0 StructProperty BendGame.PlayerInventoryComponent.PlayerWeaponFromGuid.InGuid
    [00041776] 0x00000248B1250A40 Function BendGame.PlayerInventoryComponent.RecipeStorage
    [00041777] 0x00000248B1250B00 ObjectProperty BendGame.PlayerInventoryComponent.RecipeStorage.ReturnValue
    [00041778] 0x00000248B1250B80 Function BendGame.PlayerInventoryComponent.RegisterMissionItemPostPickup
    [00041779] 0x00000248B1250C40 BoolProperty BendGame.PlayerInventoryComponent.RegisterMissionItemPostPickup.ReturnValue
    [00041780] 0x00000248B1250CC0 ObjectProperty BendGame.PlayerInventoryComponent.RegisterMissionItemPostPickup.Item
    [00041781] 0x00000248B1250D40 Function BendGame.PlayerInventoryComponent.RemoveItem
    [00041782] 0x00000248B1250E00 IntProperty BendGame.PlayerInventoryComponent.RemoveItem.ReturnValue
    [00041783] 0x00000248B1250E80 IntProperty BendGame.PlayerInventoryComponent.RemoveItem.ItemCount
    [00041784] 0x00000248B1250F00 ObjectProperty BendGame.PlayerInventoryComponent.RemoveItem.Item
    [00041785] 0x00000248B1250F80 Function BendGame.PlayerInventoryComponent.RemoveItemByTag
    [00041786] 0x00000248B1251040 IntProperty BendGame.PlayerInventoryComponent.RemoveItemByTag.ReturnValue
    [00041787] 0x00000248B12510C0 IntProperty BendGame.PlayerInventoryComponent.RemoveItemByTag.ItemCount
    [00041788] 0x00000248B1251140 StructProperty BendGame.PlayerInventoryComponent.RemoveItemByTag.ItemTag
    [00041789] 0x00000248B12511C0 Function BendGame.PlayerInventoryComponent.RemoveScrapCount
    [00041790] 0x00000248B1251280 IntProperty BendGame.PlayerInventoryComponent.RemoveScrapCount.ReturnValue
    [00041791] 0x00000248B1251300 IntProperty BendGame.PlayerInventoryComponent.RemoveScrapCount.Count
    [00041792] 0x00000248B1251380 Function BendGame.PlayerInventoryComponent.RemoveWeaponByType
    [00041793] 0x00000248B1251440 ByteProperty BendGame.PlayerInventoryComponent.RemoveWeaponByType.Type
    [00041794] 0x00000248B12514C0 Function BendGame.PlayerInventoryComponent.RemoveWeapons
    [00041795] 0x00000248B1251580 Function BendGame.PlayerInventoryComponent.RestorePlayerWeapons
    [00041796] 0x00000248B1251640 Function BendGame.PlayerInventoryComponent.SetAmmoCount
    [00041797] 0x00000248B1251700 IntProperty BendGame.PlayerInventoryComponent.SetAmmoCount.ItemCount
    [00041798] 0x00000248B1251780 ByteProperty BendGame.PlayerInventoryComponent.SetAmmoCount.AmmoID
    [00041799] 0x00000248B1251800 Function BendGame.PlayerInventoryComponent.SetAmmoMaxCount
    [00041800] 0x00000248B12518C0 IntProperty BendGame.PlayerInventoryComponent.SetAmmoMaxCount.MaxCount
    [00041801] 0x00000248B1251940 ByteProperty BendGame.PlayerInventoryComponent.SetAmmoMaxCount.AmmoID
    [00041802] 0x00000248B12519C0 Function BendGame.PlayerInventoryComponent.SetItemDiscovered
    [00041803] 0x00000248B1251A80 StructProperty BendGame.PlayerInventoryComponent.SetItemDiscovered.ItemTag
    [00041804] 0x00000248B1251B00 Function BendGame.PlayerInventoryComponent.SetMissionItem
    [00041805] 0x00000248B1251BC0 BoolProperty BendGame.PlayerInventoryComponent.SetMissionItem.IsMissionItem
    [00041806] 0x00000248B1251C40 ObjectProperty BendGame.PlayerInventoryComponent.SetMissionItem.Item
    [00041807] 0x00000248B1251CC0 Function BendGame.PlayerInventoryComponent.SetMissionItemTag
    [00041808] 0x00000248B1251D80 BoolProperty BendGame.PlayerInventoryComponent.SetMissionItemTag.IsMissionItem
    [00041809] 0x00000248B1251E00 StructProperty BendGame.PlayerInventoryComponent.SetMissionItemTag.ItemTag
    [00041810] 0x00000248B1251E80 Function BendGame.PlayerInventoryComponent.SetTutorialUnlocked
    [00041811] 0x00000248B1251F40 NameProperty BendGame.PlayerInventoryComponent.SetTutorialUnlocked.TutorialName
    [00041812] 0x00000248B1251FC0 Function BendGame.PlayerInventoryComponent.StartPlayWeaponWheelLoadSound
    [00041813] 0x00000248B1252080 ObjectProperty BendGame.PlayerInventoryComponent.StartPlayWeaponWheelLoadSound.SoundToBePlayed
    [00041814] 0x00000248B1252100 Function BendGame.PlayerInventoryComponent.StopPlayWeaponWheelLoadSound
    [00041815] 0x00000248B12521C0 Function BendGame.PlayerInventoryComponent.StorageForItem
    [00041816] 0x00000248B1252280 ObjectProperty BendGame.PlayerInventoryComponent.StorageForItem.ReturnValue
    [00041817] 0x00000248B1252300 ObjectProperty BendGame.PlayerInventoryComponent.StorageForItem.Item
    [00041818] 0x00000248B1252380 Function BendGame.PlayerInventoryComponent.StoreAndRemoveAllInventory
    [00041819] 0x00000248B1252440 BoolProperty BendGame.PlayerInventoryComponent.StoreAndRemoveAllInventory.ReturnValue
    [00041820] 0x00000248B12524C0 BoolProperty BendGame.PlayerInventoryComponent.StoreAndRemoveAllInventory.RemoveTaser
    [00041821] 0x00000248B1252540 BoolProperty BendGame.PlayerInventoryComponent.StoreAndRemoveAllInventory.RemoveKnife
    [00041822] 0x00000248B12525C0 BoolProperty BendGame.PlayerInventoryComponent.StoreAndRemoveAllInventory.RemoveRock
    [00041823] 0x00000248B1252640 Function BendGame.PlayerInventoryComponent.UnlockCollectible
    [00041824] 0x00000248B1252700 ByteProperty BendGame.PlayerInventoryComponent.UnlockCollectible.CollectibleID
    [00041825] 0x00000248B1252780 Function BendGame.PlayerInventoryComponent.UnlockRecipe
    [00041826] 0x00000248B1252840 ByteProperty BendGame.PlayerInventoryComponent.UnlockRecipe.RecipeID
    [00041827] 0x00000248B12528C0 Function BendGame.PlayerInventoryComponent.UnlockRecipeByTag
    [00041828] 0x00000248B1252980 StructProperty BendGame.PlayerInventoryComponent.UnlockRecipeByTag.RecipeTag
    [00041829] 0x00000248B1252A00 Function BendGame.PlayerInventoryComponent.WeaponFromSlot
    [00041830] 0x00000248B1252AC0 ObjectProperty BendGame.PlayerInventoryComponent.WeaponFromSlot.ReturnValue
    [00041831] 0x00000248B1252B40 ByteProperty BendGame.PlayerInventoryComponent.WeaponFromSlot.SlotType
    [00041832] 0x00000248B1252BC0 Function BendGame.PlayerInventoryComponent.WeaponPartStorage
    [00041833] 0x00000248B1252C80 ObjectProperty BendGame.PlayerInventoryComponent.WeaponPartStorage.ReturnValue
    [00041834] 0x00000248B1252D00 ObjectProperty BendGame.PlayerInventoryComponent.InternalCollectibleStorage
    [00041835] 0x00000248B1252D80 ArrayProperty BendGame.PlayerInventoryComponent.DiscoveredItemKeys
    [00041836] 0x00000248B1252E00 IntProperty BendGame.PlayerInventoryComponent.DiscoveredItemKeys.DiscoveredItemKeys
    [00041837] 0x00000248B1252E80 StructProperty BendGame.PlayerInventoryComponent.CachedItems
    [00041838] 0x00000248B1252F00 ArrayProperty BendGame.PlayerInventoryComponent.TagStorageOverrides
    [00041839] 0x00000248B1252F80 StructProperty BendGame.PlayerInventoryComponent.TagStorageOverrides.TagStorageOverrides
    [00041840] 0x00000248B1253000 ArrayProperty BendGame.PlayerInventoryComponent.StorageClass
    [00041841] 0x00000248B1253080 ClassProperty BendGame.PlayerInventoryComponent.StorageClass.StorageClass
    [00041842] 0x00000248B1253110 ArrayProperty BendGame.PlayerInventoryComponent.Storage
    [00041843] 0x00000248B1253190 ObjectProperty BendGame.PlayerInventoryComponent.Storage.Storage
    [00041844] 0x00000248B1253210 BoolProperty BendGame.PlayerInventoryComponent.OverrideNextMeleeWeaponForce
    [00041845] 0x00000248B1253290 ObjectProperty BendGame.PlayerInventoryComponent.WeaponWheelLoadAudioComp
    [00041846] 0x00000248B1253310 MulticastDelegateProperty BendGame.PlayerInventoryComponent.OnInventoryModifiedDelegate
    [00041847] 0x00000248B1253390 MulticastDelegateProperty BendGame.PlayerInventoryComponent.OnPlayerDiscoverCollectibleDelegate
    [00041848] 0x00000248B1253410 MulticastDelegateProperty BendGame.PlayerInventoryComponent.OnPlayerRecipeCraftableDelegate
    [00041849] 0x00000248B1253490 MulticastDelegateProperty BendGame.PlayerInventoryComponent.OnPlayerDiscoverRecipeDelegate
    [00041850] 0x00000248B1253510 ArrayProperty BendGame.PlayerInventoryComponent.InspectedWeapons
    [00041851] 0x00000248B1253590 NameProperty BendGame.PlayerInventoryComponent.InspectedWeapons.InspectedWeapons
    
    Of course, a shitload of others can be added to the handler in the same fashion.

    Why 2 hooks: the first one will hook UPlayer::Exec and tell the execution handler that we want UE to also check PlayerInventoryComponent 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.

    The reason the script is called "Set <*>" is you can add as many other Classes in place of the <*> as you want :) Hence no specific name for now.

    A list of the extra commands you can use will be posted in the NEXT POST, as I test them out.
  • 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.
  • Clear Console (works only with Console active)
    In case you're fed up with the big ass console text flooding your screen, use this to clear it out. Remember, the console has to be active/open when you do this, else it won't work.

The [ Scripts ] section:

  • God Mode. It will perform the same thing the Engine does, just that not from a console perspective. But from CE perspective :)

The [ Debug ] section:


In here you will find a shit load of 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!.

This is what it contains so far:

Image

Enjoy.


DaysGone.CT
v1.0
(55.76 KiB) Downloaded 209 times


I may update this when and if I see fit.

BR,
Sun

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

Re: Days Gone [Engine:Unreal 4.11]

Post by SunBeam »

Alright, time for some fun. Since a lot of you will ask me "how did you find this out? how did you do it?", here's the story behind it.

The ObjectsDump.txt file will tell you the current address of an UObject in memory, its type and name. Since there will be game transitions, you will need to re-dump the content once in a while, in case you wanna look at NEW objects having been spawned. The same rule applies to some UObject you can't find in the list: re-dump and search again. The terminology might seem a foreign language to you, so if that's the case, skip to the list of commands. But know when you ask some stupid question, I will not respond. Why? Cuz it will be covered in the paragraphs you skip to get to the commands :D

Here's how a dumper line looks like:

[00040293] 0x0000021684FDB420 Function BendGame.GameDebugMenu.GetPlayerPawn

The first element is the UObject's serial number (as internally referred to) or its id: 40293.

The second element is the current address. Why current? If you exit to main menu and back in-game, then re-dump with Numpad / key, you will see it will have a different address. The address IS NOT THE SAME FOR EVERYONE. We're talking about ALLOCATED memory, which is done differently on each person's OS, game, etc. (yes, I know UFunctions are not re-allocated :P Am just proving a point here). What you can do with this address is you can inspect its memory block and deduct other relationships. Yes, you need some advanced skills to be able to understand what's going on in there.

The third element is the Full Name of the UObject. Which, by itself, tells you a lot when it comes to hacking/reversing. You know WTF you're looking at by name. Rather than guessing.

So that's what you get from the dumped ObjectsDump.txt.

Simiarly, NamesDump.txt gives you the FName identifier for an UE name and its Full Name string. No addresses here, as this file's purpose is a different one :)

--

So how did I get from the above to whatever I'm about to post? Simple. Ctrl+F and looking for game and game-hacking related terms: infinite, unlimited, health, player, inventory, ammo, weapon, etc. Nothing magic about it, just THINK.

--

And found the list from previous post. Will now take one to explain how this works:

Image

First-up, notice how, when I highlight AddItem, several lines light up? Well, that's because they are related. AddItem is an UFunction. To run this, you need a valid context (a pointer) of type PlayerInventoryComponent and proper arguments. These arguments are to be read from bottom to top, like so:

Code: Select all

Function BendGame.PlayerInventoryComponent.AddItem
3 -- IntProperty BendGame.PlayerInventoryComponent.AddItem.ReturnValue
2 -- IntProperty BendGame.PlayerInventoryComponent.AddItem.ItemCount
1 -- ObjectProperty BendGame.PlayerInventoryComponent.AddItem.Item
Now, a function has IN parameters and OUT parameters. Notice that "3" is a ReturnValue, therefore an OUT parameter. "1" and "2" are IN parameters. So the above translates to:

Function BendGame.PlayerInventoryComponent.AddItem( ObjectProperty BendGame.PlayerInventoryComponent.AddItem.Item, IntProperty BendGame.PlayerInventoryComponent.AddItem.ItemCount ). And the result is stored in IntProperty BendGame.PlayerInventoryComponent.AddItem.ReturnValue.

The word before the Property indicates what TYPE of Property that is. So if we're to convert the above to C++ heuristics, we get:

Code: Select all

int PlayerInventoryComponent::AddItem( object *Item, int ItemCount )
Alright, so far so good. But how does that make sense in the context of our CONSOLE? The UFunction above translates to a CONSOLE command. How? You start by typing in the UFunction name, then the arguments with spaces in between:

AddItem MyItem 10 (MyItem is fictitious)

Then hit Enter. In normal circumstances, this won't work. But.. since you have Set <*> UFunctions Executable (on console use) script enabled, which adds PlayerInventoryComponent to UPlayer::Exec execution, it will work :) Now you just need to know where to get the MyItem values. To find that, I've checked both the dump and unpacked the .pak archive. And I have this list:

Code: Select all

kCraftComponentID_Bottle_Beer
kCraftComponentID_RubbingAlcohol
kCraftComponentID_AirBag
kCraftComponentID_AlarmClock
kCraftComponentID_Bottle_Growler
kCraftComponentID_BoxOfNails
kCraftComponentID_CarAlarm
kCraftComponentID_EmptySoupCan
kCraftComponentID_GunPowder
kCraftComponentID_Kerosene
kCraftComponentID_Metal_Pipe
kCraftComponentID_Oil_Filter
kCraftComponentID_Oil_Filter_Primary
kCraftComponentID_Oil_Filter_Special
kCraftComponentID_Poison
kCraftComponentID_PushButtonSparkIgniter
kCraftComponentID_Rag
kCraftComponentID_Sawblade
kCraftComponentID_NestResidue
kCraftComponentID_Whiskey
You can search for them in the dump file.

So:

Code: Select all

AddItem kCraftComponentID_Rag 100
Will add, in theory, 100 Rags. However, the game caps it to the max you can carry.

Example -- I have 5 Rags:

Image

Run the command:

Image

And..

Image

"Yeah, but I want unlimited items and a cheeseburger and a Mercedes and a villa with jacuzzi" -- this topic is not for you and you can GTFO :) Simple.

Want to add Max of all items? Simple. The console allows concatenating commands. Simply join together multiple lines with "|" character and paste them in the console. Example:

Code: Select all

AddItem kCraftComponentID_Whiskey 100|AddItem kCraftComponentID_Rag 100|AddItem kCraftComponentID_Kerosene 100
When you hit Enter, you get Max of Whiskey, Rag and Kerosene :) Spaces don't really matter before or after the | (e.g.: " |" or "| " or " | " == same thing).

--

Now that you know a bit about the HOW and WHY, time to fill below a list of what I tested and the result:

Code: Select all

[00041666] 0x000002168500C9C0 Function BendGame.PlayerInventoryComponent.AddItem
[00041667] 0x000002168500CA80 IntProperty BendGame.PlayerInventoryComponent.AddItem.ReturnValue
[00041668] 0x000002168500CB00 IntProperty BendGame.PlayerInventoryComponent.AddItem.ItemCount
[00041669] 0x000002168500CB80 ObjectProperty BendGame.PlayerInventoryComponent.AddItem.Item
== AddItem Obj Val

Code: Select all

AddItem kCraftComponentID_Bottle_Beer 100
AddItem kCraftComponentID_RubbingAlcohol 100
AddItem kCraftComponentID_AirBag 100
AddItem kCraftComponentID_AlarmClock 100
AddItem kCraftComponentID_Bottle_Growler 100
AddItem kCraftComponentID_BoxOfNails 100
AddItem kCraftComponentID_CarAlarm 100
AddItem kCraftComponentID_EmptySoupCan 100
AddItem kCraftComponentID_GunPowder 100
AddItem kCraftComponentID_Kerosene 100
AddItem kCraftComponentID_Metal_Pipe 100
AddItem kCraftComponentID_Oil_Filter 100
AddItem kCraftComponentID_Oil_Filter_Primary 100
AddItem kCraftComponentID_Oil_Filter_Special 100
AddItem kCraftComponentID_Poison 100
AddItem kCraftComponentID_PushButtonSparkIgniter 100
AddItem kCraftComponentID_Rag 100
AddItem kCraftComponentID_Sawblade 100
AddItem kCraftComponentID_NestResidue 100
AddItem kCraftComponentID_Whiskey 100

Code: Select all

[00041670] 0x000002168500CC00 Function BendGame.PlayerInventoryComponent.AddItemByTag
[00041671] 0x000002168500CCC0 IntProperty BendGame.PlayerInventoryComponent.AddItemByTag.ReturnValue
[00041672] 0x000002168500CD40 IntProperty BendGame.PlayerInventoryComponent.AddItemByTag.ItemCount
[00041673] 0x000002168500CDC0 StructProperty BendGame.PlayerInventoryComponent.AddItemByTag.ItemTag
== AddItemByTag ObjTag Val

Unfortunately, I don't know how to get this to work. It crashes with every form of it I tried. The tags are in a .uasset file I've found in the extracted path: \BendGame\Content\Libraries\Blueprints\Inventory\Items.

Image

So it would be something like: AddItemByTag "Item.Weapon.Assault.M4A1" 1. But seems to be crashing :( Crashes even with no parameters supplied.

< in progress >

User avatar
sebastianyyz
Expert Cheater
Expert Cheater
Posts: 315
Joined: Sun Jul 09, 2017 3:33 am
Reputation: 53

Re: Days Gone [Engine:Unreal 4.11]

Post by sebastianyyz »

Thank you SunBeam

User avatar
Csimbi
RCE Fanatics
RCE Fanatics
Posts: 878
Joined: Sat Apr 29, 2017 9:04 pm
Reputation: 1202

Re: Days Gone [Engine:Unreal 4.11]

Post by Csimbi »

Nicely done SunBeam, thanks!
I was looking for the ZIP pass then I realized there isn't one.

Seems I have my kind of fun cut out for me for my weekend ;-)

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

Re: Days Gone [Engine:Unreal 4.11]

Post by SunBeam »

Found this:

Image

:D

EDIT: Updated main post.

RubberMonkey
Novice Cheater
Novice Cheater
Posts: 16
Joined: Thu Aug 13, 2020 12:37 pm
Reputation: 18

Re: Days Gone [Engine:Unreal 4.11]

Post by RubberMonkey »

Neat. Thanks for making games more fun as always SunBeam
Image

totodudu
Novice Cheater
Novice Cheater
Posts: 24
Joined: Sat May 01, 2021 9:05 am
Reputation: 1

Re: Days Gone [Engine:Unreal 4.11]

Post by totodudu »

thank you to you sunbeam as usual you assure me tell me the debug console and possible that you face it on a table? with a teleport to waypoints?

leonde02
What is cheating?
What is cheating?
Posts: 2
Joined: Tue Dec 01, 2020 10:01 pm
Reputation: 0

Re: Days Gone [Engine:Unreal 4.11]

Post by leonde02 »

i really dont get it , i cant get it working the console dont open i press ~ but nothing will open please help ! , I have the DLL injected Everything but nothing will open

LiamLi
Expert Cheater
Expert Cheater
Posts: 103
Joined: Tue Aug 27, 2019 2:54 pm
Reputation: 12

Re: Days Gone [Engine:Unreal 4.11]

Post by LiamLi »

Hi!

i have the same problem :(

i've tried every key, i also changed my keyboard to English ... its not working...

DLL injects without any errors, divide key to dump is also working, but i cant open the console.

its actually not a new problem ... if im using a other UE4 game with the UUU Unlocker from Otis then the Tilde key is also not working (im always using comma)

so maybe someone can help me, i really tried EVERY key, and like i said also with english keyboard layout

-

still thanks for that great work!

RubberMonkey
Novice Cheater
Novice Cheater
Posts: 16
Joined: Thu Aug 13, 2020 12:37 pm
Reputation: 18

Re: Days Gone [Engine:Unreal 4.11]

Post by RubberMonkey »

Try injecting right after you launch the game and see if it works at the menu? ` is key for me after I switch keyboard to us.

mfcat
What is cheating?
What is cheating?
Posts: 1
Joined: Fri May 21, 2021 2:09 pm
Reputation: 0

Re: Days Gone [Engine:Unreal 4.11]

Post by mfcat »

My game is currently bugged on the Liston Knife mission for addy in Lost Lake, I've managed to get the debug menu working. Is there any way for me to force the quest to complete or maybe restart it. Anything really to get me through this quest because it's essential to progression. Thanks.

rafaelrennow
Cheater
Cheater
Posts: 31
Joined: Thu Oct 19, 2017 1:31 pm
Reputation: 6

Re: Days Gone [Engine:Unreal 4.11]

Post by rafaelrennow »

I only made it work when I changed my keyboard language to ENG-US and ran it as admin. Hope it helps! :)

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

Re: Days Gone [Engine:Unreal 4.11]

Post by SunBeam »

leonde02 wrote:
Fri May 21, 2021 12:49 pm
...
LiamLi wrote:
Fri May 21, 2021 1:09 pm
...
rafaelrennow wrote:
Fri May 21, 2021 2:21 pm
...
1) While the game is NOT OPEN, click Start, then Run (or WinKey+R).

2) Paste the below in:

Code: Select all

%LocalAppData%\BendGame\Saved\Config\WindowsNoEditor
3) Hit Enter so the folder opens.

4) You will see a file there called Input.ini. Open it up and paste the below on top of it:

Code: Select all

[/Script/Engine.InputSettings]
ConsoleKey=F1
Change F1 key to whichever you want (e.g.: F10, Tilde, Backspace, etc.)

5) Save the file and start the game.

BR,
Sun

P.S.: The same exact logic applies to ANY UE4 game. As long as it's reading that .ini from LocalAppData\game_folder, it will work.

rafaelrennow
Cheater
Cheater
Posts: 31
Joined: Thu Oct 19, 2017 1:31 pm
Reputation: 6

Re: Days Gone [Engine:Unreal 4.11]

Post by rafaelrennow »

SunBeam wrote:
Fri May 21, 2021 3:03 pm
...
Thanks a lot!

Post Reply