MyLevel is a special package name in UnrealEd. If an Unreal resource such as a texture or static mesh is listed as being in the package "MyLevel", that means it is embedded in the map, and not in a package file on your hard drive. The MyLevel file doesn't actually exist. The word "MyLevel" is a magic keyword that works as an alias for your map file itself. "MyLevel" is often called a pseudopackage.
It is in the MyLevel pseudo-package that you must import the level screenshot that the game displays in the map browser.
Overview
Pros
- Easier to distribute a map as a single file. Reduces confusion and makes your map easy to install
- Reduces clutter in the separate folders: this is by far the best solution if you just want one or two new textures for a map, instead of adding new files with each map with the increased possibility of errors.
- Reduces File Size slightly:
- Zip file with a 255,0,0 color (pure red) 64x64 texture Mylevel package on the default cube builder
- 1.85 K
- Zip file with a 255,0,0 color (pure red) 64x64 texture in a separate package on the default cube builder
- 2.06 K
- Removes the risk of texture package name/contents clashes.
Cons
- If you have custom textures used in a lot of maps, every map would have to include the textures again.
- Can be tricky to reuse textures in a new map (in theory it should be possible by just opening the maps in sequence but the support in unrealed for this is a little buggy)
- Duplication between maps will waste bandwidth time and disk space.
- The download system in UT does not support resume, therefore smaller sizes for individual files result in less wastage from incomplete downloads and more chances of eventually getting connected to the server.
- This does not work for sounds in Ravenshield. It will just create a file in /sounds named MyLevel.sbo. This might work for 22khz mono and lower, but seriously 22khz? This isn't Duke Nukem 3D.
Instructions
Embedding new resources
- Create or import a new resource in UnrealEd, like a sound, a texture, or a class. When you are asked to give a package name, put "MyLevel". The case doesn't matter, so "mylevel", "MYLEVEL", "mYlEvEl", etc are all the same thing.
- Use the new resource somewhere in the current map or UnrealEd will discard it when the map is saved. If you embed a resource in the Mylevel virtual package and close UnrealEd without using it somewhere in your map, your unused resources will be lost. Ued will automatically get rid of unused resources to save space and memory.
- Save the map.
- DON'T save the MyLevel package. If you save it, bad things happen!
If you have a resource already used in a map, but residing in an existing package, moving it to MyLevel is somewhat harder. You generally need to export it and re-import it.
Embedding resources from existing packages
See Embedding Code. The same also works with .utx, .uax, or, .umx files.
For textures which are already used in a map:
- export each one to PCX
- reimport
- use the Texture Replace tool, or SHIFT+T to select all surfaces of the same texture
- reapply the MyLevel version of the same texture
Embedding resources from another map's MyLevel
If another map has a resource embedded, you can copy this to your own map.
Do not quit UnrealEd at any point in the following.
- Open the other map
- Open your map
- Select the resource in the appropriate resource browser
- Place it in your map
- Save your map
Referring to resources in another map's MyLevel
You can use a resource that is embedded in another map's MyLevel without copying it to yours. This saves on filesize, but you must be certain that anyone using your map has the resource map too.
- Open your map
- Open the appropriate resource browser
- Go to load a new package
- In the file chooser, navigate out of the current folder and into the maps folder
- Open the map file whose resource you want
- Place the resource in your map
Related Topics
- See Package for more on resources and packages in general.
- Import The Texture
- Level Screenshot
Discussion
Unreal Resource Handling
Some quick questions:
- Is anyone familiar with the internal workings of how UED handles the assets mentioned above? If so please add a reference/search link to the relevant code pages, as I am currently working on a mod that requires editor functionality ingame and need more information.
- Is there some way to stop UED from creating bogus packages? ie. Package0, Package1 etc. Maybe flushing a buffer or something?