Any help appreciated

jbxx

Chieftain
Joined
Aug 26, 2016
Messages
67
Location
England
I am not a Techie, but looking to have some Civ 6 fun! I would like to try and play around with unit abilities so would appreciate any help from you guys. For example adding +1 range to redcoats, battleships and missile cruisers. Is this just a matter of finding the relevant file?
My pet request would be a mod to improve the sea dog - so that (to the rest of the world) it is virtually invisible and having no flag.
Not sure if this a major task - or something simple. Any advice appreciated.
 
Last edited:
Hello!

You can either create a small mod (for this you will need a unique GUID you can create online as well as the template for your .modinfo file, which you can find in one of the mod subforums) which is the preferred, "clean" method that is also suitable for multiplayer, or - if you just want to try around a bit to get the hang of it - you can just edit the core game files. You can reset these files anytime you want using Steam's repair option, so there can't go anything wrong.

In any case, the info you are looking for can be found here:

Steam\steamapps\common\Sid Meier's Civilization VI\Base\Assets\Gameplay\Data\Units.xml

Open this file with any text editor, press Ctrl+F, search for <Units> and you should see something like this:

Code:
    <Units>
        <Row UnitType="UNIT_SETTLER" BaseMoves="2" Cost="80" AdvisorType="ADVISOR_GENERIC" BaseSightRange="3" ZoneOfControl="false" Domain="DOMAIN_LAND" FormationClass="FORMATION_CLASS_CIVILIAN" FoundCity="true" PopulationCost="1" PrereqPopulation="2" Name="LOC_UNIT_SETTLER_NAME" Description="LOC_UNIT_SETTLER_DESCRIPTION" CanCapture="False" CostProgressionModel="COST_PROGRESSION_PREVIOUS_COPIES" CostProgressionParam1="20" PurchaseYield="YIELD_GOLD" PseudoYieldType="PSEUDOYIELD_UNIT_SETTLER"/>
        <Row UnitType="UNIT_BUILDER" BaseMoves="2" Cost="50" AdvisorType="ADVISOR_GENERIC" BaseSightRange="2" ZoneOfControl="false" Domain="DOMAIN_LAND" FormationClass="FORMATION_CLASS_CIVILIAN" Name="LOC_UNIT_BUILDER_NAME" Description="LOC_UNIT_BUILDER_DESCRIPTION" CanCapture="False" CostProgressionModel="COST_PROGRESSION_PREVIOUS_COPIES" CostProgressionParam1="4" PurchaseYield="YIELD_GOLD" BuildCharges="3"/>
....

Here you can find all the units of the basegame and their basic attributes, most of it should be pretty self-explanatory.
When you navigate to

Code:
        <Row UnitType="UNIT_BATTLESHIP" BaseMoves="5" Cost="430" AdvisorType="ADVISOR_CONQUEST" BaseSightRange="2" ZoneOfControl="true" Domain="DOMAIN_SEA" FormationClass="FORMATION_CLASS_NAVAL" Name="LOC_UNIT_BATTLESHIP_NAME" Description="LOC_UNIT_BATTLESHIP_DESCRIPTION" PurchaseYield="YIELD_GOLD" PseudoYieldType="PSEUDOYIELD_UNIT_NAVAL_COMBAT" PromotionClass="PROMOTION_CLASS_NAVAL_RANGED" Maintenance="6" Combat="60" RangedCombat="70" Range="3" PrereqTech="TECH_STEEL" StrategicResource="RESOURCE_COAL" AntiAirCombat="65"/>

for example, you can see Range="3"

Now your options are:

a) Editing the core game files: Just change that value to 4 or whatever you need, in case you want to shoot the moon or something. Save and restart the game.
b) Creating a mod, using XML: add the following to your XML-file:

Code:
<GameInfo>

    <Units>
 
    <Update>
      <Where UnitType="UNIT_BATTLESHIP"/>
      <Set Range="4"/>
    </Update>
 
 
        <Update>
            <Where UnitType="UNIT_MISSILE_CRUISER"/>
            <Set Range="4"/>
        </Update>
     
  </Units>
 
</GameInfo>

c) Creating a mod, using SQL: add the following to your SQL-file:

Code:
UPDATE Units SET Range = 4 Where UnitType = "UNIT_BATTLESHIP";
UPDATE Units SET Range = 4 Where UnitType = "UNIT_MISSILE_CRUISER";

Well, that's the first step. :)
 
Many thanks Lynnes. As i am a newbie and not sure about creating a mod or using SQL, I have kept it simple and just edited units in the core game file.
Hopefully this will work for me.
 
Many thanks Lynnes. As i am a newbie and not sure about creating a mod or using SQL, I have kept it simple and just edited units in the core game file.
Hopefully this will work for me.

Good luck! :) Just keep in mind that when editing the core game files, your changes will be reset when they release a patch, so you'll have to do it again. But since there aren't so many patches for Civ, that should be doable.
Also don't just backup the Units.xml and copy it back to its location after the patch, as this would also annul the tweaks of the patch. That's all I think!
 
Be aware that the Redcoat unit is Melee unit not a Ranged unit. The Ranged equivalent around the same point in the Tech Tree would be the Field Cannon. Even though Redcoats used Muskets this is actually pretty much accurate as Musket fire has very little accuracy unless reasonably close.

As for the Seadog. You want to be looking at the core Units.xml file. Under you installation directory this is found in the Base\Assets\Gameplay\Data\ folder.
If you do a search using say Notepad++ for SEADOG it has a number of entries. The important one is the following

Code:
<Row Type="UNIT_ENGLISH_SEADOG" Tag="CLASS_STEALTH"/>

However this class is also used by the German U-Boat unit, Privateer, Spy etc...

The actual definition of CLASS_STEALTH is in the UnitAbilities.xml file and it gets a lot more complicated from that point on involving abilities and modifiers. There is also another side to stealth which is the ability to see stealth units.

It all eventually boils down to
Code:
    <Row>
            <ModifierId>UNIT_HIDDEN_VISIBILITY</ModifierId>
            <Name>Hidden</Name>
            <Value>true</Value>
        </Row>
        <Row>
            <ModifierId>UNIT_SEE_HIDDEN</ModifierId>
            <Name>SeeHidden</Name>
            <Value>true</Value>
        </Row>

The Hidden and SeeHidden look like they are hardcoded. You would need something like a SuperHidden attribute but how to hook that into the game is beyond me.
 
Back
Top Bottom