How do I create an asset pack .zip file with several uassets in it?

I’m doing a tutorial showing building a Virtual Production set from scratch. I need to provide people with a few pre-built assets that create an Aruco tag object. This includes a blueprint, 3 static meshes and 3 materials.

I know about using migrate to move assets between projects, but in this case the users won’t have a project to migrate from. They are following a tutorial to create a project from scratch, so I want to give them just a small zip with these 7 assets they can import.

I can’t find any information on how to do this. If I just give them the uasset files zipped up, the blueprint loses references to the materials and static meshes and the user has to manually re-set them.

So how can I put these 7 uassets into a zip that users can easily import. The marketplace does this with it’s “add to project” button that drops purchased assets into a folder, how can I do this with my 7 assets?

Hey @Greg.Corson ,
you have 2 options: Create a zip file from your migrated assets or create a ContentPack

Option A:

  1. Create a new folder called “Content” in your explorer (not in Unreal)
  2. Open your project in Unreal, select your assets, right-click and choose AssetActions=>Migrate
  3. Select all your asset and their shown references and/or folders (default: all related assets are selected)
  4. Click OK and select your newly created “Content” folder
  5. ZIP this “Content” folder and send it to your viewers/customers. They can then just extract it into their new and fresh project.

Option B:

  1. Create a new folder called “ContentPack” in your explorer (not in Unreal)

  2. Inside this folder create a folder called “FeaturePacks”, a folder called “Samples”, a folder called “ContentSettings” and a text file called “ContentToPack.txt”
    image

  3. Inside your “Samples” folder create a folder called “MyContentPack” and inside your “MyContentPack” create a folder “Content”

  4. Migrate your assets to this newly created “Content” folder as described above

  5. Inside your “ContentSettings” folder create a folder called “Config”, a folder called “Media” and a *.json file called “manifest.json”
    image

  6. Inside your “Config” folder create a *.ini file called “config.ini” with the following content:

[AdditionalFilesToAdd]
+Files=Samples/MyContentPack/Content/*.*
  1. Place 2 pictures (if you want) inside your “Media” folder like “MyContentpack.png” with a resolution of 64x64 pixel and “MyContentpack_Preview.png” with a resolution of 400x200 pixel
    image
  2. Place this inside your “manifest.json” file:
{
	"Version": 1,
	"Name":
	[
		{
			"Language": "en",
			"Text": "MyContentPack"
		}
	],
	"Description":
	[
		{
			"Language": "en",
			"Text": "Content for Tutorial"

		}
	],
	"AssetTypes": [],
	"SearchTags":
	[
		{
			"Language": "en",
			"Text": "Content for Tutorial"
		}
	],
	"ClassTypes": "",
	"Category": "Content",
	"Thumbnail": "MyContentpack.png",
	"Screenshots":
	[
		"MyContentpack_Preview.png"
	]
}
  1. Your folder “ContentPack” should look like this (I already migrated my M_Test.uasset with its parent directory from content browser):
|   ContentToPack.txt 
+---ContentSettings
|   |   manifest.json
|   |   
|   +---Config
|   |       config.ini
|   |       
|   \---Media
|           MyContentpack.png
|           MyContentpack_Preview.png
|           
+---FeaturePacks
\---Samples
    \---MyContentPack
        \---Content
            \---MyContentPack
                    M_Test.uasset
  1. Open your “ContentToPack.txt” file and add these lines with " ". You will have to modify “YOURPATH” like “C:” or “D:\MyUnreal” etc.:
"YOURPATH\ContentPack\ContentSettings\Config\"
"YOURPATH\ContentPack\ContentSettings\Media\"
"YOURPATH\ContentPack\ContentSettings\manifest.json"
  1. Create a file called “MyContentPack.upack” from CMD with the follwing command. You will have to modify"YOURPATH" like “C:” or “D:\MyUnreal” etc.:
"YOURPATH\UE_5.0\Engine\Binaries\Win64\UnrealPak.exe" -Create="YOURPATH\ContentPack\ContentToPack.txt" "YOURPATH\ContentPack\FeaturePacks\MyContentPack.upack"
  1. Now you can create a ZIP file from your “FeaturePacks” folder and your “Samples” folder from within your “Contentpack” folder
    image
  2. Send this ZIP file to your viewers/customers who will then have to copy these folders to "THEIRPATH\UE_5.0"
    image
  3. They are now able to use your ContentPack from inside the editor via Add=>AddFeatureOrContentPack
    image
    Which will look like this:
3 Likes

hey there, I tried doing this but got an error at the cmd stage

LogPakFile: Display: Using command line for crypto configuration
LogPakFile: Error: No pak file name specified. Usage:
LogPakFile: Error:   UnrealPak <PakFilename> -Test
LogPakFile: Error:   UnrealPak <PakFilename> -Verify
LogPakFile: Error:   UnrealPak <PakFilename> -Info
LogPakFile: Error:   UnrealPak <PakFilename> -List [-ExcludeDeleted]
LogPakFile: Error:   UnrealPak <PakFilename> <GameUProjectName> <GameFolderName> -ExportDependencies=<OutputFileBase> -NoAssetRegistryCache -ForceDependsGathering
LogPakFile: Error:   UnrealPak <PakFilename> -Extract <ExtractDir> [-Filter=<filename>]
LogPakFile: Error:   UnrealPak <PakFilename> -Create=<ResponseFile> [Options]
LogPakFile: Error:   UnrealPak <PakFilename> -Dest=<MountPoint>
LogPakFile: Error:   UnrealPak <PakFilename> -Repack [-Output=Path] [-ExcludeDeleted] [Options]
LogPakFile: Error:   UnrealPak <PakFilename1> <PakFilename2> -diff
LogPakFile: Error:   UnrealPak <PakFolder> -AuditFiles [-OnlyDeleted] [-CSV=<filename>] [-order=<OrderingFile>] [-SortByOrdering]
LogPakFile: Error:   UnrealPak <PakFilename> -WhatsAtOffset [offset1] [offset2] [offset3] [...]
LogPakFile: Error:   UnrealPak <PakFolder> -GeneratePIXMappingFile -OutputPath=<Path>
LogPakFile: Error:   Options:
LogPakFile: Error:     -blocksize=<BlockSize>
LogPakFile: Error:     -bitwindow=<BitWindow>
LogPakFile: Error:     -compress
LogPakFile: Error:     -encrypt
LogPakFile: Error:     -order=<OrderingFile>
LogPakFile: Error:     -diff (requires 2 filenames first)
LogPakFile: Error:     -enginedir (specify engine dir for when using ini encryption configs)
LogPakFile: Error:     -projectdir (specify project dir for when using ini encryption configs)
LogPakFile: Error:     -encryptionini (specify ini base name to gather encryption settings from)
LogPakFile: Error:     -extracttomountpoint (Extract to mount point path of pak file)
LogPakFile: Error:     -encryptindex (encrypt the pak file index, making it unusable in unrealpak without supplying the key)
LogPakFile: Error:     -compressionformat[s]=<Format[,format2,...]> (set the format(s) to compress with, falling back on failures)
LogPakFile: Error:     -encryptionkeyoverrideguid (override the encryption key guid used for encrypting data in this pak file)
LogPakFile: Error:     -sign (generate a signature (.sig) file alongside the pak)
LogPakFile: Error:     -fallbackOrderForNonUassetFiles (if order is not specified for ubulk/uexp files, figure out implicit order based on the uasset order. Generally applies only to the cooker order)
LogPakFile: Display: UnrealPak executed in 0.004873 seconds```

Any help?

Hey @Reece_Taylor

did you do all the listed steps from above?

Which UE version are you using?

What does your CMD command look like?

Okay so not sure what I did wrong but I managed to get past that error

however now when I go to import I get this error
image

That could have multiple causes:

  • You are not trying to import an *.uasset file but a file like *.csv, *.jpg, …
  • You have a typo somewhere
  • You are trying to use an asset without the necessay dependencies

What files do you have? Can you share these files?
Can you show the manifest.json and the folder structure / tree?

Sure

Folder structure

D:.
|   ContentToPack.txt
|   tree.txt
|   
+---ContentSettings
|   |   manifest.json
|   |   
|   +---Config
|   |       config.ini
|   |       
|   \---Media
|           PackIcon.png
|           PackPreview.png
|           
+---FeaturePacks
|       ColourPalette.upack
|       
\---Samples
    \---ColourPalette
        \---Content
            \---Assets
                +---Data
                |   +---Data-Tables
                |   |       DT_ColourPalette.uasset
                |   |       
                |   \---Structs
                |           F_ColourPalette.uasset
                |           
                \---UI
                    |   UI.uasset
                    |   
                    \---Widgets
                            untitled.uasset
                            WBP_ColourBtn.uasset
                            WBP_ModelBtn.uasset
                            WBP_ModelTextureButton.uasset
                            WBP_TextureBtn.uasset

manifest.json

{
	"Version": 1,
	"Name":
	[
		{
			"Language": "en",
			"Text": "Colour Palette"
		}
	],
	"Description":
	[
		{
			"Language": "en",
			"Text": "Adds a colour palette to use with UI"

		}
	],
	"AssetTypes": [],
	"SearchTags":
	[
		{
			"Language": "en",
			"Text": "Adds a colour palette to use with UI"
		}
	],
	"ClassTypes": "",
	"Category": "Content",
	"Thumbnail": "PackIcon.png",
	"Screenshots":
	[
		"PackPreview.png"
	]
}

Samples.zip (108.3 KB)

Are these files on your C:\ drive / on your OS drive? That could cause problems.

One more problem: There is an error inside your files which deletes the connections inside the UI widget.

image

Missing dependencies.

Try this:

  • Fix Up Redirectors inside your UE content browser (inside the project right click a folder)
  • Use Migrate to extract all the files you want to an empty content folder (right click on a folder)
  • Use these migrated files for your content pack

ColourPalette.zip (341.9 KB)

Is option “B” the proper way to set up asset packs that are planned for sale on unreal’s marketplace? I have just completed work on a set of meshes (42 high quality meshes with two master materials and many material instances) and want to submit them very soon…

Hey @Felnion

Just create a project with your assets and package this project as a ZIP.
Something like

Config
Content
  |-MyAssets
    |-Meshes
       |-SM_MyCoolAsset_1
    |-Materials
       |-M_MyCoolMaterial_1
    |-Preview
       |-PreviewMap
MyAssets.uproject

Unfortunately, option A doest not work anymore, details here: Migrate tool stoped working in 5.1 - #9 by pmlvl

You have to create a “fake” project folder, with Config, Content and *.uproject in it, and only then it will let you migrate assets. :confused: