Skip to content

Instantly share code, notes, and snippets.

@jase-perf
Forked from ImLp/p4ignore.txt
Last active November 25, 2025 05:43
Show Gist options
  • Select an option

  • Save jase-perf/b15b57d72fa8095c732fdbc4ca948903 to your computer and use it in GitHub Desktop.

Select an option

Save jase-perf/b15b57d72fa8095c732fdbc4ca948903 to your computer and use it in GitHub Desktop.
Ignore file for Unreal Engine Projects and Source Code (with common DCC ignores added)
## Universal P4IGNORE for Unreal Engine Projects and common DCC tools
## Works with both game projects and custom engine source
## Optimized pattern usage based on Perforce P4IGNORE documentation
## This p4ignore file should be named .p4ignore or p4ignore.txt and
## placed in the workspace root, which should be where the Engine and
## project folders are located.
# The syntax for P4IGNORE files is not the same as Perforce syntax.
# Key differences from .gitignore:
# - A / at the start means "relative to this p4ignore file"
# - A / at the end means "directories only"
# - * matches substrings but NOT path separators (like P4 wildcard)
# - ** matches substrings INCLUDING path separators (like P4 "..." wildcard)
# - ! at the start excludes the file specification
###############################################################################
# Visual Studio Solution and Project Files
###############################################################################
# Ignore root Visual Studio solution files only
/*.sln
/*/*.sln
# Visual Studio temp files (but exclude when .pdb is in folder path)
.vs/
*.pdb
!*.pdb/
*.suo
*.opensdf
*.sdf
*.tmp
*.mdb
obj/
*.vcxproj
# User-specific Visual Studio files
*.csproj.user
*.csproj.cache
*.csproj.nuget.*
*.csproj.AssemblyReference.cache
# Note: DO NOT ignore *.csproj.props - these are shared build configuration files
# Built binaries and temporary build files
obj/
*.csprojAssemblyReference.cache
###############################################################################
# Git Integration (if migrating from Git)
###############################################################################
.git/
.gitignore
.gitattributes
.gitmodules
.tgitconfig
###############################################################################
# JetBrains IDEs
###############################################################################
.idea/
!.idea/runConfigurations
.gradle/
###############################################################################
# Python
###############################################################################
__pycache__/
*.pyc
*.egg-info/
###############################################################################
# Unix/Mac Specific
###############################################################################
FileOpenOrder/
*.xcworkspace/xcuserdata/
*.xcodeproj/xcuserdata/
*.xcodeproj/project.xcworkspace/xcuserdata/
.ue4dependencies
*~
.DS_Store
###############################################################################
# Unreal Engine - Core Ignores
###############################################################################
# Samples, FeaturePacks, Templates at root only
/Samples/
/*/Samples/
/FeaturePacks/
/*/FeaturePacks/
/Templates/
/*/Templates/
# Saved and Intermediate directories (generated content)
# These can be at any depth, so use **/
**/Saved/
**/Intermediate/
# Derived Data Cache - use specific patterns to avoid matching source code
**/DerivedDataCache/Boot.ddc
**/DerivedDataCache/**/*.udd
**/DerivedDataCache/
!**/Source/**/DerivedDataCache/
# Personal workspace configuration
.p4config.txt
.p4sync.txt
# Crash reports
crashinfo--*
# Linux project files
*.pro
*.pri
*.kdev4
# Obj-C/Swift specific
*.hmap
*.ipa
*.dSYM.zip
Binaries/**/*.dSYM
Binaries/**/*.dsym
# VSCode workspace files
*.code-workspace
# UGS folder (per-workspace)
.ugs/
# Local builds
/LocalBuilds/
!ArchiveForUGS-Perforce/
###############################################################################
# Engine-Specific Paths
# Use **/ prefix so these work whether Engine is at root or nested
###############################################################################
# UnrealBuildTool logs and configuration
**/Engine/Programs/UnrealBuildTool/*.txt
*.uatbuildrecord
# Build receipts
**/Engine/Build/Receipts/
# C# program intermediates and saved folders
**/Engine/Source/Programs/*/obj/
**/Engine/Programs/*/Saved/
# Documentation tools output
**/Engine/Binaries/DotNET/UnrealBuildTool.xml
**/Engine/Binaries/DotNET/AutomationScripts/BuildGraph.Automation.xml
# Version files created by UBT
**/Engine/Binaries/**/*.version
# Export files (linker-generated, not source)
**/Engine/Binaries/**/*.exp
# Swarm local save files
**/Engine/Binaries/DotNET/SwarmAgent.DeveloperOptions.xml
**/Engine/Binaries/DotNET/SwarmAgent.Options.xml
# HoloLens WMRInterop autogenerated files
**/Engine/Source/ThirdParty/WindowsMixedRealityInterop/packages/
**/Engine/Source/ThirdParty/WindowsMixedRealityInterop/MixedRealityInteropHoloLens/Generated Files/
**/Engine/Source/ThirdParty/WindowsMixedRealityInterop/MixedRealityInteropHoloLens/x64/
**/Engine/Source/ThirdParty/WindowsMixedRealityInterop/MixedRealityInteropHoloLens/ARM64/
**/Engine/Source/ThirdParty/WindowsMixedRealityInterop/MixedRealityInterop/x64/
**/Engine/Source/ThirdParty/WindowsMixedRealityInterop/MixedRealityInterop/ARM64/
###############################################################################
# DCC Application Autosave and Temporary Files
# Using specific extensions and patterns to avoid catching legitimate files
###############################################################################
# Blender - specific extensions only
*.blend1
*.blend2
*.blend@
untitled.blend
# Autodesk Maya
*.ma.swatches
*.mb.swatches
*_incrementalSave_*.ma
*_incrementalSave_*.mb
incrementalSave/
scenes/edits/
# Autodesk 3ds Max
*.max.bak
autoback/
MaxStart.max
# Cinema 4D
*.c4d.zip
*.c4d~
# Houdini
*.hip.bak
*.hipnc.bak
*.hiplc.bak
# ZBrush
*.ZTL.bak
*.ZPR.bak
QuickSave*
# Substance Painter/Designer
*.spp.bak
*.sbs.bak
*.sbsar.bak
# Adobe Creative Suite - full extensions to avoid false matches
*.psd~
*.ai~
*.indd~
*.fla~
*.aep~
*.prproj~
Adobe After Effects Auto-Save/
Adobe Premiere Pro Auto-Save/
Photoshop Temp*
# Audio Applications
# Pro Tools
*.ptx~
*.ptf~
Session File Backups/
# Reaper
*.rpp-bak
*.rpp~
# Logic Pro
*.logic/Alternatives/
*.logic/Backups/
# Cubase/Nuendo
*.cpr.bak
*.npr.bak
# Ableton Live
*.als~
# FMOD
*.fspro.bak
*.fspro~
# Wwise
*.wproj.bak
*.wsettings.bak
# General DCC patterns (specific directory names only)
.mayaSwatches/
@Skylarzz
Copy link

Hi there! I hope you're doing well. It seems like there are a lot of ignore rules. Have these ignores been validated on a large scale and safe enough? Especially the part about modifying Epic's documentation to fit a larger range of paths, could that potentially affect some files unintentionally?

@jase-perf
Copy link
Author

Hi @LakeishaKowalczyk a large part of this ignore file comes from an ignore template by Luis Placid, who created it while he was working at DNEG, which used Unreal and Perforce for a lot of major films and tv shows, so its been pretty well tested and validated there.
As for the stuff added from Epic's documentation, some of their lines assume that the .p4ignore file is placed in a specific location and not just in the root of a workspace.

While there is a small possibility that it could ignore files that you want to submit (though I doubt it) they will still be in your local workspace so you can modify the ignore file to fix that as you go, which is easier to fix than needing to obliterate files off the server that were submitted but shouldn't have been.

@Skylarzz
Copy link

Thanks for your patience, this repository is the best-maintained perforce + unreal setup template I've come across, hope more people can get here to see it.

@jase-perf
Copy link
Author

Thanks so much! I'm glad to hear it is helpful!

@jase-perf
Copy link
Author

I just made a big update based on my testing with UE source and Horde. I was being a bit too aggressive in my ignores before and have refined a few things now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment