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
Info.png
This entity is not in the FGD by default.
See below for instructions on making it available.
Class hierarchy
CFuncTrain
CBasePlatTrain
CBaseToggle
CBaseEntity
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. It was mostly replaced by func_tracktrain in GoldSrc GoldSrc, but was still used for looping auto-scrolling backgrounds. In Source, the introduction of parenting has rendered this method obsolete[How?]. However, the entity is still functional.

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?]

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

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

Non-solid : [8]

Inputs

Toggle
Toggle movement
Start
Start movement
Stop
Stop movement


FGD Code

@SolidClass base(Targetname, Origin, 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"
]