recursal/Fanatic-Fandom huggingface dataset:
Keywords

the .txt and .yml files, within your project folder, are written in data file format.  when hoi4 launches, it reads these data files to create the game rules and the playboard that go with hoi4. The Keywords mentioned here are naming conventions used to refer to a value or group of different values that the compiler recognizes. To learn more which values are accepted, visit the tag's page.

## Keywords

Four fixed lists of keywords are known that you must understand to recognize how things are structured within the data files. I've categorized them as follows :

* Effects : There is a specific list of effects that can instantly change the game. Effects are carried out once when triggered by the rules around it. Most notably, the completion reward of all focuses are effects.
* Modifiers : The modifier list is a list of different numeric value that can be referred to and modified. They represent the strengths of a country and are mostly changed by ideas.
* Operators : The operators are a special list of characters and keywords that are used in many placed to represent certain arithmatic ideas. The easiest to understand example is the equals (=) sign, that denotes value assignment.
* Triggers : The triggers are a fixed list of questions you can ask the game, to which the answer will be yes or no / true or false. triggers are used to set conditions for effects or modifiers, for example to check if focuses are unlocked, or the likelihood for an ai to do something.

## Data Types

The following data types are recognised within Hearts of Iron IV modding. Data types are used to write down static values within the game.

* Boolean
* Date
* Name
* Number
* Object
* String
* Tag
Equipment bonus

```
equipment_bonus = { <equipment name> = { <equipment bonuses> } }

```

add "Instant = yes" for the bonuses to apply instantly, instead of only future produced equipment.

Example:

```
equipment_bonus = {
   fighter_equipment = {
	air_range = 0.1
	air_attack = 0.05
	instant = yes
   }
   cv_fighter_equipment = {
	air_range = 0.1
	air_attack = 0.05
	instant = yes
   }
}
equipment_bonus = { infantry = { instant = yes build_cost_ic = -0.10 } } }

```

Makes infantry equipment 10% cheaper.

Looking for a specific equipment name? You can find a list in the beginning of the following files:

```
localisation/equipment_l_english.yml
localisation/equip_air_l_english.yml
localisation/equip_naval_l_english.yml

```

Looking for a specific equipment bonus? A list can be found in the following file:

```
localisation/equipment_l_english.yml

```

Please note that not all of these bonuses will work for all units.

Tips:

-If instant=yes is not used, some bonuses will never take effect because no new equipment will ever be researched, such as with convoys.

-Motorized is only motorized infantry itself, use motorized\_equipment to also include mechanized infantry.

-If the equipment type does not exist, the tooltip will still try to show its name. Without debug mode to show the error, the bonus might seem to be working while in reality it is not.

Bugs:

-Changing ideas with equipment bonuses sometimes requires the game to be reloaded for the bonuses to take effect.

-combat\_width does not seem to work, despite working in technologies.
Shield Spear, Basille

Name
Shield Spear, Basille

HIT
1

LIFE
1

Card Type
Regular Unit

TYPE
Nature

RACE
Elf

FACTION
Rune-Knight

POWER
1000

Illustration Credit
TD02: Martin Cieslar

 [AUTO]: **<1>** *(This effect is active whilst on 1 Damage or above) **Once per turn, when this Unit Attacks, if you have a <Rune-Knight> Leader, this Unit gets {POWER} +1000, until the End Step.***
[AUTO]: **<1>** *(This effect is active whilst on 1 Damage or above) **Once per turn, when your opponent Attacks, if you have a <Rune-Knight> Leader, this Unit gets {POWER} +1000, until the End Step.***
Tag

## Definition

Country tags, or simply Tags, are three letter initials of a country. A list of country tags are defined in common/country\_tags/00\_countries.txt. They are used to denote specific countries within the game.

They can be used as an operator, continuing any effects or triggers through the other country:

```
GER = { add_ideas = minor_democratic_drift }

```

The above example adds an idea to Germany because GER is the country tag of Germany. if the curly brackets, equals sign and country tag weren't there, then it would simply add it to the active country that finished the focus, has the idea, got the event, etc. You can dynamically reference the active country by using ROOT instead of a country tag.

Tags can also be used as a value as part of certain specific effects and triggers that ask for a tag as value:

```
white_peace = POL
give_guarantee = POL

```

The above two effects makes the current active country declare white peace with Poland, and makes the current active country guarantee Poland.

## Tips

* Country tags are not always the first three letters of a country. PER for example is Iran, while SPR is spain.
* During a civil war, one of the countries is given a dynamic country tag. These are defined in zz\_dynamic\_countries.txt instead. if the country with the original tag loses the civil war, then the dynamic tag stays. Dynamic tags when left unchanged are "D01", "D02", "D03", etc...
* Country tags for a country remain the same even after an ideology and/or name switch. Fascist Russia would still have the tag SOV, and a free india would still have the tag RAJ. The only exception is mentioned above.
Conservative's Paradise Wiki

Welcome to the wiki. We’re a collaborative community website about your topic that anyone, including you, can edit. Click the edit button at the top of any page to get started!

## Describe your topic

Write a description about your topic. Let your readers know what your topic is about and add some general information about it.Latest activity

Photos and videos are a great way to add visuals to your wiki. Find videos about your topic by exploring Fandom's Video Library.

File:Placeholder
HIDDEN EFFECT

## Definition

```
hidden_effect = {
	<effects>
}

```

The effects listed within the hidden\_effect clause will still fire, but will not be shown in the tool-tip when hovering over the button. hidden\_effect is an effect in of itself, and can therefor only be included when an effect is expected, such as a national focus reward.

## Examples

```
hidden_effect = {
	news_event = { id = GER.134 days = 2 }
	GER = { country_event = { id = GER.133 days = 6 } }
}

```

The above example hides the fact that two events will fire in the future if the player hovers over this button. One of them is a news event and the other is a german country event. These events will still fire, and will work as normal.

## Extra

Tip: Hidden\_effects can be combined with custom effect tooltips so that you can make tooltips much clearer or cleaner. "Germany releases Vichy France" is much more clean and understandable than a huge list of state changes.
Data file format

## Definition

It is to me unknown what specific Data file format hoi4 uses to read the data files that we write mods with. I believe that the language used in the .txt. files are what some have referred to in the past as "Paradox Script", even though it is not really a scripting language. The Clausewitz engine that eu4 and hoi4 run on, is made with C++ instead. It is quite likely that this engine comes with the ability to read the .txt files. If anything it most closely resembles a combination between INI and JSON to me.

## Syntax

The files within the project folder that we modify all start off with naming what it is changing or adding. a group keyword.

```
bookmarks = {
  bookmark = {
    name = "BLITZKRIEG_NAME"
    desc = "BLITZKRIEG_DESC"
    date = 1939.8.14.2
    picture = "GFX_select_date_1939"
    default_country = "GER"

    GER = { ... }
  }
}

```

In above example, the file starts of by referencing all bookmarks as a group, and adds to it one more bookmark. This bookmark that we are adding has some informarmation about it. It has a name, a description, a starting date, a picture and a default selection. finally, it also has a sub object called "GER".

You can modify and change these as you desire, but note that what stands before the equals sign are fixed keywords. Some of these keywords will be mandatory and some are not. The game searches and grabs the name from the bookmark when it needs it. It grabs the picture link when the picture needs to be shown. For each type of object, there is a specific list of keywords that the game uses. If you use keywords that the game does not recognize, then nothing will happen. This wiki will help you find out which keywords you can use and how to use them.

Back to our example. There is a subobject named "GER". You cannot define just any subobject within another object. In this specific example, the game expects subobjects of a bookmark to be a Bookmark country value. The bookmark country value has rules of its own as to which keywords it uses.
Climate change

**Climate change** is a change in the statistical distribution of weather patterns when that change lasts for an extended period of time (i.e., decades to millions of years). Climate change may refer to a change in average weather conditions, or in the time variation of weather within the context of longer-term average conditions. Climate change is caused by factors such as biotic processes, variations in solar radiation received by Earth, plate tectonics, and volcanic eruptions. There is no general agreement in scientific, media or policy documents as to the precise term to be used to refer to it, either "global warming" or "climate change" may be used.

There are several theories as to what its causes

1. ↑ "The United Nations Framework Convention on Climate Change". 21 March 1994.
2. ↑ Hulme, Mike (2016). *Concept of Climate Change, in: The International Encyclopedia of Geography*. Wiley-Blackwell/Association of American Geographers (AAG). Retrieved 16 May 2016.
Booster Set 1: First Step to Resolve

## **Contents**

* 85 cards in total.
* Each pack contains 18 cards.
	+ 11 Commons, 3 Rare, 1 Super, 1 Ultra, an extra Super/Ultra or Break Rare + an all new Full Art Mosaic Card in every pack!
* Includes support for the <*Edojo*>, <*Rune-Knight*>, <*Psychic Mafia*> and <*F.E.D*> Factions.
* Introduces the <*Furball*> Faction.
* Includes support for *Blaze*, *Nature*, *Hope* and *Shadow* Types.
* Includes many reprinted cards with alternate artworks.
* Cover card for the set:
	+ *High-Sun Shogun, Shirosha*
* Promo card for the set:
	+ *Lost King, Raynus*
* Next Set: Booster Set 2: Arrival of Champions
* Link to set
List of things that offend SJWs

## Things that are sexist

* Father's Day
* The song "Baby It's Cold Outside"
* Air conditioning
* Marriage
* Not being a feminist
* Elevator jokes
* **Man**hattan, **man**made, mail**man**
* The song "Kiss the Girl" from The Little Mermaid
* Virginity
* Engagement rings
* Video games
* Gay men
* All men

## Things that are racist

* Calling the cops (on actual criminals, regardless of race)
* "Rudolph the Red-Nosed Reindeer"
* An Egyptian actor playing an Egyptian character
* White people with dreadlocks
* Orcs from The Lord of the Rings
* Proper grammar
* All white people

## Things that are LGBT+-phobic

* The song "thank u, next" by Ariana Grande
* All cisgender people

## Others

* 'Bringing home the bacon'
* Saying "Hello!"
* "Kill two birds with one stone," "Be the Guinea pig," "Beat a dead horse," "Take the bul by the horns."
* Complimenting weight loss
* Villains with facial scars
* The Joker without makeup
* Telling them they don't have a sense of humor

## References

1. ↑ Feminist Father's Day Cringe, Ann Lieven
2. ↑ 'Baby, It's Cold Outside,' Seen As Sexist, Frozen Out By Radio Stations, NPR
3. ↑ Why Office Air Conditioning Is Sexist, Sky News
4. ↑ Women, face it: marriage can never be feminist - Julie Bindel | Comment is free, The Guardian
5. ↑ What Saying 'I'm Not a Feminist' Really Means, HuffPost
6. ↑ 'Gender Studies Department, please!' Feminist turns classic elevator gag into an international incident, Washington Examiner
7. ↑ Purdue writing guide says avoid use of words with 'man', Fox News
8. ↑ Women Now Claim this Popular DISNEY Song Promotes Sexual Assault, The Daily Wire
9. ↑ "I think the concept of virginity was created by...", P R I D E ✌🏼
10. ↑ Viewpoint: 'Why engagement rings objectify women', BBC
11. ↑ Damn they've finally caught on to us gamers., Cursed Gaming
12. ↑ Gay Men and Their Not-So-Cute Misogyny Problem, VICE
13. ↑ 13.0 13.1 13.2 Subconscious Biases + What to do About Them | Milo Stewart
14. ↑ 12 THINGS TO DO INSTEAD OF CALLING THE COPS, PLOT: Progressive Leaders of Tomorrow
15. ↑ Why some people are calling 'Rudolph the Red-Nosed Reindeer' racist, bigoted and 'seriously problematic', WRAL
16. ↑ All things nerdy, angelrin89
17. ↑ Why it’s not OK for white people to have dreadlocks, The Tab
18. ↑ *Lord of the Rings*Slammed for Perpetuating Racism through Depiction of Orcs, National Review
19. ↑ College writing center: Proper grammar perpetuates 'racist,' 'unjust language structure'
20. ↑ Ariana Grande's 'Thank U, Next' Music Video Is Surprisingly Anti-Queer, INTO
21. ↑ PETA says phrases like 'bring home the bacon' are comparable to racism and homophobia, CNN
22. ↑ Feminist Claims Harassment After Man Says "Hello", Rekt Feminist Videos
23. ↑ PETA offers replacement sayings for the 'anti-animal language' in daily conversations, First Coast News
24. ↑ Why you should think twice before complimenting someone's weight loss, INSIDER
25. ↑ British Film Institute Says It Won’t Fund Movies That Depict Villains With Facial Scars, /Film
26. ↑ Joker without makeup . thats really..., brohemian-fapsody
27. ↑ Rutaskadi, Tumblr
Effects/create wargoal

```
create_wargoal = { type = annex_everything target = SOV }

```

Creates a wargoal to annex everything on the Soviet Union.

```
MON = { create_wargoal = { type = puppet_wargoal_focus target = CHI } }

```

 Mongolia gets a wargoal to puppet China.

```
create_wargoal = {
	type = take_state_focus
	target = PER
	generator = { 419 420 266 }
}

```

Create a wargoal against Persia to take the states 419, 420 and 266, as if the country had justified on those states.
Booster set 2: Triumphant arrival of Champions

## **Contents**

* 80 cards in total.
* 78 new cards and 2 reprints.
* Brand ***NEW*** updated card designs to celebrate the games official relaunch!
* ***Clan*** has now been changed to ***Faction*** in the game.
* ***Spells*** have now been changed to ***Actions*** in the game.
* Each pack contains 18 cards.
	+ 12 Common, 3 Rare, 1 Super, 1 Ultra + an extra Super/Ultra or Break Rare.
* Introduces the Bolt Knuckle, Dominion Theater, Cha-O-Ha, Flame Assassin and Nijikara Factions.
* Introduces Lightning Type.
* Includes further support for the Edojo and Psychic Mafia clans.
* Includes support for Blaze, Nature, Shadow and Lightning Types.
* Includes reprinted "Fatigue Supplements" and "Jump!" with new written card effects.
* Cover card for the set:
	+ Guard Breaker, Gonzo
* Promo card for the set:
	+ Alexandre Revised
* Next set:
* Previous set: Booster set 1: First step to Resolve
* Link to set
List of Chancellors of the Kingdom of Prussia

> *For a list of office holders Pre-Confederation, also known as the Chief Justiciar, see Chief Justiciar of Prussia.*
>
>

The Chancellor of the Kingdom of Prussia is the elected head of government of the Kingdom of Prussia, who serves as the primary minister of the Crown. Officially, the Chancellor is appointed by the King's Lieutenant General, though the Chancellor is selected by his party having confidence of the House of Commons.

Since the founding of the office in 1653, 65 people have held the office. The first elected leader, Diethelm Uslar, was elected in 1653 and served until 1662. The current Chancellor, Sir Alexander R. Friedmann, was elected in the 2113 General Election.

Early in the proceeding of the house, the King's Lieutenant, on advise of the Chancellor decided at what point they will dissolve the house for the next election, though each session of parliament lasted anywhere from four to six years. As well, anytime of year could be used as a start date for parliament. It wasn't until Chancellor Reimer Meeklenburg called for an election in December of 1675 that the start date of 04 January was first decided. Meeklenburg's successor, Chancellor Eginhard Aulock enacted the Act to Update the Elections Act of 1652, 1676, which helped to solidify more aspects of the country's election process. Term years still ranged from five to six years, but the parliament must always close session in Mid-November once the election actually takes place. The newly elected parliament will resume session on 04 January of the following year. This law was later dismantled and upgraded by Chancellor Waldemar Severloh in 1819 after the death of his predecessor, Egbert Kemnade. Chancellor Kemnade had held the office for 25 years, being reelected for 5 consecutive terms. Severloh wanted to have the number of terms a Chancellor could be elected to limited at 3. This was mostly successful throughout the following years. The current opening date of 15 November was enacted by Chancellor Gunnar Schaten in 1860, when his government enacted *An Act to Modernize the Elections Act* of 1676, 1860. The Chancellor was still limited to 3 consecutive terms, though the convention was 2. Each new session of parliament would open on the 15th of November, and generally close Mid-October 4 years later. The last Chancellor to be elected to three consecutive terms was Conservative Chancellor Walter Schulze (2021 - 2033). It was his successor, Herrmann Lange, who's government enacted the current version of the Elections Act through passing of the *Act to Amend the Elections Act* of 1860, 2033.

## List of Former Living Chancellors

This table lists former Chancellors of Prussia who are still alive as of December 2121.
State effects/add building construction

```
add_building_construction = {
	type = industrial_complex
	level = 2
	instant_build = yes
}

```

A snippet from the Soviet focus, "Improving the Stalin Line". This adds 5 forts to a specific province in State 209.

```
209 = {
	add_building_construction = {
		type = bunker
        	province = 11392
		level = 5
	}
}

```
Effects/Add tech bonus

```
add_tech_bonus = {
	name = assembly_bonus
	bonus = 0.5
	uses = 2
	technology = improved_machine_tools
	technology = advanced_machine_tools
	technology = assembly_line_production
	technology = flexible_line
	technology = streamlined_line
}

```

The above example adds two uses of 50% off research bonus, that can be spent on 2 out of the 5 specific technologies listed.

```
add_tech_bonus = {
	name = electronics_bonus
	bonus = 0.5
        ahead_reduction = 1
	uses = 1
	category = electronics
}

```

The above example adds a one-time use research bonus that either grants 50% off OR 100% reduced ahead of time penalty. This bonus could be used on any technology within the electronics category.
Julianne, Princess Royal

**Julianne, Princess Royal** KT KG GCVO (Julianne Mary Elizabeth Margaret; 28 October 2077) is the third child and only daughter of Queen Victoria II and Prince Alexander, Duke of Edinburgh. At the time of her birth, she was third in the line of succession to the British throne, behind her two elder brothers (Richard and Henry), she is now sixth. Princess Julianne has held the title of *Princess Royal* since 2113 and is its tenth holder.

## Personal Life

She married Lieutenant Colonel Joseph Michael Graham on 14 August 2108. They have two children, Gabriel (2110) and Isla (2114).
Effects/diplomatic relation

```
diplomatic_relation = {
	country = GER
	relation = non_aggression_pact
	active = no
}

```

```
diplomatic_relation = {
	country = YUG
	relation = military_access
	active = no
}

```

```
diplomatic_relation = {
	country = ENG
	relation = puppet
	active = no
}

```

```
diplomatic_relation = {
	country = MAR
	relation = guarantee
	active = no
}

```
Common/bookmarks

## Description

The bookmarks folder contains the different scenario's that you can play within Hoi4. Currently this is "the gathering storm" bookmark, where you start in 1936, and the "blitzkrieg" bookmark, where you start in 1939. Each file in this folder represents one of these bookmarks. You can change these files to for example change the descriptions, start date and majors of a bookmark.

## Bookmark Value

A bookmark file starts by opening all bookmarks and adds a new bookmark value.

Example:

```
bookmark = {
	name = "World Imperia"
	desc = "text"
	date = 1935.1.1.1
	picture = "GFX_select_date_1936"
	default_country = "ITA"
	default = yes

	"ENG" = {
	    minor = no
		history = "ENG_HISTORY"
		ideology = communism
		ideas = { }
		focuses = { }
	}
}

```

## Tips

1. Minors will not appear unless they have a custom focus tree.  I speculate that this is an easy way to account for different combinations of DLC. You can easily make a custom focus tree by copying and pasting the first few lines of another focus tree, replacing the tag, and closing the bracket.
2. You can create an "other countries" button by using  "---" as the country tag of a major.
3. Although it is possible to have more than two bookmarks, the bookmarks will end up going out of frame.
Triggers/capital scope

```
capital_scope = { is_on_continent = europe }

capital_scope = { is_on_continent = asia }

```

The following list are the default continents available :

```
continents = {
	europe
	north_america
	south_america
	australia
	africa
	asia
	middle_east
}

```

Note: There seems to be a bug with the localization for this trigger. The condition is always localized as if it is required to NOT be on that continent, This has no mechanical effect on the game.
Dates

## Format

A bookmark date is the used date format within hoi4 modding. it has the following syntax that it recognizes :

```
YYYY.MM.DD(.HH)

```

Example :

```
1939.8.14.12

```

represents 14th august 1939 at 12:00 hours / 12 PM

The hours are optional, for example

```
1937.2.1

```

represents 1st of february 1937.

## Bookmark Date as operator

It is also possible for bookmark dates to be used as an operator. The syntax is then

```
YYYY.MM.DD = { }

```

This means that the definition within the brackets will be added, in case a scenario is played where the date of the scenario is after the given date. This is done in states mostly.

## Date condition

Dates can also be used as a trigger, which is done as part of focus trees for example. the syntax is then

```
YYYY.MM.DD > YYYY.MM.DD
YYYY.MM.DD < YYYY.MM.DD

```

the keyword "date" can be used instead of a specific date. It will then take the current in-game date .
Effects/delete unit template and units

```
delete_unit_template_and_units = { division_template = "Greek Mountaineers" }

```

Tip : Does not delete division templates or divisions from other countries, even if they have shared the same name for divisions or even the same unit (oob) file.

Warning: Releasable nations inheret the templates of the country it came from if it hasn't spawned at the start of the game. Deleting the template means a newly released nation would then also not get that template.

Warning : If player's renamed the template, then the division will NOT be deleted. make sure the division "is\_locked = yes"
Atheism

**Atheism**, as defined by the *Stanford Encyclopedia of Philosophy*, is a religion that denies the existence of one or more gods. It has a number of causal factors.

1. ↑ Smart, J. J. C. (August 8, 2011). "Atheism and agnosticism". *The Stanford Encyclopedia of Philosophy* (Spring 2013 Edition), Edward N. Zalta (ed.).
Effects/custom effect tooltip

## Definition

```
custom_effect_tooltip = <tooltip name>

```

Custom\_effect\_tooltip can be used to add your own tooltip. Essentially it is an effect that does nothing except write your own description as part of the tooltip when hovering over things. You can hide other effects that have an automatically added tooltip by using the hidden\_effect.

## Examples

```
custom_effect_tooltip = 11_SOV_tt
hidden_effect = { country_event = { id = russia.110  days = 4 } }
add_political_power = 100

```

In above example, custom\_effect\_tooltip will show a custom message but do nothing. It will not show the fact that a country event will trigger in 4 days, then it adds 100 political power.

You now must define "11\_SOV\_tt" somewhere inside the localisation folder :

```
11_SOV_tt: "Spread communist support to all neighbouring countries."

```

The In-game tooltip when hovering over this focus will then look something like this :

```
Spread communist support to all neighbouring countries. Gain 100 political power.

```

### Extra

You can also use "\n" to designate a line insert :

```
11_SOV_tt: "Spread communist support to all neighbouring countries.\n"

```

Tooltip would then look something like this :

```
Spread communist support to all neighbouring countries.
Gain 100 political power.

```

(Sometimes this doesn't work correctly, unless you add a space after the \n )
Season One

**Season 1** of Danger & Eggs consists of 13 episodes, with 12 of the episodes broken into 2 separate 12 minute long
episodes and a 24 minute long special.

The season premiered all 13 episodes on June 30th, 2017.

## Episodes

* Episodes 1a & 1b: "Tube of Pain/Broccoli"
* Episodes 2a & 2b: "Ren Faire/Satellite Gardens"
* Episodes 3a & 3b: "Raccoons/Sheriff Luke"
* Episodes 4a & 4b: "Keep off the Grass/Pennies"
* Episodes 5a & 5b: "Finding Cheryl/The Trio"
* Episodes 6a & 6b: "Hide/Alligator King"
* Episodes 7a & 7b: "Pete Peril/PhillipCon"
* Episodes 8a & 8b: "Morning Routine/Lost & Found"
* Episodes 9a & 9b: "Dog Park/Trading Post"
* Episodes 10a & 10b: "Check Mates/Pirate Gorgeous"
* Episodes 11a & 11b: "Chill Twins/Nightmare"
* Episodes 12a & 12b: "The Big Z/Trix Blixon"
* Episode 13: "Chosen Family"
Effects/set cosmetic tag

## Usage

```
set_cosmetic_tag = [tag]

```

Cosmetic tags can be used to override the names, color or flags of a country. By default you can use it to change a country so that it looks like another country by name and flag, but you can also use custom incomplete tags. In case an incomplete tag does not have flags, names or a color defined, then it will keep its old for whatever the new tag is missing. Tags that are incomplete are usually just called cosmetic tags.

Cosmetic tag colors are defined in:

```
common/countries/cosmetic.txt

```

Country names are defined in:

```
localisation/countries_l_english.yml

```

Cosmetic country names are defined in:

```
localisation/countries_cosmetic_l_english.yml

```

## Examples

```
HUN = { set_cosmetic_tag = AUS }

```

The above example makes Hungary look like Austria in terms of country names and flags. The color remains unchanged as "AUS" is not a defined cosmetic color. Hungary however, would only look like Austria, but still count as Hungary. (For example, Any requirements that requires Hungary to exist would still be met.)

```
set_cosmetic_tag = HUN_GREATER

```

With the death and dishonor DLC, The above example makes Hungary change its names to those of HUN\_GREATER that are defined in localisation. HUN\_GREATER is not a tag defined elsewhere and therefor only changes the name and nothing else.

TIP: When using a cosmetic tag, the country tag remains unchanged.
Common/ideologies

Ideologies is a folder found within common. It contains a file called "00\_ideologies.txt".

00\_ideologies.txt contains all ideologies found in HOI4.

## Ideology modding

Most of the time, ideologies in 00\_ideologies.txt look like this:

```
democratic = {  #rename the ideology so the game doesn't freak out

	types = {  #types of your ideology

		conservatism = {
		}

		liberalism = {
		}

		socialism = {
		}
	}

	dynamic_faction_names = {
		"FACTION_NAME_DEMOCRATIC_1"
		"FACTION_NAME_DEMOCRATIC_2"
		"FACTION_NAME_DEMOCRATIC_3"
		"FACTION_NAME_DEMOCRATIC_4"
		"FACTION_NAME_DEMOCRATIC_5"
		"FACTION_NAME_DEMOCRATIC_6"
	}

	color = { 0 0 255 }   #color of your ideology

	rules = {
		can_declare_war_on_same_ideology = no
		can_force_government = yes
		can_send_volunteers = no
		can_puppet = no
		can_lower_tension = yes
		can_only_justify_war_on_threat_country = yes
		can_guarantee_other_ideologies = yes
	}

	war_impact_on_world_tension = -1.0
	faction_impact_on_world_tension = -0.1

	modifiers = {   #ideology modifiers
		generate_wargoal_tension = 1.00
		join_faction_tension = 0.80
		lend_lease_tension = 0.50
		send_volunteers_tension = 0.50
			guarantee_tension = 0.25
		take_states_cost_factor = 0.25
		annex_cost_factor = 0.5
	}

	faction_modifiers = {
		faction_trade_opinion_factor = 0.50 #plus 50% trade opinion
	}
	ai_democratic = yes # uses the democratic AI behaviour
}

```

### Naming your ideology and creating types of your ideology

If you want to create an ideology, you should start by copying a pre-existing ideology and pasting it at the bottom. The first thing you need to do after copying your ideology is renaming your ideology. Make sure the name isn't already taken.

```
[ideology name] = {

```

Next, if you want to make different types of your ideology, you need to rename the pre-existing types that you copied and pasted.

```
types = {
  [type1] = { }
  [type2] = { }
}

```

### Giving your ideology a color

```
color = { [R value] [G value] [B value] }

```

You need to change the color of your ideology so that you can tell it apart from democracy or communism. You can use an online RGB color picker for this, I recommend using this. Once you have your color, copy the RGB value and paste it into the RGB placeholder, and remove anything other than the numbers. Now your ideology has a unique color.

### Optional things

Things like ideology rules, modifiers and faction names are optional, although you probably *should* edit those.

#### Rules and modifiers

The rules are self-explanatory. Change the "yes"' and "no"'s around until you are happy.

Ideology modifiers modify what impact the ideology has on the world. Editing modifiers are basically the same as editing rules, except that you have to edit decimals instead of "yes"' and "no"'s.

Now you have an ideology!

more TBA
Crashes and Issues

This page is meant for reporting different types of crashes and issues and how to solve them.

### **"The game seemingly randomly crashes when nothing special is happening; or crashes when I click on a certain state"**

There is a lot of mods that mess around with states, provinces and factory amounts on states. If the buildings file isn't updated then the game will eventually crash because of it. Combining multiple of these mods makes the game even more unstable. Try to relaunch the game in debug mode with the mods enabled and see if it complains about buildings on launch. If it does, See the nudge! part in Tools.

### **"One of my modded files doesn't work at all!"**

Whenever there are issues in most files such as localization, events, national focuses, ideas, etc, the game will continue running despite detecting problems with a file. Turn on debug mode and restart the game, were there any issues detected? If not, it is possible that the names you used do not match up with those of the actual game files. Check for spelling.

### **"The game crashes on launch!"**

This is usually a problem that the game does not know how to solve. State files (history/states) in particulary are very volatile in their nature to crash the game on launch without any warning in case just a single character is out of place or a single ID is unaccounted for. Hopefully debug mode can tell you which state in particular something went wrong.

### **"The game crashes when a campaign is d/loaded!"**

This happened to me some time ago, its really annoying but there is a simple fix. Reinstalling the game should do the trick.

### **"The game crashes after one or two countries are annexed somewhere during the very next day!"**

One issue that might cause this is if two countries both have the same country as a puppet. This will be fine for the entirety of the game, but once one of its overlords is annexed, the game crashes.
Effects/start civil war

```
start_civil_war = {
	ideology = democratic
	size = 0.3
}

```

Starts a civil war over a country's controlled states. The current country is unchanged, but the new dynamically spawned country is of the chosen ideology and gets a part of the army. The size factor decides how much of the army the newly spawned country gets.

Note: when spawning a civil war, "set\_politics" can be used first so that the new ideology still has the old ideology's focus tree, generals, bonuses, etc.
Boolean

In most programming languages, a Boolean is the value type to denote that something is either true or false, on or off, yes or no, 1 or 0. In the Hearts of Iron IV scripting language, a Boolean is noted as either "**yes**" or "**no**".

```
has_war = yes

```

The above Trigger for example, uses a boolean: the word "yes". Triggers in particularly check if specific conditions are met, to which the answer of the entire trigger end up being a yes or no answer themselves as well.

Unfortunately, the scripting language does not support more advanced boolean algebra than this. but do take a look at the AND, OR and NOT operators.
Common/national focus

## Definition

National focuses are designed within the Common/national focus folder. Each file represents a single national focus tree.

## Syntax

Example

```
focus_tree = {
	id = czech_focus
	default = no
	continuous_focus_position = { x = 50 y = 1100 }

	country = {
		factor = 0
		modifier = {
			add = 10
			tag = CZE
			has_dlc = "Death or Dishonor"
		}
	}

	focus = {
		id = CZE_fortification_studies
		icon = GFX_goal_generic_construct_military
		x = 3
		y = 0

		cost = 10

		ai_will_do = {
		   factor = 200

		}

		available = {

		}

		bypass = {

		}

		cancel_if_invalid = yes
		continue_if_invalid = no
		available_if_capitulated = no

		complete_tooltip = {

		}

		completion_reward = {
			add_ideas = CZE_fortification_focus
		}
	}
}

```

ai\_will\_do\_value
Operators/any other country

```
any_other_country = {
    has_political_power > 300
}

```

Checks if one or more other countries have more than 300 political power.

## Extra

```
NOT = { any_other_country = {
    has_political_power > 300
} }

```

The above means: if **every** country has less than 301 political power.

```
any_other_country = {
    NOT = { has_political_power > 300 }
}

```

The above means: if **any** country has less than 301 political power.

```
NOT = { any_other_country = {
    NOT = { has_political_power > 300 }
} }

```

The above means: if **every** country has more than 300 political power. Because every\_other\_country cannot be used for triggers, this is a workaround with which you can use any\_other\_country for that purpose instead.
Variables

Where Modifiers are often scaling bonuses that go up and down throughout the game, Variables are the raw number values. The amount of political power a country has is for example a game variable that can be read with "has\_political\_power" and used as a trigger. Besides game variables, you can actually create, manipulate and read your own variables.

Variables provide powerful but widely unused tools within ParadoxScript that allow for more dynamic and scaling effects, conditions and rewards. You can store a number inside a variable, and then use it later as part of some other condition or effect. Variables are quite hard to use, because the list of game variables is incomplete, and whether or not variables can be used in a specific context is inconsistent.

**Game variables**: Game variables are read-only numbers and statistics about the current game state, there is a set list of game variables that can be referenced, which is quite incomplete. They can be read and stored like other variables, and most of them can also be used as triggers to check if they are higher or lower than another number.

**Storing variables**: "set\_variable" (or "set\_temp\_variable")

**Reading variables**: As triggers with check\_variable and to a lesser extend: has\_variable. As effects you can sometimes use them within their scope by writing their name where normally a number is expected. It is unclear under what circumstances this does not work.

**Manipulating variables**: "add\_to\_variable", "subtract\_from\_variable", "multiply\_variable", "divide\_variable", "clamp\_variable", "round\_variable". (or X\_temp\_variable)

https://hoi4.paradoxwikis.com/Variables

## Examples

To help increase the use of variables and temp variables, please add any examples you have below:

 Political power gained based on number of core states :

```
add_political_power = num_core_states

```

Normally you must put a number behind the add\_political\_power effect, but here you see it replaced with num\_core\_states, which is a game variable that can be accessed within country context.

 Stability based on conscription:

```
set_temp_variable = { temp1 = modifier@conscription }
multiply_temp_variable = { temp1 = 3 }
add_stability = temp1

```

The above example sets temp1 as a temporarily variable, that is equal to the current country's conscription rate. Conscription rate is not a variable, but a modifier, that is why "modifier@" is used in front of it. It then multiplies that number by 3 and adds it as stability to the current country. I believe both conscription rate and stability are used here as factors where 0.01 = 1%.
IF

```
IF = {
    limit = { TAG = GER }
    add_political_power = 100
}

```

The above example adds 100 political power if the tag of the country is that of Germany.

IF can be followed up with ELSE or ELSE\_IF to chain conditions or create switches:

```
if = {
    limit = {
        original_tag = GER
    }
    add_stability = 0.1
}
else_if = {
    limit = {
        original_tag = ENG
    }
    add_stability = 0.25
}
else = {
    add_stability = 0.05
}

```
Operators

## Definition

The operators are a special list of characters and keywords that are used in many placed to represent certain arithmatic ideas.

## Base operators

 (equals) Curly Brackets
 Bigger than
Smaller than
<

## Special operators

###

## State operators

 any\_neighbour\_state
 random\_owned\_state
 random\_owned\_controlled\_state
 any\_state
 random\_state
 every\_state
 every\_owned\_state
 all\_state
 all\_owned\_state
Modifiers

## Explanation

A modifier is a numeric multiplier that represent certain strengths and weaknesses of a country. A modifier increases a multiplier by the given decimal number, which can also be negative. Modifiers can unfortunately not directly be used in place of triggers or effects (but see this workaround), usually an effect from for example a national focus, would add an idea (national spirit) that contains these modifiers as permanent bonuses.

Most modifiers are by default 1.00, representing 100%. Modifiers are additive. For example, if you have two ideas that each change army organization by 0.20, then the resulting modifier is 1.40. This 1.40 (or 1.4) is then multiplied with each individual divisions organization value to get the end value.
Effects/give guarantee

## Exemplos

```
give_guarantee = GER

```

The current country guarantees Poland. If Poland declares war directly, you will be dragged into war with warranties as usual. With this command, you can guarantee countries (still unapproved) from other ideologies.

```
SWE = {give_guarantee = HUN}

```

Sweden guarantees Hungary.
Effects/swap ideas

Although in most cases, you wish to just use remove\_ideas and add\_ideas seperately, using **swap\_ideas** will show a nicer tooltip.

```
swap_ideas = {
  remove_idea = SOV_underfed_army_idea
  add_idea = SOV_food_import_idea
}

```

 Tooltip will be among the lines of "Replaces X with Y, effective change: Z"

```
swap_ideas = {
  remove_idea = SOV_underfed_army_idea
  add_idea = SOV_underfed_army2_idea
}

```

If both ideas have same localization name "Modifies X, effective change: Z"

Swap Ideas will add the given idea to the country regardless if an idea was succesfully removed or not. You might be looking to add an if statement around the swap\_ideas effect like so:

```
IF = {
	limit = { has_idea = idea1}
	swap_ideas = {
	remove_idea = idea1
	add_idea = idea2
     }
}

```
Hash

The Hash / Hash code is created by compiling all the data files that are listed within your Hearts of Iron IV installation folder, and the project folders of any mods that you have chosen to run.

In order for players to join a multiplayer game, they require the same hash as the host.

## Resetting the Hash code

If you accidently changed files in your installation folder while modding, then reinstalling the game does not fix your hash. Steam syncs these files and will place them back for you. You will need to manually delete the data files in your installation folder, and then do the following to have the files reset :

```
Steam -> right-click Hearts of Iron IV -> Local Files -> Verify Integrity of Game Files

```

## Calculating bug

There is a bug that sometimes occurs when messing with Hearts of Iron IV, where the Hash shown on the title screen (not the loader!) shows "Calculating" forever. To fix this, I have found that reinstalling the game works best. Make sure to make backups of any mods you are working on that are only located in "Documents\Paradox Interactive\Hearts of Iron IV".

I assume this bug is caused by problems within some sort of modified data file by the thread that calculates the hash on launching the game, that is stuck in a way where the hash calculation never starts. If anyone has identified which file specifically is responsible for this, please let us know in the comments.
History/units

The history/units folder contains a list of files containing division templates and unit spawning locations. Typically there is a file for each country and start date combination, However this is not reinforced.Multiple countries can call for the same unit file, and because of that, it is possible to make a file that simply contains some basic unit templates, and give that to multiple countries.

The unit files are executed when History/countries is loaded, by the "oob" command within these files. The unit file must have the exact same name as the one attached to the "oob" command.
Name

A Name or Object name is a value that references some object defined elsewhere. Names are different from Strings because they do not require quotations around the text.

Ideology names are by default : fascism, democratic, neutrality and communism, but can be changed within the ideology file.

```
has_ideology = fascism

```
Effects/set technology

```
set_technology = {
	tech_recon = 1
	gw_artillery = 1
        tech_mountaineers = 1
        motorised_infantry = 1
        synth_oil_experiments = 1
}

```

The above example gives 5 free techs, but only if they aren't already researched. If they are already researched, then those techs are ignored. each tech corresponds with a single button in a research tree.

Tip: Use this when handing out divisions to make sure the player has all the technology required for that division, otherwise the division will fight badly.
Number

The data type for numbers in Hearts of Iron IV scripting is simular to that of a "decimal", "float" or "double" in other programming languages. It can be both a positive number or a negative number, and it allows for decimal fractions.

```
unity_factor = -0.15

```

Numbers are most used with modifiers, such as the numeric bonuses of ideas, but they tend to appear almost everywhere. The above example removes 15% national unity from the country's current national unity. Most percentages you see will be stored in decimal fractures as above, where a number of 1 would represent 100%.
ROOT

## Definition and use

ROOT is an operator that is used in many places. It can be used instead of any country tag wherever it is allowed. In which case, ROOT will refer to the active country tag that caused the effect.

```
GER = { has_war_with = ROOT }

```

Even if the above trigger were to occur multiple times, it would always refer to whatever country it is that actually handles the national focus, idea, news event, political advisor, or whatever it is that used the above trigger as part of its actions.

Because ROOT can be used as a country tag, it is possible to use it as a country-tag operator :

```
ROOT = { has_war_with = GER }

```

However, because the system already looks at everything by default from the current country's perspective, this is often not necessary. The above statement is often the exact same thing as below :

```
has_war_with = GER

```

Exception: Be careful using ROOT in a major event that is sent to all countries. In a major event, ROOT is NOT the currently active country receiving the event, but rather, the country scope at which the event was fired at that time.

## Other uses

Sometimes, in actions and events, ROOT can be used as always to denote the original country, but a second keyword FROM can be used as a keyword to denote the "other" involved country, that instigated the effect before ROOT did.

There are some other scenario's where ROOT can be used to replace a value with simply ROOT to refer to the value that the current country. Such as :

```
GER = { has_government = ROOT }

```

would return true if both you and Germany had the same government ideology.
Effects/add named threat

```
add_named_threat = { threat = 2 name = generic.15.t }

```

The above example adds 2 world tension. When looking at world tension, the localization name for "generic.15.t" will be shown. (This could be the title attached to the event that caused the threat.)

Tip : add\_named\_threat can also remove threat by using a negative number..
.mod file

The .mod file is the file that tells the HOI4 launcher where your mod is located, and as a result it will show up in the launcher's mod list. In windows, the .mod files are saved in :

```
 Documents\Paradox Interactive\Hearts of Iron IV\mod

```

(This folder might not exist yet if you haven't downloaded any mods yet.)

When playing the game through steam, this folder will be filled with .mod files from all the mods you have downloaded from the steam workshop. The link to where the actual mod is located can be found inside the .mod files. The .mod files are best saved in UTF-8 BOM encoding.

Example of a .mod file for an archive (.zip) mod :

```
name="Mod"
archive="C:\\Steam\\program files\\workshop\\content\\684652\\4564628875/Mod"
tags={
	"Balance"
	"Fixes"
	"Gameplay"
	"Military"
}
remote_file_id="4564628875"
supported_version="1.5.1"

```

To use relative pathing for a folder you can use this :

```
name="~ World Imperia"
path="/mod/worldimperia/"
tags={
	"Alternative History"
	"Map"
	"Gameplay"
	"National Focuses"
}
supported_version="1.5.*"

```

Warning: When using relative paths, the relative path starts moved up one directory from where you might expect.

Tip: You can use asterisk (\*) within the version, so that it supports all versions regardless of the number that was replaced with the asterisk.

Tip: For google drive support in windows, you can use the following path :

```
path="../../../Google Drive/mymod/"

```

(the ".." means it moves up one directory)
Modifiers/war support weekly

```
war_support_weekly = -0.01

```

Note : War Support is calculated by taking the base war support, which can't be lower than 0% or higher than 100%, and then adding other war support modifiers on top of that. This means that sometimes war support cannot increase or decrease any further despite not having reached a total of 0% war support or a 100% war support.
Operators/every other country

```
every_other_country = {
	limit = {
		NOT = { tag = GER }
		has_government = fascism
	}
	add_opinion_modifier = { target = GER modifier = MR_pact_fascists }
}

```

```
every_other_country = {
	limit = { is_in_faction_with = FRA NOT = { has_war_with = ENG } }
	ENG = { add_to_faction = PREV }
	add_ai_strategy = {
		type = alliance
		id = "ENG"
		value = 200
	}
}

```