1. Victoria 3
  2. News

Victoria 3 News

Victoria 3 - Dev Diary #164 - Marvelous Modding Monday

[p][/p][p]Hello everyone and Happy Monday! Systems Designer Tunay here to report that I’ve been let out of the mines to bring you some of our new modding related highlights for this update and we have some important points to go through so let’s not stall any further! [/p][h3]Database Entry Modes[/h3][p] [/p][p]To begin with, this update will break your mods and I really want to make sure to emphasize that so I'd like to repeat myself here:[/p][p][/p][h3]THIS UPDATE WILL BREAK YOUR MODS [/h3][p][/p][p]Now hold on I see those pitchforks that you are raising but let me explain myself for there is a good reason for all of this. Some of you might have looked at Tinto Talks #85 - Modding or, by the time you are reading this, have played and modded EU5 yourself![/p][p]One very significant change that was introduced to our scripting language in EU5 is the addition of Database Entry Modes. This feature enables you to govern how a piece of script in your mod will interact with a preexisting piece of script in either the main game or another mod through the usage of new KEYWORDS.[/p][p][/p][p]We are bringing this feature to Victoria 3 as well with this upcoming update and you will have to adjust your mods accordingly to the new syntax that we are now forcing upon you![/p][p][/p][p]For the uninitiated amongst you allow me to take you through this system with a couple examples from my new hit mod, the lovingly dubbed “Victoria Tweaks Mod 2”:[/p][p][/p][p]As my first change I would like to reframe and buff the Peasant Levies law to really represent the spirit and strength of the Rural Folk Interest Group. To that end I can use the INJECT keyword preceding the key of the law itself to insert script into the existing law. In this case we wish to adjust the modifier block of the law itself by making it slightly more balanced[/p][p][/p][p]In script…[/p][p][/p][p][/p][p] [/p][p]…and in game[/p][p][/p][p][/p][p]With this change the “Doodlez’ Peasants Army” will be the unstoppable armed wing of the Rural Folk![/p][p][/p][p]As some of you may have noted already, injecting modifiers into existing ones is handled additively so if you for example have a modifier that increases a country’s prestige by 25% in the main game and you inject the same modifiers again but at 50% it will sum up to 75%![/p][p][/p][p]There are six keywords in total, and I have listed them all here for your convenience:[/p][p][/p][p][c]INJECT:key - this mode tries to inject the script into an existing entry. Errors if the respective entry does not exist.[/c][/p][p][c]REPLACE:key - this mode replaces an existing entry with a new one. Errors if the respective entry does not exist.[/c][/p][p][/p][p][c]TRY_INJECT:key same as INJECT: but does not error if the entry does not exist.[/c][/p][p][c]TRY_REPLACE:key same as REPLACE: but does not error if the entry does not exist.[/c][/p][p][/p][p][c]REPLACE_OR_CREATE:key = { } # Same as REPLACE: but if the entry does not exist, it will create it[/c][/p][p][c]INJECT_OR_CREATE:key = { } # Same as INJECT: but if the entry does not exist, it will create it[/c][/p][p][/p][p]If used properly these keywords will help you to avoid a lot of compatibility issues altogether as well as allow you to reorganize compatibility with several existing mods in an easier fashion, granted that you talk to your fellow modders that is! [/p][p]Bear in mind that you will have to explicitly invoke these keywords and that implicit replacement will no longer be allowed and that you now have the time to update your mods accordingly![/p][p][/p][p]Lastly I have added a list of databases that this new system applies to below:[/p][p][/p][p][c]acceptance_statuses[/c][/p][p][c]ai_strategies[/c][/p][p][c]amendments[/c][/p][p][c]battle_conditions[/c][/p][p][c]building_groups[/c][/p][p][c]buildings[/c][/p][p][c]buy_packages[/c][/p][p][c]character_interactions[/c][/p][p][c]character_templates[/c][/p][p][c]character_traits[/c][/p][p][c]cohesion_levels[/c][/p][p][c]combat_unit_groups[/c][/p][p][c]combat_unit_types[/c][/p][p][c]combat_unit_experience_levels[/c][/p][p][c]commander_orders[/c][/p][p][c]company_charter_types[/c][/p][p][c]company_types[/c][/p][p][c]country_creation[/c][/p][p][c]country_definitions[/c][/p][p][c]country_formation[/c][/p][p][c]country_ranks[/c][/p][p][c]country_types[/c][/p][p][c]culture_graphics[/c][/p][p][c]cultures[/c][/p][p][c]decisions[/c][/p][p][c]decrees[/c][/p][p][c]diplomatic_actions[/c][/p][p][c]diplomatic_catalyst_categories[/c][/p][p][c]diplomatic_catalysts[/c][/p][p][c]diplomatic_plays[/c][/p][p][c]discrimination_trait_groups[/c][/p][p][c]discrimination_traits[/c][/p][p][c]dna_data[/c][/p][p][c]dynamic_company_names[/c][/p][p][c]dynamic_country_names[/c][/p][p][c]dynamic_country_map_colors[/c][/p][p][c]dynamic_treaty_names[/c][/p][p][c]technology[/c][/p][p][c]flag_definitions[/c][/p][p][c]game_concepts[/c][/p][p][c]geographic_regions[/c][/p][p][c]goods[/c][/p][p][c]government_types[/c][/p][p][c]harvest_condition_types[/c][/p][p][c]ideologies[/c][/p][p][c]institutions[/c][/p][p][c]interest_group_traits[/c][/p][p][c]interest_groups[/c][/p][p][c]journal_entry_groups[/c][/p][p][c]journal_entries[/c][/p][p][c]law_groups[/c][/p][p][c]laws[/c][/p][p][c]legitimacy_levels[/c][/p][p][c]liberty_desire_levels[/c][/p][p][c]military_formation_flags[/c][/p][p][c]mobilization_option_groups[/c][/p][p][c]mobilization_options[/c][/p][p][c]objective_subgoal_categories[/c][/p][p][c]objective_subgoals[/c][/p][p][c]objectives[/c][/p][p][c]parties[/c][/p][p][c]political_lobby_appeasement (factor)[/c][/p][p][c]political_lobby_appeasement (reason)[/c][/p][p][c]political_lobbies[/c][/p][p][c]political_movement_categories[/c][/p][p][c]political_movement_pop_support[/c][/p][p][c]political_movements[/c][/p][p][c]pop_needs[/c][/p][p][c]pop_types[/c][/p][p][c]power_bloc_coa_pieces[/c][/p][p][c]power_bloc_identities[/c][/p][p][c]power_bloc_map_textures[/c][/p][p][c]power_bloc_names[/c][/p][p][c]power_bloc_principle_groups[/c][/p][p][c]power_bloc_principles[/c][/p][p][c]prestige_goods[/c][/p][p][c]production_method_groups[/c][/p][p][c]production_methods[/c][/p][p][c]proposal_types[/c][/p][p][c]religions[/c][/p][p][c]social_classes[/c][/p][p][c]social_hierarchies[/c][/p][p][c]map_data/state_regions[/c][/p][p][c]state_traits[/c][/p][p][c]strategic_regions[/c][/p][p][c]subject_types[/c][/p][p][c]terrain_manipulators[/c][/p][p][c]terrain[/c][/p][p][c]themes[/c][/p][p][c]tutorial_lessons[/c][/p][p][c]tutorial_lesson_chains[/c][/p][p][c]labels[/c][/p][p][c]war_goal_types[/c][/p][p][c]alert_groups[/c][/p][p][c]alert_types[/c][/p][p][c]commander_ranks[/c][/p][p][c]scripted_buttons[/c][/p][p][c]scripted_progress_bars[/c][/p][p][c]treaty_articles[/c][/p][p][c]gfx/map/city_data/city_building_vfx[/c][/p][p][c]gfx/map/fleet_dioramas[/c][/p][p][c]gfx/map/fleet_entities[/c][/p][p][c]gfx/map/army_dioramas[/c][/p][p][c]gfx/map/front_entities[/c][/p][p][c]state_regions[/c][/p][p][c]sound/persistent_objects[/c][/p][p][c]music[/c][/p][p][c]notifications[/c][/p][p][c]modifier_type_definitions[/c][/p][p][c]ethnicities[/c][/p][p][c]script_values[/c][/p][p][c]scripted_guis[/c][/p][p][c]scripted_lists[/c][/p][p][c]scripted_modifiers[/c][/p][p][c]gui_animations[/c][/p][p][c]achievements[/c][/p][p][c]modifier_icons[/c][/p][p][c]gfx/portraits/accessories[/c][/p][p][c]gfx/portraits/portrait_modifiers[/c][/p][p][/p][h3]Building Groups Cleanup[/h3][p] [/p][p]Speaking of things that will crash your mods on startup: [/p][p]For one, we have renamed a couple of buildings, you should be able to make these out very easily when the patch launches and those can be taken care of by a simple mass replace in your editor. We did this to ensure that the building keys have more consistent naming. [/p][p]The second and more significant change is that state region resources now operate on building types rather than building groups. To illustrate, here's an example of how resource setup looks in map_data/state_regions, new vs old:[/p][p] [/p][p]New:     [c]arable_resources = { "building_wheat_farm" }[/c][/p][p][c]    capped_resources = {[/c][/p][p][c]        building_fishing_wharf = 4[/c][/p][p][c]    }[/c][/p][p][c]    resource = {[/c][/p][p][c]        type = "building_oil_rig"[/c][/p][p][c]        undiscovered_amount = 40[/c][/p][p][c]    }[/c][/p][p] Old:[/p][p]    [c]arable_resources = { "bg_wheat_farms" }[/c][/p][p][c]    capped_resources = {[/c][/p][p][c]        bg_fishing = 4[/c][/p][p][c]    }[/c][/p][p][c]    resource = {[/c][/p][p][c]        type = "bg_oil_extraction"[/c][/p][p][c]        undiscovered_amount = 40[/c][/p][p][c]    }[/c][/p][p][/p][p]The reason for this change is that we had a lot of building groups (such as bg_wheat_farms) that only existed to make it possible to define them in resources and it made the whole building group system very unwieldy. Instead of each farm having its own building group, they are now all part of bg_staple_crops. The removed groups still exist in the database for now for legacy reasons but aren't used anymore, and will be fully removed in 1.13. [/p][p]To make the transition a bit less painful we have added reverse read support so if you input a building group in resources it'll try to read the building group's default building type. This support will be killed in 1.13 though, so it's still a good idea to update your mod to the new format! [/p][p][/p][h3]Moddable War Goals[/h3][p] [/p][p]Anyways with that out of the way let's move on to our next topic: scripted war goal types! [/p][p]We know that this is something that a lot of you have been requesting for a very long time which is why I'm happy to finally be able to say that we did it. To this end, we have finally added a new database in the form of the common/war_goal_types folder. (Thank you Alex! :) )[/p][p]When the update arrives this folder will be filled with our regular war goals which have been transferred to this system as well though with the caveat that a lot of the vanilla ones have behaviours that are governed in code so make sure that you are careful when you are modifying them instead of just adding new ones.[/p][p] I didn’t have the time to add a cool new war goal to VTM2 which is why im just going to do us both a favour and toss in the example documentation here, enjoy! [/p][p][c]some_war_goal = {[/c][/p][p][c]    icon = "gfx/interface/icons/war_goals/icon.dds"[/c][/p][p][c] [/c][/p][p][c]    ### List of Kinds[/c][/p][p][c]    # annex_country[/c][/p][p][c]    # ban_slavery[/c][/p][p][c]    #   Will convert to law commitment treaty article for slavery banned[/c][/p][p][c]    # colonization_rights[/c][/p][p][c]    # conquer_state[/c][/p][p][c]    # contain_threat[/c][/p][p][c]    # enforce_treaty_article[/c][/p][p][c]    # force_nationalization[/c][/p][p][c]    # foreign_investment_rights[/c][/p][p][c]    #   Will convert to investment rights treaty article[/c][/p][p][c]    # humiliation[/c][/p][p][c]    # increase_autonomy[/c][/p][p][c]    # independence[/c][/p][p][c]    # join_power_bloc[/c][/p][p][c]    # leave_power_bloc[/c][/p][p][c]    # liberate_country[/c][/p][p][c]    # liberate_subject[/c][/p][p][c]    # make_dominion[/c][/p][p][c]    # make_protectorate[/c][/p][p][c]    # make_tributary[/c][/p][p][c]    # open_market[/c][/p][p][c]    # reduce_autonomy[/c][/p][p][c]    # regime_change[/c][/p][p][c]    # return_state[/c][/p][p][c]    # revoke_all_claims[/c][/p][p][c]    # revoke_claim[/c][/p][p][c]    # secession[/c][/p][p][c]    # take_treaty_port[/c][/p][p][c]    #   Will convert to treaty port treaty article[/c][/p][p][c]    # transfer_subject[/c][/p][p][c]    # unification[/c][/p][p][c]    # unification_leadership[/c][/p][p][c]    # custom[/c][/p][p][c]    #   No predefined effect. In case you only want to execute the on_enforced effect, but nothing else.[/c][/p][p][c]    kind = war_goal_kind # The Kind of the war goal defines the code-side predefined package of behavior that war goal will have, primarily defining what effect the war goal has when executed.[/c][/p][p][c] [/c][/p][p][c]    ### List of settings[/c][/p][p][c]    # require_target_be_part_of_war[/c][/p][p][c]    #   Target country has to be in the war, can't target neutral countries[/c][/p][p][c]    # can_add_for_other_country[/c][/p][p][c]    #   Allows adding the goal for other participating countries[/c][/p][p][c]    # annexes_entire_state[/c][/p][p][c]    #   Flag for if the goal is expected to always annex the entire target state. This is used to calculate conflicts with other goals[/c][/p][p][c]    # annexes_entire_country[/c][/p][p][c]    #   Flag for if the goal is expected to always annex the entire target state. This is used to calculate conflicts with other goals[/c][/p][p][c]    # country_creation[/c][/p][p][c]    #   Flag for if the goal creates a new country[/c][/p][p][c]    # overlord_is_stakeholder[/c][/p][p][c]    #   Flag for if the stakeholder of the war goal should be the overlord rather than the target country itself[/c][/p][p][c]    # can_target_decentralized[/c][/p][p][c]    #   If the war goal can target decentralized countries[/c][/p][p][c]    # has_other_stakeholder[/c][/p][p][c]    #   If the war goal has a different stakeholder than the target itself[/c][/p][p][c]    # turns_into_subject[/c][/p][p][c]    #   If the war goal turns the target country into a subject. For conflict resolution purposes[/c][/p][p][c]    # skip_build_list[/c][/p][p][c]    #   If the war goal should be available to be picked in the diplomatic play or not[/c][/p][p][c]    # targets_enemy_subject[/c][/p][p][c]    #   If the war goal should target an enemy subject specifically rather than all enemies in the war goal[/c][/p][p][c]    # targets_enemy_claims[/c][/p][p][c]    #   If the war goal should target the claims of a country, rather than the country itself[/c][/p][p][c]    # requires_interest[/c][/p][p][c]    #   If the war goal requires you to have an interest in the relevant strategic zone[/c][/p][p][c]    # debug[/c][/p][p][c]    #   No effect, used for code debug purposes.[/c][/p][p][c]    # validate_subject_relation[/c][/p][p][c]    #   Validation behavior that checks if the resulting subject relation of this war goal is valid[/c][/p][p][c]    # validate_formation_candidate_self[/c][/p][p][c]    #   Validation check to make sure the goal holder is a formation candidate[/c][/p][p][c]    # validate_formation_candidate_target[/c][/p][p][c]    #   Validation check to make sure the goal target is a formation candidate[/c][/p][p][c]    # validate_sole_formation_candidate[/c][/p][p][c]    #   Validation check to make sure the goal holder is the only formation candidate[/c][/p][p][c]    # validate_target_not_treaty_port[/c][/p][p][c]    #   Validation check to make sure the target state is not a treaty port[/c][/p][p][c]    # validate_join_power_bloc[/c][/p][p][c]    #   Special validation for join power bloc war goal kind[/c][/p][p][c]    # validate_colonization_rights[/c][/p][p][c]    #   Special validation for colonization rights war goal kind[/c][/p][p][c]    # validate_force_nationalization[/c][/p][p][c]    #   Special validation for force nationalization war goal kind[/c][/p][p][c]    # validate_foreign_investment_rights[/c][/p][p][c]    #   Special validation for investment rights war goal kind[/c][/p][p][c]    # validate_regime_change[/c][/p][p][c]    #   Special validation for regime change war goal kind[/c][/p][p][c]    # validate_contain_threat[/c][/p][p][c]    #   Special validation for contain threat war goal kind[/c][/p][p][c]    # validate_revoke_claims[/c][/p][p][c]    #   Special validation for revoke claims war goal kind[/c][/p][p][c]    # validate_increase_autonomy[/c][/p][p][c]    #   Special validation for increase autonomy war goal kind[/c][/p][p][c]    # validate_take_treaty_port[/c][/p][p][c]    #   Special validation for take treaty port war goal kind[/c][/p][p][c]    # validate_independence[/c][/p][p][c]    #   Special validation for independence war goal kind[/c][/p][p][c]    # validate_conflicts_war_goals_holder[/c][/p][p][c]    #   Validate conflicts with war goals of the same type from holder[/c][/p][p][c]    # validate_conflicts_war_goals_all[/c][/p][p][c]    #   Validate conflicts with war goals of the same type from all participating countries[/c][/p][p][c]    # validate_conflicts_conquer_state[/c][/p][p][c]    #   Validate conflicts with war goals that conquer states (i.e. that have the conflicts_with_annex_state)[/c][/p][p][c]    # validate_conflicts_annex_country[/c][/p][p][c]    #   Validate conflicts with war goals that annex countries (i.e. that have the conflicts_with_annex_country)[/c][/p][p][c]    # validate_conflicts_make_subject[/c][/p][p][c]    #   Validate conflicts with war goals that make new subjects (i.e. that have the conflicts_with_make_subject)[/c][/p][p][c]    # validate_conflicts_existing_subject[/c][/p][p][c]    #   Validate conflicts with war goals that make new subjects (i.e. that have the conflicts_with_make_subject)[/c][/p][p][c]    # conflicts_with_make_subject[/c][/p][p][c]    #   Marks the war goal as potentially conflicting with make subject war goals[/c][/p][p][c]    # conflicts_with_country_creation[/c][/p][p][c]    #   Marks the war goal as potentially conflicting with country creation war goals[/c][/p][p][c]    # conflicts_with_annex_country[/c][/p][p][c]    #   Marks the war goal as potentially conflicting with annex country war goals[/c][/p][p][c]    # conflicts_with_annex_state[/c][/p][p][c]    #   Marks the war goal as potentially conflicting with annex state war goals[/c][/p][p][c]    # conflicts_with_existing_subject[/c][/p][p][c]    #   Marks the war goal as potentially conflicting with existing subject war goals[/c][/p][p][c]    settings = { # Settings further customize how the war goal is treated in different checks. A war goal can only have one kind, but multiple settings.[/c][/p][p][c]        setting_1[/c][/p][p][c]        setting_2[/c][/p][p][c]    }[/c][/p][p][c] [/c][/p][p][c]    execution_priority = 80[/c][/p][p][c] [/c][/p][p][c]    ### List of Contestion Types[/c][/p][p][c]    # control_target_state[/c][/p][p][c]    # control_target_country_capital[/c][/p][p][c]    # control_any_target_country_state[/c][/p][p][c]    # control_any_target_incorporated_state[/c][/p][p][c]    # control_own_state[/c][/p][p][c]    # control_own_capital[/c][/p][p][c]    # control_all_own_states[/c][/p][p][c]    # control_all_target_country_claims[/c][/p][p][c]    # control_any_releasable_state[/c][/p][p][c]    contestion_type = control_type[/c][/p][p][c] [/c][/p][p][c]    ## Target Type[/c][/p][p][c]    #What kind of entity the war goal primarily "targets". This primarily defines how the game generates potential alternatives for each war goal type when selecting one from the diplomatic play panel. Most war goal kinds will require a specific target type to work well and can't be changed (i.e. Conquer State can't have a Treaty Article target type). This field primarily allows you to have custom war goals target different entities.[/c][/p][p][c] [/c][/p][p][c]    ### List of Target Types[/c][/p][p][c]    # Country[/c][/p][p][c]    #   Loops over enemy countries to generate war goal alternatives[/c][/p][p][c]    # State[/c][/p][p][c]    #   Loops over states belonging to enemy countries[/c][/p][p][c]    # Treaty Article[/c][/p][p][c]    #   Loops over article types and then enemy countries[/c][/p][p][c]    target_type = target_type[/c][/p][p][c] [/c][/p][p][c]    possible = {[/c][/p][p][c]        # trigger to determine if a goal with its target data is listed when selecting a war goal in the diplo play panel[/c][/p][p][c]        # scopes: root = holder, creator_country, diplomatic_play, target_country, target_state, stakeholder, target_region, article_options[/c][/p][p][c]    }[/c][/p][p][c] [/c][/p][p][c]    valid = {[/c][/p][p][c]        # trigger in addition to some basic validation code-side[/c][/p][p][c]        # scopes: root = holder, creator_country, diplomatic_play, target_country, target_state, stakeholder, target_region, article_options[/c][/p][p][c]    }[/c][/p][p][c] [/c][/p][p][c]    maneuvers = {[/c][/p][p][c]        # script value[/c][/p][p][c]        # scopes: root = holder, creator_country, diplomatic_play, target_country, target_state, stakeholder, target_region, article_options[/c][/p][p][c]        value = 10[/c][/p][p][c]    }[/c][/p][p][c] [/c][/p][p][c]    infamy = {[/c][/p][p][c]        # script value[/c][/p][p][c]        # scopes: root = holder, creator_country, diplomatic_play, target_country, target_state, stakeholder, target_region, article_options[/c][/p][p][c]        value = 15[/c][/p][p][c]    }[/c][/p][p][c] [/c][/p][p][c]    on_enforced = {[/c][/p][p][c]        # script effect on top of the predefined code effect[/c][/p][p][c]        # scopes: root = holder, creator_country, diplomatic_play, target_country, target_state, stakeholder, target_region, article_options[/c][/p][p][c]    }[/c][/p][p][c]}[/c][/p][p] [/p][h3]Contextless Journal Entries[/h3][p] [/p][p]Contextless Journal Entries, or “Global JEs” as I will refer to them from here on out, are a new type of journal entry flag. Before we proceed to the cool part of this I have to give you yet another warning for this update will also break many of your JEs! [/p][p]To unbreak them you will have to go to your journal entry groups (in common/journal_entry_groups) and ensure that your custom groups have a context set. You can do that by simply adding one of the two context flags to all of your JE groups:[/p][p] [/p][p]“context = none/country”[/p][p] [/p][p]With “country” being the default one that you should attach to all your regular JE groups that are simply spawned and attached to a country and None being the new context that we use for Global Journal Entries.[/p][p] Global JEs themselves are scripted much like any other Journal Entry but they come with a bunch of new additional triggers and effects to account for the fact that they may be a shared object between several countries. It should be pretty self explanatory overall but it's a really cool and exciting feature that we will use a lot going forward and we can't wait to see you all get your hands on it as well![/p][p] [/p][p]The Peru-Bolivia Confederation is an example of an existing piece of content that has been updated to use this new system[/p][p] [/p][p]Below I have attached an example Global JE from our internal testing that we called the “Lippe Crisis”.[/p][p][/p][p][c]# Sample JE for global journal entries[/c][/p][p][c] [/c][/p][p][c]je_global_test = {[/c][/p][p][c]    icon = "gfx/interface/icons/event_icons/event_map.dds"[/c][/p][p][c] [/c][/p][p][c]    group = je_group_global_test[/c][/p][p][c] [/c][/p][p][c]    is_shown_when_inactive = {[/c][/p][p][c]        always = no[/c][/p][p][c]        #always = yes[/c][/p][p][c]    }[/c][/p][p][c]   [/c][/p][p][c]    modifiers_while_active = {[/c][/p][p][c]        lippe_crisis_ongoing[/c][/p][p][c]    }[/c][/p][p][c] [/c][/p][p][c]    scripted_button = je_global_test_button[/c][/p][p][c]    scripted_button = je_global_test_button_2[/c][/p][p][c]   [/c][/p][p][c]    should_be_involved = {[/c][/p][p][c]        OR = {[/c][/p][p][c]            country_rank >= rank_value:great_power[/c][/p][p][c]            country_definition = cd:LIP[/c][/p][p][c]            country_definition = cd:SCM[/c][/p][p][c]        }      [/c][/p][p][c]    }[/c][/p][p][c]   [/c][/p][p][c]    should_show_when_not_involved = {[/c][/p][p][c]        OR = {[/c][/p][p][c]            country_rank >= rank_value:major_power[/c][/p][p][c]            country_definition = cd:LIP[/c][/p][p][c]            country_definition = cd:SCM[/c][/p][p][c]        }  [/c][/p][p][c]    }  [/c][/p][p][c] [/c][/p][p][c]    possible = {[/c][/p][p][c]        always = no[/c][/p][p][c]    }[/c][/p][p][c] [/c][/p][p][c]    complete = {[/c][/p][p][c]        any_country = {[/c][/p][p][c]            count < 1[/c][/p][p][c]            OR = {[/c][/p][p][c]                country_definition = cd:LIP[/c][/p][p][c]                country_definition = cd:SCM[/c][/p][p][c]            }[/c][/p][p][c]        }[/c][/p][p][c]    }[/c][/p][p][c] [/c][/p][p][c]    fail = {[/c][/p][p][c]        any_country = {[/c][/p][p][c]            count > 2[/c][/p][p][c]            OR = {[/c][/p][p][c]                country_definition = cd:LIP[/c][/p][p][c]                country_definition = cd:SCM[/c][/p][p][c]            }[/c][/p][p][c]        }[/c][/p][p][c]    }[/c][/p][p][c]   [/c][/p][p][c]    immediate_all_involved = {[/c][/p][p][c]        if = {[/c][/p][p][c]            limit = { exists = c:LIP }[/c][/p][p][c]            change_relations = { country = c:LIP value = -10 }[/c][/p][p][c]        }[/c][/p][p][c]        if = {[/c][/p][p][c]            limit = { exists = c:SCM }[/c][/p][p][c]            change_relations = { country = c:SCM value = -10 }[/c][/p][p][c]        }[/c][/p][p][c]    }  [/c][/p][p][c]   [/c][/p][p][c]    on_become_involved_after_activation = {[/c][/p][p][c]        if = {[/c][/p][p][c]            limit = { exists = c:LIP }[/c][/p][p][c]            change_relations = { country = c:LIP value = -10 }[/c][/p][p][c]        }[/c][/p][p][c]        if = {[/c][/p][p][c]            limit = { exists = c:SCM }[/c][/p][p][c]            change_relations = { country = c:SCM value = -10 }[/c][/p][p][c]        }[/c][/p][p][c]    }[/c][/p][p][c] [/c][/p][p][c]    on_no_longer_involved = {[/c][/p][p][c]        if = {[/c][/p][p][c]            limit = { exists = c:LIP }[/c][/p][p][c]            change_relations = { country = c:LIP value = 10 }[/c][/p][p][c]        }[/c][/p][p][c]        if = {[/c][/p][p][c]            limit = { exists = c:SCM }[/c][/p][p][c]            change_relations = { country = c:SCM value = 10 }[/c][/p][p][c]        }      [/c][/p][p][c]    }  [/c][/p][p][c] [/c][/p][p][c]    on_complete_all_involved = {[/c][/p][p][c]        add_modifier = { name = lippe_crisis_averted years = 10 }[/c][/p][p][c]    }[/c][/p][p][c]   [/c][/p][p][c]    on_fail_all_involved = {[/c][/p][p][c]        add_modifier = { name = lippe_crisis years = 10 }[/c][/p][p][c]    }[/c][/p][p][c]   [/c][/p][p][c]    on_timeout_all_involved = {[/c][/p][p][c]        add_modifier = { name = lippe_crisis years = 10 }[/c][/p][p][c]    }[/c][/p][p][c]   [/c][/p][p][c]    on_weekly_pulse = {[/c][/p][p][c]        effect = {[/c][/p][p][c]            scope:journal_entry = {[/c][/p][p][c]                every_scope_je_involved = {[/c][/p][p][c]                    limit = {[/c][/p][p][c]                        NOR = {[/c][/p][p][c]                            country_rank >= rank_value:great_power[/c][/p][p][c]                            country_definition = cd:LIP[/c][/p][p][c]                            country_definition = cd:SCM[/c][/p][p][c]                        }                  [/c][/p][p][c]                    }[/c][/p][p][c]                   [/c][/p][p][c]                    scope:journal_entry = { remove_involved_country = prev }[/c][/p][p][c]                }      [/c][/p][p][c]            }[/c][/p][p][c]           [/c][/p][p][c]            scope:journal_entry = { remove_involved_country = c:FRA }[/c][/p][p][c]            scope:journal_entry = { add_involved_country = c:ARG }[/c][/p][p][c]        }[/c][/p][p][c]    }[/c][/p][p][c] [/c][/p][p][c]    weight = 1000[/c][/p][p][c]   [/c][/p][p][c]    timeout = 1825[/c][/p][p][c] [/c][/p][p][c]    should_be_pinned_by_default = yes[/c][/p][p][c]}[/c][/p][p][/p][h3]Geographic Regions[/h3][p] [/p][p]Another new feature we have added is Geographic Regions, these are arbitrarily defined and static script lists that you can use for all sorts of triggers and checks.[/p][p] [/p][p]Geographic Regions also come with map highlighting![/p][p]Adding these geographic regions is exceedingly simple, you first create a new file in your common/geographic_regions folder and write your lists into them:[/p][p]Some new geographic regions in Central Asia [/p][p][/p][p]I’ll also toss in the documentation for those:[/p][p][/p][p][c]geographic_region_key = {[/c][/p][p][c]    # All state/strategic regions are added together to form a geographic region[/c][/p][p][c] [/c][/p][p][c]    # the key to access this in script lists i.e __in_europe[/c][/p][p][c]    short_key = "europe"[/c][/p][p][c] [/c][/p][p][c]    # The Strategic Regions this geographic region encompasses[/c][/p][p][c]    strategic_regions = { sr: sr: sr: }[/c][/p][p][c] [/c][/p][p][c]    # The State Regions this geographic region encompasses[/c][/p][p][c]    state_regions = { }[/c][/p][p][c]}[/c][/p][p][c] [/c][/p][p][c]# Add a "_desc" localization key to include fluff/lore description of your geographic region[/c][/p][p][/p][p] [/p][h3]Regional Production Methods[/h3][p] [/p][p]One new feature that is very closely tied to Geographic Regions is the ability to define Production Methods that are specific to a part of the world, which allows us to add a lot more variation into the mix even for existing buildings, by for example unlocking special Coffee Production Methods in the “Humid Coffee Belt” Geographic Region. [/p][p] [/p][p]Please keep in mind that all numbers and designations you see below are very much work in progress![/p][p] [/p][p]While some geographic regions are more restricted in their size, the Humid Coffee Belt spans a larger part of the world: [/p][h3]Culturally Defined Name Order[/h3][p] [/p][p]You can now define the order in which names are represented via a new flag in the cultures database, by default this will be set to first_last but you may now also opt into last_first instead, meaning last or family names will be first and personal or first names will be put last. [/p][p] [/p][p]Korean is one of the cultures that uses this new naming scheme. Here we have Queen-Regent Myeonggyeong, wait, was she always here? [/p][p]We have applied this system to cultures across the world that we found it applicable to. Be honest with me, how many of you knew that traditionally Hungarian also puts last names first?[/p][p] [/p][h3]The Console[/h3][p] [/p][p]The console buttons have also received a bit of a facelift including a bunch of new buttons for commonly used commands and cheats. [/p][p]The eagle-eyed amongst you may also have spotted the new Inspect Country button which will open up the script runner window for your currently selected or observed country. You can also open up the inspector via console command. For example “inspect_country GBR” will open up the window for Great Britain.[/p][p] [/p][p]Look at my buttons, ye Mighty![/p][p][/p][p] [/p][p]Inspired by CK3 we have also added some more contextual debug buttons elsewhere, like a right-click menu button to kill a selected character for example. Purely for testing purposes of course![/p][p]We plan on adding more in the future.[/p][p] [/p][p]Please welcome our newest employee![/p][p][/p][p] [/p][h3]Script Only Modifiers[/h3][p] [/p][p]At long last, we have also added the ability to properly define script only modifiers, or “fake modifiers” as I like to call them. By adding a “script_only = yes” flag to your modifier in common/modifier_type_definitions. Doing this will suppress the error that you would otherwise receive and should no longer clog up your error log.[/p][p] [/p][h3]Law Amendments[/h3][p] [/p][p]Law Amendments, as introduced by Victoria in the last Dev Diary, are also completely moddable of course! You can define amendments in the newly created common/amendments database and then add them to your laws via a new effect. [/p][p]I'll once again add an example below:[/p][p] [/p][p][c]amendment_test = {[/c][/p][p][c]    parent = law_peasant_levies # optional reference to a law that dictates what stances IGs and movements have toward this amendment[/c][/p][p][c] [/c][/p][p][c]    allowed_laws = { # list of laws that the amendment can be added to[/c][/p][p][c]        law_professional_army[/c][/p][p][c]        law_national_militia[/c][/p][p][c]        law_mass_conscription[/c][/p][p][c]        law_census_voting[/c][/p][p][c]    }[/c][/p][p][c] [/c][/p][p][c]    modifier = {}[/c][/p][p][c] [/c][/p][p][c]    tax_modifier_very_low = {}[/c][/p][p][c]    tax_modifier_low = {}[/c][/p][p][c]    tax_modifier_medium = {}[/c][/p][p][c]    tax_modifier_high = {}[/c][/p][p][c]    tax_modifier_very_high = {}[/c][/p][p][c] [/c][/p][p][c]    possible = {[/c][/p][p][c]        always = yes[/c][/p][p][c]    }[/c][/p][p][c] [/c][/p][p][c]   can_repeal = {       always = yes   }[/c][/p][p][c] [/c][/p][p][c]    ai_will_revoke = {[/c][/p][p][c]        always = yes[/c][/p][p][c]    }[/c][/p][p][c]}[/c][/p][p][c] [/c][/p][p][c]# The effect:[/c][/p][p][c]## add_amendment[/c][/p][p][c]Adds an amendment to the scoped law.  [/c][/p][p][c]add_amendment = {  [/c][/p][p][c]    type = amendment_example  [/c][/p][p][c]    sponsor = interest_group  [/c][/p][p][c]    cooldown = 120 # months  [/c][/p][p][c]    timeout = 240  # months (optional, 0 = none)  [/c][/p][p][c]}[/c][/p][p][c]**Supported Scopes**: law[/c]  [/p][p] [/p][p]Well looking back that was quite a lot, but not everything! As always we have added a range of new triggers, modifier types, effects and smaller improvements to modding to the game but since we have already amassed this rather large list and the Dev Diary is getting long I'll leave the rest of it up to the changelog in a couple of weeks.[/p][p] [/p][p]Once again I would like to thank you all for your continued support and the incredible mods that you are all creating out there! :) [/p][p] [/p][p]Next time you will see us in dev diaries is this Thursday, where we will tell you all about Spain both in Update 1.12 and in Iberian Twilight.[/p][p] [/p]

Victoria 3 - Dev Diary #163 - The Fine Print

[p][/p][p][/p][p]G'day Victorians and a Happy Thursday. This is Chris, Narrative Designer, here to tell you about some of the free features in the 1.12 Update. Narrative content will be in future Dev Diaries. In the meantime, from negotiations to exploitative production methods to amendments, it will be wise to read the fine print before using these new devices in your next playthrough. [/p][p][/p][p]Also, we mentioned that modding will be in this diary last week, however Tunay went mad with power and decided to write so much we had to give him his own diary - so stay tuned next week for one on Monday and Thursday!
[/p][h3]Negotiations[/h3][p]Negotiations is a new system in which the player can offer something in exchange for an interest group to support – or at least stop stalling – the current law enactment. It functions essentially as an enactment event on demand, giving players the ability to load the dice and turn enactment in their favour. 
[/p][p]At last a chance to even the odds on difficult law enactments.[/p][p][/p][p][/p][p]To be more explicit, negotiation can do one of the following: [/p]
  • [p]Convince a neutral Interest Group to support the law, adding to enactment chance.[/p]
    • [p]Note: Interest Groups not in government who support the law do not contribute to enactment chance in Victoria 3. One must move them into the government first. [/p]
  • [p]Convinced an opposing Interest Group to stop stalling the law (that is, they become neutral, reducing stall chance). [/p]
[p][/p][p][/p][p]Depending on the situation, an Interest Group may be willing to accept favors that may advance their interests, or they may only be willing to change their stance for a very high price, or they may be too skeptical to even negotiate at all. This willingness to negotiate is represented by Amenability, a value out of 100. [/p][p][/p][p]Amenability takes into account a wide variety of factors, including modifiers from events and previous negotiations:
[/p][p]Whom to speak to first is actually a tactical decision, as making lots of promises will lower Amenability until you complete them.[/p][p][/p][p]A popup tooltip on hovering over an IG.[/p][p][/p][p][/p][p][/p][p]Other Amenability factors include boosts for ruler's popularity, various laws (e.g. secret police gives a boost), and modifiers - especially from having existing promises still outstanding. Interest Groups are also particularly keen to negotiate if they think it will make no difference anyway.
[/p][p]Based on Amenability, there are four levels of negotiation:[/p]
  • [p]
  • [p]25-49 Amenability: Negotiations will be difficult. Expect doubled costs and requests.[/p]
  • [p]50-74 Amenability: Negotiations will be pragmatic. Standard costs and requests.[/p]
  • [p]75-100 Amenability: Negotiations will be collaborative. Halved costs and requests.[/p]
[p][/p][p]Pressing the negotiation button will immediately pop up an Negotiation event of the corresponding level:[/p][p][/p][p]Many options are blatant quid-pro-quo favors.[/p][p][/p][p]Bribery is a very strong word, but…[/p][p]
[/p][p]Let us just say that if an IG somehow inherits a portion of the treasury in the form of non-descript subsidies, contracts and gifts, this will increase their political strength in the future. The public may be less than enthused if some do-gooder reporter were to ever publish the facts. 
[/p][p]Likewise if, by pure coincidence, the Interest Group finds itself suddenly in prominent positions all over the nation's bureaucracy, this will only give them opportunities to expand. Also don't expect them to actually do any bureaucratic labor. Afterall, isn't the point of these couchy government positions, where you can't even be fired, to stick your feet up and relax? 
[/p][p]Working too hard for the government only makes everyone else look bad. Besides, trying to really improve the country… you'd be at it all day! (I say all this as an ex-public-serviceman myself). [/p][p][/p][p][/p][p]Other than that, there are a variety of promises that can be made to the Interest Group. These will spawn a Journal Entry, with severe consequences for failure.
[/p][p]Interest Groups will tend to ask for changes that benefit them specifically: For example, the Armed Forces know full well that their own political strength will increase when the nation grows its army.[/p][p][/p][p][/p][p]Always read the fine print.[/p][p][/p][p]The Journal Entry includes buttons to admit the promise was a hoax all along, so we can all come to terms with the state of politics. Players can also announce delays, increasing the timeout for a slight cost to approval. [/p][p][/p][p]Lastly, negotiation is almost entirely powered by script, so modders are free to add more options and tweak balance to their heart's content.[/p][p][/p][h3]New Production Methods[/h3][p]On a more serious note: While Victoria 3 has always contained slavery, we previously didn't have any model for the exploitative practices that continued after slavery was banned. Our new plantation production methods, while still by no means perfect, are a step closer to representing the relationship between colonisation and the exploitation of plantation labor post-slavery, and also the violence of slavery itself in the few places it remained. [/p][p][/p][p]Plantations now have a higher mortality rate in general, and generally employ more people. There is differentiation between different plantations, with sugar in particular being the most deadly. This is particularly true to Cuban history during this era, where slaves were expected to be replaced after ten years. [/p][p][/p][p]Slavery will unlock a plantation's Violent Treatment production method, which represents the most brutal practices during the colonial era. Otherwise, if a country has no liberal laws, especially labor laws, the Exploitative Practices production method also boosts production at the expense of the workers standard of living and mortality. 
[/p][p]See below a comparison of the sugar and coffee plantations exploitative production methods, though note, as always, that the final numbers are likely to be tweaked for balance purposes. 
[/p][p]Sugar was infamous as the most deadly plantation crop. [/p][p][/p][p]All plantations have access to the new Working Conditions group, though each has different numbers to reflect differences in the crops.[/p][p][/p][p][/p][p][/p][p]Depending on the area in question, coffee also had a reputation for brutal working conditions. [/p][p][/p][p][/p][p]In general too, plantations tend to employ more people and output more goods. This makes them more construction efficient and advantageous to the weaker economies with lower wages, even when not using the exploitative production methods. This is to model the reasons behind why plantations were placed in the parts in the world with the least wages or workers rights.
[/p][p]These changes to plantations also should shift the economic balance in a way that models the reasons the colonial powers were driven to create colonial administration to oversee the production of valuable cash crops. By putting these colonies under their own charters, instead of using the metropole's laws to the letter, a double-standard system was created where local exploitation could continue even whilst labor reform was underway in European cities. [/p][p][/p][p]In terms of gameplay, this will make more profitable to release colonies as their own subject, or give them to companies to manage through a Colonization Rights charter.The nations with slavery from gamestart, such as Brazil and Cuba, will have a harder time moving away from slavery, and their landowners will feel a more destructive blow to their profits as slavery ends. All in all, this will create more historically accurate simulation. 
[/p][p]There are two major counterbalance points to slavery as well: First of all, the Slave Trade and Legacy Slavery Laws now come with -25%, -10% Influence penalties respectively, representing the diplomatic costs to maintaining these internationally illegal operations. [/p][p][/p][p]Secondly a new Slave Revolt movement has been created. Slaves will now launch full secessions or revolutions. Having a large army will help keep such revolts in check, unless you intentionally want to side with the slave revolt and cause a Haitian style revolution. [/p][p]
[/p][p][/p][p]If a nation loses their overlord's military support or doesn't keep their army up to size, the slave revolt movements can be deadly as more radical slaves join the movement over time.[/p][p][/p][p]
[/p][p]On a happier note, there are also new production methods to represent the manufacturing and technical developments that accompanied Sugar production, which assisted Cuba's eventual banning of slavery in earnest. 
[/p][p][/p][p]Likewise, Tobacco has unique Production Methods symbolising not only its manufacture, but its unique revolutionary history. Cuban tobacco workers, rolling cigars from dawn to dusk, had the idea that it might be nice for a person to read to them while they worked. They chipped in their own wages to pay a man to stand at a lector and read to them. Stories sure, but also news. And then, inevitably, workers' news, and the writings of the Cuban Independence movement. 
[/p][p]Cigarette rolling machines did much to transition the world from pipe smoke to modern cigarettes, though handrolled Cuban cigars have never gone out of fashion. [/p][p][/p][p][/p][p]Lectors improve the quality of life of the workers, but all that time to talk and think might give them… ideas. [/p][p][/p][p][/p][p]Wouldn't it be nice to listen to music on the wireless while we worked? [/p][p][/p][p][/p][p]That's all from me today. Now I'll hand over to Vicka who'll talk about the new ability to add fine print to laws through Law Amendments. [/p][p]
[/p][h2]Amendments and Other Free Additions[/h2][p]
[/p][p]Hello. This is Victoria, Narrative Design Lead of Victoria 3. Today, I will be covering the other free content updates and additions coming in Update 1.12, starting with the new Amendment system. Please note, as ever, that any screenshots attached are from a work-in-progress build, and certain elements may not be final.[/p][p]
[/p][h3]Amendments[/h3][p]Circa 1836, the qualification to vote in French elections was governed by the Charter of 1830. Under this constitution, men who paid 200 francs or more in direct tax were eligible to vote, a class which encompassed only 0.5% of the population. This small electorate, which excluded nearly the entire middle-class, was one of the leading grievances that led to the fall of the July Monarchy in 1848. It has hitherto been represented as Wealth Voting under our law system.[/p][p][/p][p]At the same time and across the Channel, the British voting franchise was governed by the Reform Acts of 1832. These laws, through a system of various property and rent qualifications, created an electorate which encompassed approximately 15% of the male population of the British Isles. The passage of the Reform Acts was considered a great victory of the liberal movement, and arguably averted revolution in Britain through incorporating the middle-classes into politics to a degree unseen in continental Europe. These laws have hitherto also been represented as Wealth Voting.[/p][p][/p][p]From a technical perspective, it is entirely correct to represent both laws as Wealth Voting. Both represented the political ambitions of the middle-classes at the time of their passage, both gate suffrage behind abstract wealth rather than property ownership, and neither quite fits into what we refer to as Landed Voting or Census Voting - yet their specifics are obviously different. What, then, is a manul to do?[/p][p][/p][p]Enter Amendments.[/p][p][/p][p][/p][p]Amendments are our system for the modularisation of laws. They may be added to laws by event during the enactment process, coming into effect upon the law’s successful passage. Additionally, some countries, such as the aforementioned France, may start the game with amendments on their laws.[/p][p][/p][p]Some enactment events that previously granted flat enactment success chance will now add Amendments to laws, adjusting the effect of the law once enacted in return for securing the support of certain interest groups.
[/p][p]Pictured: The Tenant Farmers law now faces no opposition from the Shogunate, but will exert a heavier tax burden upon the freshly-freed peasants.[/p][p][/p][p][/p][p]All amendments have a parent law, much like the Law Variants added in Update 1.9. Interest Groups inherit their stances on an amendment from their stance on this parent law. If an amendment has been enacted long enough ago, and there is more clout in government opposing it than clout supporting it, one may repeal the amendment, removing its effects from the law.[/p][p][/p][p]Pictured: The Church of Norway has taken a bold stance against hitting children with sticks.[/p][p][/p][p][/p][p]We have implemented several dozen amendments that may be amended to laws over the course of enactment, and some more appended to countries’ laws at game-start. Attached are some interesting examples.[/p][p][/p][p]We hope that this system will make the choices made during the law enactment process much more meaningful, and open the door for much more country-specific flavour in the future.[/p][p]
[/p][h3]Regencies[/h3][p]In Update 1.12, political power has been age-restricted. Countries where children formerly served in the position of Head of State are now ruled as Regencies, with a designated Regent ruling in their place until their age of majority.[/p][p][/p][p]Pictured: Spain, at game start, is now ruled by Queen-Regent María Cristina de Borbón, with Isabella occupying the slot usually reserved for Heirs.[/p][p][/p][p][/p][p]If, over the course of the game, a monarch’s ill-timed death leaves a child on the throne, a regency must be assembled. When assembling a regency, one may choose from a selection of Politicians to serve as Regent, with the interest group represented by the monarch-to-be receiving a bonus to its political strength in the duration. Whilst a regency is ongoing, a country’s legitimacy will suffer, and enacting laws will take slightly longer.[/p][p][/p][p]Once the monarch-to-be has reached the age of majority, they will be coronated, and the Regent will step down from their position.[/p][p][/p][p]“Hold on,” one might say, “isn’t María Cristina the starting Regent of Spain? How did her position come to be occupied by His Highness Captain General Baldomero Espartero, Viceroy of Navarre, Prince of Vergara, Duke of la Victoria, Duke of Morella, Count of Luchana, and Viscount of Banderas?”
[/p][p]This is quite a good question, and its answer will be revealed in a future dev diary.[/p][p]
[/p][h3]Electoral Clientelism[/h3][p]As I was sitting in the office’s library, reading about the Spanish Provisional Government of 1868, I was struck by a sudden bolt of inspiration. Enchanted by this vision, I proceeded to run downstairs and immediately implement it. The result of this burst of energy is the Electoral Clientelism amendment, our means of representing the systematic electoral fraud that characterised Spanish, Portuguese, Brazilian, and Latin American politics of the period.[/p][p][/p][p][/p][p]This system of fraud went by many names, the most common being the Spanish caciquismo and Portuguese coronelismo or mandonismo. Historically, it functioned through networks of clientelism in rural regions, with local communities granted certain incentives by a political boss, known as a cacique \[as in Spain] or coronel \[as in Brazil] in return for voting in certain ways. The local caciques were typically enmeshed in a network of informal power that included local government officials and members of the dominant political parties. It is this system that facilitated the Spanish turno and Portuguese rotativismo of the late nineteenth century, within which major political parties shared power through alternating terms in government.[/p][p][/p][p]These systems are notable as a symptom of the peculiar political situation of the Spanish- and Portuguese-speaking worlds of the time. In his analysis of the nineteenth century, historian Eric Hobsbawm posited caciquismo as a result of the Latin American political system being more advanced than the economy it was based upon. Historian and sociologist Benedict Anderson, in his analysis of cacique democracy in the Philippines, came to a similar conclusion, pointing at the heavily provincial and agrarian nature of the Filipino economy enabling the swift capture of democratic institutions by the rural oligarchy. Electoral clientelism of this type is notably common in political systems that mix voting rights with a widely illiterate and impoverished populace. The expansion of voting rights in Spain marked a corresponding increase in the scope of electoral clientelism, with the era immediately following the advent of universal suffrage contemporary with the height of the caciquist system.
[/p][p]The Electoral Clientelism amendment gives one the ability to decide the result of an election, at the cost of an escalating penalty to legitimacy. When a country with this amendment has an election, an event appears, allowing one to either rig it in favour of a certain party, or abstain from any coordinated election-fixing effort. When all parties cheat equally, one may assume that the result is roughly fair.[/p][p][/p][p]If one chooses to rig the election, one will receive a modifier decreasing the country’s legitimacy, modified by the country’s Free Speech law. This modifier will increase in intensity over time. If one has Right of Assembly, rigging one election may grant -5 legitimacy, whilst rigging three in a row will grant -15. Abstaining from rigging the election will reduce this penalty, and grant progress towards abolishing this system.[/p][p][/p][p]Unlike most other Amendments, the Electoral Clientelism amendment may be inherited by any law that permits for voting. For example, if Brazil begins the game with Electoral Clientelism on its Wealth Voting law, and enacts Landed Voting, this amendment will automatically be added to its new voting law. If one wishes to remove this system, one must refuse to make use of it for five elections in a row, after which one may choose to rid one’s country of it for good.[/p][p][/p][p]At the moment, the Electoral Clientelism amendment affects the electoral laws of all countries with the Age of Caudillos Journal Entry, as well as Portugal, Brazil, Spain, and all of her colonies. It would be very inaccurate, however, to state that these countries were the only ones to experience systemic election-fixing within our time frame. We are presently working on developing a more generalised system of electoral fraud - watch this space for more developments in the field.[/p][p][/p][hr][/hr][p][/p][p]That is all this time!
[/p][p]Hello, Pelly here to let you know what is up next for dev diaries!
[/p][p]Modding was meant to be in this dev diary but now, you lucky Victorians, you get two dev diaries next week, one on Modding on Monday and a look at narrative content for Spain on Thursday! [/p][p]
We also have a Christmas Sweater available as part of the Paradox Christmas Collection from Pixel Merch! To keep you warm, and looking like a very cosy Industrialist![/p]

Victoria 3 - Dev Diary #162 - Iberian Twilight

[p][/p][p]Hello Victorians, I am Lufthansi, narrative designer on Victoria 3, and I have been authorized by His Excellency General Baldomero Espartero to inform the public of the impending arrival of our upcoming Immersion Pack, Iberian Twilight, that will be released on 11th of December alongside the free 1.12 Update. [/p][p][/p][previewyoutube][/previewyoutube][p][/p][p]So, welcome to Iberian Twilight![/p][p][/p][p]With Iberian Twilight we wanted to highlight the historical dynamics of 19th century Spain and Portugal, as well as shine some light on countries in their wider orbit, such as Cuba, the Philippines, the Dominican Republic, and Morocco. [/p][p][/p][p]Spain and Portugal, once mighty colonial empires, are now finding themselves beset by both domestic and international challenges. Having lost their holdings on the American mainland in the wake of the Napoleonic Wars, the two nations must decide how to adapt to a post-imperial reality. Should they pursue new goals, tied to different visions of greatness and the application of the political and technical innovations of the age, or strive to restore what once was - be it by diplomacy or by force?
[/p][p]In 1836, Spain - the primary focus of our Immersion Pack - finds itself in the midst of a civil war pitting the Liberal Isabeline government against the forces of the reactionary pretender Don Carlos. This battle for supremacy between the so-called 'Two Spains' can not merely be settled on the battlefield however. Spain will have to pursue economic and political reforms, define their relationship with their former colonies, and deal with the ambitions of military strongmen - courtesy of a reworked coup system.[/p][p][/p][p]Portugal, still recovering from the devastations and political tumults of the Liberal Wars that ended barely two years prior, must try to navigate an uncertain political and economic landscape, while re-establishing themselves as a respected actor on the global stage. 
[/p][p]Outside of Spain and Portugal proper, you will be able to engage with, among other things; anything from the sugar boom and drive to independence or political integration in Cuba, the development of a new economic class and national culture in the Philippines, and the struggle for centralization in Morocco - where government authority barely extends beyond the gates of its larger cities. 
[/p][p]With this lovely infographic summarizing the content available in Iberian Twilight below:[/p][p][/p][p]Iberian Twilight and the accompanying 1.12 Update will be released on the 11th of December. For additional screenshots, or to wishlist it, please visit Iberian Twilight's Steam store page here. Or, you can pick up Iberian Twilight now in Expansion Pass 2![/p][p][/p][p]In the following weeks we will go through the contents of Iberian Twilight in more detail. The first of these will arrive next week, where Chris, Victoria and Tunay will outline the new Negotiations and Law Amendment features that will be introduced as part of the free Update as well as a look at what is new for modding in 1.12. [/p][p][/p][p]So, until then, I and the rest of the Victoria 3 development team wish you an excellent Thursday.[/p][p]
[/p]

Hotfix 1.11.1 is now LIVE! - Not for Problem Reports!

[p]Hello Victorians![/p][p][/p][p]A small hotfix today addressing a number of bugfixes, as well as a special surprise in content. 
[/p][p]After a short time in Opt in Beta, we have moved it over to a proper hotfix release - featuring fixes for audio being played multiple times and to capitalists/aristocrats being confused by financial districts. 
[/p][p]Checksum for this hotfix is 1ebc. Savegames from previous 1.11 versions should work, but for the most benefit from bugfixes or balance changes it is best to use a new save![/p][p][/p][p]The following changes have been made to the game compared to 1.11.0:[/p][h2]Balance[/h2]
  • [p]It is no longer possible for revolutions to fire if they do not have the support of any army units at all. Secessions can still fire with the support of no army units, so long as they can potentially raise conscripts[/p]
[h2]Content[/h2]
  • [p]Spooky season is alive! Alive![/p]
[h2]Bugfixes[/h2]
  • [p]Fixed an issue that caused the HBC to be unable to colonize the Yukon Territory[/p]
  • [p]Moved the mobilization sound to be a global sound to play any time the player becomes involved in a conflict, but only if he is not in a conflict already[/p]
  • [p]Moved the revolutionary movement sound to only play once when a Political Movement becomes insurrectionary, it will play the sound if the map is visible or the movement list in the Politics panel is visible when it turns insurrectionary[/p]
  • [p]Fixed a bug where ownership buildings tended to snipe capitalists/aristocrats from each other instead of hiring other eligible pops for those jobs[/p]
  • [p]Fixed a bug where country monopolies were not correctly blocking private construction of the monopolized building types[/p]
  • [p]Fixed a bug where political strength from wealth was truncated, resulting in (among other issues) pops with wealth lower than 8 getting no political strength from wealth[/p]
  • [p]Fixed a bug where a civil war that failed to get the support of any states (due to all its valid states already supporting a different civil war) could start and restart every single week
    [/p]
[p]Previous Patchnotes[/p][p]1.11[/p][p]
[/p]

3 Year Anniversary Week

[p]Salutations Victorians and welcome to the start of the 3rd Anniversary week![/p][p][/p][p]First a message from our Game Director Martin:[/p][p][/p][p]Happy anniversary, Victorians! It has now been three years since Victoria 3 released and it has been quite the journey. Taking a look at where we stand now, with a growing and thriving game, makes me want to reflect back a little on my own experience of the years that have passed. Of course, for me it's been far more than three years - in fact, as of 2025, I've spent over half my total time at Paradox as Game Director on Victoria 3. It has never been the easiest or most straightforward game to work with, but I can say with complete certainty that it has been, by far, the most personally fulfilling.
[/p][p]When I started designing this game, it was always with an understanding that there is just nothing quite like the Victoria games out there, and with the personal goal to create the best damn socioeconomic-geopolitical-national-gardening-simulator I possibly could. I made mistakes along the way, and will undoubtedly continue making them, but my goal remains the same. In this I have been helped immensely along the way by you, our wonderful community, with all of your passion, thoughtfulness, feedback and suggestions. I have always felt that you, as a whole, share my overall goal, however much we might disagree about how to get there.
[/p][p]If all this sounds to you like I am about to pass the reins, then you couldn't be more wrong! I haven't gotten to make nearly enough market reworks yet to even start to feel done with Victoria 3, let alone the individual currency system that me and maybe two other people in the entire world are excitedly anticipating (but which sadly will probably have to wait a long while yet...). So, I'm afraid that you're simply stuck with me, and personally, I couldn't be more excited and thrilled for the years to come!
[/p][p]Martin
[/p][h3]Schedule of Events[/h3][p][/p][p][/p][p]This post will update each day with each different event and so I hope you enjoy and we will see you each day, at 16:00 CEST![/p][p][/p][p][/p][p]Whether you are a Landowner, Trade Unionist or Industrialist, you must agree these new Interest Group Pins from Makeship are rather delightful!

For a limited time only, you can get these pin packs to show your support for your preferred station in life!

[/p][p]

Find them on our Paradox Interactive Makeship shop linked here: [/p][p]https://pdxint.at/3KYx9fP[/p][p][/p][p]
[/p]