Page 1 of 28

Civilization VI + XP1 +XP2 Steam (GM and More) 2021-Apr-24

Posted: Thu Mar 02, 2017 11:35 pm
by Recifense
Hi guys,

Here is my contribution for "Sid Meier's Civilization VI" version 1.0.12.9 (564030). The table contains a script with the following features:

Code: Select all

===========================================
 Game Title    : Civilization VI - Gathering Storm
 Game Version  : 1.0.12.9 (564030)
 Game Sponsor  : Fennix102 + daipm (XP1 and XP2)
 Process Name  : CivilizationVI.exe
 Relevant Info : 64bits/TBS/New Engine
 Script Version: 3.13-AOB
 CE Version    : 7.0
 Release date  : 22-Apr-2021
 Author        : Recifense
 History:
 22-Oct-2016: Preliminary Release 1 (7 features)
 24-Oct-2016: Preliminary Release 2 (6 more features)
 25-Oct-2016: First Release
 02-Nov-2016: Added unit prod in 1 turn (s2.0)
 19-Nov-2016: Release for version 1.0.0.38. (s2.1)
 21-Dec-2016: Release for version 1.0.0.56.
 22-Dec-2016: Fix for Faith (s2.2).
 25-Feb-2017: Release for version 1.0.0.110.
 28-Mar-2017: Release for version 1.0.0.129.
 29-Jul-2017: Release for version 1.0.0.167.
 02-Aug-2017: Fix for "Build District in 1 turn" (s2.4)
 15-Aug-2017: Fix for "Unit Production in 1 Turn" + GPA (s2.5)
 19-Oct-2017: Release for version 1.0.0.194.
 21-Oct-2017: Fix for Faith and Great People Action(s2.6).
 08-Feb-2018: Release for version 1.0.0.216. + Fix for religious Units (s2.7)
 09-Feb-2018: Release for version 1.0.0.216 - XP1
 12-Feb-2018: Fix Construction in 1 Turn (city) => Only Wonders (s2.8)
 13-Feb-2018: Release for version 1.0.0.220 - XP1
 11-Mar-2018: Release for version 1.0.0.229 - XP1
 11-May-2018: Release for version 1.0.0.259 - XP1
 20-Jul-2018: Release for version 1.0.0.262 - XP1
 16-Feb-2019: Release for version 1.0.0.290 - XP1
 17-Feb-2019: Release for version 1.0.0.290 - XP2 (Gathering Storm)
 18-Feb-2019: Final Release for version 1.0.0.290 - XP2 (+ new feature)(s3.0)
 16-Mar-2019: One more feature "Minimum Special Resources" - XP2 (s3.1)
 03-Apr-2019: Release for version 1.0.0.314 - XP2 (s3.2)
 14-Apr-2019: Release for version 1.0.0.317 - XP2 (s3.3-AOB)
 20-Jun-2019: Release for version 1.0.0.328 - XP2 (s3.4-AOB)
 15-Sep-2019: Release for version 1.0.0.341 - XP2 (s3.5-AOB)
 22-May-2020: Release for version 1.0.1.501 - XP2 (s3.6-AOB)
 23-Jul-2020: Release for version 1.0.3.31  - XP2 (s3.7-AOB)
 28-Aug-2020: Release for version 1.0.4.8   - XP2 (s3.8-AOB)
 25-Sep-2020: Release for version 1.0.5.11  - XP2 (s3.9-AOB)
 24-Oct-2020: Release for version 1.0.6.9   - XP2 (s3.10-AOB)
 30-Jan-2021: Release for version 1.0.9.9   - XP2 (s3.11-AOB)
 26-Feb-2021: Release for version 1.0.10.15 - XP2 (s3.12-AOB)
 22-Apr-2021: Release for version 1.0.12.9  - XP2 (s3.13-AOB)
 Features:
 - Minimum Gold                  [1]
 - Move unlimited Times          [2]
 - Unic Can Act Again            [3]
 - God Mode                      [4]
 - Research in 1 turn            [5]
 - Construction in 1 turn:       [6] (**)
   - Only Wonders                [7]
 - Unlimited Works for Builders  [8]
 - Build District in 1 turn      [9]
 - Build Project in 1 turn       [A]
 - City Minimum Pop              [B]
 - Minimum Faith                 [C]
 - City Garrison HP              [D]
 - Unit Production in 1 turn     [E] (**)
 - Great People Action (new)     [F]
 - Unlimited Spreads for Religious Units (new) [G]
 - Civics in 1 turn              [H] (incorporated)
 - Only Marked Cities            [I] (NEW)(**)
 - Minimum Special Resources     [J] (Brand-new)(s3.1)
 - Some Pointers                
===========================================
[1] It will not go under 67000;
[2] Everytime you select a Unit, it will be ready to move;
[3] Everytime you select a Unit, it will be ready to act;
[4] That's it. A unit may dissapear, but it will be alive;
[5] A Research per turn;
[6] For every city (player's);
[7] Only wonders will be produced in 1 turn;
[8] No limit for builders;
[9] That's it;
[A] That's it;
[B] The minimum population is 2;
[C] It will not go under 6700;
[D] God Mode for City;
[E] For every city (player's);
[F] Great People Actions is set to 3 on selection;
[G] No limit for Spreading Relegion;
[H] A Civics per turn;
[I] Only Cities which names start with CE67 (**)
[J] Special resources will not go under minimum (40) (when updated);
(**) This option affects Unit Production and Contruction in 1 turn. The afftected options will only work if the city name starts with CE67.  
===========================================
[USAGE]
1) Run CE70;
2) Run Game;
3) Start a match from the beginning or loading it;
4) Load the game process "CivilizationVI.exe" or "CivilizationVI_DX12.exe" in CE;
5) Load this table and activate the main script;
5) Now Activate the script of each cheat you want to use;
6) Game On;
[NOTE} When already playing a match, you decide to start another game or load a savegame, you should deactivate the script first and follow the steps from step 3 on. The reason is that the game is a DLL and may be unloaded and loaded again during this process.
[USAGE][For Marked Cities Only]
- Enable the option "for Marked Cities Only";
- Include CE67 at the beginning of the name of the cities that you want the options "Unit Production and Contruction in 1 turn" to work;
- To unmark the city, just remove CE67.
For Example:
New York      -> CE67 New York (marked)
CE67 New York -> New York ( now it is unmarked)
===========================================
HOTKEYS:
 None defined
===========================================
[IMPORTANT]
Save your game before unsing the cheats.
===========================================
[INFO]
Tested on Win 10 64bits
===========================================
BIG THANKS to Fennix102 for providing the game.
BIG THANKS to daipm for providing Expansions.
===========================================
Have fun!
The table also contains (when the main scripts are active) the scripts listed on the attached image.

The features are DISABLED by default. For enabling any of them, just activate its script;

Note: The scripts use the CE command ASSERT and will not load if it is incompatible with the running game version.

After downloading the table, copy it to the "My Cheat Table" folder.

It is for CE 7.0

==========================================
25-Oct-2016

Big thanks to Fennix102 for providing the game.

==========================================
09-Feb-2018

Big thanks to daipm for providing the Expansion "Rise and Fall".

==========================================
18-Feb-2019

Big thanks to daipm for providing the Expansion "Gathering Storm" as well.

==========================================

Link for the tool: [Link]

Cheers to All!

Re: Civilization VI Steam (GM and More) 2017-Mar-02

Posted: Fri Mar 03, 2017 2:17 pm
by gangster_bread
Nice ! :D

Re: Civilization VI Steam (GM and More) 2017-Mar-02

Posted: Fri Mar 03, 2017 2:20 pm
by stonydk
Thx :-)

Re: Civilization VI Steam (GM and More) 2017-Mar-02

Posted: Sun Mar 12, 2017 8:55 pm
by kultsi
EDIT: Nvm, wrong version

Re: Civilization VI Steam (GM and More) 2017-Mar-02

Posted: Sun Mar 19, 2017 10:53 am
by Eric
Had this one still lying around. It's the value type civ 6 uses for money and research and progress, and whatever

Code: Select all

alloc(ConvertRoutine,1024)
alloc(ConvertBackRoutine,1024)
alloc(TypeName,256)
alloc(ByteSize,4)
alloc(UsesFloat,1)
alloc(CallMethod,1)

TypeName:
db 'Civ 6 Value',0

ByteSize:
dd 4

UsesFloat:
db 0 //Change to 1 if this custom type should be treated as a float

CallMethod:
db 1 //Remove or change to 0 for legacy call mechanism

//The convert routine should hold a routine that converts the data to an integer (in eax)
//function declared as: cdecl int ConvertRoutine(unsigned char *input, PTR_UINT address);
//Note: Keep in mind that this routine can be called by multiple threads at the same time.
ConvertRoutine:
//jmp dllname.functionname
[64-bit]
//or manual:
//parameters: (64-bit)
//rcx=address of input
//rdx=address
mov eax,[rcx] //eax now contains the bytes 'input' pointed to
shr eax,8
//and eax,ffffff

ret
[/64-bit]

[32-bit]
//jmp dllname.functionname
//or manual:
//parameters: (32-bit)
push ebp
mov ebp,esp
//[ebp+8]=address of input
//[ebp+c]=address
//example:
mov eax,[ebp+8] //place the address that contains the bytes into eax
mov eax,[eax] //place the bytes into eax so it's handled as a normal 4 byte value
//and eax,ffffff
shr eax,8

pop ebp
ret
[/32-bit]

//The convert back routine should hold a routine that converts the given integer back to a row of bytes (e.g when the user wats to write a new value)
//function declared as: cdecl void ConvertBackRoutine(int i, PTR_UINT address, unsigned char *output);
ConvertBackRoutine:
//jmp dllname.functionname
//or manual:
[64-bit]
//parameters: (64-bit)
//ecx=input
//rdx=address
//r8=address of output
//example:
shl ecx,8
mov cl,[r8]
mov [r8],ecx //place the integer at the 4 bytes pointed to by r8

ret
[/64-bit]

[32-bit]
//parameters: (32-bit)
push ebp
mov ebp,esp
//[ebp+8]=input
//[ebp+c]=address
//[ebp+10]=address of output
//example:
push eax
push ebx
mov eax,[ebp+8] //load the value into eax
mov ebx,[ebp+10] //load the output address into ebx
shl eax,8
mov al,[ebx]
mov [ebx],eax //write the value into the address
pop ebx
pop eax

pop ebp
ret
[/32-bit]


Re: Civilization 6 Unit Auto Level Up Per Turn

Posted: Fri Mar 24, 2017 11:01 pm
by merlini
Byte: Unit Pointer + 0xEB8
Byte: Unit Pointer + 0xEBA
Are the promotion flags for units.

Something like the following will auto promote units as turns go by.
(Version 110)

Code: Select all

[ENABLE]
aobscanmodule(INJECT,GameCore_Base_FinalRelease.dll,8B 82 BC 0E 00 00) // should be unique
alloc(newmem,$1000,"GameCore_Base_FinalRelease.dll"+45595D)

label(code)
label(return)

newmem:
code:
    // Any hook into unit pointer
    push ebx
    // Test playerId (rdx+0x40) == 0
    movzx ebx, [rdx+40]
    test bl, bl
    jne @f
    mov ebx, rdx
    // Promotion flags := p_unit + 0xEB8, p_unit + 0xEBA
    mov byte ptr [ebx+EB8], 1
    mov byte ptr [ebx+EBA], 1
  @@:
    pop ebx

    mov eax,[rdx+00000EBC]
    jmp return

INJECT:
    jmp code
    nop
return:
registersymbol(INJECT)

[DISABLE]

INJECT:
    db 8B 82 BC 0E 00 00

unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "GameCore_Base_FinalRelease.dll"+45595D

"GameCore_Base_FinalRelease.dll"+45592A: 48 8B 82 B0 0E 00 00           -  mov rax,[rdx+00000EB0]
"GameCore_Base_FinalRelease.dll"+455931: 49 8B F8                                   -  mov rdi,r8
"GameCore_Base_FinalRelease.dll"+455934: 48 89 44 24 20                     -  mov [rsp+20],rax
"GameCore_Base_FinalRelease.dll"+455939: 48 8B DA                                   -  mov rbx,rdx
"GameCore_Base_FinalRelease.dll"+45593C: 0F B6 82 B8 0E 00 00           -  movzx eax,byte ptr [rdx+00000EB8]
"GameCore_Base_FinalRelease.dll"+455943: 88 44 24 28                            -  mov [rsp+28],al
"GameCore_Base_FinalRelease.dll"+455947: 0F B6 82 B9 0E 00 00           -  movzx eax,byte ptr [rdx+00000EB9]
"GameCore_Base_FinalRelease.dll"+45594E: 88 44 24 29                            -  mov [rsp+29],al
"GameCore_Base_FinalRelease.dll"+455952: 0F B6 82 BA 0E 00 00           -  movzx eax,byte ptr [rdx+00000EBA]
"GameCore_Base_FinalRelease.dll"+455959: 88 44 24 2A                            -  mov [rsp+2A],al
// ---------- INJECTING HERE ----------
"GameCore_Base_FinalRelease.dll"+45595D: 8B 82 BC 0E 00 00              -  mov eax,[rdx+00000EBC]
// ---------- DONE INJECTING    ----------
"GameCore_Base_FinalRelease.dll"+455963: 89 44 24 2C                            -  mov [rsp+2C],eax
"GameCore_Base_FinalRelease.dll"+455967: 8B 82 C0 0E 00 00              -  mov eax,[rdx+00000EC0]
"GameCore_Base_FinalRelease.dll"+45596D: 89 44 24 30                            -  mov [rsp+30],eax
"GameCore_Base_FinalRelease.dll"+455971: E8 DA 27 22 00                     -  call GameCore_Base_FinalRelease.dll+678150
"GameCore_Base_FinalRelease.dll"+455976: 48 8B 93 C8 0E 00 00           -  mov rdx,[rbx+00000EC8]
"GameCore_Base_FinalRelease.dll"+45597D: 48 8D 4C 24 38                     -  lea rcx,[rsp+38]
"GameCore_Base_FinalRelease.dll"+455982: 48 89 44 24 38                     -  mov [rsp+38],rax
"GameCore_Base_FinalRelease.dll"+455987: 44 8B 42 FC                            -  mov r8d,[rdx-04]
"GameCore_Base_FinalRelease.dll"+45598B: E8 70 24 22 00                     -  call GameCore_Base_FinalRelease.dll+677E00
"GameCore_Base_FinalRelease.dll"+455990: 8B 83 D0 0E 00 00              -  mov eax,[rbx+00000ED0]
}

Re: Civilization VI Steam (GM and More) 2017-Mar-28

Posted: Wed Mar 29, 2017 12:20 am
by Recifense
Hi guys,

A table was added for version 1.0.0.129. Please look at the first post.

Cheers!

Re: Civilization VI Steam (GM and More) 2017-Mar-28

Posted: Wed Apr 26, 2017 3:46 pm
by nairit
I remember there used to be a table for unlimited great person actions. Does someone have that?

Re: Civilization VI Steam (GM and More) 2017-Mar-28

Posted: Thu Jul 27, 2017 10:50 pm
by H Con
Hi. The game has been updated to 1.0.0.167 and the table no longer works.

Re: Civilization VI Steam (GM and More) 2017-Mar-28

Posted: Fri Jul 28, 2017 5:06 pm
by Axeen
Civilization summer update to 1.0.0.167 and the table no longer works.

Re: Civilization VI Steam (GM and More) 2017-Mar-28

Posted: Sat Jul 29, 2017 2:06 pm
by Recifense
Axeen wrote:
Fri Jul 28, 2017 5:06 pm
Civilization summer update to 1.0.0.167 and the table no longer works.
I have just started to work on it.

Cheers!

Re: Civilization VI Steam (GM and More) 2017-Mar-28

Posted: Sat Jul 29, 2017 9:12 pm
by Recifense
Recifense wrote:
Sat Jul 29, 2017 2:06 pm
Axeen wrote:
Fri Jul 28, 2017 5:06 pm
Civilization summer update to 1.0.0.167 and the table no longer works.
I have just started to work on it.

Cheers!
Done.

Cheers!

Re: Civilization VI Steam (GM and More) 2017-Jul-29

Posted: Sat Jul 29, 2017 9:20 pm
by Recifense
Hi Patrons,

A signed version of the last table can be found at Patreon.

Cheers!

Re: Civilization VI Steam (GM and More) 2017-Jul-29

Posted: Sat Jul 29, 2017 11:03 pm
by Axeen
Cheers,

Thanks a lot, all function is working in the game.
and I am join in your PATREON now.

Re: Civilization VI Steam (GM and More) 2017-Jul-29

Posted: Sun Jul 30, 2017 1:48 am
by dezzter
I remember one of the cheat engine tables for CIv 6 used to let me modify unit sight range? It was lost with the cheatengine tables forum though. Any chance a unit editor function in your table? Might be able to use their old code as reference if you can find a copy. (If it wasn't yours too)