Horizon Forbidden West [Engine:Decima]

Upload your cheat tables here (No requests)
mrjane
Cheater
Cheater
Posts: 35
Joined: Tue Aug 29, 2017 11:04 pm
Reputation: 1

Re: Horizon Forbidden West [Engine:Decima]

Post by mrjane »

Hey, amazing table, thank you! Someone mentioned teleport to waypoint already, just wanted to add a +1 to this if it's possible.

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

NukeZen
Expert Cheater
Expert Cheater
Posts: 73
Joined: Thu Mar 02, 2017 11:44 pm
Reputation: 9

Re: Horizon Forbidden West [Engine:Decima]

Post by NukeZen »

Something to mod coils stats, like the old table for zero down, would be amazing

User avatar
Mr-Sulky
Noobzor
Noobzor
Posts: 7
Joined: Tue Nov 26, 2019 6:32 am
Reputation: 1

Re: Horizon Forbidden West [Engine:Decima]

Post by Mr-Sulky »

A note for anyone who changes their save to NG+, change it back before you exit the main gate of the daunt (before you meet the tenakth marshals for the first time) otherwise you'll not receive the shieldwing which will story lock you.

It also does not unlock the sunwing override as it would had you progressed the game normally in NG+.

Edit- It looks like some of the story earned unlocks such as the Bristleback override aren't earned either.
Last edited by Mr-Sulky on Sun Mar 24, 2024 4:53 am, edited 2 times in total.

TonytotheB82
Noobzor
Noobzor
Posts: 9
Joined: Sun Jan 23, 2022 6:04 pm
Reputation: 0

Re: Horizon Forbidden West [Engine:Decima]

Post by TonytotheB82 »

BigBear743 wrote:
Fri Mar 22, 2024 11:52 pm
TonytotheB82 wrote:
Fri Mar 22, 2024 8:11 pm
Uhuru N'Uru wrote:
Fri Mar 22, 2024 6:16 pm

Game already has an FOV slider built in to the setings menu.
Really like the way opening the settings in game still show you the currently paused screen to see the in game effect of each graphics setting.
I like the option for sure and the way it's implemented. But I'd like more. I have a large widescreen monitor.
I thought I made a useless option but glad that somebody have the same idea with me :D , the table below has a few script that I'm working on, you might wanna change some of the graphic options to achieve better result, I'm currently using FOV = 2 and it look great :D
========================
Table #2 has the instant trial completion. Make sure you follow the step noted in the table, a little bit inconvenience while waiting for Sunbeam's masterpiece :?
tyty

anon9
Table Makers
Table Makers
Posts: 171
Joined: Mon Sep 17, 2018 6:28 am
Reputation: 174

Re: Horizon Forbidden West [Engine:Decima]

Post by anon9 »

Don't know if this already exists or if this will be helpful to anyone, but I made a script to help find item quantities. Note that this one is for inventory items. Stash items are different.

It will cycle through the last 5 items since some items will proc multiple times. I do have an alternate version that does extra checking, but tries to keep everything in the same order instead of cycling.

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>256828</ID>
      <Description>"Item Quantity Checker (Read &lt;script&gt; notes)"</Description>
      <LastState Activated="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : HorizonForbiddenWest.exe
  Author : Anon-9

  This script attempts to scan for item Quantity. Will cycle through 5 addresses
  because some items may scan an extra 4 items.
}

[ENABLE]

aobscanmodule(funItemQtyFinderLocator,HorizonForbiddenWest.exe,6C 4C 8B D1 49 C1 E0 05 4A 8B 4C 01 10) // should be unique
alloc(newmem,$1000,funItemQtyFinderLocator)

label(code)
label(ptrItemQty1 ptrItemQty2 ptrItemQty3 ptrItemQty4 ptrItemQty5)
label(return varItemQtyCounter funItemQtyFinder counterInc)

newmem:

code:
  mov rcx,[rcx+r8+10]
  cmp byte ptr [varItemQtyCounter],00
  jne @f
  cmp [ptrItemQty5],rcx
  je return
  mov [ptrItemQty1],rcx
  jmp counterInc
  @@:
  cmp byte ptr [varItemQtyCounter],01
  jne @f
  cmp [ptrItemQty1],rcx
  je return
  mov [ptrItemQty2],rcx
  jmp counterInc
  @@:
  cmp byte ptr [varItemQtyCounter],02
  jne @f
  cmp [ptrItemQty2],rcx
  je return
  mov [ptrItemQty3],rcx
  jmp counterInc
  @@:
  cmp byte ptr [varItemQtyCounter],03
  jne @f
  cmp [ptrItemQty3],rcx
  je return
  mov [ptrItemQty4],rcx
  jmp counterInc
  @@:
  cmp [ptrItemQty4],rcx
  je return
  mov [ptrItemQty5],rcx
  mov byte ptr [varItemQtyCounter],00
  jmp return
  @@:
  counterInc:
  inc [varItemQtyCounter]
  jmp return

  jmp return
varItemQtyCounter:
  dq 0
ptrItemQty1:
  dq 0
ptrItemQty2:
  dq 0
ptrItemQty3:
  dq 0
ptrItemQty4:
  dq 0
ptrItemQty5:
  dq 0


funItemQtyFinderLocator+08:
funItemQtyFinder:
  jmp newmem
return:
registersymbol(funItemQtyFinder)
registersymbol(ptrItemQty1 ptrItemQty2 ptrItemQty3 ptrItemQty4 ptrItemQty5)

[DISABLE]

funItemQtyFinder:
  db 4A 8B 4C 01 10

unregistersymbol(funItemQtyFinder)
unregistersymbol(ptrItemQty1 ptrItemQty2 ptrItemQty3 ptrItemQty4 ptrItemQty5)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: HorizonForbiddenWest.exe+11FD0B4

HorizonForbiddenWest.exe+11FD0B0: 49 C1 E0 05     - shl r8,05
// ---------- INJECTING HERE ----------
HorizonForbiddenWest.exe+11FD0B4: 4A 8B 4C 01 10  - mov rcx,[rcx+r8+10]
// ---------- DONE INJECTING  ----------
funItemQtyLocation: 03 79 50        - add edi,[rcx+50]
HorizonForbiddenWest.exe+11FD0BC: 8D 48 01        - lea ecx,[rax+01]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>256829</ID>
          <Description>"Qty"</Description>
          <LastState Value="50" RealAddress="1ECAD890110"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>ptrItemQty1</Address>
          <Offsets>
            <Offset>50</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>256830</ID>
          <Description>"Qty 2"</Description>
          <LastState Value="8" RealAddress="1EED9DB2210"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>ptrItemQty2</Address>
          <Offsets>
            <Offset>50</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>256831</ID>
          <Description>"Qty 3"</Description>
          <LastState Value="15" RealAddress="1ECB15A1910"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>ptrItemQty3</Address>
          <Offsets>
            <Offset>50</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>256832</ID>
          <Description>"Qty 4"</Description>
          <LastState Value="30" RealAddress="1ECB15A1550"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>ptrItemQty4</Address>
          <Offsets>
            <Offset>50</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>256833</ID>
          <Description>"Qty 5"</Description>
          <LastState Value="1" RealAddress="1ED2B6C28D0"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>ptrItemQty5</Address>
          <Offsets>
            <Offset>50</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>

bluemoon27112
Cheater
Cheater
Posts: 35
Joined: Wed Feb 21, 2024 8:57 pm
Reputation: 1

Re: Horizon Forbidden West [Engine:Decima]

Post by bluemoon27112 »

anon9 wrote:
Sun Mar 24, 2024 3:18 am
Don't know if this already exists or if this will be helpful to anyone, but I made a script to help find item quantities. Note that this one is for inventory items. Stash items are different.

It will cycle through the last 5 items since some items will proc multiple times. I do have an alternate version that does extra checking, but tries to keep everything in the same order instead of cycling.

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>256828</ID>
      <Description>"Item Quantity Checker (Read &lt;script&gt; notes)"</Description>
      <LastState Activated="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : HorizonForbiddenWest.exe
  Author : Anon-9

  This script attempts to scan for item Quantity. Will cycle through 5 addresses
  because some items may scan an extra 4 items.
}

[ENABLE]

aobscanmodule(funItemQtyFinderLocator,HorizonForbiddenWest.exe,6C 4C 8B D1 49 C1 E0 05 4A 8B 4C 01 10) // should be unique
alloc(newmem,$1000,funItemQtyFinderLocator)

label(code)
label(ptrItemQty1 ptrItemQty2 ptrItemQty3 ptrItemQty4 ptrItemQty5)
label(return varItemQtyCounter funItemQtyFinder counterInc)

newmem:

code:
  mov rcx,[rcx+r8+10]
  cmp byte ptr [varItemQtyCounter],00
  jne @f
  cmp [ptrItemQty5],rcx
  je return
  mov [ptrItemQty1],rcx
  jmp counterInc
  @@:
  cmp byte ptr [varItemQtyCounter],01
  jne @f
  cmp [ptrItemQty1],rcx
  je return
  mov [ptrItemQty2],rcx
  jmp counterInc
  @@:
  cmp byte ptr [varItemQtyCounter],02
  jne @f
  cmp [ptrItemQty2],rcx
  je return
  mov [ptrItemQty3],rcx
  jmp counterInc
  @@:
  cmp byte ptr [varItemQtyCounter],03
  jne @f
  cmp [ptrItemQty3],rcx
  je return
  mov [ptrItemQty4],rcx
  jmp counterInc
  @@:
  cmp [ptrItemQty4],rcx
  je return
  mov [ptrItemQty5],rcx
  mov byte ptr [varItemQtyCounter],00
  jmp return
  @@:
  counterInc:
  inc [varItemQtyCounter]
  jmp return

  jmp return
varItemQtyCounter:
  dq 0
ptrItemQty1:
  dq 0
ptrItemQty2:
  dq 0
ptrItemQty3:
  dq 0
ptrItemQty4:
  dq 0
ptrItemQty5:
  dq 0


funItemQtyFinderLocator+08:
funItemQtyFinder:
  jmp newmem
return:
registersymbol(funItemQtyFinder)
registersymbol(ptrItemQty1 ptrItemQty2 ptrItemQty3 ptrItemQty4 ptrItemQty5)

[DISABLE]

funItemQtyFinder:
  db 4A 8B 4C 01 10

unregistersymbol(funItemQtyFinder)
unregistersymbol(ptrItemQty1 ptrItemQty2 ptrItemQty3 ptrItemQty4 ptrItemQty5)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: HorizonForbiddenWest.exe+11FD0B4

HorizonForbiddenWest.exe+11FD0B0: 49 C1 E0 05     - shl r8,05
// ---------- INJECTING HERE ----------
HorizonForbiddenWest.exe+11FD0B4: 4A 8B 4C 01 10  - mov rcx,[rcx+r8+10]
// ---------- DONE INJECTING  ----------
funItemQtyLocation: 03 79 50        - add edi,[rcx+50]
HorizonForbiddenWest.exe+11FD0BC: 8D 48 01        - lea ecx,[rax+01]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>256829</ID>
          <Description>"Qty"</Description>
          <LastState Value="50" RealAddress="1ECAD890110"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>ptrItemQty1</Address>
          <Offsets>
            <Offset>50</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>256830</ID>
          <Description>"Qty 2"</Description>
          <LastState Value="8" RealAddress="1EED9DB2210"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>ptrItemQty2</Address>
          <Offsets>
            <Offset>50</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>256831</ID>
          <Description>"Qty 3"</Description>
          <LastState Value="15" RealAddress="1ECB15A1910"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>ptrItemQty3</Address>
          <Offsets>
            <Offset>50</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>256832</ID>
          <Description>"Qty 4"</Description>
          <LastState Value="30" RealAddress="1ECB15A1550"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>ptrItemQty4</Address>
          <Offsets>
            <Offset>50</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>256833</ID>
          <Description>"Qty 5"</Description>
          <LastState Value="1" RealAddress="1ED2B6C28D0"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>ptrItemQty5</Address>
          <Offsets>
            <Offset>50</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
sadly this can't modify coil , but still a great code nice work

ZeroS
What is cheating?
What is cheating?
Posts: 4
Joined: Mon May 08, 2017 2:18 pm
Reputation: 1

Re: Horizon Forbidden West [Engine:Decima]

Post by ZeroS »

SunBeam wrote:
Sat Mar 23, 2024 9:12 pm
ZeroS wrote:
Sat Mar 23, 2024 8:52 pm
Any cheat to change difficulty from Ultra Hard to any other difficulty?
What would be the point, with all the cheats lying around?
There are certain options that are available on other modes that are not available on Ultra Hard such as enemy health bars, the range at which enemies detect you, etc.

RedKaezar
Cheater
Cheater
Posts: 44
Joined: Thu Mar 09, 2017 12:39 am
Reputation: 5

Re: Horizon Forbidden West [Engine:Decima]

Post by RedKaezar »

ZeroS wrote:
Sun Mar 24, 2024 10:28 am
There are certain options that are available on other modes that are not available on Ultra Hard such as enemy health bars, the range at which enemies detect you, etc.
Aim Assist is also disabled on Ultra Hard. Actually, having those disabled featured available on Ultra Hard would be nice.

rollover
What is cheating?
What is cheating?
Posts: 2
Joined: Fri Mar 31, 2023 11:44 pm
Reputation: 1

Re: Horizon Forbidden West [Engine:Decima]

Post by rollover »

saulob wrote:
Fri Mar 22, 2024 11:07 pm
What about super jump? Or jump height?
theres a cheat table on nexus mods with movement speed and jump / flying hack

kaivar
What is cheating?
What is cheating?
Posts: 1
Joined: Sun Mar 24, 2024 11:33 am
Reputation: 0

Re: Horizon Forbidden West [Engine:Decima]

Post by kaivar »

Shredder ammo doesn't get caught with the infinite/fast fire script on. And Aloy dies after running out of air with invulnerability on (but with line 16 //'ed).

User avatar
Cielos
RCE Fanatics
RCE Fanatics
Posts: 834
Joined: Fri Mar 03, 2017 4:35 am
Reputation: 1797

Re: Horizon Forbidden West [Engine:Decima]

Post by Cielos »

4 scripts:
undead
- health still drop but you won't die.

inf. arrows / bombs / traps
- quantities stop decreasing when they reach 1.

ignore crafting materials
- allows you to craft anything without any materials/resources. materials/resources needed can still be used up.

game speed mod
- pess CapsLock and one of the following keys to manipulate timescale:
  • + : 0.8
  • - : 0.6
  • * : 0.4
  • / : 0.2
- or HOLD down one of the mod keys to temporarily change the speed to a specific time.

copy & paste the following onto your table:

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>256823</ID>
      <Description>"enable"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <LastState Activated="1"/>
      <Color>808000</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript Async="1">[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
define(slowmokey1default,06)
define(slowmospeed1default,(float)0.25)
define(slowmokey2default,05)
define(slowmospeed2default,(float)0.5)

aobscanmodule(currentArrowReadAOB,HorizonForbiddenWest.exe,8B ** ** 48 ** ** ** 83 ** ** 00 74 ** 48 ** ** ** 00 75)
registersymbol(currentArrowReadAOB)

label(pCArrows)
registersymbol(pCArrows)

alloc(newmem,2048,currentArrowReadAOB) //"HorizonForbiddenWest.exe"+129942D)
label(returnhere)
label(originalcode_currentArrowReadAOB)
registersymbol(originalcode_currentArrowReadAOB)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here
push rdx
mov rdx,pCArrows
mov [rdx],rax
pop rdx

originalcode_currentArrowReadAOB:
readmem(currentArrowReadAOB,7)
//mov ebx,[rax+28]
//mov rax,[rdi+30]

exit:
jmp returnhere

///
pCArrows:
///

currentArrowReadAOB: //"HorizonForbiddenWest.exe"+129942D:
jmp newmem
nop 2
returnhere:

///**************************************///
aobscanmodule(gameSpeedCWriteAOB,HorizonForbiddenWest.exe,C5 FA * * * * 00 00 C5 * * * 33 * C5 * * * C5 * * * * * * * * * * * * * * * * * * * * * * * * * C3)
registersymbol(gameSpeedCWriteAOB)

label(pGameSpeed)
registersymbol(pGameSpeed)
label(dCustGameSpeed)
registersymbol(dCustGameSpeed)
label(dSlowMoKey1ID)
registersymbol(dSlowMoKey1ID)
label(bSlowMoKey1Pressed)
registersymbol(bSlowMoKey1Pressed)
label(dCustGameSpeed1)
registersymbol(dCustGameSpeed1)
label(dSlowMoKey2ID)
registersymbol(dSlowMoKey2ID)
label(bSlowMoKey2Pressed)
registersymbol(bSlowMoKey2Pressed)
label(dCustGameSpeed2)
registersymbol(dCustGameSpeed2)

alloc(newmem2,2048,gameSpeedCWriteAOB) //"HorizonForbiddenWest.exe"+D5B252)
label(returnhere2)
label(originalcode2_gameSpeedCWriteAOB)
registersymbol(originalcode2_gameSpeedCWriteAOB)
label(exit2)

newmem2: //this is allocated memory, you have read,write,execute access
//place your code here
push rax
db 48 8D
readmem(gameSpeedCWriteAOB+3,5)
//lea rax,[rcx+80]
push rax
mov rax,pGameSpeed
pop [rax]
mov rax,dCustGameSpeed
mulss xmm0,[rax]
mov rax,bSlowMoKey1Pressed
cmp byte ptr [rax],1
je @f
mov rax,bSlowMoKey2Pressed
cmp byte ptr [rax],1
je @f
jmp end2

@@:
mulss xmm0,[rax+4]


end2:
pop rax

originalcode2_gameSpeedCWriteAOB:
readmem(gameSpeedCWriteAOB,8)
//vmovss [rcx+00000080],xmm0

exit2:
jmp returnhere2

///
pGameSpeed:
dq 0
dCustGameSpeed:
dd (float)1
dSlowMoKey1ID:
dd slowmokey1default
bSlowMoKey1Pressed:
dd 0
dCustGameSpeed1:
dd slowmospeed1default
dSlowMoKey2ID:
dd slowmokey2default
bSlowMoKey2Pressed:
dd 0
dCustGameSpeed2:
dd slowmospeed2default
///

gameSpeedCWriteAOB: //"HorizonForbiddenWest.exe"+D5B252:
jmp newmem2
nop 3
returnhere2:

///**************************************///
aobscanmodule(playerBaseRead2AOB,$process,48 * * * * 00 00 48 * * FF * * 84 C0 0F 85 * * * * 48 * * * * 00 00 48 * * FF * * 84 C0 0F 85)
registersymbol(playerBaseRead2AOB)

label(pPlayerBase)
registersymbol(pPlayerBase)

alloc(newmem3,2048,playerBaseRead2AOB) //"HorizonForbiddenWest.exe"+1419B91)
label(returnhere3)
label(originalcode3_playerBaseRead2AOB)
registersymbol(originalcode3_playerBaseRead2AOB)
label(exit3)

newmem3: //this is allocated memory, you have read,write,execute access
//place your code here
readmem(playerBaseRead2AOB,2)
db 81
readmem(playerBaseRead2AOB+3,4)
//mov rax,[rcx+00000400]
push rax
mov rax,pPlayerBase
pop [rax]

originalcode3_playerBaseRead2AOB:
readmem(playerBaseRead2AOB,7)
//mov rcx,[rcx+00000400]

exit3:
jmp returnhere3

///
pPlayerBase:
///

playerBaseRead2AOB: //"HorizonForbiddenWest.exe"+1419B91:
jmp newmem3
nop 2
returnhere3:

///**************************************///


 
 
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
currentArrowReadAOB: //"HorizonForbiddenWest.exe"+129942D:
readmem(originalcode_currentArrowReadAOB,7)
//db 8B 58 28 48 8B 47 30
//mov ebx,[rax+28]
//mov rax,[rdi+30]
unregistersymbol(originalcode_currentArrowReadAOB)

unregistersymbol(pCArrows)

///**************************************///
dealloc(newmem2)
gameSpeedCWriteAOB: //"HorizonForbiddenWest.exe"+D5B252:
readmem(originalcode2_gameSpeedCWriteAOB,8)
//db C5 FA 11 81 80 00 00 00
//vmovss [rcx+00000080],xmm0
unregistersymbol(originalcode2_gameSpeedCWriteAOB)

unregistersymbol(pGameSpeed)
unregistersymbol(dCustGameSpeed)
unregistersymbol(dSlowMoKey1ID)
unregistersymbol(dSlowMoKey2ID)
unregistersymbol(bSlowMoKey1Pressed)
unregistersymbol(dCustGameSpeed1)
unregistersymbol(bSlowMoKey2Pressed)
unregistersymbol(dCustGameSpeed2)

///**************************************///
dealloc(newmem3)
playerBaseRead2AOB: //"HorizonForbiddenWest.exe"+1419B91:
readmem(originalcode3_playerBaseRead2AOB,7)
//db 48 8B 89 00 04 00 00
//mov rcx,[rcx+00000400]
unregistersymbol(originalcode3_playerBaseRead2AOB)

unregistersymbol(pPlayerBase)

///**************************************///
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>256829</ID>
          <Description>"undead"</Description>
          <Options moAlwaysHideChildren="1" moAllowManualCollapseAndExpand="1"/>
          <LastState Activated="1"/>
          <Color>808000</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(healthReadOnHitAOB,$process,FF * * 48 * * 74 * 48 * * * * 00 00 48 * * 74 * C5 * * * * C5 * * * * * * * 76)
registersymbol(healthReadOnHitAOB)

label(dMinHealth)
registersymbol(dMinHealth)

alloc(newmem,2048,healthReadOnHitAOB+14) //"HorizonForbiddenWest.exe"+11C62C3)
label(returnhere)
label(originalcode_healthReadOnHitAOB)
registersymbol(originalcode_healthReadOnHitAOB)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here
push rdx
mov rdx,pPlayerBase
mov rdx,[rdx]
test rdx,rdx
jz @f
cmp [rdx+48],rbx
jne @f
mov rdx,dMinHealth
vmovss xmm0,[rdx]
addss xmm0,xmm2
maxss xmm0,[rax+74]
vmovss [rax+74],xmm0

end:
pop rdx

originalcode_healthReadOnHitAOB:
readmem(healthReadOnHitAOB+14,5)
//vmovss xmm0,[rax+74]

exit:
jmp returnhere

///
dMinHealth:
dd (Float)1
///

healthReadOnHitAOB+14: //"HorizonForbiddenWest.exe"+11C62C3:
jmp newmem
returnhere:


 
 
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
healthReadOnHitAOB+14: //"HorizonForbiddenWest.exe"+11C62C3:
readmem(originalcode_healthReadOnHitAOB,5)
//db C5 FA 10 40 74
//vmovss xmm0,[rax+74]
unregistersymbol(originalcode_healthReadOnHitAOB)

unregistersymbol(dMinHealth)
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>256830</ID>
              <Description>"dMinHealth"</Description>
              <LastState Value="1" RealAddress="7FF75E040048"/>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>008000</Color>
              <VariableType>Float</VariableType>
              <Address>dMinHealth</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>16757</ID>
          <Description>"inf. arrows / bombs / traps"</Description>
          <LastState Activated="1"/>
          <Color>808000</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript Async="1">[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(arrowsReadOnFireAOB,HorizonForbiddenWest.exe,44 * * * 85 * 75 * 41 * * 41)
registersymbol(arrowsReadOnFireAOB)

alloc(newmem,2048,arrowsReadOnFireAOB) //"HorizonForbiddenWest.exe"+11FC702)
label(returnhere)
label(originalcode_arrowsReadOnFireAOB)
registersymbol(originalcode_arrowsReadOnFireAOB)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here
mov r14,pCArrows
mov r14,[r14]
lea r14,[r14-28]
cmp r14,rdi
jne @f
mov r14d,ebx
inc r14d
cmp [rdi+50],r14d
jge @f
mov [rdi+50],r14d

originalcode_arrowsReadOnFireAOB:
readmem(arrowsReadOnFireAOB,6)
//mov r14d,[rdi+50]
//test ebx,ebx

exit:
jmp returnhere

arrowsReadOnFireAOB: //"HorizonForbiddenWest.exe"+11FC702:
jmp newmem
nop
returnhere:




[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
arrowsReadOnFireAOB: //"HorizonForbiddenWest.exe"+11FC702:
readmem(originalcode_arrowsReadOnFireAOB,6)
//db 44 8B 77 50 85 DB
//mov r14d,[rdi+50]
//test ebx,ebx
unregistersymbol(originalcode_arrowsReadOnFireAOB)

///
//"HorizonForbiddenWest.exe"+D4E11B
///
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>256845</ID>
          <Description>"ignore crafting materials"</Description>
          <LastState Activated="1"/>
          <Color>808000</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(individualMaterialSufficientChkOnCraftAccessCallerAOB,$process,FF * * 33 * 40 * * * 84 C0 0F)
registersymbol(individualMaterialSufficientChkOnCraftAccessCallerAOB)

alloc(newmem,2048,individualMaterialSufficientChkOnCraftAccessCallerAOB+3) //"HorizonForbiddenWest.exe"+12058AF)
label(returnhere)
label(originalcode_individualMaterialSufficientChkOnCraftAccessCallerAOB)
registersymbol(originalcode_individualMaterialSufficientChkOnCraftAccessCallerAOB)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here
mov al,1

originalcode_individualMaterialSufficientChkOnCraftAccessCallerAOB:
readmem(individualMaterialSufficientChkOnCraftAccessCallerAOB+3,6)
//xor edx,edx
//movzx ecx,dil

exit:
jmp returnhere

///

individualMaterialSufficientChkOnCraftAccessCallerAOB+3: //"HorizonForbiddenWest.exe"+12058AF:
jmp newmem
nop
returnhere:


 
 
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
individualMaterialSufficientChkOnCraftAccessCallerAOB+3: //"HorizonForbiddenWest.exe"+12058AF:
readmem(originalcode_individualMaterialSufficientChkOnCraftAccessCallerAOB,6)
//db 33 D2 40 0F B6 CF
//xor edx,edx
//movzx ecx,dil
unregistersymbol(originalcode_individualMaterialSufficientChkOnCraftAccessCallerAOB)
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>16635</ID>
          <Description>"game speed mod"</Description>
          <Options moHideChildren="1"/>
          <LastState Activated="1"/>
          <Color>808000</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript Async="1">[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
define(slowmokey1default,12)
define(slowmospeed1default,(float)0.35)
define(slowmokey2default,06)
define(slowmospeed2default,(float)0.5)

///
dCustGameSpeed:
dd (float)1
dSlowMoKey1ID:
dd slowmokey1default
bSlowMoKey1Pressed:
dd 0
dCustGameSpeed1:
dd slowmospeed1default
dSlowMoKey2ID:
dd slowmokey2default
bSlowMoKey2Pressed:
dd 0
dCustGameSpeed2:
dd slowmospeed2default
///

///********************************************///
//modified from ShyTwig16's lua keylistener script
//http://fearlessrevolution.com/viewtopic.php?f=4&amp;t=6041&amp;start=60#p62657
{$lua}
local function slowMoKeysLuaThread(threadr2)
	while SlowMoKeysLuaThreadLoop do
        sleep(100)
	    addrr2 = getAddressSafe('bSlowMoKey1Pressed')
	    addrr3 = getAddressSafe('bSlowMoKey2Pressed')
	    addrr4 = getAddressSafe('dSlowMoKey1ID')
	    addrr5 = getAddressSafe('dSlowMoKey2ID')
		if addrr2 and addrr4 then
            if ( isKeyPressed( readInteger(addrr4) ) ) then
			    writeBytes(addrr2, 1)
            else
                writeBytes(addrr2, 0)
            end
		end
		if addrr3 and addrr5 then
            if ( isKeyPressed( readInteger(addrr5) ) ) then
			    writeBytes(addrr3, 1)
            else
                writeBytes(addrr3, 0)
            end
		end
	end
	threadr2.terminate()
end
----------------------------------
if syntaxcheck then return end
SlowMoKeysLuaThreadLoop = true
createThread(slowMoKeysLuaThread)
{$asm}

///********************************************///




[DISABLE]
//code from here till the end of the code will be used to disable the cheat
{$lua}
if syntaxcheck then return end
SlowMoKeysLuaThreadLoop = false
{$asm}

///********************************************///
dCustGameSpeed:
dd (float)1
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>16755</ID>
              <Description>"custom game speed multiplier"</Description>
              <LastState Value="1" RealAddress="7FF75E070069"/>
              <Color>008000</Color>
              <VariableType>Float</VariableType>
              <Address>dCustGameSpeed</Address>
              <Hotkeys>
                <Hotkey>
                  <Action>Set Value</Action>
                  <Keys>
                    <Key>20</Key>
                    <Key>111</Key>
                  </Keys>
                  <Value>0.2</Value>
                  <ID>0</ID>
                </Hotkey>
                <Hotkey>
                  <Action>Set Value</Action>
                  <Keys>
                    <Key>20</Key>
                    <Key>106</Key>
                  </Keys>
                  <Value>0.4</Value>
                  <ID>1</ID>
                </Hotkey>
                <Hotkey>
                  <Action>Set Value</Action>
                  <Keys>
                    <Key>20</Key>
                    <Key>109</Key>
                  </Keys>
                  <Value>0.6</Value>
                  <ID>2</ID>
                </Hotkey>
                <Hotkey>
                  <Action>Set Value</Action>
                  <Keys>
                    <Key>20</Key>
                    <Key>107</Key>
                  </Keys>
                  <Value>0.8</Value>
                  <ID>3</ID>
                </Hotkey>
                <Hotkey>
                  <Action>Set Value</Action>
                  <Keys>
                    <Key>20</Key>
                    <Key>110</Key>
                  </Keys>
                  <Value>1</Value>
                  <ID>4</ID>
                </Hotkey>
              </Hotkeys>
            </CheatEntry>
            <CheatEntry>
              <ID>16641</ID>
              <Description>"mod key1's speed override mod key2's speed"</Description>
              <LastState Value="" RealAddress="00000000"/>
              <Color>808080</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>16637</ID>
              <Description>"mod key1"</Description>
              <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">10:SHIFT key
11:CTRL key
12:ALT key
14:CAPS LOCK key
02:Right Mouse Button
04:Middle Mouse Button
05:X1 Mouse Button
06:X2 Moust Button
09:TAB key
</DropDownList>
              <LastState Value="12" RealAddress="7FF75E07006D"/>
              <ShowAsHex>1</ShowAsHex>
              <Color>008000</Color>
              <VariableType>Byte</VariableType>
              <Address>dSlowMoKey1ID</Address>
              <CheatEntries>
                <CheatEntry>
                  <ID>16638</ID>
                  <Description>"speed multiplier"</Description>
                  <LastState Value="0.349999994" RealAddress="7FF75E070075"/>
                  <Color>008000</Color>
                  <VariableType>Float</VariableType>
                  <Address>+8</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>16639</ID>
              <Description>"mod key2"</Description>
              <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">10:SHIFT key
11:CTRL key
12:ALT key
14:CAPS LOCK key
02:Right Mouse Button
04:Middle Mouse Button
05:X1 Mouse Button
06:X2 Moust Button
09:TAB key
</DropDownList>
              <LastState Value="06" RealAddress="7FF75E070079"/>
              <ShowAsHex>1</ShowAsHex>
              <Color>008000</Color>
              <VariableType>Byte</VariableType>
              <Address>dSlowMoKey2ID</Address>
              <CheatEntries>
                <CheatEntry>
                  <ID>16640</ID>
                  <Description>"speed multiplier"</Description>
                  <LastState Value="0.5" RealAddress="7FF75E070081"/>
                  <Color>008000</Color>
                  <VariableType>Float</VariableType>
                  <Address>+8</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>

LydiaUnchained
What is cheating?
What is cheating?
Posts: 3
Joined: Fri May 07, 2021 7:56 am
Reputation: 0

Re: Horizon Forbidden West [Engine:Decima]

Post by LydiaUnchained »

Has anyone found the values for the timers? (I'm looking for something to stop the timer in the fighting pits challenges)

sonycman
Cheater
Cheater
Posts: 39
Joined: Sun Jul 26, 2020 8:34 pm
Reputation: 31

Re: Horizon Forbidden West [Engine:Decima]

Post by sonycman »

Cielos wrote:
Sun Mar 24, 2024 11:49 am
4 scripts:
Thanks a lot!
If only the freeze timer cheat for complete fun...
LydiaUnchained wrote:
Sun Mar 24, 2024 12:36 pm
Has anyone found the values for the timers? (I'm looking for something to stop the timer in the fighting pits challenges)
I'am in the same boat :D

User avatar
maifa2022
Expert Cheater
Expert Cheater
Posts: 120
Joined: Tue Mar 08, 2022 8:25 pm
Reputation: 25

Re: Horizon Forbidden West [Engine:Decima]

Post by maifa2022 »

Can you add Infinite Jump please where i don't have to press a bottom to fall down?
Last edited by maifa2022 on Sun Mar 24, 2024 5:59 pm, edited 1 time in total.

windgale
Novice Cheater
Novice Cheater
Posts: 23
Joined: Thu Nov 23, 2017 1:43 am
Reputation: 2

Re: Horizon Forbidden West [Engine:Decima]

Post by windgale »

SunBeam wrote:
Fri Mar 22, 2024 6:18 pm
windgale wrote:
Fri Mar 22, 2024 4:31 pm
I have a question Sunbeam, is it possible to alter your Infinite Ammo script so that it doesn't mess with Aloy's reloading/firing animations? Something like just Infinite Ammo, but not Fast Fire?
Sure. If you have the "[Player] Infinite Clip / Infinite Ammo / Fast Fire" script active, disable it first. Then open the script by right-clicking it, and Change script. Everywhere you see 0x30 change it to 0x28 (lines 12 and 16). Click OK to close script editing, then activate the script. Your bow ammo will now stay at 2, will decrease just 1 time as you shoot and automatically refill back to 2 after the shot's done. But no more rapid fire. There you go, if you can live without seeing the entire ammo stockpiled at the bottom-right of the screen, that should do it :P

EDIT: And if your OCD is too powerful, then, for THIS version of the game:

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>0</ID>
      <Description>"Infinite Ammo / Bow Clip"</Description>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]

HorizonForbiddenWest.exe+129A606:
xor edi,edi
nop 1

[DISABLE]

HorizonForbiddenWest.exe+129A606:
cmovne edi,esi

</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Copy and paste the above into CE's GUI. A new entry will be created, called "Infinite Ammo / Bow Clip". Now use the new script instead of the other one.
Thanks! The second option is what I was looking for. You nailed it on the head with the OCD thing lol. Appreciate the help and looking forward to everything else you come up with.

Post Reply