Last Epoch Save Editor

Upload *YOUR* gamehacking tools/helpers here
darkshadow87it
What is cheating?
What is cheating?
Posts: 3
Joined: Mon Mar 04, 2024 9:57 am
Reputation: 0

Re: Last Epoch Save Editor

Post by darkshadow87it »

Guys, I would like to understand something, but the save editor and the Mod are only for the offline version, right?

skeeta69
Cheater
Cheater
Posts: 30
Joined: Wed Jan 02, 2019 8:40 pm
Reputation: 1

Re: Last Epoch Save Editor

Post by skeeta69 »

Offline yes.

darkshadow87it
What is cheating?
What is cheating?
Posts: 3
Joined: Mon Mar 04, 2024 9:57 am
Reputation: 0

Re: Last Epoch Save Editor

Post by darkshadow87it »

skeeta69 wrote:
Sat Mar 09, 2024 6:07 pm
Offline yes.
Ok thx :)

Rukongai
Noobzor
Noobzor
Posts: 7
Joined: Thu Aug 10, 2023 3:29 am
Reputation: 1

Re: Last Epoch Save Editor

Post by Rukongai »

Architect wrote:
Sat Mar 09, 2024 4:35 am

You are correct. The game does not store the actual data of the affixes in the item itself. Rather, it stores the number of rolls of that affix in an array, and then maps this number with the actual values of the affix stored somewhere else.

...
Hey man, I just wanted to say thank you. This was exactly what I needed. I was able to dump all the affix roll ranges, then figured out that the byte holding the tier value is also range mapped on 0-100, using those, I was able to calculate the rolls on the individual affixes.

Architect
Cheater
Cheater
Posts: 32
Joined: Mon May 22, 2017 4:09 pm
Reputation: 9

Re: Last Epoch Save Editor

Post by Architect »

Rukongai wrote:
Mon Mar 11, 2024 3:47 am
Hey man, I just wanted to say thank you. This was exactly what I needed. I was able to dump all the affix roll ranges, then figured out that the byte holding the tier value is also range mapped on 0-100, using those, I was able to calculate the rolls on the individual affixes.
No worries, glad to help. The items are a bit straightforward, especially the affixes. What's a bit more strange would be the unique rolls, which are not treated as affixes like in other games but are a totally different (but still similar) class. It also follows the same logic (it gets rolled from 0-255 times, etc), but is closer in concept to implicit rolls. The _number_ of rolls are stored in an array of bytes (0-255) which are then subsequently mapped into another array of actual stats. Code-wise, looks like so:

Code: Select all

for (int i = 0; i < o_ItemDataUnpacked.implicitRolls.Count; i++)
{
	o_ItemDataUnpacked.implicitRolls[i] = byte.MaxValue;
}
for (int i = 0; i < o_ItemDataUnpacked.uniqueRolls.Count; i++)
{
	o_ItemDataUnpacked.uniqueRolls[i] = byte.MaxValue;
}
I do need some help myself and I don't know if anyone's figured this out. I'm trying to find where the passives data are stored. I can manipulate them to get 255 of a passive but beside getting their allocated points, names, the name of their stats, but as to where these stats are stored, I cannot find a way.

lanshu777
Noobzor
Noobzor
Posts: 10
Joined: Fri Feb 05, 2021 12:15 pm
Reputation: 1

Re: Last Epoch Save Editor

Post by lanshu777 »

save editor error: unhandled exception has occurred in your application.
Any one has the same problem? How to fix it?

User avatar
Ash06
Expert Cheater
Expert Cheater
Posts: 260
Joined: Wed Oct 09, 2019 2:34 pm
Reputation: 119

Re: Last Epoch Save Editor

Post by Ash06 »

Architect wrote:
Mon Mar 11, 2024 6:22 am
I'm trying to find where the passives data are stored.

Code: Select all

int unique_index = 0; //Edit for your unique
byte unique_base_type = UniqueList.instance.uniques[unique_index].baseType;
byte unique_sub_type = UniqueList.instance.uniques[unique_index].subTypes[0];
foreach (ItemList.BaseEquipmentItem base_item in ItemList.instance.EquippableItems)
{
	if (base_item.baseTypeID == unique_base_type)
	{
		foreach (ItemList.EquipmentItem sub_item in base_item.subItems)
		{
			if (sub_item.subTypeID == unique_sub_type)
			{
				Il2CppSystem.Collections.Generic.List<ItemList.EquipmentImplicit> implicits = sub_item.implicits;
				//Edit Implicits here
				break;
			}
		}
		break;
	}
}

int mod_index = 0; //0 to 2
UniqueItemMod mods = UniqueList.instance.uniques[unique_index].mods[mod_index];
SP propertie = mods.property;
//edit Unique Mods here
Have to be done before you start with a character

yuris
What is cheating?
What is cheating?
Posts: 3
Joined: Tue Mar 12, 2024 4:01 pm
Reputation: 0

Re: Last Epoch Save Editor

Post by yuris »

Ash06 wrote:
Mon Mar 11, 2024 11:42 am
Architect wrote:
Mon Mar 11, 2024 6:22 am
I'm trying to find where the passives data are stored.

Code: Select all

int unique_index = 0; //Edit for your unique
byte unique_base_type = UniqueList.instance.uniques[unique_index].baseType;
byte unique_sub_type = UniqueList.instance.uniques[unique_index].subTypes[0];
foreach (ItemList.BaseEquipmentItem base_item in ItemList.instance.EquippableItems)
{
	if (base_item.baseTypeID == unique_base_type)
	{
		foreach (ItemList.EquipmentItem sub_item in base_item.subItems)
		{
			if (sub_item.subTypeID == unique_sub_type)
			{
				Il2CppSystem.Collections.Generic.List<ItemList.EquipmentImplicit> implicits = sub_item.implicits;
				//Edit Implicits here
				break;
			}
		}
		break;
	}
}

int mod_index = 0; //0 to 2
UniqueItemMod mods = UniqueList.instance.uniques[unique_index].mods[mod_index];
SP propertie = mods.property;
//edit Unique Mods here
Have to be done before you start with a character
Hi Ash06,

I am trying to start the game but I get a cp2il.exe error, it denies me access.

[16:57:19.868] [Il2CppAssemblyGenerator] Extracting H:\Last Epoch\MelonLoader\Dependencies\Il2CppAssemblyGenerator\Cpp2IL_2022.1.0-pre-release.8.zip to H:\Last Epoch\MelonLoader\Dependencies\Il2CppAssemblyGenerator\Cpp2IL
[16:57:19.960] [Il2CppAssemblyGenerator] [ERROR] System.UnauthorizedAccessException: Access to the path "H:\Last Epoch\MelonLoader\Dependencies\Il2CppAssemblyGenerator\Cpp2IL\Cpp2IL.exe" is denied.

at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) [0x0019e] in <e1319b7195c343e79b385cd3aa43f5dc>:0

at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.IO.FileOptions options) [0x00000] in <e1319b7195c343e79b385cd3aa43f5dc>:0

at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean useAsync) [0x00000] in <e1319b7195c343e79b385cd3aa43f5dc>:0

at (wrapper remoting-invoke-with-check) System.IO.FileStream..ctor(string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,int,bool)

at System.IO.Compression.ZipFileExtensions.ExtractToFile (System.IO.Compression.ZipArchiveEntry source, System.String destinationFileName, System.Boolean overwrite) [0x00024] in <76d9a00775ca40f2b0898a0852fe66aa>:0

at System.IO.Compression.ZipFileExtensions.ExtractToDirectory (System.IO.Compression.ZipArchive source, System.String destinationDirectoryName, System.Boolean overwrite) [0x0009d] in <76d9a00775ca40f2b0898a0852fe66aa>:0

at System.IO.Compression.ZipFile.ExtractToDirectory (System.String sourceArchiveFileName, System.String destinationDirectoryName, System.Text.Encoding entryNameEncoding, System.Boolean overwrite) [0x00017] in <76d9a00775ca40f2b0898a0852fe66aa>:0

at System.IO.Compression.ZipFile.ExtractToDirectory (System.String sourceArchiveFileName, System.String destinationDirectoryName, System.Text.Encoding entryNameEncoding) [0x00000] in <76d9a00775ca40f2b0898a0852fe66aa>:0

at System.IO.Compression.ZipFile.ExtractToDirectory (System.String sourceArchiveFileName, System.String destinationDirectoryName) [0x00000] in <76d9a00775ca40f2b0898a0852fe66aa>:0

at MelonLoader.Il2CppAssemblyGenerator.FileHandler.Process (System.String filepath, System.String destination) [0x00141] in <c5740a4bf8844aa0bba791293b614f53>:0
[16:57:19.963] [INTERNAL FAILURE] Failed to Process Cpp2IL!

I tried some time to re-install or uninstall the game but nothing.

aypoch
What is cheating?
What is cheating?
Posts: 1
Joined: Sat Feb 17, 2024 11:22 pm
Reputation: 0

Re: Last Epoch Save Editor

Post by aypoch »

Ash, using the Mods I am getting HUGE lag issues when loot drops or mousing over any item on the floor since your recent update. i rolled back to previous issue and no issues with it. just to let you know. Thanks for all your hard work

User avatar
Chindopopito
Expert Cheater
Expert Cheater
Posts: 88
Joined: Wed Apr 26, 2023 4:40 pm
Reputation: 30

Re: Last Epoch Save Editor

Post by Chindopopito »

Ash06 wrote:
Sat Mar 09, 2024 11:07 am
kyiori wrote:
Sat Mar 09, 2024 9:42 am
How to use the mod to modify the exact afflix and tier instead of save editor
ForceDrop is what you need, Drop a new item with values you want
Im on the 1.0.3 version of the game and Force drop drops nothing. :(

Grizwoldz
What is cheating?
What is cheating?
Posts: 1
Joined: Thu Mar 14, 2024 8:09 am
Reputation: 0

Re: Last Epoch Save Editor

Post by Grizwoldz »

Chindopopito wrote:
Thu Mar 14, 2024 4:49 am

Im on the 1.0.3 version of the game and Force drop drops nothing. :(
Happened after game patch yesterday. ForceDrops doesn't work anymore plus all random drops in game are common rarity.

Edit: To be a bit more specific, these error lines show up in melonloader:

"[ERROR] Exception in Harmony patch of method int GenerateItems::RollAffixes(ItemDataUnpacked& item, int ilvl, bool canRollUncraftableTiers, bool forceExalted, Boolean& hasUncraftableAffix, Il2CppSystem.Nullable`1[[LE.Factions.FactionID, LE, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]& forcedFaction):
System.NullReferenceException: Object reference not set to an instance of an object.
at UnhollowerBaseLib.IL2CPP.Il2CppObjectBaseToPtrNotNull (UnhollowerBaseLib.Il2CppObjectBase obj) [0x00004] in <6f5e4ff5bbd94258ab8bd773251f8e6c>:0
at (wrapper dynamic-method) GenerateItems.DMD<GenerateItems::RollAffixes>(GenerateItems,ItemDataUnpacked&,int,bool,bool,bool&,Il2CppSystem.Nullable`1<LE.Factions.FactionID>&)
at (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition.DMD<GenerateItems::RollAffixes>_il2cpp(intptr,intptr*,int,bool,bool,bool&,intptr*)


And then it goes on and on for awhile.

User avatar
Ash06
Expert Cheater
Expert Cheater
Posts: 260
Joined: Wed Oct 09, 2019 2:34 pm
Reputation: 119

Re: Last Epoch Save Editor

Post by Ash06 »

Fix in V3.1.3

User avatar
Chindopopito
Expert Cheater
Expert Cheater
Posts: 88
Joined: Wed Apr 26, 2023 4:40 pm
Reputation: 30

Re: Last Epoch Save Editor

Post by Chindopopito »

Ash06 wrote:
Thu Mar 14, 2024 1:54 pm
Fix in V3.1.3
Thank you, Ash.

Hasgalath
What is cheating?
What is cheating?
Posts: 1
Joined: Thu Mar 14, 2024 5:42 pm
Reputation: 0

Re: Last Epoch Save Editor

Post by Hasgalath »

Hey thanks for making the mod, could you by any chance update the github repo? The last commit is quite old. I wanna get into modding this game and would love to take a look at your code as a base since i've never made mods for unity games. Also i think something is wrong with the latest version of the mod (3.1.3), item drops seem to be bugged, for example i've gotten several totems with no modifiers and some rare item monoliths have dropped nothing (i held x so they're not hidden by filter). I thought something was wrong with the config file so i deleted it but even with default settings i'm getting the same behavior.

jackg4
Cheater
Cheater
Posts: 41
Joined: Sat Aug 05, 2017 4:03 am
Reputation: 3

Re: Last Epoch Save Editor

Post by jackg4 »

Hello Ash. Thanks for your Mods and Save Editor. Awesome. Recently, the Save Editor isn't working for me. I'm trying to edit items in Inventory. I save the item, then save the character but nothing changes in game. I'm editing character 13 of 20 on the list. (Been playing for years.) Is that too many characters to handle or something else?

Post Reply

Who is online

Users browsing this forum: RingerPinger