Perforce remains the dominant SCM in AAA UE development for a reason: it handles binary assets gracefully, supports streams for long-lived branching, and integrates with the Unreal Editor’s source control panel. BuildPixel speaks p4 natively.Documentation Index
Fetch the complete documentation index at: https://buildpixel.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
What you’ll need
From your Helix admin:- Server URL — e.g.
ssl:perforce.studio.com:1666(TLS) ortcp:...(plaintext, discouraged) - A dedicated build user — e.g.
bp-buildbot. Use a service user, not someone’s real account. - Credentials — either a long-lived ticket (preferred) or a password
- Read access to the depot or stream you want to build. The build user doesn’t need write access.
Configure the org
In Settings → Integrations → Perforce, fill in:- Connect to server failed — wrong host/port, or BuildPixel can’t reach the server. We strongly recommend TLS.
- Login expired — generate a fresh ticket with
p4 login -p. - Password invalid — for password mode, double-check it.
Create a Perforce project
After org config, the project creation flow lets you pick:- Depot path — e.g.
//depot/MyGame/... - Or stream — e.g.
//streams/mygame-mainline/main
Triggering builds
Perforce has no native webhook. Three trigger modes are supported:Manual
Click Build now in the dashboard.
Scheduled
Schedule the build (e.g. nightly). Pulls latest CL, builds.
External webhook
Wire a Helix submit-trigger to call BuildPixel’s API on every submit.
change-commit trigger script. See Triggers for the script.
Network requirements
Your Helix server needs to be reachable from BuildPixel. Most teams run with public-internet TLS. If your server is on a private network, talk to enterprise@streampixel.io.Troubleshooting
Sync is slow on every build
Sync is slow on every build
Likely a too-broad client view. Tighten it to just paths your build needs (Source, Content, Plugins, Config, *.uproject) — exclude Marketing, Docs, etc. Set
clientView on the project to override the default.Ticket expired
Ticket expired
Tickets default to 12 hours. For long-lived auth, generate an unlimited ticket:
p4 login -a -p (subject to your Helix admin’s policy).Commit message says 'unknown'
Commit message says 'unknown'
For Perforce, BuildPixel runs
p4 describe -s <CL>. If the build user can’t read the CL, the description is unknown. Grant read on change actions via p4 protect.