How to create a func ut train

From Custom Map Makers Wiki
Revision as of 10:07, 4 December 2011 by John (talk | contribs)
Jump to: navigation, search

I think func_ut_train is a very interesting topic, but when you search it in the internet, you can't find much useful infos about it.

So I decided to write a tutorial about it.

First, here is a picture displaying the structure of a func_ut_train:

Traintut.jpg

  • 1) trigger_always

The "trigger_always" fires at "target_delay".

  • 2) target_delay

"target_delay" fires at our "func_ut_train".

  • 3) func_ut_train

This is our moving train.

You must give your "func_ut_train" an "ID", otherwise it will not work.

You must set "spawnflags" to "1", this means that it will start moving when the map starts.

  • 4) our first path_ut_stop

This is the starting point of our Train.

I have set in this case the "targetname" to "1_0".

Our next stop is this case 1_1, so I set "target" to "1_1".

The "trainID" is very important. If you do not set a trainID, your train will not move.

  • 5) our second path_ut_stop

The "targetname" is "1_1".

The "target" is set to "1_2".

Like in the first "path_ut_stop", you must not forget the "trainID".

  • 6) our last path_ut_stop

The "targetname" is set to "1_2".

The "target" is "1_0".

And do not forget the "trainID".

Additional comments from KittyWumpus

More than one func_ut_train are possible

The key is in setting:

  • targetname - sameforall

And then using:

  • id - different

Explained

I have not had time to test, but so far I have found that if you assign the same |targetname| variable to every func_ut_train, and then assign a unique (first 8 characters at least???) |id| to each of those, then the |id| designation allows each func_ut_train to operate independently.

What I am unsure of

Initially, based upon info from the most awesome SleepingGuy, I had a |targetname|zeppelin| and then |id|airship1 and |id|airship2. This did NOT work. As soon as I simplified this to an: |id|1 and |id|2 , walla! Two independent func_ut_train. I am utilizing this in a map I am working on now, and it gets "dj'd" into our FSK405 CTF map rotation as I revise/fix/progress.

Further

func_ut_train is actually quite simple (thx again to SleepingGuy!!)

  • Create a brush, texture as |origin|.
  • Create a second brush, texture how you like.
  • Select both, |func_ut_train| them.
  • Assign |targetname| to your func_ut_train.
  • Assign identical |targetname| to ALL |func_ut_train| in your map, if more than one is desired.
  • Assign a unique |id| to each |func_ut_train| you want to operate uniquely. (be sure each has at least one brush, and one origin minimum)
  • Assign |speed| if desired.
  • Assign |target| to first |path_ut_stop| for this unique |id|; repeat for each.
  • Create your |path_ut_stop| entities, be sure they target each subsequent, unique |trainid| assigned stops, with the final |target| assigned to first stop of that unique |trainid|

(NOTE: |trainid| is the reference to the |id| of a specific |func_ut_train|.. similar to |target| and |targetname|)

EVEN further!

Yes, you MAY use |yawspeed| |pitchspeed| and |rollspeed| with the |rotationtime| and |speed| variables!! Your |func_ut_train| WILL be capable of turning, pitching and rolling! This can seem complex at first, and I have not had time to create a nice tutorial to explain how... for now, simple experimentation.