Page 1 of 1

Outward - +1 Option

Posted: Thu Jun 18, 2020 12:52 pm
by Babbymode
Those of you who've been looking for any sort of table for the game, I made a script that removes all carry weight. As I continue playing I'll be adding more features, I'll also take a look at the previous tables released and see if I can use those as a jumping off point and update those scripts as well.

Outward - +1 Option

Posted: Thu Jun 18, 2020 1:14 pm
by fantomas
Try this bypass inventory weight limit, it has been made for the soroboreans' dlc


Code: Select all

{ Game   : Outward: The Soroboreans

  Version: DLC

  Date   : 2020-06-16

  Author : Fantomas

}



[ENABLE]

//ItemContainer.RefreshWeight+6A or GameAssembly.dll+62E66A

aobscanregion(containerWeight,ItemContainer.RefreshWeight,ItemContainer.RefreshWeight+1ef,F3)

/*OR

aobscanregion(containerWeight,GameAssembly.dll+62E600,GameAssembly.dll+62E7EF,F3)

*/



alloc(newmem,$1000,containerWeight)



label(code)

label(return)



newmem:

  movss [rbx+00000430],xmm2 //m_silverWeight

  mov [rbx+00000434],(float)0  //m_contentWeight

  mov [rbx+00000438],(float)0  //m_weightCapacityRatio

  jmp return



code:

  movss [rbx+00000430],xmm0

  jmp return



containerWeight:

  jmp newmem

  nop 3

return:

registersymbol(containerWeight)



[DISABLE]

containerWeight:

  db F3 0F 11 83 30 04 00 00



unregistersymbol(containerWeight)

dealloc(newmem)



{

// ORIGINAL CODE - INJECTION POINT: "GameAssembly.dll"+62E66A



"GameAssembly.dll"+62E643: 83 B9 D8 00 00 00 00              -  cmp dword ptr [rcx+000000D8],00

"GameAssembly.dll"+62E64A: 75 05                             -  jne GameAssembly.dll+62E651

"GameAssembly.dll"+62E64C: E8 9F BF B6 FF                    -  call GameAssembly.dll+19A5F0

"GameAssembly.dll"+62E651: 33 D2                             -  xor edx,edx

"GameAssembly.dll"+62E653: 0F 29 74 24 20                    -  movaps [rsp+20],xmm6

"GameAssembly.dll"+62E658: 8B CF                             -  mov ecx,edi

"GameAssembly.dll"+62E65A: E8 A1 33 D6 FF                    -  call GameAssembly.dll+391A00

"GameAssembly.dll"+62E65F: 48 8B 83 10 04 00 00              -  mov rax,[rbx+00000410]

"GameAssembly.dll"+62E666: 33 FF                             -  xor edi,edi

"GameAssembly.dll"+62E668: 33 F6                             -  xor esi,esi

// ---------- INJECTING HERE ----------

"GameAssembly.dll"+62E66A: F3 0F 11 83 30 04 00 00           -  movss [rbx+00000430],xmm0

// ---------- DONE INJECTING  ----------

"GameAssembly.dll"+62E672: C7 83 34 04 00 00 00 00 00 00     -  mov [rbx+00000434],00000000

"GameAssembly.dll"+62E67C: 48 85 C0                          -  test rax,rax

"GameAssembly.dll"+62E67F: 0F 84 58 01 00 00                 -  je GameAssembly.dll+62E7DD

"GameAssembly.dll"+62E685: 66 66 66 0F 1F 84 00 00 00 00 00  -  nop word ptr [rax+rax+00000000]

"GameAssembly.dll"+62E690: 48 8B 15 29 53 AC 01              -  mov rdx,[GameAssembly.dll+20F39C0]

"GameAssembly.dll"+62E697: 48 8B C8                          -  mov rcx,rax

"GameAssembly.dll"+62E69A: E8 71 1F 55 00                    -  call GameAssembly.dll+B80610

"GameAssembly.dll"+62E69F: 3B F0                             -  cmp esi,eax

"GameAssembly.dll"+62E6A1: 0F 8D E1 00 00 00                 -  jnl GameAssembly.dll+62E788

"GameAssembly.dll"+62E6A7: 48 8B 8B 10 04 00 00              -  mov rcx,[rbx+00000410]

}


Once the script activated, go into your inventory, make a pocket/backpack switch of an item and you should be good. ;)

Outward - +1 Option

Posted: Thu Jun 18, 2020 1:29 pm
by Babbymode
fantomas, post: 139936, member: 1587 wrote:
Try this bypass inventory weight limit, it has been made for the soroboreans' dlc


Code: Select all

{ Game   : Outward: The Soroboreans

  Version: DLC

  Date   : 2020-06-16

  Author : Fantomas

}



[ENABLE]

//ItemContainer.RefreshWeight+6A or GameAssembly.dll+62E66A

aobscanregion(containerWeight,ItemContainer.RefreshWeight,ItemContainer.RefreshWeight+1ef,F3)

/*OR

aobscanregion(containerWeight,GameAssembly.dll+62E600,GameAssembly.dll+62E7EF,F3)

*/



alloc(newmem,$1000,containerWeight)



label(code)

label(return)



newmem:

  movss [rbx+00000430],xmm2 //m_silverWeight

  mov [rbx+00000434],(float)0  //m_contentWeight

  mov [rbx+00000438],(float)0  //m_weightCapacityRatio

  jmp return



code:

  movss [rbx+00000430],xmm0

  jmp return



containerWeight:

  jmp newmem

  nop 3

return:

registersymbol(containerWeight)



[DISABLE]

containerWeight:

  db F3 0F 11 83 30 04 00 00



unregistersymbol(containerWeight)

dealloc(newmem)



{

// ORIGINAL CODE - INJECTION POINT: "GameAssembly.dll"+62E66A



"GameAssembly.dll"+62E643: 83 B9 D8 00 00 00 00              -  cmp dword ptr [rcx+000000D8],00

"GameAssembly.dll"+62E64A: 75 05                             -  jne GameAssembly.dll+62E651

"GameAssembly.dll"+62E64C: E8 9F BF B6 FF                    -  call GameAssembly.dll+19A5F0

"GameAssembly.dll"+62E651: 33 D2                             -  xor edx,edx

"GameAssembly.dll"+62E653: 0F 29 74 24 20                    -  movaps [rsp+20],xmm6

"GameAssembly.dll"+62E658: 8B CF                             -  mov ecx,edi

"GameAssembly.dll"+62E65A: E8 A1 33 D6 FF                    -  call GameAssembly.dll+391A00

"GameAssembly.dll"+62E65F: 48 8B 83 10 04 00 00              -  mov rax,[rbx+00000410]

"GameAssembly.dll"+62E666: 33 FF                             -  xor edi,edi

"GameAssembly.dll"+62E668: 33 F6                             -  xor esi,esi

// ---------- INJECTING HERE ----------

"GameAssembly.dll"+62E66A: F3 0F 11 83 30 04 00 00           -  movss [rbx+00000430],xmm0

// ---------- DONE INJECTING  ----------

"GameAssembly.dll"+62E672: C7 83 34 04 00 00 00 00 00 00     -  mov [rbx+00000434],00000000

"GameAssembly.dll"+62E67C: 48 85 C0                          -  test rax,rax

"GameAssembly.dll"+62E67F: 0F 84 58 01 00 00                 -  je GameAssembly.dll+62E7DD

"GameAssembly.dll"+62E685: 66 66 66 0F 1F 84 00 00 00 00 00  -  nop word ptr [rax+rax+00000000]

"GameAssembly.dll"+62E690: 48 8B 15 29 53 AC 01              -  mov rdx,[GameAssembly.dll+20F39C0]

"GameAssembly.dll"+62E697: 48 8B C8                          -  mov rcx,rax

"GameAssembly.dll"+62E69A: E8 71 1F 55 00                    -  call GameAssembly.dll+B80610

"GameAssembly.dll"+62E69F: 3B F0                             -  cmp esi,eax

"GameAssembly.dll"+62E6A1: 0F 8D E1 00 00 00                 -  jnl GameAssembly.dll+62E788

"GameAssembly.dll"+62E6A7: 48 8B 8B 10 04 00 00              -  mov rcx,[rbx+00000410]

}


Once the script activated, go into your inventory, make a pocket/backpack switch of an item and you should be good. ;)
a more elegant script than mine, for sure.



However I seem to not be able to get it to work for me. It does reduce the weight of silver to 0 but nothing else works.

Outward - +1 Option

Posted: Fri Jun 19, 2020 6:51 pm
by fantomas
[QUOTE="Babbymode, post: 139938, member: 5247"]

However I seem to not be able to get it to work for me. It does reduce the weight of silver to 0 but nothing else works.

[/QUOTE]

What do you mean by nothing else works?



If your backpack is overloaded and you cannot move, activate the script, transfer an item between the pocket and the backpack (aka item switch in the inventory panel) and you will no longer be overloaded and you will be able to move again.



It is for that purpose that this script has been made, nothing else. :)



[MEDIA=youtube]ESn_DX6kb74[/MEDIA]

Outward - +1 Option

Posted: Fri Jun 19, 2020 9:20 pm
by Babbymode
I did as you said, script does not seem to apply to anything but the silver weight, version mismatch maybe? I'm using a Codex release



Upon checking, there seems to be a hotfix update for the game, will patch it and test again afterwards.

[MEDIA=imgur]MrhQaAv[/MEDIA]



Edit:After the patch, the same behavior persists.

Outward - +1 Option

Posted: Sun Jun 21, 2020 10:29 am
by fantomas
[QUOTE="Babbymode, post: 140121, member: 5247"]

Edit:After the patch, the same behavior persists.

[/QUOTE]

Ok, I see...



Pls try this one - It has been tested on GOG v1.2.0c but it should also work on Steam version.

[CODE=nasm]

{ Game : Outward: The Soroboreans

Version:

Date : 2020-06-16

Author : Fantomas

}



[ENABLE]

alloc(newmem,2048,ItemContainer.get_TotalContentWeight)

label(returnhere)

label(originalcode)

label(exit)



newmem:

mov [rcx+00000430],(float)0 //0x430 - m_silverWeight

mov [rcx+00000434],(float)0 //0x434 - m_contentWeight

mov [rcx+00000438],(float)0 //0x438 - m_weightCapacityRatio



originalcode:

movss xmm0,[rcx+00000434]



exit:

jmp returnhere



ItemContainer.get_TotalContentWeight:

jmp newmem

nop 3

returnhere:



[DISABLE]

dealloc(newmem)

ItemContainer.get_TotalContentWeight:

movss xmm0,[rcx+00000434]

//Alt: db F3 0F 10 81 34 04 00 00[/CODE]



I'm pretty sure there is an easier way to get the same result but at least it works well. :)

Re: Outward - +1 Option

Posted: Thu Jul 02, 2020 1:50 am
by IJayI
Here is mine. Not as fancy as the other two but it works. Already tried it on another computer. What it does is change your current weight to a negative vaule (in this case -10000, can be changed in the script) and whatever you pick up it will add on to that. It works with both pouch and backpack. Just simply drop or pick up an item to change the value. This eliminates the hassle of finding the weight of certain items.

Edit: So I finished the game. I won't be working on anymore cheats for now. Maybe later when I play again but this is the final. Anybody is free to use my work to further improve it.

Version 2 added Inf durability on all items, no reload and ammo for pistol (without skill shot), and Inf. buff (both positive and negative, won't work on weapon imbue and conjure).

**Note: Game is from Codex last update: v20200626