The Great War: Western Front™

The Great War: Western Front™

View Stats:
LMS Deathsure May 17, 2023 @ 11:48am
My Modifications: (NW, Turn Number, bit research)
Hello, writing this rn.

Hello, After looking through the discussions and having played the campaign twice and noticed several disflavours (AI becoming zerg on elite and stacking you 3 times per turn (which you would still win but the money cost hurt), the short campaign duration (enemy gives up after practically 2 small encirclements) and my want to have doom stacks and visit the entire tech tree in game (a lot feels not worth it)) i came across some modifications.


My goals in priority
1. Give Enemy or both sides in the campaign 9,999 NW for a long game, so that you only win by taking the capital.
2. increase turn maximum and remove NW drain for the same goal, also make sure noone autowins with 9,999 NW.
3. maybe increase battle timer to 30.
4. increase or decrease the cost of strategic structurees and the supply provided by garages and airfields (which are ENTIRELY useless since the current patch from an economical and tactical standpoint)
5. perhaps give more money per turn


What you need.
A. Megafile editor. People who edited star wars empire at war are familiar.
https://modtools.petrolution.net/tools/MegEditor

B. Just extracting and inserting a couple of sub files from and into the megafiles, the edits for at least my changes are rather simple.

C. All the changes i mention are in files in the megafile "config.meg" in the "data" folder in your game folder. however due to some protection we can not store or edit files in config.meg or the game wont launch. we store the modified subfiles in "shaders.meg" with the indentical name and the game will choose only the latter.





1.
Open config.meg with megfileeditor. Inside config.meg extract the 2 xml files
DATA\XML\GAMECONSTANTS.XML
DATA\XML\INSTANCES.XML


It has many lines which you can look through.
In gameconstants look for "<StrategicMaxNationalWill> 9999 </StrategicMaxNationalWill>"
or just "<StrategicMaxNationalWill>" since i put it in my file to 9999. You can then edit the number to your liking, i dont know a limit but 9999 works and should be enough.
Search the entire document for "<NationalWill>" and corresponding numbers. There you will then find starting NW and edit it to something like this
<StrategicStartingNationalWills>
<Entry>
<Faction>Faction1_Strategic</Faction>
<StrategicTimePeriods>
<Entry>
<TimePeriod>StrategicTimeFullCampaign</TimePeriod>
<NationalWill>9999</NationalWill>
</Entry>
<Entry>
<TimePeriod>StrategicTimeMidWar</TimePeriod>
<NationalWill>9999</NationalWill>
</Entry>
<Entry>
<TimePeriod>StrategicTimeLateWar</TimePeriod>
<NationalWill>9999</NationalWill>
</Entry>
</StrategicTimePeriods>
</Entry>

Same for the Instances.xml
It has several bodies concerning national will. Look the document for every mention of national will and modify it accordingly. It should E G look like this (this body appears several times in instances.xml)
<!-- Starting Strategic National Will values (per Faction) based on time periods -->
<StrategicStartingNationalWills network="server">
<Entry>
<Key>Faction1_Strategic</Key>
<Value>9999</Value>
</Entry>
<Entry>
<Key>Faction2_Strategic</Key>
<Value>9999</Value>
</Entry>
</StrategicStartingNationalWills>

2.
Open DATA\SCRIPTS\LUAVERSIONS\CURRENT\LUA\MAPSCRIPTS\TGW_STRATEGIC_VICTORY_CONDITIONS.LUA

in the first paragraph, set it to something like
VictoryData = {
AlliedFaction = 11, -- FACTION1_STRATEGIC in FactionTypes
GermanFaction = 12, -- FACTION2_STRATEGIC in FactionTypes
AlliedPlayer = nil, -- Player object
GermanPlayer = nil, -- Player object
AlliedPlayerIsAI = false, -- Is this player an AI
GermanPlayerIsAI = false, -- Is this player an AI
MilitaryVictory = 1, -- SVT_MILITARY_VICTORY in StrategicVictoryType
MoraleVictory = 2, -- SVT_MORALE_VICTORY in StrategicVictoryType
NoVictoryAIReady = 3, -- SVT_NONE_AI_CLEAR_TO_RUN in StrategicVictoryType
AlliedMorale = 12000, -- Some big number until value is actually received
PreviousAlliedMorale = 12000,
GermanMorale = 12000, -- Some big number until value is actually received
PreviousGermanMorale = 12000,
AlliedHQRegion = 1, --Paris region ID
AlliedHQCaptured = false,
AlliedCapturedTurns = 0,
GermanHQRegion = 31, --Kreuznach region ID
GermanHQCaptured = false,
GermanCapturedTurns = 0,
CapturedTurnsToWin = 1, -- How long should an HQ be captured in order to win the game
GameOverManGameOver = false,
GameRound = 1,
NationalWillDrainStart = 49, -- Starting this round, each player will lose national will each round. Should be 12/1918
NationalWillDrain = 1, -- How much national will to lose each round
HardEndGameRound = 800, -- Game ends when this round is reached. Should be 12/1919
NationalWillVictoryDeclined = false --
}


and it should work

3. Open DATA\SCRIPTS\LUAVERSIONS\CURRENT\LUA\MAPSCRIPTS\FAR_20X22_MAP_03.LUA

And edit the first instance to e g
MapData = {
ShowInstanceNameTimer = true, -- Will display the Instance name in the Daylight Timer if true Used for debug mostly.
CurrentModeStringCheck = nil, -- Will be set to either Campaign or Skirmish
MainTimerValue = 1200, -- Choose a Defaul Value for Campaign (1200 = 20:00) :: In Skirmish int is updated with Time Slider value (See 'Start()' Below)

-- NOTE: Timer Value is modified based on difficulty for Campaign ONLY:
-- Value is added to above based on difficulty (0 Based system: 0 = Recruit, 1 = Trainee, 2 = Soldier, 3 = Vetern, 4 = Elite)
Extra_MainTimerValue_0 = 900, -- + 15:00 = 35:00
Extra_MainTimerValue_1 = 600, -- + 10:00 = 30:00
Extra_MainTimerValue_2 = 600, -- + 10:00 = 30:00
Extra_MainTimerValue_3 = 600, -- + 10:00 = 30:00
Extra_MainTimerValue_4 = 600, -- + 10:00 = 30:00

SideAInfo = {},
SideBInfo = {},
EnvironInfo = {}, -- the Environment Player has the SpawnPoint Objects
CurrentPhase = "PHASE_01",
HQVictoryOnly = false, -- True == Taking A Command Trench ends the Timer :: False == HOLDING ALL Control Points ends the match
ScrDefForceName = 0,


In this example all but the easiest difficulty have 30 min timer, easiest has 35 minutes.


4. Open DATA\XML\OBJECTS\STRATEGIC_OBJECTS\STRATEGIC_STRUCTURE_OBJECTS.XML
In the file you can look for the key words "supply" and price

4.1 For editing prices of structures look for these bits (100 is my values ofc)
<AttributeDirectoryComponent>
<DynamicBaseValues>
<Entry>
<Key>StrategicPrice</Key>
<Value>
<OverrideValue>100</OverrideValue>
</Value>
</Entry>
</DynamicBaseValues>
</AttributeDirectoryComponent>

4.2 for supply values of air field 3 (e g) look for supply and find the corresponding paragraph like this
<StrategicStructureComponent>
<Category> Airfield </Category>
<Level> 3 </Level>
<RegionSupplyCapModifier> 0 </RegionSupplyCapModifier> <!-- If modify this, also modify tooltip text in Master_Text_Faraday.csv -->
<CorpsRegionSupplyCapModifierAircraft> 100 </CorpsRegionSupplyCapModifierAircraft> <!-- Pat/Design TBD -->
<RequiresTechTreeUnlock> true </RequiresTechTreeUnlock>
<TurnsToBuild> 0 </TurnsToBuild> <!-- 0 for instant, 1+ for following turn(s)/round(s) -->
<UpgradesTo> </UpgradesTo>
<ReplenishmentCostModifierAircraft> -45 </ReplenishmentCostModifierAircraft>
<AttachedGUIIconIndex>0</AttachedGUIIconIndex>
</StrategicStructureComponent>

5. For money per turn (gets applied after researching the tech in the game)
Look in
DATA\XML\OBJECTS\STRATEGIC\STRATEGIC_TECH_TREE_OBJECTS.XML
for this e g for the first money tech. I edited my value from 1200 to 1400

<ObjectTypeClass Name="TECH_NODE_Taxation_And_Bonds_1" Classification="TechTreeNode">
<EncyclopediaComponent>
<ObjectNameTextID> TEXT_TECH_TREE_NODE_TAXATION_AND_BONDS_1_NAME </ObjectNameTextID>
<ObjectDescriptionTextID> TEXT_TECH_TREE_NODE_TAXATION_AND_BONDS_1_DESC </ObjectDescriptionTextID>
<DefaultIcons>
<SmallIconName> </SmallIconName>
</DefaultIcons>
</EncyclopediaComponent>
<TechTreeNodeComponent>
<Tier> 1 </Tier>
<MaxTiers> 1 </MaxTiers>
<Branch> Logistics </Branch>
<TechCategory> TechCategoryStat </TechCategory>
<StartsUnlocked> false </StartsUnlocked>
<UnlockPointCost> 1 </UnlockPointCost>
<GUIComponentName> Button_Scene_Logistics_Tree_02 </GUIComponentName>
<IconName> TECH_NODE_Taxation_And_Bonds_1.tga </IconName>
<IconNamePurchased> OWNED_TECH_NODE_Taxation_And_Bonds_1.tga </IconNamePurchased>
<FactionBuildableTypesUnlocked>
</FactionBuildableTypesUnlocked>
<AppliedPlayerStates>
<entry>TECH_LOG_TaxationBonds_1</entry>
</AppliedPlayerStates>

<SetPlayerAttributes>
<entry>
<attribute> StrategicResourcesPerTurn </attribute>
<modifier_value> 1400 </modifier_value>
</entry>
</SetPlayerAttributes>

<GUIPreviousLinkNames>
<entry> OnConnector_Logistics_TechArrow_00_C </entry>
</GUIPreviousLinkNames>
<NextNodes>
<entry> TECH_NODE_Sourced_Materials_1 </entry>
<entry> TECH_NODE_Taxation_And_Bonds_2 </entry>
</NextNodes>
<GUINextLinkNames>
<entry> Connector_Logistics_TechArrow_02_A </entry>
<entry> Connector_Logistics_TechArrow_02_B </entry>
</GUINextLinkNames>
</TechTreeNodeComponent>
<AudioComponent>
<SFXMap>
<entry>
<key> On_Create </key> <value> </value>
</entry>
</SFXMap>
</AudioComponent>
</ObjectTypeClass>

In the tech document you can give the money modifier to other techs. Some mods apply to your current save file, i found out however that if you already researched all 3 money techs any potential edited values you inserted afterwards wont apply. You could as ive said edit the money modifier into a different tech thats not yet researched though.

Disclaimer:
Each of these files gets extracted from config.meg. Config.meg does not get changed. We insert the files into shaders.meg and rename/name them there identical to the original files!
If you can explain how to change the AI behaviour (size of assault, how and when it ceasefires or surrenders) write a reply. Also AI theatre limit for batallions.
Last edited by LMS Deathsure; May 17, 2023 @ 12:21pm
< >
Showing 1-1 of 1 comments
LMS Deathsure May 18, 2023 @ 4:58am 
Would be nice to find out where to modify the sight range of observation balloons (including the upgrade tech).
< >
Showing 1-1 of 1 comments
Per page: 1530 50

Date Posted: May 17, 2023 @ 11:48am
Posts: 1