Skip to content

Perforce Server Configuration

Our Horde deployments are configured to follow The Epic Way of organizing a P4 server. Horde uses a Perforce Stream or Virtual Stream to sync the project. At the top level of this stream should be the Engine directory as well as directory containing your project’s content. You’ll provide a stream to Universal Foundry, for example: //depot/my_game. Within that stream, should be //depot/my_game/Engine such that when syncing the stream, a Engine folder is created at the root.

If the stream you use by default is configured differently, create a new Virtual Stream that has the required layout.

If this won’t work for your team, please reach to support@universalfoundry.io.

Horde is strict about what is included and not included the stream it uses to run jobs. In particular, it is important that files which are generated or modified during the build process are not included in the stream Horde uses. This restriction ensures produced builds are consistent and enables Horde to efficiently manage incremental workspaces.

Partitioned workspaces need to be enabled for your server in order for Horde to efficiently access Perforce. This is a standard best-practice.

You check the value of the relevant server setting by doing:

p4 configure show client.readonly.dir

If Perforce reports back that the value of client.readonly.dir is set then you have partitioned workspaces enabled. No further action is needed.

The value of client.readonly.dir is a relative or absolute directory on the server. If the value is set and the directory does not exist, a new directory will be created on your P4 server. You can set the value by running a p4 configure set command and assigning client.readonly.dir to a valid directory name. For example this command:

p4 configure set client.readonly.dir=part-db-have

is what is recommended by the P4 documentation.

You can read more about the client.readonly.dir setting in these documents:

We require that the Perforce have SSL enabled. This is usually already set. The Perforce host string should be of the form ssl:p4.example.com:1666.

If your Perforce server can only be accessed via a set of whitelisted static IPs, contact support and we will update your deployment to support that and add a list to your dashboard.