Guide · Unreal Engine

How to set up source control for Unreal Engine

A complete walkthrough: prepare your project, configure exclusions, commit for the first time, and onboard teammates. Works for UE4 and UE5, solo or team.

10 min read

Why Unreal projects need dedicated source control

Unreal projects combine text (C++, .ini, .json) and very large binaries (.uasset, .umap, textures, builds). Git handles the text side well and the binary side poorly — Git LFS patches some of that, but introduces pointer-file foot-guns and bandwidth billing that scales badly.

This guide walks through setting up USourceControl for an Unreal project from scratch. The process takes about 10 minutes end to end, and you only do it once per project.

If you're evaluating options, see USourceControl vs Perforce and vs Git LFS first.

Step 1: Prepare your project

Before the first commit, do a quick cleanup:

  1. Close the Unreal Editor. Editor locks on generated files can interfere with the initial scan.
  2. Delete these folders if present — they're all regenerable from source:
YourProject/
├── Saved/          # delete (logs, crash dumps)
├── Intermediate/   # delete (build intermediates)
├── DerivedDataCache/ # delete (cooked asset cache)
├── Binaries/       # delete (compiled DLLs)
├── Build/          # delete (packaging output)
└── .vs/            # delete (Visual Studio state)

What should remain in your project folder: Content/, Config/, Source/, Plugins/, and the .uproject file.

Step 2: Create a USourceControl project

Sign up at usourcecontrol.com/signup. On the dashboard:

  1. Create a new organization if you don't have one.
  2. Click New project. Pick a name — it doesn't need to match your local folder name.
  3. Copy the project key (starts with usc_). You'll paste it into the desktop app next.
Treat the project key like an API key. Anyone with it can push and pull from your project. Regenerate it from the dashboard if it leaks.

Download the desktop app from usourcecontrol.com/download. On first launch:

  1. Sign in with the account you used for signup.
  2. Click Link project.
  3. Paste the project key from Step 2.
  4. Browse to your Unreal project folder (the one containing the .uproject file).
  5. Confirm.

The app auto-detects that this is an Unreal project and pre-configures exclusions for the folders you cleaned up in Step 1. You don't need to configure .gitignore-style exclusions manually.

Step 4: First commit

The app scans your project folder. You'll see a list of all files to be versioned — likely several thousand, plus any large binaries. Review the list:

  • Verify nothing from Saved/ or Intermediate/ is in the list.
  • Confirm your .uproject, Content/, Config/, and Source/ files are present.
  • Type a commit message — "Initial project state" is fine.
  • Click Commit.

The first commit uploads every file, so it takes a while on large projects (a 50 GB project on a 100 Mbps connection takes ~70 minutes). Subsequent commits are incremental and usually complete in seconds.

You can close the app mid-commit — transfers resume when you reopen it.

Step 5: Invite your team

From the dashboard, open the Members section of your organization. Invite teammates by email. They sign up, install the desktop app, and receive an invitation to your project.

On their first sync, the app downloads the full project state to a folder they choose — usually a fresh Unreal project directory. After the initial sync, they open the .uproject in Unreal and work normally.

Role assignments are straightforward:

  • Owner — billing, org-level control.
  • Admin — can invite, manage projects, force-release locks.
  • Member — commits and syncs within assigned projects.

Step 6: Blueprint locking workflow

Unreal blueprints are binary .uasset files. They can't be merged, so when two people edit the same blueprint concurrently, only one person's work survives. Locking prevents this.

The flow, every time you edit a blueprint or level:

  1. Open the desktop app, find the blueprint in the file tree.
  2. Click Lock. Optionally type a reason.
  3. Open the file in Unreal Editor, make your changes, save.
  4. Back in the desktop app, click Commit. The lock is released automatically after a successful commit.

For a deeper treatment see Blueprint merge conflicts and how to avoid them.

Troubleshooting common issues

First commit is slow.It's uploading the full project. A 50 GB project over a 100 Mbps upload takes around 70 minutes. Let it finish in the background.

App says a file is locked but I don't see the lock. Refresh the project view. Locks are server-authoritative; your client may be behind.

Someone has an old lock they forgot about. An admin or owner can force-release it from the dashboard under Project → Locks.

Unreal Editor complains about read-only files. That means another teammate has a lock on the file. Check the desktop app for who holds it.

Frequently asked

Do I need to configure any Unreal Editor settings?

No. USourceControl operates outside the editor through the desktop app. You don't need to enable any Editor source control providers.

Does this work with UE4 and UE5?

Yes. The process is identical for both. USourceControl is engine-version agnostic — it operates on your file tree, not engine internals.

Should I put my C++ source in USourceControl or keep it in Git?

Either works. Many teams keep engine code in Git for PR review and use USourceControl for content. Others put everything in USourceControl. Both are valid.

What happens to the Derived Data Cache?

DerivedDataCache/ is excluded by default — it's regenerated on first Editor open from the actual asset files. Teammates who sync fresh will have Unreal rebuild their DDC automatically.

How do I back up existing project history?

If you're migrating from Git or Perforce and want to preserve history, contact us — Studio and Enterprise plans include history import assistance.

Try the whole flow yourself

Free solo tier, 50 GB storage, and the full desktop app. Your project is ready in 10 minutes.

Start for free