Trying to use func_train & path_corner(s), func_train brush disappears

Hello!

I haven’t been around mapping for that long time, so it’s kind of expected from me to face some issues when it comes to using functions that game offers. This time related to “how to make things move & crush”.

I read some articles of making the brush to move & crush; first set it to be “func_train”, and then place required amount of “path_corner(s)” to follow and also trigger to activate this deathtrap.

I wanted it to move from one point to another. There will be only the beginning and the end, because in this situation I just want to make it crush the player, it’s a wall whole of spikes to be more specific.

Here is my used attributes for all of these neccessary functionality entities:


This func_button works as a trigger for the “deadly” crushing wall action that’s going to happen.

classname: func_button
spawnflags: 0
target: crushingWall1_trigger
sounds: 1
wait: -1 ← you can only press it once?
angle: 90

This func_train is the brush or combination of brushes that represents the “deadly” crushing wall.

classname: func_train
spawnflag: 0
sounds: 1
speed: 16
target: crushingWall1_begin ← the beginning position for the trap, am I right?
targetname: crushingWall1_trigger ← place button trigger’s “target” field value here,
I quess “target” means always the name of the object.

This path_corner should represents the default position of the crushing wall.
And yes, I figured out how to adjust it so the wall is in the right position.

classname: path_corner
spawnflag: 0
target: crushingWall1_begin ← name of the object?
targetname: crushingWall1_end ← the next destination, the crushing wall should start slowly moving towards.
wait: -1 ← so it doesn’t try to come back at this path ever again?
angle: 180 ← both path_corners are pointing the same direction, the direction the crushing wall should move only.
origin: 1872 160 96 ← both are positioned to be facing each others directly

This path_corner should represents the end position of the crushing wall, and there it should stay and never move again.

classname: path_corner
spawnflag: 0
target: crushingWall1_end
…doesn’t have the next destination…
wait: -1 ← so it doesn’t try to loop? it ends here, right?
angle: 180
origin: 1480 160 96

After all this, I still couldn’t make it work - when I press the button"trigger" the func_train brush just disappears, right after pressing the button. The moving sound still plays, but the brush is no where near to find. Am I doing something terribly wrong? Is there something
I simple don’t see I’m doing wrong, everyone seems to make it work just like that.

I’m using Trenchbroom where I can add these keys and values, and it places them correctly to the map file, so there is no typing errors in that part. It’s simple something else. I hope you guys could help me and give a hand.

My bad I obviously missed something, I figured it out rather fast actually right after posting this topic.

my wall has now:
target: crushingWall1_wall ← name of the wall
targetname: crushingWall1_trigger ← name of the “button” trigger

start path_corner:
target: crushingWall1_begin ← name of the start
targetname: crushingWall1_wall ← name of the wall (brush(es) we want to move)
wait: -1

end path_corner:
targetname: crushingWall1_begin ← it has to point to the previous path_corner, in this case the beginning
target: crushingWall1_end ← name of the end
wait: -1

If you want to make an instant death crusher, you can use a func_door that’s activated by a trigger. Either with a high “damage” value for instant gibbing, or if it’s supposed to slowly but surely crush the player, give it a lower “damage” value (or keep the default one) and set “wait” “-1” (otherwise it will retract again after touching the player). The “wait” “-1” technique also works in combination with the “toogle” spawnflag, so that the crusher can be reset in order to work multiple times and/or make sure no critical path is blocked in coop mode.

If your goal is to make a constantly moving obstacle-type of crusher like in Doom, you can indeed use a func_train. Just needs two path_corners like you did, but without the wait. It’s important to link the path_corners to form a loop, so the last one targets the first one, even if they stop the train with “wait” “-1”, otherwise there will be an error. Of course, this can be used for an instant death crusher as well, but it takes more entities to achieve the same thing.

Tip: Place the door crusher in the extended position (maybe not touching the floor completely), so it’ll be lit properly. Otherwise it will have black faces. Needs the “start open” spawnflag then. Func_train brush models can be placed (and lit) anywhere in the map - they will always warp to the first path_corner they target upon map start.

[quote=negke]If you want to make an instant death crusher, you can use a func_door that’s activated by a trigger. Either with a high “damage” value for instant gibbing, or if it’s supposed to slowly but surely crush the player, give it a lower “damage” value (or keep the default one) and set “wait” “-1” (otherwise it will retract again after touching the player). The “wait” “-1” technique also works in combination with the “toogle” spawnflag, so that the crusher can be reset in order to work multiple times and/or make sure no critical path is blocked in coop mode.

If your goal is to make a constantly moving obstacle-type of crusher like in Doom, you can indeed use a func_train. Just needs two path_corners like you did, but without the wait. It’s important to link the path_corners to form a loop, so the last one targets the first one, even if they stop the train with “wait” “-1”, otherwise there will be an error. Of course, this can be used for an instant death crusher as well, but it takes more entities to achieve the same thing.

Tip: Place the door crusher in the extended position (maybe not touching the floor completely), so it’ll be lit properly. Otherwise it will have black faces. Needs the “start open” spawnflag then. Func_train brush models can be placed (and lit) anywhere in the map - they will always warp to the first path_corner they target upon map start.[/quote]

Thank you very much*

Things are starting to make more sense now, more and more.