A Guide: How to transfer some Steam games onto your SSD!

Hi guys. I recently caught on to this technique to be able to move games out of the Steam folder but still play them. There's a few reasons to do this. For me, it's because I finally got an SSD (solid state drive) and I wanted to put one or two games on it that I'll be playing a lot (only an 80GB SSD). Another scenario would be you have multiple drives but maybe your main gaming drive is filling up. You can move a game or two onto a different drive without moving the entire Steam library.

So, a little background. Steam likes to stick all of your Steam games into the Steamapps folder. If you move a game out of there normally, you can no longer play it. So your only option has been to move the entire library!

The cure:
Open command prompt (click start, type "command" and then select it)

Now, you'll need to CUT the game folder you want to move (example: C:\Program Files\Steam\steamapps\common\<Game Folder> ) and then paste it wherever you now want it to be. You'll have to remember the address.

In command prompt, type:
mklink /J [old location] <new location>
(simply typing "mklink" will show you the options associated with the command)

Here's an example of how I used it.
I cut and pasted f1 2010 from my steam folder and onto my ssd, then typed this into command prompt:
mklink /J "d:\steam\steamapps\common\f1 2010" "c:\games\f1 2010"

NOTE: the " " are because the folder name has a space in it, otherwise it wouldn't be needed.
UPDATE: /J command is needed to go to a different drive, if referencing elswhere on the same drive use /D

This will create what appears to be a "shortcut" within the steam folder but it's a bit different. Deleting the "shortcut" folder will only delete the mklink, so you could cut and paste the folder back into steam after that and it will all work just fine, if you decide you no longer need it to be in that different location.

A little more advanced, I used this to stick my entire Steam folder onto my SSD, then used mklink to put my steamapps folder onto my HDDs, but then another mklink out of that to put f1 2010 on my SSD. This was just so that Steam itself would be faster to load while still keeping most games on my HDD. BTW, I found out having the mklink already created in the steamapps folder, I didn't need to recreate it upon moving the steamapps folder. It's smart enough to just do it automatically (because it works like a "shortcut" - if you move the shortcut's location it will still point to the same folder).

Hope this helps some people out!

Update 2: To summarize some points raised in the discussion, these links will use a small amount of space to reference the new location (kbs) but the actual file space is only being used at the new location so no worries :D (thanks to randomizer for explaining)
 

4745454b

Titan
Moderator
Interesting. I find it easier to just keep all games where they are. But if you want X game(s) on your SSD then this will help. I love steam. I love the fact you can just make a shortcut to steam.exe and load your games. No installing or anything. I now have my steam folder on a drive other then my OS. If/when I have to reinstall windows, I don't have to go through the hassle of reinstalling my games. Pure genius.
 
Yeah it's really great. Just move the whole folder wherever you want and no installs! Love it too. Except for the games that either use GFWL on top of Steam, or else when Steam doesn't get the patches up right away... but for the most part, it's a win for sure.
 

4745454b

Titan
Moderator
Yeah, you might need to redo some updates, but thats not a huge hassle. I don't have any games that use windows live overlay so no worries there yet. Biggest hassle I had was that I got a 13 item drop in TF2 due to my computer and cloud resyncing. but other then that I didn't have any issues at all.
 
Since learning about these links, I've started using them for all kinds of stuff lol. Very handy!

Randomizer - what do you mean by that? I didn't realise there would be much space used whether hard or soft links. Any idea how much it is? A few kilobytes? Megabytes?
 

Zenthar

Distinguished
The problem with hard links is that Explorer doesn't handle them that well. If you create a 1GB file in a folder and 2 additional hard links to the file in the same folder, chances are Explorer will report the folder as being 3GB in size, not 1GB.
 

Zenthar

Distinguished
The problem is that Explorer doesn't seem to make a difference between a hardlink and an actual file (I know about inodes under Linux, not sure how windows works for the file system).
 
As far as I can tell, Explorer thinks it's just the file, there. If I open the hardlink, it opens just like if it was actually in that location (drop down sub folders and all) but I can find the actual file on my other drive. From what I read, that's just how it works. Would it be better to do a different type of link?
 

randomizer

Champion
Moderator
Junction points are soft links, they will function fine for the purpose described in your guide, but if you want to move single files you'll need to use symbolic links (a newer NTFS feature that is also a type of soft link). That uses the /D flag instead of /J. Symbolic links overcome some of the limitations of junction points in that they can point to pretty much anywhere and anything, even over a network. Junction points can only point to directories and only on the local machine. Hard links must be on the same volume and so are even more restrictive.

Also the reason that Explorer doesn't differentiate between a hardlink and an "actual file" is because they are essentially the same thing. All files have 1 or more hard links, which are its MFT records. If a file has 3 hard links then it has 3 MFT entries each pointing to the same physical data. Explorer doesn't know the difference because for all intents and purposes there is no difference. All of the information about the data on the volume is retrieved from the MFT.

As an aside, this is why C:\Windows\winsxs looks so big. It's loaded up with hard links to the same data.
 

randomizer

Champion
Moderator
Junction points don't really waste space. They are a file in their own right so they take up an MFT entry and a tiny amount of disk space (just like a shortcut or .lnk file does), but their sole purpose is just to be a pointer to another location. The actual directory which the junction point refers to exists only once unless you explicitly copy it.
 

Zenthar

Distinguished
Good to know. So the Windows file system seems to work pretty much the same way as in Linux: all file names are hardlinks and the actual file content is in some sort of iNode (nope not an Apple product ... yet).
 
Thanks for all the information guys! Like I said in the OP, this is something I recently came across. So Junctions (/J command) are great for going from one drive to another, while referencing something on the same drive it's better to use a softlink (/D).
 

randomizer

Champion
Moderator


Hard links (/H): Good for on the same volume (partition), but unless you have a specific need to use them you should use a soft link, specifically a junction or symbolic link.

Junction point (/J): An old type of soft link that is good for use across partitions but only on the local machine and only for directories, not individual folders.

Symbolic Link (/D): A newer (at least on NTFS) type of soft link which allows you to link to files or directories anywhere, including over networks.
 


Do you mean for Tom's? I can easily edit and repost or something... I'll pretty much just do that for the Steam forums (looking at them now)