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

prop_vehicle_driveable

From Valve Developer Community
Jump to: navigation, search
prop_vehicle_driveable Jeep with passengers in CS:S
Info.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. 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 <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
PlayerOff
Player entered/exited the vehicle. (!activator is the player.)
PressedAttack
PressedAttack2
Player pressed the +attack/+attack2 key.
AttackAxis <boolean>
Attack2Axis <boolean>
State of the attack/attack2 buttons. 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