JRandomNames Mod

Jeckel said:
Alright the basics are now done. Couple things...

1) I'm sure there is a small error or two, so if you find them please report them. :)

2) I need more naming engines. If you have an idea for a way to name units, cities, or even buildings, post them and I will see what I can do about integrating it.

3) The next upgrade I am working on for this mod is a better way to name the early era ships, so if you have a favorite ship name let me have it and I'll add it into the list.

4) Lastly, I am also working on a way to name units based on the city they were built at, example 1st Boston Worker or 8th Beijing Warrior. This was suggested by Jimdigriz in the ModComponent request thread.

Thats it for today. :)

EDIT:

I reread and relized I didn't really explain how the various Naming Engines are implemented.

In the various config ini files you are able to set which naming system is used per unit, per unit class, per unit combat, and you can also set a default naming engine per domin for each era. You can declare which era to start naming units and which era to stop naming units. You can set whether or not barbarians get unique names, whether humans get random name, and whether AI units get random names. In the spoiler below is the Mod Config.ini file. I hope this shows the versitility with which unit naming can be controlled. At the moment the only limitation is small number of Naming Engines the mod has, but this will be rectified as I get more naming system ideas. Currently 3 new Naming Engines are in the planning stages. :)

Spoiler JRandomNames Mod Config.ini :
[JRandomNames Mod]
; ###################################################################################
; ## ##
; ## This config.ini file has the main options allowing you to control ##
; ## what units get random names. These switches supercede all other options. ##
; ## ##
; ###################################################################################


; This option allows you to turn the JRamdomNames Mod on or off.
; True - This will activate the JRandom Names Mod.
; False - This will deactivate the JRandom Names Mod.
; Default = True
JRandom Names Mod Active = True



; This option turns barbarian random naming on and off.
; True - Barbarians get random names
; False - Barbarians do not get random names
; Default = True
Barbarian Units Receive Random Names = True



; This option turns the random naming of AI units on and off.
; True - AI units get random names
; False - AI units do not get random names
; Default = True
AI Units Receive Random Names = True



; This option turns the random naming of human units on and off.
; True - Human units get random names
; False - Human units do not get random names
; Default = True
Human Units Receive Random Names = True



; This option turns the random naming of land units on and off.
; True - Land units get random names
; False - Land units do not get random names
; Default = True
Land Units Receive Random Names = True



; This option turns the random naming of sea units on and off.
; True - Sea units get random names
; False - Sea units do not get random names
; Default = True
Sea Units Receive Random Names = True



; This option turns the random naming of air units on and off.
; True - Air units get random names
; False - Air units do not get random names
; Default = True
Air Units Receive Random Names = True



; This option allows you to use random naming for Great People or to
; use the normal Great Person naming.
; True - Great People get random names
; False - Great People get normal Civ4 Great People names
; Default = False
Great People Reveive Random Names = False



; This option sets the first era units can receive random names when they are created.
; Units will receive random names in this era but not in eras before this one.
; Default = ERA_ANCIENT
First Random Naming Era = ERA_ANCIENT



; This option sets the last era units can receive random names when they are created.
; Units can receive random names in this era but not in eras after this one.
; Default = ERA_MODERN
Last Random Naming Era = ERA_MODERN



Spoiler JRandomNames Era Defaults Config.ini :

; ###################################################################################################
; ## ##
; ## This config.ini file lets you set the default Naming Engine used in each Era. In each Era you ##
; ## are allowed to define a different Naming Engine for each of the three Unit Domains, Land, ##
; ## Sea, and Air. ##
; ## ##
; ###################################################################################################

; Defualt Naming Engines

; These sections, unless otherwise stated, are set to one of the following valid Naming Engines.
; The sample Naming Engines are as follows (see 'Valid_Naming_Engines_Readme.txt'):
;
; -No Random Name
; -Rathelon Generic Military Naming
; -TheLopez Random Names
; -TheLopez Random Civilization Names
; -Nexus Unit Count Names
; -Nexus Army Names
; -Nexus Navy Names
; -Nexus Air Names



; Below you can set default engines for each domain per era. Below you will find the standard eras
; in inside brackets, example [ERA_ANCIENT] or [ERA_MODERN]. Right below the bracketed era header
; will be three options, one for land units, one for sea units, and one for air units. Each of these
; three options can be set to one of the naming engines list above. If you wish for a domain units to
; not have a new name then set it equal to the first value above, ie No Random Name.

; Note:
; This is done by the Player's current era when the unit is created, not by any prereqs of the unit itself.

; Note:
; Modders, if you add new eras to your game, you can just add them into the list below and they should
; work just find.

[ERA_ANCIENT]

; This is for land units.
; Default = TheLopez Random Names
Default Land Naming = TheLopez Random Names

; This is for sea units.
; Default = Nexus Unit Count Names
Default Sea Naming = Nexus Unit Count Names

; This is for air units.
; Default = Nexus Air Names
Default Air Naming = Nexus Air Names


[ERA_CLASSICAL]

; This is for land units.
; Default = TheLopez Random Civilization Names
Default Land Naming = TheLopez Random Civilization Names

; This is for sea units.
; Default = Nexus Unit Count Names
Default Sea Naming = Nexus Unit Count Names

; This is for air units.
; Default = Nexus Air Names
Default Air Naming = Nexus Air Names


[ERA_MEDIEVAL]

; This is for land units.
; Default = TheLopez Random Civilization Names
Default Land Naming = TheLopez Random Civilization Names

; This is for sea units.
; Default = Nexus Unit Count Names
Default Sea Naming = Nexus Unit Count Names

; This is for air units.
; Default = Nexus Air Names
Default Air Naming = Nexus Air Names


[ERA_RENAISSANCE]

; This is for land units.
; Default = TheLopez Random Civilization Names
Default Land Naming = TheLopez Random Civilization Names

; This is for sea units.
; Default = Nexus Unit Count Names
Default Sea Naming = Nexus Unit Count Names

; This is for air units.
; Default = Nexus Air Names
Default Air Naming = Nexus Air Names


[ERA_INDUSTRIAL]

; This is for land units.
; Default = Rathelon Generic Military Naming
Default Land Naming = Rathelon Generic Military Naming

; This is for sea units.
; Default = Nexus Navy Names
Default Sea Naming = Nexus Navy Names

; This is for air units.
; Default = Nexus Air Names
Default Air Naming = Nexus Air Names


[ERA_MODERN]

; This is for land units.
; Default = Rathelon Generic Military Naming
Default Land Naming = Rathelon Generic Military Naming

; This is for sea units.
; Default = Nexus Navy Names
Default Sea Naming = Nexus Navy Names

; This is for air units.
; Default = Nexus Air Names
Default Air Naming = Nexus Air Names


[ERA_FUTURE]

; This is for land units.
; Default = Nexus Army Names
Default Land Naming = Nexus Army Names

; This is for sea units.
; Default = Nexus Navy Names
Default Sea Naming = Nexus Navy Names

; This is for air units.
; Default = Nexus Air Names
Default Air Naming = Nexus Air Names



Spoiler JRandomNames Advanced Config.ini :

; ########################################################################################
; ## ##
; ## This config.ini file lets you have more specific control over what units use which ##
; ## Naming Engine. ##
; ## ##
; ########################################################################################





; The following sections allow finner control over the engine used to name individual unit types.
; There are three types of data that can be entered below.
; The first type of data is a unit type, example UNIT_WARRIOR or UNIT_EXPLORER.
; The second type of data is a unit class, example UNITCLASS_SETTLER or UNITCLASS_WORKER.
; The third type of data is a unit combat, example UNITCOMBAT_GUN or UNITCOMBAT_MELEE

; You then set one of the 3 types of data equal to a valid Naming Engine and you are good to go.
; The Naming Engines declared here override the defaults set above for the whole game.
; The computation order is:
; -Unit Type
; -Unit Class
; -Unit Combat
; -Default Era
; The code starts with Unit Type and only moves to the next declared engine if no name is returned
; on the current one.

; The sample Naming Engines are as follows (see 'Valid_Naming_Engines_Readme.txt'):
;
; -No Random Name
; -sen2000 Roman Numeral Names
; -Rathelon Generic Military Naming
; -TheLopez Random Names
; -TheLopez Random Civilization Names
; -Nexus Unit Count Names
; -Nexus Army Names
; -Nexus Navy Names
; -Nexus Air Names

[JRandomNames Advanced]

; Enter Unit Types and their Naming Engine.
; Examples:
UNIT_WARRIOR = Rathelon Generic Military Naming
; UNIT_SPEARMAN = No Random Name
; UNIT_AXEMAN = Nexus Army Names

UNIT_TANK = Nexus Army Names
UNIT_DESTROYER = Nexus Navy Names
UNIT_FIGHTER = Nexus Air Names

UNIT_SETTLER = TheLopez Random Names
UNIT_WORKER = TheLopez Random Civilization Names
UNIT_SCOUT = Nexus Unit Count Names

; Enter Unit Classes and their Naming Engine.
; Example:
; UNITCLASS_EXPLORER = sen2000 Roman Numeral Names


; Enter Unit Combats and their Naming Engine.
; Example:
; UNITCOMBAT_GUN = Nexus Unit Count Names



Below are spoilers for each of the Naming Engines. The contain screenshots and a brief explanation.


Spoiler TheLopez Random Names Engine :
TheLopez Random Names

This Naming Engine creates random names. These names tend to have a "Northern Barbarian" sounding names.



Spoiler TheLopez Random Civilization Names Engine :
TheLopez Random Civilization Names

This Naming Engine also creates random names. These names are based on your civilization.
The following example names are for the American Civilization.



Spoiler Rathelon Generic Military Naming Engine :
Rathelon Generic Military Naming

This Naming Engine creates random names. These names are in the form of military designations, but are random and generic.



Spoiler Nexus Unit Count Names Engine :
Nexus Unit Count Names

This is a simple Naming Engine that names units based on the number of that type of unit that has been built.



Spoiler Nexus Army Names Engine :
Nexus Army Names

These names are non random.



Spoiler Nexus Navy Names Engine :
Nexus Navy Names

These names are non random.



Spoiler Nexus Air Names Engine :
Nexus Air Names

These names are non random.

Im sure someone else suggested the 1st Beijing Warrior etc etc thing before me but thats definitely what I would like! Im not interested in individual names etc...just a numeric list of units from whichever city they came from would be great - I'd love to be able to tell that a certain upgraded unit is one of my very first units in the game etc....and I think it would make you 'connect' with your veteran units more. :)
 
Jimdigriz said:
Im sure someone else suggested the 1st Beijing Warrior etc etc thing before me but thats definitely what I would like! Im not interested in individual names etc...just a numeric list of units from whichever city they came from would be great - I'd love to be able to tell that a certain upgraded unit is one of my very first units in the game etc....and I think it would make you 'connect' with your veteran units more. :)

I'm not sure if he put it in the new version or not, but as I mentioned, this feature is buried in my mod.
 
Jimdigriz said:
Im sure someone else suggested the 1st Beijing Warrior etc etc thing before me but thats definitely what I would like! Im not interested in individual names etc...just a numeric list of units from whichever city they came from would be great - I'd love to be able to tell that a certain upgraded unit is one of my very first units in the game etc....and I think it would make you 'connect' with your veteran units more. :)


Yep, I added this form of unit naming in the last version, v0.37. I also added an option so people can just set one naming system to be used for all units.

1) Download the mod and unzip into your mods directory.

2) Open the directory /mods/JRandomNames

3) Open the file 'JRandomNames Mod Config.ini'

4) Set the second option to 'True'

5) Set the third option to 'Jimdigriz City Names Unit Naming'

6) Start your game and all units should be named numerically by city built in.


That should give ya what your looking for. :)
 
zulu9812 said:
btw, are you still planning on implementing my unit naming model?

I most certainly am going to add 'zulu9812 Event Based Naming' as a naming convention, but it is more complex then any of the others as I am going to have to store number of battles, location of those battles, ect.

It is on my list to do, but there are about 4 simpiler/already-half-done engines on the list infront of that one. In addition to those, I also have to update versions of my mods to use with warlords and I am working on a new JReligionDecay mod to go with my JUnitReligion Mod. So long story short, look for your requested naming convetion about the middle of aughust, about 2 weeks from now, but it will be worth the wait as I'm planning on putting some effort and energy into making it special. :)
 
Is this available for download? :) I can't seem to find a link. Looks amazing!!!
 
Nevermind I found it in the File Database. :) I've been looking over the options, and is there a way to make the unit name like so: <number(ex 1st, 2nd, etc, for the amount of that type. The first built would be "1st", the 2nd built would be "2nd" etc)> <name of unit (ex Warrior)> <descriptor - Division for land, Fleet for sea, and Wing for air>. Thus you'd get, for example - 3rd Infantry Division. I've tried messing with the available options to get this, but I really don't know Python. :blush:
 
Jeckel said:
Yep, I added this form of unit naming in the last version, v0.37. I also added an option so people can just set one naming system to be used for all units.

1) Download the mod and unzip into your mods directory.

2) Open the directory /mods/JRandomNames

3) Open the file 'JRandomNames Mod Config.ini'

4) Set the second option to 'True'

5) Set the third option to 'Jimdigriz City Names Unit Naming'

6) Start your game and all units should be named numerically by city built in.


That should give ya what your looking for. :)

Jeckel - thats great! :) Can't believe the time all you modders spend on doing these kind of things, I dont actually use many of them (just this one, Bluemarble, civscale, shipscale) but Im very happy that theres so much out there to improve the game if you want them!

Two things -

1) I cant find the download for randomnames anywhere! Must be random thing...;)

2) Is there a Warlords compatible one yet? I think all my new games are going to be on Warlords so theres not much point in me downloading the vanilla civ4 one now

Thanks again! :)
 
K, everyone, sorry about the link being gone. I was in the middle of uploading a Warlords compatable version when I found several errors that I'd missed. I have it done, but I've haven't been near my desktop computer in a few days. I am getting home tonight and will upload the new version and link it up.

Sorry for any inconvenience, now I'm back to the RL grind. :)
 
New Version uploaded. :D

I got it to be warlords compatable, for links to the file and instructions to set it to warlords, see the opening post. :)
 
Excuse me for being stupid! :blush:

I've installed the random names mod into the correct my games / warlords directory, loaded up warlords, loaded mod, tried a game - no difference on the first warrior built in the city. I edited the config file so that just the city naming would load - when i first tried it it seemed to be using every naming engine which was confusing!

Could anyone help? I just want the naming engine I suggested to load but I seem to get all of them or nothing! :confused:
 
Just tried it again, loaded the mod as usual, started a quick normal game, first warrior I created was no different name to usual. I edited the options so that only one naming engine was to be used and edited the one to be used as jimdigriz etc (I used exactly the same text as per the list) but there seems to be no difference?

Its probably just me! :blush:
 
You have to do one other thing to make it work in warlords.

Open the Civilization 4/Warlords/Mods/JRandomNames/Assets/Python directory.

In that directory open the CvModName.py file in Notepad or any text editor.

Change the line
Code:
expansionWarlords = False
to
Code:
expansionWarlords = True

Then it should work. :)

When I realse the next version it will have newest release of Dr Elmer Jiggle's config reader and you won't have to do this anymore, but for now it isn't that hard.

Let me know if have any problems with this version of the mod, I haven't had time to do more then basic testing myself and there may be a bug or two. :)
 
I did a quick test game and then rereading your post I have the answer the situation you mentioned.

Your talking about the first units that you start the game with, right? Well they will just have their normal names, becasue they wern't built in a city. I can't name a unit 'xst (city name) Warrior' when you haven't placed your first city yet. :p If you place some units with the WB you will also notice they will not get a unique name, for this naming engine only units built in a city will get the name. :)
 
That's done it! Thanks a lot Jeckel, perfect naming mod for me! It comes up with 1st Beijing Warrior (Warrior). Is there a reason why you have to have the (Warrior) or not? :)

I realised the bit you mentioned about the unit has to be actually built in a city - I forgot about the edit from false to true in the cvmodname file!
 
Glad to hear ya got it working. :cool:

As to the Warrior (Warrior) part, Civ4 puts the (unittype) after all unique names. LunarMongoose has a fix for this in MongooseMod in this thread, I haven't personally used it as I use other dlls, but saw it the other day so thought I would mention it. :)

Have fun with the mod and thanx for the naming idea. :thanx:
 
Thanks again Jeckel! :)

That Mongoose Mod looks interesting but a bit heavy for me :crazyeye:
....I just want the unit names bit but none of the other components, ah well never mind!
 
Top Bottom