Symphony of War: Nephilim Sage Item Scripts

Upload your cheat tables here (No requests)
User avatar
Hentai-san
Cheater
Cheater
Posts: 34
Joined: Tue Mar 07, 2017 5:05 pm
Reputation: 50

Symphony of War: Nephilim Sage Item Scripts

Post by Hentai-san »

Originally posted here

I've reworked aanpsx's item scripts to streamline the whole thing. One tiny script + id tables for the items/resources/artifacts I've obtained so far.

Most of aanpsx's scripts still work so head there if you need Unit stats scripts and the like.

Note: You'll need a custom 'RPG VX type'.
If you don't have it follow these instructions ⟶
In the search area, right click drop down lists next to Value type and pick this one 'Define new custom type (Auto Assembler)' the auto assemble window will pop up, paste this script:

Code: Select all

alloc(ConvertRoutine,1024)
alloc(ConvertBackRoutine,1024)
alloc(TypeName,256)
alloc(ByteSize,4)
alloc(UsesFloat,1)
alloc(CallMethod,1)

TypeName:
db 'RPG VX type',0

ByteSize:
dd 4

UsesFloat:
db 0 //Change to 1 if this custom type should be treated as a float

CallMethod:
db 1 //Remove or change to 0 for legacy call mechanism

//The convert routine should hold a routine that converts the data to an integer (in eax)
//function declared as: cdecl int ConvertRoutine(unsigned char *input, PTR_UINT address);
//Note: Keep in mind that this routine can be called by multiple threads at the same time.
ConvertRoutine:
//jmp dllname.functionname
[64-bit]
//or manual:
//parameters: (64-bit)
//rcx=address of input
//rdx=address
mov eax,[rcx] //eax now contains the bytes 'input' pointed to
shr eax, 1

ret
[/64-bit]

[32-bit]
//jmp dllname.functionname
//or manual:
//parameters: (32-bit)
push ebp
mov ebp,esp
//[ebp+8]=address of input
//[ebp+c]=address
//example:
mov eax,[ebp+8] //place the address that contains the bytes into eax
mov eax,[eax] //place the bytes into eax so it's handled as a normal 4 byte value
shr eax, 1

pop ebp
ret
[/32-bit]

//The convert back routine should hold a routine that converts the given integer back to a row of bytes (e.g when the user wats to write a new value)
//function declared as: cdecl void ConvertBackRoutine(int i, PTR_UINT address, unsigned char *output);
ConvertBackRoutine:
//jmp dllname.functionname
//or manual:
[64-bit]
//parameters: (64-bit)
//ecx=input
//rdx=address
//r8=address of output
//example:
shl ecx, 1
inc ecx
mov [r8],ecx //place the integer at the 4 bytes pointed to by r8

ret
[/64-bit]

[32-bit]
//parameters: (32-bit)
push ebp
mov ebp,esp
//[ebp+8]=input
//[ebp+c]=address
//[ebp+10]=address of output
//example:
push eax
push ebx
mov eax,[ebp+8] //load the value into eax
mov ebx,[ebp+10] //load the output address into ebx
shl eax, 1
inc eax
mov [ebx],eax //write the value into the address
pop ebx
pop eax

pop ebp
ret
[/32-bit]
then click OK and the option 'RPG VX type' will be available.
Has support for artifacts and items. Has most ids for artifacts and items.

As I mentioned elsewhere before, this script is probably injecting into display code. That's also one of the reasons item lists change after going between artifact listing screen and item listing screens.
This means 4 things:
  1. If you want to update the item pointers, set Update when loading inventory? to Update items then open one of the item screens in-game like [Organize Army > Use Items] or [Organize Army > Squad Operations > Use Items] or to update arena tokens, head to [Arena].
  2. If you want to update the artifact pointers, set Update when loading inventory? to Update artifacts then open one of the artifact screens in-game like [Organize Army > Squad Operations > Artifacts] or [Marketplace > Sell Items].
  3. After updating one of the lists once, set Update when loading inventory? to Don't update to avoid overriding the lists just in case.
  4. You only need to update again if you gain new items or artifacts. Follow steps 1. or 2. again for that.
Also added a simple get by Id option, for when you don't want to go through the categories to find a single item. Just update the list you want first then set the item you want in Select By Id and then activate Load By Id and it will point to the correct item.

Credits again to aanpsx's for the original injection points.
SymphonyOfWarJustItems.ct
Now can toggle between updating artifact pointers or item pointers.
(187.09 KiB) Downloaded 10806 times


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
isosplx
Expert Cheater
Expert Cheater
Posts: 174
Joined: Mon Sep 14, 2020 2:57 am
Reputation: 81

Re: Symphony of War: Nephilim Sage Item Scripts

Post by isosplx »

Hentai-san wrote:
Sun Jun 26, 2022 12:09 am
Originally posted here

I've reworked aanpsx's item scripts to streamline the whole thing. One tiny script + id tables for the items/resources/artifacts I've obtained so far.

Most of aanpsx's scripts still work so head there if you need Unit stats scripts and the like.

Note: You'll need a custom 'RPG VX type'.
If you don't have it follow these instructions ⟶
In the search area, right click drop down lists next to Value type and pick this one 'Define new custom type (Auto Assembler)' the auto assemble window will pop up, paste this script:

Code: Select all

alloc(ConvertRoutine,1024)
alloc(ConvertBackRoutine,1024)
alloc(TypeName,256)
alloc(ByteSize,4)
alloc(UsesFloat,1)
alloc(CallMethod,1)

TypeName:
db 'RPG VX type',0

ByteSize:
dd 4

UsesFloat:
db 0 //Change to 1 if this custom type should be treated as a float

CallMethod:
db 1 //Remove or change to 0 for legacy call mechanism

//The convert routine should hold a routine that converts the data to an integer (in eax)
//function declared as: cdecl int ConvertRoutine(unsigned char *input, PTR_UINT address);
//Note: Keep in mind that this routine can be called by multiple threads at the same time.
ConvertRoutine:
//jmp dllname.functionname
[64-bit]
//or manual:
//parameters: (64-bit)
//rcx=address of input
//rdx=address
mov eax,[rcx] //eax now contains the bytes 'input' pointed to
shr eax, 1

ret
[/64-bit]

[32-bit]
//jmp dllname.functionname
//or manual:
//parameters: (32-bit)
push ebp
mov ebp,esp
//[ebp+8]=address of input
//[ebp+c]=address
//example:
mov eax,[ebp+8] //place the address that contains the bytes into eax
mov eax,[eax] //place the bytes into eax so it's handled as a normal 4 byte value
shr eax, 1

pop ebp
ret
[/32-bit]

//The convert back routine should hold a routine that converts the given integer back to a row of bytes (e.g when the user wats to write a new value)
//function declared as: cdecl void ConvertBackRoutine(int i, PTR_UINT address, unsigned char *output);
ConvertBackRoutine:
//jmp dllname.functionname
//or manual:
[64-bit]
//parameters: (64-bit)
//ecx=input
//rdx=address
//r8=address of output
//example:
shl ecx, 1
inc ecx
mov [r8],ecx //place the integer at the 4 bytes pointed to by r8

ret
[/64-bit]

[32-bit]
//parameters: (32-bit)
push ebp
mov ebp,esp
//[ebp+8]=input
//[ebp+c]=address
//[ebp+10]=address of output
//example:
push eax
push ebx
mov eax,[ebp+8] //load the value into eax
mov ebx,[ebp+10] //load the output address into ebx
shl eax, 1
inc eax
mov [ebx],eax //write the value into the address
pop ebx
pop eax

pop ebp
ret
[/32-bit]
then click OK and the option 'RPG VX type' will be available.
Has support for artifacts and items. Has most ids for artifacts and items.

As I mentioned elsewhere before, this script is probably injecting into display code. That's also one of the reasons item lists change after going between artifact listing screen and item listing screens.
This means 4 things:
  1. If you want to update the item pointers, set Update when loading inventory? to Update items then open one of the item screens in-game like [Organize Army > Use Items] or [Organize Army > Squad Operations > Use Items] or to update arena tokens, head to [Arena].
  2. If you want to update the artifact pointers, set Update when loading inventory? to Update artifacts then open one of the artifact screens in-game like [Organize Army > Squad Operations > Artifacts] or [Marketplace > Sell Items].
  3. After updating one of the lists once, set Update when loading inventory? to Don't update to avoid overriding the lists just in case.
  4. You only need to update again if you gain new items or artifacts. Follow steps 1. or 2. again for that.
Also added a simple get by Id option, for when you don't want to go through the categories to find a single item. Just update the list you want first then set the item you want in Select By Id and then activate Load By Id and it will point to the correct item.

Credits again to aanpsx's for the original injection points.

SymphonyOfWarJustItems.ct
Thank you for doing this.

toydefenser
Expert Cheater
Expert Cheater
Posts: 137
Joined: Wed Oct 23, 2019 12:30 pm
Reputation: 20

Re: Symphony of War: Nephilim Sage Item Scripts

Post by toydefenser »

up more new Artifacts and Items ++ thank :)

User avatar
isosplx
Expert Cheater
Expert Cheater
Posts: 174
Joined: Mon Sep 14, 2020 2:57 am
Reputation: 81

Re: Symphony of War: Nephilim Sage Item Scripts

Post by isosplx »

Hentai-san wrote:
Sun Jun 26, 2022 12:09 am
Originally posted here
SymphonyOfWarJustItems.ct
This for Symphony of War - The Nephilim Saga Version 1.0a?

BlackWing1977
Expert Cheater
Expert Cheater
Posts: 78
Joined: Thu Mar 19, 2020 1:59 pm
Reputation: 2

Re: Symphony of War: Nephilim Sage Item Scripts

Post by BlackWing1977 »

Hentai-san wrote:
Sun Jun 26, 2022 12:09 am
Originally posted here

I've reworked aanpsx's item scripts to streamline the whole thing. One tiny script + id tables for the items/resources/artifacts I've obtained so far.

Most of aanpsx's scripts still work so head there if you need Unit stats scripts and the like.

Note: You'll need a custom 'RPG VX type'.
If you don't have it follow these instructions ⟶
In the search area, right click drop down lists next to Value type and pick this one 'Define new custom type (Auto Assembler)' the auto assemble window will pop up, paste this script:

Code: Select all

alloc(ConvertRoutine,1024)
alloc(ConvertBackRoutine,1024)
alloc(TypeName,256)
alloc(ByteSize,4)
alloc(UsesFloat,1)
alloc(CallMethod,1)

TypeName:
db 'RPG VX type',0

ByteSize:
dd 4

UsesFloat:
db 0 //Change to 1 if this custom type should be treated as a float

CallMethod:
db 1 //Remove or change to 0 for legacy call mechanism

//The convert routine should hold a routine that converts the data to an integer (in eax)
//function declared as: cdecl int ConvertRoutine(unsigned char *input, PTR_UINT address);
//Note: Keep in mind that this routine can be called by multiple threads at the same time.
ConvertRoutine:
//jmp dllname.functionname
[64-bit]
//or manual:
//parameters: (64-bit)
//rcx=address of input
//rdx=address
mov eax,[rcx] //eax now contains the bytes 'input' pointed to
shr eax, 1

ret
[/64-bit]

[32-bit]
//jmp dllname.functionname
//or manual:
//parameters: (32-bit)
push ebp
mov ebp,esp
//[ebp+8]=address of input
//[ebp+c]=address
//example:
mov eax,[ebp+8] //place the address that contains the bytes into eax
mov eax,[eax] //place the bytes into eax so it's handled as a normal 4 byte value
shr eax, 1

pop ebp
ret
[/32-bit]

//The convert back routine should hold a routine that converts the given integer back to a row of bytes (e.g when the user wats to write a new value)
//function declared as: cdecl void ConvertBackRoutine(int i, PTR_UINT address, unsigned char *output);
ConvertBackRoutine:
//jmp dllname.functionname
//or manual:
[64-bit]
//parameters: (64-bit)
//ecx=input
//rdx=address
//r8=address of output
//example:
shl ecx, 1
inc ecx
mov [r8],ecx //place the integer at the 4 bytes pointed to by r8

ret
[/64-bit]

[32-bit]
//parameters: (32-bit)
push ebp
mov ebp,esp
//[ebp+8]=input
//[ebp+c]=address
//[ebp+10]=address of output
//example:
push eax
push ebx
mov eax,[ebp+8] //load the value into eax
mov ebx,[ebp+10] //load the output address into ebx
shl eax, 1
inc eax
mov [ebx],eax //write the value into the address
pop ebx
pop eax

pop ebp
ret
[/32-bit]
then click OK and the option 'RPG VX type' will be available.
Has support for artifacts and items. Has most ids for artifacts and items.

As I mentioned elsewhere before, this script is probably injecting into display code. That's also one of the reasons item lists change after going between artifact listing screen and item listing screens.
This means 4 things:
  1. If you want to update the item pointers, set Update when loading inventory? to Update items then open one of the item screens in-game like [Organize Army > Use Items] or [Organize Army > Squad Operations > Use Items] or to update arena tokens, head to [Arena].
  2. If you want to update the artifact pointers, set Update when loading inventory? to Update artifacts then open one of the artifact screens in-game like [Organize Army > Squad Operations > Artifacts] or [Marketplace > Sell Items].
  3. After updating one of the lists once, set Update when loading inventory? to Don't update to avoid overriding the lists just in case.
  4. You only need to update again if you gain new items or artifacts. Follow steps 1. or 2. again for that.
Also added a simple get by Id option, for when you don't want to go through the categories to find a single item. Just update the list you want first then set the item you want in Select By Id and then activate Load By Id and it will point to the correct item.

Credits again to aanpsx's for the original injection points.

SymphonyOfWarJustItems.ct
Nice work, anyway I think there are one more type of traits as in Yellow or Golden Color Book, I got this one book trait called Silver Tongue.

Erandir
What is cheating?
What is cheating?
Posts: 3
Joined: Sat Feb 12, 2022 5:26 am
Reputation: 0

Re: Symphony of War: Nephilim Sage Item Scripts

Post by Erandir »

Hey sorry, so I tried everything from the instruction and I'm not able to get the table to work... the values just aren't changing. Not sure where I did wrongly!

User avatar
Hentai-san
Cheater
Cheater
Posts: 34
Joined: Tue Mar 07, 2017 5:05 pm
Reputation: 50

Re: Symphony of War: Nephilim Sage Item Scripts

Post by Hentai-san »

isosplx wrote:
Mon Jun 27, 2022 5:29 am
Hentai-san wrote:
Sun Jun 26, 2022 12:09 am
Originally posted here
SymphonyOfWarJustItems.ct
This for Symphony of War - The Nephilim Saga Version 1.0a?
So far the particular bit of code injected as not changed, so it works from 1.0 to 1.0b2 now.

User avatar
VeralX
Cheater
Cheater
Posts: 28
Joined: Sun Dec 20, 2020 2:18 pm
Reputation: 2

Re: Symphony of War: Nephilim Sage Item Scripts

Post by VeralX »

Could you check Unit Editor? Stats and Traits. Being able to edit traits could be pretty sweet deal.

JZ0125
What is cheating?
What is cheating?
Posts: 3
Joined: Tue Dec 01, 2020 1:59 am
Reputation: 0

Re: Symphony of War: Nephilim Sage Item Scripts

Post by JZ0125 »

Hi, the game has been updated to 1.01.1, can you please take a look. Thank you very much!

BrutaleBent
What is cheating?
What is cheating?
Posts: 3
Joined: Fri Mar 24, 2017 10:47 am
Reputation: 1

Re: Symphony of War: Nephilim Sage Item Scripts

Post by BrutaleBent »

There's traits missing, like "Unassuming" and "Immortal Spirit", probably more - how do I go about increasing those in number?

SpardaFamily
Noobzor
Noobzor
Posts: 9
Joined: Fri Jan 28, 2022 9:02 am
Reputation: 0

Re: Symphony of War: Nephilim Sage Item Scripts

Post by SpardaFamily »

For things like that need a video guide how to use. Or video proof of that table is working and on (number) version. Or at least screenshots.

BrutaleBent
What is cheating?
What is cheating?
Posts: 3
Joined: Fri Mar 24, 2017 10:47 am
Reputation: 1

Re: Symphony of War: Nephilim Sage Item Scripts

Post by BrutaleBent »

I have just about zero coding experience, but I tried decoding the tables using my strong google-fu, grit and pattern recognition, to insert what items/traits were missing.

SymphonyOfWarJustItems_v0.1_20220717.ct
(209.47 KiB) Downloaded 4309 times

All credits goes to Hentai-san and aanpsx, as they did ALL of the legwork, as I have zero clue how these tables actually work - all I really did was gain the slightest understanding of the traits/items correlation of ingame adresses, via RPGmaker VX adresses, and hexadresses.

I'm using this myself, and just thought I'd share - but don't go asking about adding anything other than this, as I simply don't know how to; i.e. faction xp! That's a job for people actually knowing this stuff! :)

rvera91
Noobzor
Noobzor
Posts: 5
Joined: Wed Feb 28, 2018 11:08 pm
Reputation: 0

Re: Symphony of War: Nephilim Sage Item Scripts

Post by rvera91 »

any way for this to get updated? having trouble using it. i try editing things and nothing changes and in stead of ?? i get some wierd line of text like )h? or something

rvera91
Noobzor
Noobzor
Posts: 5
Joined: Wed Feb 28, 2018 11:08 pm
Reputation: 0

Re: Symphony of War: Nephilim Sage Item Scripts

Post by rvera91 »

Ok i got it to work but it does not give me numbers. It gives me a series of symbols and if i change it to anything it changes to a huge number.

Amoot329
What is cheating?
What is cheating?
Posts: 4
Joined: Thu Jun 23, 2022 2:20 am
Reputation: 0

Re: Symphony of War: Nephilim Sage Item Scripts

Post by Amoot329 »

This works great for me. The only downside I've seen so far, I've only been able to edit the values once I've gotten the item. If you don't have it, it just shows up as ??? It probably causes errors if you try to add something you don't have yet. For example, I only have bronze and silver arena tokens, haven't found any gold yet so it stays as ??? for me, I just leave that alone and only edit the bronze and gold.

Just gotta remember to change the Update Items/Artifacts back to Don't Update whenever you're done what you need to. I usually just put it back right after I'm done editing the values so nothing gets messed up.

Post Reply