Last Epoch

Upload your cheat tables here (No requests)
Jonastpz
Noobzor
Noobzor
Posts: 6
Joined: Wed Jul 21, 2021 7:20 am
Reputation: 0

Re: Last Epoch

Post by Jonastpz »

bom

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
sanitka
Expert Cheater
Expert Cheater
Posts: 493
Joined: Sat Aug 22, 2020 5:40 am
Reputation: 249

Re: Last Epoch

Post by sanitka »

senseirain wrote:
Sun Feb 25, 2024 5:13 am
is that a code for change class specialization?
You should be able to do it using a Save Editor.

garfield028
What is cheating?
What is cheating?
Posts: 2
Joined: Fri Feb 23, 2024 6:52 pm
Reputation: 0

Re: Last Epoch

Post by garfield028 »

sanitka wrote:
Sat Feb 24, 2024 10:52 pm
For those who enjoy disector and structures ;) as there is inventory, equipment, shards ... everything

Get Player Actor Pointer (copy & paste to your table):
Hooked PlayerFinder.getPlayerActor

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>547</ID>
      <Description>"Get Actor"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Last Epoch.exe
  Version: 
  Date   : 2024-02-24
  Author : SanitKa

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(INJGETACTOR,GameAssembly.dll,48 8B 80 B8 00 00 00 48 8B 40 38 48 83 C4 20 5B C3 E8) // should be unique
alloc(newmem,$1000,INJGETACTOR)

label(code)
label(return)
label(actorPtr)

newmem:

code:
  mov rax,[rax+000000B8]       // long version; any offset
  mov rax,[rax+38]             // short version; 7F max offset
  mov [actorPtr],rax

  jmp return

actorPtr:
  dq 0

INJGETACTOR:
  jmp newmem
  nop 6                        // nop both mov rax ...

return:
registersymbol(INJGETACTOR)
registersymbol(actorPtr)

[DISABLE]

INJGETACTOR:
  db 48 8B 80 B8 00 00 00 48 8B 40 38

unregistersymbol(*)
dealloc(newmem)

{
PlayerFinder.getPlayerActor
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+12DB116

GameAssembly.dll+12DB0E6: 48 89 01              - mov [rcx],rax
GameAssembly.dll+12DB0E9: E8 42 66 DF FE        - call GameAssembly.dll+D1730
GameAssembly.dll+12DB0EE: 48 8B 05 43 D7 8E 04  - mov rax,[GameAssembly.dll+5BC8838]
GameAssembly.dll+12DB0F5: F6 80 2F 01 00 00 02  - test byte ptr [rax+0000012F],02
GameAssembly.dll+12DB0FC: 74 18                 - je GameAssembly.dll+12DB116
GameAssembly.dll+12DB0FE: 83 B8 E0 00 00 00 00  - cmp dword ptr [rax+000000E0],00
GameAssembly.dll+12DB105: 75 0F                 - jne GameAssembly.dll+12DB116
GameAssembly.dll+12DB107: 48 8B C8              - mov rcx,rax
GameAssembly.dll+12DB10A: E8 21 C5 D7 FE        - call GameAssembly.il2cpp_runtime_class_init
GameAssembly.dll+12DB10F: 48 8B 05 22 D7 8E 04  - mov rax,[GameAssembly.dll+5BC8838]
GameAssembly.dll+12DB116: 48 8B 80 B8 00 00 00  - mov rax,[rax+000000B8]
// ---------- INJECTING HERE ----------
GameAssembly.dll+12DB11D: 48 8B 40 38           - mov rax,[rax+38]
GameAssembly.dll+12DB121: 48 83 C4 20           - add rsp,20
// ---------- DONE INJECTING  ----------
GameAssembly.dll+12DB125: 5B                    - pop rbx
GameAssembly.dll+12DB126: C3                    - ret 
GameAssembly.dll+12DB127: E8 34 6A DF FE        - call GameAssembly.dll+D1B60
GameAssembly.dll+12DB12C: CC                    - int 3 
GameAssembly.dll+12DB12D: CC                    - int 3 
GameAssembly.dll+12DB12E: CC                    - int 3 
GameAssembly.dll+12DB12F: CC                    - int 3 
PlayerFinder.getPlayerDataTracker: 40 53                 - push rbx
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>5</ID>
          <Description>"Actor Ptr"</Description>
          <ShowAsHex>1</ShowAsHex>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>8 Bytes</VariableType>
          <Address>actorPtr</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Actor Structure (save to disk and import in Structure Disect):

Code: Select all

<Structures>
  <Structure Name="Actor" AutoFill="0" AutoCreate="1" DefaultHex="0" AutoDestroy="0" DoNotSaveLocal="0" RLECompression="1" AutoCreateStructsize="4096">
    <Elements>
      <Element Offset="16" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000010" Description="m_CachedPtr" DisplayMethod="unsigned integer"/>
      <Element Offset="24" Vartype="Pointer" Bytesize="8" OffsetHex="00000018" ChildStruct="ActorData" Description="data" DisplayMethod="unsigned integer"/>
      <Element Offset="32" Vartype="Pointer" Bytesize="8" OffsetHex="00000020" Description="actorSync" DisplayMethod="unsigned integer"/>
      <Element Offset="40" Vartype="Byte" Bytesize="1" OffsetHex="00000028" Description="foundActorSync" DisplayMethod="unsigned integer"/>
      <Element Offset="48" Vartype="Pointer" Bytesize="8" OffsetHex="00000030" Description="health" DisplayMethod="unsigned integer">
        <Structure Name="UnitHealth" AutoFill="0" AutoCreate="1" DefaultHex="0" AutoDestroy="0" DoNotSaveLocal="0" RLECompression="1" AutoCreateStructsize="4096">
          <Elements>
            <Element Offset="16" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000010" Description="m_CachedPtr" DisplayMethod="unsigned integer"/>
            <Element Offset="24" Vartype="Byte" Bytesize="1" OffsetHex="00000018" Description="_hasFirstTicked" DisplayMethod="unsigned integer"/>
            <Element Offset="32" Vartype="Pointer" Bytesize="8" OffsetHex="00000020" Description="actor" DisplayMethod="unsigned integer"/>
            <Element Offset="40" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000028" Description="maxHealth" DisplayMethod="unsigned integer"/>
            <Element Offset="44" Vartype="Float" Bytesize="4" OffsetHex="0000002C" Description="currentHealth" DisplayMethod="unsigned integer"/>
            <Element Offset="48" Vartype="Byte" Bytesize="1" OffsetHex="00000030" Description="damageable" DisplayMethod="unsigned integer"/>
            <Element Offset="49" Vartype="Byte" Bytesize="1" OffsetHex="00000031" Description="canDie" DisplayMethod="unsigned integer"/>
            <Element Offset="50" Vartype="Byte" Bytesize="1" OffsetHex="00000032" Description="healable" DisplayMethod="unsigned integer"/>
            <Element Offset="52" Vartype="Float" Bytesize="4" OffsetHex="00000034" Description="baseHealthRegenPerSecond" DisplayMethod="unsigned integer"/>
            <Element Offset="56" Vartype="Float" Bytesize="4" OffsetHex="00000038" Description="addedHealthRegenPerSecond" DisplayMethod="unsigned integer"/>
            <Element Offset="64" Vartype="Pointer" Bytesize="8" OffsetHex="00000040" Description="damageTakenEvent" DisplayMethod="unsigned integer"/>
            <Element Offset="72" Vartype="Pointer" Bytesize="8" OffsetHex="00000048" Description="lethalDamageTakenEvent" DisplayMethod="unsigned integer"/>
            <Element Offset="80" Vartype="Pointer" Bytesize="8" OffsetHex="00000050" Description="healthChangeEvent" DisplayMethod="unsigned integer"/>
            <Element Offset="88" Vartype="Pointer" Bytesize="8" OffsetHex="00000058" Description="unimportanceModifier" DisplayMethod="unsigned integer"/>
            <Element Offset="96" Vartype="Pointer" Bytesize="8" OffsetHex="00000060" Description="unimportanceCoroutine" DisplayMethod="unsigned integer"/>
            <Element Offset="104" Vartype="Float" Bytesize="4" OffsetHex="00000068" Description="origonalUnimportance" DisplayMethod="unsigned integer"/>
            <Element Offset="108" Vartype="4 Bytes" Bytesize="4" OffsetHex="0000006C" Description="additionalSourcesOfCannotDie" DisplayMethod="unsigned integer"/>
            <Element Offset="112" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000070" Description="oldHealthRatio" DisplayMethod="unsigned integer"/>
            <Element Offset="116" Vartype="Byte" Bytesize="1" OffsetHex="00000074" Description="healthRatio" DisplayMethod="unsigned integer"/>
            <Element Offset="117" Vartype="Byte" Bytesize="1" OffsetHex="00000075" Description="useHealthCap" DisplayMethod="unsigned integer"/>
            <Element Offset="120" Vartype="Float" Bytesize="4" OffsetHex="00000078" Description="healthCap" DisplayMethod="unsigned integer"/>
            <Element Offset="128" Vartype="Pointer" Bytesize="8" OffsetHex="00000080" Description="activeHealthCaps" DisplayMethod="unsigned integer"/>
            <Element Offset="136" Vartype="Pointer" Bytesize="8" OffsetHex="00000088" Description="tForm" DisplayMethod="unsigned integer"/>
            <Element Offset="144" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000090" Description="healthSerialisation" DisplayMethod="unsigned integer"/>
            <Element Offset="148" Vartype="Float" Bytesize="4" OffsetHex="00000094" Description="effectiveHealthModifier" DisplayMethod="unsigned integer"/>
            <Element Offset="152" Vartype="Float" Bytesize="4" OffsetHex="00000098" Description="startingHealthPercentage" DisplayMethod="unsigned integer"/>
            <Element Offset="160" Vartype="Pointer" Bytesize="8" OffsetHex="000000A0" Description="protectionDamageTypes" DisplayMethod="unsigned integer"/>
            <Element Offset="168" Vartype="Pointer" Bytesize="8" OffsetHex="000000A8" Description="relativeProtectionValues" DisplayMethod="unsigned integer"/>
          </Elements>
        </Structure>
      </Element>
      <Element Offset="56" Vartype="Pointer" Bytesize="8" OffsetHex="00000038" Description="alignmentManager" DisplayMethod="unsigned integer"/>
      <Element Offset="64" Vartype="Pointer" Bytesize="8" OffsetHex="00000040" Description="protection" DisplayMethod="unsigned integer"/>
      <Element Offset="72" Vartype="Pointer" Bytesize="8" OffsetHex="00000048" Description="stats" DisplayMethod="unsigned integer"/>
      <Element Offset="80" Vartype="Pointer" Bytesize="8" OffsetHex="00000050" Description="dying" DisplayMethod="unsigned integer"/>
      <Element Offset="88" Vartype="Pointer" Bytesize="8" OffsetHex="00000058" Description="stateController" DisplayMethod="unsigned integer"/>
      <Element Offset="96" Vartype="Pointer" Bytesize="8" OffsetHex="00000060" Description="summoned" DisplayMethod="unsigned integer"/>
      <Element Offset="104" Vartype="Pointer" Bytesize="8" OffsetHex="00000068" Description="mana" DisplayMethod="unsigned integer"/>
      <Element Offset="112" Vartype="Pointer" Bytesize="8" OffsetHex="00000070" Description="chargeManager" DisplayMethod="unsigned integer"/>
      <Element Offset="120" Vartype="Pointer" Bytesize="8" OffsetHex="00000078" Description="leechTracker" DisplayMethod="unsigned integer"/>
      <Element Offset="128" Vartype="Pointer" Bytesize="8" OffsetHex="00000080" Description="statBuffs" DisplayMethod="unsigned integer"/>
      <Element Offset="136" Vartype="Pointer" Bytesize="8" OffsetHex="00000088" Description="abilityObjectConstructor" DisplayMethod="unsigned integer"/>
      <Element Offset="144" Vartype="Pointer" Bytesize="8" OffsetHex="00000090" Description="tForm" DisplayMethod="unsigned integer"/>
      <Element Offset="152" Vartype="Pointer" Bytesize="8" OffsetHex="00000098" Description="sizeManager" DisplayMethod="unsigned integer"/>
      <Element Offset="160" Vartype="Pointer" Bytesize="8" OffsetHex="000000A0" Description="navMeshAgent" DisplayMethod="unsigned integer"/>
      <Element Offset="168" Vartype="Pointer" Bytesize="8" OffsetHex="000000A8" Description="ailmentReceiver" DisplayMethod="unsigned integer"/>
      <Element Offset="176" Vartype="Pointer" Bytesize="8" OffsetHex="000000B0" Description="accuracyManager" DisplayMethod="unsigned integer"/>
      <Element Offset="184" Vartype="Pointer" Bytesize="8" OffsetHex="000000B8" Description="animationManager" DisplayMethod="unsigned integer"/>
      <Element Offset="192" Vartype="Pointer" Bytesize="8" OffsetHex="000000C0" Description="targetFinder" DisplayMethod="unsigned integer"/>
      <Element Offset="200" Vartype="Pointer" Bytesize="8" OffsetHex="000000C8" Description="waiting" DisplayMethod="unsigned integer"/>
      <Element Offset="208" Vartype="Pointer" Bytesize="8" OffsetHex="000000D0" Description="movingToTarget" DisplayMethod="unsigned integer"/>
      <Element Offset="216" Vartype="Pointer" Bytesize="8" OffsetHex="000000D8" Description="stunned" DisplayMethod="unsigned integer"/>
      <Element Offset="224" Vartype="Pointer" Bytesize="8" OffsetHex="000000E0" Description="relayDamageEvents" DisplayMethod="unsigned integer"/>
      <Element Offset="232" Vartype="Pointer" Bytesize="8" OffsetHex="000000E8" Description="stateSoundManager" DisplayMethod="unsigned integer"/>
      <Element Offset="240" Vartype="Pointer" Bytesize="8" OffsetHex="000000F0" Description="deathItemDrop" DisplayMethod="unsigned integer"/>
      <Element Offset="248" Vartype="Pointer" Bytesize="8" OffsetHex="000000F8" Description="itemContainersManager" DisplayMethod="unsigned integer">
        <Structure Name="ItemContainersManager" AutoFill="0" AutoCreate="1" DefaultHex="0" AutoDestroy="0" DoNotSaveLocal="0" RLECompression="1" AutoCreateStructsize="4096">
          <Elements>
            <Element Offset="16" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000010" Description="m_CachedPtr" DisplayMethod="unsigned integer"/>
            <Element Offset="24" Vartype="Byte" Bytesize="1" OffsetHex="00000018" Description="_hasFirstTicked" DisplayMethod="unsigned integer"/>
            <Element Offset="32" Vartype="Pointer" Bytesize="8" OffsetHex="00000020" Description="inventory" DisplayMethod="unsigned integer"/>
            <Element Offset="40" Vartype="Pointer" Bytesize="8" OffsetHex="00000028" Description="equipment" DisplayMethod="unsigned integer"/>
            <Element Offset="48" Vartype="Pointer" Bytesize="8" OffsetHex="00000030" Description="materials" DisplayMethod="unsigned integer"/>
            <Element Offset="56" Vartype="Pointer" Bytesize="8" OffsetHex="00000038" Description="cursor" DisplayMethod="unsigned integer"/>
            <Element Offset="64" Vartype="Pointer" Bytesize="8" OffsetHex="00000040" Description="swapBuffer" DisplayMethod="unsigned integer"/>
            <Element Offset="72" Vartype="Pointer" Bytesize="8" OffsetHex="00000048" Description="stash" DisplayMethod="unsigned integer"/>
            <Element Offset="80" Vartype="Pointer" Bytesize="8" OffsetHex="00000050" Description="shop" DisplayMethod="unsigned integer"/>
            <Element Offset="88" Vartype="Pointer" Bytesize="8" OffsetHex="00000058" Description="buyback" DisplayMethod="unsigned integer"/>
            <Element Offset="96" Vartype="Pointer" Bytesize="8" OffsetHex="00000060" Description="crafting" DisplayMethod="unsigned integer"/>
            <Element Offset="104" Vartype="Pointer" Bytesize="8" OffsetHex="00000068" Description="eternityCache" DisplayMethod="unsigned integer"/>
            <Element Offset="112" Vartype="Pointer" Bytesize="8" OffsetHex="00000070" Description="gambling" DisplayMethod="unsigned integer"/>
            <Element Offset="120" Vartype="Pointer" Bytesize="8" OffsetHex="00000078" Description="soulGambling" DisplayMethod="unsigned integer"/>
            <Element Offset="128" Vartype="Pointer" Bytesize="8" OffsetHex="00000080" Description="factionGamblingCoF" DisplayMethod="unsigned integer"/>
            <Element Offset="136" Vartype="Pointer" Bytesize="8" OffsetHex="00000088" Description="factionGamblingMG" DisplayMethod="unsigned integer"/>
            <Element Offset="144" Vartype="Pointer" Bytesize="8" OffsetHex="00000090" Description="arenaKey" DisplayMethod="unsigned integer"/>
            <Element Offset="152" Vartype="Pointer" Bytesize="8" OffsetHex="00000098" Description="dun1Key" DisplayMethod="unsigned integer"/>
            <Element Offset="160" Vartype="Pointer" Bytesize="8" OffsetHex="000000A0" Description="lightlessArborDungeonKey" DisplayMethod="unsigned integer"/>
            <Element Offset="168" Vartype="Pointer" Bytesize="8" OffsetHex="000000A8" Description="soulfireBastionDungeonKey" DisplayMethod="unsigned integer"/>
            <Element Offset="176" Vartype="Pointer" Bytesize="8" OffsetHex="000000B0" Description="idols" DisplayMethod="unsigned integer"/>
            <Element Offset="184" Vartype="Pointer" Bytesize="8" OffsetHex="000000B8" Description="blessings" DisplayMethod="unsigned integer"/>
            <Element Offset="192" Vartype="Pointer" Bytesize="8" OffsetHex="000000C0" Description="lenses" DisplayMethod="unsigned integer"/>
            <Element Offset="200" Vartype="Pointer" Bytesize="8" OffsetHex="000000C8" Description="giftedItems" DisplayMethod="unsigned integer"/>
            <Element Offset="208" Vartype="Pointer" Bytesize="8" OffsetHex="000000D0" Description="itemToGift" DisplayMethod="unsigned integer"/>
            <Element Offset="216" Vartype="Pointer" Bytesize="8" OffsetHex="000000D8" Description="itemToTrade" DisplayMethod="unsigned integer"/>
            <Element Offset="224" Vartype="Pointer" Bytesize="8" OffsetHex="000000E0" Description="itemToTradePreview" DisplayMethod="unsigned integer"/>
            <Element Offset="232" Vartype="Pointer" Bytesize="8" OffsetHex="000000E8" Description="itemToList" DisplayMethod="unsigned integer"/>
            <Element Offset="240" Vartype="Pointer" Bytesize="8" OffsetHex="000000F0" Description="craftingManager" DisplayMethod="unsigned integer"/>
            <Element Offset="248" Vartype="4 Bytes" Bytesize="4" OffsetHex="000000F8" Description="CursorPickedFromPos" DisplayMethod="unsigned integer"/>
            <Element Offset="256" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000100" Description="CursorPickedFromContainer" DisplayMethod="unsigned integer"/>
            <Element Offset="264" Vartype="Pointer" Bytesize="8" OffsetHex="00000108" Description="treeData" DisplayMethod="unsigned integer"/>
            <Element Offset="272" Vartype="Pointer" Bytesize="8" OffsetHex="00000110" Description="characterMutator" DisplayMethod="unsigned integer"/>
            <Element Offset="280" Vartype="Pointer" Bytesize="8" OffsetHex="00000118" Description="tracker" DisplayMethod="unsigned integer"/>
            <Element Offset="288" Vartype="Pointer" Bytesize="8" OffsetHex="00000120" Description="globalDataTracker" DisplayMethod="unsigned integer"/>
            <Element Offset="296" Vartype="Pointer" Bytesize="8" OffsetHex="00000128" Description="shardStorage" DisplayMethod="unsigned integer"/>
            <Element Offset="304" Vartype="Pointer" Bytesize="8" OffsetHex="00000130" Description="resonanceStorage" DisplayMethod="unsigned integer"/>
            <Element Offset="312" Vartype="Pointer" Bytesize="8" OffsetHex="00000138" Description="movingPlayer" DisplayMethod="unsigned integer"/>
            <Element Offset="320" Vartype="Pointer" Bytesize="8" OffsetHex="00000140" Description="actor" DisplayMethod="unsigned integer"/>
            <Element Offset="328" Vartype="Pointer" Bytesize="8" OffsetHex="00000148" Description="itemEquipManager" DisplayMethod="unsigned integer"/>
            <Element Offset="336" Vartype="Byte" Bytesize="1" OffsetHex="00000150" Description="fullyInitialisedAndLoaded" DisplayMethod="unsigned integer"/>
            <Element Offset="337" Vartype="Byte" Bytesize="1" OffsetHex="00000151" Description="saveStashFlag" DisplayMethod="unsigned integer"/>
            <Element Offset="338" Vartype="Byte" Bytesize="1" OffsetHex="00000152" Description="saveCharContainerFlag" DisplayMethod="unsigned integer"/>
            <Element Offset="339" Vartype="Byte" Bytesize="1" OffsetHex="00000153" Description="saveStashLayoutFlag" DisplayMethod="unsigned integer"/>
            <Element Offset="340" Vartype="Byte" Bytesize="1" OffsetHex="00000154" Description="syncBuybackFlag" DisplayMethod="unsigned integer"/>
            <Element Offset="341" Vartype="Byte" Bytesize="1" OffsetHex="00000155" Description="cursorLocked" DisplayMethod="unsigned integer"/>
            <Element Offset="342" Vartype="2 Bytes" Bytesize="2" OffsetHex="00000156" Description="soulGamblingSeed" DisplayMethod="unsigned integer"/>
            <Element Offset="344" Vartype="2 Bytes" Bytesize="2" OffsetHex="00000158" Description="itemsPurchasedFromSoulGamblerSincePopulated" DisplayMethod="unsigned integer"/>
            <Element Offset="352" Vartype="Pointer" Bytesize="8" OffsetHex="00000160" Description="OnCursorLockStatusChange" DisplayMethod="unsigned integer"/>
            <Element Offset="360" Vartype="Pointer" Bytesize="8" OffsetHex="00000168" Description="blessingsDiscovered" DisplayMethod="unsigned integer"/>
            <Element Offset="368" Vartype="Pointer" Bytesize="8" OffsetHex="00000170" Description="unequippableDropPairs" DisplayMethod="unsigned integer"/>
            <Element Offset="376" Vartype="Pointer" Bytesize="8" OffsetHex="00000178" Description="clientAdditionalOffhandBaseTypeProvider" DisplayMethod="unsigned integer"/>
            <Element Offset="384" Vartype="Pointer" Bytesize="8" OffsetHex="00000180" Description="tempCharacterInfoProvider" DisplayMethod="unsigned integer"/>
          </Elements>
        </Structure>
      </Element>
      <Element Offset="256" Vartype="Pointer" Bytesize="8" OffsetHex="00000100" Description="characterMutator" DisplayMethod="unsigned integer"/>
      <Element Offset="264" Vartype="Pointer" Bytesize="8" OffsetHex="00000108" Description="playerQuestListHolder" DisplayMethod="unsigned integer"/>
      <Element Offset="272" Vartype="Pointer" Bytesize="8" OffsetHex="00000110" Description="playerMonolithQuestListHolder" DisplayMethod="unsigned integer"/>
      <Element Offset="280" Vartype="Pointer" Bytesize="8" OffsetHex="00000118" Description="monolithRunsManager" DisplayMethod="unsigned integer"/>
      <Element Offset="288" Vartype="Pointer" Bytesize="8" OffsetHex="00000120" Description="goldTracker" DisplayMethod="unsigned integer"/>
      <Element Offset="296" Vartype="Pointer" Bytesize="8" OffsetHex="00000128" Description="factionInfo" DisplayMethod="unsigned integer"/>
      <Element Offset="304" Vartype="Pointer" Bytesize="8" OffsetHex="00000130" Description="resonancesTracker" DisplayMethod="unsigned integer"/>
      <Element Offset="312" Vartype="Pointer" Bytesize="8" OffsetHex="00000138" Description="experienceTracker" DisplayMethod="unsigned integer"/>
      <Element Offset="320" Vartype="Pointer" Bytesize="8" OffsetHex="00000140" Description="itemDropBonuses" DisplayMethod="unsigned integer"/>
      <Element Offset="328" Vartype="Pointer" Bytesize="8" OffsetHex="00000148" Description="generateItems" DisplayMethod="unsigned integer"/>
      <Element Offset="336" Vartype="Pointer" Bytesize="8" OffsetHex="00000150" Description="localTreeData" DisplayMethod="unsigned integer"/>
      <Element Offset="344" Vartype="Pointer" Bytesize="8" OffsetHex="00000158" Description="globalDataTracker" DisplayMethod="unsigned integer"/>
      <Element Offset="352" Vartype="Pointer" Bytesize="8" OffsetHex="00000160" Description="voteManager" DisplayMethod="unsigned integer"/>
      <Element Offset="360" Vartype="Pointer" Bytesize="8" OffsetHex="00000168" Description="dungeonRunManager" DisplayMethod="unsigned integer"/>
      <Element Offset="368" Vartype="Pointer" Bytesize="8" OffsetHex="00000170" Description="arenaRunManager" DisplayMethod="unsigned integer"/>
      <Element Offset="376" Vartype="Pointer" Bytesize="8" OffsetHex="00000178" Description="weaponInfoHolder" DisplayMethod="unsigned integer"/>
      <Element Offset="384" Vartype="Pointer" Bytesize="8" OffsetHex="00000180" Description="falconIdleState" DisplayMethod="unsigned integer"/>
      <Element Offset="392" Vartype="Pointer" Bytesize="8" OffsetHex="00000188" Description="actorPointerEventListener" DisplayMethod="unsigned integer"/>
      <Element Offset="400" Vartype="Pointer" Bytesize="8" OffsetHex="00000190" Description="colliders" DisplayMethod="unsigned integer"/>
      <Element Offset="408" Vartype="Float" Bytesize="4" OffsetHex="00000198" Description="unscaledRadius" DisplayMethod="unsigned integer"/>
      <Element Offset="412" Vartype="Byte" Bytesize="1" OffsetHex="0000019C" Description="cannotBePushed" DisplayMethod="unsigned integer"/>
      <Element Offset="413" Vartype="Byte" Bytesize="1" OffsetHex="0000019D" Description="isPlayerActor" DisplayMethod="unsigned integer"/>
      <Element Offset="416" Vartype="Float" Bytesize="4" OffsetHex="000001A0" Description="increasedPotionDroprate" DisplayMethod="unsigned integer"/>
      <Element Offset="420" Vartype="Byte" Bytesize="1" OffsetHex="000001A4" Description="cannotTargetWithMovementAbilities" DisplayMethod="unsigned integer"/>
      <Element Offset="424" Vartype="Float" Bytesize="4" OffsetHex="000001A8" Description="distanceFromCentreForAttackersToMoveTowards" DisplayMethod="unsigned integer"/>
      <Element Offset="428" Vartype="Byte" Bytesize="1" OffsetHex="000001AC" Description="neverValidTarget" DisplayMethod="unsigned integer"/>
      <Element Offset="429" Vartype="Byte" Bytesize="1" OffsetHex="000001AD" Description="cannotBeAffectedByDarkness" DisplayMethod="unsigned integer"/>
      <Element Offset="432" Vartype="4 Bytes" Bytesize="4" OffsetHex="000001B0" Description="totalSourcesOfTargetInvalidity" DisplayMethod="unsigned integer"/>
      <Element Offset="440" Vartype="Pointer" Bytesize="8" OffsetHex="000001B8" Description="abilityEventListener" DisplayMethod="unsigned integer"/>
      <Element Offset="448" Vartype="Pointer" Bytesize="8" OffsetHex="000001C0" Description="creationReferences" DisplayMethod="unsigned integer"/>
      <Element Offset="456" Vartype="Pointer" Bytesize="8" OffsetHex="000001C8" Description="summonTracker" DisplayMethod="unsigned integer"/>
      <Element Offset="464" Vartype="Pointer" Bytesize="8" OffsetHex="000001D0" Description="mutatorManager" DisplayMethod="unsigned integer"/>
      <Element Offset="472" Vartype="Byte" Bytesize="1" OffsetHex="000001D8" Description="hasMutatorManager" DisplayMethod="unsigned integer"/>
      <Element Offset="480" Vartype="Pointer" Bytesize="8" OffsetHex="000001E0" Description="hitSoundReceiver" DisplayMethod="unsigned integer"/>
      <Element Offset="488" Vartype="Byte" Bytesize="1" OffsetHex="000001E8" Description="checkedForHitSoundReceiver" DisplayMethod="unsigned integer"/>
      <Element Offset="489" Vartype="Byte" Bytesize="1" OffsetHex="000001E9" Description="hasHitSoundReceiver" DisplayMethod="unsigned integer"/>
      <Element Offset="496" Vartype="Pointer" Bytesize="8" OffsetHex="000001F0" Description="movingPlayerServer" DisplayMethod="unsigned integer"/>
      <Element Offset="504" Vartype="Pointer" Bytesize="8" OffsetHex="000001F8" Description="abilityList" DisplayMethod="unsigned integer"/>
      <Element Offset="512" Vartype="Pointer" Bytesize="8" OffsetHex="00000200" Description="characterDataTracker" DisplayMethod="unsigned integer"/>
      <Element Offset="520" Vartype="Pointer" Bytesize="8" OffsetHex="00000208" Description="healthPotion" DisplayMethod="unsigned integer"/>
      <Element Offset="528" Vartype="Pointer" Bytesize="8" OffsetHex="00000210" Description="minionStanceData" DisplayMethod="unsigned integer"/>
      <Element Offset="536" Vartype="Pointer" Bytesize="8" OffsetHex="00000218" Description="tooltipDPSManager" DisplayMethod="unsigned integer"/>
      <Element Offset="544" Vartype="Pointer" Bytesize="8" OffsetHex="00000220" Description="appliedModKeys" DisplayMethod="unsigned integer"/>
      <Element Offset="552" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000228" Description="rarity" DisplayMethod="unsigned integer"/>
      <Element Offset="553" Vartype="Byte" Bytesize="1" OffsetHex="00000229" Description="isMinion" DisplayMethod="unsigned integer"/>
      <Element Offset="554" Vartype="Byte" Bytesize="1" OffsetHex="0000022A" Description="isSummonedTotem" DisplayMethod="unsigned integer"/>
      <Element Offset="555" Vartype="Byte" Bytesize="1" OffsetHex="0000022B" Description="&lt;UsingAbilityHasActivated&gt;k__BackingField" DisplayMethod="unsigned integer"/>
      <Element Offset="556" Vartype="4 Bytes" Bytesize="4" OffsetHex="0000022C" Description="referenceVersion" DisplayMethod="unsigned integer"/>
      <Element Offset="560" Vartype="Pointer" Bytesize="8" OffsetHex="00000230" Description="usingAbilityActivatedEvent" DisplayMethod="unsigned integer"/>
      <Element Offset="568" Vartype="Pointer" Bytesize="8" OffsetHex="00000238" Description="reachedMovementAbilityDestinationEvent" DisplayMethod="unsigned integer"/>
      <Element Offset="576" Vartype="Pointer" Bytesize="8" OffsetHex="00000240" Description="movedToPlayerSpawnEvent" DisplayMethod="unsigned integer"/>
      <Element Offset="584" Vartype="Float" Bytesize="4" OffsetHex="00000248" Description="initialRadius" DisplayMethod="unsigned integer"/>
      <Element Offset="588" Vartype="Byte" Bytesize="1" OffsetHex="0000024C" Description="hasBeenDisabled" DisplayMethod="unsigned integer"/>
      <Element Offset="589" Vartype="Byte" Bytesize="1" OffsetHex="0000024D" Description="initialised" DisplayMethod="unsigned integer"/>
      <Element Offset="592" Vartype="Float" Bytesize="4" OffsetHex="00000250" Description="timeLastPulled" DisplayMethod="unsigned integer"/>
      <Element Offset="600" Vartype="Pointer" Bytesize="8" OffsetHex="00000258" Description="objectLastPulledBy" DisplayMethod="unsigned integer"/>
    </Elements>
  </Structure>
</Structures>
great job ... working success.~~

ZKK
Novice Cheater
Novice Cheater
Posts: 18
Joined: Fri Sep 03, 2021 11:28 pm
Reputation: 1

Re: Last Epoch

Post by ZKK »

muliari14 wrote:
Sun Feb 25, 2024 3:38 am
Impala wrote:
Fri Feb 23, 2024 4:39 pm
These Three Script Did Not Work For Me:
-Max Unique, Sets and Implicit Rolls
-Max Affix Rolls for others
-Vacuum Crafting Mats


Cannot Toggle:
-Instant Max Bonus Stability
I have the same issue with some of these scripts. I would assume it's because I don't have the Steam version of the game. Even with Mono Activated I have some scripts that tells me "error scanning AOB" and some that activate without having any effects. feels like that I'm gonna need to buy the Steam version to fix these random issue with scripts.

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

Re: Last Epoch

Post by Chindopopito »

Guys having issues with the table, are you playing the 1.0.0d version of the game? I have no issues with any of the scripts (so far).

Degrec
What is cheating?
What is cheating?
Posts: 1
Joined: Sun Feb 25, 2024 5:44 pm
Reputation: 0

Re: Last Epoch

Post by Degrec »

Mind if I ask how you got the pointer to the adress of potion amount?

I have been trying to make a pot usage external bot but I have trouble finding the right address

monakian
What is cheating?
What is cheating?
Posts: 1
Joined: Thu May 13, 2021 10:35 am
Reputation: 0

Re: Last Epoch

Post by monakian »

This is awesome!.
Can we have that thing that used to autokill every mob on the map? (or a large portion of them)
Thanks in advance =)

muliari14
Novice Cheater
Novice Cheater
Posts: 15
Joined: Fri Apr 26, 2019 7:01 am
Reputation: 0

Re: Last Epoch

Post by muliari14 »

We Still Can Not Edit Legendary Potential

User avatar
sanitka
Expert Cheater
Expert Cheater
Posts: 493
Joined: Sat Aug 22, 2020 5:40 am
Reputation: 249

Re: Last Epoch

Post by sanitka »

Degrec wrote:
Sun Feb 25, 2024 5:47 pm
Mind if I ask how you got the pointer to the adress of potion amount?

I have been trying to make a pot usage external bot but I have trouble finding the right address
Learn CE and check the script / Mono / unity objects. ;)

Impala
Table Makers
Table Makers
Posts: 659
Joined: Tue Apr 18, 2017 6:47 pm
Reputation: 457

Re: Last Epoch

Post by Impala »

I think I'm done with the game, I added corruption and stability stuff, not sure if the corruption thing works, haven't tested it much.

Stability stuff does though, use corruption at own risk

User avatar
sanitka
Expert Cheater
Expert Cheater
Posts: 493
Joined: Sat Aug 22, 2020 5:40 am
Reputation: 249

Re: Last Epoch

Post by sanitka »

Tired of item level requirements ?
Hooked TooltipItemManager.ReqLevel

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>565</ID>
      <Description>"Pass Item Lvl Req"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Last Epoch.exe
  Version: 
  Date   : 2024-02-26
  Author : SanitKa

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(INJITMREQ,GameAssembly.dll,8B 83 8C 00 00 00 83) // should be unique
alloc(newmem,$1000,INJITMREQ)

label(code)
label(return)

newmem:

code:
  mov eax,[rbx+0000008C]
  cmp eax,ebp
  jl return

  mov eax,02                                   // item lvl 01 is a special case thus 02
  mov [rbx+0000008C],eax

  jmp return

INJITMREQ:
  jmp newmem
  nop
return:
registersymbol(INJITMREQ)

[DISABLE]

INJITMREQ:
  db 8B 83 8C 00 00 00

unregistersymbol(INJITMREQ)
dealloc(newmem)

{
TooltipItemManager.ReqLevel

// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+CCCE66

GameAssembly.dll+CCCE38: 0F 87 DD 03 00 00     - ja GameAssembly.dll+CCD21B
GameAssembly.dll+CCCE3E: 48 8B 0D 23 F7 19 05  - mov rcx,[GameAssembly.dll+5E6C568]
GameAssembly.dll+CCCE45: F6 81 2F 01 00 00 02  - test byte ptr [rcx+0000012F],02
GameAssembly.dll+CCCE4C: 74 0E                 - je GameAssembly.dll+CCCE5C
GameAssembly.dll+CCCE4E: 83 B9 E0 00 00 00 00  - cmp dword ptr [rcx+000000E0],00
GameAssembly.dll+CCCE55: 75 05                 - jne GameAssembly.dll+CCCE5C
GameAssembly.dll+CCCE57: E8 54 AD 7B FF        - call GameAssembly.il2cpp_runtime_class_init
GameAssembly.dll+CCCE5C: 33 C9                 - xor ecx,ecx
GameAssembly.dll+CCCE5E: E8 BD AC A2 FF        - call PlayerFinder.localPlayerLevel
GameAssembly.dll+CCCE63: 0F B6 E8              - movzx ebp,al
// ---------- INJECTING HERE ----------
GameAssembly.dll+CCCE66: 8B 83 8C 00 00 00     - mov eax,[rbx+0000008C]
// ---------- DONE INJECTING  ----------
GameAssembly.dll+CCCE6C: 83 F8 01              - cmp eax,01
GameAssembly.dll+CCCE6F: 0F 8F B6 00 00 00     - jg GameAssembly.dll+CCCF2B
GameAssembly.dll+CCCE75: 83 FE 08              - cmp esi,08
GameAssembly.dll+CCCE78: 0F 85 9D 03 00 00     - jne GameAssembly.dll+CCD21B
GameAssembly.dll+CCCE7E: 48 8B 0D 43 B0 19 05  - mov rcx,[GameAssembly.dll+5E67EC8]
GameAssembly.dll+CCCE85: 3B C5                 - cmp eax,ebp
GameAssembly.dll+CCCE87: 7F 51                 - jg GameAssembly.dll+CCCEDA
GameAssembly.dll+CCCE89: F6 81 2F 01 00 00 02  - test byte ptr [rcx+0000012F],02
GameAssembly.dll+CCCE90: 74 0E                 - je GameAssembly.dll+CCCEA0
GameAssembly.dll+CCCE92: 83 B9 E0 00 00 00 00  - cmp dword ptr [rcx+000000E0],00
}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>

Jonastpz
Noobzor
Noobzor
Posts: 6
Joined: Wed Jul 21, 2021 7:20 am
Reputation: 0

Re: Last Epoch

Post by Jonastpz »

For those who want this is the Infinite Runes command
Spoiler
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>559</ID>
<Description>"Infinite Runes (Open Inventory) Backup"</Description>
<Color>4080FF</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
aobscanmodule(infrunes,GameAssembly.dll,8B 40 28 48 83 C4 20 5B C3 E8 8B) // should be unique
alloc(newmem,$1000,infrunes)

label(code)
label(return)

newmem:

code:
mov [rax+28],#999
mov eax,[rax+28]
add rsp,20
jmp return

infrunes:
jmp newmem
nop 2
return:
registersymbol(infrunes)

[DISABLE]

infrunes:
db 8B 40 28 48 83 C4 20

unregistersymbol(infrunes)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+E2C827

GameAssembly.dll+E2C804: 48 8D 4C 24 30 - lea rcx,[rsp+30]
GameAssembly.dll+E2C809: 48 8B 50 20 - mov rdx,[rax+20]
GameAssembly.dll+E2C80D: 48 89 54 24 30 - mov [rsp+30],rdx
GameAssembly.dll+E2C812: E8 09 54 6D FF - call GameAssembly.dll+501C20
GameAssembly.dll+E2C817: 48 8B 44 24 30 - mov rax,[rsp+30]
GameAssembly.dll+E2C81C: 48 85 C0 - test rax,rax
GameAssembly.dll+E2C81F: 75 06 - jne GameAssembly.dll+E2C827
GameAssembly.dll+E2C821: 48 83 C4 20 - add rsp,20
GameAssembly.dll+E2C825: 5B - pop rbx
GameAssembly.dll+E2C826: C3 - ret
// ---------- INJECTING HERE ----------
GameAssembly.dll+E2C827: 8B 40 28 - mov eax,[rax+28]
// ---------- DONE INJECTING ----------
GameAssembly.dll+E2C82A: 48 83 C4 20 - add rsp,20
GameAssembly.dll+E2C82E: 5B - pop rbx
GameAssembly.dll+E2C82F: C3 - ret
GameAssembly.dll+E2C830: E8 1B 58 6D FF - call GameAssembly.dll+502050
GameAssembly.dll+E2C835: CC - int 3
GameAssembly.dll+E2C836: CC - int 3
GameAssembly.dll+E2C837: CC - int 3
GameAssembly.dll+E2C838: CC - int 3
GameAssembly.dll+E2C839: CC - int 3
GameAssembly.dll+E2C83A: CC - int 3
}
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatTable>

Jonastpz
Noobzor
Noobzor
Posts: 6
Joined: Wed Jul 21, 2021 7:20 am
Reputation: 0

Re: Last Epoch

Post by Jonastpz »

Infinite Runes (Open Inventory) Backup

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>559</ID>
      <Description>"Infinite Runes (Open Inventory) Backup"</Description>
      <Color>4080FF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
aobscanmodule(infrunes,GameAssembly.dll,8B 40 28 48 83 C4 20 5B C3 E8 8B) // should be unique
alloc(newmem,$1000,infrunes)

label(code)
label(return)

newmem:

code:
  mov [rax+28],#999
  mov eax,[rax+28]
  add rsp,20
  jmp return

infrunes:
  jmp newmem
  nop 2
return:
registersymbol(infrunes)

[DISABLE]

infrunes:
  db 8B 40 28 48 83 C4 20

unregistersymbol(infrunes)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+E2C827

GameAssembly.dll+E2C804: 48 8D 4C 24 30  - lea rcx,[rsp+30]
GameAssembly.dll+E2C809: 48 8B 50 20     - mov rdx,[rax+20]
GameAssembly.dll+E2C80D: 48 89 54 24 30  - mov [rsp+30],rdx
GameAssembly.dll+E2C812: E8 09 54 6D FF  - call GameAssembly.dll+501C20
GameAssembly.dll+E2C817: 48 8B 44 24 30  - mov rax,[rsp+30]
GameAssembly.dll+E2C81C: 48 85 C0        - test rax,rax
GameAssembly.dll+E2C81F: 75 06           - jne GameAssembly.dll+E2C827
GameAssembly.dll+E2C821: 48 83 C4 20     - add rsp,20
GameAssembly.dll+E2C825: 5B              - pop rbx
GameAssembly.dll+E2C826: C3              - ret 
// ---------- INJECTING HERE ----------
GameAssembly.dll+E2C827: 8B 40 28        - mov eax,[rax+28]
// ---------- DONE INJECTING  ----------
GameAssembly.dll+E2C82A: 48 83 C4 20     - add rsp,20
GameAssembly.dll+E2C82E: 5B              - pop rbx
GameAssembly.dll+E2C82F: C3              - ret 
GameAssembly.dll+E2C830: E8 1B 58 6D FF  - call GameAssembly.dll+502050
GameAssembly.dll+E2C835: CC              - int 3 
GameAssembly.dll+E2C836: CC              - int 3 
GameAssembly.dll+E2C837: CC              - int 3 
GameAssembly.dll+E2C838: CC              - int 3 
GameAssembly.dll+E2C839: CC              - int 3 
GameAssembly.dll+E2C83A: CC              - int 3 
}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>

darthsarn
What is cheating?
What is cheating?
Posts: 4
Joined: Wed Oct 07, 2020 12:37 am
Reputation: 1

Re: Last Epoch

Post by darthsarn »

Had a buddy test with fearlessrevolution and this online. Cant even cheat if you wanted to. They just dont work. So dont worry if you think you accidentally left it on. Just make sure you're offline if you want them to work.

Eatpant32
What is cheating?
What is cheating?
Posts: 1
Joined: Sun Jul 04, 2021 5:29 pm
Reputation: 0

Re: Last Epoch

Post by Eatpant32 »

The inf runes works with the basic glyphs such as glyph of hope and glyph of chaos, but i just picked up a rare glyph of despair and that one is not going to 1000. it is staying at 1. is there any way i can find this rune? im a complete beginner and i am bad at finding this stuff.

EDIT: it works now oddly. disregard my post.
Last edited by Eatpant32 on Mon Feb 26, 2024 10:05 am, edited 1 time in total.

Post Reply

Who is online

Users browsing this forum: 86sewer, AhrefsBot, c4hydrogenbomb, Colinious, Comnislasher, DotBot, Google [Bot], KabalisK, sattam, sdarkpaladin