...You can change the AI names in the English.str file but that will be a global change...
You don't need to edit the English.str file to accompish that. Say you want a militia on your map to have a certain name. All you have to do is define an additional player, name them what you want, and so long as isNormalPlayer, isRaidingPlayer, and isInsurgentPlayer are all set to FALSE, the player will act just like a normal militia. If you do that however, I don't think the OwnedByMilitia and OwnedByMilitiaWithChance calls will work for template. I've been using the Always condition and then setting the owner to whatever name I defined for the custom militia. However, I haven't tried using those conditional calls so I cloud be oncorrect on that point.
For Example:
player
designName "Smurf Militia"
inGameName "Smurf Militia"
overrideRaceName "Tech"
teamIndex -1
startingCredits 3000
startingMetal 800
startingCrystal 250
isNormalPlayer FALSE
isRaidingPlayer FALSE
isInsurgentPlayer FALSE
themeGroup "NPC"
themeIndex 2
pictureGroup "NPC"
pictureIndex 2
Question on a related note:
Can I rename the pirates using the method above? Could I define the following:
player
designName "Smurf Pirates"
inGameName "Smurf Pirates"
overrideRaceName "Pirate"
teamIndex -1
startingCredits 3000
startingMetal 800
startingCrystal 250
isNormalPlayer FALSE
isRaidingPlayer TRUE
isInsurgentPlayer FALSE
themeGroup "NPCSpecial"
themeIndex 2
pictureGroup "NPC"
pictureIndex 2
If I set up a pirate base on my map and assign this player as the owner, will this effectively rename the pirates?
I tested this today and it didn't result in active pirates. I set up a player as above then then assigned the pirate base world to the owner "Smuf Pirates". The pirates showed dead as soon as the map loaded.