• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.
That's your new card. But because you are using neither RemoveCard, AddEffectsToCard nor ReplaceEffectsForCard, you still have the old card with the old requirements. If you would have used ReplaceEffectsForCard correctly, it would have replaced the effects, but your tags would not have been used.
I'll give it a try. The example mod I was using was apparently also wrong. Didn't have the same effects as it was only game settings related though.
 
I'll give it a try. The example mod I was using was apparently also wrong. Didn't have the same effects as it was only game settings related though.
Which example mod was that? The example mods which I have seen don't use ReplaceEffectsForCard
 
Which example mod was that? The example mods which I have seen don't use ReplaceEffectsForCard
The very slow mod in the workshop. I couldn't find an example here using either 'ReplaceEffectsForCard' or 'RemoveCard'
 

Attachments

  • 1728083264046.png
    1728083264046.png
    2,7 MB · Views: 0
Last edited:
Is there any guide to mod localization?
I don't know one, but the strings section of the top post shows the basics for the english localization of a mod. Just check which badkeys the game displays and put localisations for them in your file in the Strings folder. Or are you trying to localize your mod for other languages?
 
I don't know one, but the strings section of the top post shows the basics for the english localization of a mod. Just check which badkeys the game displays and put localisations for them in your file in the Strings folder. Or are you trying to localize your mod for other languages?
My language is not supported officially, so I want to make translation mode.
 
My language is not supported officially, so I want to make translation mode.
I don't think that there is a way to add a new option to the ingame language selection, but you can replace the english localisation with different text(maybe you can also replace a different language). For example putting the following in an .xml file in the Strings folder of an active mod
Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<GameStrings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Entry>
        <Key>Entity-UNIT_ARCHER-DisplayName</Key>
        <Value><![CDATA[Grotaclas Archer]]></Value>
    </Entry>
    <Entry>
        <Key>MainMenu-NewGameButton</Key>
        <Value><![CDATA[New Grotaclas Game]]></Value>
    </Entry>
    <Entry>
        <Key>MainMenu-QuickstartButton</Key>
        <Value><![CDATA[Grotaclas Quickstart]]></Value>
    </Entry>
</GameStrings>
changes the main menu to this (it starts with the default english text, but switches after less than a second):
1728225176764.png

And the changed archer appears ingame:
1728225329349.png


You can find the values for the <Key> elements if you extract the text assets from the unity asset files in the game installation.
 
  • 1Like
Reactions:
I don't think that there is a way to add a new option to the ingame language selection, but you can replace the english localisation with different text(maybe you can also replace a different language). For example putting the following in an .xml file in the Strings folder of an active mod
Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<GameStrings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Entry>
        <Key>Entity-UNIT_ARCHER-DisplayName</Key>
        <Value><![CDATA[Grotaclas Archer]]></Value>
    </Entry>
    <Entry>
        <Key>MainMenu-NewGameButton</Key>
        <Value><![CDATA[New Grotaclas Game]]></Value>
    </Entry>
    <Entry>
        <Key>MainMenu-QuickstartButton</Key>
        <Value><![CDATA[Grotaclas Quickstart]]></Value>
    </Entry>
</GameStrings>
changes the main menu to this (it starts with the default english text, but switches after less than a second):
View attachment 1198391
And the changed archer appears ingame:
View attachment 1198392

You can find the values for the <Key> elements if you extract the text assets from the unity asset files in the game installation.
So kind!!!
It's very helpful to understand how to make mod.
Thanks a lot!!
 
I'm struggling with why this isn't working in my mod. Trying to replace the WorkableConvertGoods in the Sawpit entity, tried many removes but can't get it to remove the default. Default is WorkableConvertGoods-Logs-3-Lumber and I'm replacing with another. Always gives sawpit 2 converted goods.
Code:
<EntityInfo>
         <ID>B_TILEIMP_SAWPIT_MOD</ID>
         <ExportTo>B_TILEIMP_SAWPIT</ExportTo> <!-- This is what unit is being updated -->
         <Import>IMPROVEMENT_BASE</Import>
         <MapScale>1.0</MapScale>
         <StartingData>
            <Data>ConstructionCost-ResImprovementPoints,17</Data>
            <Data>EntityPrefab,Improvements/B_TILEIMP_SAWPIT</Data>
               <Data>WorkableConvertGoods-Logs-3-Lumber,REMOVE</Data>
               <Data>WorkableConvertGoods-Logs-Lumber,REMOVE</Data>
               <Data>WorkableConvertGoods-Logs,REMOVE</Data>
               <Data>WorkableConvertGoods-Lumber,REMOVE</Data>
               <Data>PopulationCost,REMOVE</Data>
            <Data>WorkableConvertGoods-Logs-2-Lumber,2</Data>
            <Data>WorkableResDomainEngineering,1</Data>
            <Data>UpgradeLine-Sawmill,1</Data>
            <Data>ImprovementSort,710</Data>
            <Data>AIBuildWeight,2</Data>
            <Data>LumberTownBonusValue,1</Data>
         </StartingData>
         <Tags>
            <Tag>LumberTownBonus</Tag>
            <Tag>BuildRequirementTag-OpenTerrain</Tag>
            <Tag>IgnoreTerrainWorkerCode</Tag>
            <Tag>ImprovementCategory-Woodwork</Tag>
            <Tag>AIHint-NaturalistDontBuild</Tag>
         </Tags>
      </EntityInfo>
 
Always gives sawpit 2 converted goods.
What do you mean? Your code has <Data>WorkableConvertGoods-Logs-2-Lumber,2</Data> which allows the sawpit to produce 2 lumber from 2 logs and this works for me:
1728379110407.png

But I think you need to start a new game to see this change. And you only need your first remove line.
 
What do you mean? Your code has <Data>WorkableConvertGoods-Logs-2-Lumber,2</Data> which allows the sawpit to produce 2 lumber from 2 logs and this works for me:
View attachment 1199135
But I think you need to start a new game to see this change. And you only need your first remove line.
It's working now, I think I hadn't restarted the game. I don't think the mod refresh in game works very well. I had both conversion icons in your screen above, one for 3 logs, one for 2 before.
 
I don't think the mod refresh in game works very well.
Have you tried to use the mod refresh and then start a new campaign without restarting millennia? AFAIK it is only supposed to avoid restarting millennia, but you still have to start a new campaign if you change something which is stored in the save game. And it seems that most if not all of the XML is stored in the save
 
Have you tried to use the mod refresh and then start a new campaign without restarting millennia? AFAIK it is only supposed to avoid restarting millennia, but you still have to start a new campaign if you change something which is stored in the save game. And it seems that most if not all of the XML is stored in the save
Yes, started a new game every time I refreshed the mod. Though I honestly don't remember every step I took. Just my luck I guess. Glad it's working now either way.
 
I would really like to see more possible BuildRequirementTag options. Combining hill with open terrain requirement tags doesn't seem to work for allowing hills and open terrain. Seems to be exclusive.
 
I would really like to see more possible BuildRequirementTag options. Combining hill with open terrain requirement tags doesn't seem to work for allowing hills and open terrain. Seems to be exclusive.
That should be possible. The B_TILEIMP_WINDFARM does it:
Code:
      <Tags>
         <Tag>IgnoreTerrainWorkerCode</Tag>
         <Tag>BuildRequirementTag-OpenTerrain</Tag>
         <Tag>BuildRequirementTag-Hills</Tag>
         <Tag>ImprovementCategory-Power</Tag>
         <Tag>NoWorkerAssignmentOnCreation</Tag>
      </Tags>
 
Question: How would I go about changing things like gamespeed and/or the date that appears? Not as in setting it to slow speed or just cranking down the time, but more nuanced stuff?

I'd quite like to make a mod that extends how long it takes to research but not how long it takes to do things like claim territory or build units, similar to that Historic speed mod for Civ. Barring that, or possibly in addition to it, I think it'd be cool to switch the real-world calander for a fake, novel one, so that you don't get weird stuff like the Age of Enlightenment happening in 2101 AD and such.

I'm totally new to XML though and the guide doesn't say anything about these sorts of changes.


Edit: I'm also working on a couple custom nations. I got one "finished" and it shows up in the mod listing, but it DOESN'T show up when I go to start a new game and select a nation. ...Why? I don't know why or even how to tell what's stopping it.
 
Last edited:
Edit: I'm also working on a couple custom nations. I got one "finished" and it shows up in the mod listing, but it DOESN'T show up when I go to start a new game and select a nation. ...Why? I don't know why or even how to tell what's stopping it.
just to be clear, does your mod have the custom nation xml file?

it looks like this


Code:
<ConfigID>Maya</ConfigID>
  <PlayerType>PT_Human</PlayerType>
  <NationName>Maya</NationName>
  <CityNameCollection>MayaCityNames</CityNameCollection>
  <TownNameCollection>MayaTownNames</TownNameCollection>
  <Flag>flag_Maya</Flag>
 
OK, I found them in the XML example files

TECHAGE1-STARTUPBONUS-RANDOM
TECHAGE1-STARTUPBONUS-FASTER_NAVY
TECHAGE1-STARTUPBONUS-CHEAPER_SETTLERS
TECHAGE1-STARTUPBONUS-IMPROVED_LEADER_TACTICS
TECHAGE1-STARTUPBONUS-CHEAPER_RUSH_COST
TECHAGE1-STARTUPBONUS-STARTING_VASSAL_PROSPERITY
TECHAGE1-STARTUPBONUS-CAPITAL_FOOD
TECHAGE1-STARTUPBONUS-CAPITAL_PRODUCTION
TECHAGE1-STARTUPBONUS-CAPITAL_CULTURE
TECHAGE1-STARTUPBONUS-FASTER_NONCOMBATANTS
TECHAGE1-STARTUPBONUS-CAPITAL_UNREST
TECHAGE1-STARTUPBONUS-CAPITAL_INFLUENCE
TECHAGE1-STARTUPBONUS-CHEAPER_ENVOYS
TECHAGE1-STARTUPBONUS-FASTER_SCOUTS
TECHAGE1-STARTUPBONUS-CHEAPER_CLAIMTERRITORY
TECHAGE1-STARTUPBONUS-CHEAPER_PIONEER
TECHAGE1-STARTUPBONUS-WARFARE
TECHAGE1-STARTUPBONUS-IMPROVEMENT
TECHAGE1-STARTUPBONUS-WARBAND
TECHAGE1-STARTUPBONUS-SCOUT
TECHAGE1-STARTUPBONUS-ARCHER
TECHAGE1-STARTUPBONUS-ARTS
TECHAGE1-STARTUPBONUS-ENGINEERING
TECHAGE1-STARTUPBONUS-INNOVATION
TECHAGE1-STARTUPBONUS-CAPITAL_WEALTH
TECHAGE1-STARTUPBONUS-DIPLOMACY