Page 1 of 5

[Request] Millennia

Posted: Wed Mar 27, 2024 3:01 pm
by SlipperyEel
Image

Game Name: Millennia
Game Engine: Unity
Game Version: 1.0.2.F
Options Required: Wealth, Innovation, Research, Culture, Government, Exploration, Warfare, Engineering, Diplomacy, Improvement Points, etc., army/unit inf move and inf health
Steam Website:
Other Info: After playing with searching for values for a bit, it seems like most values are Floats, but the addresses vary on save/load and even in the same session they will all change when you progress to a new Age.

Re: [Request] Millennia

Posted: Wed Mar 27, 2024 3:07 pm
by SmileyfaceSmile
Have noticed the game handling it poorly if you give units too much movement, 90 has been the sweetspot for me

Edit: City pointers would also be great

Re: [Request] Millennia

Posted: Wed Mar 27, 2024 3:33 pm
by Darkedone02
Some of the points in the game are 4 bytes and "S"'.

Re: [Request] Millennia

Posted: Wed Mar 27, 2024 3:35 pm
by SlipperyEel
SmileyfaceSmile wrote:
Wed Mar 27, 2024 3:07 pm
Have noticed the game handling it poorly if you give units too much movement, 90 has been the sweetspot for me
I just added Warfare points and used the Force March ability to reset their movement, and then every so often the Reinforcements ability since the former takes off 10% health. I didn't encounter any issues with that approach. So maybe rather than infinite movement, a reset movement function would be a better idea?

Re: [Request] Millennia

Posted: Wed Mar 27, 2024 3:45 pm
by gotexan8
Hotfix version 1.0.2.F is now out.

Re: [Request] Millennia

Posted: Wed Mar 27, 2024 6:14 pm
by matt1713
Anyone figure out how to change the culture/warfare/improvement points? Every time I think I narrow them down, the value changes are ignored. Only the turn count seems to work.

Nevermind, was not using float values.

Re: [Request] Millennia

Posted: Wed Mar 27, 2024 7:52 pm
by SmileyfaceSmile
matt1713 wrote:
Wed Mar 27, 2024 6:14 pm
Anyone figure out how to change the culture/warfare/improvement points? Every time I think I narrow them down, the value changes are ignored. Only the turn count seems to work.
They are stored as their value in float values, but often change when you switch government

Re: [Request] Millennia

Posted: Thu Mar 28, 2024 1:50 am
by emdasdas
thanks for the page, the table is appreciated

Re: [Request] Millennia

Posted: Thu Mar 28, 2024 8:50 am
by eternien
+1 for a table for this game

Re: [Request] Millennia

Posted: Thu Mar 28, 2024 8:59 am
by SlipperyEel
SlipperyEel wrote:
Wed Mar 27, 2024 3:35 pm
I just added Warfare points and used the Force March ability to reset their movement, and then every so often the Reinforcements ability since the former takes off 10% health.
I just realised that using the Reinforcements ability drains the unit's Combat XP. Which is kinda bad when you use it repeatedly, lol. So I would advise against anyone spamming that, unless you first find their existing XP value so you can keep resetting it back.

Edit: So if you manage to get into the variant Age of Heroes as your third age, you can unlock the Eye of Ra power that replenishes an army with no downsides:

Image

Although it requires first doing the appropriate research and constructing the building to allow heroes access to the additional quest reward. The description says it is replaced in the 5th age, so I assume there will be some generic ability everyone has access to at that point (this just gives it to you early under another name).

Re: [Request] Millennia

Posted: Thu Mar 28, 2024 9:32 am
by koyterrr
guys, so there is no way to hack this game now?

Re: [Request] Millennia

Posted: Thu Mar 28, 2024 3:29 pm
by matt1713
I'm having difficulty trying to find where on earth your total influence points are. Has anyone figured out where to find/manipulate the influence points?

Re: [Request] Millennia

Posted: Thu Mar 28, 2024 3:39 pm
by tsfortna
Devs removed the console commands. :dry:

Re: [Request] Millennia

Posted: Thu Mar 28, 2024 4:44 pm
by imjustmaxie
Game looks interesting.

Re: [Request] Millennia

Posted: Thu Mar 28, 2024 7:11 pm
by BabyGroot
First - Open tab research > after that press shift and click research [ farming, scouting or worker (just anything) ].
Second - Active Script, Waiting For AoB Read.
Script Research Always Done

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>105332</ID>
      <Description>"Research Done"</Description>
      <LastState/>
      <Color>008080</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Millennia.exe
  Version: 
  Date   : 2024-03-29
  Author : BabyGroot

  This script does blah blah blah
}

[ENABLE]

aobscan(pData_Dev_EnableTech,0F B6 00 85 C0 74 33) // should be unique
alloc(newmem,$1000,pData_Dev_EnableTech)

label(code)
label(return)

newmem:

code:
  mov byte ptr [rax],1
  db 0F B6 00
  test eax,eax
  jmp return

pData_Dev_EnableTech:
  jmp newmem
return:
registersymbol(pData_Dev_EnableTech)

[DISABLE]

pData_Dev_EnableTech:
  db 0F B6 00 85 C0

unregistersymbol(pData_Dev_EnableTech)
dealloc(newmem)


</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Script Game Data

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>105306</ID>
      <Description>"Game Data"</Description>
      <LastState Activated="1"/>
      <Color>FF0000</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Millennia.exe
  Version: 
  Date   : 2024-03-29
  Author : BabyGroot

  This script does blah blah blah
}

[ENABLE]

aobscan(pData_Game,48 8B 86 80 02 00 00 48 83) // should be unique
alloc(newmem,$1000,pData_Game)

alloc(pBase_Game,8)
registersymbol(pBase_Game)

label(code)
label(return)

pBase_Game:
dd

newmem:

code:
  mov [pBase_Game],rsi
  db 48 8B 86 80 02 00 00
  jmp return

pData_Game:
  jmp newmem
  nop 2
return:
registersymbol(pData_Game pBase_Game)

[DISABLE]

pData_Game:
  db 48 8B 86 80 02 00 00

unregistersymbol(*)
dealloc(*)

</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>105307</ID>
      <Description>"Game Data"</Description>
      <Options moHideChildren="1" moManualExpandCollapse="1"/>
      <LastState Value="" RealAddress="00000000"/>
      <Color>FF8000</Color>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>105308</ID>
          <Description>"pBase - [ Color Silver Don't Chance ]"</Description>
          <LastState Value="6D2E6450" RealAddress="189FB699960"/>
          <ShowAsHex>1</ShowAsHex>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C0C0C0</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>[pBase_Game]</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>105339</ID>
          <Description>"Player Name"</Description>
          <LastState RealAddress="18A9AA6B594"/>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>4080FF</Color>
          <VariableType>String</VariableType>
          <Length>128</Length>
          <Unicode>1</Unicode>
          <CodePage>0</CodePage>
          <ZeroTerminate>1</ZeroTerminate>
          <Address>[pBase_Game]+58</Address>
          <Offsets>
            <Offset>14</Offset>
            <Offset>18</Offset>
            <Offset>40</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>105340</ID>
          <Description>"Nation Name"</Description>
          <LastState RealAddress="189DA436FD4"/>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>4080FF</Color>
          <VariableType>String</VariableType>
          <Length>128</Length>
          <Unicode>1</Unicode>
          <CodePage>0</CodePage>
          <ZeroTerminate>1</ZeroTerminate>
          <Address>[pBase_Game]+58</Address>
          <Offsets>
            <Offset>14</Offset>
            <Offset>28</Offset>
            <Offset>40</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>105303</ID>
          <Description>"Game ID"</Description>
          <LastState RealAddress="18A9B9AD284"/>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>4080FF</Color>
          <VariableType>String</VariableType>
          <Length>128</Length>
          <Unicode>1</Unicode>
          <CodePage>0</CodePage>
          <ZeroTerminate>1</ZeroTerminate>
          <Address>[pBase_Game]+20</Address>
          <Offsets>
            <Offset>14</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>105309</ID>
          <Description>"Turn Count"</Description>
          <LastState Value="1" RealAddress="189FB699BAC"/>
          <Color>0000FF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>[pBase_Game]+24C</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>105310</ID>
          <Description>"Turn Count Limit"</Description>
          <LastState Value="500" RealAddress="189FB699BB0"/>
          <Color>0000FF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>[pBase_Game]+250</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>105311</ID>
          <Description>"Turn Count Warning"</Description>
          <LastState Value="475" RealAddress="189FB699BB4"/>
          <Color>0000FF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>[pBase_Game]+254</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>105312</ID>
          <Description>"Current Phase"</Description>
          <LastState Value="1" RealAddress="189FB699BB8"/>
          <Color>0000FF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>[pBase_Game]+258</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>105313</ID>
          <Description>"Current Phase Begin Time"</Description>
          <LastState Value="0" RealAddress="189FB699BD0"/>
          <Color>0000FF</Color>
          <VariableType>Float</VariableType>
          <Address>[pBase_Game]+270</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>105325</ID>
          <Description>"Base Year"</Description>
          <LastState Value="2000" RealAddress="189FB699C20"/>
          <Color>0000FF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>[pBase_Game]+2C0</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>105326</ID>
          <Description>"Years Per Turn"</Description>
          <LastState Value="50" RealAddress="189FB699C24"/>
          <Color>0000FF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>[pBase_Game]+2C4</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>105327</ID>
          <Description>"~~  Type Byte = Set Value 1 For ENABLED | Set Value 0 For DISABLED  ~~"</Description>
          <Options moHideChildren="1" moManualExpandCollapse="1"/>
          <LastState Value="" Activated="1" RealAddress="00000000"/>
          <Color>008080</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>105315</ID>
              <Description>"Online Game?"</Description>
              <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
              <LastState Value="0" RealAddress="189FB699BEB"/>
              <Color>C0C0C0</Color>
              <VariableType>Byte</VariableType>
              <Address>[pBase_Game]+28B</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>105314</ID>
              <Description>"Allow Victory?"</Description>
              <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:No/Off/Disabled
1:Yes/On/Enabled
</DropDownList>
              <LastState Value="1" RealAddress="189FB699BEA"/>
              <Color>808000</Color>
              <VariableType>Byte</VariableType>
              <Address>[pBase_Game]+28A</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>105318</ID>
              <Description>"Auto Skip Human Turns?"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">0:No/Off/Disabled
1:Yes/On/Enabled
</DropDownList>
              <LastState Value="0" RealAddress="189FB699BEE"/>
              <Color>808000</Color>
              <VariableType>Byte</VariableType>
              <Address>[pBase_Game]+28E</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>105316</ID>
              <Description>"Debug Quick Build?"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">0:No/Off/Disabled
1:Yes/On/Enabled
</DropDownList>
              <LastState Value="0" RealAddress="189FB699BEC"/>
              <Color>808000</Color>
              <VariableType>Byte</VariableType>
              <Address>[pBase_Game]+28C</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>105317</ID>
              <Description>"Debug View AI Players?"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">0:No/Off/Disabled
1:Yes/On/Enabled
</DropDownList>
              <LastState Value="0" RealAddress="189FB699BED"/>
              <Color>808000</Color>
              <VariableType>Byte</VariableType>
              <Address>[pBase_Game]+28D</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>105319</ID>
              <Description>"Debug Quick Launch?"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">0:No/Off/Disabled
1:Yes/On/Enabled
</DropDownList>
              <LastState Value="0" RealAddress="189FB699BEF"/>
              <Color>808000</Color>
              <VariableType>Byte</VariableType>
              <Address>[pBase_Game]+28F</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>105320</ID>
              <Description>"Debug Hotseat?"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">0:No/Off/Disabled
1:Yes/On/Enabled
</DropDownList>
              <LastState Value="0" RealAddress="189FB699BF0"/>
              <Color>808000</Color>
              <VariableType>Byte</VariableType>
              <Address>[pBase_Game]+290</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>105322</ID>
              <Description>"Debug Combat Sim Tooltip?"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">0:No/Off/Disabled
1:Yes/On/Enabled
</DropDownList>
              <LastState Value="0" RealAddress="189FB699BF8"/>
              <Color>808000</Color>
              <VariableType>Byte</VariableType>
              <Address>[pBase_Game]+298</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>105323</ID>
              <Description>"Debug Combat Auto Reset Mode?"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">0:No/Off/Disabled
1:Yes/On/Enabled
</DropDownList>
              <LastState Value="0" RealAddress="189FB699BF9"/>
              <Color>808000</Color>
              <VariableType>Byte</VariableType>
              <Address>[pBase_Game]+299</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>105324</ID>
              <Description>"Debug Import All Goods?"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">0:No/Off/Disabled
1:Yes/On/Enabled
</DropDownList>
              <LastState Value="0" RealAddress="189FB699BFB"/>
              <Color>808000</Color>
              <VariableType>Byte</VariableType>
              <Address>[pBase_Game]+29B</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Way to move code to cheat engine
1. Copy code ( Select All Code And CTRL + C )
2. Open cheat engine
4. Paste Code in Cheat Engine
5. Done
Video Tutorial