Func vehicle (GoldSrc): Difference between revisions
Jump to navigation
Jump to search

Note:The vehicle will not survive map transitions if the func_vehicle and func_vehiclecontrols are made using bmodels which are part of the map's BSP. If this is an issue, save them as separate BSPs and use zhlt_usemodel to load them via cyclers.
m (Func_vehicle now works in half life) |
mNo edit summary |
||
(23 intermediate revisions by 10 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{LanguageBar}} | ||
{{ | {{tabsBar|main=Func_vehicle}} | ||
{{ | {{CD|CFuncVehicle|goldsrc=1|base=CBaseEntity}}{{toc-right}} | ||
{{this is a|brush entity|name=func_vehicle|game=Counter-Strike|game1=Sven Co-op|game2=Half-Life}} | |||
An entity that behaves like {{ent|func_tracktrain}} coupled with {{ent|func_traincontrols}}; however, it moves freely along the world and changes angles according to collision much like a real vehicle, albeit more primitive. This entity uses a unique brush entity to control it, called {{ent|func_vehiclecontrols}}. | |||
An entity that behaves like {{ent|func_tracktrain}} coupled with {{ent|func_traincontrols}}; however, it moves freely along the world and changes angles according to collision much like a real vehicle, albeit more primitive. | |||
It was added to {{hl|4}} after the 25th Anniversary Update. | |||
{{src}} An accurate [[VScript]] [https://github.com/ficool2/vscript_func_vehicle implementation is also available] for {{tf2|2}} (using the 25th anniversary code as reference). | |||
{{note|The vehicle will not survive map transitions if the func_vehicle and func_vehiclecontrols are made using [[bmodel]]s which are part of the map's BSP. If this is an issue, save them as separate [[BSP30|BSPs]] and use {{code|zhlt_usemodel}} to load them via {{ent|cycler|engine=goldsrc}}s. }} | |||
== Keyvalues == | == Keyvalues == | ||
{{KV|First stop target|intn=target|target_destination}} | {{KV|First stop target|intn=target|target_destination|Use this if you building the brush geometry for the vehicle in a different location than where it will spawn (for lighting purposes). The vehicle and controls should have origin brushes.}} | ||
{{KV|Sound|intn=sounds|choices}}{{ExpandBox|*<blank>: None | {{KV|Sound|intn=sounds|choices}}{{ExpandBox| | ||
*<blank>: None | |||
*1: Vehicle 1 | *1: Vehicle 1 | ||
*2: Vehicle 2 | *2: Vehicle 2 | ||
Line 25: | Line 28: | ||
{{KV|Speed (units per second)|intn=speed|integer|{{warning|"Things go wrong" if speed is 2000 or greater, according to the FGD.}}}} | {{KV|Speed (units per second)|intn=speed|integer|{{warning|"Things go wrong" if speed is 2000 or greater, according to the FGD.}}}} | ||
{{KV|Damage on crush|intn=dmg|integer}} | {{KV|Damage on crush|intn=dmg|integer}} | ||
{{KV|Volume (10{{=}}loudest)|intn=volume|int 0-10|Default is 10.}} | {{KV|1=Volume (10{{=}}loudest)|intn=volume|2=int 0-10|3=Default is 10.}} | ||
{{KV|Bank angle on turns|intn=bank|string}} | {{KV|Bank angle on turns|intn=bank|string}} | ||
{{Hl1 kv targetname}}{{KV Angles}} | {{Hl1 kv targetname}}{{KV Angles}} | ||
{{hl1 kv renderfields}} | {{hl1 kv renderfields}} | ||
{{hl1 kv zhlt}} | {{hl1 kv zhlt}} | ||
== Flags == | == Flags == | ||
Line 37: | Line 38: | ||
{{fl|2|No User Control}} | {{fl|2|No User Control}} | ||
{{fl|8|Passable}} | {{fl|8|Passable}} | ||
== FGD entry == | |||
{{expand|title=FGD entry|<syntaxhighlight lang=js> | |||
@SolidClass base(Targetname, RenderFields, Angles) = func_vehicle : "Drivable Vehicles. A right, not a privilege." | |||
[ | |||
spawnflags(flags) = | |||
[ | |||
1 : "No Pitch (X-rot)" : 0 | |||
2 : "No User Control" : 0 | |||
8 : "Passable" : 0 | |||
] | |||
target(target_destination) : "First stop target" | |||
sounds(choices) : "Sound" : 1 = | |||
[ | |||
0: "None" | |||
1: "Car 1" | |||
2: "Car 2" | |||
3: "Truck 1" | |||
4: "Truck 2" | |||
5: "Boat 1" | |||
6: "Boat 2" | |||
] | |||
length(integer) : "Length of the vehicle" : 256 | |||
width(integer) : "Width of the vehicle" : 128 | |||
height(integer) : "Height above track" : 16 | |||
startspeed(integer) : "Initial speed" : 0 | |||
speed(integer) : "Speed (units per second)" : 64 | |||
acceleration(integer) : "Acceleration (1-10)" : 5 | |||
dmg(integer) : "Damage on crush" : 0 | |||
volume(integer) : "Volume (10 = loudest)" : 10 | |||
bank(string) : "Bank angle on turns" : "0" | |||
_minlight(string) : "Minimum light level" | |||
] | |||
@SolidClass = func_vehiclecontrols : "Vehicle Controls" | |||
[ | |||
target(target_destination) : "Vehicle Name" | |||
] | |||
</syntaxhighlight>}} |
Latest revision as of 15:42, 27 May 2025


![]() |
---|
CFuncVehicle |
![]() trains.h |
func_vehicle
is a brush entity available in Counter-Strike,
Sven Co-op, and
Half-Life.
An entity that behaves like func_tracktrain coupled with func_traincontrols; however, it moves freely along the world and changes angles according to collision much like a real vehicle, albeit more primitive. This entity uses a unique brush entity to control it, called func_vehiclecontrols.
It was added to Half-Life after the 25th Anniversary Update.
An accurate VScript implementation is also available for
Team Fortress 2 (using the 25th anniversary code as reference).

Keyvalues
- First stop target (target) <targetname>
- Use this if you building the brush geometry for the vehicle in a different location than where it will spawn (for lighting purposes). The vehicle and controls should have origin brushes.
- Sound (sounds) <choices>
Choices:
- <blank>: None
- 1: Vehicle 1
- 2: Vehicle 2
- 3: Vehicle 3
- 4: Vehicle 4
- 5: Vehicle 6
- 6: Vehicle 7
- Length of the vehicle (length) <integer>
- Default is 256.
- Width of the vehicle (width) <integer>
- Default is 128.
- Height above track (height) <integer>
- Default is 4.
- Initial speed (startspeed) <integer>
- Speed (units per second) (speed) <integer>
Warning:"Things go wrong" if speed is 2000 or greater, according to the FGD.
- Damage on crush (dmg) <integer>
- Volume (10=loudest) (volume) <integer 0–10>
- Default is 10.
- Bank angle on turns (bank) <string>
- Name (targetname) <string>
- The targetname that other entities refer to this entity by.
- Pitch Yaw Roll (Y Z X) (angles) <QAngle>
- This entity's orientation in the world. Pitch is rotation around the Y axis, yaw is the rotation around the Z axis, roll is the rotation around the X axis.
- Render FX (renderfx) <choices>
- Render FX mode to use, for special effects.
Value Description 0 Normal 1 Slow Pulse 2 Fast Pulse 3 Slow Wide Pulse 4 Fast Wide Pulse 5 Slow Fade Away 6 Fast Fade Away 7 Slow Become Solid 8 Fast Become Solid 9 Slow Strobe 10 Fast Strobe 11 Faster Strobe 12 Slow Flicker 13 Fast Flicker 14 Constant Glow 15 Distort 16 Hologram (Distort + fade)
- Render Mode (rendermode) <choices>
- Render Mode to use.
Value Description 0 Normal 1 Color 2 Texture 3 Glow 4 Solid 5 Additive
- Render Amount (0-255) (renderamt) <integer>
- Controls transparency when using another render mode then normal. 0 is completely invisible, and 255 is opaque. If render mode is solid, then all values except 0 are opaque.
- Render Color (R G B) (rendercolor) <color255>
- Color to use by the specified render mode.
Also used on brush entities to control the speed of scrolling textures; see func_conveyor for more information.
- Minimum light level (_minlight) <normal>
|
![]()
|
Flags
- No Pitch (X-rot) : [1]
- No User Control : [2]
- Passable : [8]
FGD entry
@SolidClass base(Targetname, RenderFields, Angles) = func_vehicle : "Drivable Vehicles. A right, not a privilege."
[
spawnflags(flags) =
[
1 : "No Pitch (X-rot)" : 0
2 : "No User Control" : 0
8 : "Passable" : 0
]
target(target_destination) : "First stop target"
sounds(choices) : "Sound" : 1 =
[
0: "None"
1: "Car 1"
2: "Car 2"
3: "Truck 1"
4: "Truck 2"
5: "Boat 1"
6: "Boat 2"
]
length(integer) : "Length of the vehicle" : 256
width(integer) : "Width of the vehicle" : 128
height(integer) : "Height above track" : 16
startspeed(integer) : "Initial speed" : 0
speed(integer) : "Speed (units per second)" : 64
acceleration(integer) : "Acceleration (1-10)" : 5
dmg(integer) : "Damage on crush" : 0
volume(integer) : "Volume (10 = loudest)" : 10
bank(string) : "Bank angle on turns" : "0"
_minlight(string) : "Minimum light level"
]
@SolidClass = func_vehiclecontrols : "Vehicle Controls"
[
target(target_destination) : "Vehicle Name"
]
|