Subnautica

Upload your cheat tables here (No requests)
Impala
Table Makers
Table Makers
Posts: 609
Joined: Tue Apr 18, 2017 6:47 pm
Reputation: 400

Re: Subnautica

Post by Impala »

Code: Select all

[DISABLE]
ignoreCraftRequirement:
  db 7D 0C
for ignore craft requirement, its 7D 0C for the aob instead of 7D 07

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
fantomas
Table Makers
Table Makers
Posts: 1162
Joined: Sat Mar 25, 2017 7:13 pm
Reputation: 552

Re: Subnautica

Post by fantomas »

ImpalaPUA wrote:
Mon Dec 23, 2019 3:32 pm
for ignore craft requirement, its 7D 0C for the aob instead of 7D 07
In my system is 7D 07 so it could be a problem for others - Need to put a wildcard on the second byte, like this 7DxxB8

Fixed script:

Code: Select all

// Game: Subnautica
// Version: Early Access Dec-2019 63461

[ENABLE]
alloc(originalbytes,2)
registersymbol(originalbytes)
//TechData:GetIngredient+29
aobscanregion(ignoreCraftRequirement,TechData:GetIngredient,TechData:GetIngredient+80,7DxxB8)

originalbytes:
  readmem(ignoreCraftRequirement,2)

ignoreCraftRequirement:
  db 90 90
registersymbol(ignoreCraftRequirement)

//unlock all buildable recipes in Fabricator
KnownTech:Contains:
  ret

[DISABLE]
ignoreCraftRequirement:
  readmem(originalbytes,2)

unregistersymbol(originalbytes)
unregistersymbol(ignoreCraftRequirement)
dealloc(originalbytes)

KnownTech:Contains:
  push ebp

Impala
Table Makers
Table Makers
Posts: 609
Joined: Tue Apr 18, 2017 6:47 pm
Reputation: 400

Re: Subnautica

Post by Impala »

fantomas wrote:
Mon Dec 23, 2019 6:34 pm
ImpalaPUA wrote:
Mon Dec 23, 2019 3:32 pm
for ignore craft requirement, its 7D 0C for the aob instead of 7D 07
In my system is 7D 07 so it could be a problem for others - Need to put a wildcard on the second byte, like this 7DxxB8

Fixed script:

Code: Select all

// Game: Subnautica
// Version: Early Access Dec-2019 63461

[ENABLE]
alloc(originalbytes,2)
registersymbol(originalbytes)
//TechData:GetIngredient+29
aobscanregion(ignoreCraftRequirement,TechData:GetIngredient,TechData:GetIngredient+80,7DxxB8)

originalbytes:
  readmem(ignoreCraftRequirement,2)

ignoreCraftRequirement:
  db 90 90
registersymbol(ignoreCraftRequirement)

//unlock all buildable recipes in Fabricator
KnownTech:Contains:
  ret

[DISABLE]
ignoreCraftRequirement:
  readmem(originalbytes,2)

unregistersymbol(originalbytes)
unregistersymbol(ignoreCraftRequirement)
dealloc(originalbytes)

KnownTech:Contains:
  push ebp
That's strange, but I think that fixes the problem with everyone that was saying ignore craft didn't work

Are you using legit steam version?

User avatar
fantomas
Table Makers
Table Makers
Posts: 1162
Joined: Sat Mar 25, 2017 7:13 pm
Reputation: 552

Re: Subnautica

Post by fantomas »

ImpalaPUA wrote:
Tue Dec 24, 2019 3:08 am
That's strange, but I think that fixes the problem with everyone that was saying ignore craft didn't work

Are you using legit steam version?
The game is using mono ([Link]) and depending on your system configuration, the game is likely to generate the code differently, whether your game is legit (steam,epic) or not. In this case with that script, in my system I have the address on TechData:GetIngredient+29 (module + module offset), while in you system, you can have the same or a different one (but pretty close to mine, in theory), plus it could change if the game gets an update. Now in the case of a jmp, the thing should be same (I have 7D 07 and you 7D 04). So i came with this solution (thanks to cfemen's suggestion) of using now aobscanregion (especially with unity games) to improve the compatibility with other systems (the problem with the module offset) and in the case of a jmp, using the wildcard (if needed) for that second byte. ;)

User avatar
fantomas
Table Makers
Table Makers
Posts: 1162
Joined: Sat Mar 25, 2017 7:13 pm
Reputation: 552

Re: Subnautica

Post by fantomas »

fantomas wrote:
Mon Dec 23, 2019 6:34 pm
ImpalaPUA wrote:
Mon Dec 23, 2019 3:32 pm
for ignore craft requirement, its 7D 0C for the aob instead of 7D 07
In my system is 7D 07 so it could be a problem for others - Need to put a wildcard on the second byte, like this 7DxxB8

Fixed script:

Code: Select all

// Game: Subnautica
// Version: Early Access Dec-2019 63461

[ENABLE]
alloc(originalbytes,2)
registersymbol(originalbytes)
//TechData:GetIngredient+29
aobscanregion(ignoreCraftRequirement,TechData:GetIngredient,TechData:GetIngredient+80,7DxxB8)

originalbytes:
  readmem(ignoreCraftRequirement,2)

ignoreCraftRequirement:
  db 90 90
registersymbol(ignoreCraftRequirement)

//unlock all buildable recipes in Fabricator
KnownTech:Contains:
  ret

[DISABLE]
ignoreCraftRequirement:
  readmem(originalbytes,2)

unregistersymbol(originalbytes)
unregistersymbol(ignoreCraftRequirement)
dealloc(originalbytes)

KnownTech:Contains:
  push ebp
With the latest build Jan 2020 e63668, you need to add 1 (one) more byte, at least in my system. So make sure your aob is matching to 7DxxxxB8

titan
What is cheating?
What is cheating?
Posts: 1
Joined: Sat Jan 25, 2020 11:49 am
Reputation: 0

Re: Subnautica

Post by titan »

I can't find the bytes 7DxxxxB8 in my system.
Please help me find out the code, OK?

Code: Select all

SMLHelper.V2.Crafting:TechData:GetIngredient - 55                    - push rbp
SMLHelper.V2.Crafting:TechData:GetIngredient+1- 48 8B EC              - mov rbp,rsp
SMLHelper.V2.Crafting:TechData:GetIngredient+4- 48 83 EC 50           - sub rsp,50 { 80 }
SMLHelper.V2.Crafting:TechData:GetIngredient+8- 48 89 75 D0           - mov [rbp-30],rsi
SMLHelper.V2.Crafting:TechData:GetIngredient+c- 48 89 7D D8           - mov [rbp-28],rdi
SMLHelper.V2.Crafting:TechData:GetIngredient+10- 4C 89 65 E0           - mov [rbp-20],r12
SMLHelper.V2.Crafting:TechData:GetIngredient+14- 4C 89 6D E8           - mov [rbp-18],r13
SMLHelper.V2.Crafting:TechData:GetIngredient+18- 4C 89 75 F0           - mov [rbp-10],r14
SMLHelper.V2.Crafting:TechData:GetIngredient+1c- 4C 89 7D F8           - mov [rbp-08],r15
SMLHelper.V2.Crafting:TechData:GetIngredient+20- 48 8B F9              - mov rdi,rcx
SMLHelper.V2.Crafting:TechData:GetIngredient+23- 48 8B F2              - mov rsi,rdx
SMLHelper.V2.Crafting:TechData:GetIngredient+26- 48 8B 47 10           - mov rax,[rdi+10]
SMLHelper.V2.Crafting:TechData:GetIngredient+2a- 48 85 C0              - test rax,rax
SMLHelper.V2.Crafting:TechData:GetIngredient+2d- 74 1A                 - je SMLHelper.V2.Crafting:TechData:GetIngredient+49
SMLHelper.V2.Crafting:TechData:GetIngredient+2f- 48 8B 47 10           - mov rax,[rdi+10]
SMLHelper.V2.Crafting:TechData:GetIngredient+33- 48 8B C8              - mov rcx,rax
SMLHelper.V2.Crafting:TechData:GetIngredient+36- 83 39 00              - cmp dword ptr [rcx],00 { 0 }
SMLHelper.V2.Crafting:TechData:GetIngredient+39- 48 63 40 18           - movsxd  rax,dword ptr [rax+18]
SMLHelper.V2.Crafting:TechData:GetIngredient+3d- 3B C6                 - cmp eax,esi
SMLHelper.V2.Crafting:TechData:GetIngredient+3f- 41 0F9F C5            - setg r13l
SMLHelper.V2.Crafting:TechData:GetIngredient+43- 4D 0FB6 ED            - movzx r13,r13l
SMLHelper.V2.Crafting:TechData:GetIngredient+47- EB 03                 - jmp SMLHelper.V2.Crafting:TechData:GetIngredient+4c
SMLHelper.V2.Crafting:TechData:GetIngredient+49- 45 33 ED              - xor r13d,r13d
SMLHelper.V2.Crafting:TechData:GetIngredient+4c- 4D 0FB6 FD            - movzx r15,r13l
SMLHelper.V2.Crafting:TechData:GetIngredient+50- 49 8B C7              - mov rax,r15
SMLHelper.V2.Crafting:TechData:GetIngredient+53- 85 C0                 - test eax,eax
SMLHelper.V2.Crafting:TechData:GetIngredient+55- 74 27                 - je SMLHelper.V2.Crafting:TechData:GetIngredient+7e
SMLHelper.V2.Crafting:TechData:GetIngredient+57- 48 8B 47 10           - mov rax,[rdi+10]
SMLHelper.V2.Crafting:TechData:GetIngredient+5b- 4C 8B F8              - mov r15,rax
SMLHelper.V2.Crafting:TechData:GetIngredient+5e- 4C 8B E6              - mov r12,rsi
SMLHelper.V2.Crafting:TechData:GetIngredient+61- 83 38 00              - cmp dword ptr [rax],00 { 0 }
SMLHelper.V2.Crafting:TechData:GetIngredient+64- 49 63 47 18           - movsxd  rax,dword ptr [r15+18]
SMLHelper.V2.Crafting:TechData:GetIngredient+68- 44 3B E0              - cmp r12d,eax
SMLHelper.V2.Crafting:TechData:GetIngredient+6b- 73 35                 - jae SMLHelper.V2.Crafting:TechData:GetIngredient+a2
SMLHelper.V2.Crafting:TechData:GetIngredient+6d- 49 8B 47 10           - mov rax,[r15+10]
SMLHelper.V2.Crafting:TechData:GetIngredient+71- 49 63 CC              - movsxd  rcx,r12d
SMLHelper.V2.Crafting:TechData:GetIngredient+74- 48 8D 44 C8 20        - lea rax,[rax+rcx*8+20]
SMLHelper.V2.Crafting:TechData:GetIngredient+79- 4C 8B 30              - mov r14,[rax]
SMLHelper.V2.Crafting:TechData:GetIngredient+7c- EB 03                 - jmp SMLHelper.V2.Crafting:TechData:GetIngredient+81
SMLHelper.V2.Crafting:TechData:GetIngredient+7e- 45 33 F6              - xor r14d,r14d
SMLHelper.V2.Crafting:TechData:GetIngredient+81- 49 8B C6              - mov rax,r14
SMLHelper.V2.Crafting:TechData:GetIngredient+84- 48 8B 75 D0           - mov rsi,[rbp-30]
SMLHelper.V2.Crafting:TechData:GetIngredient+88- 48 8B 7D D8           - mov rdi,[rbp-28]
SMLHelper.V2.Crafting:TechData:GetIngredient+8c- 4C 8B 65 E0           - mov r12,[rbp-20]
SMLHelper.V2.Crafting:TechData:GetIngredient+90- 4C 8B 6D E8           - mov r13,[rbp-18]
SMLHelper.V2.Crafting:TechData:GetIngredient+94- 4C 8B 75 F0           - mov r14,[rbp-10]
SMLHelper.V2.Crafting:TechData:GetIngredient+98- 4C 8B 7D F8           - mov r15,[rbp-08]
SMLHelper.V2.Crafting:TechData:GetIngredient+9c- 48 8D 65 00           - lea rsp,[rbp+00]
SMLHelper.V2.Crafting:TechData:GetIngredient+a0- 5D                    - pop rbp
SMLHelper.V2.Crafting:TechData:GetIngredient+a1- C3                    - ret 
SMLHelper.V2.Crafting:TechData:GetIngredient+a2- 48 8D 6D 00           - lea rbp,[rbp+00]
SMLHelper.V2.Crafting:TechData:GetIngredient+a6- 49 BB E8E0D5CA81020000 - mov r11,00000281CAD5E0E8 { (-769575960) }
SMLHelper.V2.Crafting:TechData:GetIngredient+b0- 41 FF D3              - call r11
SMLHelper.V2.Crafting:TechData:GetIngredient+b3- EB B8                 - jmp SMLHelper.V2.Crafting:TechData:GetIngredient+6d

Rubyelf
Expert Cheater
Expert Cheater
Posts: 197
Joined: Mon Mar 12, 2018 11:47 pm
Reputation: 37

Re: Subnautica

Post by Rubyelf »

With the latest version of the game (came out in July) the ignore craft and craftx5 don't appear to work anymore. I am not sure though if it's because I am at the start of the game using the default fabricator. The ignorecraft doesn't even load though.

User avatar
fantomas
Table Makers
Table Makers
Posts: 1162
Joined: Sat Mar 25, 2017 7:13 pm
Reputation: 552

Re: Subnautica

Post by fantomas »

@Rubyelf
Hi :)
I just checked the table with the latest build 65786 (Oct-2020) from Epic Store and both scripts work fine here. I started a new game.

Rubyelf
Expert Cheater
Expert Cheater
Posts: 197
Joined: Mon Mar 12, 2018 11:47 pm
Reputation: 37

Re: Subnautica

Post by Rubyelf »

fantomas wrote:
Fri Sep 18, 2020 12:25 pm
@Rubyelf
Hi :)
I just checked the table with the latest build 65786 (Oct-2020) from Epic Store and both scripts work fine here. I started a new game.
Oh that is why, I'm using Steam version :( which is Build 65786 (July-2020), so same build number, but different platform and date.

Do you know how I could work out how to fix it myself if needed?

aSwedishMagyar
Table Makers
Table Makers
Posts: 672
Joined: Mon Jul 06, 2020 3:19 am
Reputation: 1192

Re: Subnautica

Post by aSwedishMagyar »

Rubyelf wrote:
Sat Sep 19, 2020 1:23 am
fantomas wrote:
Fri Sep 18, 2020 12:25 pm
@Rubyelf
Hi :)
I just checked the table with the latest build 65786 (Oct-2020) from Epic Store and both scripts work fine here. I started a new game.
Oh that is why, I'm using Steam version :( which is Build 65786 (July-2020), so same build number, but different platform and date.

Do you know how I could work out how to fix it myself if needed?
Got to TechData:GetIngredient+2f and see what your bytes are, I have the same build and mine are 7D 04

Also, to get a no cost crafting I'd use something like this:
No Craft Cost

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>193</ID>
      <Description>"No Cost Crafting"</Description>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Subnautica.exe
  Version: 
  Date   : 2020-09-18
  Author : aSwedishMagyar
}
define(noCostCraft,TechData:get_ingredientCount+22)
[ENABLE]

assert(noCostCraft,48 63 40 18) // should be unique

noCostCraft:
  xor rax,rax
  nop

[DISABLE]

noCostCraft:
  db 48 63 40 18


{
// ORIGINAL CODE - INJECTION POINT: 17E12EDF702

17E12EDF6E4: 48 89 34 24                    -  mov [rsp],rsi
17E12EDF6E8: 48 8B F1                       -  mov rsi,rcx
17E12EDF6EB: 48 8B 46 10                    -  mov rax,[rsi+10]
17E12EDF6EF: 48 85 C0                       -  test rax,rax
17E12EDF6F2: 75 04                          -  jne 17E12EDF6F8
17E12EDF6F4: 33 C0                          -  xor eax,eax
17E12EDF6F6: EB 0E                          -  jmp 17E12EDF706
17E12EDF6F8: 48 8B 46 10                    -  mov rax,[rsi+10]
17E12EDF6FC: 48 8B C8                       -  mov rcx,rax
17E12EDF6FF: 83 39 00                       -  cmp dword ptr [rcx],00
// ---------- INJECTING HERE ----------
17E12EDF702: 48 63 40 18                    -  movsxd  rax,dword ptr [rax+18]
17E12EDF706: 48 8B 34 24                    -  mov rsi,[rsp]
// ---------- DONE INJECTING  ----------
17E12EDF70A: 48 83 C4 08                    -  add rsp,08
17E12EDF70E: C3                             -  ret 
17E12EDF70F: 00 01                          -  add [rcx],al
17E12EDF711: 04 01                          -  add al,01
17E12EDF713: 00 04 02                       -  add [rdx+rax],al
17E12EDF716: 00 00                          -  add [rax],al
17E12EDF718: 00 00                          -  add [rax],al
17E12EDF71A: 00 00                          -  add [rax],al
17E12EDF71C: 00 00                          -  add [rax],al
17E12EDF71E: 00 00                          -  add [rax],al
}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
And a crafted amount like this:
Craft Amount Modifier

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>194</ID>
      <Description>"Change Crafted Amount"</Description>
      <Options moHideChildren="1"/>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Subnautica.exe
  Version: 
  Date   : 2020-09-18
  Author : aSwedishMagyar
}
define(craftCount,TechData:get_craftAmount+b)
[ENABLE]

assert(craftCount,48 63 40 24 48 83 C4 08) // should be unique
alloc(newcraftCount,$1000,17E86C3BA7B)

label(codecraftCount)
label(returncraftCount)
label(craftAmountVal)
newcraftCount:
  mov rax,[craftAmountVal]
codecraftCount:
  //movsxd  rax,dword ptr [rax+24]    Old code
  add rsp,08
  jmp returncraftCount
craftAmountVal:
  dd 1
craftCount:
  jmp newcraftCount
  nop 3
returncraftCount:
registersymbol(craftAmountVal)

[DISABLE]

craftCount:
  db 48 63 40 24 48 83 C4 08

unregistersymbol(craftAmountVal)
dealloc(newcraftCount)

{
// ORIGINAL CODE - INJECTION POINT: 17E86C3BA7B

17E86C3BA62: B0 28                          -  mov al,28
17E86C3BA64: 7E 52                          -  jle 17E86C3BAB8
17E86C3BA66: 7E 01                          -  jle 17E86C3BA69
17E86C3BA68: 00 00                          -  add [rax],al
17E86C3BA6A: 00 00                          -  add [rax],al
17E86C3BA6C: 00 00                          -  add [rax],al
17E86C3BA6E: 00 00                          -  add [rax],al
17E86C3BA70: 48 83 EC 08                    -  sub rsp,08
17E86C3BA74: 48 89 0C 24                    -  mov [rsp],rcx
17E86C3BA78: 48 8B C1                       -  mov rax,rcx
// ---------- INJECTING HERE ----------
17E86C3BA7B: 48 63 40 24                    -  movsxd  rax,dword ptr [rax+24]
17E86C3BA7F: 48 83 C4 08                    -  add rsp,08
// ---------- DONE INJECTING  ----------
17E86C3BA83: C3                             -  ret 
17E86C3BA84: 00 00                          -  add [rax],al
17E86C3BA86: 00 00                          -  add [rax],al
17E86C3BA88: 01 04 01                       -  add [rcx+rax],eax
17E86C3BA8B: 00 04 02                       -  add [rdx+rax],al
17E86C3BA8E: 00 00                          -  add [rax],al
17E86C3BA90: 00 00                          -  add [rax],al
17E86C3BA92: 00 00                          -  add [rax],al
17E86C3BA94: 00 00                          -  add [rax],al
17E86C3BA96: 00 00                          -  add [rax],al
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>195</ID>
          <Description>"New Craft Amount"</Description>
          <VariableType>4 Bytes</VariableType>
          <Address>craftAmountVal</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
One or both of these might be the same as someone has done before but this is what I just made and works on the steam version for me.

Rubyelf
Expert Cheater
Expert Cheater
Posts: 197
Joined: Mon Mar 12, 2018 11:47 pm
Reputation: 37

Re: Subnautica

Post by Rubyelf »

aSwedishMagyar wrote:
Sat Sep 19, 2020 2:32 am
Rubyelf wrote:
Sat Sep 19, 2020 1:23 am
fantomas wrote:
Fri Sep 18, 2020 12:25 pm
@Rubyelf
Hi :)
I just checked the table with the latest build 65786 (Oct-2020) from Epic Store and both scripts work fine here. I started a new game.
Oh that is why, I'm using Steam version :( which is Build 65786 (July-2020), so same build number, but different platform and date.

Do you know how I could work out how to fix it myself if needed?
Got to TechData:GetIngredient+2f and see what your bytes are, I have the same build and mine are 7D 04

Also, to get a no cost crafting I'd use something like this:
No Craft Cost

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>193</ID>
      <Description>"No Cost Crafting"</Description>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Subnautica.exe
  Version: 
  Date   : 2020-09-18
  Author : aSwedishMagyar
}
define(noCostCraft,TechData:get_ingredientCount+22)
[ENABLE]

assert(noCostCraft,48 63 40 18) // should be unique

noCostCraft:
  xor rax,rax
  nop

[DISABLE]

noCostCraft:
  db 48 63 40 18


{
// ORIGINAL CODE - INJECTION POINT: 17E12EDF702

17E12EDF6E4: 48 89 34 24                    -  mov [rsp],rsi
17E12EDF6E8: 48 8B F1                       -  mov rsi,rcx
17E12EDF6EB: 48 8B 46 10                    -  mov rax,[rsi+10]
17E12EDF6EF: 48 85 C0                       -  test rax,rax
17E12EDF6F2: 75 04                          -  jne 17E12EDF6F8
17E12EDF6F4: 33 C0                          -  xor eax,eax
17E12EDF6F6: EB 0E                          -  jmp 17E12EDF706
17E12EDF6F8: 48 8B 46 10                    -  mov rax,[rsi+10]
17E12EDF6FC: 48 8B C8                       -  mov rcx,rax
17E12EDF6FF: 83 39 00                       -  cmp dword ptr [rcx],00
// ---------- INJECTING HERE ----------
17E12EDF702: 48 63 40 18                    -  movsxd  rax,dword ptr [rax+18]
17E12EDF706: 48 8B 34 24                    -  mov rsi,[rsp]
// ---------- DONE INJECTING  ----------
17E12EDF70A: 48 83 C4 08                    -  add rsp,08
17E12EDF70E: C3                             -  ret 
17E12EDF70F: 00 01                          -  add [rcx],al
17E12EDF711: 04 01                          -  add al,01
17E12EDF713: 00 04 02                       -  add [rdx+rax],al
17E12EDF716: 00 00                          -  add [rax],al
17E12EDF718: 00 00                          -  add [rax],al
17E12EDF71A: 00 00                          -  add [rax],al
17E12EDF71C: 00 00                          -  add [rax],al
17E12EDF71E: 00 00                          -  add [rax],al
}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
And a crafted amount like this:
Craft Amount Modifier

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>194</ID>
      <Description>"Change Crafted Amount"</Description>
      <Options moHideChildren="1"/>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Subnautica.exe
  Version: 
  Date   : 2020-09-18
  Author : aSwedishMagyar
}
define(craftCount,TechData:get_craftAmount+b)
[ENABLE]

assert(craftCount,48 63 40 24 48 83 C4 08) // should be unique
alloc(newcraftCount,$1000,17E86C3BA7B)

label(codecraftCount)
label(returncraftCount)
label(craftAmountVal)
newcraftCount:
  mov rax,[craftAmountVal]
codecraftCount:
  //movsxd  rax,dword ptr [rax+24]    Old code
  add rsp,08
  jmp returncraftCount
craftAmountVal:
  dd 1
craftCount:
  jmp newcraftCount
  nop 3
returncraftCount:
registersymbol(craftAmountVal)

[DISABLE]

craftCount:
  db 48 63 40 24 48 83 C4 08

unregistersymbol(craftAmountVal)
dealloc(newcraftCount)

{
// ORIGINAL CODE - INJECTION POINT: 17E86C3BA7B

17E86C3BA62: B0 28                          -  mov al,28
17E86C3BA64: 7E 52                          -  jle 17E86C3BAB8
17E86C3BA66: 7E 01                          -  jle 17E86C3BA69
17E86C3BA68: 00 00                          -  add [rax],al
17E86C3BA6A: 00 00                          -  add [rax],al
17E86C3BA6C: 00 00                          -  add [rax],al
17E86C3BA6E: 00 00                          -  add [rax],al
17E86C3BA70: 48 83 EC 08                    -  sub rsp,08
17E86C3BA74: 48 89 0C 24                    -  mov [rsp],rcx
17E86C3BA78: 48 8B C1                       -  mov rax,rcx
// ---------- INJECTING HERE ----------
17E86C3BA7B: 48 63 40 24                    -  movsxd  rax,dword ptr [rax+24]
17E86C3BA7F: 48 83 C4 08                    -  add rsp,08
// ---------- DONE INJECTING  ----------
17E86C3BA83: C3                             -  ret 
17E86C3BA84: 00 00                          -  add [rax],al
17E86C3BA86: 00 00                          -  add [rax],al
17E86C3BA88: 01 04 01                       -  add [rcx+rax],eax
17E86C3BA8B: 00 04 02                       -  add [rdx+rax],al
17E86C3BA8E: 00 00                          -  add [rax],al
17E86C3BA90: 00 00                          -  add [rax],al
17E86C3BA92: 00 00                          -  add [rax],al
17E86C3BA94: 00 00                          -  add [rax],al
17E86C3BA96: 00 00                          -  add [rax],al
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>195</ID>
          <Description>"New Craft Amount"</Description>
          <VariableType>4 Bytes</VariableType>
          <Address>craftAmountVal</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
One or both of these might be the same as someone has done before but this is what I just made and works on the steam version for me.

Mine looks like this for Ignore Crafting:
Spoiler
// Game: Subnautica
// Version: Early Access Dec-2019 63461

[ENABLE]
alloc(originalbytes,2)
registersymbol(originalbytes)
//TechData:GetIngredient+29
aobscanregion(ignoreCraftRequirement,TechData:GetIngredient,TechData:GetIngredient+80,7DxxxxB8)

originalbytes:
readmem(ignoreCraftRequirement,2)

ignoreCraftRequirement:
db 90 90
registersymbol(ignoreCraftRequirement)

//unlock all buildable recipes in Fabricator
KnownTech:Contains:
ret

[DISABLE]
ignoreCraftRequirement:
readmem(originalbytes,2)

unregistersymbol(originalbytes)
unregistersymbol(ignoreCraftRequirement)
dealloc(originalbytes)

KnownTech:Contains:
push ebp

And this for x5
Spoiler
// Game: Subnautica
// Version: Early Access Dec-2019 63461

[ENABLE]
//TechData:get_craftAmount+b
aobscanregion(setCraftAmount,TechData:get_craftAmount,TechData:get_craftAmount+20,4863)
alloc(code,$1000,setCraftAmount)
registersymbol(setCraftAmount)

label(return)

code:
mov [rax+24],5 //put here the you want!!!
movsxd rax,dword ptr [rax+24]
add rsp,08
jmp return

setCraftAmount:
jmp code
nop 3
return:

[DISABLE]
setCraftAmount:
db 48 63 40 24 48 83 C4 08

unregistersymbol(setCraftAmount)
dealloc(code)

{
// ORIGINAL CODE - INJECTION POINT: TechData:get_craftAmount+b

085D39DD: C8 D5 F7 04 - enter F7D5,04
085D39E1: 40 09 5C 8E 00 - or [rsi+rcx*4+00],ebx
085D39E6: 00 00 - add [rax],al
085D39E8: 00 00 - add [rax],al
085D39EA: 00 00 - add [rax],al
085D39EC: 00 00 - add [rax],al
085D39EE: 00 00 - add [rax],al
085D39F0: 48 83 EC 08 - sub rsp,08
085D39F4: 48 89 0C 24 - mov [rsp],rcx
085D39F8: 48 8B C1 - mov rax,rcx
// ---------- INJECTING HERE ----------
085D39FB: 48 63 40 24 - movsxd rax,dword ptr [rax+24]
085D39FF: 48 83 C4 08 - add rsp,08
// ---------- DONE INJECTING ----------
085D3A03: C3 - ret
085D3A04: 00 00 - add [rax],al
085D3A06: 00 00 - add [rax],al
085D3A08: 01 04 01 - add [rcx+rax],eax
085D3A0B: 00 04 02 - add [rdx+rax],al
085D3A0E: 00 00 - add [rax],al
085D3A10: 00 00 - add [rax],al
085D3A12: 00 00 - add [rax],al
085D3A14: 00 00 - add [rax],al
085D3A16: 00 00 - add [rax],al
}

aSwedishMagyar
Table Makers
Table Makers
Posts: 672
Joined: Mon Jul 06, 2020 3:19 am
Reputation: 1192

Re: Subnautica

Post by aSwedishMagyar »

Rubyelf wrote:
Sat Sep 19, 2020 3:09 am
Mine looks like this for Ignore Crafting:
...
And this for x5
...
And what's your point?

User avatar
fantomas
Table Makers
Table Makers
Posts: 1162
Joined: Sat Mar 25, 2017 7:13 pm
Reputation: 552

Re: Subnautica

Post by fantomas »

@Rubyelf
I think you didn't get what @aSwedishMagyar did say. :)
Also I doubt there's any difference in the cde between these both versions (Steam/Epic)
Are you sure you're not playing Subnautica: Below Zero and using the table for Subnautica?

Rubyelf
Expert Cheater
Expert Cheater
Posts: 197
Joined: Mon Mar 12, 2018 11:47 pm
Reputation: 37

Re: Subnautica

Post by Rubyelf »

fantomas wrote:
Sat Sep 19, 2020 10:09 am
@Rubyelf
I think you didn't get what @aSwedishMagyar did say. :)
Also I doubt there's any difference in the cde between these both versions (Steam/Epic)
Are you sure you're not playing Subnautica: Below Zero and using the table for Subnautica?
I am definitely playing Subnautica, I don't own the other one.
Spoiler
Image
Whenever I click on the IgnoreCraftRequirement (Fabricator) nothing happens. No X appears in the box to say it's active, and the game still requires me to use materials. Whenever I click the x5 Craft Amount (Fabricator) it activates, but it's not giving me anything extra, it's still the normal amount.

I do see this pop up when I right click on the IgnoreCraftRequirement: "<<Error while scanning for AOB's: ignoreCraftRequirement Error: Not all results are found>>"

And yes Mono Features are enabled. I'm using Cheat Engine 7.1.
Last edited by Rubyelf on Sat Sep 19, 2020 7:27 pm, edited 3 times in total.

Rubyelf
Expert Cheater
Expert Cheater
Posts: 197
Joined: Mon Mar 12, 2018 11:47 pm
Reputation: 37

Re: Subnautica

Post by Rubyelf »

aSwedishMagyar wrote:
Sat Sep 19, 2020 3:22 am
Rubyelf wrote:
Sat Sep 19, 2020 3:09 am
Mine looks like this for Ignore Crafting:
...
And this for x5
...
And what's your point?
My point was I have no idea what you're telling me to look for or where.....


I also tried to inject your script and received this error: "<<Error in line 9 (assert(TechData:get_ingredientCount+22, 48, 63 40 18)) : The bytes at TechData:get_ingredientCount+22 are not what was expected>>"

Crafting amount error is : "<<Error in line 9 (assert(TechData:get_craftAmount+b, 48 63 40 24 48 83 C4 98 08)): The bytes at TechData:get_craftAmount+b are not what was expected>>"

Post Reply

Who is online

Users browsing this forum: AhrefsBot, AliceMana, AmazonBot, Bing [Bot], BLEXBot, Google [Bot], Illiman777, Majestic-12 [Bot], neochinoko, Piou-Piou, TDCxsnipes, YandexBot