Lord_TCG Dec 31, 2015 @ 5:38pm
No Game Icons When Steam Moved Hard Drives
I recently moved my Steam folder from my Basic C drive onto a larger HDD drive which went fine. However today I moved it all onto a massive 3TB HDD and all the games work fine (except for one missing its saved game data but that was due to my own human error) BUT ALL THE GAME ICONS HAVE GONE FROM MY DESKTOP SHORTCUTS!!!? They are the basic white sheet icon even though they load and run fine....HELP?!
Last edited by Lord_TCG; Dec 31, 2015 @ 5:39pm
< >
Showing 1-13 of 13 comments
wuddih Dec 31, 2015 @ 5:44pm 
that is natural that this is happening, windows stores the full icon file path for its shortcuts. if you move the files, the iconpath will still be the old one for the shortcuts.

starting the games is not problem because steam does not use any file path for that.

if you want icons back, delete them and in Steam "rightclick -> create shourtcut" for every game you need.

shouldn't take too long to do this.
Last edited by wuddih; Dec 31, 2015 @ 5:45pm
Lord_TCG Jan 1, 2016 @ 4:18pm 
I was about to send a thank you message as this sounded like the obvious solution to me. However after trying it, the new icons had the same white sheet icon.... Any new ideas?
Myth Jan 9, 2016 @ 4:33pm 
Right click on then desktop and click refresh? Sometimes happened to me and fixed it.
MartyMacGyver Feb 5, 2016 @ 12:10am 
Funny, I just ran across this problem... I don't have a quick solution but here's the outline:

When you migrate Steam you are supposed to only copy steam.exe and the steamapps folder from the old location to the new one. That's great, and the rest of the process works - except for the now-broken icons.

The shortcut files are .url files. Let's look at the internals of one (I used Cygwin 'vi' from the command prompt - otherwise you end up editing the executable the shortcut points to rather than the shortcut file itself!). This is for Carmageddon:

[{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}] <--- GUID? Prop3=19,0 [InternetShortcut] URL=steam://rungameid/249380 <---- Same App ID you see in the store! IDList= IconFile=H:\Apps\Steam\steam\games\d5abb3e97d4baaac996235388a17a134c0ec97ac.ico IconIndex=0

Of note is the IconFile value: we see the path and an icon file. Turns out, that icon file isn't getting re-generated, even if you re-create the icon (in fact, if you use Steam to re-create the icon you'll see the IconFile entry is entirely empty!)

The fix is pretty simple: copy all the .ico files from steam/games from the old location to the new one (there will be some other files there already you don't need to clobber), and then update the shortcut .url file for each game to reflect the new icon path.

Now, what if you deleted the icons? That... I'm not so sure about, but there are scripts in this thread that will go off and get all the icons from the store. Seems there should be an easier way but that'll at least get you the icon files (I do not yet know how to map the SHA1 hash that is the icon name to the game name).

Update: Note that if you do the "Create Desktop Shortcut" thing from Steam *after* you copy the icons from the old steam/games to the new steam/games folder, it works! But having the icon files is crucial to this. I think I'll file a bug.
Last edited by MartyMacGyver; Feb 5, 2016 @ 12:13am
MartyMacGyver Feb 5, 2016 @ 12:40am 
Aaaaaaand I filed a bug. We'll see how that goes. Meanwhile, the scripts posted out there *do* get the icons but to get the original icon file name all you have to do is sha1sum the icon itself. That sum == the name (e.g., for Carmageddon the icon is d5abb3e97d4baaac996235388a17a134c0ec97ac.ico - which is the sha1 sum of the .ico file itself.)
MartyMacGyver Feb 5, 2016 @ 4:59am 
One followup: parsing appcache/appinfo.vdf is hard and the scripts I referred to don't do a very good job at it. However... if you have the Steam app id and know the name of the icon file you want (but lost in the move), you can evidently retrieve it like so:

https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/<ID>/<SHA1NAME>.ico

e.g.:
https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/249380/d5abb3e97d4baaac996235388a17a134c0ec97ac.ico

I'm surprised it's not under here somewhere, but if it is it's not clear what the path or name would be:
https://steamcdn-a.akamaihd.net/steam/apps/249380/

Anyway, there you have it - how to (manually) obtain and use the right icon, even if you lost it in the migration!
Consoco Jul 28, 2016 @ 9:33am 
after deleting everything in my steam folder except steam.exe and steamapps, i also had the problem where the desktop icons lose their icon and steam\steam\games does not have any icons inside.
thanks to martymacgiver's information i could write a python script to batch download all icons from steam based on the desktop shortcuts (.url files).

here: http://pastebin.com/NZnYdbPS

it goes through every .url file on your desktop and extracts the id of the game and the hash of the icon. it then downloads the file to the steam\steam\games folder. afterwards refreshing the desktop should be enough to fix the icons.

you need python 2.7 for this and you need to edit your desktop path inside.
Smiling Spectre Aug 4, 2016 @ 3:57pm 
As I discovered just now, after coming to this problem, Steam re-generate icons after checking game integrity (you still need to re-create desktop icon after that). Slower than script, but still works. :)
Last edited by Smiling Spectre; Aug 4, 2016 @ 3:57pm
baglesrfine Jan 6, 2019 @ 12:37pm 
I just found this page, I found a really quick solution on windows 10, you can create a shortcut from inside the steam application then once its on your desktop create another shortcut from the desktop icon and it should have your icon back, just a little annoying that it says (2) but you can change that
Lord_TCG Jan 17, 2019 @ 9:23am 
Originally posted by baglesrfine:
I just found this page, I found a really quick solution on windows 10, you can create a shortcut from inside the steam application then once its on your desktop create another shortcut from the desktop icon and it should have your icon back, just a little annoying that it says (2) but you can change that

Thanks for the reply :) Better late than never!!
marcsimon Dec 25, 2023 @ 1:24pm 
We updated the script to python 3.12

```
#python 3.12
"""info about this script and paths"""
pathtoiconfolder = r"C:\Program Files (x86)\Steam\steam\games\\"
#this is the path to the icon folder, edit this if you have a different steam folder
#the path needs a double backslash at the end

pathtodesktop = "C:/Users/consocowindowsusername/Desktop/" #EDIT THIS
#this is the path the script will search for .url shortcuts
#needs forward slashes!
#spaces in this path will probably break the script, in that case you should make a folder somewhere else and put the iconless .url files there

#AFTER THIS SCRIPT
#just right-clicking on desktop and refreshing should be enough

#reasons why this script may break:
# the .url shortcuts in your desktop folder don't have the right format or don't include the steamid and icon hash
# ^^ this is probably because the shortcut was created when there was no proper icon in the steam icon folder
#in any case you should start it from command line and read the errors

"""script"""
print("starting")
if pathtodesktop=="C:/Users/consocowindowsusername/Desktop/": #if some idiot does not put in his windows user name
print("error: wrong desktop path, read the python file and edit it")
exit()
import glob
import os
import urllib.request
def dothething(pathtourlfile):
print(pathtourlfile)
with open(pathtourlfile, "r") as urlfile:
a = urlfile.readline() #only lines 4 and 6 of the .url files have important info
a = urlfile.readline()
a = urlfile.readline()
a = urlfile.readline()
a = urlfile.readline()
steamid = urlfile.readline()[22:-1] #gets steamid of game
hash = urlfile.readline()[-45:-1] #gets sha1 hash / filename of .ico file
if steamid!='' or hash!='':
urlstring = "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/" + steamid + "/" + hash #put together url for download
else:
print("error" + pathtourlfile) #error in case the .url file didn't have the hash and steamid inside
if steamid!='' or hash!='':
print(f"retrieving {urlstring}")
urllib.request.urlretrieve(urlstring, pathtoiconfolder + hash) #download and save to the icon folder

listofdoturlfiles = glob.glob(pathtodesktop + "*.url")
print(listofdoturlfiles)

for item in listofdoturlfiles: #iterates over list of shortcut files
dothething(item)

```
PhoenixBoisnier Nov 13, 2024 @ 10:52am 
Since I came across this when I ran into the same issue, I just wanted to add that, for anyone unfamiliar with python, indentation matters. marcsimon's script works, but if you copy / paste the script as-is-presented here in the chat, you'll get errors. A quick way to get the right format is to quote their post, and it'll have the right formatting.
< >
Showing 1-13 of 13 comments
Per page: 1530 50

Date Posted: Dec 31, 2015 @ 5:38pm
Posts: 13