[Request] Symphony of War: The Nephilim Saga

Ask about cheats/tables for single player games here
Sword X
Expert Cheater
Expert Cheater
Posts: 78
Joined: Fri Jun 18, 2021 11:27 am
Reputation: 3

Re: [Request] Symphony of War: The Nephilim Saga

Post by Sword X »

Something is not working to fit these scripts. There is always some kind of error coming out

linkchaos
Cheater
Cheater
Posts: 37
Joined: Thu Nov 02, 2017 8:08 pm
Reputation: 2

Re: [Request] Symphony of War: The Nephilim Saga

Post by linkchaos »

How do I use these with CE?
RMLSNK wrote:
Sun Apr 14, 2024 10:10 am
base game: no dlc: (idk if that affects anything so putting that up there).

Patch 1.10.22: Steam

Want any item in the game? Want 100 of those items? well, I made this. On a side note, save before using, just in case you crash if you accidentally buy a nil value. Items won't update (visually only) until you refresh the trade screen. But this is visual only, you can still buy it. Please be sure to upvote if this helps. Took a little while to get these values.

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>14437</ID>
      <Description>"Items"</Description>
      <Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1" moAllowManualCollapseAndExpand="1"/>
      <LastState Value="" RealAddress="200F1B23038"/>
      <ShowAsSigned>0</ShowAsSigned>
      <GroupHeader>1</GroupHeader>
      <Address>"x64-msvcrt-ruby240.dll"+002F20E0</Address>
      <Offsets>
        <Offset>8</Offset>
        <Offset>18</Offset>
        <Offset>0</Offset>
        <Offset>20</Offset>
        <Offset>3E0</Offset>
        <Offset>18</Offset>
        <Offset>8</Offset>
        <Offset>0</Offset>
        <Offset>14F8</Offset>
        <Offset>10</Offset>
      </Offsets>
      <CheatEntries>
        <CheatEntry>
          <ID>14511</ID>
          <Description>"Amount Available"</Description>
          <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:Out of Stock
1:x1
2:x2
5:x5
10:x10
25:x25
50:x50
100:x100
</DropDownList>
          <LastState Value="1" RealAddress="200F1B23048"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Custom</VariableType>
          <CustomType>RPG VX type</CustomType>
          <Address>+10</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>14438</ID>
          <Description>"Type "</Description>
          <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/>
          <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">6514822:Resources
6529158:Gear
7200902:Purchased!
</DropDownList>
          <LastState Value="6514822" RealAddress="200F1B23038"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Custom</VariableType>
          <CustomType>RPG VX type</CustomType>
          <Address>+0</Address>
          <CheatEntries>
            <CheatEntry>
              <ID>14513</ID>
              <Description>"Highly recommended to tick either Resources or Gear (Not Both)."</Description>
              <LastState Value="" RealAddress="00000000"/>
              <Color>7171FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>14440</ID>
              <Description>"Resources"</Description>
              <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:[Avoid This Value]
1:--
2:                    [ Codex and Tokens ]
3:XP Codex
4:CP Codex
5:Bronze Arena Token
6:Silver Arena Token
7:Gold Arena Token
8:Platinum Arena Token
9:Proof of Merit
-:                    [ Resources ]
10:Iron
11:--
12:Obsidian
13:Sunstone
14:Gems
15:Pyrocite
16:Horses
17:Tech Points
-:                    [ Consumables ]
18:Donari Chronicle
19:Mint Leaves of Magic
20:Roast Beef of Might
21:Apple of Agility
22:Salmon of Health
23:Medal of Valor
24:                    [ Affinities ]
25:Affinity: Earth
26:Affinity: Water
27:Affinity: Lightning
28:Affinity: Fire
29:Affinity: Dark
30:Affinity: Light
31:                    [ Tomes ]
32:Book of Unlife
33:Defiled Donari Tome
34:Mark of the Risen
35:Primal Tome
36:--
37:--
38:--
39:--
40:--
41:--
42:--
43:--
44:--
45:--
46:--
47:                    [ Traits ]
48:Trait: Scavenger
49:Trait: Garrison
50:Trait: Bodyguard
51:Trait: Vengeance
52:Trait: Overpower
53:Trait: Imposing
54:Trait: Unassuming
55:Trait: Resolve
56:Trait: Unscathed
57:Trait: Precision
58:Trait: Assassin's Heart
59:Trait: Archer Captain
60:Trait: Soldier Captain
61:Trait: Knight Captain
62:Trait: Concentration
63:Trait: Disarm
64:Trait: Lithe Assault
65:Trait: Assassin's Reaper
66:Trait: Bowmanship
67:Trait: Dragonslayer
68:Trait: Warrior's Hubris
69:Trait: Challenger
70:Trait: Executioner
71:Trait: Healing Attuned
72:Trait: Cold-Blooded
73:Trait: Beacon
74:Trait: Arcane Barrier
75:Trait: Arcane Might
76:Trait: Arcane Speed
77:Trait: Arcane Vigor
78:Trait: Counterattack
79:Trait: Desperation
80:Trait: Immortal Spirit
81:Trait: Smite
82:Trait: Shock and Awe
83:Trait: Bloodlust
84:Trait: Silver-Tongued
85:Trait: Treasure Hunter
86:Trait: Tundra Warrior
87:Trait: Desert Warrior
88:--
89:--
90:Trait: Benevolent
91:Trait: Liberator
92:Trait: Rally
93:Trait: Barricade
94:Trait: Pacifist
95:Trait: Wide Guard
96:Trait: Raid Captain
</DropDownList>
              <LastState Value="52" RealAddress="200F1B23040"/>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Custom</VariableType>
              <CustomType>RPG VX type</CustomType>
              <Address>+8</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>14436</ID>
              <Description>"Gear"</Description>
              <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:[Avoid This Value]
1:--
2:                    [ Swords ]
3:Steel Arming Sword
4:Elegant Blade
5:Flame Saber
6:Steelshatter
7:Excalibur
8:Sin Credo
9:                    [ Great Swords ]
10:Steel Greatsword
11:Giant's Thresher
12:Kesh's Daikatana
13:Dragon Slayer
14:Balmung
15:--
16:                    [ Polearms ]
17:Sayunaari War Pike
18:Crystal Lance
19:Fang of Duros
20:--
21:                    [ Daggers ]
22:Eskandar's Karambit
23:Obsidian Edge
24:Zero Point Blade
25:--
26:                    [ Maces ]
27:Acolyte's Mace
28:Crusader's Mace
29:Refuge
30:--
31:                    [ Bows ]
32:Guerilla Bow
33:Trueshot Bow
34:Ataraxia
35:Heartseeker
36:Obsidian Arquebus
37:--
38:--
39:--
40:--
41:--
42:--
43:--
44:--
45:                    [ Mage Gear ]
46:Donari Staff
47:--
48:Blood Staff
49:Apprentice Spellbook
50:Grandmaster Spellbook
51:Auraweave Cloak
52:Cyrene's Regalia
53:--
54:                    [ Military ]
55:Sergeant's Uniform
56:Officer's Regalia
57:--
58:--
59:                    [ Light Armor ]
60:Scout's Gear
61:Guerilla Armor
62:Shinobi Gi
63:Blademaster's Armor
64:Landis's Mirage
65:--
66:--
67:                    [ Heavy Armor ]
68:Steel Plate Armor
69:Donari Armor
70:Dragonscale Armor
71:Imperial Battle Armor
72:Obsidian Plate Armor
73:St. Teresa's Tiara
74:                    [ Shields ]
75:Hulking Pavise
76:Aldor's Tower Shield
77:St. Teresa's Bulwark
78:--
79:--
80:                    [ Halloween 2022 ]
81:Skull of Rowdain
82:--
83:--
84:--
85:--
86:--
87:--
88:--
89:--
90:--
91:                    [ Accessories ]
92:Puffin Feather Amulet
93:Ruby Ring
94:Emerald Ring
95:Sapphire Ring
96:Ribbon
97:Kesh's Toolkit
98:Noisy Cricket
99:Boots of Tyranny
100:Imperial War Banner
101:Everlasting Potion
102:Jade Figurine
103:Iblis Family Signet
104:Donar's Treatise of War
105:Soha's Blood Shard
106:Landis's Fixed Dice
107:Genbu Shell Fragment
108:Temporal Modulator
109:Black Belt
110:Cloak of Cunning
111:Ace of Spaces
112:Essence of Embor
113:Belinda's Field Kit
114:Signet of Wrath
115:Firewalker Boots
116:--
117:                    [ Legends ]
118:Shadowchaster Boots
119:Gilded Clover
120:Mercurial Shoes
121:Caladori Charm
122:Fitch Farm Rancher Hat
123:Grothnor Lich's Skull
124:Spencer's Spectacles
125:Aetherium Gemstone
126:Sunset Bay Theatre Mask
127:--
128:--
129:Warfarer's Boots
130:Duelist's Contract
131:Do-It-Yourself Bandage
132:Emperor's Missive
133:Donari Charm
134:Commoner's Goblet
135:Tailored Great Helm
136:Thorny Charm
</DropDownList>
              <LastState Value="52" RealAddress="200F1B23040"/>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Custom</VariableType>
              <CustomType>RPG VX type</CustomType>
              <Address>+8</Address>
              <Hotkeys>
                <Hotkey>
                  <Action>Increase Value</Action>
                  <Keys>
                    <Key>6</Key>
                  </Keys>
                  <Value>1</Value>
                  <ID>0</ID>
                </Hotkey>
                <Hotkey>
                  <Action>Decrease Value</Action>
                  <Keys>
                    <Key>5</Key>
                  </Keys>
                  <Value>1</Value>
                  <ID>1</ID>
                </Hotkey>
              </Hotkeys>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
and this is a "turns taken" script.
Spoiler

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>14538</ID>
      <Description>"Turns Taken"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1" moAllowManualCollapseAndExpand="1"/>
      <LastState Value="" Activated="1" RealAddress="00000000"/>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>14518</ID>
          <Description>"Turns Taken"</Description>
          <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : SymphonyOfWar.exe
  Version: 1.10.2
  Date   : 2024-04-14
  Author : RMLSNEK
}

[ENABLE]

aobscanmodule(TurnsTakenScript,x64-msvcrt-ruby240.dll,48 83 3C C3 34 0F)
alloc(newmem,$1000,TurnsTakenScript)

label(code GetTurns GetTurnsOffset)
label(return)

newmem:

code:
  //cmp [rbx+rax*8],(int)21
  cmp [rbx+rax*8]+158],(int)30306572
  je TurnsTaken

  //Engage Normal Route
  cmp qword ptr [rbx+rax*8],34
  jmp return

TurnsTaken:
  mov [GetTurns],rbx
  mov [GetTurnsOffset],rax

  //Engage Normal Route
  cmp qword ptr [rbx+rax*8],34
  jmp return

GetTurns:
dq 0

GetTurnsOffset:
dq 0

TurnsTakenScript:
  jmp newmem

return:
registersymbol(TurnsTakenScript GetTurns GetTurnsOffset)

[DISABLE]

TurnsTakenScript:
  db 48 83 3C C3 34

unregistersymbol(TurnsTakenScript GetTurns GetTurnsOffset)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: x64-msvcrt-ruby240.rb_ivar_defined+120

x64-msvcrt-ruby240.rb_ivar_defined+F6: E8 F5 36 FA FF        - call x64-msvcrt-ruby240.st_lookup
x64-msvcrt-ruby240.rb_ivar_defined+FB: 85 C0                 - test eax,eax
x64-msvcrt-ruby240.rb_ivar_defined+FD: 0F 84 5D FF FF FF     - je x64-msvcrt-ruby240.rb_ivar_defined+60
x64-msvcrt-ruby240.rb_ivar_defined+103: 48 8B 45 F8           - mov rax,[rbp-08]
x64-msvcrt-ruby240.rb_ivar_defined+107: 48 F7 03 00 20 00 00  - test [rbx],00002000
x64-msvcrt-ruby240.rb_ivar_defined+10E: 75 48                 - jne x64-msvcrt-ruby240.rb_ivar_defined+158
x64-msvcrt-ruby240.rb_ivar_defined+110: 8B 53 10              - mov edx,[rbx+10]
x64-msvcrt-ruby240.rb_ivar_defined+113: 48 39 D0              - cmp rax,rdx
x64-msvcrt-ruby240.rb_ivar_defined+116: 0F 83 44 FF FF FF     - jae x64-msvcrt-ruby240.rb_ivar_defined+60
x64-msvcrt-ruby240.rb_ivar_defined+11C: 48 8B 5B 18           - mov rbx,[rbx+18]
// ---------- INJECTING HERE ----------
x64-msvcrt-ruby240.rb_ivar_defined+120: 48 83 3C C3 34        - cmp qword ptr [rbx+rax*8],34
// ---------- DONE INJECTING  ----------
x64-msvcrt-ruby240.rb_ivar_defined+125: 0F 84 35 FF FF FF     - je x64-msvcrt-ruby240.rb_ivar_defined+60
x64-msvcrt-ruby240.rb_ivar_defined+12B: BE 14 00 00 00        - mov esi,00000014
x64-msvcrt-ruby240.rb_ivar_defined+130: E9 2D FF FF FF        - jmp x64-msvcrt-ruby240.rb_ivar_defined+62
x64-msvcrt-ruby240.rb_ivar_defined+135: 0F 1F 00              - nop dword ptr [rax]
x64-msvcrt-ruby240.rb_ivar_defined+138: 48 89 D9              - mov rcx,rbx
x64-msvcrt-ruby240.rb_ivar_defined+13B: 48 89 55 28           - mov [rbp+28],rdx
x64-msvcrt-ruby240.rb_ivar_defined+13F: E8 FC DA F1 FF        - call x64-msvcrt-ruby240.rb_obj_class
x64-msvcrt-ruby240.rb_ivar_defined+144: 48 8B 55 28           - mov rdx,[rbp+28]
x64-msvcrt-ruby240.rb_ivar_defined+148: 48 8B 40 18           - mov rax,[rax+18]
x64-msvcrt-ruby240.rb_ivar_defined+14C: 48 8B 08              - mov rcx,[rax]
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>14530</ID>
              <Description>"Amount"</Description>
              <LastState Value="5" RealAddress="29D17005A50"/>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Custom</VariableType>
              <CustomType>RPG VX type</CustomType>
              <Address>[GetTurns]+[GetTurnsOffset]*8-158</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>14536</ID>
          <Description>"Challenge Missions"</Description>
          <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : SymphonyOfWar.exe
  Version: 1.10.2
  Date   : 2024-04-14
  Author : RMLSNEK
}

[ENABLE]

aobscanmodule(TurnsTakenObjScript,x64-msvcrt-ruby240.dll,48 8B 40 10 49 89 45 00)
alloc(newmem,$1000,TurnsTakenObjScript)

label(code GetTurnsObj)
label(return)

newmem:

code:
  cmp [rax+10],(int)40554764
  je TurnsTakenObj
  jmp returnroute

TurnsTakenObj:
  mov [GetTurnsObj],rax
  jmp returnroute

returnroute:
  //Engage Normal Route
  mov rax,[rax+10]
  mov [r13+00],rax
  jmp return

GetTurnsObj:
dq 0

TurnsTakenObjScript:
  jmp newmem
  nop 3

return:
registersymbol(TurnsTakenObjScript GetTurnsObj)

[DISABLE]

TurnsTakenObjScript:
  db 48 8B 40 10 49 89 45 00

unregistersymbol(TurnsTakenObjScript GetTurnsObj)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: x64-msvcrt-ruby240.st_lookup+6F

x64-msvcrt-ruby240.st_lookup+4A: 48 83 F8 FE        - cmp rax,-02
x64-msvcrt-ruby240.st_lookup+4E: 74 E5              - je x64-msvcrt-ruby240.st_lookup+35
x64-msvcrt-ruby240.st_lookup+50: 48 83 F8 FF        - cmp rax,-01
x64-msvcrt-ruby240.st_lookup+54: 0F 84 B6 00 00 00  - je x64-msvcrt-ruby240.st_lookup+110
x64-msvcrt-ruby240.st_lookup+5A: 48 8D 58 FE        - lea rbx,[rax-02]
x64-msvcrt-ruby240.st_lookup+5E: 4D 85 ED           - test r13,r13
x64-msvcrt-ruby240.st_lookup+61: 74 14              - je x64-msvcrt-ruby240.st_lookup+77
x64-msvcrt-ruby240.st_lookup+63: 49 8B 56 30        - mov rdx,[r14+30]
x64-msvcrt-ruby240.st_lookup+67: 48 8D 04 5B        - lea rax,[rbx+rbx*2]
x64-msvcrt-ruby240.st_lookup+6B: 48 8D 04 C2        - lea rax,[rdx+rax*8]
// ---------- INJECTING HERE ----------
x64-msvcrt-ruby240.st_lookup+6F: 48 8B 40 10        - mov rax,[rax+10]
// ---------- DONE INJECTING  ----------
x64-msvcrt-ruby240.st_lookup+73: 49 89 45 00        - mov [r13+00],rax
x64-msvcrt-ruby240.st_lookup+77: B8 01 00 00 00     - mov eax,00000001
x64-msvcrt-ruby240.st_lookup+7C: 48 83 C4 38        - add rsp,38
x64-msvcrt-ruby240.st_lookup+80: 5B                 - pop rbx
x64-msvcrt-ruby240.st_lookup+81: 5E                 - pop rsi
x64-msvcrt-ruby240.st_lookup+82: 5F                 - pop rdi
x64-msvcrt-ruby240.st_lookup+83: 41 5C              - pop r12
x64-msvcrt-ruby240.st_lookup+85: 41 5D              - pop r13
x64-msvcrt-ruby240.st_lookup+87: 41 5E              - pop r14
x64-msvcrt-ruby240.st_lookup+89: 41 5F              - pop r15
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>14537</ID>
              <Description>"Amount"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Custom</VariableType>
              <CustomType>RPG VX type</CustomType>
              <Address>[GetTurnsObj]+70</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>14539</ID>
              <Description>"View Mission Info to Update Value. If value is failed or completed. Then this will not show."</Description>
              <LastState Value="" RealAddress="00000000"/>
              <Color>7171FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>


These tables use RPG VX value type. Thanks to Dark Byte Be sure to use it.
Spoiler
How to Use:
[Right Click on the "Value Type" selective bar and click "Define
new custom type (Auto Assembler)" . Delete everything inside this Script and paste the new script (from below). You can now select this value type to search for values.

Code: Select all

alloc(TypeName,256)
alloc(ByteSize,4)
alloc(PreferedAlignment, 4)
alloc(ConvertRoutine,1024)
alloc(ConvertBackRoutine,1024)

TypeName:
db 'RPG VX type',0

ByteSize:
dd 4

PreferedAlignment:
dd 1


//The convert routine should hold a routine that converts the data to an nteger (in eax)
//function declared as: stdcall int ConvertRoutine(unsigned char *input);

//Note: Keep in mind that this routine can be called by multiple threads at the same time.

ConvertRoutine:
[32-bit]
push ebp
mov ebp,esp
push ecx
mov ecx,[ebp+8]
[/32-bit]

//at this point ecx contains the address where the bytes are stored

//put the bytes into the eax register
mov eax,[ecx] //second fun fact, addressing with 32-bit registers doesn't work in 64-bit, it becomes a 64-bit automatically (most of the time)
shr eax,1 //shift right by 1 bit (divide by 2)

//and now exit the routine
[64-bit]
ret
[/64-bit]
[32-bit]
pop ecx
pop ebp
ret 4
[/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: stdcall void ConvertBackRoutine(int i, unsigned char *output);
ConvertBackRoutine:
[32-bit]
push ebp
mov ebp,esp
push edx //save the registers
push ecx
mov edx,[ebp+0c]
mov ecx,[ebp+08]
[/32-bit]

//at this point edx contains the address to write the value to
//and ecx contains the value

push eax
push edx


mov edx,[edx] //edx now contains the original value
and edx,1 //only save the first bit

mov eax,ecx //eax gets the user input value
shl eax,1 //shift left by 1 bit (multiply by 2)
or eax,edx //add the bits of the original value

pop edx
mov [edx],eax //write the new value into the old value
pop eax

[64-bit]
//everything is back to what it was, so exit
ret
[/64-bit]

[32-bit]
//cleanup first
pop ecx
pop edx
pop ebp
ret 8
[/32-bit]

Sword X
Expert Cheater
Expert Cheater
Posts: 78
Joined: Fri Jun 18, 2021 11:27 am
Reputation: 3

Re: [Request] Symphony of War: The Nephilim Saga

Post by Sword X »

It was planned that the players would enter these scripts themselves, but something went wrong.

User avatar
RMLSNK
Novice Cheater
Novice Cheater
Posts: 24
Joined: Sat Oct 28, 2023 8:05 pm
Reputation: 20

Re: [Request] Symphony of War: The Nephilim Saga

Post by RMLSNK »

linkchaos wrote:
Wed Apr 17, 2024 4:32 am
How do I use these with CE?
RMLSNK wrote:
Sun Apr 14, 2024 10:10 am
base game: no dlc: (idk if that affects anything so putting that up there).

Patch 1.10.22: Steam

Want any item in the game? Want 100 of those items? well, I made this. On a side note, save before using, just in case you crash if you accidentally buy a nil value. Items won't update (visually only) until you refresh the trade screen. But this is visual only, you can still buy it. Please be sure to upvote if this helps. Took a little while to get these values.

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>14437</ID>
      <Description>"Items"</Description>
      <Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1" moAllowManualCollapseAndExpand="1"/>
      <LastState Value="" RealAddress="200F1B23038"/>
      <ShowAsSigned>0</ShowAsSigned>
      <GroupHeader>1</GroupHeader>
      <Address>"x64-msvcrt-ruby240.dll"+002F20E0</Address>
      <Offsets>
        <Offset>8</Offset>
        <Offset>18</Offset>
        <Offset>0</Offset>
        <Offset>20</Offset>
        <Offset>3E0</Offset>
        <Offset>18</Offset>
        <Offset>8</Offset>
        <Offset>0</Offset>
        <Offset>14F8</Offset>
        <Offset>10</Offset>
      </Offsets>
      <CheatEntries>
        <CheatEntry>
          <ID>14511</ID>
          <Description>"Amount Available"</Description>
          <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:Out of Stock
1:x1
2:x2
5:x5
10:x10
25:x25
50:x50
100:x100
</DropDownList>
          <LastState Value="1" RealAddress="200F1B23048"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Custom</VariableType>
          <CustomType>RPG VX type</CustomType>
          <Address>+10</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>14438</ID>
          <Description>"Type "</Description>
          <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/>
          <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">6514822:Resources
6529158:Gear
7200902:Purchased!
</DropDownList>
          <LastState Value="6514822" RealAddress="200F1B23038"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Custom</VariableType>
          <CustomType>RPG VX type</CustomType>
          <Address>+0</Address>
          <CheatEntries>
            <CheatEntry>
              <ID>14513</ID>
              <Description>"Highly recommended to tick either Resources or Gear (Not Both)."</Description>
              <LastState Value="" RealAddress="00000000"/>
              <Color>7171FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>14440</ID>
              <Description>"Resources"</Description>
              <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:[Avoid This Value]
1:--
2:                    [ Codex and Tokens ]
3:XP Codex
4:CP Codex
5:Bronze Arena Token
6:Silver Arena Token
7:Gold Arena Token
8:Platinum Arena Token
9:Proof of Merit
-:                    [ Resources ]
10:Iron
11:--
12:Obsidian
13:Sunstone
14:Gems
15:Pyrocite
16:Horses
17:Tech Points
-:                    [ Consumables ]
18:Donari Chronicle
19:Mint Leaves of Magic
20:Roast Beef of Might
21:Apple of Agility
22:Salmon of Health
23:Medal of Valor
24:                    [ Affinities ]
25:Affinity: Earth
26:Affinity: Water
27:Affinity: Lightning
28:Affinity: Fire
29:Affinity: Dark
30:Affinity: Light
31:                    [ Tomes ]
32:Book of Unlife
33:Defiled Donari Tome
34:Mark of the Risen
35:Primal Tome
36:--
37:--
38:--
39:--
40:--
41:--
42:--
43:--
44:--
45:--
46:--
47:                    [ Traits ]
48:Trait: Scavenger
49:Trait: Garrison
50:Trait: Bodyguard
51:Trait: Vengeance
52:Trait: Overpower
53:Trait: Imposing
54:Trait: Unassuming
55:Trait: Resolve
56:Trait: Unscathed
57:Trait: Precision
58:Trait: Assassin's Heart
59:Trait: Archer Captain
60:Trait: Soldier Captain
61:Trait: Knight Captain
62:Trait: Concentration
63:Trait: Disarm
64:Trait: Lithe Assault
65:Trait: Assassin's Reaper
66:Trait: Bowmanship
67:Trait: Dragonslayer
68:Trait: Warrior's Hubris
69:Trait: Challenger
70:Trait: Executioner
71:Trait: Healing Attuned
72:Trait: Cold-Blooded
73:Trait: Beacon
74:Trait: Arcane Barrier
75:Trait: Arcane Might
76:Trait: Arcane Speed
77:Trait: Arcane Vigor
78:Trait: Counterattack
79:Trait: Desperation
80:Trait: Immortal Spirit
81:Trait: Smite
82:Trait: Shock and Awe
83:Trait: Bloodlust
84:Trait: Silver-Tongued
85:Trait: Treasure Hunter
86:Trait: Tundra Warrior
87:Trait: Desert Warrior
88:--
89:--
90:Trait: Benevolent
91:Trait: Liberator
92:Trait: Rally
93:Trait: Barricade
94:Trait: Pacifist
95:Trait: Wide Guard
96:Trait: Raid Captain
</DropDownList>
              <LastState Value="52" RealAddress="200F1B23040"/>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Custom</VariableType>
              <CustomType>RPG VX type</CustomType>
              <Address>+8</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>14436</ID>
              <Description>"Gear"</Description>
              <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:[Avoid This Value]
1:--
2:                    [ Swords ]
3:Steel Arming Sword
4:Elegant Blade
5:Flame Saber
6:Steelshatter
7:Excalibur
8:Sin Credo
9:                    [ Great Swords ]
10:Steel Greatsword
11:Giant's Thresher
12:Kesh's Daikatana
13:Dragon Slayer
14:Balmung
15:--
16:                    [ Polearms ]
17:Sayunaari War Pike
18:Crystal Lance
19:Fang of Duros
20:--
21:                    [ Daggers ]
22:Eskandar's Karambit
23:Obsidian Edge
24:Zero Point Blade
25:--
26:                    [ Maces ]
27:Acolyte's Mace
28:Crusader's Mace
29:Refuge
30:--
31:                    [ Bows ]
32:Guerilla Bow
33:Trueshot Bow
34:Ataraxia
35:Heartseeker
36:Obsidian Arquebus
37:--
38:--
39:--
40:--
41:--
42:--
43:--
44:--
45:                    [ Mage Gear ]
46:Donari Staff
47:--
48:Blood Staff
49:Apprentice Spellbook
50:Grandmaster Spellbook
51:Auraweave Cloak
52:Cyrene's Regalia
53:--
54:                    [ Military ]
55:Sergeant's Uniform
56:Officer's Regalia
57:--
58:--
59:                    [ Light Armor ]
60:Scout's Gear
61:Guerilla Armor
62:Shinobi Gi
63:Blademaster's Armor
64:Landis's Mirage
65:--
66:--
67:                    [ Heavy Armor ]
68:Steel Plate Armor
69:Donari Armor
70:Dragonscale Armor
71:Imperial Battle Armor
72:Obsidian Plate Armor
73:St. Teresa's Tiara
74:                    [ Shields ]
75:Hulking Pavise
76:Aldor's Tower Shield
77:St. Teresa's Bulwark
78:--
79:--
80:                    [ Halloween 2022 ]
81:Skull of Rowdain
82:--
83:--
84:--
85:--
86:--
87:--
88:--
89:--
90:--
91:                    [ Accessories ]
92:Puffin Feather Amulet
93:Ruby Ring
94:Emerald Ring
95:Sapphire Ring
96:Ribbon
97:Kesh's Toolkit
98:Noisy Cricket
99:Boots of Tyranny
100:Imperial War Banner
101:Everlasting Potion
102:Jade Figurine
103:Iblis Family Signet
104:Donar's Treatise of War
105:Soha's Blood Shard
106:Landis's Fixed Dice
107:Genbu Shell Fragment
108:Temporal Modulator
109:Black Belt
110:Cloak of Cunning
111:Ace of Spaces
112:Essence of Embor
113:Belinda's Field Kit
114:Signet of Wrath
115:Firewalker Boots
116:--
117:                    [ Legends ]
118:Shadowchaster Boots
119:Gilded Clover
120:Mercurial Shoes
121:Caladori Charm
122:Fitch Farm Rancher Hat
123:Grothnor Lich's Skull
124:Spencer's Spectacles
125:Aetherium Gemstone
126:Sunset Bay Theatre Mask
127:--
128:--
129:Warfarer's Boots
130:Duelist's Contract
131:Do-It-Yourself Bandage
132:Emperor's Missive
133:Donari Charm
134:Commoner's Goblet
135:Tailored Great Helm
136:Thorny Charm
</DropDownList>
              <LastState Value="52" RealAddress="200F1B23040"/>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Custom</VariableType>
              <CustomType>RPG VX type</CustomType>
              <Address>+8</Address>
              <Hotkeys>
                <Hotkey>
                  <Action>Increase Value</Action>
                  <Keys>
                    <Key>6</Key>
                  </Keys>
                  <Value>1</Value>
                  <ID>0</ID>
                </Hotkey>
                <Hotkey>
                  <Action>Decrease Value</Action>
                  <Keys>
                    <Key>5</Key>
                  </Keys>
                  <Value>1</Value>
                  <ID>1</ID>
                </Hotkey>
              </Hotkeys>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
and this is a "turns taken" script.
Spoiler

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>14538</ID>
      <Description>"Turns Taken"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1" moAllowManualCollapseAndExpand="1"/>
      <LastState Value="" Activated="1" RealAddress="00000000"/>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>14518</ID>
          <Description>"Turns Taken"</Description>
          <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : SymphonyOfWar.exe
  Version: 1.10.2
  Date   : 2024-04-14
  Author : RMLSNEK
}

[ENABLE]

aobscanmodule(TurnsTakenScript,x64-msvcrt-ruby240.dll,48 83 3C C3 34 0F)
alloc(newmem,$1000,TurnsTakenScript)

label(code GetTurns GetTurnsOffset)
label(return)

newmem:

code:
  //cmp [rbx+rax*8],(int)21
  cmp [rbx+rax*8]+158],(int)30306572
  je TurnsTaken

  //Engage Normal Route
  cmp qword ptr [rbx+rax*8],34
  jmp return

TurnsTaken:
  mov [GetTurns],rbx
  mov [GetTurnsOffset],rax

  //Engage Normal Route
  cmp qword ptr [rbx+rax*8],34
  jmp return

GetTurns:
dq 0

GetTurnsOffset:
dq 0

TurnsTakenScript:
  jmp newmem

return:
registersymbol(TurnsTakenScript GetTurns GetTurnsOffset)

[DISABLE]

TurnsTakenScript:
  db 48 83 3C C3 34

unregistersymbol(TurnsTakenScript GetTurns GetTurnsOffset)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: x64-msvcrt-ruby240.rb_ivar_defined+120

x64-msvcrt-ruby240.rb_ivar_defined+F6: E8 F5 36 FA FF        - call x64-msvcrt-ruby240.st_lookup
x64-msvcrt-ruby240.rb_ivar_defined+FB: 85 C0                 - test eax,eax
x64-msvcrt-ruby240.rb_ivar_defined+FD: 0F 84 5D FF FF FF     - je x64-msvcrt-ruby240.rb_ivar_defined+60
x64-msvcrt-ruby240.rb_ivar_defined+103: 48 8B 45 F8           - mov rax,[rbp-08]
x64-msvcrt-ruby240.rb_ivar_defined+107: 48 F7 03 00 20 00 00  - test [rbx],00002000
x64-msvcrt-ruby240.rb_ivar_defined+10E: 75 48                 - jne x64-msvcrt-ruby240.rb_ivar_defined+158
x64-msvcrt-ruby240.rb_ivar_defined+110: 8B 53 10              - mov edx,[rbx+10]
x64-msvcrt-ruby240.rb_ivar_defined+113: 48 39 D0              - cmp rax,rdx
x64-msvcrt-ruby240.rb_ivar_defined+116: 0F 83 44 FF FF FF     - jae x64-msvcrt-ruby240.rb_ivar_defined+60
x64-msvcrt-ruby240.rb_ivar_defined+11C: 48 8B 5B 18           - mov rbx,[rbx+18]
// ---------- INJECTING HERE ----------
x64-msvcrt-ruby240.rb_ivar_defined+120: 48 83 3C C3 34        - cmp qword ptr [rbx+rax*8],34
// ---------- DONE INJECTING  ----------
x64-msvcrt-ruby240.rb_ivar_defined+125: 0F 84 35 FF FF FF     - je x64-msvcrt-ruby240.rb_ivar_defined+60
x64-msvcrt-ruby240.rb_ivar_defined+12B: BE 14 00 00 00        - mov esi,00000014
x64-msvcrt-ruby240.rb_ivar_defined+130: E9 2D FF FF FF        - jmp x64-msvcrt-ruby240.rb_ivar_defined+62
x64-msvcrt-ruby240.rb_ivar_defined+135: 0F 1F 00              - nop dword ptr [rax]
x64-msvcrt-ruby240.rb_ivar_defined+138: 48 89 D9              - mov rcx,rbx
x64-msvcrt-ruby240.rb_ivar_defined+13B: 48 89 55 28           - mov [rbp+28],rdx
x64-msvcrt-ruby240.rb_ivar_defined+13F: E8 FC DA F1 FF        - call x64-msvcrt-ruby240.rb_obj_class
x64-msvcrt-ruby240.rb_ivar_defined+144: 48 8B 55 28           - mov rdx,[rbp+28]
x64-msvcrt-ruby240.rb_ivar_defined+148: 48 8B 40 18           - mov rax,[rax+18]
x64-msvcrt-ruby240.rb_ivar_defined+14C: 48 8B 08              - mov rcx,[rax]
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>14530</ID>
              <Description>"Amount"</Description>
              <LastState Value="5" RealAddress="29D17005A50"/>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Custom</VariableType>
              <CustomType>RPG VX type</CustomType>
              <Address>[GetTurns]+[GetTurnsOffset]*8-158</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>14536</ID>
          <Description>"Challenge Missions"</Description>
          <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : SymphonyOfWar.exe
  Version: 1.10.2
  Date   : 2024-04-14
  Author : RMLSNEK
}

[ENABLE]

aobscanmodule(TurnsTakenObjScript,x64-msvcrt-ruby240.dll,48 8B 40 10 49 89 45 00)
alloc(newmem,$1000,TurnsTakenObjScript)

label(code GetTurnsObj)
label(return)

newmem:

code:
  cmp [rax+10],(int)40554764
  je TurnsTakenObj
  jmp returnroute

TurnsTakenObj:
  mov [GetTurnsObj],rax
  jmp returnroute

returnroute:
  //Engage Normal Route
  mov rax,[rax+10]
  mov [r13+00],rax
  jmp return

GetTurnsObj:
dq 0

TurnsTakenObjScript:
  jmp newmem
  nop 3

return:
registersymbol(TurnsTakenObjScript GetTurnsObj)

[DISABLE]

TurnsTakenObjScript:
  db 48 8B 40 10 49 89 45 00

unregistersymbol(TurnsTakenObjScript GetTurnsObj)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: x64-msvcrt-ruby240.st_lookup+6F

x64-msvcrt-ruby240.st_lookup+4A: 48 83 F8 FE        - cmp rax,-02
x64-msvcrt-ruby240.st_lookup+4E: 74 E5              - je x64-msvcrt-ruby240.st_lookup+35
x64-msvcrt-ruby240.st_lookup+50: 48 83 F8 FF        - cmp rax,-01
x64-msvcrt-ruby240.st_lookup+54: 0F 84 B6 00 00 00  - je x64-msvcrt-ruby240.st_lookup+110
x64-msvcrt-ruby240.st_lookup+5A: 48 8D 58 FE        - lea rbx,[rax-02]
x64-msvcrt-ruby240.st_lookup+5E: 4D 85 ED           - test r13,r13
x64-msvcrt-ruby240.st_lookup+61: 74 14              - je x64-msvcrt-ruby240.st_lookup+77
x64-msvcrt-ruby240.st_lookup+63: 49 8B 56 30        - mov rdx,[r14+30]
x64-msvcrt-ruby240.st_lookup+67: 48 8D 04 5B        - lea rax,[rbx+rbx*2]
x64-msvcrt-ruby240.st_lookup+6B: 48 8D 04 C2        - lea rax,[rdx+rax*8]
// ---------- INJECTING HERE ----------
x64-msvcrt-ruby240.st_lookup+6F: 48 8B 40 10        - mov rax,[rax+10]
// ---------- DONE INJECTING  ----------
x64-msvcrt-ruby240.st_lookup+73: 49 89 45 00        - mov [r13+00],rax
x64-msvcrt-ruby240.st_lookup+77: B8 01 00 00 00     - mov eax,00000001
x64-msvcrt-ruby240.st_lookup+7C: 48 83 C4 38        - add rsp,38
x64-msvcrt-ruby240.st_lookup+80: 5B                 - pop rbx
x64-msvcrt-ruby240.st_lookup+81: 5E                 - pop rsi
x64-msvcrt-ruby240.st_lookup+82: 5F                 - pop rdi
x64-msvcrt-ruby240.st_lookup+83: 41 5C              - pop r12
x64-msvcrt-ruby240.st_lookup+85: 41 5D              - pop r13
x64-msvcrt-ruby240.st_lookup+87: 41 5E              - pop r14
x64-msvcrt-ruby240.st_lookup+89: 41 5F              - pop r15
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>14537</ID>
              <Description>"Amount"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Custom</VariableType>
              <CustomType>RPG VX type</CustomType>
              <Address>[GetTurnsObj]+70</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>14539</ID>
              <Description>"View Mission Info to Update Value. If value is failed or completed. Then this will not show."</Description>
              <LastState Value="" RealAddress="00000000"/>
              <Color>7171FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>


These tables use RPG VX value type. Thanks to Dark Byte Be sure to use it.
Spoiler
How to Use:
[Right Click on the "Value Type" selective bar and click "Define
new custom type (Auto Assembler)" . Delete everything inside this Script and paste the new script (from below). You can now select this value type to search for values.

Code: Select all

alloc(TypeName,256)
alloc(ByteSize,4)
alloc(PreferedAlignment, 4)
alloc(ConvertRoutine,1024)
alloc(ConvertBackRoutine,1024)

TypeName:
db 'RPG VX type',0

ByteSize:
dd 4

PreferedAlignment:
dd 1


//The convert routine should hold a routine that converts the data to an nteger (in eax)
//function declared as: stdcall int ConvertRoutine(unsigned char *input);

//Note: Keep in mind that this routine can be called by multiple threads at the same time.

ConvertRoutine:
[32-bit]
push ebp
mov ebp,esp
push ecx
mov ecx,[ebp+8]
[/32-bit]

//at this point ecx contains the address where the bytes are stored

//put the bytes into the eax register
mov eax,[ecx] //second fun fact, addressing with 32-bit registers doesn't work in 64-bit, it becomes a 64-bit automatically (most of the time)
shr eax,1 //shift right by 1 bit (divide by 2)

//and now exit the routine
[64-bit]
ret
[/64-bit]
[32-bit]
pop ecx
pop ebp
ret 4
[/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: stdcall void ConvertBackRoutine(int i, unsigned char *output);
ConvertBackRoutine:
[32-bit]
push ebp
mov ebp,esp
push edx //save the registers
push ecx
mov edx,[ebp+0c]
mov ecx,[ebp+08]
[/32-bit]

//at this point edx contains the address to write the value to
//and ecx contains the value

push eax
push edx


mov edx,[edx] //edx now contains the original value
and edx,1 //only save the first bit

mov eax,ecx //eax gets the user input value
shl eax,1 //shift left by 1 bit (multiply by 2)
or eax,edx //add the bits of the original value

pop edx
mov [edx],eax //write the new value into the old value
pop eax

[64-bit]
//everything is back to what it was, so exit
ret
[/64-bit]

[32-bit]
//cleanup first
pop ecx
pop edx
pop ebp
ret 8
[/32-bit]
you should be able to select all and then copy the code-paste into your own table. But here's my table if you need it. Not sure if the dlc will offset any values so hopefully this works for you guys. :oops:
Attachments
SymphonyOfWar v1 10 22.CT
Version 1.10.22: Steam.
(343.64 KiB) Downloaded 199 times

Sword X
Expert Cheater
Expert Cheater
Posts: 78
Joined: Fri Jun 18, 2021 11:27 am
Reputation: 3

Re: [Request] Symphony of War: The Nephilim Saga

Post by Sword X »

You misunderstood me, I was talking about infinite actions.

rmndr
What is cheating?
What is cheating?
Posts: 1
Joined: Wed Apr 24, 2024 5:16 pm
Reputation: 0

Re: [Request] Symphony of War: The Nephilim Saga

Post by rmndr »

RMLSNK wrote:
Wed Apr 17, 2024 7:37 pm
linkchaos wrote:
Wed Apr 17, 2024 4:32 am
How do I use these with CE?
RMLSNK wrote:
Sun Apr 14, 2024 10:10 am
base game: no dlc: (idk if that affects anything so putting that up there).

Patch 1.10.22: Steam

Want any item in the game? Want 100 of those items? well, I made this. On a side note, save before using, just in case you crash if you accidentally buy a nil value. Items won't update (visually only) until you refresh the trade screen. But this is visual only, you can still buy it. Please be sure to upvote if this helps. Took a little while to get these values.

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>14437</ID>
      <Description>"Items"</Description>
      <Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1" moAllowManualCollapseAndExpand="1"/>
      <LastState Value="" RealAddress="200F1B23038"/>
      <ShowAsSigned>0</ShowAsSigned>
      <GroupHeader>1</GroupHeader>
      <Address>"x64-msvcrt-ruby240.dll"+002F20E0</Address>
      <Offsets>
        <Offset>8</Offset>
        <Offset>18</Offset>
        <Offset>0</Offset>
        <Offset>20</Offset>
        <Offset>3E0</Offset>
        <Offset>18</Offset>
        <Offset>8</Offset>
        <Offset>0</Offset>
        <Offset>14F8</Offset>
        <Offset>10</Offset>
      </Offsets>
      <CheatEntries>
        <CheatEntry>
          <ID>14511</ID>
          <Description>"Amount Available"</Description>
          <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:Out of Stock
1:x1
2:x2
5:x5
10:x10
25:x25
50:x50
100:x100
</DropDownList>
          <LastState Value="1" RealAddress="200F1B23048"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Custom</VariableType>
          <CustomType>RPG VX type</CustomType>
          <Address>+10</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>14438</ID>
          <Description>"Type "</Description>
          <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/>
          <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">6514822:Resources
6529158:Gear
7200902:Purchased!
</DropDownList>
          <LastState Value="6514822" RealAddress="200F1B23038"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Custom</VariableType>
          <CustomType>RPG VX type</CustomType>
          <Address>+0</Address>
          <CheatEntries>
            <CheatEntry>
              <ID>14513</ID>
              <Description>"Highly recommended to tick either Resources or Gear (Not Both)."</Description>
              <LastState Value="" RealAddress="00000000"/>
              <Color>7171FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>14440</ID>
              <Description>"Resources"</Description>
              <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:[Avoid This Value]
1:--
2:                    [ Codex and Tokens ]
3:XP Codex
4:CP Codex
5:Bronze Arena Token
6:Silver Arena Token
7:Gold Arena Token
8:Platinum Arena Token
9:Proof of Merit
-:                    [ Resources ]
10:Iron
11:--
12:Obsidian
13:Sunstone
14:Gems
15:Pyrocite
16:Horses
17:Tech Points
-:                    [ Consumables ]
18:Donari Chronicle
19:Mint Leaves of Magic
20:Roast Beef of Might
21:Apple of Agility
22:Salmon of Health
23:Medal of Valor
24:                    [ Affinities ]
25:Affinity: Earth
26:Affinity: Water
27:Affinity: Lightning
28:Affinity: Fire
29:Affinity: Dark
30:Affinity: Light
31:                    [ Tomes ]
32:Book of Unlife
33:Defiled Donari Tome
34:Mark of the Risen
35:Primal Tome
36:--
37:--
38:--
39:--
40:--
41:--
42:--
43:--
44:--
45:--
46:--
47:                    [ Traits ]
48:Trait: Scavenger
49:Trait: Garrison
50:Trait: Bodyguard
51:Trait: Vengeance
52:Trait: Overpower
53:Trait: Imposing
54:Trait: Unassuming
55:Trait: Resolve
56:Trait: Unscathed
57:Trait: Precision
58:Trait: Assassin's Heart
59:Trait: Archer Captain
60:Trait: Soldier Captain
61:Trait: Knight Captain
62:Trait: Concentration
63:Trait: Disarm
64:Trait: Lithe Assault
65:Trait: Assassin's Reaper
66:Trait: Bowmanship
67:Trait: Dragonslayer
68:Trait: Warrior's Hubris
69:Trait: Challenger
70:Trait: Executioner
71:Trait: Healing Attuned
72:Trait: Cold-Blooded
73:Trait: Beacon
74:Trait: Arcane Barrier
75:Trait: Arcane Might
76:Trait: Arcane Speed
77:Trait: Arcane Vigor
78:Trait: Counterattack
79:Trait: Desperation
80:Trait: Immortal Spirit
81:Trait: Smite
82:Trait: Shock and Awe
83:Trait: Bloodlust
84:Trait: Silver-Tongued
85:Trait: Treasure Hunter
86:Trait: Tundra Warrior
87:Trait: Desert Warrior
88:--
89:--
90:Trait: Benevolent
91:Trait: Liberator
92:Trait: Rally
93:Trait: Barricade
94:Trait: Pacifist
95:Trait: Wide Guard
96:Trait: Raid Captain
</DropDownList>
              <LastState Value="52" RealAddress="200F1B23040"/>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Custom</VariableType>
              <CustomType>RPG VX type</CustomType>
              <Address>+8</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>14436</ID>
              <Description>"Gear"</Description>
              <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:[Avoid This Value]
1:--
2:                    [ Swords ]
3:Steel Arming Sword
4:Elegant Blade
5:Flame Saber
6:Steelshatter
7:Excalibur
8:Sin Credo
9:                    [ Great Swords ]
10:Steel Greatsword
11:Giant's Thresher
12:Kesh's Daikatana
13:Dragon Slayer
14:Balmung
15:--
16:                    [ Polearms ]
17:Sayunaari War Pike
18:Crystal Lance
19:Fang of Duros
20:--
21:                    [ Daggers ]
22:Eskandar's Karambit
23:Obsidian Edge
24:Zero Point Blade
25:--
26:                    [ Maces ]
27:Acolyte's Mace
28:Crusader's Mace
29:Refuge
30:--
31:                    [ Bows ]
32:Guerilla Bow
33:Trueshot Bow
34:Ataraxia
35:Heartseeker
36:Obsidian Arquebus
37:--
38:--
39:--
40:--
41:--
42:--
43:--
44:--
45:                    [ Mage Gear ]
46:Donari Staff
47:--
48:Blood Staff
49:Apprentice Spellbook
50:Grandmaster Spellbook
51:Auraweave Cloak
52:Cyrene's Regalia
53:--
54:                    [ Military ]
55:Sergeant's Uniform
56:Officer's Regalia
57:--
58:--
59:                    [ Light Armor ]
60:Scout's Gear
61:Guerilla Armor
62:Shinobi Gi
63:Blademaster's Armor
64:Landis's Mirage
65:--
66:--
67:                    [ Heavy Armor ]
68:Steel Plate Armor
69:Donari Armor
70:Dragonscale Armor
71:Imperial Battle Armor
72:Obsidian Plate Armor
73:St. Teresa's Tiara
74:                    [ Shields ]
75:Hulking Pavise
76:Aldor's Tower Shield
77:St. Teresa's Bulwark
78:--
79:--
80:                    [ Halloween 2022 ]
81:Skull of Rowdain
82:--
83:--
84:--
85:--
86:--
87:--
88:--
89:--
90:--
91:                    [ Accessories ]
92:Puffin Feather Amulet
93:Ruby Ring
94:Emerald Ring
95:Sapphire Ring
96:Ribbon
97:Kesh's Toolkit
98:Noisy Cricket
99:Boots of Tyranny
100:Imperial War Banner
101:Everlasting Potion
102:Jade Figurine
103:Iblis Family Signet
104:Donar's Treatise of War
105:Soha's Blood Shard
106:Landis's Fixed Dice
107:Genbu Shell Fragment
108:Temporal Modulator
109:Black Belt
110:Cloak of Cunning
111:Ace of Spaces
112:Essence of Embor
113:Belinda's Field Kit
114:Signet of Wrath
115:Firewalker Boots
116:--
117:                    [ Legends ]
118:Shadowchaster Boots
119:Gilded Clover
120:Mercurial Shoes
121:Caladori Charm
122:Fitch Farm Rancher Hat
123:Grothnor Lich's Skull
124:Spencer's Spectacles
125:Aetherium Gemstone
126:Sunset Bay Theatre Mask
127:--
128:--
129:Warfarer's Boots
130:Duelist's Contract
131:Do-It-Yourself Bandage
132:Emperor's Missive
133:Donari Charm
134:Commoner's Goblet
135:Tailored Great Helm
136:Thorny Charm
</DropDownList>
              <LastState Value="52" RealAddress="200F1B23040"/>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Custom</VariableType>
              <CustomType>RPG VX type</CustomType>
              <Address>+8</Address>
              <Hotkeys>
                <Hotkey>
                  <Action>Increase Value</Action>
                  <Keys>
                    <Key>6</Key>
                  </Keys>
                  <Value>1</Value>
                  <ID>0</ID>
                </Hotkey>
                <Hotkey>
                  <Action>Decrease Value</Action>
                  <Keys>
                    <Key>5</Key>
                  </Keys>
                  <Value>1</Value>
                  <ID>1</ID>
                </Hotkey>
              </Hotkeys>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
and this is a "turns taken" script.
Spoiler

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>14538</ID>
      <Description>"Turns Taken"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1" moAllowManualCollapseAndExpand="1"/>
      <LastState Value="" Activated="1" RealAddress="00000000"/>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>14518</ID>
          <Description>"Turns Taken"</Description>
          <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : SymphonyOfWar.exe
  Version: 1.10.2
  Date   : 2024-04-14
  Author : RMLSNEK
}

[ENABLE]

aobscanmodule(TurnsTakenScript,x64-msvcrt-ruby240.dll,48 83 3C C3 34 0F)
alloc(newmem,$1000,TurnsTakenScript)

label(code GetTurns GetTurnsOffset)
label(return)

newmem:

code:
  //cmp [rbx+rax*8],(int)21
  cmp [rbx+rax*8]+158],(int)30306572
  je TurnsTaken

  //Engage Normal Route
  cmp qword ptr [rbx+rax*8],34
  jmp return

TurnsTaken:
  mov [GetTurns],rbx
  mov [GetTurnsOffset],rax

  //Engage Normal Route
  cmp qword ptr [rbx+rax*8],34
  jmp return

GetTurns:
dq 0

GetTurnsOffset:
dq 0

TurnsTakenScript:
  jmp newmem

return:
registersymbol(TurnsTakenScript GetTurns GetTurnsOffset)

[DISABLE]

TurnsTakenScript:
  db 48 83 3C C3 34

unregistersymbol(TurnsTakenScript GetTurns GetTurnsOffset)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: x64-msvcrt-ruby240.rb_ivar_defined+120

x64-msvcrt-ruby240.rb_ivar_defined+F6: E8 F5 36 FA FF        - call x64-msvcrt-ruby240.st_lookup
x64-msvcrt-ruby240.rb_ivar_defined+FB: 85 C0                 - test eax,eax
x64-msvcrt-ruby240.rb_ivar_defined+FD: 0F 84 5D FF FF FF     - je x64-msvcrt-ruby240.rb_ivar_defined+60
x64-msvcrt-ruby240.rb_ivar_defined+103: 48 8B 45 F8           - mov rax,[rbp-08]
x64-msvcrt-ruby240.rb_ivar_defined+107: 48 F7 03 00 20 00 00  - test [rbx],00002000
x64-msvcrt-ruby240.rb_ivar_defined+10E: 75 48                 - jne x64-msvcrt-ruby240.rb_ivar_defined+158
x64-msvcrt-ruby240.rb_ivar_defined+110: 8B 53 10              - mov edx,[rbx+10]
x64-msvcrt-ruby240.rb_ivar_defined+113: 48 39 D0              - cmp rax,rdx
x64-msvcrt-ruby240.rb_ivar_defined+116: 0F 83 44 FF FF FF     - jae x64-msvcrt-ruby240.rb_ivar_defined+60
x64-msvcrt-ruby240.rb_ivar_defined+11C: 48 8B 5B 18           - mov rbx,[rbx+18]
// ---------- INJECTING HERE ----------
x64-msvcrt-ruby240.rb_ivar_defined+120: 48 83 3C C3 34        - cmp qword ptr [rbx+rax*8],34
// ---------- DONE INJECTING  ----------
x64-msvcrt-ruby240.rb_ivar_defined+125: 0F 84 35 FF FF FF     - je x64-msvcrt-ruby240.rb_ivar_defined+60
x64-msvcrt-ruby240.rb_ivar_defined+12B: BE 14 00 00 00        - mov esi,00000014
x64-msvcrt-ruby240.rb_ivar_defined+130: E9 2D FF FF FF        - jmp x64-msvcrt-ruby240.rb_ivar_defined+62
x64-msvcrt-ruby240.rb_ivar_defined+135: 0F 1F 00              - nop dword ptr [rax]
x64-msvcrt-ruby240.rb_ivar_defined+138: 48 89 D9              - mov rcx,rbx
x64-msvcrt-ruby240.rb_ivar_defined+13B: 48 89 55 28           - mov [rbp+28],rdx
x64-msvcrt-ruby240.rb_ivar_defined+13F: E8 FC DA F1 FF        - call x64-msvcrt-ruby240.rb_obj_class
x64-msvcrt-ruby240.rb_ivar_defined+144: 48 8B 55 28           - mov rdx,[rbp+28]
x64-msvcrt-ruby240.rb_ivar_defined+148: 48 8B 40 18           - mov rax,[rax+18]
x64-msvcrt-ruby240.rb_ivar_defined+14C: 48 8B 08              - mov rcx,[rax]
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>14530</ID>
              <Description>"Amount"</Description>
              <LastState Value="5" RealAddress="29D17005A50"/>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Custom</VariableType>
              <CustomType>RPG VX type</CustomType>
              <Address>[GetTurns]+[GetTurnsOffset]*8-158</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>14536</ID>
          <Description>"Challenge Missions"</Description>
          <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : SymphonyOfWar.exe
  Version: 1.10.2
  Date   : 2024-04-14
  Author : RMLSNEK
}

[ENABLE]

aobscanmodule(TurnsTakenObjScript,x64-msvcrt-ruby240.dll,48 8B 40 10 49 89 45 00)
alloc(newmem,$1000,TurnsTakenObjScript)

label(code GetTurnsObj)
label(return)

newmem:

code:
  cmp [rax+10],(int)40554764
  je TurnsTakenObj
  jmp returnroute

TurnsTakenObj:
  mov [GetTurnsObj],rax
  jmp returnroute

returnroute:
  //Engage Normal Route
  mov rax,[rax+10]
  mov [r13+00],rax
  jmp return

GetTurnsObj:
dq 0

TurnsTakenObjScript:
  jmp newmem
  nop 3

return:
registersymbol(TurnsTakenObjScript GetTurnsObj)

[DISABLE]

TurnsTakenObjScript:
  db 48 8B 40 10 49 89 45 00

unregistersymbol(TurnsTakenObjScript GetTurnsObj)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: x64-msvcrt-ruby240.st_lookup+6F

x64-msvcrt-ruby240.st_lookup+4A: 48 83 F8 FE        - cmp rax,-02
x64-msvcrt-ruby240.st_lookup+4E: 74 E5              - je x64-msvcrt-ruby240.st_lookup+35
x64-msvcrt-ruby240.st_lookup+50: 48 83 F8 FF        - cmp rax,-01
x64-msvcrt-ruby240.st_lookup+54: 0F 84 B6 00 00 00  - je x64-msvcrt-ruby240.st_lookup+110
x64-msvcrt-ruby240.st_lookup+5A: 48 8D 58 FE        - lea rbx,[rax-02]
x64-msvcrt-ruby240.st_lookup+5E: 4D 85 ED           - test r13,r13
x64-msvcrt-ruby240.st_lookup+61: 74 14              - je x64-msvcrt-ruby240.st_lookup+77
x64-msvcrt-ruby240.st_lookup+63: 49 8B 56 30        - mov rdx,[r14+30]
x64-msvcrt-ruby240.st_lookup+67: 48 8D 04 5B        - lea rax,[rbx+rbx*2]
x64-msvcrt-ruby240.st_lookup+6B: 48 8D 04 C2        - lea rax,[rdx+rax*8]
// ---------- INJECTING HERE ----------
x64-msvcrt-ruby240.st_lookup+6F: 48 8B 40 10        - mov rax,[rax+10]
// ---------- DONE INJECTING  ----------
x64-msvcrt-ruby240.st_lookup+73: 49 89 45 00        - mov [r13+00],rax
x64-msvcrt-ruby240.st_lookup+77: B8 01 00 00 00     - mov eax,00000001
x64-msvcrt-ruby240.st_lookup+7C: 48 83 C4 38        - add rsp,38
x64-msvcrt-ruby240.st_lookup+80: 5B                 - pop rbx
x64-msvcrt-ruby240.st_lookup+81: 5E                 - pop rsi
x64-msvcrt-ruby240.st_lookup+82: 5F                 - pop rdi
x64-msvcrt-ruby240.st_lookup+83: 41 5C              - pop r12
x64-msvcrt-ruby240.st_lookup+85: 41 5D              - pop r13
x64-msvcrt-ruby240.st_lookup+87: 41 5E              - pop r14
x64-msvcrt-ruby240.st_lookup+89: 41 5F              - pop r15
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>14537</ID>
              <Description>"Amount"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Custom</VariableType>
              <CustomType>RPG VX type</CustomType>
              <Address>[GetTurnsObj]+70</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>14539</ID>
              <Description>"View Mission Info to Update Value. If value is failed or completed. Then this will not show."</Description>
              <LastState Value="" RealAddress="00000000"/>
              <Color>7171FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>


These tables use RPG VX value type. Thanks to Dark Byte Be sure to use it.
Spoiler
How to Use:
[Right Click on the "Value Type" selective bar and click "Define
new custom type (Auto Assembler)" . Delete everything inside this Script and paste the new script (from below). You can now select this value type to search for values.

Code: Select all

alloc(TypeName,256)
alloc(ByteSize,4)
alloc(PreferedAlignment, 4)
alloc(ConvertRoutine,1024)
alloc(ConvertBackRoutine,1024)

TypeName:
db 'RPG VX type',0

ByteSize:
dd 4

PreferedAlignment:
dd 1


//The convert routine should hold a routine that converts the data to an nteger (in eax)
//function declared as: stdcall int ConvertRoutine(unsigned char *input);

//Note: Keep in mind that this routine can be called by multiple threads at the same time.

ConvertRoutine:
[32-bit]
push ebp
mov ebp,esp
push ecx
mov ecx,[ebp+8]
[/32-bit]

//at this point ecx contains the address where the bytes are stored

//put the bytes into the eax register
mov eax,[ecx] //second fun fact, addressing with 32-bit registers doesn't work in 64-bit, it becomes a 64-bit automatically (most of the time)
shr eax,1 //shift right by 1 bit (divide by 2)

//and now exit the routine
[64-bit]
ret
[/64-bit]
[32-bit]
pop ecx
pop ebp
ret 4
[/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: stdcall void ConvertBackRoutine(int i, unsigned char *output);
ConvertBackRoutine:
[32-bit]
push ebp
mov ebp,esp
push edx //save the registers
push ecx
mov edx,[ebp+0c]
mov ecx,[ebp+08]
[/32-bit]

//at this point edx contains the address to write the value to
//and ecx contains the value

push eax
push edx


mov edx,[edx] //edx now contains the original value
and edx,1 //only save the first bit

mov eax,ecx //eax gets the user input value
shl eax,1 //shift left by 1 bit (multiply by 2)
or eax,edx //add the bits of the original value

pop edx
mov [edx],eax //write the new value into the old value
pop eax

[64-bit]
//everything is back to what it was, so exit
ret
[/64-bit]

[32-bit]
//cleanup first
pop ecx
pop edx
pop ebp
ret 8
[/32-bit]
you should be able to select all and then copy the code-paste into your own table. But here's my table if you need it. Not sure if the dlc will offset any values so hopefully this works for you guys. :oops:
I have downloaded the table, but I genuinely don't see a way to use it. There are no values - am I doing something wrong? Can you please post a quick set of instructions to use this (for example, "use an item for values to updates" or something like that) or a video, as other people have mentioned?

Image

AlexS
Expert Cheater
Expert Cheater
Posts: 309
Joined: Sun Apr 08, 2018 3:46 pm
Reputation: 185

Re: [Request] Symphony of War: The Nephilim Saga

Post by AlexS »

(Google translation)

Setting all stats of the selected unit to maximum values, as in the screenshot I showed:
Spoiler
Image
Works in different game modes on all types of units, including allied and enemy (v1.10.22, win7 x64).
Activate the script, press and hold down the "~" (tilde) key, then move the cursor over the units whose stats you want to change. Stats change only when you hold down the key.
Note. Please note that during the battle you can also change the stats of any units.
Attachments
SoW_v1.2.CT
(1.81 KiB) Downloaded 33 times

User avatar
RMLSNK
Novice Cheater
Novice Cheater
Posts: 24
Joined: Sat Oct 28, 2023 8:05 pm
Reputation: 20

Re: [Request] Symphony of War: The Nephilim Saga

Post by RMLSNK »

rmndr wrote:
Wed Apr 24, 2024 5:33 pm
RMLSNK wrote:
Wed Apr 17, 2024 7:37 pm
linkchaos wrote:
Wed Apr 17, 2024 4:32 am
How do I use these with CE?

you should be able to select all and then copy the code-paste into your own table. But here's my table if you need it. Not sure if the dlc will offset any values so hopefully this works for you guys. :oops:
I have downloaded the table, but I genuinely don't see a way to use it. There are no values - am I doing something wrong? Can you please post a quick set of instructions to use this (for example, "use an item for values to updates" or something like that) or a video, as other people have mentioned?

Image





===========================

ah that's entirely my bad! I feel so bad, I forgot to mention it's for the index slot 1 of the trade system.

here are some images to help:
Spoiler


The first item in the list, and only this item slot will be our target. (circled in red). We will be changing this value from a "Affinity: Water" to a "Heartseeker" item.

Image

we can do this by selecting "Type" and changing the value from "Resources" to "Gear" as indicated by the red circle.
Just make sure the item you want matches the "Type".E.g.

[*] If you want horses, or iron then you want to set "Type" as "Resources" and select the item in the "Resources" list (as shown by the green line)

[*] If you want an item like a heartsteel bow, then set "Type" as "Gear" and select the item in the "Gear" list(as shown by the yellow line)


Image


For our example, we will be changing the "Affinity: Water" to a "Heartseeker" Bow so lets select Gear and then select the item from the Gear List. (as shown by the orange circle)

Image

As you can see on the rightside of the trade menu, the item is displayed correctly, but the item itself is still named "Affinity: Water". This item is actually the bow, so we can ignore that. (As shown by the purple circle)

Image

and finally, we if do want to update the visual of the text, we just back out of the trade and re-enter, and it should correct itself.

Image
Once again I'm really sorry for forgetting about this crucial piece of information.

Sword X
Expert Cheater
Expert Cheater
Posts: 78
Joined: Fri Jun 18, 2021 11:27 am
Reputation: 3

Re: [Request] Symphony of War: The Nephilim Saga

Post by Sword X »

You can make scripts for each separate statistic?

Post Reply

Who is online

Users browsing this forum: AmazonBot, Devola, Google Adsense [Bot], LiQuNaTie, roflcopter572