Skip to content

Instantly share code, notes, and snippets.

@wallabra
Last active September 7, 2018 23:30
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wallabra/9bfd3c84465c1ae2d523a362e6732ae4 to your computer and use it in GitHub Desktop.
Save wallabra/9bfd3c84465c1ae2d523a362e6732ae4 to your computer and use it in GitHub Desktop.
How to create UT99 ladders

VOVolume Tutorial

VOVolumes can be confusing for those who have never mapped for Unreal Tournament 2003/2004, and even for those it'll confuse, because it's not an actual freeform volume, but a cylinder!

To explain it, we'll need to look at analogies.

What is an VOVolume? Or a VOVolumeModifier? Or a VOVolumeTrigger?

Think of a VOVolumeTrigger as just a way to define a cylindrical volume, like a pot, except it doesn't collide with whatever touches it.

Think of the VOVolumeModifier as something that will act upon everything inside this volume, like fire inside that pot (so everything inside burns).

Think of an VOVolume as a way of telling the Engine "this is a volume, and these modifiers shall act onto everything in it". It would structure the VOVolumeModifiers and give everything function, as well as group multiple triggers; yet, it would be nothing more than abstract. I couldn't find a good analogy, so apologies for that.

Of course, this is similar to how Zones work (or can be made to work), but the advantage is that you don't need to actually cut a zone, nor BSP (since those are Actors), and this is a bit simpler to configure.

How do I use the VOVolumeLadder/VOVolume/VOVolumeTrigger actors?

Before you begin, grab your dependencies! It is important that you have the ladders before you place the ladders, if you get me. Afterwards, to load it is simple: close UnrealEd, open that map, then open the target map!

Below is a sequence of instructions, each with an image to attempt to visually describe what's going on. If you are still confused, email me, or send me a private message over at UT99.org.

(a) Find a ledge you want to ladder. This might sound stupid, but trust me, you don't want a level full of ladders. These are experimental actors. And, in the world of Unreal and its thousands of mods, experimental is basically just another synonymous of annoying! So use these sparingly.

Ledges! Darn!

(b) Since our ladder will be invisible, we'll need to make a sheet brush to make it look like... something.

Hey! I'm not invisible! Oi! Hello~?!

(c) Select the VOVolume actor in the Actor Tree.

There you are, my good old volume!

(d) Place it somewhere in your level, next to the ledge. Don't worry with its collision; we'll use separate trigger actors to define its actual volume.

Stay there!

(e) Now, in the VOVolume properties, set the RootModifierTag to LadderMod1 and Tag to MyLadder.

Nice name you got there, Modifier.

(f) Now pick the VOVolumeLadder class, below Triggers. Place it next to the volume actor.

Stay there you too!

(g) Check the new modifier actor's properties, and set its Tag to "LadderMod1".

And I call our baby 'LadderMod1', doc.

(g) To path it, just use LiftCenter/LiftExits as usual, and don't forget to set the LiftTag of the lift pathnodes to match the volume's Tag! What about "MyLadder"?

Hey, bots! I'm a ladder!

(h) Now, we have to rotate the modifier actor, so that players will move up only when facing to the wall.

For such, please use the Top View to rotate the modifier against the wall:

Don't walk off the ladder.

(i) Finally, to give shape to the area of effect of our volume, put, in the center of our ladder, a VOVolumeTrigger actor. Make sure it has appropriate collision! Then, set its Event to MyLadder.

Look, VOVolume! I'm the volume, you just act on me! Why am I not you?

License and Legality

This program is (C)2018 Gustavo R. Rehermann.

It is freely allowed to distribute, embed and use the source code of this Software. Modifications of the Source Code do NOT have the legal warranty of the original version of the Software. It is only allowed to modify, use or distribute the artistic assets (textures, models and sounds) if either the original Software is mentioned or the Author is attributed. The source code can only be modified if the original Software is mentioned.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment