Posted on Leave a comment

UT2004: UnrealEd Browsers, Textures and Pickups (basics)

[Return to UT2004 home]

Warning! Sometimes the editor will ask if you want to save a texture package or static mesh package or whatever when you are closing the editor. To my knowledge, you should always say “no, don’t save” to these prompts.


Browsers are quite important as you work on levels, but the 3 most used ones are the Texture Browser, the Actor-Class Browser and the Static Mesh Browser.

These three browsers operate on similar principles – you select what you want in the browser, and in one of the viewports, you add it to the level. Either via right-click context menu, or additionally in the case of textures, with a key combination of Alt+LMB. It’s handy to know that Alt+RMB will “pick” a texture, which makes it really easy to keep using a texture you’ve already been using throughout the map, though the only caveat is there is no sound or visual feedback that the texture has indeed been picked.

On this image above, I’ve highlighted these three browsers which are found at the top of the editor. From left to right:

  • Actor-Class Browser – Chess pawn icon
  • Texture Browser – Landscape photo icon
  • Static Mesh Browser – Archway icon

Textures and the Texture Browser

Adding textures to your level is simple. There are only two time-consuming parts about it: learning where all the textures you want are, and aligning textures when you want things to look particularly neat in a high traffic area of the level, or whatnot.

So as you’ve seen or tried already, if you make a new level and carve out a new spot it’ll have a funny texture. We want the above room to use some of the Egypt type textures that exist in UT2004. We open up the Texture Browser using that little landscape photo icon like above, but where are these textures anyway?

A lot of texture package choices here…

Normally, when you want a specific texture, or one from a specific style, there are three things you can do.

  • You can click the little “open folder” icon and open specific texture packages individually and look through all of them until you get frustrated and eventually learn where what you want actually is.
  • You can also open one of the default/official levels in the game with the editor and pick the texture from there and load your level again and use it there, and also see what packages it loads that aren’t loaded by default.
  • And, you can look at the texture package reference found on this old Unreal wiki, which as far as I know, is probably one of the most useful resources for the editor, that’s actually still bobbing about from way back when.

In particular I already know that what I want is in the BarrensArchitecture package, so I click the little open folder icon and find it in the game’s textures folder:

Selecting and opening the package we want to use.
This little dropdown has several categories within the package you are looking inside of.

Specifically I want this texture that is found within the “Base” category of the package. But why didn’t I just pick the BarrensArchitecture package that was already present on the package dropdown before?

Well, if I had picked it there, it wouldn’t be the full package of textures, only a sub-set that was already loaded into the editor, let’s say because I had another level open previously that used some of the textures from that package, but not all of them.

So anyway, I navigate the browser with the scroll-bar on the right-hand side and I click the texture I want to use and then I minimise the browser, then starting to use Alt+LMB to apply it to a surface under my mouse pointer.

Starting to look better…
But I can also apply the texture by right-clicking the surface I want and choosing “Apply Texture”.

There’s only two more things you need to know about the Texture Browser. Clicking the “All” button next to the categories drop-down will show all of the textures in that package on the same window, rather than having to select each different category to look through them. This is useful when you are unfamiliar with what textures are contained in a package.

The other thing is that the little button with the “!” is used so that animated materials and shaders can be viewed moving while within the Texture Browser.

Now you know how to add any texture to any BSP surface in your level. One of the most important parts of basic level layout design.


Pickups and the Actor-Class Browser

Adding pickups is simple, but not immediately obvious. In the room below, I have since added a player start position, which I’ve easily added with the right-click context menu, as you’ve seen before by now.

The player would spawn only with the default weapons here, if this was a room in a larger map.

To look for actor classes, we need to open the actor class browser, which has a chess pawn as an icon.

Remember, you can find all the browsers up here. The chess pawn icon represents the Actor Class browser.

You should see a browser like the one above pop up if you click that chess pawn icon. These are the several actor classes that are used in UT2004 for all the content to actually exist in a level.

Most importantly right now, we’ve got the HealthCharger sub-class of the xPickUpBase class highlighted, which I’ve done by simply clicking on it. Now that this HealthCharger is selected, I can right-click on a viewport to place it somewhere.

The health charger is the standard +25 hp pickups found in most maps.

Though I placed it roughly where I wanted it, the positioning isn’t quite the one I wanted, so I’ll have to move it, and as explained in the UED basics, I will do so by using having the charger selected, holding Ctrl+LMB+RMB and moving the mouse to drag the object down to ground level. It’s also not centred where I wanted, compared to the player start, so I’ll also have to move it on the top view using Ctrl+LMB.

To move the charger up and down, it might be best done in the 3D view with the camera at an angle that makes it easy to visualise the contact to the floor, and though it can be done in the 2D viewports too, these can get very messy as a map gets to its final stages, even without static meshes showing.

These are the basic principles of how to add any actor-class. But there’s quite a few actor classes and some have similar names, so here’s a little list to help you differentiate some of the more important ones, and lets you know which ones you’re most likely going to use.

  • I’m a list, FILL ME please.

Static Meshes and the Static Mesh Browser

Last but certainly not least, is the Static Mesh Browser.

You can skip this paragraph if you like, but it may be an important thing to know as a level designer, or even just as someone interested in game developing in general, that up until around 2004, a lot of detail was given either through Sprites or through complex BSP brushes and nearly almost all level geometry was based only on BSP, especially if you look at popular games like Deus Ex (2000), Daikatana (2000) and Half-Life (1998). UT2003 and UT2004 were some of the first (at least more well-known) games that really started to use a lot of static meshes (3D models, simply put) in its levels, even for level geometry, and this has definitely become the cornerstone of modern game worlds that are filled with detail, to the point that the BSP format is now almost completely unused, but interestingly enough, sprites are still a very effective means of adding low-poly but high-detail to levels and hasn’t really been topped yet, although approaches to sprites have certainly become refined.

Anyway, the Static Mesh Browser works a lot like the Texture Browser. You have to find the SM Package that contains the mesh you want, and like finding textures, your best bets are to either look in each package individually or check a reference, such as this one.

Re-using meshes can be a bit more annoying than re-using textures. I will demonstrate how you can add a pillar to the level and explain why meshes can be annoying to re-use sometimes.

Remember, the little arch icon represents the Static Mesh browser.

Similarly to before, I want to pick an Egypt-theme static mesh now, and I already know that I’ll find what I want in the BarrenHardware package. So I click the little folder icon to pick the package I want to open…

Don’t forget you can use the “All” button or just select Pillars from the category dropdown.

And I got the pillar I wanted to find, so now to place it in the level I’ll have to do the same as before with both the health charger or the textures, and right-click roughly where I want to be…

So now that I’ve put the pillar in, I’ve selected it and I’m going to move it more where I want it to be, but I also want another one a bit further up, so I Ctrl+C while having the pillar selected to copy it and Ctrl+V to paste the copy roughly in the same place.

As you can see on the left, when the pillar is pasted, it is pasted at a higher position and slightly off-set in the X and Y axis as well. On the right I’ve moved it to the next location, where I want it to sit. In this case, it’s not super annoying that it moved like that, but as you start to re-use the same mesh more and more throughout a level, it can become annoying, but furthermore, as you find yourself using these tools below…

The mirroring tools, which will mirror in the X, Y or Z directions.

…then you will start to notice that groups of cloned and mirrored meshes start to mis-align, resulting in tiny flaws in detail which become very obvious if a large portion is done this way. The mirroring tool is still very useful when both meshes and other objects are selected, but you should take care to check if everything is actually lined up properly once pasted and mirrored.

Play around with the mirroring tools with both brushes and meshes and see how you get on.

This concludes the guide for the basics of using the three main browsers. As with level design in general, you’ll only feel more comfortable with using these tools and everything they lead to by actually spending time making mistakes with them and understanding on an intuitive level how certain things work.


[Return to UT2004 home]

Posted on Leave a comment

UT2004: UnrealEd Basics

[Return to UT2004 home]

There isn’t a lot of info anymore about UT2004’s now-old editor. A lot of the info that does exist is sometimes difficult to run into because of the way search engines work now, and because it’s scattered across several different places, in bits.


Here’s a small index of the guides I’ve made or am working on for UT2004’s UnrealEd:


UnrealEd isn’t complicated, though it looks so at first. Modern UE4 or even UE3 users will be familiar with the navigation and control, but people coming from different editors usually take longer to get in-line with the way things work.

You can control the camera in the 3D viewport by using the mouse. Forget keys for camera control.

  • LMB on its own moves the camera forward and backward, whilst also turning the view, but only in a horizontal direction.
  • LMB + RMB moves the camera up and down but also strafes left and right.
  • RMB alone only serves to turn the camera around, but usually when you are navigating somewhere in the map, you will find yourself holding RMB as you use the other two movements.

For moving the camera in the 2D viewports simply use LMB or RMB, but you can use them together to “zoom” in and out, if for some reason you lack a mousewheel.

Also, if you’re starting out, be aware that Ctrl+S is not how you save. Ctrl+L can be used for saving.

Ctrl+A, Ctrl+S, Ctrl+N and Ctrl+D are all key combinations used for fast brush-work. The brush is a repositionable object that doesn’t exist in the game world on its own. By default, on a new map it is not active.

As soon as you click one of these icons on the left, the default brush will appear, as seen on the right.

The icons on the left-hand side can be right-clicked too. This allows you to set specific parameters for their sizes, which you will be doing a lot as you edit maps. The previously mentioned key combinations do the following: Add, Subtract, Intersect and De-Intersect. Ctrl+A and Ctrl+S are therefore the ones you use most often, in a basic manner.

The way levels worked in games like UT2004 up to this point was what is called a BSP, or Binary Space Partition, in full. The BSP format basically says” there is something” or “there isn’t something”. Within a .ut2 BSP level, the entirety of the initial space is Positive. This means all of the space is full, or in other words, “there is something” filling all the space.

To start making a shape for your level you must carve away the Negative space, using Subtraction with your brush. Importantly, you can only have one active brush. To be honest, this was a bit confusing for me when I started, since I was used to Half-Life 1 level editing.

So, if you have the default cube brush as above, and you then press CTRL+S, you’ll be able to see through the 3D viewport that it becomes an open space with a random texture:

By default this new open cubic space is 2563 units. This is actually quite large. A player character is about 96 units tall. For reference, with a character mesh below:


You can right-click surfaces in the 3D viewport, or more generally any location in the 2D viewports, to get a context menu like this, which will allow you to place Player Starting Points (PlayerStart) and Lights:

To move the building brush around, you don’t need to have selected anything, as it will auto-select if nothing else is selected. If you do want to select it however, you can just left-click its outline in one of the viewports.

You then move the brush around by using Ctrl+LMB. Important: Which viewport you do this in will affect how it moves. In the 2D viewports it will move in any of the two axis.

But in the 3D viewport, object movement works like camera movement. If you have an object selected and you Ctrl+LMB in the 3D view, it’ll move along the X axis. Ctrl+RMB will move it along the Y axis, and finally, Ctrl+LMB+RMB will move it on the Z axis, i.e. up and down.

In the 2D viewports you can rotate selected objects by holding down Ctrl+RMB and moving your mouse left or right. The axis of rotation for the object is the one perpendicular to the view’s plane. So if you are looking at the Top-Down view (the X,Y plane), you will rotate the object around the Z axis, which is the most common type of rotation you will need.

The building brush after rotating it a little bit in each of the 2D viewports.

It’s probably worth mentioning that whatever you do with the building brush won’t affect your level until you actually subtract or add with it. You can reset the building brush easily by going into the the Brush menu at the top:

This concludes the very basic and important bits of moving the camera around and moving an object around.


For me, the general workflow involved in making a full level involves the following steps:

  • Before anything else, I start by making a sketch of a desired level. It doesn’t have to be precise, though it may help if you think about a character’s size, especially when you aren’t used to the editor’s scale yet.
  • In the sketch, the main negative space is planned, and the primary objective and weapon points are designated.
  • Once I’m happy with a sketch, I start to try and get the shape I want for my level by using negative brushes. There’s a lot of trial and error for me to get the scale right vs what I envisioned the map would feel like when in-game.
  • Then, start thinking about the static meshes I want to use, if I hadn’t already, and start to place the objectives and weapons, roughly, also detailing some of the BSP shapes with more complex subtraction and addition.
  • If a map is going to be symmetrical, I only do one team’s side first, before copying it over in bits to the other side.
  • Finalise with better and more refined light placement and ammo placements and so on. Static meshes are quite important for the “flavour” of a level, too.

[Return to UT2004 home]