• Our friends from AlphaCentauri2.info are in need of technical assistance. If you have experience with the LAMP stack and some hours to spare, please help them out and post here.

[BNW] Help in modding Civ BE Units in Civ V

With or without Aliens?


  • Total voters
    13
Tried to add the explorer and this happened:
Spoiler show :

Anybody got any tips?
Okay, I still haven't figured out what is happening with the explorer so I will probably disable it for the first version.
But in the meantime I completed all the units I have selected for the first release (no aliens yet, soz)
But here, take a look
Spoiler Check :
upload_2018-10-28_12-36-59.png
 
So, I made myself some techs, but the icons are not showing in any of them... Previously, on my first test, I only had one and it showed the icon I selected, but it was unlockable right at the start and glitched out the entire tech tree. Then I selected it to have prerequisites but now the icons don't show up. They Are VFS True and the .xml is updated on the database.
Spoiler :
upload_2018-10-28_15-33-37.png
upload_2018-10-28_15-34-0.png


Besides, now when I start a new game it doesn't let me build anything, I click on the choose production button and nothing happens, then click the city and still can't produce anything. Can somebody help me, please?
 
Last edited:
Did you enable logging and check your database.log?
 
Did you enable logging and check your database.log?
Thanks for the idea! I did, and here it is:
Spoiler show log :

[45044.992] columns StrategicViewType, TileType are not unique
[45044.992] While executing - 'INSERT INTO ArtDefine_StrategicView(StrategicViewType, TileType, Asset) VALUES(?,?,?)'
[45047.878] no such table: ContentPackage.LocalizedText
[45047.878] no such table: ContentPackage.LocalizedText
[45047.878] no such table: ContentPackage.LocalizedText
[45048.720] no such table: ContentPackage.LocalizedText
[45051.809] columns StrategicViewType, TileType are not unique
[45051.809] While executing - 'INSERT INTO ArtDefine_StrategicView(StrategicViewType, TileType, Asset) VALUES(?,?,?)'
[45052.683] no such table: ContentPackage.LocalizedText
[45052.683] no such table: ContentPackage.LocalizedText
[45052.683] no such table: ContentPackage.LocalizedText
[45056.458] Validating Foreign Key Constraints...
[45056.458] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45056.458] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45056.458] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45056.458] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45056.458] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45056.458] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45056.458] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45056.458] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45056.458] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45058.611] Failed Validation.
[45058.954]
-- SQLite Memory Statistics --
Memory Usage:
[Cur] [Max]
Malloc: 6231504 75793872
PageCache: 6 12
LookAside: 0 0
Scratch: 0 1

Static Buffer Overflows:
[TooLarge] [NoSpace]
PageCache: 5816496 62888952
Scratch: 0 0

Largest Allocations:
Malloc: 262144
PageCache: 1172
Scratch: 6640

Prepared Statements:
Current: 6
------------------------------
[45058.985] Validating Foreign Key Constraints...
[45058.985] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45058.985] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45058.985] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45058.985] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45058.985] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45058.985] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45058.985] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45058.985] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45058.985] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45061.122] Failed Validation.
[45061.497]
-- SQLite Memory Statistics --
Memory Usage:
[Cur] [Max]
Malloc: 6232680 75793872
PageCache: 6 12
LookAside: 0 0
Scratch: 0 1

Static Buffer Overflows:
[TooLarge] [NoSpace]
PageCache: 5817672 62888952
Scratch: 0 0

Largest Allocations:
Malloc: 262144
PageCache: 1172
Scratch: 6640

Prepared Statements:
Current: 6
------------------------------
[45097.845] no such table: Language_zh_CN
[45097.845] In Query - insert into Language_zh_CN('Tag', 'Text') values (?, ?);
[45097.845] In XMLSerializer while updating table Language_zh_CN from file Localization/IGE_ZH_CN.xml.
[45111.464] Validating Foreign Key Constraints...
[45111.464] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45111.464] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45111.464] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45111.464] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45111.464] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45111.464] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45111.464] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45111.464] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45111.464] Invalid Reference on ArtDefine_Landmarks.LayoutHandler - "SPECIAL" does not exist in ArtDefine_LandmarkTypes
[45112.353] Invalid Reference on Technologies.Help - "Help" does not exist in Language_en_US
[45112.353] Invalid Reference on Technologies.Help - "Harmony rewards a more defensive playstyle, which is completely in tune with the Transcendence victory. Fortify your lands, build up your technology until you construct the Mind Flower, and then defend it until you achieve the Cognitive link!" does not exist in Language_en_US
[45112.353] Invalid Reference on Technologies.Help - "With a wide range of LEV vehicle chassis to choose from, terrain isn't your problem while defending. It's recommended to settle down around a non-LEV accessible area that forces your enemy of either other affinity to lose their flanking bonus. Form a defensive line of Battlesuits, then pummel everything else to ashes with your ranged strength." does not exist in Language_en_US
[45112.353] Invalid Reference on Technologies.Help - "They develop sophisticated AI, make widespread use of autonomous and semi-autonomous robotic systems, and in general go the way of bionics, augmentation and merging human and machine. They employ this philosophy not only in their armies, but also in civilian matters, improving their everyday life with devices such as bionic organs, augmented limbs and interface links which allow them to merge their consciousness into an advanced collective intelligence." does not exist in Language_en_US
[45112.353] Invalid Reference on Technologies.Help - "Harmony rewards a more defensive playstyle, which is completely in tune with the Transcendence victory. Fortify your lands, build up your technology until you construct the Mind Flower, and then defend it until you achieve the Cognitive link!" does not exist in Language_en_US
[45112.353] Invalid Reference on Technologies.Help - "With a wide range of LEV vehicle chassis to choose from, terrain isn't your problem while defending. It's recommended to settle down around a non-LEV accessible area that forces your enemy of either other affinity to lose their flanking bonus. Form a defensive line of Battlesuits, then pummel everything else to ashes with your ranged strength." does not exist in Language_en_US
[45112.353] Invalid Reference on Technologies.Help - "They develop sophisticated AI, make widespread use of autonomous and semi-autonomous robotic systems, and in general go the way of bionics, augmentation and merging human and machine. They employ this philosophy not only in their armies, but also in civilian matters, improving their everyday life with devices such as bionic organs, augmented limbs and interface links which allow them to merge their consciousness into an advanced collective intelligence." does not exist in Language_en_US
[45112.353] Invalid Reference on Technologies.Help - "Harmony rewards a more defensive playstyle, which is completely in tune with the Transcendence victory. Fortify your lands, build up your technology until you construct the Mind Flower, and then defend it until you achieve the Cognitive link!" does not exist in Language_en_US
[45112.353] Invalid Reference on Technologies.Help - "With a wide range of LEV vehicle chassis to choose from, terrain isn't your problem while defending. It's recommended to settle down around a non-LEV accessible area that forces your enemy of either other affinity to lose their flanking bonus. Form a defensive line of Battlesuits, then pummel everything else to ashes with your ranged strength." does not exist in Language_en_US
[45112.353] Invalid Reference on Technologies.Help - "They develop sophisticated AI, make widespread use of autonomous and semi-autonomous robotic systems, and in general go the way of bionics, augmentation and merging human and machine. They employ this philosophy not only in their armies, but also in civilian matters, improving their everyday life with devices such as bionic organs, augmented limbs and interface links which allow them to merge their consciousness into an advanced collective intelligence." does not exist in Language_en_US
[45112.384]
[45112.384] Invalid Reference on Technologies.Civilopedia - "Instead of changing an alien world to suit them, the followers of this Affinity alter their own DNA with various traits from the local wildlife in order to be able to survive there. Ultimately, most Harmony purists seek to build a biotechnological construct which will, through the use of specialized nanites, eventually link all organisms with brains on the planet into one massive compound intelligence on par with a god. They are able to have alien creatures as units and specialize in rapid movement and the use of the planet's terrain and natural features in their military affairs." does not exist in Language_en_US
[45112.384] Invalid Reference on Technologies.Civilopedia - "The Purity affinity desires to preserve and improve upon mankind as they are and seeks to convert the planet into a state similar to Old Earth before the Great Mistake, regardless of what happens to the local wildlife. The ultimate goal of a Purity purist is to eventually resettle much of the Earth's diaspora onto the planet and save that world from overpopulation and resource depletion. Purity military forces concentrate mostly on mechanical exoskeletons, energy weapons, and amphibious attacks, thanks to their armadas of LEV vehicles." does not exist in Language_en_US
[45112.384] Invalid Reference on Technologies.Civilopedia - "They focus on improving technology and improving themselves with cybernetics in order to be able to survive the harshest of environments on the new planet regardless of outside conditions. The ultimate goal of pure Supremacists is to eventually ascend into a massive digital consciousness and return to Earth in order to free the humans there from their organic bodies and bring about a new age of digital and mechanical immortality." does not exist in Language_en_US
[45112.384] Invalid Reference on Technologies.Civilopedia - "Instead of changing an alien world to suit them, the followers of this Affinity alter their own DNA with various traits from the local wildlife in order to be able to survive there. Ultimately, most Harmony purists seek to build a biotechnological construct which will, through the use of specialized nanites, eventually link all organisms with brains on the planet into one massive compound intelligence on par with a god. They are able to have alien creatures as units and specialize in rapid movement and the use of the planet's terrain and natural features in their military affairs." does not exist in Language_en_US
[45112.384] Invalid Reference on Technologies.Civilopedia - "The Purity affinity desires to preserve and improve upon mankind as they are and seeks to convert the planet into a state similar to Old Earth before the Great Mistake, regardless of what happens to the local wildlife. The ultimate goal of a Purity purist is to eventually resettle much of the Earth's diaspora onto the planet and save that world from overpopulation and resource depletion. Purity military forces concentrate mostly on mechanical exoskeletons, energy weapons, and amphibious attacks, thanks to their armadas of LEV vehicles." does not exist in Language_en_US
[45112.384] Invalid Reference on Technologies.Civilopedia - "They focus on improving technology and improving themselves with cybernetics in order to be able to survive the harshest of environments on the new planet regardless of outside conditions. The ultimate goal of pure Supremacists is to eventually ascend into a massive digital consciousness and return to Earth in order to free the humans there from their organic bodies and bring about a new age of digital and mechanical immortality." does not exist in Language_en_US
[45112.384] Invalid Reference on Technologies.Civilopedia - "Instead of changing an alien world to suit them, the followers of this Affinity alter their own DNA with various traits from the local wildlife in order to be able to survive there. Ultimately, most Harmony purists seek to build a biotechnological construct which will, through the use of specialized nanites, eventually link all organisms with brains on the planet into one massive compound intelligence on par with a god. They are able to have alien creatures as units and specialize in rapid movement and the use of the planet's terrain and natural features in their military affairs." does not exist in Language_en_US
[45112.384] Invalid Reference on Technologies.Civilopedia - "The Purity affinity desires to preserve and improve upon mankind as they are and seeks to convert the planet into a state similar to Old Earth before the Great Mistake, regardless of what happens to the local wildlife. The ultimate goal of a Purity purist is to eventually resettle much of the Earth's diaspora onto the planet and save that world from overpopulation and resource depletion. Purity military forces concentrate mostly on mechanical exoskeletons, energy weapons, and amphibious attacks, thanks to their armadas of LEV vehicles." does not exist in Language_en_US
[45112.384] Invalid Reference on Technologies.Civilopedia - "They focus on improving technology and improving themselves with cybernetics in order to be able to survive the harshest of environments on the new planet regardless of outside conditions. The ultimate goal of pure Supremacists is to eventually ascend into a massive digital consciousness and return to Earth in order to free the humans there from their organic bodies and bring about a new age of digital and mechanical immortality." does not exist in Language_en_US
[45112.415] Invalid Reference on Technologies.Description - "Remilitarization" does not exist in Language_en_US
[45112.415] Invalid Reference on Technologies.Description - "Human Hamony - Tier 1" does not exist in Language_en_US
[45112.415] Invalid Reference on Technologies.Description - "Human Purity - Tier 1" does not exist in Language_en_US
[45112.415] Invalid Reference on Technologies.Description - "Human Supremacy - Tier 1" does not exist in Language_en_US
[45112.415] Invalid Reference on Technologies.Description - "Human Hamony - Tier 2" does not exist in Language_en_US
[45112.415] Invalid Reference on Technologies.Description - "Human Purity - Tier 2" does not exist in Language_en_US
[45112.415] Invalid Reference on Technologies.Description - "Human Supremacy - Tier 2" does not exist in Language_en_US
[45112.415] Invalid Reference on Technologies.Description - "Human Hamony - Tier 3" does not exist in Language_en_US
[45112.415] Invalid Reference on Technologies.Description - "Human Purity - Tier 3" does not exist in Language_en_US
[45112.415] Invalid Reference on Technologies.Description - "Human Supremacy - Tier 3" does not exist in Language_en_US
[45112.915] Invalid Reference on Units.PrereqTech - "TECH_PURITY" does not exist in Technologies
[45112.915] Invalid Reference on Units.Capture - "UNITCLASS_EXPLORERBE" does not exist in UnitClasses
[45112.915] Invalid Reference on Units.Class - "UNITCLASS_EXPLORERBE" does not exist in UnitClasses
[45113.055] Invalid Reference on Unit_AITypes.UnitAIType - "UNITAI_SEA" does not exist in UnitAIInfos
[45113.055] Invalid Reference on Unit_AITypes.UnitAIType - "UNITAI_MISSILE CARRIER_SEA" does not exist in UnitAIInfos
[45113.055] Invalid Reference on Unit_AITypes.UnitAIType - "UNITAI_SEA" does not exist in UnitAIInfos
[45113.055] Invalid Reference on Unit_AITypes.UnitAIType - "UNITAI_MISSILE CARRIER_SEA" does not exist in UnitAIInfos
[45113.055] Invalid Reference on Unit_AITypes.UnitAIType - "UNITAI_SEA" does not exist in UnitAIInfos
[45113.055] Invalid Reference on Unit_AITypes.UnitAIType - "UNITAI_MISSILE CARRIER_SEA" does not exist in UnitAIInfos
[45113.055] Invalid Reference on Unit_AITypes.UnitAIType - "UNITAI_SEA" does not exist in UnitAIInfos
[45113.055] Invalid Reference on Unit_AITypes.UnitAIType - "UNITAI_MISSILE CARRIER_SEA" does not exist in UnitAIInfos
[45113.055] Invalid Reference on Unit_AITypes.UnitAIType - "UNITAI_SEA" does not exist in UnitAIInfos
[45113.055] Invalid Reference on Unit_AITypes.UnitAIType - "UNITAI_MISSILE CARRIER_SEA" does not exist in UnitAIInfos
[45113.055] Invalid Reference on Unit_AITypes.UnitAIType - "UNITAI_SEA" does not exist in UnitAIInfos
[45113.055] Invalid Reference on Unit_AITypes.UnitAIType - "UNITAI_MISSILE CARRIER_SEA" does not exist in UnitAIInfos
[45113.055] Invalid Reference on Unit_AITypes.UnitAIType - "UNITAI_SEA" does not exist in UnitAIInfos
[45113.055] Invalid Reference on Unit_AITypes.UnitAIType - "UNITAI_MISSILE CARRIER_SEA" does not exist in UnitAIInfos
[45113.055] Invalid Reference on Unit_AITypes.UnitAIType - "UNITAI_SEA" does not exist in UnitAIInfos
[45113.055] Invalid Reference on Unit_AITypes.UnitAIType - "UNITAI_MISSILE CARRIER_SEA" does not exist in UnitAIInfos
[45113.055] Invalid Reference on Unit_ClassUpgrades.UnitClassType - "UNITCLASS_EXPLORERBE" does not exist in UnitClasses
[45113.617] Failed Validation.
[45114.007]
-- SQLite Memory Statistics --
Memory Usage:
[Cur] [Max]
Malloc: 7952024 75793872
PageCache: 7 13
LookAside: 0 0
Scratch: 0 1

Static Buffer Overflows:
[TooLarge] [NoSpace]
PageCache: 7498176 62888952
Scratch: 0 0

Largest Allocations:
Malloc: 262144
PageCache: 1172
Scratch: 6640

Prepared Statements:
Current: 12
------------------------------



Thanks a Bunch!
Alright so the explorerclass and UnitAI things were lack of attention from my side, and I already fixed them(thought it wasn't giving me any problems anyway), but there was a unit with a missing tech and I think that was the key. Now I cannot understand those TechDescription errors, since I set them up according to the tutorials I have found in the forums (I guess I did).
 
Last edited:
I suspect that you entered the text directly into the <Civilopedia>, <Help>, and <Description> columns rather than a text-key.
E.g.
Instead of this:
Code:
<Technologies>
<Row>
            <Type>TECH_HARMONY_TIER_1</Type>
            <Cost>20</Cost>
            <Description>Human Hamony - Tier 1</Description>
            <Civilopedia>Instead of changing an alien world to suit them, the followers of this Affinity alter their own DNA with various traits from the local wildlife in order to be able to survive there. Ultimately, most Harmony purists seek to build a biotechnological construct which will, through the use of specialized nanites, eventually link all organisms with brains on the planet into one massive compound intelligence on par with a god. They are able to have alien creatures as units and specialize in rapid movement and the use of the planet's terrain and natural features in their military affairs.</Civilopedia>
            <Help>Harmony rewards a more defensive playstyle, which is completely in tune with the Transcendence victory. Fortify your lands, build up your technology until you construct the Mind Flower, and then defend it until you achieve the Cognitive link!</Help>
            ...
        </Row>
...
</Technologies>
You would want this:
Code:
<Language_en_Us>
<Row Tag="TXT_KEY_TECH_HARMONY_TIER_1">
            <Text>Human Hamony - Tier 1</Text>
        </Row>
<Row Tag="TXT_KEY_TECH_HARMONY_TIER_1_HELP">
            <Text>Instead of changing an alien world to suit them, the followers of this Affinity alter their own DNA with various traits from the local wildlife in order to be able to survive there. Ultimately, most Harmony purists seek to build a biotechnological construct which will, through the use of specialized nanites, eventually link all organisms with brains on the planet into one massive compound intelligence on par with a god. They are able to have alien creatures as units and specialize in rapid movement and the use of the planet's terrain and natural features in their military affairs.</Text>
        </Row>
<Row Tag="TXT_KEY_TECH_HARMONY_TIER_1_PEDIA">
            <Text>Harmony rewards a more defensive playstyle, which is completely in tune with the Transcendence victory. Fortify your lands, build up your technology until you construct the Mind Flower, and then defend it until you achieve the Cognitive link!</Text>
        </Row>
</Language_en_Us>

<Technologies>
<Row>
            <Type>TECH_HARMONY_TIER_1</Type>
            <Cost>20</Cost>
            <Description>TXT_KEY_TECH_HARMONY_TIER_1</Description>
            <Civilopedia>TXT_KEY_TECH_HARMONY_TIER_1_PEDIA</Civilopedia>
            <Help>TXT_KEY_TECH_HARMONY_TIER_1_HELP</Help>
            ...
        </Row>
...
</Technologies>
(or the SQL-equivalent if you're using that)

Text-keys allow for translations into different locales.
E.g.
Code:
<Language_en_Us>
<Row Tag="TXT_KEY_TECH_HARMONY_TIER_1">
            <Text>Human Hamony - Tier 1</Text>
        </Row>
</Language_en_Us>

<Language_ru_ru>
<Row Tag="TXT_KEY_TECH_HARMONY_TIER_1">
            <Text>Unfortunately I don't speak Russian so assume this makes sense</Text>
        </Row>
</Language_ru_ru>
Since both entries have the same text-keys (in the locale-specific language table!), for English users the text "Human Hamony - Tier 1" shows up, while for Russian users the text "Unfortunately I don't speak Russian so assume this makes sense" shows up (depending on the current language settings of the user of course.)
Note that English is the default locale, so if a certain text-key does not exist in the user's current locale, the game will take it from the English one instead.
 
Last edited:
I suspect that you entered the text directly into the <Civilopedia>, <Help>, and <Description> columns rather than a text-key.
E.g.
Instead of this:
Code:
<Technologies>
<Row>
            <Type>TECH_HARMONY_TIER_1</Type>
            <Cost>20</Cost>
            <Description>Human Hamony - Tier 1</Description>
            <Civilopedia>Instead of changing an alien world to suit them, the followers of this Affinity alter their own DNA with various traits from the local wildlife in order to be able to survive there. Ultimately, most Harmony purists seek to build a biotechnological construct which will, through the use of specialized nanites, eventually link all organisms with brains on the planet into one massive compound intelligence on par with a god. They are able to have alien creatures as units and specialize in rapid movement and the use of the planet's terrain and natural features in their military affairs.</Civilopedia>
            <Help>Harmony rewards a more defensive playstyle, which is completely in tune with the Transcendence victory. Fortify your lands, build up your technology until you construct the Mind Flower, and then defend it until you achieve the Cognitive link!</Help>
            ...
        </Row>
...
</Technologies>
You would want this:
Code:
<Language_en_Us>
<Row Tag="TXT_KEY_TECH_HARMONY_TIER_1">
            <Text>Human Hamony - Tier 1</Text>
        </Row>
<Row Tag="TXT_KEY_TECH_HARMONY_TIER_1_HELP">
            <Text>Instead of changing an alien world to suit them, the followers of this Affinity alter their own DNA with various traits from the local wildlife in order to be able to survive there. Ultimately, most Harmony purists seek to build a biotechnological construct which will, through the use of specialized nanites, eventually link all organisms with brains on the planet into one massive compound intelligence on par with a god. They are able to have alien creatures as units and specialize in rapid movement and the use of the planet's terrain and natural features in their military affairs.</Text>
        </Row>
<Row Tag="TXT_KEY_TECH_HARMONY_TIER_1_PEDIA">
            <Text>Harmony rewards a more defensive playstyle, which is completely in tune with the Transcendence victory. Fortify your lands, build up your technology until you construct the Mind Flower, and then defend it until you achieve the Cognitive link!</Text>
        </Row>
</Language_en_Us>

<Technologies>
<Row>
            <Type>TECH_HARMONY_TIER_1</Type>
            <Cost>20</Cost>
            <Description>TXT_KEY_TECH_HARMONY_TIER_1</Description>
            <Civilopedia>TXT_KEY_TECH_HARMONY_TIER_1_PEDIA</Civilopedia>
            <Help>TXT_KEY_TECH_HARMONY_TIER_1_HELP</Help>
            ...
        </Row>
...
</Technologies>
(or the SQL-equivalent if you're using that)

Text-keys allow for translations into different locales.
E.g.
Code:
<Language_en_Us>
<Row Tag="TXT_KEY_TECH_HARMONY_TIER_1">
            <Text>Human Hamony - Tier 1</Text>
        </Row>
</Language_en_Us>

<Language_ru_ru>
<Row Tag="TXT_KEY_TECH_HARMONY_TIER_1">
            <Text>Unfortunately I don't speak Russian so assume this makes sense</Text>
        </Row>
</Language_ru_ru>
Since both entries have the same text-keys (in the locale-specific language table!), for English users the text "Human Hamony - Tier 1" shows up, while for Russian users the text "Unfortunately I don't speak Russian so assume this makes sense" shows up (depending on the current language settings of the user of course.)
Note that English is the default locale, so if a certain text-key does not exist in the user's current locale, the game will take it from the English one instead.
OOOOOh, so that's why! Thanks! Yeah, I actually remembered changing that as i thought I would make no difference but now I see it. Okay so the only thing that i need to do now is to fix the tech Icons, which I still don't know how to but hey....
 
Alright so now I think I might be ready tor release the first-ever version on workshop (Going to do it tomorrow or later today perhaps, it's 17:42 as I'm writing this.) . Just finishing the Unit Balance. Ofc it's still FAAAR from finished but it has everything needed for a first public release in order to get some feedback on what to add. A lot of things still need working, but as I said before, it's the first-release and I plan on fixing them afterwards. Ofc, I won't forget those who helped me and, once again, thank you very much, guys, you will get a special thanks in the Credits!
 
I suspect that you entered the text directly into the <Civilopedia>, <Help>, and <Description> columns rather than a text-key.
OOOOOh, so that's why! Thanks! Yeah, I actually remembered changing that as i thought I would make no difference but now I see it.
Though it's best practice to use the localization TXT_KEY database, it should have worked with hardcoded values.
 
Alright so now I think I might be ready tor release the first-ever version on workshop (Going to do it tomorrow or later today perhaps, it's 17:42 as I'm writing this.) . Just finishing the Unit Balance. Ofc it's still FAAAR from finished but it has everything needed for a first public release in order to get some feedback on what to add. A lot of things still need working, but as I said before, it's the first-release and I plan on fixing them afterwards. Ofc, I won't forget those who helped me and, once again, thank you very much, guys, you will get a special thanks in the Credits!
Okay, so here it is. I figured out I should share this here to mark the end of the first chapter (the first stable release). Obviously there's still a lot of work to do so this isn't the end. YET.
 
Congrats for your first official release! It looks so amazing! the thing that comes up of my mind is that I am wondering if you plan to release a version of your mod that can be "compatible" with future worlds. I just tested your mod with future worlds, it seems like they can now both work with each other, but I am not sure how it goes eventually. Perhaps you can draw some ideas from future worlds when you work on your tech trees. I have absolutely zero knowledge about modding, but I think it would be awesome if you can do that. Thank you again for your notice! I am glad that you share this mod with us.
 
Congrats for your first official release! It looks so amazing! the thing that comes up of my mind is that I am wondering if you plan to release a version of your mod that can be "compatible" with future worlds. I just tested your mod with future worlds, it seems like they can now both work with each other, but I am not sure how it goes eventually. Perhaps you can draw some ideas from future worlds when you work on your tech trees. I have absolutely zero knowledge about modding, but I think it would be awesome if you can do that. Thank you again for your notice! I am glad that you share this mod with us.
Thank you! Don’t worry, I already have a future worlds compatible version in mind! Shouldn't be hard to do, just have to change the technologies into the mod's own. And, of course, making sure that the units are in the techs that have units with similar stats, so it stays balanced. Glad you liked the mod!
 
Okay, so I have a plan for the technologies, however I do not know how to do things like that.
My plan is to have one of the techs reduce all one player's production by 50% and the other one splits your population in 2/3.
However I do not know how to add specific effects to technologies. Is there even a way I can do this?
 
However I do not know how to add specific effects to technologies. Is there even a way I can do this?
Yes, but if it's not an effect in the database, you'd have to use Lua to make a new effect.

There's an apparently unused effect in the database, FeatureProductionModifier, which I thought could potentially be used to decrease the number of hammers you get from worked tiles. I'm not sure it's even hooked up properly in the game engine, though (some items in the database are carry-overs from Civ4 or were planned but never used and were never implemented). However, if it does work, it's a multiplier that only accepts integers. So you'd still need to use a little bit of Lua and the SQL technique I describe below.

Looking at the Lua API, I see a getter for player production, but no setters. I was thinking maybe you can loop through the player's cities and use something like city:SetProduction(city:GetProduction()*0.5), but if I'm not mistaken it looks like it applies to the hammers that are currently accrued for the current build. I can imagine an ugly hack possible to make that work, but I thought a better solution might be possible. Again, there is a getter but no setters for a global city ProductionModifier. There's different ones for types of builds, ChangeWonderProductionModifier, ChangeBuildingProductionModifier, ChangeMilitaryProductionModifier, ChangeSpaceProductionModifier, ChangeUnitCombatProductionModifier, and ChangeDomainProductionModifier. Some of these will likely stack with one another, so you need to get clear what each one does. There appear to be missing build types, e.g., civilian units. All that being said, as above the ProductionModifiers are multipliers, and only accept integers. The solution I can see is to do a global change of production requirements to halve everything that accepts one of these multipliers (actually this is relatively easy to do with SQL), and then apply the multiplier UNLESS your tech has been researched. It also means that to support other mods, you'd need a SQL trigger to halve production costs for the appropriate builds when they're added to the database.

As for the second effect, doing a one time culling of a bunch of citizens is easy by looping through the player's cities and doing a city:SetPopulation(city:GetPopulation()*0.67).
 
My plan is to have one of the techs reduce all one player's production by 50% ...
If this is intended to be a permaent effect as a % change of production, then this can be accomplished also by a dummy building in the capital added via lua or by individual dummy buildings added to each city via lua. Both methods have some logic issues in terms of the script required. This effect can also be achieved on a continuing % production modifier effect via a dummy policy added from an lua script --this is actually the simplest available method but one has to use care that one is not clogging the database with dummy policies. There is an issue with scenarios apparently where if the total number of policies registered in the database is greater than 256 then bad things start to happen.

If the effect is a one-shot on the accumulated city production toward "item X" when the tech is researched this can be done via lua as well, though it also requires a bit complicated script. Essentially, you have to "grab" the production qeue and all relevant values for all cities one at a time, destroy the production qeue and the accumulated production for each city in turn, and then re-build the production qeue for each city in the reverse order of the data you got from the "grab".
 
Last edited:
Yes, but if it's not an effect in the database, you'd have to use Lua to make a new effect.

There's an apparently unused effect in the database, FeatureProductionModifier, which I thought could potentially be used to decrease the number of hammers you get from worked tiles. I'm not sure it's even hooked up properly in the game engine, though (some items in the database are carry-overs from Civ4 or were planned but never used and were never implemented). However, if it does work, it's a multiplier that only accepts integers. So you'd still need to use a little bit of Lua and the SQL technique I describe below.

Looking at the Lua API, I see a getter for player production, but no setters. I was thinking maybe you can loop through the player's cities and use something like city:SetProduction(city:GetProduction()*0.5), but if I'm not mistaken it looks like it applies to the hammers that are currently accrued for the current build. I can imagine an ugly hack possible to make that work, but I thought a better solution might be possible. Again, there is a getter but no setters for a global city ProductionModifier. There's different ones for types of builds, ChangeWonderProductionModifier, ChangeBuildingProductionModifier, ChangeMilitaryProductionModifier, ChangeSpaceProductionModifier, ChangeUnitCombatProductionModifier, and ChangeDomainProductionModifier. Some of these will likely stack with one another, so you need to get clear what each one does. There appear to be missing build types, e.g., civilian units. All that being said, as above the ProductionModifiers are multipliers, and only accept integers. The solution I can see is to do a global change of production requirements to halve everything that accepts one of these multipliers (actually this is relatively easy to do with SQL), and then apply the multiplier UNLESS your tech has been researched. It also means that to support other mods, you'd need a SQL trigger to halve production costs for the appropriate builds when they're added to the database.

As for the second effect, doing a one time culling of a bunch of citizens is easy by looping through the player's cities and doing a city:SetPopulation(city:GetPopulation()*0.67).
If this is intended to be a permaent effect as a % change of production, then this can be accomplished also by a dummy building in the capital added via lua or by individual dummy buildings added to each city via lua. Both methods have some logic issues in terms of the script required. This effect can also be achieved on a continuing % production modifier effect via a dummy policy added from an lua script --this is actually the simplest available method but one has to use care that one is not clogging the database with dummy policies. There is an issue with scenarios apparently where if the total number of policies registered in the database is greater than 256 then bad things start to happen.

If the effect is a one-shot on the accumulated city production toward "item X" when the tech is researched this can be done via lua as well, though it also requires a bit complicated script. Essentially, you have to "grab" the production qeue and all relevant values for all cities one at a time, destroy the production qeue and the accumulated production for each city in turn, and then re-build the production qeue for each city in the reverse order of the data you got from the "grab".
Thank you! Been busy and only managed to check this thread today. Going to try it out!
Cheers
 
Okay so I really don't know how to program in LUA, so I don't even know where to start. It does look a bit like java, which I am somewhat used to, but I don't know what to do next.

Spoiler Here's something I almost certainly know isn't going to work. :

local BigMistakePenalty = GameInfoTypes.FEATURE_MARSH
local iPrereq1 = GameInfo.Technologies["TECH_BIGMISTAKE"].ID
local iPrereq2 = GameInfo.Technologies["TECH_REMILITARIZATION"].ID

function BigMistakePenalty(iPlayer)
local pPlayer = Players[iPlayer]
for pCity in pPlayer:Cities() do
if (pTeam:IsHasTech(iPrereq2)) then
city:SetPopulation(city:GetPopulation()*0.67)
end
end
Note:That marsh thing is just a placeholder because I do not know what to do there.
 
Last edited:
Haven't heard anything about this mod for a while, i am wondering if there is any progress will be placed in this week? I am actually very tempting to see how the compatible version of this mod to future worlds works in civ 5. Please make it happen! Thanks ahead.
 
Back
Top Bottom