Page 1 of 3

Sins of a Solar Empire 2 (Steam)

Posted: Sat Aug 17, 2024 2:23 am
by Destinate


Image

Just some basic pointers.
Some features might also affect the bot. Try not to keep them enabled all the time.

The entity editor can be improved if you know how to dissect the data structure.
As of now, it only has basic pointers. I don't think I will work on this any further. Feel free to expand it.

I don't take requests and I don't support multiplayer!

Download:
SOASE2.CT
+ Compact View Mode
+ Antimatter for entity editor
(47.54 KiB) Downloaded 4763 times
Archived
SOASE2.CT
+ Faction Specific
+ Added more data structure to entity editor
(45.18 KiB) Downloaded 739 times
SOASE2.CT
+ Instant Structure Construction
+ Instant Install Planet Component
(31.75 KiB) Downloaded 230 times
SOASE2.CT
+ Fixed Military Supply
+ Set Slots (Civilian/Military)
+ Entity Editor
(27.18 KiB) Downloaded 718 times
SOASE2.CT
+ Military Supply
+ Instant Upgrade
+ Instant Build Ship
(21 KiB) Downloaded 507 times
SOASE2.CT
+ Research rate
(13.77 KiB) Downloaded 463 times

Re: Sins of a Solar Empire 2 (Steam)

Posted: Sat Aug 17, 2024 2:56 am
by acecel
Thanks for the table, works well for me.

Re: Sins of a Solar Empire 2 (Steam)

Posted: Sat Aug 17, 2024 4:52 am
by acecel
A small script that allow to multiply the resources gain for credit, metal and crystal.


Resource Gain Multiplier

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>330635</ID>
      <Description>"Resource Gain Multiplier"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <LastState/>
      <Color>FFFF00</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : sins2.exe
  Version: 
  Date   : 2024-08-17
  Author : acecel

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(aob_res_update,sins2.exe,F3 0F 11 44 8E 08) // should be unique
alloc(newmem,$1000,aob_res_update)

alloc(pCredit,$8)
alloc(pMetal,$8)
alloc(pCrystal,$8)

registersymbol(pCredit)
registersymbol(pMetal)
registersymbol(pCrystal)

pCredit:
dd 0
pMetal:
dd 0
pCrystal:
dd 0

alloc(mulCredit,$8)
alloc(mulMetal,$8)
alloc(mulCrystal,$8)

registersymbol(mulCredit)
registersymbol(mulMetal)
registersymbol(mulCrystal)

mulCredit:
dd (float)2.0            // Change Default Multiplier Here

mulMetal:
dd (float)2.0            // Change Default Multiplier Here

mulCrystal:
dd (float)2.0            // Change Default Multiplier Here

label(saveCredit)
label(saveMetal)
label(saveCrystal)

label(multCredit)
label(multMetal)
label(multCrystal)

label(code)
label(return)

newmem:
  cmp rcx,00
  je saveCredit
  cmp rcx,01
  je saveMetal
  cmp rcx,02
  je saveCrystal
  jmp code

saveCredit:
  cmp [pCredit],0
  jne multCredit
  push rdx
    lea rdx,[rsi+rcx*4+08]
    mov [pCredit],rdx
  pop rdx
  jmp multCredit

saveMetal:
  cmp [pMetal],0
  jne multMetal
  push rdx
    lea rdx,[rsi+rcx*4+08]
    mov [pMetal],rdx
  pop rdx
  jmp multMetal

saveCrystal:
  cmp [pCrystal],0
  jne multCrystal
  push rdx
    lea rdx,[rsi+rcx*4+08]
    mov [pCrystal],rdx
  pop rdx
  jmp multCrystal

multCredit:
  cmp rcx,00
  jne code
  movss xmm1,xmm0
  subss xmm1,[rsi+rcx*4+08]
  mulss xmm1,[mulCredit]
  movss xmm0,[rsi+rcx*4+08]
  addss xmm0,xmm1
  jmp code

multMetal:
  cmp rcx,01
  jne code
  movss xmm1,xmm0
  subss xmm1,[rsi+rcx*4+08]
  mulss xmm1,[mulMetal]
  movss xmm0,[rsi+rcx*4+08]
  addss xmm0,xmm1
  jmp code

multCrystal:
  cmp rcx,02
  jne code
  movss xmm1,xmm0
  subss xmm1,[rsi+rcx*4+08]
  mulss xmm1,[mulCrystal]
  movss xmm0,[rsi+rcx*4+08]
  addss xmm0,xmm1
  jmp code

code:
  movss [rsi+rcx*4+08],xmm0
  jmp return

aob_res_update:
  jmp newmem
  nop
return:
registersymbol(aob_res_update)

[DISABLE]

aob_res_update:
  db F3 0F 11 44 8E 08

unregistersymbol(*)
dealloc(*)

{
// ORIGINAL CODE - INJECTION POINT: sins2.exe.text+85AD07

sins2.exe.text+85ACDA: E8 A1 0B 00 00              - call sins2.exe.text+85B880
sins2.exe.text+85ACDF: 33 DB                       - xor ebx,ebx
sins2.exe.text+85ACE1: 8B CB                       - mov ecx,ebx
sins2.exe.text+85ACE3: 48 83 F9 03                 - cmp rcx,03
sins2.exe.text+85ACE7: 0F 83 81 01 00 00           - jae sins2.exe.text+85AE6E
sins2.exe.text+85ACED: 41 0F 28 F0                 - movaps xmm6,xmm8
sins2.exe.text+85ACF1: F3 0F 59 B4 8C B0 00 00 00  - mulss xmm6,[rsp+rcx*4+000000B0]
sins2.exe.text+85ACFA: 0F 28 C6                    - movaps xmm0,xmm6
sins2.exe.text+85ACFD: F3 0F 58 44 8E 08           - addss xmm0,[rsi+rcx*4+08]
sins2.exe.text+85AD03: F3 0F 5F C7                 - maxss xmm0,xmm7
// ---------- INJECTING HERE ----------
sins2.exe.text+85AD07: F3 0F 11 44 8E 08           - movss [rsi+rcx*4+08],xmm0
// ---------- DONE INJECTING  ----------
sins2.exe.text+85AD0D: 48 8B 3E                    - mov rdi,[rsi]
sins2.exe.text+85AD10: 85 DB                       - test ebx,ebx
sins2.exe.text+85AD12: 74 30                       - je sins2.exe.text+85AD44
sins2.exe.text+85AD14: 83 E9 01                    - sub ecx,01
sins2.exe.text+85AD17: 0F 84 81 00 00 00           - je sins2.exe.text+85AD9E
sins2.exe.text+85AD1D: 83 E9 01                    - sub ecx,01
sins2.exe.text+85AD20: 74 75                       - je sins2.exe.text+85AD97
sins2.exe.text+85AD22: 83 F9 01                    - cmp ecx,01
sins2.exe.text+85AD25: 75 1D                       - jne sins2.exe.text+85AD44
sins2.exe.text+85AD27: 4C 8D 05 5E A4 52 00        - lea r8,[sins2.exe.rdata+4318C]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>330636</ID>
          <Description>"Activate/Reactivate after loading a save"</Description>
          <LastState Value="" RealAddress="00000000"/>
          <Color>008080</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>330637</ID>
          <Description>"Credit"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Float</VariableType>
          <Address>mulCredit</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>330638</ID>
          <Description>"Metal"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Float</VariableType>
          <Address>mulMetal</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>330639</ID>
          <Description>"Crystal"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Float</VariableType>
          <Address>mulCrystal</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>


Re: Sins of a Solar Empire 2 (Steam)

Posted: Sat Aug 17, 2024 7:00 am
by jmg213
its possible to add Ultimate Fleet Size ?

Re: Sins of a Solar Empire 2 (Steam)

Posted: Sat Aug 17, 2024 7:55 am
by Guanfei
A god mode, or an instant construction would be nice, if possible.
Otherwise, the table works perfectly.

Re: Sins of a Solar Empire 2 (Steam)

Posted: Sat Aug 17, 2024 9:39 am
by mflau
Multiplier works on enemies too?

Re: Sins of a Solar Empire 2 (Steam)

Posted: Sat Aug 17, 2024 1:55 pm
by WankHole
jmg213 wrote:
Sat Aug 17, 2024 7:00 am
its possible to add Ultimate Fleet Size ?
Its just a 4 byte. Once you find it you can select "find out what writes to this address" and you'll see SUB and ADD. Just right click (the add of course) and choose noop. You fleet size should no longer increase.

7FF62F6F8FDB - 01 81 80020000 - add [rcx+00000280],eax

sins2.exe+8D8FDB:
7FF62F6F8FD7 - 85 C0 - test eax,eax
7FF62F6F8FD9 - 7E 3C - jle sins2.exe+8D9017
7FF62F6F8FDB - 01 81 80020000 - add [rcx+00000280],eax <<
7FF62F6F8FE1 - 41 80 38 00 - cmp byte ptr [r8],00
7FF62F6F8FE5 - 75 30 - jne sins2.exe+8D9017

RAX=0000000000000032
RBX=000003503C3E8508
RCX=000003503C3E8508
RDX=000003509F472800
RSI=000003509F472800
RDI=000003509F472800
RBP=00000001E88FD1B0
RSP=00000001E88FD070
R8=00000001E88FD0E0
R9=00000000000000A0
R10=00007FFAEC1E0000
R11=00000001E88FCFE0
R12=0000000000000000
R13=000003503C3E8508
R14=00000350FA065700
R15=000003509F532000
RIP=00007FF62F6F8FE1

Re: Sins of a Solar Empire 2 (Steam)

Posted: Sat Aug 17, 2024 2:43 pm
by jmg213
WankHole wrote:
Sat Aug 17, 2024 1:55 pm
jmg213 wrote:
Sat Aug 17, 2024 7:00 am
its possible to add Ultimate Fleet Size ?
Its just a 4 byte. Once you find it you can select "find out what writes to this address" and you'll see SUB and ADD. Just right click (the add of course) and choose noop. You fleet size should no longer increase.

7FF62F6F8FDB - 01 81 80020000 - add [rcx+00000280],eax

sins2.exe+8D8FDB:
7FF62F6F8FD7 - 85 C0 - test eax,eax
7FF62F6F8FD9 - 7E 3C - jle sins2.exe+8D9017
7FF62F6F8FDB - 01 81 80020000 - add [rcx+00000280],eax <<
7FF62F6F8FE1 - 41 80 38 00 - cmp byte ptr [r8],00
7FF62F6F8FE5 - 75 30 - jne sins2.exe+8D9017

RAX=0000000000000032
RBX=000003503C3E8508
RCX=000003503C3E8508
RDX=000003509F472800
RSI=000003509F472800
RDI=000003509F472800
RBP=00000001E88FD1B0
RSP=00000001E88FD070
R8=00000001E88FD0E0
R9=00000000000000A0
R10=00007FFAEC1E0000
R11=00000001E88FCFE0
R12=0000000000000000
R13=000003503C3E8508
R14=00000350FA065700
R15=000003509F532000
RIP=00007FF62F6F8FE1
okay ? how can i add this to the table ? or can you add it and upload the Table ?

Re: Sins of a Solar Empire 2 (Steam)

Posted: Sat Aug 17, 2024 3:01 pm
by perempt
thank!

Re: Sins of a Solar Empire 2 (Steam)

Posted: Sat Aug 17, 2024 6:16 pm
by Destinate
I added some more features. I'm trying to figure out how to get an instant build structure and unlimited slots.
As for the slot, I'm able to get it to add it to the queue but seems like the queue has a separate check preventing the structure from building.

Re: Sins of a Solar Empire 2 (Steam)

Posted: Sat Aug 17, 2024 7:35 pm
by jmg213
the military supply dont work or ? i set it on 0 but on one point i cant build new ships

Re: Sins of a Solar Empire 2 (Steam)

Posted: Sat Aug 17, 2024 8:03 pm
by Cruxibel
military supply, building slots civ/mil(4 byte), lock on 0 or negative number won't affect the game.

Re: Sins of a Solar Empire 2 (Steam)

Posted: Sat Aug 17, 2024 8:24 pm
by WankHole
Destinate wrote:
Sat Aug 17, 2024 6:16 pm
I added some more features. I'm trying to figure out how to get an instant build structure and unlimited slots.
As for the slot, I'm able to get it to add it to the queue but seems like the queue has a separate check preventing the structure from building.
Yep, the same type of check is also happening on the unit limit.Once you get to a certain amount of units the game just refuses to allow you to build more. Pesky checks :/

Re: Sins of a Solar Empire 2 (Steam)

Posted: Sat Aug 17, 2024 8:43 pm
by Disasterlord1
Hi, nice job on the table so far! Could I ask you to try and implement a god mode or infinite health? Or is that easy enough to do on my own? (and if so, how would I do that?)

Re: Sins of a Solar Empire 2 (Steam)

Posted: Sun Aug 18, 2024 12:55 am
by emdasdas
Hello, the work is appreciated, can you add some script for the number of civil and military laboratories? another one doesn't work for me Military Supply, thank you in advance