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

Prop vehicle driveable: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
mNo edit summary
(Bms includes both SP and MP.)
 
(17 intermediate revisions by 10 users not shown)
Line 1: Line 1:
{{DISPLAYTITLE:prop_vehicle_driveable}}
[[File:jeep.PNG|thumb|right|400px|prop_vehicle_driveable Jeep with passengers in CS:S]]
[[File:jeep.PNG|thumb|right|400px|'''prop_vehicle_driveable Jeep with passengers in CS:S''']]
{{ent not in fgd|except={{hl2}}}}
{{this is a|point entity|name=prop_vehicle_driveable}}


==Entity Description==
{{bug|In {{tf2|2}}, this entity does not function at all. This can be fixed by using a [[VScript]] supplement script: https://github.com/ficool2/vscript_vehicle, or the plugin listed below.}}
 
{{note|This entity may not function properly in multiplayer based games. Community-made server plugins are available to make vehicles function properly, listed below.
{{csgo}} : https://github.com/Heyter/SM-MyPlugins/tree/master/fixed_vehicle_csgo<br>
{{tf2}}{{css}}{{bms}} : https://github.com/Mikusch/source-vehicles<br>
}}
<br>
==Entity description==


Generic vehicle. (Player driveable model.)
Generic vehicle. (Player driveable model.)


==Keyvalues==
==Keyvalues==
* {{KV BaseDriveableVehicle}}
{{KV BaseDriveableVehicle}}


==Inputs==
==Inputs==
* {{I BaseDriveableVehicle}}
{{I BaseDriveableVehicle}}


==Outputs==
==Outputs==
* {{O BaseDriveableVehicle}}
{{O BaseDriveableVehicle}}
 
== FGD Code ==
Simply open any FGD file ({{code|cstrike.fgd}} for example), and paste this:
{{Codeblock|<nowiki>@BaseClass base(Targetname, Origin, Global, prop_static_base) = BaseVehicle
[
vehiclescript(string) : "Vehicle Script File" : "scripts/vehicles/jeep_test.txt"
actionScale(float) : "Scale of action input / framerate" : "1"
 
// Inputs
input Action(float) : "Set the speed of the action animation"
 
input TurnOn(void) : "Turn on: Start engine & enable throttle"
input TurnOff(void) : "Turn off: Stop engine, disable throttle, engage brakes."
 
input Lock(void) : "Prevent the player from entering or exiting the vehicle."
input Unlock(void) : "Re-allow the player to enter or exit the vehicle."
]
 
@BaseClass base(BaseVehicle) = BaseDriveableVehicle
[
VehicleLocked(choices) : "Start locked" : 0 =
[
0 : "No"
1 : "Yes"
]
 
// Outputs
output PlayerOn(void) : "Player entered the vehicle"
output PlayerOff(void) : "Player exited the vehicle"
output PressedAttack(void) : "Player Pressed attack key"
output PressedAttack2(void) : "Player Pressed attack2 key"
 
output AttackAxis(string) : "State of attack button [0,1]"
output Attack2Axis(string) : "State of attack2 button [0,1]"
// Inputs
input HandBrakeOn(void) : "Turns the handbrake on"
input HandBrakeOff(void): "Releases the handbrake"
]
 
@PointClass base(BaseVehicle) studioprop() = prop_vehicle :
"Studiomodel vehicle that can be driven via inputs."
[
// Inputs
input Steer(float) : "Steer the vehicle +/-1"
input Throttle(float) : "Throttle +/-1"
 
spawnflags(flags) =
[
1 : "Always Think (Run physics every frame)" : 0
]
]
 
@PointClass base(BaseDriveableVehicle) studioprop() = prop_vehicle_driveable :
"Generic driveable studiomodel vehicle."
[
]
</nowiki>}}
{{Note|Alternatively you can also add {{code|[[halflife2.fgd]]}} into Game Data Files.}}


==See Also==
==See also==
* [[prop_vehicle_airboat]] - The HL2 airboat.
* [[prop_vehicle_airboat]] - The HL2 airboat.
* [[prop_vehicle_jeep]] - The HL2 buggy.
* [[prop_vehicle_jeep]] - The HL2 buggy.
Line 22: Line 90:


[[Category:Entities]]
[[Category:Entities]]
[[Category:Prop entities|vehicle driveable]]

Latest revision as of 00:24, 14 October 2025

prop_vehicle_driveable Jeep with passengers in CS:S
Icon-NotInFGD.png
This entity is not in the Counter-Strike: SourceDay of Defeat: SourceTeam Fortress 2Left 4 DeadLeft 4 Dead 2 FGD by default, except in Half-Life 2.
See below for instructions on making it available.

prop_vehicle_driveable is a point entity available in all Source Source games.

Icon-Bug.pngBug:In Team Fortress 2 Team Fortress 2, this entity does not function at all. This can be fixed by using a VScript supplement script: https://github.com/ficool2/vscript_vehicle, or the plugin listed below.  [todo tested in ?]
Note.pngNote:This entity may not function properly in multiplayer based games. Community-made server plugins are available to make vehicles function properly, listed below.

Counter-Strike: Global Offensive : https://github.com/Heyter/SM-MyPlugins/tree/master/fixed_vehicle_csgo
Team Fortress 2Counter-Strike: SourceBlack Mesa : https://github.com/Mikusch/source-vehicles


Entity description

Generic vehicle. (Player driveable model.)

Keyvalues

BaseDriveableVehicle:

Starts locked (VehicleLocked) <boolean>
Players cannot enter vehicle until it is unlocked.

BaseVehicle:

Vehicle Script File (vehiclescript) <string>
The vehicle script files contained in scripts\vehicles\ define the behaviour and handling of a vehicle. It is important to match the right script to the right entity/model:
Scale of action input / framerate (actionScale) <float>
Todo: How fast the vehicle turns/accelerates?


Inputs

BaseDriveableVehicle:
HandBrakeOn
HandBrakeOff
Turns the handbrake on/off, preventing the vehicle from driving but not disabling motion from external forces.
BaseVehicle:
Action <floatRedirectInput/float>
Set the speed of the action animation.
Todo: What does this mean?
TurnOn
Start engine and enable throttle.
TurnOff
Stop engine, disable throttle, engage brakes.
Lock
Unlock
Prevent/allow the player from entering or exiting the vehicle.

Outputs

BaseDriveableVehicle:

PlayerOn <void>
PlayerOff <void>
!activator = the player
!caller = this entity
Player entered/exited the vehicle.
PressedAttack <void>
PressedAttack2 <void>
!activator = !caller = this entity
Player pressed the +attack/+attack2 key.
AttackAxis <floatRedirectOutput/float>
Attack2Axis <floatRedirectOutput/float>
!activator = the player when exitting the vehicle other-wise it's this entity
!caller = this entity
State of the attack/attack2 buttons (can only be 0 or 1). Also called when the player exits the vehicle.


FGD Code

Simply open any FGD file (cstrike.fgd for example), and paste this:

@BaseClass base(Targetname, Origin, Global, prop_static_base) = BaseVehicle [ vehiclescript(string) : "Vehicle Script File" : "scripts/vehicles/jeep_test.txt" actionScale(float) : "Scale of action input / framerate" : "1" // Inputs input Action(float) : "Set the speed of the action animation" input TurnOn(void) : "Turn on: Start engine & enable throttle" input TurnOff(void) : "Turn off: Stop engine, disable throttle, engage brakes." input Lock(void) : "Prevent the player from entering or exiting the vehicle." input Unlock(void) : "Re-allow the player to enter or exit the vehicle." ] @BaseClass base(BaseVehicle) = BaseDriveableVehicle [ VehicleLocked(choices) : "Start locked" : 0 = [ 0 : "No" 1 : "Yes" ] // Outputs output PlayerOn(void) : "Player entered the vehicle" output PlayerOff(void) : "Player exited the vehicle" output PressedAttack(void) : "Player Pressed attack key" output PressedAttack2(void) : "Player Pressed attack2 key" output AttackAxis(string) : "State of attack button [0,1]" output Attack2Axis(string) : "State of attack2 button [0,1]" // Inputs input HandBrakeOn(void) : "Turns the handbrake on" input HandBrakeOff(void): "Releases the handbrake" ] @PointClass base(BaseVehicle) studioprop() = prop_vehicle : "Studiomodel vehicle that can be driven via inputs." [ // Inputs input Steer(float) : "Steer the vehicle +/-1" input Throttle(float) : "Throttle +/-1" spawnflags(flags) = [ 1 : "Always Think (Run physics every frame)" : 0 ] ] @PointClass base(BaseDriveableVehicle) studioprop() = prop_vehicle_driveable : "Generic driveable studiomodel vehicle." [ ]
Note.pngNote:Alternatively you can also add halflife2.fgd into Game Data Files.

See also