-
-
Save jase-perf/b15b57d72fa8095c732fdbc4ca948903 to your computer and use it in GitHub Desktop.
| ## Universal P4IGNORE for Unreal Engine Projects | |
| ## Works with both game projects and custom engine source | |
| ## Optimized pattern usage based on Perforce P4IGNORE documentation | |
| # 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 | |
| **/launchSettings.json | |
| *.csproj.user | |
| *.csproj.cache | |
| *.csproj.nuget.* | |
| *.csproj.AssemblyReference.cache | |
| # Note: DO NOT ignore *.csproj.props - these are shared build configuration files | |
| !*.csproj.props | |
| # 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 | |
| Engine/Programs/UnrealBuildTool/Log*.json | |
| Engine/Programs/UnrealBuildTool/Log*.uba | |
| *.uatbuildrecord | |
| # Build receipts | |
| Engine/Build/Receipts/ | |
| # C# program intermediates and saved folders | |
| Engine/Source/Programs/*/obj/ | |
| Engine/Programs/*/Saved/ | |
| # build artifacts | |
| *.deps.json | |
| *.runtimeconfig.json | |
| **/bin/**/ref/ | |
| # Exceptions for build artifacts | |
| !Engine/Binaries/ThirdParty/**/*.deps.json | |
| !Engine/Binaries/ThirdParty/**/*.runtimeconfig.json | |
| !Engine/Binaries/DotNET/**/*.deps.json | |
| !Engine/Binaries/DotNET/**/*.runtimeconfig.json | |
| # Test coverage files | |
| .msCoverageSourceRootsMapping_* | |
| CoverletSourceRootsMapping_* | |
| # 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/ | |
| # Python Patterns | |
| .venv/ | |
| # AI Stuff | |
| .mcp.json | |
| .ai/ |
I found the editor binaries have been included, is that needed for CI? If I don't need to ship binaries to artists, can I just discard all files in Engine/Binaries/ ?
@SkylakeOfficial Sorry for the delay in getting back to this! I think you should be fine to skip those binaries as long as your artists can get them another way. Have you tried that out? And if so, have you had any issues with that? Maybe I can add a comment in this doc to give some extra information.
Thanks for your reply, I turned out to store source and binaries in two streams separately. The binary is generated by RunUAT.bat through CI and commited to a release stream. By this we can distribute editor across multiple platforms and isolate stable builds. Making only few modifications from this ignore just worked. Thanks for the template!
@SkylakeOfficial Sorry for the delay in getting back to this! I think you should be fine to skip those binaries as long as your artists can get them another way. Have you tried that out? And if so, have you had any issues with that? Maybe I can add a comment in this doc to give some extra information.