Jump to content

Basic Conveyor Belts


Recommended Posts

This is just a quick tutorial on the basics of conveyor belts for those unfamiliar with them and so that my next couple make more sense to more people and are therefore more helpful. Conveyor belts can be extremely useful in most formats (Boom, zDoom, etc.), excluding Vanilla and the like. With conveyor belts it is possible to script sequences that would otherwise require an extreme amount of preparation, hoop-jumping, and layout changes. Basically, they make your life much easier as a mapper; much in the same way as sound-blocking lines over the "deaf" flag.

The first step to any conveyor belt is to decide where you want it and why you want it. Adding in frivolous mechanics does nothing but complicate things and adds nothing to the gameplay. Good reasons for conveyor belts are things such as multi-action triggers, environmental hazards for the player to deal with, delayed reaction-triggers, or some good ole fashioned ambience.

Once you've decided your location, start by creating the shape for your belt. Will it stick out of the ground? It shouldn't be flush with the floor, but if we assume it is raised then there will be an additional step.

Next decide on how this thing will operate. Will it be active forever or will it only be active for a short time? How and when should it start/end?

For this tutorial I will be using Boom format.



Part One: "Forever" Actions

Let's make a basic map and go from there.



Start with a nice sized, square room. In the center, draw a rectangle stretching from one end to the other. Add in a couple squares on the outside of the original room, adjacent to the rectangle you just drew. These rooms and the rectangle will become our conveyor belt. Take these three sectors and raise their floors by 8 pixels. Place a STEP5 texture on the lower sides of these lines and make the floor texture something like FLAT1 or STEP1. This tutorial does not cover making this stuff look good, so that's about the only texturing I'm gonna talk about here. The rest is mechanics.

So now we have something that looks like a conveyor belt, it just doesn't move yet.



From here, we need to make this thing move. Let's start by examining what triggers are good to use:

These triggers all operate from map start and unless stopped will last until map completion. These are not your temporary things.
250-Scroll Ceiling according to Line Vector - Only here for completion purposes. All it does is scrolls the ceiling.
251-Scroll Floor according to Line Vector - This causes the floor to scroll with no effect on anything else. Purely aesthetic. Not for us.
252-Scroll Move Things according to Line Vector - Opposite the first, this makes things move but doesn't move the flat.
253-Scroll Floor, Move Things - This is the one we want. This one does both of the effects of the first two.



Now that we know which trigger to use, we need to pick our placement. It is important to place the trigger line correctly, though its actual location does not matter. For this example, I will pick one of the walls of the side sectors (I picked the north wall, facing south of the left side sector). Where you pick does not matter, but it is important to note that this trigger will always scroll the floor to the left relative to its own facing. So it it's facing north the floor scrolls west, south goes east, etc. The other important thing to note here is that the speed of your belt is determined by the length of the line. My general rule of thumb here is 1 second (maybe a tiny bit less) for each length of trigger line you have. In my example the trigger line is 128 pixels long while the room is 512, so it takes about 4 seconds to get from one end to the other.



Now we have a conveyor belt that both scrolls the floor and moves things forever, but the lower textures of the belt do not yet scroll... Let's examine the actions:

These first three are "Direct" actions and all 4 are "Forever" actions:
48-Scroll Texture Left - See Below.
85-Scroll Texture Right - Same as the one above, only this one goes right. Both of these two scroll whatever textures occupy that line and that line only. They do not need tags, nor can they operate off of tags (one trigger tagged to many lines). The speed is constant and does not rely on the line's length.
255-Scroll Wall using Sidedef Offsets - This is an interesting one. What it does is scrolls the wall based on whatever offsets you give it. This is great if you want to scroll a wall vertically, diagonally, or if you really want to fine-tune the speed using numbers rather than line-lengths. I prefer lines, though.

254- Scroll Wall according to Line Vector - This is an indirect trigger. It will not operate on its own wall. It will only operate on other walls that share its same tag. It's also really fun to play with. This is basically the line-equivalent to action 255. Lines facing the same direction will scroll left, lines to the perpendicular left will scroll up while to the right will scroll down. The length of the line directly affects the speed of the scroll.



For this example we will use action 254 because that's the one I like. It's very easy to make 2 lines the same length; Hell, you could just copy+paste the first and change the action and tag. So pick a line and pop that action 254 on there. Now check it to make sure it works. Always check your shit; you don't want to build a bunch of stuff and wind up trouble-shooting later. Easier to just take your time with it.


Note that the affected lines are red while the triggering line is gold

Conveyor belt moving too fast for you to see if everything is flush? Remember that strafing the same speed as the belt can help you see if they move the same speed.

So now we have a conveyor belt that works forever; congrats! You're almost ready to start scripting in a program that doesn't allow scripting. So what now? Now we gotta learn about the temporary scroll/move actions.



Part Two: Temporary Actions

Well now this belt is all well and good, but what if we don't want it to operate forever? That's where the other actions (and maybe a dummy sector or two) come into play.

Dummy sectors are just about the most useful tool a mapper has at his disposal. Using dummy sectors in combination with reference sectors will allow you to make just about anything possible without the need for real scripting and occurs where the player is unaware of their existence. Reference sectors are simply the sector that the dummy sector will operate off of.

Let's begin by killing all of our hard work thus far, minus the room and belt. So, remove the triggers in place. Afterwards, create a dummy sector anywhere outside of the map area. Remember to flag these lines as "Hidden" and to check back after everything is done, in case you change things along the line and/or add in new lines.



Dummy sector in hand, let's first make the floor scroll.

For this list I will omit 6 of the actions because they are pointless for this example (214, 215, 216, 245, 246, and 247). 2 are related to ceiling scrolling, 2 are floor only, and the last 2 are things only.

217-Scroll Floor/Things Accelerates when Sector Changes Height - This one's a tricky devil to work with. First off, this is one of those few ways (maybe the only way?) to stop a "forever" belt. This is also a permanent thing, so after the sector stops moving the change will last "forever" as well. What this does is just like its name implies, it accelerates stuff. Of course remember that slowing down is reverse acceleration. The longer that the dummy sector takes to reach its reference sector, the more time the trigger will have to work. This thing is tricky to use because it requires the combined efforts of both the line's length and the dummy sector's movement time to achieve its goal (as do the rest of these) but this one in particular can be tricky because while both are needed for this to work, both also do the same thing. You can accomplish the same thing quickly with a longer line and less movement time, or do it slowly with a shorter line and more dummy sector movement time.
248-Scroll Floor/Move Things when Sector Changes Height - This is the king, cash cow of temporary belts right here. This will cause a constant change only while the dummy sector moves, after which it will lie dormant for its next use. This is the best way to start something up and not have to worry about stopping it later. Once again, the length of the line is its speed and the time the dummy sector moves is its direct time-limit.



It is important to note here that the direction that the dummy sector moves is directly tied to the direction the real sector moves. From a line's facing, if you want the sector to move to the left, make the dummy sector move up; if right, move it down. It does not matter if you move the floor or the ceiling, only the direction is important. Note also that the speed of the moving sector also affects the speed of the trigger. I tend to use slow-moving sectors to control stuff like this for ease in many areas. I suggest you do the same.



So we have our lines in order, but we're still missing that reference sector. Add one in.



At this point we need to decide what direction we are moving, if we somehow haven't already. I'm going to make it go east, so I will tag the north line of the dummy sector and place action 248 on it. I will then raise the ceiling of the reference sector because remember "up" means "left" and our line is facing to the south, which makes left east. At this point you need a trigger elsewhere to be added to move the dummy sector. What this basically means is that the player will only cross one line, which in this case will be action 40-W1 Ceiling Raise to Highest Ceiling.



Tag the same as only the dummy sector, flag it "hidden" and run it. At this point you should have a stopped belt which moves when you cross the line for as long as you made the reference sector high. My general rule of thumb with this is about 1 second for every 32 pixels; 4 for 128.



Now we move on to the walls:

218-Scroll Wall Accelerates when Sector Changed Height - Same as 217, but for walls.
249-Scroll Wall when Sector Changes Height - Same as 248, but for... you got it, skies-- No wait, walls.



Put in another dummy sector attached only to the reference sector and give a line facing the same direction with the same length as your action 248-line. You can even join these two together if you want, but definitely make sure that both the lines' lengths and the sectors' movement distance is the same.



Now you have a system in place that allow a player to cross one line and activate two, which really equates to one real thing operating. Congratulations! You've learned the basics of conveyor belts! The next lesson will focus on changing existing belt systems, followed by the last lesson which will cover triggers that are difficulty level-specific (but also involve voodoo dolls).

Share this post


Link to post
  • 3 months later...
  • 6 months later...

Sorry for the bump, but is there a tutorial for zdoom maps? I can't seem to get the belt moving in the direction I want it to.

Share this post


Link to post
Sgt Ender said:

Sorry for the bump, but is there a tutorial for zdoom maps? I can't seem to get the belt moving in the direction I want it to.


AFAIK the linedef with the action must point in the same direction where you want it to move.

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...