EntitiesVehicles
click for full size image in pop-up window vehicles_atv
 
Description
 
ATV. Drivable vehicle. Simply add 2 vehicles_atv_fronttire wheels in the front and 2 vehicles_atv_backtire wheels in the back. Once "assembled" properly, the game automatically makes them fully functional: all 4 wheels turn and the front wheels steer while the vehicle is driven by the player.
 
Keys
 
angle: initial orientation of model in game (default: 0).
model: name of entity's model definition file (atv.def). Do not change.
alpha: translucency of model in game. Values are from 0-1 (default: 1).
target: the entity this points to will be triggered when object is destroyed.
killtarget: the entity this points to will be removed when object is destroyed.
targetname:
name referred to when controlled by a script.

Spawnflags
 
1 NOT SOLID

Notes

The easiest way to make sure your ATV's will be positionned correctly and look good is to first insert the vehicle itself in the map and move it to make sure the bottom of the bounding box is flush with the floor. Then insert and place your front and back wheels one by one and make sure their bounding boxes are also flush with the floor. Rely on your 3D view in SinEd to align the center of the wheels with the axles of the ATV while moving them (set the grid size to 2 x 2 units to fine-tune their position).

The "angles" and "scale" keys are not meant to be used on drivable vehicles. Setting an "angles" key/value pair will orient the vehicle model but will screw up the player's view once he uses it. Setting "scale" does scale the model in the game but the player's seat position ends up being all wrong (it just looks silly). The vehicle's wheels however can be scaled without any problem.


click for full size image in pop-up window vehicles_atv_backtire
 
Description
 
ATV Back Tire. Use these for the back wheels of vehicles_atv's. They are also ideal for the front wheels of vehicles_forklift's.
 
Keys
 
angle: initial orientation of model in game (default: 0).
angles: pitch, yaw, roll method of 3D orientation for model (default: 0 0 0).
model: name of entity's model definition file (atvtire_back.def). Do not change.
scale: controls size of model in the game (ex: 1.0).
alpha: translucency of model in game. Values are from 0-1 (default: 1).
targetname:
name referred to when controlled by a script.

Spawnflags
 
None

Notes

These wheels are essentially non-steering wheels. Unlike the vehicles_atv_fronttire's, they don't steer while the vehicle itself is being steered by the player who's driving it. This is why they should be used as the back wheels of ATV's. Inversely, they should be used as the front wheels for vehicles_forklift's since forklifts actually have their steering wheels in the back.

It should be noted however, that this whole business of front and back wheels don't affect the drivability of the vehicles by the player. It just makes them look more realistic to use the right wheels in the right place.

By themselves, these wheels are not solid and not destructible by default. When they are part of a drivable vehicle, they will automatically be removed when the vehicle itself is destroyed. This was done on purpose so you wouldn't end up with players driving around on ATV's and forklifts without wheels which would look kinda silly.


click for full size image in pop-up window vehicles_atv_fronttire
 
Description
 
ATV Front Tire. Use these for the front wheels of vehicles_atv's. They are also ideal for the back wheels of vehicles_forklift's.
 
Keys
 
angle: initial orientation of model in game (default: 0).
angles: pitch, yaw, roll method of 3D orientation for model (default: 0 0 0).
model: name of entity's model definition file (atvtire_front.def). Do not change.
scale: controls size of model in the game (ex: 1.0).
alpha: translucency of model in game. Values are from 0-1 (default: 1).
targetname:
name referred to when controlled by a script.

Spawnflags
 
None

Notes

These wheels are essentially steering wheels. Unlike the vehicles_atv_backtire's, they steer while the vehicle itself is being steered by the player who's driving it. This is why they should be used as the front wheels of ATV's. Inversely, they should be used as the back wheels for vehicles_forklift's since forklifts actually have their steering wheels in the back.

It should be noted however, that this whole business of front and back wheels don't affect the drivability of the vehicles by the player. It just makes them look more realistic to use the right wheels in the right place.

By themselves, these wheels are not solid and not destructible by default. When they are part of a drivable vehicle, they will automatically be removed when the vehicle itself is destroyed. This was done on purpose so you wouldn't end up with players driving around on ATV's and forklifts without wheels which would look kinda silly.


click for full size image in pop-up window vehicles_bulldozer
 
Description
 
Bulldozer. Drivable vehicle.
 
Keys
 
angle: initial orientation of model in game (default: 0).
model: name of entity's model definition file (bulldozer.def). Do not change.
alpha: translucency of model in game. Values are from 0-1 (default: 1).
target: the entity this points to will be triggered when object is destroyed.
killtarget: the entity this points to will be removed when object is destroyed.
targetname:
name referred to when controlled by a script.

Spawnflags
 
1 NOT SOLID

Notes

The easiest way to make sure your Bulldozers will be positionned correctly and look good is to first insert the vehicle itself in the map and move it to make sure the bottom of the bounding box is flush with the floor.

The "angles" and "scale" keys are not meant to be used on drivable vehicles. Setting an "angles" key/value pair will orient the vehicle model but will screw up the player's view once he uses it. Setting "scale" does scale the model in the game but the player's seat position ends up being all wrong (it just looks silly).

The following script commands can be used to enhance the maneuverability of bulldozers and modify their in-game physics. Assuming the targetname of the bulldozer is "bulldozer" in the following examples:

  • To make the bulldozer steer faster (default is 40 for all vehicles):

  • $bulldozer turnrate <rate>
  • To make the bulldozer go faster (default is 300 for bulldozers):

  • $bulldozer vehiclespeed <speed>
  • To make the bulldozer be able to steer even while it's not moving forward or backward:

  • $bulldozer steerinplace
  • To make the bulldozer be able to jump like ATV's:

  • $bulldozer canjump

    Please note that these commands apply to all drivable vehicles and that the last 2 are irreversible.


    click for full size image in pop-up window vehicles_car
     
    Description
     
    Street Cars - Five skins. This is not a vehicle, only a plain world object.
     
    Keys
     
    angle: initial orientation of model in game (default: 0).
    angles: pitch, yaw, roll method of 3D orientation for model (default: 0 0 0).
    model: name of entity's model definition file (car.def). Do not change.
    scale: controls size of model in the game (ex: 1.0).
    alpha: translucency of model in game. Values are from 0-1 (default: 1).
    target: the entity this points to will be triggered when object is destroyed.
    killtarget: the entity this points to will be removed when object is destroyed.
    targetname:
    name referred to when controlled by a script.
    skin: name of skin used for model. Choices are 'car_base' shown above and the following:
    click for full size image in pop-up window
    car_base2
    click for full size image in pop-up window
    car_base3
    click for full size image in pop-up window
    car_base4
    click for full size image in pop-up window
    car_base5

    Spawnflags
     
    1 NOT SOLID
    2 NOT DAMAGEABLE

    Notes

    This entity is only useful if all you need in your map is a stationary vehicle for looks since plain world models don't respond to "move" and "rotate" type script commands. If you want to make a vehicle that moves around, use a func_scriptmodel entity instead and set the "model" key to the same model name that this entity uses (car.def). From there, you can bind, move, rotate or make your model follow splinepaths as needed.


    click for full size image in pop-up window vehicles_crane
     
    Description
     
    Crane. This is not a vehicle, only a plain world object.
     
    Keys
     
    angle: initial orientation of model in game (default: 0).
    angles: pitch, yaw, roll method of 3D orientation for model (default: 0 0 0).
    model: name of entity's model definition file (crane.def). Do not change.
    scale: controls size of model in the game (ex: 1.0).
    alpha: translucency of model in game. Values are from 0-1 (default: 1).
    target: the entity this points to will be triggered when object is destroyed.
    killtarget: the entity this points to will be removed when object is destroyed.
    targetname:
    name referred to when controlled by a script.

    Spawnflags
     
    1 NOT SOLID
    2 NOT DAMAGEABLE

    Notes

    This entity is only useful if all you need in your map is a stationary vehicle for looks since plain world models don't respond to "move" and "rotate" type script commands. If you want to make a vehicle that moves around, use a func_scriptmodel entity instead and set the "model" key to the same model name that this entity uses (crane.def). From there, you can bind, move, rotate or make your model follow splinepaths as needed.


    click for full size image in pop-up window vehicles_forklift
     
    Description
     
    Forklift. Drivable vehicle. Simply add 2 vehicles_atv_fronttire wheels in the back and 2 vehicles_atv_backtire wheels in the front. Once "assembled" properly, the game automatically makes them fully functional: all 4 wheels turn and the back wheels steer while the vehicle is driven by the player.
     
    Keys
     
    angle: initial orientation of model in game (default: 0).
    model: name of entity's model definition file (forklift.def). Do not change.
    alpha: translucency of model in game. Values are from 0-1 (default: 1).
    target: the entity this points to will be triggered when object is destroyed.
    killtarget: the entity this points to will be removed when object is destroyed.
    targetname:
    name referred to when controlled by a script.

    Spawnflags
     
    1 NOT SOLID

    Notes

    The easiest way to make sure your Forklifts will be positionned correctly and look good is to first insert the vehicle itself in the map and move it to make sure the bottom of the bounding box is flush with the floor. Then insert and place your front and back wheels one by one and make sure their bounding boxes are also flush with the floor. Rely on your 3D view in SinEd to align the wheels with the forklift's sides while moving them (set the grid size to 2 x 2 units to fine-tune their position).

    The "angles" and "scale" keys are not meant to be used on drivable vehicles. Setting an "angles" key/value pair will orient the vehicle model but will screw up the player's view once he uses it. Setting "scale" does scale the model in the game but the player's seat position ends up being all wrong (it just looks silly). The vehicle's wheels however can be scaled without any problem.


    click for full size image in pop-up window vehicles_HCBoat
     
    Description
     
    Hardcorps Boat. Undrivable vehicle. By default, this vehicle can be entered and exited but not driven. It is also indestructible. While it can be made to be drivable, this entity is best used as a script controlled model for cinematics. See notes below.
     
    Keys
     
    angle: initial orientation of model in game (default: 0).
    model: name of entity's model definition file (hcboat.def). Do not change.
    alpha: translucency of model in game. Values are from 0-1 (default: 1).
    targetname:
    name referred to when controlled by a script.

    Spawnflags
     
    1 NOT SOLID

    Notes

    Setting an "angles" key/value pair will orient the vehicle model but will screw up the player's view once he uses it. Setting "scale" does scale the model in the game but the player's seat position ends up being all wrong (it just looks silly).

    So if all you need is a boat "decoration" set at odd angles (like a boat wreck for example), it is advisable to use a func_scriptmodel with the "model" key set to "hcboat.def" rather than to use this entity. This way, you will eliminate the risk that the player might inadvertently "use" the "vehicle" and screw up his 1st person view in the process.


    Special Notes: drivable boats

    By default, undrivable vehicles behave just like func_scriptmodels and respond to the same script commands (bind, move, rotate, etc.). In their default undrivable state, they can be entered and exited at will but not driven and they don't respond to gravity. The HCBoat vehicle can be made to be drivable by using the script command:

    $vehiclename drivable

    But this poses many problems:

  • The vehicle once made drivable can be entered but cannot not exited until you make it undrivable again with the script command:


  • $vehiclename undrivable
  • The "unlock" command would logically be the command to enable this but for some reason and quite unfortunately, the command doesn't work while the boat is "drivable".


  • If the vehicle was moving or turning even just slightly while the "undrivable" command is executed in the script, the vehicle turns back into a "scriptmodel" and tries to keep on moving and/or turning but it can't as long as player doesn't exit the vehicle. This is because the player becomes solid again in relation to the "vehicle" and is effectively blocking it.


  • As soon as the player exits the vehicle, the vehicle will resume the "moving and/or turning" it was doing before the "undrivable" command to the point where it can even drift through the walls and outside of the world. This is because scriptmodels don't respond to gravity and friction are are not solid in relation to world brushes.


  • If the NOT_SOLID spawnflag is set, this makes the vehicle entity not solid in relation to anything. Therefore, the player cannot block the vehicle and it will start drifting right after the "undrivable" command even if the player doesn't leave it.


  • All vehicles, while they're drivable, respond to gravity and therefore sink in water, the HCboat is no exception when you make it "drivable". However, this problem could be solved by placing it in water shallow enough to prevent it from sinking. Actually, if this was the only problem, drivable boats would be entirely feasible.



  • In conclusion, making undrivable vehicles "drivable" pose so many unsolvable problems that it's best to simply forget about it. They are best used in cinematics and scripted sequences since they behave just like scriptmodels and will respond to bind, move, rotate and followpath script commands although in that role, using a real func_scriptmodel would accomplish exactly the same purpose.


    click for full size image in pop-up window vehicles_humv_backtire
     
    Description
     
    HUMV Back Tire. These can be used for the back wheels of drivable vehicles. These are bigger than the ATV wheels and have a different aspect ratio (wider tread for the same diameter) as they're just about the right size for transport trucks at their default scale. They can also be used for ATV's and forklifts if scaled down to a diameter appropriate for those vehicles.
     
    Keys
     
    angle: initial orientation of model in game (default: 0).
    angles: pitch, yaw, roll method of 3D orientation for model (default: 0 0 0).
    model: name of entity's model definition file (humv_back_tire.def). Do not change.
    scale: controls size of model in the game (ex: 1.0).
    alpha: translucency of model in game. Values are from 0-1 (default: 1).
    targetname:
    name referred to when controlled by a script.

    Spawnflags
     
    None

    Notes

    These wheels are essentially non-steering wheels. Unlike the vehicles_humv_fronttire's, they don't steer while the vehicle itself is being steered by the player who's driving it. This is why they should be used as the back wheels of drivable vehicles.

    It should be noted however, that this whole business of front and back wheels don't affect the drivability of the vehicles by the player. It just makes them look more realistic to use the right wheels in the right place.

    By themselves, these wheels are not solid and not destructible by default. When they are part of a drivable vehicle, they will automatically be removed when the vehicle itself is destroyed. This was done on purpose so you wouldn't end up with players driving around on ATV's and forklifts without wheels which would look kinda silly.


    click for full size image in pop-up window vehicles_humv_fronttire
     
    Description
     
    HUMV Front Tire. These can be used for the front wheels of drivable vehicles. These are bigger than the ATV wheels and have a different aspect ratio (wider tread for the same diameter) as they're just about the right size for transport trucks at their default scale. They can also be used for ATV's and forklifts if scaled down to a diameter appropriate for those vehicles.
     
    Keys
     
    angle: initial orientation of model in game (default: 0).
    angles: pitch, yaw, roll method of 3D orientation for model (default: 0 0 0).
    model: name of entity's model definition file (humv_front_tire.def). Do not change.
    scale: controls size of model in the game (ex: 1.0).
    alpha: translucency of model in game. Values are from 0-1 (default: 1).
    targetname:
    name referred to when controlled by a script.

    Spawnflags
     
    None

    Notes

    These wheels are essentially steering wheels. Unlike the vehicles_humv_backtire's, they steer while the vehicle itself is being steered by the player who's driving it. This is why they should be used as the front wheels of drivable vehicles.

    It should be noted however, that this whole business of front and back wheels don't affect the drivability of the vehicles by the player. It just makes them look more realistic to use the right wheels in the right place.

    By themselves, these wheels are not solid and not destructible by default. When they are part of a drivable vehicle, they will automatically be removed when the vehicle itself is destroyed. This was done on purpose so you wouldn't end up with players driving around on ATV's and forklifts without wheels which would look kinda silly.


    click for full size image in pop-up window vehicles_humvlowpoly
     
    Description
     
    HUMV - Low Polygon count. This is not a vehicle, only a plain world object.
     
    Keys
     
    angle: initial orientation of model in game (default: 0).
    angles: pitch, yaw, roll method of 3D orientation for model (default: 0 0 0).
    model: name of entity's model definition file (humv_low.def). Do not change.
    scale: controls size of model in the game (ex: 1.0).
    alpha: translucency of model in game. Values are from 0-1 (default: 1).
    target: the entity this points to will be triggered when object is destroyed.
    killtarget: the entity this points to will be removed when object is destroyed.
    targetname:
    name referred to when controlled by a script.

    Spawnflags
     
    1 NOT SOLID
    2 NOT DAMAGEABLE

    Notes

    This entity is only useful if all you need in your map is a stationary vehicle for looks since plain world models don't respond to "move" and "rotate" type script commands. If you want to make a vehicle that moves around, use a func_scriptmodel entity instead and set the "model" key to the same model name that this entity uses (humv_low.def). From there, you can bind, move, rotate or make your model follow splinepaths as needed.


    click for full size image in pop-up window vehicles_humv_tire
     
    Description
     
    HUMV Tire. This is a static world object meant to be used as a general purpose wheel model. It uses the same basic model as the functional vehicles_humv_backtire and vehicles_humv_fronttire entities but does not work for drivable vehicles. It can be used, hovewer, to complement the vehicles_truck world model which doesn't have wheels by itself.
     
    Keys
     
    angle: initial orientation of model in game (default: 0).
    angles: pitch, yaw, roll method of 3D orientation for model (default: 0 0 0).
    model: name of entity's model definition file (humv_tire.def). Do not change.
    scale: controls size of model in the game (ex: 1.0).
    alpha: translucency of model in game. Values are from 0-1 (default: 1).
    target: the entity this points to will be triggered when object is destroyed.
    killtarget: the entity this points to will be removed when object is destroyed.
    targetname:
    name referred to when controlled by a script.

    Spawnflags
     
    1 NOT SOLID
    2 NOT DAMAGEABLE

    Notes

    This entity is only useful if all you need in your map is a stationary wheel for looks since plain world models don't respond to "move" and "rotate" type script commands. If you want to make a wheel that moves around and rotates, use a func_scriptmodel entity instead and set the "model" key to the same model name that this entity uses (humv_tire.def). From there, you can bind, move, rotate or make your model follow splinepaths as needed.

    A typical example of this would be in the case you want to make wheels for a custom scripted vehicle (which would also have to be a scriptmodel) like a transport truck. Please refer to the notes in the vehicles_truck entity further down on this page for more details.


    click for full size image in pop-up window vehicles_lamprey
     
    Description
     
    Lamprey HardCorps helicopter. Undrivable vehicle. By default, this vehicle can be entered and exited but not driven. It is also indestructible. While it can not be made to be drivable, this entity can be very useful for interactive scripted game sequences or cinematics. See notes below.
     
    Keys
     
    angle: initial orientation of model in game (default: 0).
    model: name of entity's model definition file (lamprey.def). Do not change.
    alpha: translucency of model in game. Values are from 0-1 (default: 1).
    targetname:
    name referred to when controlled by a script.

    Spawnflags
     
    1 NOT SOLID

    Notes

    Setting an "angles" key/value pair will orient the vehicle model but will screw up the player's view once he uses it. Setting "scale" does scale the model in the game but the player's seat position ends up being all wrong (it just looks silly).

    So if all you need is a helicopter "decoration" set at odd angles (like a crashed heli for example), it is advisable to use a func_scriptmodel with the "model" key set to "lamprey.def" rather than to use this entity. This way, you will eliminate the risk that the player might inadvertently "use" the "vehicle" and screw up his 1st person view in the process.


    Special Notes: using helicopters

    By default, undrivable vehicles behave just like func_scriptmodels and respond to the same script commands (bind, move, rotate, etc.). In their default undrivable state, they can be entered and exited at will but not driven and they don't respond to gravity. Unlike HCboats, the Lamprey helicopter cannot be made to be drivable. So even if you use the script command:

    $vehiclename drivable

    The helicopter won't respond to your movement controls. All this command does is to freeze the players "freelook" controls and prevents him from exiting the helicopter. Therefore, making helicopters "drivable" is completely useless. But unlike for the HCBoat, this does not pose any problems for the following reasons:

  • When the player "uses" the helicopter, he enters it but is automatically placed in the gunner's seat and given the Heligun. Pressing "use" again will make him exit the helicopter and restore the weapon he was holding when he entered the helicopter.


  • Since the player is placed in the gunner's seat and not in the pilot's seat, it is therefore not his job to drive the vehicle. Therefore, an undrivable helicopter makes perfect sense and the automatic gunner weapon assignment make it a very valuable "vehicle" for many possible interactive scripted game scenarios (shooting stuff while being flown around).


  • Since the helicopter is not made to be "drivable", it retains all its default "scriptmodel" capability (move, rotate, etc.) and the responsibility of driving the vehicle is assumed by the script itself. Of course, the "driving" will inevitably follow a fixed pattern but the map designer can choose how simple or complex that pattern will be.


  • Since the helicopter is not made to be "drivable", the "lock" and "unlock" commands work perfectly and can be used to prevent the player from leaving the helicopter until its programmed flight route is complete.


  • Since the Heligun is automatically given to the player when he enters the helicopter, all the map designer has to worry about is in a single player interactive sequence is binding a rotor scriptobject (lamprey_rotors.def) to the helicopter, the helicopter sounds and the flight path threads.


  • To initiate the flight path thread at the same time than the helicopter is entered, a conveniently located trigger can be used. Just set the "thread" key to the name of the flight path thread. The entry/exit of the player into and out of any vehicle can be forced by using the following command:


  • $vehiclename doUse *1

    However, if you want a complete helicopter with a gunner for cinematics or special effects, it is best to use a func_scriptmodel with the "model" key set to "lamprey.def" rather than using a vehicles_lamprey entity directly.

    This is a bit more elaborate as you must "assemble" the helicopter: a rotor and heligun scriptmodel must bound to the helicopter and a Blade scriptmodel (anim: heligun) must be bound to the heligun. However, I wrote a small thread (24 lines of code) that handles all the positioning and binding of the scriptmodels for you. All you have to do is place the 4 scriptmodels anywhere in your map plus 2 func_scriptorigin, give them targetnames and include the the thread in your script. When the thread is called, it will "build" the helicopter on the fly! A downloadable example map is available from the Files section. The script handles the step-by-step assembly demonstration and includes the "bare-bones" thread plus detailed comments.


    click for full size image in pop-up window vehicles_lamprey_rotors
     
    Description
     
    Lamprey Rotors. Two skins - One for HC and Sintek. This is a plain world object.
     
    Keys
     
    angle: initial orientation of model in game (default: 0).
    angles: pitch, yaw, roll method of 3D orientation for model (default: 0 0 0).
    model: name of entity's model definition file (lamprey_rotors.def). Do not change.
    scale: controls size of model in the game (ex: 1.0).
    alpha: translucency of model in game. Values are from 0-1 (default: 1).
    target: the entity this points to will be triggered when object is destroyed.
    killtarget: the entity this points to will be removed when object is destroyed.
    targetname:
    name referred to when controlled by a script.
    skin: name of skin used for model. Choices are 'lamprey_hcbase' (HardCorps) shown above and the following:
    click for full size image in pop-up window
    lamprey_sinbase
    (SinTek)

    Spawnflags
     
    1 NOT SOLID
    2 NOT DAMAGEABLE

    Notes

    This entity is only useful to complement a vehicles_lamprey helicopter entity which you don't intend to rotate or move around in your map since plain world models don't respond to "move" and "rotate" type script commands. If you want to make a functional helicopter model with a turning rotor, use a func_scriptmodel entity instead and set the "model" key to the model name that this entity uses (lamprey_rotors.def). From there, you can bind, move, rotate or make your model follow splinepaths as needed.


    click for full size image in pop-up window vehicles_lamprey_sintek
     
    Description
     
    Lamprey SinTek helicopter. Undrivable vehicle. By default, this vehicle can be entered and exited but not driven. It is also indestructible. While it can not be made to be drivable, this entity can be very useful for cinematics or special effects. See notes below.
     
    Keys
     
    angle: initial orientation of model in game (default: 0).
    model: name of entity's model definition file (lamprey_sintek.def). Do not change.
    alpha: translucency of model in game. Values are from 0-1 (default: 1).
    targetname:
    name referred to when controlled by a script.

    Spawnflags
     
    1 NOT SOLID

    Notes

    Setting an "angles" key/value pair will orient the vehicle model but will screw up the player's view once he uses it. Setting "scale" does scale the model in the game but the player's seat position ends up being all wrong (it just looks silly).

    So if all you need is a helicopter "decoration" set at odd angles (like a crashed heli for example), it is advisable to use a func_scriptmodel with the "model" key set to "lamprey.def" rather than to use this entity. This way, you will eliminate the risk that the player might inadvertently "use" the "vehicle" and screw up his 1st person view in the process.


    Special Notes: SinTek helicopters

    The SinTek helicopter is almost identical to the HardCorps helicopter. The 2 main differences are the skin of course but more importantly, the vehicle's seatoffset as defined in the model's .def file. If you open and compare both model's .def file, you will see the following line in lamprey.def:

    server seatoffset "0 70 0"

    Whereas in lamprey_sintek.def, the line is as follows:

    server seatoffset "0 40 0"

    Such a small difference. Unfortunately, this makes ALL the difference. What this command does is that it sets the positional offset of the player when he enters the vehicle. In the case of the HC lamprey, the position is ideal. In the case of the SinTek lamprey, it is (as the coordinates in the command indicates) 30 map units below the ideal position. The result of this is that when the player enters the helicopter, he ends up underneath the helicopter's belly which looks totally stupid.

    But the real problem is that there is no way to change the seatoffset. There is a "seatoffset" command for vehicles but it only works when issued in the model's .def file with the above syntax (server ...). So even if you use the command:

    $heli seatoffset "0 70 0"

    It doesn't work and the player position in the helicopter remains unchanged. The net consequence of this is that the vehicles_lamprey_sintek entity is unusable for 1st person scripted action sequences.

    This make me wonder why the developers bothered to make a separate .def file for a helicopter unusable as a player vehicle (there are so few workable vehicles to start with) when it would have been a lot simpler (for them as well as for us) to have only one lamprey helicopter with a choice of 2 skins.

    What makes this even more aggravating is that all the model files (.sbm and .sam) plus the skins for both helicopters all reside in the same model subfolder (models/lamprey). But if you try to give the HC lamprey a "skin" key/value pair set to the sintek skin (lamprey_sinbase), it won't work because the name of that skin isn't in lamprey.def's skin list.

    Cute huh? The skin is there but you can't use it. You could always modify the lamprey.def file, add the SinTek skin in the list AND distribute it with your maps of course but this sucks.

    However, when used as a func_scriptmodel with the "model" key set to "lamprey_sintek.def" for cinematics and special effects, it has exactly the same capabilities as the HC lamprey of course. You can also use the thread I designed to build a HC helicopter "on the fly" for the SinTek helicopter. The only thing you will need to modify in the thread is the name of the model's bone used to attach the heligun to the helicopter's body. For the HC lamprey, the bone is named "seat" whereas for the SinTek lamprey, the bone is named "gun" (only used in 2 places).


    click for full size image in pop-up window vehicles_minitruck
     
    Description
     
    Mini Truck - Street scenes - Low Polygon count. This is not a vehicle, only a plain world object.
     
    Keys
     
    angle: initial orientation of model in game (default: 0).
    angles: pitch, yaw, roll method of 3D orientation for model (default: 0 0 0).
    model: name of entity's model definition file (minitrucklow.def). Do not change.
    scale: controls size of model in the game (ex: 1.0).
    alpha: translucency of model in game. Values are from 0-1 (default: 1).
    target: the entity this points to will be triggered when object is destroyed.
    killtarget: the entity this points to will be removed when object is destroyed.
    targetname:
    name referred to when controlled by a script.

    Spawnflags
     
    1 NOT SOLID
    2 NOT DAMAGEABLE

    Notes

    This entity is only useful if all you need in your map is a stationary vehicle for looks since plain world models don't respond to "move" and "rotate" type script commands. If you want to make a vehicle that moves around, use a func_scriptmodel entity instead and set the "model" key to the same model name that this entity uses (minitrucklow.def). From there, you can bind, move, rotate or make your model follow splinepaths as needed.


    click for full size image in pop-up window vehicles_Sub
     
    Description
     
    Cargo transit submarine. This is not a vehicle, only a plain world object.
     
    Keys
     
    angle: initial orientation of model in game (default: 0).
    angles: pitch, yaw, roll method of 3D orientation for model (default: 0 0 0).
    model: name of entity's model definition file (sub.def). Do not change.
    anim: default "Idle" animation alias name of model. Points to a .sam animation file in the model's .def file. See Notes below.
    scale: controls size of model in the game (ex: 1.0).
    alpha: translucency of model in game. Values are from 0-1 (default: 1).
    target: the entity this points to will be triggered when object is destroyed.
    killtarget: the entity this points to will be removed when object is destroyed.
    targetname:
    name referred to when controlled by a script.

    Spawnflags
     
    1 NOT SOLID
    2 NOT DAMAGEABLE

    Notes

    The anim key cannot be used directly to change the model's initial animation in the game. A script with animation commands (anim, nextanim, animate, etc.) must be used for this. For this particular model, there are 4 possible animations: sub_idleclosed, sub_idleopen, sub_open, and sub_close.

    However, changing the value of the anim key in SinEd by using the + and - buttons in the entity dialog and using the "Toggle animations" feature (CTRL-A) can be useful for browsing the model's different animations directly in the 3D view. This information can then be used to set the animation commands in the script to the desired animations.

    This entity is only useful if all you need in your map is a stationary vehicle for looks since plain world models don't respond to "move" and "rotate" type script commands. If you want to make a vehicle that moves around, use a func_scriptmodel entity instead and set the "model" key to the same model name that this entity uses (sub.def). From there, you can bind, move, rotate or make your model follow splinepaths as needed.


    click for full size image in pop-up window vehicles_truck
     
    Description
     
    Troop Transport Truck. This is not a vehicle, only a plain world object.
     
    Keys
     
    angle: initial orientation of model in game (default: 0).
    angles: pitch, yaw, roll method of 3D orientation for model (default: 0 0 0).
    model: name of entity's model definition file (truck.def). Do not change.
    scale: controls size of model in the game (ex: 1.0).
    alpha: translucency of model in game. Values are from 0-1 (default: 1).
    target: the entity this points to will be triggered when object is destroyed.
    killtarget: the entity this points to will be removed when object is destroyed.
    targetname:
    name referred to when controlled by a script.

    Spawnflags
     
    1 NOT SOLID
    2 NOT DAMAGEABLE

    Notes

    This entity is only useful if all you need in your map is a stationary vehicle for looks since plain world models don't respond to "move" and "rotate" type script commands. If you want to make a vehicle that moves around, use a func_scriptmodel entity instead and set the "model" key to the same model name that this entity uses (truck.def). From there, you can bind, move, rotate or make your model follow splinepaths as needed.

    This particular model represents a bigger scripting challenge since you will also have to add wheel scriptmodels and implement the proper threads to synchronize the turning and steering of the wheels with the movement of the truck model.

    However, since Ritual's map "SinTEK Outside Warehouse" (whouse1.bsp) contains a working example of this, you can find and extract big chunks of ready-made code in the script "whouse1.scr".


    click for full size image in pop-up window vehicles_van
     
    Description
     
    Cool Grue Van. This is not a vehicle, only a plain world object.
     
    Keys
     
    angle: initial orientation of model in game (default: 0).
    angles: pitch, yaw, roll method of 3D orientation for model (default: 0 0 0).
    model: name of entity's model definition file (van.def). Do not change.
    scale: controls size of model in the game (ex: 1.0).
    alpha: translucency of model in game. Values are from 0-1 (default: 1).
    target: the entity this points to will be triggered when object is destroyed.
    killtarget: the entity this points to will be removed when object is destroyed.
    targetname:
    name referred to when controlled by a script.

    Spawnflags
     
    1 NOT SOLID
    2 NOT DAMAGEABLE

    Notes

    This entity is only useful if all you need in your map is a stationary vehicle for looks since plain world models don't respond to "move" and "rotate" type script commands. If you want to make a vehicle that moves around, use a func_scriptmodel entity instead and set the "model" key to the same model name that this entity uses (van.def). From there, you can bind, move, rotate or make your model follow splinepaths as needed.