This article's documentation is for anything that uses the Source engine. Click here for more information.

func_train

From Valve Developer Community
Jump to navigation Jump to search
English (en)Translate (Translate)
Trains
Icon-NotInFGD.png
This entity is not in the FGD by default.
See below for instructions on making it available.
C++ Class hierarchy
CFuncTrain
CBasePlatTrain
CBaseToggle
CBaseEntity
C++ trains.cpp

func_train is a brush entity available in all Source Source games.

It is a leftover from Quake Quake that ping-pongs between the start and end of a series of path_corners. Unlike func_tracktrain, it does not rotate when turning.

Tip.pngTip:This entity is not affected by the turning inaccuracy issues that func_tracktrain is, making it a good alternative for fast-moving objects.
Icon-Bug.pngBug:It will always try to play sounds, regardless of whether they are actually specified. This can be set to Default.Null with a volume of 0 to play no sound.  [todo tested in ?]
Tip.pngTip:As brush entities are lit using static lightmaps, lighting on this entity may look weird when it moves from its original position. If this is an issue, consider converting the brushes to a prop, changing the brushes to clip or skip, and parenting the converted model to this entity.

Keyvalues

Note.pngNote:For Keyvalues and Inputs affecting brush rendering, see Brush entity/Rendering related keyvalues and inputs


Name (targetname) <string>
The name that other entities refer to this entity by, via Inputs/Outputs or other keyvalues (e.g. parentname or target).
Also displayed in Hammer's 2D views and Entity Report.
See also: Generic Keyvalues, Inputs and Outputs available to all entities
Pitch Yaw Roll (Y Z X) (angles) <QAngle>
Initial orientation of the train.
Spawn path_corner (target) <targetname>
The name of the first path_corner in the train's path. The train will spawn at this path_corner.
Speed (speed) <float>
Speed at which the train moves.
Movement Sound (noise1) <string>
The sound to play when the train moves.
Stop Sound (noise2) <string>
The sound to play when the train stops moving.
Sound Volume (0-10) (volume) <float>
Volume of the sounds emitted when moving and stopping.
Crush Damage (dmg) <float>
Amount of damage to deal to entities blocking the train.

Flags

Wait to retrigger : [1]
Set and unset by game code; should not be set manually.
Non-solid : [8]

Inputs

Toggle
Toggle movement
Start
Start movement
Stop
Stop movement


FGD Code

@SolidClass base(Targetname, Origin, Angles, RenderFields) line(255 255 0, targetname, target) = func_train: "An old entity leftover from Quake. It follows a series of path_corner entities."
[
	spawnflags(flags) =
	[
		8 : "Non-solid" : 0
	]
	target(target_destination) : "Spawn path_corner" : : "The name of the first path_corner in the train's path. The train will spawn at this path_corner."
	speed(float) : "Speed" : "50" : "Speed at which the train moves."
	noise1(sound) : "Movement Sound" : "Default.Null" : "The sound to play when the train moves. This must be specified, but can be set to 'Default.Null' to play no sound."
	noise2(sound) : "Stop Sound" : "Default.Null" : "The sound to play when the train stops moving. This must be specified, but can be set to 'Default.Null' to play no sound."
	volume(float) : "Sound volume (0-10)" : "10" : "Volume of the sounds emitted when moving and stopping."
	dmg(float) : "Crush Damage" : "0" : "Amount of damage to deal to entities blocking the train."

	// Inputs
	input Toggle(void) : "Toggle movement"
	input Start(void) : "Start movement"
	input Stop(void) : "Stop movement"
]