# Tutorial — Source Control Setup
*Augmented Traveler local tutorial.* Back to [[Unreal — Tutorials]] · next: [[Tutorial — Getting Started with Unreal Engine 5.8]]
How the studio keeps **one shared, versioned copy** of the Unreal project and all source art. A remote team in several cities can then work on the same figure without overwriting each other. **Read this before opening the project for the first time.**
> **Draft.** The CTO fills in the server address and confirms the choice in section 1 before the first hire starts.
## 1. The choice (September 2026)
| Option | Cost for us | Strengths | Weaknesses |
|---|---|---|---|
| **Perforce P4** (formerly Helix Core; renamed March 2025) | **Free for up to 5 users and 20 workspaces** if we host the server. **P4 Cloud** (hosted by Perforce) is $39/user/month with 64 GiB | Industry standard for Unreal; best editor integration; **file locking**; UnrealGameSync; handles huge binary files | Needs a server (self-hosted or P4 Cloud). Over 5 users on the free tier drops to a 1,000-file cap |
| **Diversion** | Free for 5 users (100 GB, 5 repos); $25–35/user/month after | Cloud-hosted and simple; Unreal plug-in; hard locks on the Studio tier | Newer; smaller ecosystem. "Officially recommended by Epic" is Diversion's own claim |
| **Git + Git LFS** (ProjectBorealis UEGitPlugin) | Hosting cost only | Familiar to programmers | LFS locking is less robust for artists; the plug-in must be compiled; binary merges are painful |
| **Unity Version Control** (formerly Plastic SCM) | Free unlimited cloud seats from March 2026; pay per GB over 25 GB/month | Artist-friendly; has an Unreal plug-in | Less common in Unreal studios |
| **Epic Lore** (open source, MIT, June 2026) | Free | Epic's own system, from UEFN | **Pre-release (0.x).** Epic's roadmap puts file locking in 2026 and the official editor plug-in in 2027. **Not for production yet**; review it again for UE6 |
**Recommendation: Perforce P4.**
- **Year one:** the free tier covers the two founders and the first three full-time engineers (Scenario B).
- **Hosting:** a small cloud VM or P4 Cloud, whichever the CTO prefers. Move to paid seats when contractors need direct access.
- **Contractors** who only deliver files (grooms, garments) hand them over through a shared drop folder that a staff member checks in. This keeps the seat count down.
## 2. What goes in, what doesn't
| In source control | Not in source control |
|---|---|
| `AT_Studio/` Unreal project: `Config/`, `Content/`, `Source/`, `Plugins/`, `.uproject` | `Binaries/`, `Intermediate/`, `Saved/`, `DerivedDataCache/` (generated) |
| Source art: `.ma`, `.zpr`, `.zprj`, `.usd`, `.dna`, textures (PSD/EXR) | Personal scratch files; renders; mocap raw video (goes to archive storage) |
| Pipeline scripts and presets (`Pipeline/`) | Secrets and API keys (use a secrets manager) |
| Corpus text and question bank (or a separate depot for the AI team) | Visitor logs (never; privacy) |
## 3. Perforce set-up (CTO, once)
1. **Server:** install P4 Server on the cloud VM, or create a P4 Cloud instance. Use SSL; create users for each person; turn on two-factor sign-in if available.
2. **Depot and stream:** `//AT/main` (a stream depot). Add a `//AT/release-<venue>` stream for each shipped build if needed later.
3. **Typemap:** apply the typemap from Epic's *Using Perforce as Source Control for Unreal Engine* page. It makes `.uasset` and `.umap` **binary and exclusively locked** (`+l`), so only one person edits an asset at a time.
4. **`.p4ignore`:** exclude the generated folders listed in section 2.
5. **Create the project workspace mapping** and submit the initial project.
## 4. Each person's set-up
1. Install **P4V** (the desktop client), or **P4 One** for artists.
2. Create a workspace: `<name>_<machine>_AT`, rooted at a fast local drive (for example `D:\AT\`). Map `//AT/main/...`.
3. **Get Latest.**
4. **In Unreal:** **Revision Control → Connect to Revision Control → Perforce**, with the server, user and workspace. The editor then:
- shows who has an asset **checked out**;
- locks it for others;
- offers to check out when you edit.
5. **Maya, ZBrush and MD files:** check out in P4V before editing, and submit when done.
## 5. Daily rules
1. **Get Latest** before you start and after lunch.
2. **Check out before editing.** If someone else holds the lock, talk to them; never "make writable".
3. **Submit small and often,** with a message: `Mitchell: fix bodice clipping at elbow (outfit v004)`.
4. **Never submit broken work to main.** If it isn't ready, **shelve** it.
5. **Don't hold locks overnight** on shared assets (character Blueprints, program levels).
6. **One File Per Actor** (on by default with World Partition) saves each placed actor as its own file. Two people can then edit the same level without conflicts. The file names are encoded, so use the editor's changelist view to see what you're submitting.
## 6. Builds and UnrealGameSync (later)
- When the team grows, the DevOps engineer sets up a **build machine** and, optionally, **UnrealGameSync** (Perforce-based) with Horde. Non-engineers can then sync prebuilt editor binaries instead of compiling C++.
- Shipping builds are made from a labelled changelist ([[Tutorial — Packaging Builds for Each Surface]]).
## 7. Check before the first hire
- [ ] Server running with SSL; backups scheduled and a restore tested
- [ ] Typemap and `.p4ignore` applied; test that `.uasset` files lock
- [ ] Both founders can check out, edit, submit and see each other's locks in Unreal
- [ ] Onboarding steps (section 4) tested on a clean machine
- [ ] Secrets are outside the depot
## Sources
- Perforce, Introducing the P4 platform (rebrand): https://www.perforce.com/blog/vcs/introducing-the-p4-platform
- Perforce, pricing and free tier: https://www.perforce.com/resources/vcs/helix-core-pricing · https://www.perforce.com/products/helix-core/free-version-control
- Epic, Using Perforce as source control for Unreal Engine: https://dev.epicgames.com/documentation/en-us/unreal-engine/using-perforce-as-source-control-for-unreal-engine
- Epic, Source control in Unreal Engine: https://dev.epicgames.com/documentation/unreal-engine/source-control-in-unreal-engine
- Epic, One File Per Actor: https://dev.epicgames.com/documentation/en-us/unreal-engine/one-file-per-actor-in-unreal-engine
- Epic, Horde and UnrealGameSync tutorial: https://dev.epicgames.com/documentation/en-us/unreal-engine/horde-unrealgamesync-tutorial-for-unreal-engine
- Diversion pricing: https://www.diversion.dev/pricing
- ProjectBorealis UEGitPlugin: https://github.com/ProjectBorealis/UEGitPlugin
- Unity DevOps charges (Unity Version Control): https://support.unity.com/hc/en-us/articles/34748492914964-Understanding-Unity-DevOps-charges
- Epic Lore (repo, roadmap, UE docs): https://github.com/EpicGames/lore · https://epicgames.github.io/lore/roadmap/ · https://dev.epicgames.com/documentation/unreal-engine/lore-version-control-in-unreal-engine
- The Register, Epic open-sources Lore: https://www.theregister.com/devops/2026/06/17/git-good-with-epic-games-new-open-source-vcs-lore/5257978
- Full list: [[Sources — 2026-09-20]]