func_arena Monday, September 21, 2026
Building, modding and fragging like it's 1998

142778 visitors
YOUR #1 SOURCE FOR RETRO FPS DEVELOPMENT Y2K READY
  *** func_arena goes live, let the carnage begin!   ***   ET: Legacy 2.86.0 is out!   ***   Engine of the Week: qrustyquake by cyanbun96   ***   Server admins: read our migration guide before Friday   ***   Ironwail 0.8.2 is out!   ***  
NAVIGATION
Wiki » Reference » func_ entities » func_train
ARTICLE

func_train

This is an entity, present on Quake, Quake II, Quake III Arena, RTCW Single Player, RTCW Multiplayer, Enemy Territory and Quake 4. Below you can find its spawnflags, keys and editor settings for each game that defines it.

Quake

Trains are moving platforms that players can ride. The targets origin specifies the min point of the train at each corner. The train spawns at the first target it is pointing at. If the train is the target of a button or trigger, it will not begin moving until activated.

Keys

Key Description
speed movement speed (default 100)
dmg damage to inflict when blocked (default 2)
sounds 1) ratchet metal

Editor

Property Value
Type brush entity
Color 0 .5 .8

Quake II

Trains are moving platforms that players can ride. The targets origin specifies the min point of the train at each corner. The train spawns at the first target it is pointing at. If the train is the target of a button or trigger, it will not begin moving until activated. speed default 100 dmg default 2 noise looping sound to play when the train is in motion

Spawnflags

Flag Bit Description
START_ON 1
TOGGLE 2
BLOCK_STOPS 4

Editor

Property Value
Type brush entity
Color 0 .5 .8
Spawn function SP_func_train

Quake III Arena

A train is a mover that moves between path_corner target points. Trains MUST HAVE AN ORIGIN BRUSH. The train spawns at the first target it is pointing at.

Spawnflags

Flag Bit Description
START_ON 1
TOGGLE 2
BLOCK_STOPS 4

Keys

Key Description
model2 .md3 model to also draw
speed default 100
dmg default 2
noise looping sound to play when the train is in motion
target next path corner
color constantLight color
light constantLight radius

Editor

Property Value
Type brush entity
Color 0 .5 .8
Spawn function SP_func_train

RTCW Single Player

A train is a mover that moves between path_corner target points. Trains MUST HAVE AN ORIGIN BRUSH. The train spawns at the first target it is pointing at.

Spawnflags

Flag Bit Description
START_ON 1
TOGGLE 2
BLOCK_STOPS 4

Keys

Key Description
model2 .md3 model to also draw
speed default 100
dmg default 2
noise looping sound to play when the train is in motion
target next path corner
color constantLight color
light constantLight radius

Editor

Property Value
Type brush entity
Color 0 .5 .8
Spawn function SP_func_train

RTCW Multiplayer

A train is a mover that moves between path_corner target points. Trains MUST HAVE AN ORIGIN BRUSH. The train spawns at the first target it is pointing at.

Spawnflags

Flag Bit Description
START_ON 1
TOGGLE 2
BLOCK_STOPS 4

Keys

Key Description
model2 .md3 model to also draw
speed default 100
dmg default 2
noise looping sound to play when the train is in motion
target next path corner
color constantLight color
light constantLight radius

Editor

Property Value
Type brush entity
Color 0 .5 .8
Spawn function SP_func_train

Enemy Territory

A train is a mover that moves between path_corner target points. Trains MUST HAVE AN ORIGIN BRUSH. The train spawns at the first target it is pointing at.

Spawnflags

Flag Bit Description
START_ON 1
TOGGLE 2
BLOCK_STOPS 4

Keys

Key Description
model2 .md3 model to also draw
speed default 100
dmg default 2
noise looping sound to play when the train is in motion
target next path corner
color constantLight color
light constantLight radius

Editor

Property Value
Type brush entity
Color 0 .5 .8
Spawn function SP_func_train

Quake 4

Trains are movers with a scriptObject that lets you move them along a linked path of target_nulls or func_splinemovers.

Keys

Key Type Default Description
loopDelay float 0 If set, the train will restart it's path after this amount of time once it reaches the end.
useSplineAngles float 0 If set, the train will align itself to the spline's angles as it moves along the route.
snd_accel snd sound to play when acceleration starts. Played on SND_CHANNEL_BODY & SND_CHANNEL_BODY2.
snd_move snd sound to play when movement starts. Played on SND_CHANNEL_BODY & SND_CHANNEL_BODY2.
snd_decel snd sound to play when deceleration starts. Played on SND_CHANNEL_BODY & SND_CHANNEL_BODY2.
snd_stopped snd sound to play when the mover has stopped. Played on SND_CHANNEL_BODY & SOUND_CHANNEL_BODY2.
snd_idle snd sound to play all the time on this object.
accel_time var how long it takes the mover to accelerate to full speed.
decel_time var how long it takes the mover to deccelerate to a stop.
move_time var how long it takes the mover to complete a move. cannot be used with 'move_speed'.
move_speed var how many units the mover travels per second. cannot be used with 'move_time'.
solidForTeam var whether mover is solid to objects bound to it, or objects it is bound to.
damage var how much damage to cause entities that block mover.
solid var whether the mover is solid to other entities.
nopush var set to 1 to disable pushing objects that block the mover.
guiTarget var GUI's associated with mover.
health var when non-zero, how much damage to take before triggering targets.
attenuate var Allow the sound on this object to be attenuated based on speed.
attenuationScale var Scale for attenuation. Set this to be roughly the average speed of the mover. Tweak as necessary.
maxAttenuation var Maximum attenuation allowed.

Editor

Property Value
Type brush entity
Spawn class idMover -> idEntity -> idClass
Inherits func_mover
Color 0 .5 .8

Script events

Event Declared by
stopMoving idMover
stopRotating idMover
speed idMover
time idMover
accelTime idMover
decelTime idMover
moveTo idMover
moveToPos idMover
move idMover
accelTo idMover
decelTo idMover
rotateDownTo idMover
rotateUpTo idMover
rotateTo idMover
rotate idMover
rotateOnce idMover
bob idMover
sway idMover
openPortal idMover
closePortal idMover
accelSound idMover
decelSound idMover
stoppedSound idMover
moveSound idMover
enableSplineAngles idMover
disableSplineAngles idMover
removeInitialSplineAngles idMover
startSpline idMover
stopSpline idMover
activate idMover
isMoving idMover
isRotating idMover
getSplineEntity idMover
moveAlongVector idMover
getName idEntity
setName idEntity
activateTargets idEntity
numTargets idEntity
getTarget idEntity
randomTarget idEntity
bindToJoint idEntity
removeBinds idEntity
bind idEntity
bindPosition idEntity
unbind idEntity
setOwner idEntity
setModel idEntity
setSkin idEntity
getShaderParm idEntity
setShaderParm idEntity
setShaderParms idEntity
setColor idEntity
getColor idEntity
isHidden idEntity
hide idEntity
show idEntity
cacheSoundShader idEntity
startSoundShader idEntity
startSound idEntity
stopSound idEntity
fadeSound idEntity
getWorldOrigin idEntity
setWorldOrigin idEntity
getOrigin idEntity
setOrigin idEntity
getAngles idEntity
setAngles idEntity
getLinearVelocity idEntity
setLinearVelocity idEntity
getAngularVelocity idEntity
setAngularVelocity idEntity
getSize idEntity
setSize idEntity
getMins idEntity
getMaxs idEntity
touches idEntity
setGuiParm idEntity
setGuiFloat idEntity
getNextKey idEntity
setKey idEntity
getKey idEntity
getIntKey idEntity
getFloatKey idEntity
getVectorKey idEntity
getEntityKey idEntity
restorePosition idEntity
distanceTo idEntity
distanceToPoint idEntity
startFx idEntity
waitFrame idEntity
wait idEntity
hasFunction idEntity
callFunction idEntity
setNeverDormant idEntity
clearSkin idEntity
setContents idEntity
getLastBlocker idEntity
playEffect idEntity
stopEffect idEntity
stopAllEffects idEntity
getHealth idEntity
hideSurface idEntity
showSurface idEntity
guiEvent idEntity
playbackCallback idEntity
getBindMaster idEntity
applyImpulse idEntity
removeNullTargets idEntity
isA idEntity
isSameTypeAs idEntity
matchPrefix idEntity
clearTargetList idEntity
appendTarget idEntity
removeTarget idEntity
setHealth idEntity
remove idClass

Last changed Sep 21, 2026
<< back to the wiki  ·  History
RELATED GAMES
Quake III Arena
Quake
Quake II
Return to Castle Wolfenstein
Wolfenstein: Enemy Territory
Quake 4
HOT FILES
No files yet.
all files >>
LATEST BLOGS
No blog posts yet.
all blogs >>
MEDIA FROM THE BLOGS
No blog post has a picture yet.
all blogs >>
LATEST DEVLOGS
No devlog entries yet.
all blogs >>
CHAT
IRC:
#func_arena @ irc.libera.chat

Discord:
Map-Center

41 fraggers right now. Be nice to others.
Powered by Debian Linux Now! Get Mozilla Now! Stop Microsoft! Dopefish Now! 1-Bit Icons by Nikoichu
home  ·  contact  ·  privacy policy  ·  forums  ·  submit content  ·  rss
func_arena is a member of the func_network. We are not responsible for user content, your ping, or your kill-to-death ratio.
Powered by fragnuke 0.7.2. Best viewed at 1024x768 in Mozilla. No frames, no Flash, no bs.