Skip to content

Instantly share code, notes, and snippets.

@jase-perf
Last active May 26, 2025 14:55
Show Gist options
  • Save jase-perf/3f6328fb66427802090f458775e481df to your computer and use it in GitHub Desktop.
Save jase-perf/3f6328fb66427802090f458775e481df to your computer and use it in GitHub Desktop.
Game Engine Typemap (WIP) Engine-agnostic typemap that will work with UE, Unity, Godot, etc.
# Perforce File Type Mapping Specifications.
#
# TypeMap: a list of filetype mappings; one per line.
# Each line has two elements:
#
# Filetype: The filetype to use on 'p4 add'.
#
# Path: File pattern which will use this filetype.
#
# See 'p4 help typemap' for more information.
TypeMap:
# Binary files that are usually already compressed. Store in full.
binary+Fl //....avi
binary+Fl //....bz2
binary+Fl //....gif
binary+Fl //....gz
binary+Fl //....jar
binary+Fl //....jpeg
binary+Fl //....jpg
binary+Fl //....mov
binary+Fl //....mpg
binary+Fl //....rar
binary+Fl //....tif
binary+Fl //....zip
# Common binary formats to lock
binary+l //....aac
binary+l //....bin
binary+l //....blend
binary+l //....bmp
binary+l //....btr
binary+l //....cfm
binary+l //....class
binary+l //....doc
binary+l //....docx
binary+l //....dot
binary+l //....ear
binary+l //....exp
binary+l //....fbx
binary+l //....ico
binary+l //....m4a
binary+l //....ma
binary+l //....mb
binary+l //....mp4
binary+l //....odg
binary+l //....odp
binary+l //....ods
binary+l //....odt
binary+l //....otg
binary+l //....ots
binary+l //....ott
binary+l //....pac
binary+l //....pdf
binary+l //....png
binary+l //....ppt
binary+l //....pptx
binary+l //....psd
binary+l //....raw
binary+l //....rpt
binary+l //....so
binary+l //....sxw
binary+l //....tar
binary+l //....war
binary+l //....wma
binary+l //....wmv
binary+l //....xls
binary+l //....xlsx
# These build files could be set to S2, to store fewer revisions
binary+w //....app
binary+w //....dll
binary+w //....dylib
binary+w //....exe
binary+w //....ipa
binary+w //....lib
binary+w //....pdb
binary+w //....stub
# Test files automatically updated by UE and other programs
text+w //....config
text+w //....DotSettings
text+w //....ini
text+w //....log
text+w //....modules
text+w //....pdm
text+w //....target
text+w //....uatbuildrecord
text+w //....version
# Unreal Specific binaries
binary+l //....uasset
binary+l //....ubulk
binary+l //....udk
binary+l //....umap
binary+l //....upk
# BuildData files are large and can be regenerated, so lets store just two past versions
binary+wS2 //..._BuildData.uasset
# Project files are text-based. +w avoids problems when changing editor version
# but can lead users forgetting to submit. Could remove the +w part.
text+w //....uproject
#Unity Specific
text+l //....cm
text+l //....proc
binary+l //....prefab
binary+l //....mat
binary+l //....unity
binary+l //....asset
binary+l //....dds
binary+l //....bnk
binary+l //....light
binary+l //....shadow
binary+l //....ibl
binary+l //....bik
binary+l //....upk
#Godot Specific
binary+l //....res
binary+l //....tres
#Adobe Files
binary+l //....ae
binary+l //....psd
binary+l //....psb
binary+l //....ai
@michaelwbell
Copy link

Hello. This is a helpful typemap. I believe there's one error:
.exp files are set to be binary. I believe they need to be writeable in the workspace. At least in my case, trying to compile Unreal Engine 5.

I have a related question. Should the .exp and .lib files just be ignored in P4Ignore?

Cheers.

@jase-perf
Copy link
Author

@michaelwbell
I just checked my gist for p4ignore here https://gist.github.com/jase-perf/b15b57d72fa8095c732fdbc4ca948903
which is based on Epic's recommendations and there is this line:

**/Engine/Binaries/**/*.exp

So it does seem like at least those ones should be ignored. I wonder if all of them should, though.

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