Page 1 of 1

[COMPLETED] FOUNDERS FORTUNE

Posted: Thu Aug 01, 2019 8:09 am
by LazerPazer
FOUNDERS FORTUNE
+Inf Health
+Inf Food
+Inf Skill points
+Ins Building
+Ins Research
:D :D :D

Re: FOUNDERS FORTUNE

Posted: Thu Aug 01, 2019 2:49 pm
by fantomas
Hi :)

The game has an Ingame Debugger, being too lazy to try to toggle it from cheat engine. You still can recompile IngameDebugger in Assembly-CSharp.dll (with dnSpy) from this

Code: Select all

private void Update()
	{
		if (!Application.isEditor)
		{
			return;
		}
		if (Input.GetButtonDown("debugMenu"))
		{
			this.debugMenuOpen = !this.debugMenuOpen;
			this.debugPopup.SetActive(this.debugMenuOpen);
			if (this.debugMenuOpen)
			{
				this.UpdateMenu();
			}
		}
		if (Input.GetButtonDown("Fire1") && IngameDebugger.roomInfoMode)
		{
			Room roomOfPoint = GameObject.FindWithTag("WorldScripts").GetComponent<ConstructionManager>().GetRoomOfPoint(BuildRaycaster.GetBuildPosition(false, 2.3f, false, false, default(Vector3)));
			if (roomOfPoint != null)
			{
				this.roomInfoPanel.SetRoom(roomOfPoint);
			}
		}
	}
to this

Code: Select all

private void Update()
	{
		if (Input.GetKey(KeyCode.KeypadPlus))  //Numeric keypad '+'
		{
			this.cheatMenu.SetActive(true);
		}
		else if (Input.GetKey(KeyCode.KeypadMinus)) //Numeric keypad '-'
		{
			this.cheatMenu.SetActive(false);
		}
		if (!Application.isEditor)
		{
			return;
		}
		if (Input.GetButtonDown("debugMenu"))
		{
			this.debugMenuOpen = !this.debugMenuOpen;
			this.debugPopup.SetActive(this.debugMenuOpen);
			if (this.debugMenuOpen)
			{
				this.UpdateMenu();
			}
		}
		if (Input.GetButtonDown("Fire1") && IngameDebugger.roomInfoMode)
		{
			Room roomOfPoint = GameObject.FindWithTag("WorldScripts").GetComponent<ConstructionManager>().GetRoomOfPoint(BuildRaycaster.GetBuildPosition(false, 2.3f, false, false, default(Vector3)));
			if (roomOfPoint != null)
			{
				this.roomInfoPanel.SetRoom(roomOfPoint);
			}
		}
	}
Result:

Image

Re: FOUNDERS FORTUNE

Posted: Thu Aug 01, 2019 3:31 pm
by fantomas
Here some scripts that you do not find in cheats menu. :P

Fast Work

Code: Select all

[ENABLE]
//remainingWorkSeconds
ResourceModule:Interact+ae+4:
  db 47
//F3 41 0F 11 47 5C
//movss [r15+5C],xmm0

/*********************************************/

//remainingRounds
alloc(newmem,2048,ResourceModule:Interact+757)
label(returnhere)
label(originalcode)

newmem:

originalcode:
mov [r15+50],#1
movsxd  rax,dword ptr [r15+50]
dec eax
jmp returnhere

ResourceModule:Interact+757:
jmp newmem
nop
returnhere:

[DISABLE]
//remainingWorkSeconds
ResourceModule:Interact+ae+4:
  db 6F
//F3 41 0F 11 6F 5C
//movss [r15+5C],xmm5

/***********************************************/

//remainingRounds
dealloc(newmem)
ResourceModule:Interact+757:
movsxd  rax,dword ptr [r15+50]
dec eax
//Alt: db 49 63 47 50 FF C8
Max Satisfaction

Code: Select all

[ENABLE]
alloc(newmem,2048,WishManager:GetRequiredSatisfactionPoints+53) 
label(returnhere)
label(originalcode)
label(exit)

newmem:

originalcode:
movsxd  rax,dword ptr [rax]  //maxSatisfactionProgress { 500 }
mov [rsi+30],rax  //satisfaction progress
mov [rsi+38],rax  //satisfaction points
mov [rsi+3C],rax  //satisfaction level
lea rsp,[rbp+00]

exit:
jmp returnhere

WishManager:GetRequiredSatisfactionPoints+53:
jmp newmem
nop
nop
returnhere:
 
[DISABLE]
dealloc(newmem)
WishManager:GetRequiredSatisfactionPoints+53:
movsxd  rax,dword ptr [rax]
lea rsp,[rbp+00]
//Alt: db 48 63 00 48 8D 65 00
Character Needs

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="28">
  <CheatEntries>
    <CheatEntry>
      <ID>1037</ID>
      <Description>"Character Needs"</Description>
      <Options moHideChildren="1"/>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
alloc(newmem,2048,FoodExpectation:GetFullfillmentLevel+15e)
label(return)
label(code)

label(health)
label(hunger)
label(stamina)

label(healthC)
label(hungerC)
label(staminaC)

registersymbol(hungerC)
registersymbol(staminaC)
registersymbol(healthC)

newmem:
//health
health:
cmp [healthC],0
je hunger
movss xmm1,[rsi+000001F8]
movss [rsi+000001F4],xmm1
movss xmm0,[rsi+000001F4]
//hunger
hunger:
cmp [hungerC],0
je stamina
mov [rsi+000001FC],(float)1
movss xmm0,[rsi+000001FC]
//stamina
stamina:
cmp [staminaC],0
je code
mov [rsi+00000200],(float)1
movss xmm0,[rsi+00000200]
jmp return

code:
movss xmm0,[rsi+000001FC]
jmp return
healthC:
dq 0
hungerC:
dq 0
staminaC:
dq 0

FoodExpectation:GetFullfillmentLevel+15e:
jmp newmem
nop
nop
nop
return:
 
[DISABLE]
unregistersymbol(hungerC)
unregistersymbol(staminaC)
unregistersymbol(healthC)
dealloc(newmem)
FoodExpectation:GetFullfillmentLevel+15e:
movss xmm0,[rsi+000001FC]
//Alt: db F3 0F 10 86 FC 01 00 00
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>1038</ID>
          <Description>"Health"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
healthC:
dq 1

[DISABLE]
healthC:
dq 0
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>1039</ID>
          <Description>"Hunger"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
hungerC:
dq 1

[DISABLE]
hungerC:
dq 0
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>1040</ID>
          <Description>"Stamina"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
staminaC:
dq 1

[DISABLE]
staminaC:
dq 0
</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
Image

Re: FOUNDERS FORTUNE

Posted: Fri Aug 16, 2019 9:33 pm
by laoala
fantomas wrote:
Thu Aug 01, 2019 3:31 pm
Here some scripts that you do not find in cheats menu. :P

Fast Work

Code: Select all

[ENABLE]
//remainingWorkSeconds
ResourceModule:Interact+ae+4:
  db 47
//F3 41 0F 11 47 5C
//movss [r15+5C],xmm0

/*********************************************/

//remainingRounds
alloc(newmem,2048,ResourceModule:Interact+757)
label(returnhere)
label(originalcode)

newmem:

originalcode:
mov [r15+50],#1
movsxd  rax,dword ptr [r15+50]
dec eax
jmp returnhere

ResourceModule:Interact+757:
jmp newmem
nop
returnhere:

[DISABLE]
//remainingWorkSeconds
ResourceModule:Interact+ae+4:
  db 6F
//F3 41 0F 11 6F 5C
//movss [r15+5C],xmm5

/***********************************************/

//remainingRounds
dealloc(newmem)
ResourceModule:Interact+757:
movsxd  rax,dword ptr [r15+50]
dec eax
//Alt: db 49 63 47 50 FF C8
Max Satisfaction

Code: Select all

[ENABLE]
alloc(newmem,2048,WishManager:GetRequiredSatisfactionPoints+53) 
label(returnhere)
label(originalcode)
label(exit)

newmem:

originalcode:
movsxd  rax,dword ptr [rax]  //maxSatisfactionProgress { 500 }
mov [rsi+30],rax  //satisfaction progress
mov [rsi+38],rax  //satisfaction points
mov [rsi+3C],rax  //satisfaction level
lea rsp,[rbp+00]

exit:
jmp returnhere

WishManager:GetRequiredSatisfactionPoints+53:
jmp newmem
nop
nop
returnhere:
 
[DISABLE]
dealloc(newmem)
WishManager:GetRequiredSatisfactionPoints+53:
movsxd  rax,dword ptr [rax]
lea rsp,[rbp+00]
//Alt: db 48 63 00 48 8D 65 00
Character Needs

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="28">
  <CheatEntries>
    <CheatEntry>
      <ID>1037</ID>
      <Description>"Character Needs"</Description>
      <Options moHideChildren="1"/>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
alloc(newmem,2048,FoodExpectation:GetFullfillmentLevel+15e)
label(return)
label(code)

label(health)
label(hunger)
label(stamina)

label(healthC)
label(hungerC)
label(staminaC)

registersymbol(hungerC)
registersymbol(staminaC)
registersymbol(healthC)

newmem:
//health
health:
cmp [healthC],0
je hunger
movss xmm1,[rsi+000001F8]
movss [rsi+000001F4],xmm1
movss xmm0,[rsi+000001F4]
//hunger
hunger:
cmp [hungerC],0
je stamina
mov [rsi+000001FC],(float)1
movss xmm0,[rsi+000001FC]
//stamina
stamina:
cmp [staminaC],0
je code
mov [rsi+00000200],(float)1
movss xmm0,[rsi+00000200]
jmp return

code:
movss xmm0,[rsi+000001FC]
jmp return
healthC:
dq 0
hungerC:
dq 0
staminaC:
dq 0

FoodExpectation:GetFullfillmentLevel+15e:
jmp newmem
nop
nop
nop
return:
 
[DISABLE]
unregistersymbol(hungerC)
unregistersymbol(staminaC)
unregistersymbol(healthC)
dealloc(newmem)
FoodExpectation:GetFullfillmentLevel+15e:
movss xmm0,[rsi+000001FC]
//Alt: db F3 0F 10 86 FC 01 00 00
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>1038</ID>
          <Description>"Health"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
healthC:
dq 1

[DISABLE]
healthC:
dq 0
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>1039</ID>
          <Description>"Hunger"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
hungerC:
dq 1

[DISABLE]
hungerC:
dq 0
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>1040</ID>
          <Description>"Stamina"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
staminaC:
dq 1

[DISABLE]
staminaC:
dq 0
</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
Image

I can't load those, how should i do these? I tried loading those with the auto assemble windows that pop up with ctrl+alt+a but they don't seems to like some address used (as an example the first script stuck at ResourceModule:Interact+ae+4:)

Re: FOUNDERS FORTUNE

Posted: Fri Aug 16, 2019 9:55 pm
by fantomas
laoala wrote:
Fri Aug 16, 2019 9:33 pm
I can't load those, how should i do these? I tried loading those with the auto assemble windows that pop up with ctrl+alt+a but they don't seems to like some address used (as an example the first script stuck at ResourceModule:Interact+ae+4:)
Take a look on this one. Be aware that the game is using mono, so the game may generate the code differently, depending on your system configuration.

Re: [COMPLETED] FOUNDERS FORTUNE

Posted: Mon Sep 02, 2019 7:06 pm
by junior_clk
can you make the assembly for version 9?
cant find the right pointer in dnspy or reflector, im new to them

made it work
pw roy

Re: [COMPLETED] FOUNDERS FORTUNE

Posted: Mon Sep 02, 2019 9:08 pm
by cfemen
if someone want debug menu as table:

activate script and F3 to toggle debug mode

Re: [COMPLETED] FOUNDERS FORTUNE

Posted: Mon Sep 02, 2019 10:50 pm
by fantomas
cfemen wrote:
Mon Sep 02, 2019 9:08 pm
if someone want debug menu as table:

activate script and F3 to toggle debug mode

Code: Select all

[ENABLE]

aobscan(aobUpdate,C7 45 A8 00 00 00 00 33 C0 48 0F B6 C0 85 C0) // should be unique
registersymbol(aobUpdate)

aobUpdate+7:
  db 33 C0 48 0F B6 C0 39 D8

[DISABLE]

aobUpdate+7:
  db 33 C0 48 0F B6 C0 85 C0

unregistersymbol(aobUpdate)
Why stopped at byte 7 while you can start from the byte you want to change?

Code: Select all

aobUpdate+D:
  db 39 D8
  
 aobUpdate+D:
  db 85 C0

Re: [COMPLETED] FOUNDERS FORTUNE

Posted: Mon Sep 02, 2019 10:58 pm
by cfemen
fantomas wrote:
Mon Sep 02, 2019 10:50 pm
cfemen wrote:
Mon Sep 02, 2019 9:08 pm
if someone want debug menu as table:

activate script and F3 to toggle debug mode

Code: Select all

[ENABLE]

aobscan(aobUpdate,C7 45 A8 00 00 00 00 33 C0 48 0F B6 C0 85 C0) // should be unique
registersymbol(aobUpdate)

aobUpdate+7:
  db 33 C0 48 0F B6 C0 39 D8

[DISABLE]

aobUpdate+7:
  db 33 C0 48 0F B6 C0 85 C0

unregistersymbol(aobUpdate)
Why stopped at byte 7 while you can start from the byte you want to change?

Code: Select all

aobUpdate+D:
  db 39 D8
  
 aobUpdate+D:
  db 85 C0
yeah you are right, i started the AOB with 33 C0 48 0F B6 C0 85 C0 but it was not unique, i added some bytes to the AOB and for quick test i used the +7 offset, and it worked ingame, and i forgot to "clean up" the code :/

edit : and on this point i did not know that "F3" is to toggle, i started to create a dword for input toggle the debug menu and overriding the next cmp, but i found out this is not neccesary, and yeah i forget to clean up the first script.

Re: FOUNDERS FORTUNE

Posted: Sat Aug 15, 2020 11:43 pm
by CarlosGFG
fantomas wrote:
Fri Aug 16, 2019 9:55 pm
laoala wrote:
Fri Aug 16, 2019 9:33 pm
I can't load those, how should i do these? I tried loading those with the auto assemble windows that pop up with ctrl+alt+a but they don't seems to like some address used (as an example the first script stuck at ResourceModule:Interact+ae+4:)
Take a look on this one. Be aware that the game is using mono, so the game may generate the code differently, depending on your system configuration.
Please upgrade to the new version 1.4.3, please

Re: [COMPLETED] FOUNDERS FORTUNE

Posted: Sun Aug 16, 2020 3:20 pm
by fantomas
@CarlosCFG

Hi,
The game has a dev mode that you can enable in game settings. Once you did it, press F3 to open up the debug menu.

Re: [COMPLETED] FOUNDERS FORTUNE

Posted: Sat Dec 19, 2020 12:12 pm
by Zozinhu
fantomas wrote:
Sun Aug 16, 2020 3:20 pm
@CarlosCFG

Hi,
The game has a dev mode that you can enable in game settings. Once you did it, press F3 to open up the debug menu.
I would like to get the achievements for this game, so I can't use the dev mode. Is it possible to update this?

The final release just came out.