• 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.

EU4 - Development Diary - 18th of April 2017

Hello everyone and welcome to this Development Diary! For those that don’t know me, I am Trin Tragula, Content Designer of Europa Universalis, and today I will be the one writing the Tuesday Development Diary. As a Content Designer I am the one who plans and writes the events, decisions, maps, and similar things for the game. The subject of this diary will be the added content in the 1.21 “Hungary” Patch.

load_19.jpg


Background:

Hungary is in many ways a vital country to the period the game depicts. It is at the center of many events that came right before our start date, and these events are also the reason we start the game on the 11th of November in 1444.

As the only remaining major kingdom between the Ottomans and the larger Christian world Hungary nonetheless thrived in the 15th century, only to be reduced to a battleground for stronger powers after the defeat at Mohacs and up to the end of the era our game covers.

As you know, in the years leading up to 1444 Hungary has just emerged from a civil war between the supporters of the posthumous son of their last king, Ladislaus von Habsburg, and the dynamic young king of Poland, Wladyslaw Jagiellon. Wladyslaw’s supporters won this conflict and it is under Jagiellon leadership that Hungary, Bohemia, Poland, Lithuania and many others invaded the Ottoman Empire in 1443. This invasion was abruptly ended at Varna on the 10th of November in 1444 with the death of Wladyslaw and many others.

When the game opens Europe is recovering from the shocking defeat at Varna. Hungary is once again without king and powerful forces are aligning for or against the boy King, Ladislaus the Posthumous.

In Hungary patch we’ve tried to better capture the quite complicated situation of 1444 in Central and Southeastern Europe (one I have just barely touched in the short lines above). In order to do this we have both added new content and reworked some the old content related to Hungary, Austria and Bohemia.


Hungary:

Hungary has been the main focus of this patch and has received about 20 new events as well as a rework of a number of their old existing events.

eu4_292.jpg


Map Changes:

Hoping to both make Hungary more influential in the early game and to make the region more realistic and interesting to wage war in we have added a small number of provinces to Hungary in the 1.21 patch.
  1. Slovakia/Upper Hungary has been redrawn and the new province of Trencin now guards the northern border of the Kingdom. Development and trade goods of the area in general has been revised a bit to better reflect reality.

  2. The province of Fejér has been added between Sopron and Pest. The Hungarian capital in Pest is also now an inland center of trade, which both allows Hungary itself better control over the flow of trade, and makes the conquest of Pest more important for any invader.

  3. In the southern part of the kingdom we have added what was perhaps the most important of all Hungarian fortresses in 1444, Belgrade. The Hungarian kingdom had spent no small amount of energy acquiring the banate of Belgrade prior to our start date and its position at the confluence of the Sava and the Danube will make it a key province to control in the region from now on.

Events:

Hungary has received new events as well as reworks of their existing events. This is a broad (but not quite complete) overview of what we have added and why:

  • Early events will focus on recreating the rise of the Hunyadi family, allowing the player to partake in the Corvinian renaissance, with good advisors, opportunities to increase the wealth of the country and kick-starting institution spread in Budapest.
  • One of the more unique things about Hungary in this period was the so called ‘Black Army’, a very expensive, permanent, mercenary force that on numerous occasions was able to beat numerically superior armies. In the game you will be able to create the Black Army, allowing you to hire much stronger mercenaries at the cost of reducing your force limit and higher maintenance costs. Your nobility will remain skeptical of this mercenary force and will ask new kings to abolish it. The mercenaries may also mutiny if they don’t feel they are paid enough. If you are willing to pay the price however, you can enjoy mercenaries at +10% discipline up to the age of Reformation.
  • If Hussites are in power in Bohemia the Catholic estates can now turn to Hungary for protection. Should you help your brothers of faith they may offer you to be their king, giving you permanent claims on parts of their country.
  • There are a number of events dealing with the advance of the Turks, the establishment of a fortified frontier and the resettling of fleeing Balkan Christians within these lands.
  • The old “Advance of the Turks” event has been expanded upon and given follow-up events relating to the election of two different Hungarian monarchs, one with Austrian, western Hungarian and Croatian support and one with the support of Eastern Hungary. This could happen in a situation when the kingdom has been soundly defeated by the Ottomans.
  • There are now events dealing with the other peoples in the Hungarian realm such as Slovaks, Croats and Vlachs/Romanians and the development of their respective national movements as the game progresses.
  • The spread of the Protestant and Reformed faiths in the Hungarian realm now has dedicated events allowing the Hungarian player to encourage the reformation or invite the jesuits to help them work against it.
  • While the Hungarian Kingdom in our timeline was divided between Turks, Austrians and the Principality of Transylvania from the mid 16th century, we have added events based on the fate of the Hungarian people during these years to provide a continued interesting experience throughout the timeline.
Bohemia:

eu4_291.jpg


Map Changes:

In order to add more depth of maneuver and historical detail we have now split the province of Moravia into Brno and Olomouc and added a Moravia as a revolter country.

In Silesia we have added the province of Leignitz/Legnica and revised starting development values and trade goods a bit to better represent the importance of this area.


Events:
While the Hussite wars are a thing of the past in 1444, the Bohemian people are still largely heretics to Catholic Europe. Ladislaus the Posthumous is the presumed King of Bohemia as well as Hungary but the de facto government of Bohemia lies with the Hussite factions under George of Poděbrady.

Even prior to Hungary patch you could choose to support the Catholic or Hussite party but now this choice has a bigger impact than it used to:

With the Hussites in power you will now be less liked in Europe but enjoy stronger support internally. You will benefit from the tactical experience of the Hussite soldiers but the Catholic estates may offer the Bohemian crown to a foreign monarch willing to defend them.

Unless the pope acts against the continued heresy in Bohemia a strong Hussite movement could also make the Reformation trigger earlier than it otherwise would.

Minor Additions:

The Vistula Spit:

Prior to 1.21 Königsberg and Danzig have been connected by a strait at the end of the Vistula lagoon. This had the unfortunate side effect that the fort in Königsberg could prevent movement between Danzig and Marienburg. Something that was impossible to get around without a fleet. The strait was also unhistorical as by 1444 the Vistula spit was no longer open and the ports inside the Vistula lagoon did not have access to the Baltic sea.

In 1.21 the Vistula spit has been extended all the way to Königsberg, this means that you can now get to the fort there (though it will count as crossing a river) and that Marienburg and Ermland now start without ports.


Austria:

Austria has had a number of their existing events modified and can now also get new events relating to Hungary if they should come to control the country. Most importantly the advance of the Turks event now gives Austria permanent claims on Royal Hungary and Hungary itself is more likely to elect Hunyadi candidates to their throne, severely hurting relations with the Austrian monarchy.


Serbia:

Serbia was not the main focus of this patch but together with the addition of the province of Belgrade we have added a decision for the Serbian state to make Belgrade their capital if they are able to retake it from the Hungarians.

Moddability:
That is not all that is new in the Hungary patch however. I will now leave the word to @Gnivom who, aside from programming the AI, has also been working on improving the moddability:

variable_arithmetic_trigger

Ever wished you could add or multiply values in triggers? You now can! Sort of, at least. The variable_arithmetic_trigger (VAT) allows you to use export_to_variable to a local variable, that only exists within the current trigger and its children. The following effects have been modified to be usable within the VAT (as well as, as mentioned, export_to_variable):
  • set_variable

  • change_variable

  • subtract_variable

  • multiply_variable

  • divide_variable
When used within a VAT, they can only modify variables created in a VAT, as triggers are not allowed to modify the game state. The triggers that evaluate variables can also evaluate local variables.

A VAT has the following members:
  • 1 custom_tooltip: It would be too complicated to generate a tooltip automatically, so all VATs need a custom tooltip.

  • Any number of export_to_variable

  • Any number of other effects, among the ones listed above

  • Any number of triggers
When the VAT is evaluated, it will first execute the export_to_variable effects, then go through the other effects and triggers in the order they are listed. Whenever it comes to an effect, it executes that effect. Whenever it comes to a trigger, if that trigger evaluates false so does the VAT, otherwise it continues. If it gets past all the triggers, it evaluates true. In that sense it is like the AND trigger. When the trigger is done with its evaluation it destroys all variables created in its export_to_variable effects.

A simple example:
Code:
variable_arithmetic_trigger = {

custom_tooltip = HAS_HALF_THEIR_MANPOWER

    export_to_variable = {

        variable_name = my_manpower

        value = manpower

    }

    export_to_variable = {

        variable_name = their_manpower

        value = manpower

        who = FROM

    }

    multiply_variable = {

        which = my_manpower

        value = 2

    }

    check_variable = {

        which = my_manpower

        value = their_manpower

    }

}

One of the smart things with this design is that you can create conditional statements by utilizing the fact that AND and OR triggers stop evaluation when one child returns false and true, respectively. Check the following, more advanced, example:

Code:
variable_arithmetic_trigger = {

custom_tooltip = HAS_MORE_MANPOWER_OR_HALF_IF_CATHOLIC

    export_to_variable = {

        variable_name = my_manpower

        value = manpower

    }

    export_to_variable = {

        variable_name = their_manpower

        value = manpower

        who = FROM

    }

    OR =

    {

        NOT =  { religion = catholic }

        variable_arithmetic_trigger =

        {

            multiply_variable = {

                which = my_manpower

                value = 2

            }

            always = yes # This line is superfluous

        }

    }

    check_variable = {

        which = my_manpower

        value = their_manpower

    }

}


In pseudo code, this is equivalent to:

float my_manpower = GetManpower(THIS)

float their_manpower = GetManpower(FROM)

if religion == catholic

    My_manpower *= 2

Return my_manpower >= their_manpower

Although the syntax is horrible, this can be nested as much as you want to create really complicated logical conditions. It should be noted that variables are performance heavy, especially the export_to_variable, although that has been significantly improved in 1.20 and 1.21.

Scriptable Subject Types

Some modders may have noticed in 1.20 that we moved most of the differences between subject types to a script file. As of 1.21, entirely new subject types can be added just by adding entries in common/subject_types. The old subject types are still referred to in the code however, and can’t be removed. Just adding them there won’t make them visible in the game however. For that I added scriptable diplomatic actions.

Scriptable Diplomatic Action

In 1.21 you will be able to see a new folder in common called new_diplomatic_actions. This system is currently independent of what happens in diplomatic_actions, and they can’t be combined. One diplomatic action has been added there, and it might be easiest to learn how it works by checking that example, which asks someone to become your Dummy. Two things should be noted though. First, the AI will as it is never send these actions. I’m thinking of a way to make that work for a future patch. Second there is an entry called ai_acceptance. This is how it works:
  • It only accepts one type of entry, called add_entry

  • Each add_entry is a simplified/modified version of the variable_arithmetic_trigger. Namely, it doesn’t accept triggers, instead it has a “limit” entry that gets evaluated before even the export_to_variables are executed; and it has a “name” instead of “custom_tooltip”.

  • Each add_entry must define one local variable called “ai_value”. That variable will be evaluated after all effects have been executed.

As 1.21 is not yet available to you, I’ll paste the relevant script here for reference:

In subject_types I added this:
Code:
dummy =
{

    copy_from = default

}

In new_diplomatic_actions, this:

demand_dummy = {

    category = influence

 

    alert_index = 40

    alert_tooltip = demand_dummy_alert_tooltip

 

    require_acceptance = yes # Whether the recipient gets an option to decline

 

    is_visible = {

        religion_group = christian

        is_subject = no

        FROM = {

            is_subject = no

        }

    }

    is_allowed = {

        variable_arithmetic_trigger = {

            custom_tooltip = HAS_MORE_MANPOWER

            export_to_variable = {

                variable_name = my_manpower

                value = manpower

            }

            export_to_variable = {

                variable_name = their_manpower

                value = manpower

                who = FROM

            }

            subtract_variable = {

                which = my_manpower

                which = their_manpower

            }

            check_variable = {

                which = my_manpower

                value = 0

            }

        }

        religion = catholic

    }

    on_accept = {

        add_trust = {

            who = FROM

            value = 20

            mutual = yes

        }

        create_subject = {

            subject_type = dummy

            subject = FROM

        }

    }

    on_decline =

    {

        add_trust = {

            who = FROM

            value = -100

            mutual = no

        }

    }

 

    ai_acceptance = {

        add_entry = {

            name = ALWAYS_TEN

            export_to_variable = {

                variable_name = ai_value # Mandatory to use this name

                value = 10

            }

        }

        add_entry = {

            name = OPINION

            export_to_variable = {

                variable_name = ai_value

                #value = opinion who = FROM with = THIS # This is supposed to work in the future

                value = 10 # Temporary value until then

            }

            divide_variable = {

                which = ai_value

                value = 4

            }

        }

    }

}

The result looks like this (I didn’t bother localizing ALWAYS_TEN):

Capture.jpg


Scriptable diplomatic actions will be in the 1.21 patch when it releases, but it is a feature we plan to improve and expand upon in the future.

Last but not least our Mod Coordinator @Divine has also been working on a couple of additions to the 1.21 patch. This is a small list of those from the changelog.

Code:
- Added defines BANKRUPTCY_BUILDING_DESTRUCTION_THRESHOLD, BANKRUPTCY_PROVINCE_DEVASTATION_GAIN.
- Added the attribute "indestructible" to buildings, setting it to yes will exempt that type of building from being destroyed by bankruptcy.
- Added add_adm_tech, add_dip_tech, add_mil_tech effects.
- Added revanchism trigger.
- Added log effect and trigger.
- Added add_active_policy and had_active_policy effect and trigger.
- Added scripted function can_declare_bankruptcy.
- Added scripted function can_colonize_province.
- Added add_next_institution_embracement = <int> province effect.

Have fun!

That was all for today about the Hungary patch and the content related to to Hungary and its European surroundings. Next Tuesday we will be sharing the complete changelist for the upcoming patch, which will be released in late april.
 
This is all great i've been looking forward to this and i was hoping that Hungary and bohemia would get a rework, i was hoping that hussite would be a new heretic religion that bohemia could switch to
 
I keep seeing people say that Poland is weak. Personally, I have yet to have a game where Poland does not form the PLC and eat half of Russia, a nice bit of Hungary, and maybe some of Bohemia. Then they usually get a PU over Sweden and become the number 1 or 2 great power in the world.
Seriously, I think Poland is just fine, and I'm slightly tired of watching them faceroll everything in Eastern Europe and the Baltic.
 
Great additions in Hungary! I have a few minor suggestions - the provinces of Bacs, Szerem and Torontal should definitely not be divided in three different states. Historically it was a territory most populated by Serbian immigrants after the Ottoman conquest, and now it's an autonomous province of Vojvodina in Serbia. All three of the provinces should also belong to the Ragusa trade node, since the towns in those areas had much more to do with the Slavic, Balkan trade than with the Austrian trade in Wien.

Also will we get any ideas for the Ethiopian minors? They still have the generic national ideas which I believe is a real shame. I made this thread not so long ago investigating the countries and suggesting some ideas for them.

P.S. Trin Tragula is just great to pronounce. I can't stop mumbling it, it really rolls off the tongue :p Keep up the great work, the events look delicious!
 
Code:
- Added add_adm_tech, add_dip_tech, add_mil_tech effects.

Will these effects be automatically created for additional tech tables beyond the vanilla techs? It already does so for the specific modifiers and triggers, but if it also automatically generates this new effect then that would make scripted techs far more useful.

e.g.
Code:
#from "common\technology.txt"

tables = {
    adm_tech = "technologies/adm.txt"
    dip_tech = "technologies/dip.txt"
    mil_tech = "technologies/mil.txt"
    new_tech = "technologies/new.txt"     #mod-introduced table
}

#Currently usable modifier examples
adm_tech_cost_modifier = 0.5
new_tech_cost_modifier = 0.3

#Currently usable trigger examples
mil_tech = 4
new_tech = 6

#Presumably usable for new tables?
add_adm_tech = 1
add_new_tech = 4
 
Last edited:
Boooo Paradox always ignoring Balka- ermmmm. Belgrade. Erm. Whats left now *head scratch*

Booooo ugly shape of Vidin! Racism!

(no srsly cant wait)
 
I keep seeing people say that Poland is weak. Personally, I have yet to have a game where Poland does not form the PLC and eat half of Russia, a nice bit of Hungary, and maybe some of Bohemia. Then they usually get a PU over Sweden and become the number 1 or 2 great power in the world.
Seriously, I think Poland is just fine, and I'm slightly tired of watching them faceroll everything in Eastern Europe and the Baltic.

This is primarily due to Russia being weaksauce militarily from release coupled with nerfs (direct or indirect) in pretty much every patch. It's to the point where they're as likely as not to fail to take Novgorod let alone develop into an actual threat to anyone but the western hordes (who atm are more likely to have Ming issues). Combine that with the trade map redraw taking away any reason for the OE to even look at PLC, let alone actually attack them, and there's nothing to put any sort of pressure on them to cause any sort of collapse.
 
I want that guy's armor. It is amazing. I'm excited mostly about finding out how this affects my second favorite country in EU4 Austria; new events for my negotiating country should be fun. But after that probably the most exciting things to me will be triggering the reformation as early as possible as Bohemia. I wonder if an earlier reformation date means more countries converting to Protestantism.
 
so still not adding croatia as a personal union with hungary?

also your new mechanic with the manchu banners is applicable to the way the habsburgs utilized croatian lands for drafting border guard armies up until the 19th century

It would not only be historically correct, but also interesting for gameplay having Croatia with its banovinas (of jajce and Srebrenik) as a buffer zone. Also the PU would give a dynamic gameplay with factions who where supporting candidates in thoss times, specially in 1527
 
Last edited:
Buff both? I forgot about the fire pip. However their ideas aren't average, they're pretty shit. Denmark is even worse which isn't exactly fair considering their position. I wouldn't really compare an extra fire pip to more discipline. The fire pip is certainly the best of their ideas however it's not really useful until mid game. Even giving it some morale or something would be nice. Also -5% shock damage isn't average at all, it's a total joke and becomes basically useless in the later game where as something like morale is useful throughout. Why can't they just have 10% ICA instead of the 5% ICA & -5% shock damage?

Just give everyone +5% disc and flip a coin between morale and some random +combat ability and then we can stop with these pointless idea set discussions and the game will be markedly worse as a result.
 
Any Elizabeth Bathory events? Or are you going to save them for Halloween along with Vlad III, Robespierre, Ivan the Terrible, and Torquemada events. The "Terrible People Content Pack".
 
Cheers for the DD Trin Tragula and the extra info Gnivom :D. Love the extra historical detail - it's the continual building of this that helps the EU experience (at least for me) really deepen, making different parts of the world feel more like those parts of the world. Can't wait to give Hungary a run-through on 1.2.1 and try and survive the Otto onslaught :). Am a big fan of the modding changes as well :).
 
These changes look excellent, but they wouldn't be complete without some unique units for Hungary, Serbia, and possibly even Silesia. Maybe a Balkans pack featuring Serbia, Bosnia, Croatia and Albania? Or an Eastern Europe pack with Hungary, Wallachia, Bulgaria and Lithuania?
 
Looks really promising :)

Quick question on the scriptable diplomatic actions: The section that determines whether the AI is going to accept or decline the specific action can't use triggers. So, e.g. something like this wouldn't be possible?
Code:
ai_acceptance = {
    add_entry = {
        name = EXAMPLE
        if = {
            limit = {
                FROM = { ai_attitude = { who = ROOT attitude = attitude_friendly } }
            }
            export_to_variable = {
                variable_name = ai_value # Mandatory to use this name
                value = 10
            }
        }
    }
}

If so, what modifiers/triggers can we use to determine the ai acceptance within such an entry? :)
 
These changes look excellent, but they wouldn't be complete without some unique units for Hungary, Serbia, and possibly even Silesia. Maybe a Balkans pack featuring Serbia, Bosnia, Croatia and Albania? Or an Eastern Europe pack with Hungary, Wallachia, Bulgaria and Lithuania?

I like this idea. Balkanites are formidable warriors. It would do them some justice :D