12-Jul-2023
This is a func_train with a greater set of features (like auto-rotation). Func_tracktrains are supposed to be controlled by players. Triggering them manually to get them moving works once. Any further triggering is ignored. Origin brush is required for this entity. To make it controllable you must use func_traincontrols as well.
Keyvalues |
OnDestroy Function ondestroyfn : Name of the function to use from already parsed .as script files when entity is destroyed (killed) in any way. If the function belongs to namespace, you must use prefix with the namespace name (e.g. mynamespace::MyFunction) for the keyvalue.
Name targetname : Set name of func_tracktrain so other entities can trigger it to start or stop it. Depending on trigger use-type: 'On'- start moving, 'Toggle'- start/stop moving, 'Off'- stop moving. Can be kill-targeted.
Pitch Yaw Roll (X Y Z) angles : Where Z means Y and Y means Z, that is, when you're thinking Hammer-grid. (Hammer uses Z for height and Y for depth, while every other sane 3D-application does this the other way round; nonetheless this keyvalue description has the letters in the conventional order) This, technically, is a 3D-vector containing Euler-angles to describe either the entity's rotation or direction of effect. E.g. a func_door_rotating will use this as its initial rotation, while a trigger_push will keep its original alignment and use this for the direction of its push-effect instead. Euler-angles are a hierarchical system to determine an object's orientation in 3D-space. A yaw-value of 0 would mean the entity would face east. (right in top-down view) 90 would mean it would face north. (up in top-down-view) After yaw, pitch is applied. Think aiming up/down with your character in first person. At last, the roll-value is applied. Think your character falling over sideways in first person. Some entities, mostly point entities, do not use the angles keyvalue for any purpose.
Global Entity Name globalname : Global name of entity, allows to have one entity in the multiple maps (e.g. elevator in map1 and map2 have the same "Global Entity Name" which tells the engine to treat those entities as a one single entity, so all elevator settings, positions, actions e.t.c. are copied to another map in a moment of map transitions.
Render FX renderfx : Set custom render FX effect. Only works when "Render Mode" is set to different than 'Normal'
Render Mode rendermode : Render mode determines how this entity is rendered.
FX Amount (1 - 255) renderamt : Render amount to use when other than "Render Mode" 'Normal' is used.
FX Color (R G B) rendercolor : Used with "Render Mode" 'Color' and 'Glow' to set color. Also sets color of 'Glow Shell' "Render Mode".
Classification classify : Set the class of the spawned func_tracktrain. Think of how even though zombies and human grunts, by default, both are the players' enemies, yet have a dislike for and attack each other as well. This relation is created through the respective classes of the two entity types. For a complete table of how different classes react to each other, see monster class relation table.
ZHLT Template Model Target zhlt_usemodel : For Brush entities: sets brush model template of this entity. Set it to the name of other brush entity (now called a template) and it's brush model will be used instead. Templates might save server resources by "copying" single brush entity (template identified by name) and using it in multiple places (can be used for entities like tables, columns, barrels, cars e.t.c.). Also one template occupies only one entity slot when compiling a map, no matter how many entities refers to it. For model-based point entities: copy display model of specified entity, to use it's model instead. Using "Custom model" is more appropriate in most cases, however, when it's not possible, use "ZHLT Copy Lighting From Target".
ZHLT Copy Lighting From Target zhlt_copylight : For Brush entities: copies light info from specified entity. This can be useful when we want this entity to be light up in a similar way the other entity of the map is, e.g. we have few func_pushables on map, and they are lit differently, tough they can be moved (and lightning is not updated on dynamic entities), it may looks shabby. With this keyvalue we can prevent this making all func_pushables received light in a same way. Another example: we have few windows in corridor (e.g. func_breakables), all of them receive a light in acceptable way, but the last window receive part of the light from another room and breaking whole atmosphere. We can set this window "Copy Lightning From Target" to any other window to fix this. Note that this can be also used for completely different entities, so we copy lightning from func_door to func_breakable as well. For model-based point entities: if model lightning does not satisfy you (e.g. it's too dark) you can specify a name of entity here to copy it's lightning values- it can be other model-based entity or simply info_target.
ZHLT Disable Clipping zhlt_noclip : Enable or disable collision of entity.
ZHLT Invisible zhlt_invisible : Brush entities only. Determines if entity should be visible.
ZHLT Custom Shadow (when opaque) zhlt_customshadow : Opaque brush entities only. If "ZHLT Ligth Flags" of this entity uses any of the option with 'Opaque' word, this will allow to customize shadow dropped by this entity. Value format: [0 - 1.0] [0 - 1.0] [0 - 1.0], use three values for color or only one for transparency.
ZHLT Embed Light Map (when translucent) zhlt_embedlightmap : Transparent brush entities only. Set it to 'Yes' and this transparent entity will take a light from environment making it looks much more natural. Use it when entities (e.g. glass represented by func_wall) omits lightning from surrounding. Note that this is expensive so shouldn't be used too often, but resolution of those lightmaps can be controlled by keyvalue explained below.
ZHLT Embed Light Map Resolution zhlt_embedlightmapresolution : Value of power of two that controls the resolution of embedded lightmaps of transparent textures (see keyvalue above). Higher value for better optimization. Default and recommended value is 4.
ZHLT Light Flags zhlt_lightflags : Brush entities only. Changes light casting or receiving setting.
ZHLT Light Origin Target light_origin : Set it to the name of info_target, this entity will receive lights from specified info_target position instead of it's own position. As a lot of entites can moves and lightning is not updated dynamically you can choose how your entity will be lit in game (e.g. elevators, pushables e.t.c.). Now you don't need to put the whole entity in the well-lit room at map start to make them look desirable.
First stop target target : The name of the first path_track (where the train starts). Train is teleported to this position on map start, no matter where it's placed.
Sound sounds : Sound group (move, break, start) to use on that train.
Move Sound Override noise : Custom sound file that is playing when track train is moving. Overrides default "Sound" sounds.
Brake Sound Override noise1 : Custom sound file to play when track train stops. Overrides default "Sound" sounds.
Start Sound Override noise2 : Custom sound file to play when track start it's movement. Overrides default "Sound" sounds.
Distance between the wheels wheels : Distance between the virtual track train wheels. Set to higher value for smoother track train turning, but the best value is a func_tracktrain length.
Height above track height : This is the height above the path_track that the train will ride, based on the location of the train's origin brush.
Initial speed startspeed : It's a starting speed of func_tracktrain. Set it to '0' so the track train is not moving at map start. Path_track and player controls may override this.
Speed (units per second) speed : Maximum speed of the track train. If player controllable, this is a maximum speed level of the train.
Damage on crush dmg : Damage to deal to entities that attempts to block it.
Volume (10 = loudest) volume : Volume of sounds produced by this train selected in "Sound".
Bank angle on turns bank : When func_trackrain is turning left of right, this is an bank angle (in degrees), e.g. when turning, the train will also rotate itself around track axis (by this value) in a moment of turning. To explain this, image a roller coaster cart that banks itself whenever it's at turning point.
Minimum light level _minlight : Sets the minimum light level. Set this value if entity is too dark on compiled map. Also useful for things like computer screens or holograms. Default is 0, max 1.
Sound Replacement File soundlist : Allows you to setup a sound replacement file for the func_tracktrain sounds. The path begins in 'svencoop/sound/mapname', whereas 'mapname' would be your map's name. You can go to the parent directory using '../'. A valid sound replacement file contains one or more lines with two sound-paths, which are separated by a space and wrapped into quotes. The first sound is the sound to be replaced. The second sound is the new sound. Sound-paths start in the sound directory. You cannot go to the parent directory using '../' in that case. These sounds do not need to be precached using a custom_precache point entity.
1 : No Pitch (X-rot) : Prevents train from auto-rotating around X axis. If path_tracks are on the same level, this flag is obsolete.
2 : No User Control : Func_tracktrain cannot be controlled by player.
4 : Forward Only : Train can't travel backward.
8 : Passable : Disable collision of train.
16 : No YAW (Y-rot) : Prevents train from auto-rotating around Y axis. If path_tracks are on the same level, this flag is obsolete.
2048 : Not in Deathmatch : Obsolete in Sven Co-op. Makes the entity don't appear in Multiplayer Games.
Func_tracktrain must face west (90 degrees) at editor position. At map start the track train automatically rotates to face next path_track.
Func_tracktrain supports clip brushes tied onto it.