made a script to fetch the items/moves shortcuts, which allows you to customise at will. that means all characters can use all the moves of any classes at any levels. e.g., Angela can summon Seraph in battle.
for the ids, the Item ids are converted from
Exeter's sharing.
Moves ids aren't completed, it only contains Duran's, Angela's, and Riesz's. most likely there are many more for Charlotte. I'll add them in on 2nd playthrough... which will be a long time away. you can always add them in yourself.
copy and paste the following codes ONto your table.
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>17184</ID>
<Description>"item/magic shortcuts read"</Description>
<Options moHideChildren="1"/>
<LastState Activated="1"/>
<Color>FF0000</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript Async="1">[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanregion(some0x10bytesReadInMemcpyAOB,VCRUNTIME140.memcpy,VCRUNTIME140.memcpy+800,0F ** ** ** 0F ** ** ** 48 ** ** ** 49 ** ** 75)
registersymbol(some0x10bytesReadInMemcpyAOB)
///
aobscanmodule(imShortcutsReadCAller3AOB,Trials of Mana-Win64-Shipping.exe,74 03 49 ** ** 48 ** ** ** 4C ** ** 44 ** ** ** 48 ** ** 4C ** ** 41 ** ** ** 49 ** ** 4C ** ** ** E8 ** ** ** ** 48 ** ** ** 48 ** ** ** F6 ** ** 01 74 ** 48)
registersymbol(imShortcutsReadCAller3AOB)
///
///
aobscanmodule(imShortcutsReadCAller4AOB,Trials of Mana-Win64-Shipping.exe,48 ** ** ** 80 ** ** 75 ** 48 ** ** 48 ** ** ** 80 ** ** 48 ** ** ** 74)
registersymbol(imShortcutsReadCAller4AOB)
///
label(pIMShortcut)
registersymbol(pIMShortcut)
alloc(newmem,2048,some0x10bytesReadInMemcpyAOB+4) //"VCRUNTIME140.dll"+1554)
label(returnhere)
label(originalcode_some0x10bytesReadInMemcpyAOB)
registersymbol(originalcode_some0x10bytesReadInMemcpyAOB)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
//mov rax,"Trials of Mana-Win64-Shipping.exe"+5D4D9DA
//cmp [rsp],rax
//jne @f
//mov rax,"Trials of Mana-Win64-Shipping.exe"+780278
//cmp [rsp+80],rax
//jne @f
mov rax,imShortcutsReadCAller3AOB
lea rax,[rax+26]
//mov rax,"Trials of Mana-Win64-Shipping.exe"+17400678
cmp [rsp+f0],rax
jne @f
mov rax,imShortcutsReadCAller4AOB
cmp [rsp+580],rax
jne @f
cmp rsi,r10
jne @f
//movups xmm0,[rcx+rdx]
mov rax,pIMShortcut
mov [rax],r10
originalcode_some0x10bytesReadInMemcpyAOB:
readmem(some0x10bytesReadInMemcpyAOB+4,8)
//movups xmm0,[rcx+rdx]
//add rcx,10
exit:
jmp returnhere
///
pIMShortcut:
///
some0x10bytesReadInMemcpyAOB+4: //"VCRUNTIME140.dll"+1554:
jmp newmem
nop 3
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
some0x10bytesReadInMemcpyAOB+4: //"VCRUNTIME140.dll"+1554:
readmem(originalcode_some0x10bytesReadInMemcpyAOB,8)
//db 0F 10 04 11 48 83 C1 10
//Alt: movups xmm0,[rcx+rdx]
//Alt: add rcx,10
unregistersymbol(originalcode_some0x10bytesReadInMemcpyAOB)
unregistersymbol(pIMShortcut)
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>17187</ID>
<Description>"[Item/Move Shortcuts]"</Description>
<Options moHideChildren="1"/>
<LastState Value="" Activated="1" RealAddress="00000000"/>
<Color>000080</Color>
<VariableType>Array of byte</VariableType>
<ByteLength>0</ByteLength>
<Address>pIMShortcut</Address>
<Offsets>
<Offset>0</Offset>
</Offsets>
<CheatEntries>
<CheatEntry>
<ID>17215</ID>
<Description>"view item/magic shortcuts once before EVERY edit session"</Description>
<LastState Value="" RealAddress="00000000"/>
<Color>808080</Color>
<GroupHeader>1</GroupHeader>
</CheatEntry>
<CheatEntry>
<ID>17260</ID>
<Description>"don't edit with either the items ring or moves ring opened"</Description>
<LastState Value="" RealAddress="00000000"/>
<Color>808080</Color>
<GroupHeader>1</GroupHeader>
</CheatEntry>
<CheatEntry>
<ID>17237</ID>
<Description>"don't freeze any address"</Description>
<Options moHideChildren="1"/>
<LastState Value="" RealAddress="00000000"/>
<Color>808080</Color>
<GroupHeader>1</GroupHeader>
<CheatEntries>
<CheatEntry>
<ID>17262</ID>
<Description>"imShortcutsItemID"</Description>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">*:nil
:------ Items on Hand ------
0000:Candy
0001:Chocolate
0002:Honey Elixir
0003:Faerie Walnut
0004:Medical Herb
0005:Stardust Herb
0006:Cup of Wishes
0007:Magic Rope
0008:Dream Reed
0009:Curious Cookie
000a:Miracle Cookie
000b:Mythic Cookie
000c:Ample Incense
000d:Rich Incense
000e:Opulent Incense
000f:Strength Serum
0010:Stamina Serum
0011:Intellect Serum
0012:Spirit Serum
0013:Luck Serum
0014:Vitality Elixir
0015:Magic Elixir
:------ Magic Items ------
0016:Earth Coin
0017:Gnome Icon
0018:Basilisk Fang
0019:Bulette Scale
001a:Molebear Claw
001b:Storm Coin
001c:Sylphid Icon
001d:Harpy Fang
001e:Bee Eye
001f:Siren Claw
0020:Ice Coin
0021:Undine Icon
0022:Dragon Fang
0023:Sahagin Chip
0024:Slime Eye
0025:Poseidon Claw
0026:Flame Coin
0027:Mando Icon
0028:Lizard Fang
0029:Drake Scale
002a:Batmo Eye
002b:Cerberus Paw
002c:Dark Coin
002d:Shade Icon
002e:Ghost Eye
002f:Specter Eye
0030:Shadow Eye
0031:Demon Claw
0032:Light Coin
0033:Lumina Icon
0034:Poto Oil
0035:Ton Oil
0036:Marmpoto Oil
0037:Parpoto Claw
0038:Moon Coin
0039:Luna Icon
003a:Imp Eye
003b:Chobin Oil
003c:Wolfiend Oil
003d:Succube Claw
003e:Mushroom Eye
003f:Assassineye
0040:Dryad Icon
0041:Tezla Oil
0042:Matango Oil
0043:Crawler Claw
:------ Projectiles ------
0044:Hand Axe
0045:Shuriken
0046:Dart
0047:Bumpkin
:------ Key Items ------
006c:Nitromyte
006d:Minor Mallet
006e:Moogle Pin
006f:Ferry Flute
0070:Flammie Drum
0071:Mirage Mirror
</DropDownList>
<LastState Value="" RealAddress="00000000"/>
<ShowAsHex>1</ShowAsHex>
<Color>FFFFFF</Color>
<VariableType>Array of byte</VariableType>
<ByteLength>0</ByteLength>
<Address>+0</Address>
</CheatEntry>
<CheatEntry>
<ID>17263</ID>
<Description>"imShortcutsMoveID"</Description>
<DropDownList DescriptionOnly="1" DisplayValueAsItem="1">00:nil
:------ Earth Attacks ------
3c:Diamond Shards
3d:Diamond Shards +
46:Earthquake
47:Earthquake +
:------ Wind Attacks ------
3e:Cyclone
3f:Cyclone +
48:Thunderstorm
49:Thunderstorm +
:------ Water Attacks ------
40:Ice Smash
41:Ice Smash +
4a:Spike Freeze
4b:Spike Freeze +
:------ Fire Attacks ------
42:Fireball
43:Firecall +
4b:Explode
4d:Explode +
:------ Dark Attacks ------
44:Evil Gate
45:Evil Gate +
:------ Light Attacks ------
58:Holy Bolt
59:Holy Bolt+
5b:Lucent Beam
5c:Lucent Beam +
:------ Non-Elemental Attacks ------
5d:Doopelganger
5e:Glitter Dust
:------ Summons ------
2a:Freya
2b:Seraph
2c:Jormungandr
2d:Hexas
2e:? Summons
:------ Weapon Imbues ------
05:Stone Saber
06:Stone Saber +
07:Lightning Saber
08:Lightning Saber +
09:Ice Saber
0a:Ice Saber +
0b:Flame Saber
0c:Flame Saber +
11:Moon Saber
12:Leaf Saber
:------ Stats Up ------
17:Protection
18:Protection +
23:Strengthen
24:Strengthen +
1f:Mental Boost
20:Mental Boost +
:------ Stats Down ------
1d:Defenseless
1e:Defenseless +
25:Enfeeble
26:Enfeeble +
21:Weaken
22:Weaken +
:------ Recovery ------
01:Healing Hands
02:Healing Hands +
03:Twinkle Rain
</DropDownList>
<LastState Value="" RealAddress="00000000"/>
<ShowAsHex>1</ShowAsHex>
<Color>FFFFFF</Color>
<VariableType>Array of byte</VariableType>
<ByteLength>0</ByteLength>
<Address>+0</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>17206</ID>
<Description>"[↑]"</Description>
<Options moHideChildren="1"/>
<LastState Value="" RealAddress="00000000"/>
<ShowAsHex>1</ShowAsHex>
<Color>000080</Color>
<VariableType>Array of byte</VariableType>
<ByteLength>0</ByteLength>
<Address>+0*1c</Address>
<CheatEntries>
<CheatEntry>
<ID>17239</ID>
<Description>"+0"</Description>
<DropDownList DisplayValueAsItem="1">00:empty
01:items
02:moves
</DropDownList>
<ShowAsHex>1</ShowAsHex>
<Color>0000FF</Color>
<VariableType>Byte</VariableType>
<Address>+0</Address>
<CheatEntries>
<CheatEntry>
<ID>17240</ID>
<Description>"item id"</Description>
<DropDownListLink>imShortcutsItemID</DropDownListLink>
<ShowAsHex>1</ShowAsHex>
<Color>0000FF</Color>
<VariableType>2 Bytes</VariableType>
<Address>+1</Address>
</CheatEntry>
<CheatEntry>
<ID>17241</ID>
<Description>"moves id"</Description>
<DropDownListLink>imShortcutsMoveID</DropDownListLink>
<ShowAsHex>1</ShowAsHex>
<Color>0000FF</Color>
<VariableType>Byte</VariableType>
<Address>+2</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>17242</ID>
<Description>"full id"</Description>
<ShowAsHex>1</ShowAsHex>
<Color>808080</Color>
<VariableType>4 Bytes</VariableType>
<Address>+0</Address>
</CheatEntry>
<CheatEntry>
<ID>17243</ID>
<Description>"+10"</Description>
<DropDownList DisplayValueAsItem="1">0:use mp (moves)
1:infinite (key items?)
9:normal (consumables)
</DropDownList>
<Color>808080</Color>
<VariableType>4 Bytes</VariableType>
<Address>+10</Address>
</CheatEntry>
<CheatEntry>
<ID>17244</ID>
<Description>"quantity/mp"</Description>
<Color>808080</Color>
<VariableType>4 Bytes</VariableType>
<Address>+14</Address>
</CheatEntry>
<CheatEntry>
<ID>17245</ID>
<Description>"bCanUse"</Description>
<Color>808080</Color>
<VariableType>4 Bytes</VariableType>
<Address>+18</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>17200</ID>
<Description>"[→]"</Description>
<Options moHideChildren="1"/>
<LastState Value="" RealAddress="0000001C"/>
<ShowAsHex>1</ShowAsHex>
<Color>000080</Color>
<VariableType>Array of byte</VariableType>
<ByteLength>0</ByteLength>
<Address>+1*1c</Address>
<CheatEntries>
<CheatEntry>
<ID>17246</ID>
<Description>"+0"</Description>
<DropDownList DisplayValueAsItem="1">00:empty
01:items
02:moves
</DropDownList>
<ShowAsHex>1</ShowAsHex>
<Color>0000FF</Color>
<VariableType>Byte</VariableType>
<Address>+0</Address>
<CheatEntries>
<CheatEntry>
<ID>17247</ID>
<Description>"item id"</Description>
<DropDownListLink>imShortcutsItemID</DropDownListLink>
<ShowAsHex>1</ShowAsHex>
<Color>0000FF</Color>
<VariableType>2 Bytes</VariableType>
<Address>+1</Address>
</CheatEntry>
<CheatEntry>
<ID>17248</ID>
<Description>"moves id"</Description>
<DropDownListLink>imShortcutsMoveID</DropDownListLink>
<ShowAsHex>1</ShowAsHex>
<Color>0000FF</Color>
<VariableType>Byte</VariableType>
<Address>+2</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>17249</ID>
<Description>"full id"</Description>
<ShowAsHex>1</ShowAsHex>
<Color>808080</Color>
<VariableType>4 Bytes</VariableType>
<Address>+0</Address>
</CheatEntry>
<CheatEntry>
<ID>17250</ID>
<Description>"+10"</Description>
<DropDownList DisplayValueAsItem="1">0:use mp (moves)
1:infinite (key items?)
9:normal (consumables)
</DropDownList>
<Color>808080</Color>
<VariableType>4 Bytes</VariableType>
<Address>+10</Address>
</CheatEntry>
<CheatEntry>
<ID>17251</ID>
<Description>"quantity/mp"</Description>
<Color>808080</Color>
<VariableType>4 Bytes</VariableType>
<Address>+14</Address>
</CheatEntry>
<CheatEntry>
<ID>17252</ID>
<Description>"bCanUse"</Description>
<Color>808080</Color>
<VariableType>4 Bytes</VariableType>
<Address>+18</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>17194</ID>
<Description>"[↓]"</Description>
<Options moHideChildren="1"/>
<LastState Value="" RealAddress="00000038"/>
<ShowAsHex>1</ShowAsHex>
<Color>000080</Color>
<VariableType>Array of byte</VariableType>
<ByteLength>0</ByteLength>
<Address>+2*1c</Address>
<CheatEntries>
<CheatEntry>
<ID>17253</ID>
<Description>"+0"</Description>
<DropDownList DisplayValueAsItem="1">00:empty
01:items
02:moves
</DropDownList>
<ShowAsHex>1</ShowAsHex>
<Color>0000FF</Color>
<VariableType>Byte</VariableType>
<Address>+0</Address>
<CheatEntries>
<CheatEntry>
<ID>17254</ID>
<Description>"item id"</Description>
<DropDownListLink>imShortcutsItemID</DropDownListLink>
<ShowAsHex>1</ShowAsHex>
<Color>0000FF</Color>
<VariableType>2 Bytes</VariableType>
<Address>+1</Address>
</CheatEntry>
<CheatEntry>
<ID>17255</ID>
<Description>"moves id"</Description>
<DropDownListLink>imShortcutsMoveID</DropDownListLink>
<ShowAsHex>1</ShowAsHex>
<Color>0000FF</Color>
<VariableType>Byte</VariableType>
<Address>+2</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>17256</ID>
<Description>"full id"</Description>
<ShowAsHex>1</ShowAsHex>
<Color>808080</Color>
<VariableType>4 Bytes</VariableType>
<Address>+0</Address>
</CheatEntry>
<CheatEntry>
<ID>17257</ID>
<Description>"+10"</Description>
<DropDownList DisplayValueAsItem="1">0:use mp (moves)
1:infinite (key items?)
9:normal (consumables)
</DropDownList>
<Color>808080</Color>
<VariableType>4 Bytes</VariableType>
<Address>+10</Address>
</CheatEntry>
<CheatEntry>
<ID>17258</ID>
<Description>"quantity/mp"</Description>
<Color>808080</Color>
<VariableType>4 Bytes</VariableType>
<Address>+14</Address>
</CheatEntry>
<CheatEntry>
<ID>17259</ID>
<Description>"bCanUse"</Description>
<Color>808080</Color>
<VariableType>4 Bytes</VariableType>
<Address>+18</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>17188</ID>
<Description>"[â†]"</Description>
<Options moHideChildren="1"/>
<LastState Value="" RealAddress="00000054"/>
<ShowAsHex>1</ShowAsHex>
<Color>000080</Color>
<VariableType>Array of byte</VariableType>
<ByteLength>0</ByteLength>
<Address>+3*1c</Address>
<CheatEntries>
<CheatEntry>
<ID>17189</ID>
<Description>"+0"</Description>
<DropDownList DisplayValueAsItem="1">00:empty
01:items
02:moves
</DropDownList>
<ShowAsHex>1</ShowAsHex>
<Color>0000FF</Color>
<VariableType>Byte</VariableType>
<Address>+0</Address>
<CheatEntries>
<CheatEntry>
<ID>17193</ID>
<Description>"item id"</Description>
<DropDownListLink>imShortcutsItemID</DropDownListLink>
<ShowAsHex>1</ShowAsHex>
<Color>0000FF</Color>
<VariableType>2 Bytes</VariableType>
<Address>+1</Address>
</CheatEntry>
<CheatEntry>
<ID>17235</ID>
<Description>"moves id"</Description>
<DropDownListLink>imShortcutsMoveID</DropDownListLink>
<ShowAsHex>1</ShowAsHex>
<Color>0000FF</Color>
<VariableType>Byte</VariableType>
<Address>+2</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>17234</ID>
<Description>"full id"</Description>
<ShowAsHex>1</ShowAsHex>
<Color>808080</Color>
<VariableType>4 Bytes</VariableType>
<Address>+0</Address>
</CheatEntry>
<CheatEntry>
<ID>17190</ID>
<Description>"+10"</Description>
<DropDownList DisplayValueAsItem="1">0:use mp (moves)
1:infinite (key items?)
9:normal (consumables)
</DropDownList>
<Color>808080</Color>
<VariableType>4 Bytes</VariableType>
<Address>+10</Address>
</CheatEntry>
<CheatEntry>
<ID>17191</ID>
<Description>"quantity/mp"</Description>
<Color>808080</Color>
<VariableType>4 Bytes</VariableType>
<Address>+14</Address>
</CheatEntry>
<CheatEntry>
<ID>17192</ID>
<Description>"bCanUse"</Description>
<Color>808080</Color>
<VariableType>4 Bytes</VariableType>
<Address>+18</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>
an editing example:
you want to add "Glitter Dust" to Duran's ↑ shortcut:
1. activate the script when you're in-game.
2. when you are NOT in a town, view the Items/Moves SHORTCUT of Duran ONCE.
3. make sure NEITHER the Items Rings or Moves Rings are opened AFTER you view the Items/Moves SHORTCUT.
4. back to CE and tick the box of
[↑] and see if they are showing the correct values first. let say you have 7 Dart set on the ↑ shortcut. it should shows "01 items" on "
+0", "Dart" on "
item id", and "nil" on "
moves id".
5. if everything seems legit, change "
+0" to "02 moves", then change "
moves id" to "Glitter Dust", "
item id" would be set to "nil" automatically.
6. that's it. you don't need to touch the addresses in grey, they will be "fixed" when you use the Glitter Dust in-game.
NOTE that you don't need to freeze the address/pointer (tick the box) if you just want to change its value.
and for this script specifically, you should NOT freeze any pointers at all, as the filter aren't very stable, it would show the last joined character's Items/Moves SHORTCUT instead of the current controlling character's, IF you exit the pause menu, or open the Items Rings or Moves Rings right before you start edit, hence the point 3. of the instruction above. (may refine the fetch process later.....?)