Stylized world map with glowing flag markers for an HoI4 country tags guide.
Governments fall, flags change, countries rename themselves — the three-letter tag is what the game actually remembers.

Most people arrive at this topic looking for a list: every country, every tag, copy-paste ready. That list is the wrong artifact. Any static table is a snapshot of vanilla on some particular date, and your save is not that snapshot — it has mods, or a newer DLC, or a civil war that split a major power twenty minutes ago. The players who never get stuck on tags are not the ones who memorized a table. They understand what a tag is, they can read any tag straight off the map in five seconds, and they know which layer of the tag system a weird three-letter code belongs to. That is the whole skill, and it takes about ten minutes to install.

What a Country Tag Actually Is

A tag is a country's primary key. Everything you can see — the name, the flag, the map color, the ruling ideology — is decoration the game hangs off three letters. When France capitulates and a rump state appears, when a civil war cleaves a country in two, when a mod resurrects Prussia, the engine is not reasoning about names and flags. It is shuffling tags.

Three consequences are worth internalizing, because they explain nearly every tag question that comes up:

The tag is what every system addresses. Console commands, scripted events, focus trees, save files, and mod scripts all refer to countries by tag. Fire event Poland.12 and you get Wojtek the bear, because the event system routes on a per-country namespace, not the display name you see on the map. Learn a country's tag and you can target it with anything the game can target.

Cosmetic change is not identity change. A country can flip ideology, rename itself, and swap its flag while keeping the same tag — as far as the engine is concerned, it is the same country. The unaligned United States (tag USB) even keeps the name "United States of America" under every ideology; only its color and flag move. This is why a save can look completely different from the 1936 bookmark and still run on the same set of tags underneath.

One country can wear several tags across its life. Spain is the textbook case: SPR on the map, with SPA, SPB, and SPC waiting in the game files for the Civil War's Republicans, Carlists, and Anarchists. The tags exist before the countries do.

That last point opens onto the full picture. The tag space has three layers, and most confusion about tags is really confusion about which layer you are looking at:

  • Static tags belong to countries that exist at the bookmark — GER, SOV, ENG, BRA. These are stable for years at a time and are the only tags worth memorizing.
  • Scripted tags are defined in the game files but dormant, waiting for a focus, decision, or event to wake them up. DDR and WGR do not exist in 1936; they activate if Germany gets partitioned. The Confederate States tag CSA sits idle unless an American civil war fires.
  • Dynamic tags are runtime placeholders. When a country is born without a static tag of its own — a release, a collapse, a modded balkanization — the game hands it the next spare from a pool that runs d01 through d75 in the files. This is the layer that surprises people: you hover a brand-new country and tdebug reports d14 instead of a name.

Hold those three layers in your head and every "weird tag" question answers itself. The table you found online covers layer one, maybe layer two. Layer three exists only in your save — which is why the next section is the one method that never lies.

How to Find Any Tag In-Game

The durable skill is not knowing tags. It is discovering them, on demand, in the save you are actually playing. The tool is tdebug, and the workflow takes five seconds.

First, the gate: the console exists in every save except Ironman. Ironman is the achievement-locked mode, and no console means no tags-by-command — that is by design. Open the console with the tilde key (~), the one under Escape and left of 1. On keyboard layouts where that key does not exist, Shift+Alt+C does the same job. The same input closes it.

Then the workflow:

  1. Run tdebug and hover the country. The tooltip now carries technical data the normal tooltip hides: the country's TAG, the State ID, and the Province ID under the cursor. Hover Yugoslavia and it reports YUG; hover a province inside it and you get that province's numeric IDs — the same trick feeds commands like add_core that want a state number rather than a tag.
  2. Read the tag, use the tag. tag YUG and you are now playing Yugoslavia. No setup, no prerequisites — the command simply transfers control.
  3. Run tdebug again when you are done. It is a toggle, and leaving the debug overlay on turns every tooltip into a wall of IDs.

Two console habits make everything beyond this easy:

  • Tab autocompletes. Type the first letters of any command and press Tab; the console lists the matches. Nobody memorizes command names — you type ann and let the console finish it. This doubles as on-the-spot spelling verification: if Tab completes it, it exists in your build.
  • help is the built-in manual. Bare help lists every command. help tag prints exactly what that command expects — parameter types, order, effect. When a command takes a tag, help will say so explicitly. Up and Down arrows cycle your command history, which saves retyping long commands after a typo.

Here is why this beats any table, including the one later on this page: a table is a snapshot, and your save is live. A mod can add twenty countries. A DLC can make a new nation formable. A civil war can split a major in half during your lunch break, and the newborn side gets a tag that existed in no list an hour ago. tdebug reads the save in front of you. Use tables to recognize the majors at a glance; use tdebug for anything that matters.

The Tags Worth Memorizing

Memorize the majors — and only the majors. Every guide, every event popup, every multiplayer conversation assumes you know them, and they have been stable for a decade. Everything below that tier is lookup material, and looking it up costs two seconds with tdebug.

TagCountryWorth noting
GERGermanyThe anchor of the European timeline.
SOVSoviet UnionNot RUS or URS — the game tags the polity, not the geography.
USAUnited StatesShadow tags USB and CSA wait for its civil-war variants.
ENGUnited KingdomThe classic trap: it is ENG, never GBR or UK.
FRAFranceThe workbench tag of most console examples.
ITAItalyRDS and RSI exist in the files for its split scenarios.
JAPJapanSecond classic trap: JAP, not JPN.
POLPolandHome of the Wojtek bear event, event Poland.12.
SPRSpainThe parent tag; SPA, SPB, SPC activate during the Civil War.
CZECzechoslovakiaThe Munich crisis runs on this tag.
HUNHungaryA favorite minor-axis sandbox.
ROMRomaniaOil makes this tag matter more than its size suggests.
YUGYugoslaviaBreaks apart into a whole family of tags — see the hidden layer.
BULBulgariaThe Balkans' swing state.
BELBelgiumThe standard test dummy in console tutorials.
SWISwitzerlandThe standard annex victim, for reasons of tradition.
HOLNetherlandsNot NED or NET.
PORPortugalA common fascist-sandbox ally tag.
CHINationalist ChinaPRC is the communist counterpart — two Chinas, two tags.
CAN / AST / RAJCanada / Australia / British RajThe tags you meet the moment you play the Commonwealth.
The tier worth knowing cold. Note the pattern in the right column: the traps are all cases where the tag follows history or engine convention instead of the modern country code.

The two naming traps catch everyone exactly once, so get them out of the way now: the United Kingdom is ENG — England — and Japan is JAP. The game inherits older Paradox conventions rather than modern ISO codes, and no amount of typing GBR will change that. Beyond the majors, resist the urge to memorize: minors are numerous, formable nations arrive with DLC, and the lookup is faster than the flashcards.

Commands That Take a Tag

Tag commands are not a random assortment. They come in three shapes, and once you see the shapes, parameter order stops being a guessing game.

Shape one: one tag. command <TAG> acts on that country from your perspective — annex SWI absorbs Switzerland into whoever you are playing, tag BRA makes you Brazil.

Shape two: two tags, and order is grammar. puppet FRA SPR reads "France puppets Spain" — puppeteer first, target second. Reverse the tags and you have just made France a Spanish puppet, silently, with no warning. whitepeace GER FRA is the symmetric version: a peace between the two, order irrelevant.

Shape three: a map ID plus a tag. Some commands marry a selected or numbered map object to a country. add_core 158 FRA grants France a core on state 158 — the state number comes from a tdebug hover. Leave the tag off and the core goes to whoever you are currently playing. set_owner FRA hands the currently selected state to France; set_controller FRA does the same at province level for the selected province.

When in doubt about which shape a command uses, help <command> prints it. That is the intended workflow, and it beats guessing, because a reversed two-tag command does the opposite of what you wanted and says nothing about it.

CommandWhat it doesExample
tag <TAG>Transfers control — you now play that country.tag YUG
tag_color <TAG> <R> <G> <B>Repaints a nation's map color.tag_color FRA 20 40 120
annex <TAG>Absorbs the country outright, no war needed.annex SWI
puppet <puppeteer> <target>Makes the second tag a puppet of the first.puppet FRA SPR
whitepeace <TAG> <TAG>Ends the war between the two tags.whitepeace GER FRA
civilwar <ideology> <TAG>Detonates a civil war in that country.civilwar f BEL
add_core <stateID> <TAG>Grants a core on a state (ID from tdebug).add_core 158 FRA
set_owner <TAG>Gives the selected state to that tag.Select a state first.
set_controller <TAG>Gives the selected province to that tag.Select a province first.
deleteallunits [TAG]Deletes land and naval units — air wings survive. No tag means your own.deleteallunits FRA
add_interest <TAG> / remove_interest <TAG>Adds or drops a country in your strategic interests.add_interest BEL
event <tag>.<id>Fires a scripted event directly.event Poland.12
The tag-taking toolkit. Ideology-parameter commands use single letters: f = fascism, d = democratic, n = neutrality, c = communism — so civilwar c BEL is a communist uprising in Belgium.

One distinction trips up nearly everyone on the first try. add_popularity c 100 pushes communist support in your country to one hundred percent — and changes nothing about who governs. Popularity is a poll number. To actually hand power to the communists you need set_ruling_party c. One command moves the percentage, the other moves the power, and players who conflate them spend ten minutes wondering why their referendum never fires.

The event command deserves a line of its own. Event IDs live in the game's event files as plain text, addressed by tag: event france.11 proposes the Franco-British Union, event Germany.71 kills Hitler and makes you choose a successor. The pattern is the portable knowledge; the files are readable, and the console's Tab completion helps you land the exact spelling.

Finally, the sandbox warning that belongs on every console page but matters especially here. Some toggles do not care which tag you typed — they rewrite the rules for the AI as well. instantconstruction, instanttraining, focus.autocomplete, no cb, and yesman all apply worldwide while active. Leave them running and the entire planet starts building instantly, ignoring focus prerequisites, and declaring wars for no reason. The discipline is simple: enable, do your thing, disable. yesman in particular is a toggle you must run a second time to switch off — the AI accepting every diplomatic offer is fun for exactly one afternoon, until it is the AI making the offers.

The Hidden Layer: Split, Dynamic, and Ghost Tags

This is the part most tag guides skip, and it is exactly where "why does tdebug show me d14?" gets answered. Beyond the majors and minors sits a whole second wardrobe of tags: countries the game keeps in reserve, countries it improvises at runtime, and countries that exist only as ghosts in the files.

One country, four tags: Spain. The Spain on your 1936 map is SPR. But the files also define SPA, SPB, and SPC — the Nationalist, Carlist, and Anarchist splinters the Civil War machinery can activate. Those three double as dynamic tags d01, d02, and d03: the Spanish Civil War is so central to the 1936 setup that its placeholders were promoted to named tags. When the dust settles, the winning side carries SPR forward, and the splinter tags go quiet again.

A country that breaks into an alphabet: Germany. Beyond the Cold War pair — DDR in the east, communist by default, and WGR in the west — France can partition Germany into historical states, each with its own tag: PRE for Prussia (by far the biggest piece), BAY for Bavaria, SAX for Saxony, HAN for Hanover, MEK for Mecklenburg, WUR for Württemberg, SHL for Schleswig-Holstein. If you sandbox a partition and tdebug starts reporting codes that look like airport identifiers, this is why.

Countries with the serial numbers filed off. When Yugoslavia breaks apart, most pieces get proper tags — Slovenia, Croatia, Bosnia, Herzegovina — but two are odd. Dalmatia is Croatia with a fixed name and flag regardless of ideology: the same cores, none of the personality. And Transylvania gets no static tag at all; it borrows a dynamic one. The American civil war has its own pair: CSA, the Confederacy, starts democratic and coreless under AI control, but in a player's hands it can hire a communist revolutionary and become the Confederacy of American Workers. USB, the unaligned United States, holds every American core and keeps the name "United States of America" under any ideology while its flag and color shift to match.

Ghost tags. Some tags exist in the game files with no legal path to ever appear in a vanilla campaign. ADU, Andalusia, is the clean example: defined, flag included, coreless, unreachable outside a special scenario preset. Italy's RDS and RSI are stranger still — they behave less like countries and more like attributes of a split event, and treating them as normal selectable nations is where the confusion starts. The lesson: a tag in the files is not a promise of a playable country.

Dynamic tags are spare parts. When a released or formed country has no static tag waiting for it, the game assigns the next free placeholder from a pool that runs d01 through d75 in the files. Two things are worth knowing. First, d01 through d03 are already spoken for by Spain's factions, so the free pool effectively starts at d04. Second, the pool is not infinite in practice: mass-spawn experiments — dozens of releases in a single save — start failing silently somewhere in the fifties of the range. If you hover a newborn country and see a d-tag, nothing is broken. You are watching layer three of the tag space do its job, and the tag works everywhere a static tag would.

Tags in Mods: How a New Country Gets Its ID

Even if you never open a modding tool, this section earns its keep: it explains every "the mod country doesn't show up" failure you will ever debug in someone else's campaign. Because once you see how a tag is wired in, you can diagnose a broken country from its symptoms alone.

The tag is step one of a checklist, and everything downstream references it. A new country needs a tag definition, a country file, a history file, a color, flags, characters, localization, map placement, and an order of battle. Miss one item and the country either never appears or appears broken — and because the tag is what every other file points at, a tag mistake cascades through all of them.

The definition itself is one line in common/country_tags/, mapping three letters to a country file:

BKB = "countries/BikiniBottom.txt"

Two rules decide whether that line works:

  • The tag must be unique. Search vanilla's country_tags files before choosing one. Reusing a vanilla tag does not produce a clean error — it produces a collision, and collisions are confusing to diagnose.
  • The mod's folder structure must mirror vanilla exactly. The game does not go looking for your country in folders it does not expect. A file in the wrong place is a country that silently does not exist.

The rest of the checklist, compressed to what actually breaks:

  • Color lives in two files that must agree. The RGB triplet in the country file and the entry under your tag in common/countries/colors.txt. Skip the second and your map counters stay gray even though the country color is set. Worse, colors.txt is a singleton: shipping it in a mod makes you incompatible with every other mod that adds countries, and it must be re-synced whenever a patch adds vanilla nations.
  • The history file sets the starting state — capital, ruling ideology, starting popularities. The popularity percentages must sum to exactly one hundred; anything else is an invitation to bugs.
  • Flags come in three sizes — large, medium, small — used in different UI contexts, and a missing ideology-specific flag falls back to the file with no ideology suffix. One generic flag is a valid shipping strategy.
  • No order of battle, no army. A country without an OOB file has no division templates and literally cannot build divisions. The oob = "..." line in the history file must match the OOB filename, minus extension.
  • The number-one portrait bug: a leader portrait fails to render when the leader's ideology subtype sits outside the ruling party's ideology group — a despot typed as the face of a democracy simply will not show. Fix the ideology type, not the image file.

And the meta-advice that prevents most of this: never author country files from scratch. Copy the closest vanilla country's files, rename everything to your tag, and edit. Every convention you would otherwise have to guess is already solved inside the file you copied.

Troubleshooting: When a Tag Doesn't Work

Tag problems are almost always one of six things. Find your symptom, and the fix is in the same row.

SymptomLikely causeFix
The console will not openIronman save, or the ~ key is missing on your layout.Ironman disables the console, full stop — use a normal save. Exotic layouts: try Shift+Alt+C.
tag XYZ does nothingThat tag does not exist in this save — typo, mod, or missing DLC.Read the live tag with tdebug and retry. The tooltip is authoritative.
A command ran but did the oppositeReversed parameter order on a two-tag command.help <command> prints the exact order. Actor first, target second.
A tag from an online list failsThe list predates your DLC or mod, or the country was born mid-campaign.Treat lists as major-tag mnemonics only. tdebug is the only current list.
tdebug shows d04, d14, etc.Dynamic tag — a newborn country with no static tag.Nothing to fix. Use the d-tag exactly as you would a normal one.
Modded country never appearsFolder structure does not mirror vanilla, or the country_tags line is missing.Mirror the vanilla tree exactly; verify the tag-to-file mapping line.
Modded country shows gray map countersMissing entry in colors.txt.Add the tag's RGB there as well as in the country file.
Modded leader portrait does not showLeader's ideology subtype is outside the ruling party's group.Set the leader's type to one inside the ruling ideology group.
Modded country cannot build divisionsNo OOB file, or the oob name does not match the file.Create history/units/<TAG>_<year>.txt and match the name, minus extension.
The first five rows are player problems; the last four are mod problems. If you can tell which side of that line you are on, you are halfway to the fix.

FAQ

What is a country tag in HoI4?

A three-letter identifier — the address the game uses every time it touches a country. Console commands, events, focus trees, save files, and mods all refer to nations by tag: GER, FRA, BRA. The name and flag are decoration; as far as the engine is concerned, the tag is the country.

How do I find a country's tag in-game?

Open the console in a non-Ironman save (tilde, or Shift+Alt+C), run tdebug, and hover the country. The debug tooltip lists its TAG alongside the State ID and Province ID. Run tdebug again to switch the overlay off.

Why doesn't the tag from a list work in my game?

Because your game is not the list's game. Mods add and replace tags, DLC adds formable nations, and civil wars and releases create countries mid-campaign — often under dynamic tags like d14 that appear in no table. tdebug reads your actual save; use it for anything that is not a major.

Can I use tag commands in Ironman?

No. The console is disabled in Ironman saves — that is how achievements stay honest. Every command on this page requires a non-Ironman game.

What is the difference between add_popularity and set_ruling_party?

add_popularity c 100 pushes communist support to one hundred percent and changes nothing about who rules. It moves a poll number. set_ruling_party c actually hands power to the communists. Popularity is the percentage; the ruling party is the power.

What are dynamic tags like d01 or d14?

Runtime placeholders the game assigns when a country is born without a static tag of its own — a release, a collapse, a modded balkanization. The pool runs d01 through d75 in the files, with d01 through d03 reserved for Spain's Civil War factions, and in practice it starts running dry in the mid-fifties if you spawn dozens of countries at once.

Do I need to memorize country tags?

Only the majors — GER, SOV, USA, ENG, FRA, ITA, JAP, and the neighbors you play against — because guides and events assume you know them. For everything else the console does the work: Tab autocompletes commands, and tdebug reports the tag under your cursor.

Next Reads