Europa Universalis IV

Europa Universalis IV

59 ratings
Dynamic Names Redux
4
   
Award
Favorite
Favorited
Unfavorite
File Size
Posted
Updated
109.698 MB
29 Jun @ 9:11am
20 Sep @ 4:34am
4 Change Notes ( view )

Subscribe to download
Dynamic Names Redux

Description
This mod adds a dynamic names system to EU4. It will change the anme based on the government type, government rank, religion, dynasty, etc.

This ISN'T in any way connected to the 'old' Dynamic Names or Dynamic Names 2. This is better - more names, more dynamis and most importantly...

I attach the generator. All you need to do is to add whatever new tags and dynasties you have in your mod and add some rules of naming. That's all! You can generate your own dynamic names mod from this, just add a link to the OG one in the description.

Quick tutorial:
Once you download the mod, it includes a "generator" folder. Inside are other subfolders.

/data folder
Here you have two files: dynasties, and tag_names.

Inside the dynasties file, you can put dynasty names to be dynamically used. They need to be separated by a newline.
Inside the tag_names file, you put the names of the countries, as they exist in the EU4 localisation files.Note: the adjective must be AFTER the name. So, for example:
FRA: "France"
FRA_ADJ: "French"
Remove all the 0's after ':". You can use _ADJ2.

/rules folder

Here you have two files that interest us: rules, and name_substitution_rules.

Inside the rules file, you put the rules for the dynamic names. This works in an EU4 format.
Example:

DUCHY = {
name = "Duchy of {NAME}"
conditions = {
has_reform = monarchy_mechanic
NOT = {
government_rank = 2
}
}
}

DUCHY is an unique name. Doesn't have to be in all caps.

Inside the curly braces, you put:
name="XYZ" - you can put {NAME}, {NAME_ADJ}, {NAME{ADJ_2}, or {DYNASTY}. These will be substituted with the correct tag, or dynasty names.

You can also put a tags block, allowing you to limit the rule to only a couple of tags.

Inside the condition block, put any EU4 trigger you want. Everything will work. If these conditions are met, the rule will fire, and the country will be renamed.

Inside the name_substitution_rules file, you put the substitution rules. These rules allow you to switch your tag base name, if the conditions are met. Example:

INDIA = {
name = "India"
name_adj = "Indian"
tags = {
tag = BHA
tag = HIN
}
conditions = {
government = republic
is_revolutionary_republic_trigger = yes
}
}

This will switch the name for Bharat, or Hindustan, to India, if they're a revolutionary republic.
Note: this will combine with the regular rules, resulting in 'Indian Republic'.

After all is set, simply run Main.py by double-clicking it. You need to have Python installed.
If it fails, run install.sh before that, you may be missing some dependencies.

Debugging: in the game, open the console and type 'event dynamic_names.0' (or whatever other name you gave it in defines). It will show what event will be fired for your tag, simply run it via the console using 'event dynamic_names.XXX'. The event will list all the names that had been applied.

Important: The rules take precedent top-down. This means that the last rule on the list will be the last applied. Another quirk of the generator is that the dynastic name override all other. Make sure to put correct conditions. For example I made it so the Mamluk government doesn't get the {DYNASTY} Sultanate name.

Note: This is not iroman-compatible. Will never be.
66 Comments
GrassToucher 11 Oct @ 12:49pm 
i can also dead, i didnt comment the previous read and now Im comfirm
el Branco 25 Sep @ 12:22pm 
Can confirm, I didn't read the previous comment and now I'm dead
Soviet Boi 24 Sep @ 10:53pm 
WARNING! Carry on reading! Or you will die, even if you only looked at the word warning! Once there was a little boy called Joey, he was ten-years-old and he lived in a mental hospital because he posted a shitty copypasta onto a People Playground mod's comment section . He got so bad he went to kill all the staff in the hospital so the Feds decided that best idea was to get rid of him so they set up a special room to kill him, as inhumane as possible. And he sat there in agony for hours until he died. Now every week on the day of his death he returns to the person that reads this letter, on a monday night at 12:00 a.m. He creeps into your room and kills you slowly, by pegging you and watching you bleed to death. Now send this to ten other profiles on this one site, and he will haunt someone else who doesn't. This isn't fake. apparently if u copy and paste this to ten comments in the next ten minutes nothing will happen: sorry man i am not taking the risk
Jey the Count  [author] 20 Sep @ 4:50am 
Updated!
netcat 14 Sep @ 8:38am 
LOL valid
Jey the Count  [author] 13 Sep @ 1:38pm 
I was going to, but Silksong came out :D
netcat 12 Sep @ 3:02am 
The only thing you should change is the stuff inbetween quotes, so if you have "{Kingdom of {NAME}" you should just be able to change this to whatever it is in your language. if you leave everything else untouched, it should work out of the box.
Also, I was hoping Jey the Count would upload the most recent version of the generator but i think he hasn't gotten around to it.
Sir Demsang 11 Sep @ 4:20am 
Hi, I was trying to translate this mod to polish but... somehow It doesn't work for me.
I have translation from workshop.
1. I changed everything in generator (everything you mentioned in description)
2. Installed python latest version
3. Opened main.py, it loaded everything successfully, it takes lots of time
4. Turned on game and used command then... nothing happened
Still everything in English, in event name it says "missing localisation"
type shit desuwa~ 15 Aug @ 3:44am 
Minor suggestion for the Golden Horde to keep the "Golden" part instead of just becoming "Tatar X" because it would go hard af to be "The Golden Empire/Republic" instead.
netcat 5 Aug @ 11:28am 
I tested it on a Windows 11 Virtual Machine with installing Python 3.12 through the Microsoft Store, and git from https://git-scm.com/downloads/win . Then i just did the command
pip install antlr4-python3-runtime
in CMD, i went to /generator and then i ran python3 main.py. If you still have issues running it, just send me a DM and we can work it out.