[REQUEST] Zoria: Age of Shattering

Ask about cheats/tables for single player games here
Post Reply
cheatenginedead
Noobzor
Noobzor
Posts: 13
Joined: Fri May 26, 2023 6:05 am
Reputation: 0

[REQUEST] Zoria: Age of Shattering

Post by cheatenginedead »

Game Name: Zoria: Age of Shattering
Game Engine: Proprietary Engine
Game Version: 1.0

Options Required:

The usual

Steam Website:



Other Info:

All the basic options please, a trainer or table is preferred

User avatar
Marc
Table Makers
Table Makers
Posts: 378
Joined: Mon Mar 26, 2018 2:35 pm
Reputation: 377

Re: [REQUEST] Zoria: Age of Shattering

Post by Marc »

Hi,

try this one (test with the GoG version)
  • GodMode and One-Hit-Kill 2
  • Instead of loosing money/supplies/mats: get +100 each time
  • Items with more than 1 item in stock do not decrease
  • Get Adress of selected character (activate and select a char)
    • HP
    • Level
    • Shield Points
    • Mana
    • BaseMana
    • Character Name
    • Experience Points
    • Availabe Stats Points

have fun,
Marc
Attachments
Zoria Age of Shattering.CT
removed the fatigue feature ... not working as intended
(48.29 KiB) Downloaded 891 times

Kentda
Expert Cheater
Expert Cheater
Posts: 97
Joined: Fri Mar 10, 2017 6:08 am
Reputation: 9

Re: [REQUEST] Zoria: Age of Shattering

Post by Kentda »

Playing the game on v 1.0.1. And yes, it's a legit copy of the game, not a cracked copy. I understand sometimes cracked copies don't play well with tables.

Any material that drops while you have "Items with more than 1 item in stock do not decrease" become unlootable. I wasn't sure if this was because I had the "get 100" option on. Same result either way. Confirmed so far that Potions, Materials and Crafting Kits are affected by this. Not sure if there are any other consumables in the game however. Anything that you wear is not affected by this however. Sword drops and you can still loot it. Armor Craft kit drops and you can't loot it.

Hope that helps. Now it DOES work on not consuming items. That part does work.

acecel
Expert Cheater
Expert Cheater
Posts: 861
Joined: Sun Apr 09, 2017 1:32 am
Reputation: 142

Re: [REQUEST] Zoria: Age of Shattering

Post by acecel »

For information the savegame files that are located in ...
%USERPROFILE%\AppData\LocalLow\Tiny Trinket Games\Zoria - Age of Shattering\Saves )
... are simply SQL Lite Database files so you can open/edit them in an SQL DB Viewer and change your class or anything else, if you understand a little how db works.

To change your class for example :
1) While in the game remove all your gears and reset your skills points then save
2) Make a backup of the save
3) Open the save with any SQL Lite DB Viewer you want, there is many open source one on the net
4) Open the table "Followers"
5) Your character is the line with the ID = 1 (you will recognize your name anyway)
6) Your class is the class_id value, the list of classes with their ID is in the table "FollowersClasses" so go in there pick the ID of your new class then replace the value in the Followers table then click on "write data/Save/Confirm/Whatever your tool named the button to write the changes to the file
7) Start your game, use your skill points, gear up, etc

As you can see when opening the file in the table viewer there is A LOT of information in there, so you change your level, your skills, the classes of your followers and their classes and skills. and even the followers you have, etc ...
Basically anything related to your save is in there and could be changed but be careful the game may not like some changes and always make backups of your savegame after every change.




Coming back to the table the "Item doesn't decrease (if > 1)" script doesn't work on my game (i don't know the version, the exe information say 1.0 but i don't think it's updated), so i made one that doesn't reduce item quantity on item use and also allow to edit the item quantity. Tell me if this script works on your version guys.


For the first 3 scripts below there is some instructions inside (once you activate them), please read all theses instructions before starting to use the script or you will have issues or crashes, and of course make copy of your savegame when you try a new script and every few often.




Free Item Use & Item Quantity Editor

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>330651</ID>
      <Description>"Free Item Use &amp; Quantity Editor   (Read all instructions inside before using the script)"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <LastState/>
      <Color>FFFF00</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Zoria AoS.exe
  Version: 
  Date   : 2024-03-16
  Author : acecel
}

[ENABLE]

aobscanmodule(aob_item_use,GameAssembly.dll,29 43 38 40 84 F6) // should be unique
alloc(newmem,$1000,aob_item_use)

label(code)
label(return)

alloc(pQty,$8)
registersymbol(pQty)

pQty:
dq 0

newmem:
   push rcx
     lea rcx,[rbx+38]
     mov [pQty],rcx
   pop rcx

code:
 // sub [rbx+38],eax
 // test sil,sil
  jmp return

aob_item_use:
  jmp newmem
  nop
return:
registersymbol(aob_item_use)

[DISABLE]

aob_item_use:
  db 29 43 38 40 84 F6

unregistersymbol(pQty)
dealloc(pQty)
unregistersymbol(aob_item_use)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll.il2cpp+1E0E003

GameAssembly.dll.il2cpp+1E0DFE3: 83 B9 E0 00 00 00 00  - cmp dword ptr [rcx+000000E0],00
GameAssembly.dll.il2cpp+1E0DFEA: 75 05                 - jne GameAssembly.dll.il2cpp+1E0DFF1
GameAssembly.dll.il2cpp+1E0DFEC: E8 8F 58 0F FE        - call GameAssembly.il2cpp_runtime_class_init
GameAssembly.dll.il2cpp+1E0DFF1: 45 33 C0              - xor r8d,r8d
GameAssembly.dll.il2cpp+1E0DFF4: 8B D7                 - mov edx,edi
GameAssembly.dll.il2cpp+1E0DFF6: 8B CD                 - mov ecx,ebp
GameAssembly.dll.il2cpp+1E0DFF8: E8 23 E9 18 FF        - call GameAssembly.dll.il2cpp+F9C920
GameAssembly.dll.il2cpp+1E0DFFD: 8B F8                 - mov edi,eax
GameAssembly.dll.il2cpp+1E0DFFF: 85 C0                 - test eax,eax
GameAssembly.dll.il2cpp+1E0E001: 74 1F                 - je GameAssembly.dll.il2cpp+1E0E022
// ---------- INJECTING HERE ----------
GameAssembly.dll.il2cpp+1E0E003: 29 43 38              - sub [rbx+38],eax
// ---------- DONE INJECTING  ----------
GameAssembly.dll.il2cpp+1E0E006: 40 84 F6              - test sil,sil
GameAssembly.dll.il2cpp+1E0E009: 74 1E                 - je GameAssembly.dll.il2cpp+1E0E029
GameAssembly.dll.il2cpp+1E0E00B: 33 D2                 - xor edx,edx
GameAssembly.dll.il2cpp+1E0E00D: 48 8B CB              - mov rcx,rbx
GameAssembly.dll.il2cpp+1E0E010: E8 DB 88 FE FF        - call GameAssembly.dll.il2cpp+1DF68F0
GameAssembly.dll.il2cpp+1E0E015: 8B 4B 38              - mov ecx,[rbx+38]
GameAssembly.dll.il2cpp+1E0E018: 84 C0                 - test al,al
GameAssembly.dll.il2cpp+1E0E01A: 75 0A                 - jne GameAssembly.dll.il2cpp+1E0E026
GameAssembly.dll.il2cpp+1E0E01C: 8D 04 39              - lea eax,[rcx+rdi]
GameAssembly.dll.il2cpp+1E0E01F: 89 43 38              - mov [rbx+38],eax
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>330653</ID>
          <Description>"Item Qty must be &gt; 1"</Description>
          <LastState Value="" RealAddress="00000000"/>
          <Color>0000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>330654</ID>
          <Description>"Use the item once after editing the Quantity to force the game to save the new value"</Description>
          <LastState Value="" RealAddress="00000000"/>
          <Color>0000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>330655</ID>
          <Description>"Or you can drop the item on the floor"</Description>
          <LastState Value="" RealAddress="00000000"/>
          <Color>0000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>330656</ID>
          <Description>"Disable when not used (for ex it may prevent you from buying items)"</Description>
          <LastState Value="" RealAddress="00000000"/>
          <Color>0000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>330657</ID>
          <Description>"-------"</Description>
          <LastState Value="" RealAddress="00000000"/>
          <Color>808080</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>330658</ID>
          <Description>"Quantity"</Description>
          <LastState Value="1" RealAddress="2531ECEDD38"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>pQty</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>



Highlighted Item Quantity Editor (in Inventory menu)

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>330663</ID>
      <Description>"Highlighted Item Quantity Editor (in Inventory menu)    (Read all instructions inside before using the script)"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <LastState/>
      <Color>FFFF00</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Zoria AoS.exe
  Version: 
  Date   : 2024-03-17
  Author : acecel

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(aob_highlight_item,GameAssembly.dll,8B 47 3C 89 44 24 30 E8 95 DC 23 FE) // should be unique
alloc(newmem,$1000,aob_highlight_item)

label(code)
label(return)

alloc(pItemQty,$8)
registersymbol(pItemQty)

pItemQty:
dq 0

newmem:
  push rax
    lea rax,[rdi+3C]
    mov [pItemQty],rax
  pop rax

code:
  mov eax,[rdi+3C]
  mov [rsp+30],eax
  jmp return

aob_highlight_item:
  jmp newmem
  nop 2
return:
registersymbol(aob_highlight_item)

[DISABLE]

aob_highlight_item:
  db 8B 47 3C 89 44 24 30

unregistersymbol(pItemQty)
dealloc(pItemQty)
unregistersymbol(aob_highlight_item)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll.il2cpp+1CC4C7F

GameAssembly.dll.il2cpp+1CC4C46: 48 8B 05 DB 64 9C 00  - mov rax,[GameAssembly.dll.data+83128]
GameAssembly.dll.il2cpp+1CC4C4D: 83 B8 E0 00 00 00 00  - cmp dword ptr [rax+000000E0],00
GameAssembly.dll.il2cpp+1CC4C54: 75 0F                 - jne GameAssembly.dll.il2cpp+1CC4C65
GameAssembly.dll.il2cpp+1CC4C56: 48 8B C8              - mov rcx,rax
GameAssembly.dll.il2cpp+1CC4C59: E8 22 EC 23 FE        - call GameAssembly.il2cpp_runtime_class_init
GameAssembly.dll.il2cpp+1CC4C5E: 48 8B 05 C3 64 9C 00  - mov rax,[GameAssembly.dll.data+83128]
GameAssembly.dll.il2cpp+1CC4C65: 48 8B 80 B8 00 00 00  - mov rax,[rax+000000B8]
GameAssembly.dll.il2cpp+1CC4C6C: 48 8D 54 24 30        - lea rdx,[rsp+30]
GameAssembly.dll.il2cpp+1CC4C71: 48 8B 0D 18 FC 9D 00  - mov rcx,[GameAssembly.dll.data+9C890]
GameAssembly.dll.il2cpp+1CC4C78: 48 8B 98 B0 03 00 00  - mov rbx,[rax+000003B0]
// ---------- INJECTING HERE ----------
GameAssembly.dll.il2cpp+1CC4C7F: 8B 47 3C              - mov eax,[rdi+3C]
// ---------- DONE INJECTING  ----------
GameAssembly.dll.il2cpp+1CC4C82: 89 44 24 30           - mov [rsp+30],eax
GameAssembly.dll.il2cpp+1CC4C86: E8 95 DC 23 FE        - call GameAssembly.il2cpp_value_box
GameAssembly.dll.il2cpp+1CC4C8B: 48 8B 0D F6 97 9E 00  - mov rcx,[GameAssembly.dll.data+A6488]
GameAssembly.dll.il2cpp+1CC4C92: 45 33 C9              - xor r9d,r9d
GameAssembly.dll.il2cpp+1CC4C95: 4C 8B C0              - mov r8,rax
GameAssembly.dll.il2cpp+1CC4C98: 48 8B D3              - mov rdx,rbx
GameAssembly.dll.il2cpp+1CC4C9B: E8 20 B0 12 FF        - call System.String.Format
GameAssembly.dll.il2cpp+1CC4CA0: 48 8B 8E 88 00 00 00  - mov rcx,[rsi+00000088]
GameAssembly.dll.il2cpp+1CC4CA7: 48 85 C9              - test rcx,rcx
GameAssembly.dll.il2cpp+1CC4CAA: 74 5E                 - je GameAssembly.dll.il2cpp+1CC4D0A
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>330665</ID>
          <Description>"To force the game to save the new quantity you have to :"</Description>
          <LastState Value="" RealAddress="00000000"/>
          <Color>0000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>330666</ID>
          <Description>"1) Edit both value"</Description>
          <LastState Value="" RealAddress="00000000"/>
          <Color>0000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>330667</ID>
          <Description>"2.1)  [If you don't have "Free Item Use &amp; Quantity Editor"active]  Drop the item stack on the floor then loot it back"</Description>
          <LastState Value="" RealAddress="00000000"/>
          <Color>0000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>330668</ID>
          <Description>"2.2)  [If you have "Free Item Use &amp; Quantity Editor" active]  Drop the item stack on the floor and don't loot it back (or you will have double the quantity)"</Description>
          <LastState Value="" RealAddress="00000000"/>
          <Color>0000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>330669</ID>
          <Description>"3) Then you can save and reload the game, the new quantities will be saved"</Description>
          <LastState Value="" RealAddress="00000000"/>
          <Color>0000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>330670</ID>
          <Description>"-------"</Description>
          <LastState Value="" RealAddress="00000000"/>
          <Color>808080</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>330671</ID>
          <Description>"Quantity Current "</Description>
          <Options moRecursiveSetValue="1"/>
          <LastState Value="799" RealAddress="2531EF0153C"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>pItemQty</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>330672</ID>
          <Description>"Quantity Base"</Description>
          <LastState Value="799" RealAddress="2531EF01538"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>pItemQty</Address>
          <Offsets>
            <Offset>-4</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>



Infinite AP

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>330662</ID>
      <Description>"Infinite AP  (Read all instructions inside before using the script)"</Description>
      <Options moHideChildren="1"/>
      <LastState/>
      <Color>FFFF00</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Zoria AoS.exe
  Version: 
  Date   : 2024-03-16
  Author : acecel

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(aob_inf_ap,GameAssembly.dll,89 43 40 48 8B 0D 18 74 94 00) // should be unique
alloc(newmem,$1000,aob_inf_ap)

label(code)
//label(code2)
label(return)

newmem:
 //  cmp [rdi+88],0 // Test if is enemy
  // jne code2      // NO
 //  jmp code       // YES

code:
//  mov [rbx+40],eax
  mov rcx,[GameAssembly.dll.data+CD0A8]
  jmp return

//code2:
  //mov rcx,[GameAssembly.dll.data+CD0A8]
  //jmp return


aob_inf_ap:
  jmp newmem
  nop 5
return:
registersymbol(aob_inf_ap)









aobscanmodule(aob_inf_ap_2,GameAssembly.dll,C7 43 40 00 00 00 00 48 8B 05) // should be unique
alloc(newmem_2,$1000,aob_inf_ap_2)

label(code_2)
label(return_2)

newmem_2:

code_2:
 // mov [rbx+40],00000000
  jmp return_2

aob_inf_ap_2:
  jmp newmem_2
  nop 2
return_2:
registersymbol(aob_inf_ap_2)







[DISABLE]

aob_inf_ap:
  db 89 43 40 48 8B 0D 18 74 94 00

unregistersymbol(aob_inf_ap)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll.il2cpp+1D8DC86

GameAssembly.dll.il2cpp+1D8DC61: 48 8D 0D 60 46 92 00  - lea rcx,[GameAssembly.dll.data+AA2C8]
GameAssembly.dll.il2cpp+1D8DC68: E8 43 59 17 FE        - call GameAssembly.il2cpp_get_exception_argument_null+2B0
GameAssembly.dll.il2cpp+1D8DC6D: C6 05 D6 75 AB 00 01  - mov byte ptr [GameAssembly.dll+2B0624A],01
GameAssembly.dll.il2cpp+1D8DC74: 85 FF                 - test edi,edi
GameAssembly.dll.il2cpp+1D8DC76: 78 0C                 - js GameAssembly.dll.il2cpp+1D8DC84
GameAssembly.dll.il2cpp+1D8DC78: B8 04 00 00 00        - mov eax,00000004
GameAssembly.dll.il2cpp+1D8DC7D: 3B F8                 - cmp edi,eax
GameAssembly.dll.il2cpp+1D8DC7F: 0F 4E C7              - cmovle eax,edi
GameAssembly.dll.il2cpp+1D8DC82: EB 02                 - jmp GameAssembly.dll.il2cpp+1D8DC86
GameAssembly.dll.il2cpp+1D8DC84: 33 C0                 - xor eax,eax
// ---------- INJECTING HERE ----------
GameAssembly.dll.il2cpp+1D8DC86: 89 43 40              - mov [rbx+40],eax
// ---------- DONE INJECTING  ----------
GameAssembly.dll.il2cpp+1D8DC89: 48 8B 0D 18 74 94 00  - mov rcx,[GameAssembly.dll.data+CD0A8]
GameAssembly.dll.il2cpp+1D8DC90: 83 B9 E0 00 00 00 00  - cmp dword ptr [rcx+000000E0],00
GameAssembly.dll.il2cpp+1D8DC97: 75 05                 - jne GameAssembly.dll.il2cpp+1D8DC9E
GameAssembly.dll.il2cpp+1D8DC99: E8 E2 5B 17 FE        - call GameAssembly.il2cpp_runtime_class_init
GameAssembly.dll.il2cpp+1D8DC9E: 33 C9                 - xor ecx,ecx
GameAssembly.dll.il2cpp+1D8DCA0: E8 0B 0B 02 00        - call GameAssembly.dll.il2cpp+1DAE7B0
GameAssembly.dll.il2cpp+1D8DCA5: 48 8B 0D 7C 9B 93 00  - mov rcx,[GameAssembly.dll.data+BF828]
GameAssembly.dll.il2cpp+1D8DCAC: 83 B9 E0 00 00 00 00  - cmp dword ptr [rcx+000000E0],00
GameAssembly.dll.il2cpp+1D8DCB3: 75 05                 - jne GameAssembly.dll.il2cpp+1D8DCBA
GameAssembly.dll.il2cpp+1D8DCB5: E8 C6 5B 17 FE        - call GameAssembly.il2cpp_runtime_class_init
}









aob_inf_ap_2:
  db C7 43 40 00 00 00 00

unregistersymbol(aob_inf_ap_2)
dealloc(newmem_2)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll.il2cpp+1D8E4D6

GameAssembly.dll.il2cpp+1D8E4B1: 83 7B 14 03           - cmp dword ptr [rbx+14],03
GameAssembly.dll.il2cpp+1D8E4B5: 0F 84 1D 01 00 00     - je GameAssembly.dll.il2cpp+1D8E5D8
GameAssembly.dll.il2cpp+1D8E4BB: 48 83 7B 68 00        - cmp qword ptr [rbx+68],00
GameAssembly.dll.il2cpp+1D8E4C0: 74 14                 - je GameAssembly.dll.il2cpp+1D8E4D6
GameAssembly.dll.il2cpp+1D8E4C2: 48 8B 43 68           - mov rax,[rbx+68]
GameAssembly.dll.il2cpp+1D8E4C6: 80 78 18 00           - cmp byte ptr [rax+18],00
GameAssembly.dll.il2cpp+1D8E4CA: 74 0A                 - je GameAssembly.dll.il2cpp+1D8E4D6
GameAssembly.dll.il2cpp+1D8E4CC: 33 D2                 - xor edx,edx
GameAssembly.dll.il2cpp+1D8E4CE: 48 8B C8              - mov rcx,rax
GameAssembly.dll.il2cpp+1D8E4D1: E8 FA 58 01 00        - call GameAssembly.dll.il2cpp+1DA3DD0
// ---------- INJECTING HERE ----------
GameAssembly.dll.il2cpp+1D8E4D6: C7 43 40 00 00 00 00  - mov [rbx+40],00000000
// ---------- DONE INJECTING  ----------
GameAssembly.dll.il2cpp+1D8E4DD: 48 8B 05 CC 5C 94 00  - mov rax,[GameAssembly.dll.data+CC1B0]
GameAssembly.dll.il2cpp+1D8E4E4: 83 B8 E0 00 00 00 00  - cmp dword ptr [rax+000000E0],00
GameAssembly.dll.il2cpp+1D8E4EB: 75 0F                 - jne GameAssembly.dll.il2cpp+1D8E4FC
GameAssembly.dll.il2cpp+1D8E4ED: 48 8B C8              - mov rcx,rax
GameAssembly.dll.il2cpp+1D8E4F0: E8 8B 53 17 FE        - call GameAssembly.il2cpp_runtime_class_init
GameAssembly.dll.il2cpp+1D8E4F5: 48 8B 05 B4 5C 94 00  - mov rax,[GameAssembly.dll.data+CC1B0]
GameAssembly.dll.il2cpp+1D8E4FC: 48 8B 80 B8 00 00 00  - mov rax,[rax+000000B8]
GameAssembly.dll.il2cpp+1D8E503: 48 8D 4B 50           - lea rcx,[rbx+50]
GameAssembly.dll.il2cpp+1D8E507: 48 8B 10              - mov rdx,[rax]
GameAssembly.dll.il2cpp+1D8E50A: 48 89 53 50           - mov [rbx+50],rdx
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>330673</ID>
          <Description>"The script is active for enemy too so only enable when you play and disable before finishing turn"</Description>
          <LastState Value="" RealAddress="00000000"/>
          <Color>0000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>330674</ID>
          <Description>"Always turn off before finishing a fight or the game will freeze"</Description>
          <LastState Value="" RealAddress="00000000"/>
          <Color>0000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>



Set Focus to 100% on skill use

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>330659</ID>
      <Description>"Set Focus to 100% on skill use"</Description>
      <Options moAlwaysHideChildren="1"/>
      <LastState/>
      <Color>FFFF00</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Zoria AoS.exe
  Version: 
  Date   : 2024-03-16
  Author : acecel

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(aob_skill_use,GameAssembly.dll,44 89 43 3C 48 85 C0) // should be unique
alloc(newmem,$1000,aob_skill_use)

label(code)
label(return)

alloc(pFocus,$8)
registersymbol(pFocus)

pFocus:
dd 0

newmem:
   push rcx
     lea rcx,[rbx+3C]
     mov [pFocus],rcx
   pop rcx

code:
  mov [rbx+3C],#100
  test rax,rax
  jmp return

aob_skill_use:
  jmp newmem
  nop 2
return:
registersymbol(aob_skill_use)

[DISABLE]

aob_skill_use:
  db 44 89 43 3C 48 85 C0

unregistersymbol(pFocus)
dealloc(pFocus)
unregistersymbol(aob_skill_use)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll.il2cpp+1E001D3

GameAssembly.dll.il2cpp+1E001AD: E8 FE 33 10 FE        - call GameAssembly.il2cpp_get_exception_argument_null+2B0
GameAssembly.dll.il2cpp+1E001B2: C6 05 91 50 A4 00 01  - mov byte ptr [GameAssembly.dll+2B0624A],01
GameAssembly.dll.il2cpp+1E001B9: 85 FF                 - test edi,edi
GameAssembly.dll.il2cpp+1E001BB: 78 0F                 - js GameAssembly.dll.il2cpp+1E001CC
GameAssembly.dll.il2cpp+1E001BD: 41 B8 64 00 00 00     - mov r8d,00000064
GameAssembly.dll.il2cpp+1E001C3: 41 3B F8              - cmp edi,r8d
GameAssembly.dll.il2cpp+1E001C6: 44 0F 4E C7           - cmovle r8d,edi
GameAssembly.dll.il2cpp+1E001CA: EB 03                 - jmp GameAssembly.dll.il2cpp+1E001CF
GameAssembly.dll.il2cpp+1E001CC: 45 33 C0              - xor r8d,r8d
GameAssembly.dll.il2cpp+1E001CF: 48 8B 43 70           - mov rax,[rbx+70]
// ---------- INJECTING HERE ----------
GameAssembly.dll.il2cpp+1E001D3: 44 89 43 3C           - mov [rbx+3C],r8d
// ---------- DONE INJECTING  ----------
GameAssembly.dll.il2cpp+1E001D7: 48 85 C0              - test rax,rax
GameAssembly.dll.il2cpp+1E001DA: 74 13                 - je GameAssembly.dll.il2cpp+1E001EF
GameAssembly.dll.il2cpp+1E001DC: 4C 8B 48 28           - mov r9,[rax+28]
GameAssembly.dll.il2cpp+1E001E0: 44 2B C5              - sub r8d,ebp
GameAssembly.dll.il2cpp+1E001E3: 48 8B 48 40           - mov rcx,[rax+40]
GameAssembly.dll.il2cpp+1E001E7: BA 07 00 00 00        - mov edx,00000007
GameAssembly.dll.il2cpp+1E001EC: FF 50 18              - call qword ptr [rax+18]
GameAssembly.dll.il2cpp+1E001EF: 48 8B 5C 24 30        - mov rbx,[rsp+30]
GameAssembly.dll.il2cpp+1E001F4: 48 8B 6C 24 38        - mov rbp,[rsp+38]
GameAssembly.dll.il2cpp+1E001F9: 48 8B 74 24 40        - mov rsi,[rsp+40]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>330660</ID>
          <Description>"Focus"</Description>
          <LastState Value="100" RealAddress="2531FCAB03C"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>pFocus</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>



No Mana Use

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>330661</ID>
      <Description>"No Mana Use"</Description>
      <LastState/>
      <Color>FFFF00</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Zoria AoS.exe
  Version: 
  Date   : 2024-03-17
  Author : acecel

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(aob_mana_set,GameAssembly.dll,89 47 34 48 8B 47 70) // should be unique
alloc(newmem,$1000,aob_mana_set)

label(code)
label(code2)
label(return)

newmem:
  push ecx
    mov ecx,[rdi+34]
    cmp eax,ecx
    jl code2
  pop ecx

code:
  mov [rdi+34],eax
  mov rax,[rdi+70]
  jmp return

code2:
  pop ecx
  mov rax,[rdi+70]
  jmp return

aob_mana_set:
  jmp newmem
  nop 2
return:
registersymbol(aob_mana_set)

[DISABLE]

aob_mana_set:
  db 89 47 34 48 8B 47 70

unregistersymbol(aob_mana_set)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll.il2cpp+1E009A6

GameAssembly.dll.il2cpp+1E00985: 8B E8                 - mov ebp,eax
GameAssembly.dll.il2cpp+1E00987: 83 B9 E0 00 00 00 00  - cmp dword ptr [rcx+000000E0],00
GameAssembly.dll.il2cpp+1E0098E: 75 05                 - jne GameAssembly.dll.il2cpp+1E00995
GameAssembly.dll.il2cpp+1E00990: E8 EB 2E 10 FE        - call GameAssembly.il2cpp_runtime_class_init
GameAssembly.dll.il2cpp+1E00995: 45 33 C9              - xor r9d,r9d
GameAssembly.dll.il2cpp+1E00998: 44 8B C5              - mov r8d,ebp
GameAssembly.dll.il2cpp+1E0099B: 33 D2                 - xor edx,edx
GameAssembly.dll.il2cpp+1E0099D: 8B CE                 - mov ecx,esi
GameAssembly.dll.il2cpp+1E0099F: E8 BC 2D 19 FF        - call GameAssembly.dll.il2cpp+F93760
GameAssembly.dll.il2cpp+1E009A4: 2B D8                 - sub ebx,eax
// ---------- INJECTING HERE ----------
GameAssembly.dll.il2cpp+1E009A6: 89 47 34              - mov [rdi+34],eax
// ---------- DONE INJECTING  ----------
GameAssembly.dll.il2cpp+1E009A9: 48 8B 47 70           - mov rax,[rdi+70]
GameAssembly.dll.il2cpp+1E009AD: 48 85 C0              - test rax,rax
GameAssembly.dll.il2cpp+1E009B0: 74 13                 - je GameAssembly.dll.il2cpp+1E009C5
GameAssembly.dll.il2cpp+1E009B2: 4C 8B 48 28           - mov r9,[rax+28]
GameAssembly.dll.il2cpp+1E009B6: 44 8B C3              - mov r8d,ebx
GameAssembly.dll.il2cpp+1E009B9: 48 8B 48 40           - mov rcx,[rax+40]
GameAssembly.dll.il2cpp+1E009BD: BA 05 00 00 00        - mov edx,00000005
GameAssembly.dll.il2cpp+1E009C2: FF 50 18              - call qword ptr [rax+18]
GameAssembly.dll.il2cpp+1E009C5: 8B C3                 - mov eax,ebx
GameAssembly.dll.il2cpp+1E009C7: 48 8B 5C 24 30        - mov rbx,[rsp+30]
}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>

I can't edit this post to add any fix/update or a new script so this is what you get, i have been using theses scripts for the past 2 days and they work well if you respect the 'rules' :mrgreen:

Kerus
Expert Cheater
Expert Cheater
Posts: 89
Joined: Tue Jan 29, 2019 1:28 pm
Reputation: 21

Re: [REQUEST] Zoria: Age of Shattering

Post by Kerus »

Is there a way to edit inventory capacity? 280 is insane. Most of it were materials.

User avatar
sanitka
Expert Cheater
Expert Cheater
Posts: 455
Joined: Sat Aug 22, 2020 5:40 am
Reputation: 200

Re: [REQUEST] Zoria: Age of Shattering

Post by sanitka »

If you are interested in "No Equipment Restrictions" script, let me know (like the comment).

Equip Anyting

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>330700</ID>
      <Description>"Equip Anything"</Description>
      <Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1"/>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>330698</ID>
          <Description>"Can Equip"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Zoria AoS.exe
  Version: 
  Date   : 2024-03-24
  Author : SanitKa

  This script does blah blah blah
}

[ENABLE]
{$lua}
if syntaxcheck then return end

local scriptStr = [[
aobscanmodule(INJCEQ1,GameAssembly.dll,41 0F 95 C0 EB 4A) // should be unique
registersymbol(INJCEQ1)
]]

autoAssemble(scriptStr)
{$asm}
aobscanregion(INJCEQ2,INJCEQ1,INJCEQ1+50,41 0F 94 C0 83 B9 80 00 00 00 00)
registersymbol(INJCEQ2)

label(return)

INJCEQ1:
  nop 4

INJCEQ2:
  nop 4

return:

[DISABLE]

INJCEQ1:
  db 41 0F 95 C0 EB 4A

INJCEQ2:
  db 41 0F 94 C0 83 B9

unregistersymbol(INJCEQ1)
unregistersymbol(INJCEQ2)

{
GameFollower.CanEquip

// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+20C8E10

GameAssembly.dll+20C8DEE: 48 85 C9              - test rcx,rcx
GameAssembly.dll+20C8DF1: 0F 84 84 00 00 00     - je GameAssembly.dll+20C8E7B
GameAssembly.dll+20C8DF7: 48 8B 49 78           - mov rcx,[rcx+78]
GameAssembly.dll+20C8DFB: 48 85 C9              - test rcx,rcx
GameAssembly.dll+20C8DFE: 74 7B                 - je GameAssembly.dll+20C8E7B
GameAssembly.dll+20C8E00: 48 63 43 40           - movsxd  rax,dword ptr [rbx+40]
GameAssembly.dll+20C8E04: 3B 41 18              - cmp eax,[rcx+18]
GameAssembly.dll+20C8E07: 73 78                 - jae GameAssembly.dll+20C8E81
GameAssembly.dll+20C8E09: 80 7C 08 20 00        - cmp byte ptr [rax+rcx+20],00
GameAssembly.dll+20C8E0E: 8B D7                 - mov edx,edi
// ---------- INJECTING HERE ----------
GameAssembly.dll+20C8E10: 41 0F 95 C0           - setne r8b
// ---------- DONE INJECTING  ----------
GameAssembly.dll+20C8E14: EB 4A                 - jmp GameAssembly.dll+20C8E60
GameAssembly.dll+20C8E16: 8B D7                 - mov edx,edi
GameAssembly.dll+20C8E18: 83 F8 03              - cmp eax,03
GameAssembly.dll+20C8E1B: 75 43                 - jne GameAssembly.dll+20C8E60
GameAssembly.dll+20C8E1D: 48 8B 4B 58           - mov rcx,[rbx+58]
GameAssembly.dll+20C8E21: 48 85 C9              - test rcx,rcx
GameAssembly.dll+20C8E24: 74 55                 - je GameAssembly.dll+20C8E7B
GameAssembly.dll+20C8E26: 48 8B 86 88 00 00 00  - mov rax,[rsi+00000088]
GameAssembly.dll+20C8E2D: 48 85 C0              - test rax,rax
GameAssembly.dll+20C8E30: 74 49                 - je GameAssembly.dll+20C8E7B
}

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+20C8E3E

GameAssembly.dll+20C8E1B: 75 43                 - jne GameAssembly.dll+20C8E60
GameAssembly.dll+20C8E1D: 48 8B 4B 58           - mov rcx,[rbx+58]
GameAssembly.dll+20C8E21: 48 85 C9              - test rcx,rcx
GameAssembly.dll+20C8E24: 74 55                 - je GameAssembly.dll+20C8E7B
GameAssembly.dll+20C8E26: 48 8B 86 88 00 00 00  - mov rax,[rsi+00000088]
GameAssembly.dll+20C8E2D: 48 85 C0              - test rax,rax
GameAssembly.dll+20C8E30: 74 49                 - je GameAssembly.dll+20C8E7B
GameAssembly.dll+20C8E32: 8B 80 90 00 00 00     - mov eax,[rax+00000090]
GameAssembly.dll+20C8E38: 23 41 7C              - and eax,[rcx+7C]
GameAssembly.dll+20C8E3B: 3B 41 7C              - cmp eax,[rcx+7C]
// ---------- INJECTING HERE ----------
GameAssembly.dll+20C8E3E: 41 0F 94 C0           - sete r8b
// ---------- DONE INJECTING  ----------
GameAssembly.dll+20C8E42: 83 B9 80 00 00 00 00  - cmp dword ptr [rcx+00000080],00
GameAssembly.dll+20C8E49: 74 15                 - je GameAssembly.dll+20C8E60
GameAssembly.dll+20C8E4B: 48 8B 86 88 00 00 00  - mov rax,[rsi+00000088]
GameAssembly.dll+20C8E52: 8B 40 28              - mov eax,[rax+28]
GameAssembly.dll+20C8E55: 39 81 80 00 00 00     - cmp [rcx+00000080],eax
GameAssembly.dll+20C8E5B: 74 03                 - je GameAssembly.dll+20C8E60
GameAssembly.dll+20C8E5D: 83 CA 08              - or edx,08
GameAssembly.dll+20C8E60: 48 8B 5C 24 30        - mov rbx,[rsp+30]
GameAssembly.dll+20C8E65: 8B C2                 - mov eax,edx
GameAssembly.dll+20C8E67: 48 8B 74 24 38        - mov rsi,[rsp+38]
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>330699</ID>
          <Description>"Equip"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Zoria AoS.exe
  Version:
  Date   : 2024-03-24
  Author : SanitKa

  This script does blah blah blah
}

[ENABLE]
{$lua}
if syntaxcheck then return end

local scriptStr = [[
aobscanmodule(INJEQP1,GameAssembly.dll,41 0F 95 C0 EB 51) // should be unique
registersymbol(INJEQP1)
]]

autoAssemble(scriptStr)
{$asm}
aobscanregion(INJEQP2,INJEQP1,INJEQP1+70,41 0F 94 C0 39 B1 80 00 00 00)
registersymbol(INJEQP2)

label(return)

INJEQP1:
  nop 4

INJEQP2:
  nop 4

return:

[DISABLE]

INJEQP1:
  db 41 0F 95 C0 EB 51

INJEQP2:
  db 41 0F 94 C0 39 B1

unregistersymbol(INJEQP1)
unregistersymbol(INJEQP2)

{
GameFollower.EquipItem

// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+20C93DF

GameAssembly.dll+20C93B5: 48 85 C9              - test rcx,rcx
GameAssembly.dll+20C93B8: 0F 84 17 01 00 00     - je GameAssembly.dll+20C94D5
GameAssembly.dll+20C93BE: 48 8B 49 78           - mov rcx,[rcx+78]
GameAssembly.dll+20C93C2: 48 85 C9              - test rcx,rcx
GameAssembly.dll+20C93C5: 0F 84 0A 01 00 00     - je GameAssembly.dll+20C94D5
GameAssembly.dll+20C93CB: 48 63 43 40           - movsxd  rax,dword ptr [rbx+40]
GameAssembly.dll+20C93CF: 3B 41 18              - cmp eax,[rcx+18]
GameAssembly.dll+20C93D2: 0F 83 03 01 00 00     - jae GameAssembly.dll+20C94DB
GameAssembly.dll+20C93D8: 40 38 74 08 20        - cmp [rax+rcx+20],sil
GameAssembly.dll+20C93DD: 8B D5                 - mov edx,ebp
// ---------- INJECTING HERE ----------
GameAssembly.dll+20C93DF: 41 0F 95 C0           - setne r8b
// ---------- DONE INJECTING  ----------
GameAssembly.dll+20C93E3: EB 51                 - jmp GameAssembly.dll+20C9436
GameAssembly.dll+20C93E5: 8B D5                 - mov edx,ebp
GameAssembly.dll+20C93E7: 83 F8 03              - cmp eax,03
GameAssembly.dll+20C93EA: 75 4A                 - jne GameAssembly.dll+20C9436
GameAssembly.dll+20C93EC: 48 8B 4B 58           - mov rcx,[rbx+58]
GameAssembly.dll+20C93F0: 48 85 C9              - test rcx,rcx
GameAssembly.dll+20C93F3: 0F 84 DC 00 00 00     - je GameAssembly.dll+20C94D5
GameAssembly.dll+20C93F9: 48 8B 87 88 00 00 00  - mov rax,[rdi+00000088]
GameAssembly.dll+20C9400: 48 85 C0              - test rax,rax
GameAssembly.dll+20C9403: 0F 84 CC 00 00 00     - je GameAssembly.dll+20C94D5
}

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+20C9415

GameAssembly.dll+20C93EA: 75 4A                 - jne GameAssembly.dll+20C9436
GameAssembly.dll+20C93EC: 48 8B 4B 58           - mov rcx,[rbx+58]
GameAssembly.dll+20C93F0: 48 85 C9              - test rcx,rcx
GameAssembly.dll+20C93F3: 0F 84 DC 00 00 00     - je GameAssembly.dll+20C94D5
GameAssembly.dll+20C93F9: 48 8B 87 88 00 00 00  - mov rax,[rdi+00000088]
GameAssembly.dll+20C9400: 48 85 C0              - test rax,rax
GameAssembly.dll+20C9403: 0F 84 CC 00 00 00     - je GameAssembly.dll+20C94D5
GameAssembly.dll+20C9409: 8B 80 90 00 00 00     - mov eax,[rax+00000090]
GameAssembly.dll+20C940F: 23 41 7C              - and eax,[rcx+7C]
GameAssembly.dll+20C9412: 3B 41 7C              - cmp eax,[rcx+7C]
// ---------- INJECTING HERE ----------
GameAssembly.dll+20C9415: 41 0F 94 C0           - sete r8b
// ---------- DONE INJECTING  ----------
GameAssembly.dll+20C9419: 39 B1 80 00 00 00     - cmp [rcx+00000080],esi
GameAssembly.dll+20C941F: 74 15                 - je GameAssembly.dll+20C9436
GameAssembly.dll+20C9421: 48 8B 87 88 00 00 00  - mov rax,[rdi+00000088]
GameAssembly.dll+20C9428: 8B 40 28              - mov eax,[rax+28]
GameAssembly.dll+20C942B: 39 81 80 00 00 00     - cmp [rcx+00000080],eax
GameAssembly.dll+20C9431: 74 03                 - je GameAssembly.dll+20C9436
GameAssembly.dll+20C9433: 83 CA 08              - or edx,08
GameAssembly.dll+20C9436: 8B C2                 - mov eax,edx
GameAssembly.dll+20C9438: 83 C8 04              - or eax,04
GameAssembly.dll+20C943B: 45 84 C0              - test r8b,r8b
}
</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Magic Resources (increase instead of decrease :))

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>330697</ID>
      <Description>"Magic Resources"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Zoria AoS.exe
  Version: 
  Date   : 2024-03-24
  Author : SanitKa

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(INJRES,GameAssembly.dll,29 43 38 33 D2) // should be unique

label(return)

INJRES:
  add [rbx+38],eax

return:
registersymbol(INJRES)

[DISABLE]

INJRES:
  db 29 43 38 33 D2

unregistersymbol(INJRES)

{
RecipeIngredient.UseIngredient

// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+210E34A

GameAssembly.dll+210E32A: 83 B9 E0 00 00 00 00  - cmp dword ptr [rcx+000000E0],00
GameAssembly.dll+210E331: 75 05                 - jne GameAssembly.dll+210E338
GameAssembly.dll+210E333: E8 A8 F9 0B FE        - call GameAssembly.il2cpp_runtime_class_init
GameAssembly.dll+210E338: 45 33 C0              - xor r8d,r8d
GameAssembly.dll+210E33B: 8B D6                 - mov edx,esi
GameAssembly.dll+210E33D: 8B CF                 - mov ecx,edi
GameAssembly.dll+210E33F: E8 8C AA 19 FF        - call System.Math.Min
GameAssembly.dll+210E344: 8B F8                 - mov edi,eax
GameAssembly.dll+210E346: 85 C0                 - test eax,eax
GameAssembly.dll+210E348: 74 1A                 - je GameAssembly.dll+210E364
// ---------- INJECTING HERE ----------
GameAssembly.dll+210E34A: 29 43 38              - sub [rbx+38],eax
// ---------- DONE INJECTING  ----------
GameAssembly.dll+210E34D: 33 D2                 - xor edx,edx
GameAssembly.dll+210E34F: 48 8B CB              - mov rcx,rbx
GameAssembly.dll+210E352: E8 B9 97 FE FF        - call UserResources.SyncResource
GameAssembly.dll+210E357: 8B 4B 38              - mov ecx,[rbx+38]
GameAssembly.dll+210E35A: 84 C0                 - test al,al
GameAssembly.dll+210E35C: 75 16                 - jne GameAssembly.dll+210E374
GameAssembly.dll+210E35E: 8D 04 39              - lea eax,[rcx+rdi]
GameAssembly.dll+210E361: 89 43 38              - mov [rbx+38],eax
GameAssembly.dll+210E364: 48 8B 5C 24 30        - mov rbx,[rsp+30]
GameAssembly.dll+210E369: 48 8B 74 24 38        - mov rsi,[rsp+38]
}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>

Post Reply

Who is online

Users browsing this forum: gir489, Google [Bot], jaclaffite, kikiGo, LegendZero88, MilfSquirter, Ranji, wizardboy16