Page 2 of 2

Re: Noita

Posted: Tue Nov 24, 2020 12:26 pm
by BigFooter
Thanks but trying to do it without a mod as it disables the in-game achievements.

Re: Noita

Posted: Thu Nov 26, 2020 5:22 am
by BigFooter
I made a script that allows free perk reroll and shop purchases

Feel free to add it to your tables or modify it. I'm not as skilled as others so there may be a cleaner way to do this but this works.

Code: Select all

[ENABLE]

aobscanmodule(Nocost,noita.exe,7c 14 7f 08 8b 40 48 3b 42 48)
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  nop
  nop
  nop
  nop
  mov eax,[eax+48]
  mov [edx+48],0
  cmp eax,[edx+48]
  jmp return

Nocost:
  jmp newmem
  nop
return:
registersymbol(Nocost)

[DISABLE]

Nocost:
  db 7c 14 7f 08 8b 40 48 3b 42 48

unregistersymbol(Nocost)
dealloc(newmem)

Re: Noita

Posted: Sun Apr 04, 2021 10:38 am
by NMss2
Combining few of the scripts into one CT, makes it handy. I don't think it has to do with achievements.

Re: Noita

Posted: Sun Jun 13, 2021 1:56 am
by Capt. Corgi
Can anyone update this for the 2021 version of noita ? or find a confirmed working version

Re: Noita

Posted: Sun Jul 04, 2021 1:43 pm
by kdz
A table that works with release version:
viewtopic.php?p=199698#p199698

Re: Noita

Posted: Fri Oct 29, 2021 6:02 pm
by baramburum
absolutly doesnt work

Re: Noita

Posted: Sat May 04, 2024 2:42 am
by jungletek
BigFooter wrote:
Thu Nov 26, 2020 5:22 am
I made a script that allows free perk reroll and shop purchases

Feel free to add it to your tables or modify it. I'm not as skilled as others so there may be a cleaner way to do this but this works.

Code: Select all

[ENABLE]

aobscanmodule(Nocost,noita.exe,7c 14 7f 08 8b 40 48 3b 42 48)
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  nop
  nop
  nop
  nop
  mov eax,[eax+48]
  mov [edx+48],0
  cmp eax,[edx+48]
  jmp return

Nocost:
  jmp newmem
  nop
return:
registersymbol(Nocost)

[DISABLE]

Nocost:
  db 7c 14 7f 08 8b 40 48 3b 42 48

unregistersymbol(Nocost)
dealloc(newmem)
Still works in 2024, although you don't need those nops in your allocated memory, and you can just write the 0 to edx+48 and then just use the displaced mov to eax right underneath. Don't recreate the jl and jg in your alloc'd mem, and you've reproduced the effect, and done it more efficiently.

Like so:

Code: Select all

[ENABLE]
aobscanmodule(aobFreeShop,noita.exe,7C 14 7F 08 8B 40 48)
alloc(mFreeShop,$1000)
label(return)

mFreeShop:
  mov [edx+48],0
  mov eax,[eax+48]
  jmp return

aobFreeShop:
  jmp mFreeShop
  nop 2
return:
registersymbol(aobFreeShop)

[DISABLE]
aobFreeShop:
  db 7C 14 7F 08 8B 40 48

unregistersymbol(aobFreeShop)
dealloc(mFreeShop)