Developer Console - XCOM:EU 2012

From Nexus Mods Wiki
Jump to: navigation, search

Overview

There are two primary developer features available: the Shell and the Console.

  • The Console (sometimes called the debug console) is a command line prompt that appears at the very bottom of the screen in game (in the image below, it appears as green text) and accepts SOME Console Commands.

XComGame2012-Console.jpg

This article is about how to enable the Console, which is not otherwise available. Once enabled, the default to activate the Console is the backslash ("\") key. Other keys found to work for other language keyboards are "one-half" ("½") and "yen" ("¥").

NOTE: your modded game will not work in Multiplayer mode, as the use of the Console is actively prohibited.

Source

Info below is derived from these threads on the Nexus XCOM Forum:

Programs and Tools

Details

Hex code changes to enable the Developer Console to appear in game XComGame.exe.

Engine.upk

Class Engine

native static final function boolean IsRetailGame();

  • Changed to return false instead of true

PatcherGUI Mod for EU

For Enemy Unknown:

This is a mod to re-enable the Developer Shell and Console, formatted for installing with PatcherGUI, which is part of UPK Utils.

Compatible with all EU patches through #6.

DESCRIPTION=Enables Console and Developer's Shell for XCOM Enemy Unknown

UPK_FILE=Engine.upk
{ IsRetailGame will be moved and expanded } EXPAND_FUNCTION=Engine.IsRetailGame:66
{ New virtual and physical size } REL_OFFSET=0x28 MODDED_HEX=03 00 00 00 03 00 00 00
{ Return false } REL_OFFSET=0x30 MODDED_HEX=04 28
{ Function's flags } REL_OFFSET=0x36 MODDED_HEX=02 01 02 00
{ <EoF> }

PatcherGUI Mod for EW

For Enemy Within:

This is a mod to re-enable the Developer Shell and Console, formatted for installing with PatcherGUI, which is part of UPK Utils.

Compatible with all EW patches through #3.

DESCRIPTION=Enables Console and Developer's Shell for XCOM Enemy Within

UPK_FILE=Engine.upk
{ IsConsoleAllowed will be moved and expanded } EXPAND_FUNCTION=Engine.IsConsoleAllowed:66
{ New virtual and physical size } REL_OFFSET=0x28 MODDED_HEX=03 00 00 00 03 00 00 00
{ Return true } REL_OFFSET=0x30 MODDED_HEX=04 27
{ Function's flags } REL_OFFSET=0x36 MODDED_HEX=02 01 02 00
{ <EoF> }

UPKModder Mod for EW

EW Patch 2 and UPK-Modder (version 0.81 and higher) compatible version of Old PatcherGUI mod for EW patch 2:

MODFILEVERSION=4
UPKFILE=Engine.upk
GUID=69 93 F3 76 51 75 45 42 97 7A F5 88 A3 5C 41 61 // Engine_patch2.upk
FUNCTION=IsConsoleAllowed@Engine
RESIZE=7

[BEFORE_HEX] [HEADER] 02 00 00 00 02 00 00 00 [/HEADER] [CODE] //null op 0B
//EOS 53
[/CODE]
//footer flags 00 00 00 01 24 02 00 // native static function 00 26 00 00 00 00 00 00 [/BEFORE_HEX]

[AFTER_HEX] [HEADER] 0D 00 00 00 09 00 00 00 [/HEADER] [CODE] //return true 04 27
//return ReturnValue 04 3A B4 2B 00 00
//EOS 53 [/CODE]
//footer flags 00 00 00 02 01 02 00 // simulated, not native function 00 26 00 00 00 00 00 00
[/AFTER_HEX]
// <EoF>

Separate Content

The following are not needed if using one of the above PatcherGUI/UPKModder mods. They are provided for instructional purposes and the use of other mod creators.

Old PatcherGUI mod for EW patch 0-1

For Enemy Within:
This is a mod to re-enable the Developer Shell and Console, formatted for installing with PatcherGUI, which is part of UPK Utils.

Initial release and Patch 1 compatible:

DESCRIPTION=Enables Console and Developer's Shell for XCOM Enemy Within
UPK_FILE=Engine.upk
{ Expand function IsConsoleAllowed } EXPAND_FUNCTION=Engine.IsConsoleAllowed:72
FUNCTION=Engine.IsConsoleAllowed
{ New virtual size } REL_OFFSET=0x28 [MODDED_HEX] 0D
{ Return true and ReturnValue } REL_OFFSET=0x30 [MODDED_HEX] 04 27 04 3A 95 2C 00 00
{ Function's flags } REL_OFFSET=0x3C [MODDED_HEX] 02 01 02
{ <EoF> }

Old PatcherGUI mod for EW patch 2

This is a mod to re-enable the Developer Shell and Console, formatted for installing with PatcherGUI, which is part of UPK Utils.

Patch 2 and PatcherGUI 2.1 and higher compatible:

DESCRIPTION=Enables Console and Developer's Shell for XCOM Enemy Within
UPK_FILE=Engine.upk
{ IsConsoleAllowed will be moved and expanded } OBJECT=Engine.IsConsoleAllowed:AUTO
{ New virtual and physical size } REL_OFFSET=0x28 [MODDED_HEX] 0D 00 00 00 09 00 00 00
{ Return true and ReturnValue } REL_OFFSET=0x30 [MODDED_HEX] 04 27 04 3A B4 2B 00 00
{ EOS and zeros } 53 00 00 00
{ Function's flags } 02 01 02 00
{ The rest } 00 26 00 00 00 00 00 00
{ <EoF> }

Old EU Patch Specific location changes

For EU:

Changes (exact byte location):
0x3C8F15 | 01 > 00
0X3C8F22 | 01 > 00

Line format:
address | hex code pattern

Before:
003C8F10 | 44 24 08 C7 00 01 00 00 00 C2 08 00 8B 4C 24 08
003C8F20 | C7 01 01 00 00 00 C2 08 00 CC CC CC CC CC CC CC

After:
003C8F10 | 44 24 08 C7 00 00 00 00 00 C2 08 00 8B 4C 24 08
003C8F20 | C7 01 00 00 00 00 C2 08 00 CC CC CC CC CC CC CC

As of EU Patch 4:

The value being changed are the same, but the hex location in the file has changed

Before:
00B1FEB0 | 44 24 08 C7 00 01 00 00 00 C2 08 00 8B 4C 24 08
00B1FEC0 | C7 01 01 00 00 00 C2 08 00 CC CC CC CC CC CC CC

After:
00B1FEB0 | 44 24 08 C7 00 00 00 00 00 C2 08 00 8B 4C 24 08
00B1FEC0 | C7 01 00 00 00 00 C2 08 00 CC CC CC CC CC CC CC


References

Referred to by this article:

That refer to this article: