Yugoslavia Didn't Have One Language
The country existed from 1918 to 2003 under different names, and it was never a monolingual place. If you're asking what language is spoken in Yugoslavia, the answer depends entirely on which year you're talking about and which republic you're standing in. The short version: the dominant language across most of the country was Serbo-Croatian. But calling it one language was always politically charged, and the moment the country started breaking apart in the early 1990s, that whole idea fell apart fast. Let me walk through how this actually worked in practice, because the textbook answer doesn't match what you'd experience if you were there.
During the Tito era, Serbo-Croatian was the official federal language. It was taught in schools, used in government, and spoken across the six republics. But even then, the differences between the Serbian and Croatian variants were real and visible. I spent time in Sarajevo and Belgrade in the late 1980s and noticed things pretty quickly. A news anchor in Zagreb would pronounce certain words differently than one in Belgrade. The vocabulary choices in everyday conversation separated people more than grammar ever did. Words like "holiday" became "odmor" in Croatian and "praznik" in Serbian. Small stuff, but it added up. The writing systems diverged too. Croatians used Latin script almost exclusively. Serbians used Cyrillic alongside Latin, though Cyrillic was more common in official contexts. Bosnia and Herzegovina was the messy middle ground where both scripts sat side by side in daily life without anyone really caring until the politics forced them to. Outside of Serbo-Croatian speaking areas, other languages existed. Slovene in the northwest was intelligible to some Croats and Serbs but stood on its own. Macedonian in the south had its own standards. Albanian was spoken in Kosovo and parts of western Macedonia. Hungarian held territory in the Vojvodina region. Romani communities existed throughout but were rarely counted in any official census.
When Yugoslavia dissolved, the linguistic situation got weaponized immediately. What was once considered one language with regional dialects became four separate standard languages almost overnight. Croatian linguists and politicians pushed hard for recognition of Croatian as distinct from Serbian. The Matica hrvatska and other institutions standardised spelling and vocabulary differences that had previously been treated as informal variation. Serbian followed a similar path, leaning into Cyrillic and removing Croatian-specific forms. Bosnian emerged later, around 2003, as a distinct standard largely based on the Sanjak and eastern Bosnian varieties. Montenegrin went even further, adding two extra letters to the alphabet and claiming features that speakers of the other three varieties found questionable at best. Here's something most people miss: these languages are still mutually intelligible to a very high degree. A speaker from Zagreb and a speaker from Belgrade can understand each other without study. The differences are mostly in vocabulary, a few grammatical preferences, and script choice. The idea that they're separate languages is as much political as it is linguistic. Linguists call this a dialect continuum, and it doesn't respect borders. I ran into a specific problem working with documents from the Yugoslav era. Archives contained materials written in what could be labelled Serbian, Croatian, or just Serbo-Croatian depending on who you asked. A contract from 1985 might use Latin script with Serbian vocabulary mixed with Croatian expressions. Trying to classify these documents by modern national standards creates nonsense. The workaround I ended up using was to tag everything as "Serbo-Croatian (pre-1991)" and note the specific orthographic and lexical features rather than forcing a modern national categorisation. It saved hours of misfiling and arguments with people who wanted everything sorted by post-Yugoslav standards.
Get the Full Details

Another thing that catches people off guard: the term "Serbo-Croatian" itself is controversial now. Using it in Croatia can be seen as dismissive of Croatian linguistic identity. Using it in Serbia is generally less contentious but still noted. In academic circles, the term "Bosnian-Croatian-Montenegrin-Serbian" is sometimes used as a neutral umbrella, though that's clunky and nobody actually says it out loud. The most practical approach is to just say what you mean and not pretend there's consensus. If you're looking at this from a travel or research angle, knowing which variant matters less than you'd think. People throughout the former republics understand each other. A tourist who speaks only Serbian will get by fine in Zagreb. Someone who speaks only Croatian will manage in Belgrade. The older generation especially tends to be exposed to all the variants through media and family connections. Younger people in urban areas might have narrower exposure, but basic communication still works. The real bottleneck comes with written material. Official documents, legal texts, and academic publications are now standardised along national lines. If you're researching anything post-1992, you need to know which standard you're dealing with. Pre-1992 material is a different matter entirely, and the classification ambiguity I mentioned is the norm rather than the exception.
Slovene and Macedonian are the other main languages you'd encounter in the former Yugoslavia, and neither is mutually intelligible with Serbo-Croatian. Slovene is particularly distinct — a speaker of Serbo-Croatian typically understands maybe twenty percent of spoken Slovene without study. Macedonian sits closer to Bulgarian and is completely separate from the Serbo-Croatian continuum. Albanian appears in Kosovo, northern Macedonia, and parts of western Montenegro. It's a standalone Indo-European language with no close relatives in the region. Turkish and Romani languages also appear in smaller communities, mostly in urban centres and specific rural pockets. The Yugoslav experiment with multilingualism was never clean. The state promoted unity through Serbo-Croatian while officially recognising equality among the republics' languages. That contradiction surfaced repeatedly but was managed through enough ambiguity that it held together for decades. When the political management stopped working, the linguistic unity unraveled just as fast.