Wes Ellis./ a personal notebook
Technology. Stories. Side projects.
A few things worth writing down.
← Back to Side Projects

Side Projects

Moving Epic Games to a New Drive Without Re-Downloading Them

Two computer hard drives and a shiny disc lying on a wooden surface.

Part 8 of the thread Games and gear

PROJECT AT A GLANCEOpen source
What it is
Open-source tool
My role
Creator
Year
2025
Built with
  • PowerShell
  • Python
  • Tkinter
  • psutil
  • PyInstaller
THE SHORT VERSION4 points
  • Move your Epic games to another drive, point this tool at the new folder, and the launcher picks them back up without re-downloading.
  • It rewrites three paths in each manifest .item file and makes a timestamped backup first.
  • Comes as a PowerShell script, a Python GUI, or a standalone .exe.
  • Close the launcher first, keep the folder names the same, and pick the parent folder.

Move an Epic Games install to a bigger drive and the launcher acts like it's never met you. The files are right there, but it wants to download the whole game again. With a few big titles that's a lot of bandwidth and an evening of waiting, all because a handful of paths in some config files still point at the old drive.

epic-games-transfer updates those paths for you. You move the games, point the tool at the new folder, and the launcher finds them where they are now.

Why the launcher loses track

The Epic Games Launcher keeps a manifest file for every installed game, stored as .item files here:

C:\ProgramData\Epic\EpicGamesLauncher\Data\Manifests

Each one records where the game lives. Move the folder and those records are stale. The tool opens every manifest and rewrites three fields:

Field Points to
InstallLocation The game's folder
ManifestLocation The .egstore folder inside it
StagingLocation The .egstore/bps folder

That's it. It doesn't touch game files, only the launcher's own records.

Three ways to run it

Version Good for
PowerShell script Windows, nothing to install, folder picker dialog
Python GUI Progress per game; runs on Windows, Linux and macOS
Standalone .exe Windows 10 and up, no Python needed

Whichever you pick, it closes the launcher if it's running, backs up the manifests to a timestamped Backups/ folder, checks that each game folder and its .egstore folder actually exist, updates everything in one batch, and finishes with a summary of what it updated, skipped or failed. Every step is written to EpicManifestUpdater.log as well, so you can see exactly what changed.

Using it

Move the games first. Then close the Epic Games Launcher all the way, system tray included.

For the PowerShell version, right-click EpicManifestUpdater.ps1, choose "Run with PowerShell", and pick the folder that now holds your games. If Windows refuses to run the script, this one-time setting fixes it:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

For the Python GUI:

pip install -r requirements.txt
python epic_manifest_updater.py

Click "Select New Games Folder", then "Update Manifests", and restart the launcher when it's done.

Tip

Select the parent folder that contains all your game folders, not one game's folder. And keep the game folder names exactly as they were before the move, because that's how the tool matches manifests to games.

If you're shuffling other folders between drives too, I wrote up a robocopy script for moving a list of folders to a new drive. It pairs well with this: move first, then fix the manifests.

Rough edges

The README is straightforward about the limits, and they're mostly deliberate trade-offs to keep the tool small:

  • One destination only. All the games you're fixing need to live under the same folder. Split libraries across several drives aren't handled yet.
  • No dry run. It can't preview changes, though the backups make it safe to try.
  • Restoring is manual. If you want to roll back, you copy the backed-up manifests back yourself. There's no undo button.
  • The Python version is GUI-only. No command-line flags for scripting it.

Heads up

The tool tries to close the launcher for you, but the README recommends closing it yourself first anyway. It's the safer habit, and it means nothing else is holding those files while they're being rewritten.

On the wish list: multi-location support for split libraries, a CLI for automation, and a one-click restore button.

Try it

It's MIT licensed and on GitHub. If you've been putting off moving your Epic library because you don't want to sit through the downloads again, this is the fix.