3.0.0
I also noticed something else a bit odd, the slot IDs will now have to be scanned for as an 8 Byte value. The game is using two identical DWORDs as the slot ID so you either need to replace the value twice in your tool, or in the case of cheat engine it's probably just easiest to use 8 Byte from now on (for finding and changing slots). If you don't understand what I'm saying you only need to browse the memory in cheat engine and look what happens when you change the value in game.
NEW 8 BYTE IDS:
Empty slot: 4797478470749
Yellow flash: 4625679778869
To begin, you will need to find the correct offset for the item slot of the character you want to edit. This is because the script uses the placing of this to calculate the location of the other offsets. I'll give a rough explanation as to how I find the item slot offset. (1337 h4x0rs can skip this part)
- First you should scan for the value of the empty item slot. This changes sometimes between updates but currently it should be 961. You should find a lot of results so we need to narrow these down a bit to make our life easier.
- Now you want to equip an item and rescan for this new value. The value of a yellow flashlight is currently 924, so if you have one you can do that. Otherwise you should select the 'Changed Value' option for the scan type. Two scans should be enough if you are using exact values, but if you don't know the value of the item you are equipping you may have to repeat the process a few more times. You should be left with a few addresses, you can add these to the address list.
- We are nearly done now, in order to find the correct offset you can just lock the addresses one by one, change the item and close and open the item selection menu. If it sticks, then that is the correct offset for that character.
If you are looking to get legacy on killer then you should work out the offering offset instead. You will also need to use the killer script instead of the survivor script.
Now onto the more interesting part: using this offset we just found to work out the level, prestige and prestige date offsets. Navigate to the table menu in cheat engine and select the 'Show Cheat Table Lua Script' option. Copy the script below, and paste it into the box that appears.
Survivor:
Code:
itemOffset = 0x???
level = getAddressList().createMemoryRecord()
level.setAddress(string.format("%x", itemOffset - 0x60))
level.setDescription("Level")
level.Type = 0
prestige = getAddressList().createMemoryRecord()
prestige.setAddress(string.format("%x", itemOffset - 0x5C))
prestige.setDescription("Prestige")
prestige.Type = 0
for i=0,prestige.getValue()-1,1
do
local dateOffset = readPointer(itemOffset - 0x50) + i*8
date = getAddressList().createMemoryRecord()
date.setAddress(string.format("%x", dateOffset))
date.setDescription("Date " .. i+1)
date.Type = 3
date.appendToEntry(prestige)
end
Killer:
Code:
offeringOffset = 0x???
level = getAddressList().createMemoryRecord()
level.setAddress(string.format("%x", offeringOffset - 0xE8))
level.setDescription("Level")
level.Type = 0
prestige = getAddressList().createMemoryRecord()
prestige.setAddress(string.format("%x", offeringOffset - 0xE4))
prestige.setDescription("Prestige")
prestige.Type = 0
for i=0,prestige.getValue()-1,1
do
local dateOffset = readPointer(offeringOffset - 0xD8) + i*8
date = getAddressList().createMemoryRecord()
date.setAddress(string.format("%x", dateOffset))
date.setDescription("Date " .. i+1)
date.Type = 3
date.appendToEntry(prestige)
end
Don't execute it just yet, you should copy the offset you found earlier and change the first line of the script to include it. Note that you will need to keep the 0x prefix otherwise the script will probably give you an error. In my case, the first line looked like this:
Code:
itemOffset = 0x1FD9F7D3498
Now you can safely run the script. You should end up with something that looks something along the lines of this:
Note that you should first get the character to the prestige you want before attempting to change any dates. You will have to rerun the script in the event that the character is not already max prestige.
You are probably wondering at this point how you are supposed to edit the dates. They are not in the typical ["0001-01-01T00:00:00.000Z"] format that we are used to. That's because the game converts this value to one it can process easier (FDateTime). In case you are interested, you can read about how the game implements this here: https://api.unrealengine.com/INT/API...ime/index.html
If you are looking to get legacy on any character apart from Nea/Nurse then the process is not hard at all. You should simply change the three values to 0, as the game didn't used to record prestige dates back then. However things get a little more complicated if you are looking to get legacy on Nea or Nurse as you will have to work out legit values for them if you want your account to even stand a chance of not getting banned. In case you didn't read the above link (shame on you) the time values are stored in ticks of 0.1 microseconds (= 100 nanoseconds) since January 1, 0001. Keep reading for some useful information on how to go about creating these values.
- The values should be somewhere between 636075936000000000 and 636155424000000000
- The number should be 18 digits long, no more no less (unless of course you are setting it to 0)
- This website may help you out (note that it is in seconds so you will have to do some additional calculations): https://www.epochconverter.com/seconds-days-since-y0#s1. Be sure to use the 'Seconds Since 0001-01-01 AD' calculator.
Finally, I will quickly describe how to unlock legacy temporarily. This method does not edit your save and will reset your legacy when you restart your game. It's very simple, you're going to want to do a UTF-16 string search for "2016-11-24" (without the quotes). Then once the scan has finished, change all the values found to a date in the future.