In a city where information is heavily monitored, agile couriers called Runners transport sensitive data away from prying eyes. In this seemingly utopian paradise, a crime has been committed, your sister has been framed and now you are being hunted. You are a Runner called Faith — and this innovative first-person action-adventure is your story.

Post tutorial Report RSS Packages and Legal Maps

This is a really simple tutorial about using custom packages in Mirror's Edge. It also will cover how to make sure that your maps do not include official DICE components, so that there should be no legal issues with distributing your map. :) Just as a note, I am NOT an expert on packages, so if you find any inaccuracies in this tutorial, please let me know! This tutorial assumes you have some basic knowledge of Unreal Editor (BSP, placing static meshes, etc) as well as how to make a simple c

Posted by on - Intermediate Level Design/Theory

Tutorial originally written by Blizzard and posted to their website. Mirrored here for archival purposes due to their website being now down. It is recommended to complete their previous tutorial here.

Note their images were not preserved. However all of their information is here.


This is a really simple tutorial about using custom packages in Mirror's Edge. It also will cover how to make sure that your maps do not include official DICE components, so that there should be no legal issues with distributing your map. :) Just as a note, I am NOT an expert on packages, so if you find any inaccuracies in this tutorial, please let me know! This tutorial assumes you have some basic knowledge of Unreal Editor (BSP, placing static meshes, etc) as well as how to make a simple custom Mirror's Edge map. Let's begin!

What is a Package?

A package is a collection of resources that one or more maps can use. It is especially useful if something, like a catwalk object, might be used in many different maps. Packages are stored in various places, primarily in the TdGame subdirectory of the Mirror's Edge install folder. You can open those packages using the Generic Browser's File->Open command as shown below. After you open them, use the Generic Browser, the right click->fully load command, and the filtering checkboxes to locate the new resources, and you can then add them into your map.

Making Sure Your Map is Legal:

DICE has basically confirmed that for various reasons, they will not be making it any easier for users to create custom maps for Mirror's Edge. Thankfully, they have not opposed the community creation of maps, they just cannot offer support. So, how do you make sure that your map is okay to distribute?

As far as I know, all you really have to worry about is distributing DICE's ingame assets. Fortunately, you should not ever need to do this, unless you modified one of their resources, so I will talk about how to avoid that. For instance, what if you (for some crazy reason) wanted to use a mall map sign, but wanted Faith to be able to run straight through it? You might try locating the static mesh directly in the Generic Browser, and editing its properties like this:

But, do NOT do that! If you do, then the mesh itself seems to require saving, as shown by the little '*' next to the package name:

I do not think you can initially use that "Save..." options for cooked packages, but I think there are ways around it, like using the Save All button or answering "Yes" when you quit the editor and it asks you about unsaved packages. If you modify at static mesh like that and save it, you will find something added to your Unpublished directory structure, as shown in the following picture:

That directory contains the new modified mall sign, along with (as far as I know) whatever other resources DICE put in that package. So, you definitely do not want to distribute this package with your map, since you cannot legally distribute files that contain ingame resources. So what would the solution be in this case? Well, there are a lot of things you can do with the properties of a specific instance of a static mesh. If you right click and choose Properties after placing the mesh in your map (hitting F4 also brings up this dialog), you should be able to find this property:

This option lets you disable or customize collisions with that specific mesh in your map, without modifying the original package. So, all you have to distribute is your map, and both you and DICE can be happy! By the way, the same warning applies to editing other resources. For instance, do not change a material using this option if you want to distribute your map to the public:

You can, of course, use the Material Editor to edit your own totally custom materials, if you create any. I also plan to make a simple tutorial soon about using Material Instances to customize existing DICE materials without having actually modifying or distributing the original content.

Custom Packages

Finally, let's cover custom packages, briefly. What if you use the GIMP or some other image program to make a cool texture, and you build your own totally custom material? What if you want to use this material in two different maps? First, when you create the material (or other resource), you will need to enter a package name. Your resource will be stored in this package, and you will be able to see it in the Generic Browser. If you do not plan to reuse your resource in any other maps, you can use the same package name as your map ("Tutorial_p", or "TT_TutorialA01_p" for instance, depending on what your map is named...make sure you do NOT include ".me1" in the package name). This should result in your custom resource being saved in your .me1 map file, with no external package files required! I am not sure if I have tested this carefully, but I think it should work. Let me know if anyone has problems doing it.

If you want to reuse your custom resource in other maps, though, you might save it in a custom package like MyTestPackage1. If you try to load your map after doing that, you might run into an error that looks something like the following, with a different package name of course:

This is because the editor could not locate the package file. For a custom package, it seems you can store it in the TdGame directory (I am not sure if a subdirectory would work) of the Mirror's Edge install area. It seems to me that it would be better to store it in the My Documents area where all your other custom map files go, and I have found that the game and editor can find your package if you copy the package to BOTH locations shown below:

Once your package is in both of these places, your custom map should work both in the editor and in the game! If you change something in your custom package and then save it, the Unpublished one seems to get updated, and you will need to make sure it that you copy it to the Published side again. For distribution, the package ONLY has to be in the Published side of things, and the game will find it. But for editing, for some reason, you need to have your package in both places or the editor does not seem to properly load it. Have fun, and let me know if you have any questions, at gtschemer at gmail.com. Happy mapping!

-- Blizzard

Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: