Mission modding

From Europa Universalis 4 Wiki
Jump to navigation Jump to search

Missions are composed of a series in which missions are contained. A series controls various aspects of the mission within, such as which column they appear in the interface.

Overriding Missions[edit]

If you want to create a mod which changes or adds new missions, you can find the missions file under /Europa Universalis IV/missions/. As always with modding, it's much better to create your own mod folder rather than edit the files directly. You can view the mod structure guide on how to do this.

Missions[edit]

<series> = {
    slot = <int>                    # Which column the missions will appear in. 1 to 5.
    generic = <boolean>             # Whether missions within this series are considered generic.
    ai = <boolean>                  # Whether the AI will claim missions in this series.
    has_country_shield = <boolean>  # Whether to display the country shield on the icon.    
    
    # Determines whether a series is loaded at all. Used to limit series to DLC.
    potential_on_load = {
        <trigger>
    }
    
    # Determines when a series appears for a country. Country scope.
    potential = {
        <trigger>
    }
    
    # The name of the mission, used for localization
    <mission> = {
        icon = <gfx>            # The icon to use for the mission
        generic = <boolean>     # Whether this mission is considered generic.
        position = <int>        # Which row the mission appears in. 1 is top.
        completed_by = <date>   # Automatically completes mission in history. 
        
        # Which missions must be completed before this mission is active.
        required_missions = {
            <mission>
        }
        
        # Determines which provinces to highlight. Acts like all_province scope. Optional.
        provinces_to_highlight = {
            <trigger>
        }
    
        # Determines when the mission is completed. Country scope.
        trigger = {
            <trigger>
        }
        
        # The effect executed when the mission is claimed. Country scope.
        effect = {
            <effect>
        }
    }
}

Slot[edit]

Slots are the columns each mission appears in. By default, there are five columns, with 1 being the leftmost column, and 5 being the rightmost column. You can increase the number of columns by editing the interface files - more on that in the Interface section below.

Generic or Specific?[edit]

Missions are split into two types, generic and specific. Generic missions have the generic = yes tag in them. If a specific mission wants to use a space within the mission tree (for example, the top position in the first slot), it will override any generic missions that exist in that space. If you look in the missions folder at /Europa Universalis IV/missions/, you'll notice two files at the top called 00_Generic_missions. If a nation doesn't have specific missions made specially for them, they'll use these generic missions instead. The reason for doing this is that some countries have specific missions only in certain columns (such as 1, 2, and 3), but they use generic missions for the fourth column.

You also create generic missions for certain types of nations. European nations get special generic missions in the 01_Generic_European_missions, and there are also generic missions for other continents like Africa and India. You can use the potential = { } tag to limit your generic missions, which could still be replaced by specific ones.

Position[edit]

Each mission will appear in the order they are scripted, i.e. the first mission appears in the top position, the second position below top, and so on. This can be overridden with the position attribute. You may want to do this if you need to have a gap between missions within the column, or if you are starting another mission series on the same column.

The mission series potential triggers can be re-checked by using swap_non_generic_missions = yes, which will re-evaluate the triggers and swap series to match the country's current state.

Provinces to Highlight[edit]

Important to remember that you must use the following format to highlight areas (with examples provided):

  • Provinces: province_id = 1856
  • Areas: area = sussex_area
  • Regions: region = italy_region
  • Colonial Regions: colonial_region = colonial_florida

To add more than one area or province being highlighted, you must use the OR operator:

		provinces_to_highlight = {
			OR = {
				area = corsica_sardinia_area
				area = sicily_area
				area = western_sicily_area
			}
		}

You might also want to highlight provinces that belong to a particular country. You can do this with the following option. Note that you can mix it with the other conditions mentioned above, as long as you use the OR operator.

		provinces_to_highlight = {
			OR = {
				owned_by = NOV
				province_id = 310
			}
		}

It's often a good idea to add a limiter to prevent provinces out of these being shown. For example, in a conquest mission, you want to highlight all territories in a region except ones that you already own. You can add the following snippet of code to block those areas from showing: NOT = { country_or_non_sovereign_subject_holds = ROOT }. In the below example, it will highlight all provinces in the Italy region that are not owned by the country (ROOT just calls to the owner of the missions).

		provinces_to_highlight = {
			region = italy_region
			NOT = { country_or_non_sovereign_subject_holds = ROOT }
		}

Interface[edit]

The number of columns is defined in countrymissionsview.gui, under countrymissionsview_missions_gridbox by the attribute max_slots_horizontal.

The number of rows is unset, adding more will cause the listbox to start to scroll.

The mission icons are found in countrymissionsview.gfx. To add your own icon, you must follow this format: spriteType = { name = "<name>" texturefile = "gfx//interface//missions//<name>.dds" } and you must also put an icon in the gfx/interface/missions folder called <name>.dds

Index of Missions[edit]

Here is a list of some sample missions that you could easily use to build a custom mission tree. Take care to read the above information carefully before implementing these.


Documentation EffectsTriggersModifiersScopesVariablesLocalisationCustomizable localizationRun files
Scripting AdvisorsAgesBookmarksBuildingsCasus belliColonial regionsCountriesCultureDecisionsDefinesDiplomatic actionsDisastersEstatesEventsFactionsGovernmentGreat projectsHistoryIdea groupsInstitutionsMercenariesMissionsModifiersNation designerPoliciesReligionRebel typesSubject typesTechnologyTrade companiesTrade goodsUnits
Map MapRandom New WorldTrade nodes
Graphics 3D ModelsInterfaceGraphical AssetsFontsParticlesShadersUnit models
Audio MusicSound
Other Console commandsChecksumJoroDox mod making toolMod structureTroubleshootingThe ValidatorRun files
Guides Adding a provinceSave-game editing