Why Some Steam Workshop Items Can't Be Downloaded Directly
Some Workshop items give a direct download link and some do not. We tested 192 items across 8 games to find the pattern. Here is what decides it.
Paste one Workshop URL into a downloader and you get a file. Paste the next and you are told there is no download available. The item is public, the page loads, the file size is right there — so what is different? The answer comes down to one field in Steam's API, and it is decided by how the item was uploaded years ago. We tested 192 items across 8 games to map it out.
The short answer
Steam publishes a direct download URL only for Workshop items stored as a single file. Items composed of multiple files are served through Steam's chunked content delivery system, which exposes no single link.
This is not a restriction any downloader can route around. Every browser-based tool — this site included — reads the same public Steam endpoint. If Steam returns an empty URL, there is nothing to fetch. The workaround is SteamCMD, which talks to the content system the way the Steam client does.
Two eras of Workshop hosting
The Workshop has been running since 2011, and how it stores content changed along the way. That history is what you are bumping into.
Steam Cloud / RemoteStorage
Early Workshop items were handled by the same system as Steam Cloud saves. An item was one uploaded file — a map, an archive, a skin — parked on Steam's content network at a fixed address. Anything knowing the item ID could ask for that address and receive it.
Games whose mods are naturally one file kept using this model. A Garry's Mod addon is a single
.gma. A Source map is a single compiled file. There was never a reason to change.
SteamPipe UGC
As mods grew into whole directory trees — dozens of assets, config files, localisation folders — the one-file model stopped fitting. SteamPipe handles content as chunks, enabling delta updates so a changed texture does not re-download a 2 GB mod.
The trade-off is that a chunked, multi-file item has no single URL. There is no one file to link because the item is not one file. Asking for a direct download is asking for something that does not exist.
This is not a permissions thing
The single field that decides it
Steam exposes Workshop metadata through a public endpoint that needs no API key:
POST https://api.steampowered.com/ISteamRemoteStorage/GetPublishedFileDetails/v1/
itemcount=1
publishedfileids[0]=105982362
The response includes titles, file sizes, subscriber counts, tags, timestamps — and a field called
file_url. That field is the whole story.
For a single-file item, it holds a real address:
{
"publishedfileid": "105982362",
"result": 1,
"title": "gm_bigcity",
"file_size": 13889620,
"consumer_app_id": 4000,
"file_url": "https://cdn.steamusercontent.com/ugc/540690546.../990738E5..."
}
For a multi-file item, everything else is populated and file_url is an empty string:
{
"publishedfileid": "450814997",
"result": 1,
"title": "CBA_A3",
"file_size": 4840892,
"consumer_app_id": 107410,
"file_url": ""
} Note the second example. CBA_A3 is one of the most-subscribed Arma 3 items in existence, with millions of subscribers. It is entirely public. Steam reports its exact size to the byte. And it has no download URL — because it is a folder structure, not a file.
That is why a downloader can show you a correct preview with title, size and thumbnail, then fail at the download step. The metadata call succeeded. The field it needs is simply blank.
A related quirk
filename field, and it is not a filename — it is an internal storage path
such as uploads/addons/4lgxi2gl….gm, complete with directory separators and a truncated
extension. Anything using it as a save name without cleaning it up produces odd results.
What we measured across 8 games
Rather than guess at the ratio, we sampled it. We scraped real item IDs from Steam's own Workshop
browse pages for eight games, taking both the most-subscribed and the most-recent listings so the
sample was not skewed to one era, then queried the metadata endpoint for every one and counted how
many returned a usable file_url.
| Game | App ID | Tested | With link | Rate |
|---|---|---|---|---|
| Counter-Strike 2 | 730 | 24 | 10 | 42% |
| Garry's Mod | 4000 | 24 | 7 | 29% |
| Arma 3 | 107410 | 24 | 2 | 8% |
| Cities: Skylines | 255710 | 24 | 0 | 0% |
| Wallpaper Engine | 431960 | 24 | 0 | 0% |
| RimWorld | 294100 | 24 | 0 | 0% |
| Team Fortress 2 | 440 | 24 | 0 | 0% |
| Terraria | 105600 | 24 | 0 | 0% |
| Total | 192 | 19 | 9.9% | |
Every one of the 192 items resolved successfully — all were public and all returned full metadata. The only variable was whether a download URL came with it, and for 19 of them it did.
The split is stark. Three games account for every single hit; the other five returned nothing at all across 120 items. This is not noise, and it means "can I download this?" is largely answered by which game you are asking about.
About the sample
Why the pattern looks like that
The results line up with how each game packages mods.
The games that work
Counter-Strike 2 came out highest. Workshop maps are compiled artefacts — historically
a single .bsp, now Source 2 packages — so plenty are stored as one file.
Garry's Mod came second, and the reason is architectural: every GMod addon is packed
into a single .gma container before upload. One addon, one file, by design. Weapon packs,
playermodels and standalone maps came back reliably in our sample.
Arma 3 managed 2 of 24. Arma mods are typically large multi-folder structures, so the low rate is expected; the two hits were probably smaller single-file uploads.
The games that return nothing
Cities: Skylines mods are .NET assemblies with configs and assets. RimWorld
mods are strict directory trees with About/, Defs/ and
Textures/ folders. Wallpaper Engine wallpapers bundle media with project
metadata. Terraria uses tModLoader with its own packaging. In every case the item is
inherently several files, so there is no single URL to publish.
Team Fortress 2 returning zero is the mildly surprising one, given its age. Most TF2 Workshop items are cosmetic submissions for Valve to consider rather than content players install directly, so they are packaged differently from a map or an addon.
The rule of thumb that falls out: if the game's mods are one file, direct download often works. If they are folders, it never will.
Deleted and private items
A separate failure worth naming, because it is permanent. When an item has been deleted, hidden, or set to friends-only, the API returns a failure code and nothing else:
{
"publishedfileid": "2244414977",
"result": 9
}
A result of 1 means success. Anything else means the item cannot be resolved —
no title, no size, no metadata at all.
This is why no tool can retrieve a removed Workshop item. It is not a matter of finding the right downloader: Steam has stopped serving any information about it, and there is nothing on the public internet left to point at. If a mod matters to your setup, the only protection is downloading it while it is still up.
What to do in each case
If a direct link exists
Use it — it is the fastest option and needs nothing installed. Paste the URL into Steam Workshop Downloader, check the preview, save the file. Game-specific instructions: Garry's Mod and CS2 maps.
If there is no link
Use SteamCMD. It is Valve's own command-line client and speaks the same content protocol as the Steam client, so it can fetch chunked multi-file items that no browser tool can reach. One command downloads an item by app ID and item ID, and it works for every game in the table above. Our general download guide covers the setup.
If the Steam client is the problem
If subscribing normally is what failed, that is a different issue with its own fixes — see Steam Workshop not downloading and mods not showing up in-game.
If the item is gone
Nothing to be done. Look for a reupload by another author, a successor mod, or a copy someone kept. And take it as a prompt to archive the items your setup depends on while they are still available.
Frequently Asked Questions
Why do some Workshop items download instantly and others fail?
Steam publishes a direct file URL only for items stored as a single file. Items made up of several files are served through the SteamPipe content system, which has no single link to hand out. The difference is in how the item was uploaded, not in the downloader you use.
Is this a limitation of third-party downloaders?
No. Every browser-based downloader reads the same public Steam API, and that API either returns a file URL or an empty string. When it is empty there is nothing to fetch. No tool can produce a link Steam does not publish.
Which games work best for direct downloads?
In our testing, Counter-Strike 2 had the highest rate at 10 of 24 items, followed by Garry’s Mod at 7 of 24. Both package Workshop content as single files by design — a .gma addon or a compiled map. Games whose mods are directory trees returned nothing.
How do I download an item with no direct link?
Use SteamCMD, Valve’s command-line client. It speaks the same content protocol as the Steam client, so it can fetch anything the client can, including multi-file items. The command is workshop_download_item followed by the app ID and the item ID.
Can a deleted Workshop item be recovered?
No. Once an item is removed or set to private, Steam’s API returns a failure code and no metadata at all — not even the title. There is nothing left to retrieve, which is why archiving only works while an item is still public.
Does file size affect whether an item can be downloaded?
Not directly. We saw a 239 MB item with no link and a 13 MB item with one. What matters is the file count, not the total size. Large single-file items are fine; small multi-file items are not.
Will Steam ever publish links for every item?
Unlikely, because it is a consequence of the architecture rather than an oversight. The direct URL is a leftover from Steam’s older Cloud storage system. New content goes through SteamPipe, which is built around delta updates and chunked transfers rather than whole-file downloads.
Summary
One field in Steam's public metadata — file_url — determines whether an item can be
downloaded in a browser, and it is only populated for items stored as a single file. Across 192
items in 8 games we found 19 with a link, concentrated entirely in Counter-Strike 2,
Garry's Mod and Arma 3.
So the honest answer to "why won't this download?" is usually: because of how the game packages its mods, and no tool can change that. When a link exists, a browser download is the quickest route. When it does not, SteamCMD will get it. And when the item has been removed from the Workshop, it is gone for good.
Ready to download a Workshop item?
Paste any public Steam Workshop URL and get the item details in seconds. Free, no account, no Steam client needed.
Open the Downloader