Warp Zones

One of the most versatile effects in the editor, warp zones give a seamless teleportation of players and projectile weapons to another area in the map. They have limits that the mapper has to deal with however. You cannot hear sounds through warp zones, and instant-hit weapons such as the lightning gun or plasma rifle beam will stop at the zone sheet. In addition, bots cannot see you through warp zones. This tutorial will teach you how to make warp zones that you can use for whatever you can think of.

Open the editor and create two rooms 256 width and 1024 breadth. Put them right above each other and texture them differently so we can tell them apart. Light it up and put a player start in one of them. For our experiment with weapons, put an xPickUpBase >> xWeaponBase on each side. Set the side with the player start to Shock Rifle, and the opposite side to Rocket Launcher. You should now have something that looks like this:

Now for the difficult part. Warp zones will display one side of the texture even if we set it to Invisible. There are no completely masked textures in 2k3, so we need to make one of our own. Open the texture browser and hit File >> New. In the New Material box that pops up, set the package to MyLevel, leave Group blank, and set its name to WarpZone. Make sure that its Class is still set at the default, Raw Material, then select Final Blend in the MaterialClass scroll-down box. Once you're done, hit New.

Our new texture's property box will now pop up. In order to make a completely masked texture, we need one that is completely black. Luckily, 2k3 comes with one already. Without closing our texture's properties, select the UCGeneric >> Black texture (Be sure you have All selected so it will show). Go back to our texture's properties. In the upper right corner is the material tree, Final Blend should be highlighted by default. In the property box at the bottom, hit the Use button next to Material, and the UCGeneric.Black texture should now be displayed. Now, in the FrameBufferBlending scroll-down box, select FB_Brighten. Since our texture is black, it will be invisible now.

Close out our texture's properties and select it in the Texture Browser. Create a sheet 256 by 256 and rotate it straight up and down, and move it so it is completely blocking one end of our player start room about 128 units from the end. Hit Add Special Brush, select Zone Portal from the scroll-down box, then hit Ok. The brush will be added, but it will be completely invisible.

Now move the red builder brush directly down to the other room, and add another Zone Portal the exact same distance from the wall as the other one. In the Actor browser, add an Info >> ZoneInfo >> WarpZoneInfo to both of the blocked off areas, making sure they are completely inside it. Open the top one's properties and select the WarpZoneInfo tab. For ThisTag, put top, and for OtherSideURL put bottom. In the other one's properties, put bottom for ThisTag and top for OtherSideURL.

Rebuild your level, then test it out. Oh no, what happened!? This effect is referred to as HOM (Hall Of Mirrors). It results from misaligned brushes and zones, or if outside surfaces of levels are set to Invisible, letting you see "outside the universe".

Warp zones are extremely tricky, they have to be aligned PERFECTLY in order to work. Think of the zone sheet as having two magnetic surfaces, north and south. For the warp zone to work, the Zone Portals have to be aligned so the magnets can "connect" the ends properly.

To do this, all we have to do is rotate the brush 180 degrees in the Top view. It is extremely important to NEVER align the textures on warp zones or do a Transform operation on them. The inner volume must ALWAYS have the same shape, and it must be completely sealed off. Now that we have our brush rotated, rebuild and try it out again. That's better!

You may notice when you run through it that it "glitches", this is just a problem with warp zones that cannot be corrected. The effect will be more pronounced if you run through it sideways, or if the lighting levels on either side are different. If you grab the weapons in the level, you will notice that the Shock beam disappears into the void but the Rockets have no trouble passing through. This is due to the Shock and similar instant-hit weapons being lines traced from your position, these lines cannot be traced through warp zones. Rockets are projectiles, and their position is calculated along their entire route (just as players and bots), so they can go through.

Thanks to Steve Polge of Epic for this update. This is quoted from a reply to a thread at INA:

In UT2003, Warpzones work if either they are in a zone with no skybox, or UseStencil is set to true in the [D3DDrv.D3DRenderDevice] section of your UT2003.ini file. Turning on UseStencil causes a substantial performance hit with certain video cards, including the Geforce 4 MX. Also, stencil buffering doesn't work on old cards (like the TNT2) or if you are running in 16 bit mode. I'd recommend confining your warpzones to zones with no skybox.

- Steve

Example Map from this Tutorial (12kb zip)