<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nishi+Kuhn</id>
	<title>Second Life Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nishi+Kuhn"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Nishi_Kuhn"/>
	<updated>2026-05-09T12:47:17Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Linden_Vehicle_Tutorial&amp;diff=378102</id>
		<title>Linden Vehicle Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Linden_Vehicle_Tutorial&amp;diff=378102"/>
		<updated>2009-05-30T19:45:41Z</updated>

		<summary type="html">&lt;p&gt;Nishi Kuhn: wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header|ml=2}}&lt;br /&gt;
{{RightToc}}&lt;br /&gt;
== Vehicles ==&lt;br /&gt;
&lt;br /&gt;
Vehicles may be created and controlled through LSL. This chapter will cover the basics of how vehicles work, the terms used when describing vehicles, and a more thorough examination of the API available.&lt;br /&gt;
&lt;br /&gt;
There are several ways to make scripted objects move themselves around. One way is to turn the object into a &amp;quot;vehicle&amp;quot;. This feature is versatile enough to make things that slide, hover, fly, and float. Some of the behaviors that can be enabled are:&lt;br /&gt;
&lt;br /&gt;
*deflection of linear and angular velocity to preferred axis of motion&lt;br /&gt;
*asymmetric linear and angular friction&lt;br /&gt;
*hovering over terrain/water or at a global height&lt;br /&gt;
*banking on turns&lt;br /&gt;
*linear and angular motor for push and turning&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Each scripted object can have one vehicle behavior that is configurable through the [[llSetVehicleType]], llSetVehicleFloatParam, llSetVehicleVectorParam, llSetVehicleRotationParam, llSetVehicleFlags, and llRemoveVehicleFlags library calls.&lt;br /&gt;
&lt;br /&gt;
These script calls are described in more detail below, but the important thing to notice here is that the vehicle behavior has several parameters that can be adjusted to change how the vehicle handles. Depending on the values chosen the vehicle can veer like a boat in water, or ride like a sled on rails.&lt;br /&gt;
&lt;br /&gt;
Setting the vehicle flags allow you to make exceptions to some default behaviors. Some of these flags only have an effect when certain behaviors are enabled. For example, the [[VEHICLE_FLAG_HOVER_WATER_ONLY]] will make the vehicle ignore the height of the terrain, however it only makes a difference if the vehicle is hovering.&lt;br /&gt;
&lt;br /&gt;
== Warnings ==&lt;br /&gt;
&lt;br /&gt;
Vehicles are new in Second Life 1.1 and some of the details of their behavior may be changed as necessary to ensure stability and user safety. In particular, many of the limits and defaults described in the appendices will probably change and should not be relied upon in the long term.&lt;br /&gt;
&lt;br /&gt;
It is not recommended that you mix vehicle behavior with some of the other script calls that provide impulse and forces to the object, especially [[llSetBuoyancy]], [[llSetForce]], [[llSetTorque]], and [[llSetHoverHeight]].&lt;br /&gt;
&lt;br /&gt;
While the following methods probably do not cause any instabilities, their behavior may conflict with vehicles and cause undesired or inconsistent results, so use [[llLookAt]], [[llRotLookAt]], [[llMoveToTarget]], and [[llTargetOmega]] at your own risk.&lt;br /&gt;
&lt;br /&gt;
If you think you have found a bug relating to how vehicle&#039;s work, one way to submit the problem is to give a copy of the vehicle and script to Andrew Linden with comments or a notecard describing the problem. Please name all submissions &amp;quot;Bugged Vehicle XX&amp;quot; where XX are your Second Life initials. The vehicle and script will be examined at the earliest convenience.&lt;br /&gt;
&lt;br /&gt;
==  Definitions ==&lt;br /&gt;
&lt;br /&gt;
The terms &amp;quot;roll&amp;quot;, &amp;quot;pitch&amp;quot;, and &amp;quot;yaw&amp;quot; are often used to describe the modes of rotations that can happen to a airplane or boat. They correspond to rotations about the local x-, y-, and z-axis respectively.&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Tait-Bryan_angles&lt;br /&gt;
&lt;br /&gt;
The right-hand-rule, often introduced in beginning physics courses, is used to define the direction of positive rotation about any axis. As an example of how to use the right hand rule, consider a positive rotation about the roll axis. To help visualize how such a rotation would move the airplane, place your right thumb parallel to the plane&#039;s roll-axis such that the thumb points in the positive x-direction, then curl the four fingers into a fist. Your fingers will be pointing in the direction that the plane will spin.&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Right_hand_rule&lt;br /&gt;
&lt;br /&gt;
Many of the parameters that control a vehicle&#039;s behavior are of the form:&lt;br /&gt;
&lt;br /&gt;
VEHICLE_&#039;&#039;&#039;BEHAVIOR&#039;&#039;&#039;_TIMESCALE&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;BEHAVIOR&#039;&#039;&#039; &#039;s &amp;quot;timescale&amp;quot; can usually be understood as the time for the behavior to push, twist, or otherwise affect the vehicle such that the difference between what it is doing, and what it is supposed to be doing, has been reduced to 1/e of what it was, where &amp;quot;e&amp;quot; is the natural exponent (approximately 2.718281828). In other words, it is the timescale for exponential decay toward full compliance to the desired behavior. When you want the vehicle to be very responsive use a short timescale of one second or less, and if you want to disable a behavior then set the timescale to a very large number like 300 (5 minutes) or more. Note, for stability reasons, there is usually a limit to how small a timescale is allowed to be, and is usually on the order of a tenth of a second. Setting a timescale to zero is safe and is always equivalent to setting it to its minimum. Any feature with a timescale can be effectively disabled by setting the timescale so large that it would take them all day to have any effect.&lt;br /&gt;
&lt;br /&gt;
==  Setting the Vehicle Type ==&lt;br /&gt;
&lt;br /&gt;
Before any vehicle parameters can be set the vehicle behavior must first be enabled. It is enabled by calling [[llSetVehicleType]] with any &#039;&#039;&#039;VEHICLE_TYPE_*&#039;&#039;&#039;, except [[VEHICLE_TYPE_NONE]] which will disable the vehicle. See the {{LSLGC|Vehicle|vehicle types}} constants section for currently available types. More types will be available soon.&lt;br /&gt;
&lt;br /&gt;
Setting the vehicle type is necessary for enabling the vehicle behavior and sets all of the parameters to its default values. For each vehicle type listed we provide the corresponding equivalent code in long format. Is is important to realize that the defaults are not the optimal settings for any of these vehicle types and that they will definitely be changed in the future. Do not rely on these values to be constant until specified.&lt;br /&gt;
&lt;br /&gt;
Should you want to make a unique or experimental vehicle you will still have to enable the vehicle behavior with one of the default types first, after which you will be able to change any of the parameters or flags within the allowed ranges.&lt;br /&gt;
&lt;br /&gt;
Setting the vehicle type does not automatically take controls or otherwise move the object. However should you enable the vehicle behavior while the object is free to move and parked on a hill then it may start to slide away.&lt;br /&gt;
&lt;br /&gt;
We are looking for new and better default vehicle types. If you think you have found a set of parameters that make a better car, boat, or any other default type of vehicle then you may submit your proposed list of settings to {{User|Andrew Linden}} via a script, notecard or [https://jira.secondlife.com/ JIRA].&lt;br /&gt;
{{LSL Constants/Vehicle Types}}&lt;br /&gt;
&lt;br /&gt;
==  Linear and Angular Deflection ==&lt;br /&gt;
&lt;br /&gt;
A common feature of real vehicles is their tendency to move along &amp;quot;preferred axes of motion&amp;quot;. That is, due to their wheels, wings, shape, or method of propulsion they tend to push or redirect themselves along axes that are static in the vehicle&#039;s local frame. This general feature defines a class of vehicles and included in this category a&lt;br /&gt;
common dart is a &amp;quot;vehicle&amp;quot;: it has fins in the back such that if it were to tumble in the air it would eventually align itself to move point-forward--we call this alignment effect angular deflection.&lt;br /&gt;
&lt;br /&gt;
A wheeled craft exhibits a different effect: when a skateboard is pushed in some direction it will tend to redirect the resultant motion along that which it is free to roll--we call this effect linear deflection.&lt;br /&gt;
&lt;br /&gt;
So a typical Second Life vehicle is an object that exhibits linear and/or angular deflection along the &amp;quot;preferential axes of motion&amp;quot;. The default preferential axes of motion are the local x- (at), y- (left), and z- (up) axes of the local frame of the vehicle&#039;s root primitive. The deflection behaviors relate to the x-axis (at): linear deflection will tend to rotate its velocity until it points along its positive local x-axis while the angular deflection will tend to reorient the vehicle such that its x-axis points in the direction that it is moving. The other axes are relevant to vehicle behaviors that are described later, such as the vertical attractor which tries to keep a vehicle&#039;s local z-axis pointed toward the world z-axis (up). The vehicle axes can be rotated relative to the object&#039;s actual local axes by using the [[VEHICLE_REFERENCE_FRAME]] parameter, however that is an advanced feature and is covered in detail in a later section of these documents.&lt;br /&gt;
&lt;br /&gt;
Depending on the vehicle it might be desirable to have lots of linear and/or angular deflection or not. The speed of the deflections are controlled by setting the relevant parameters using the [[llSetVehicleFloatParam]] script call.&lt;br /&gt;
&lt;br /&gt;
Each variety of deflection has a &amp;quot;timescale&amp;quot; parameter that determines how quickly a full deflection happens.&lt;br /&gt;
&lt;br /&gt;
Basically the timescale it the time coefficient for exponential decay toward full deflection. So, a vehicle that deflects quickly should have a small timescale. For instance, a typical dart might have a angular deflection timescale of a couple of seconds but a linear deflection of several seconds; it will tend to reorient itself before it changes direction. To set the deflection timescales of a dart you might use the lines below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 2.0);&lt;br /&gt;
llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 6.0);&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each variety of deflection has an &amp;quot;efficiency&amp;quot; parameter that is a slider between 0.0 and 1.0. Unlike the other efficiency parameter of other vehicle behaviors, the deflection efficiencies do not slide between &amp;quot;bouncy&amp;quot; and &amp;quot;damped&amp;quot;, but instead slide from &amp;quot;no deflection whatsoever&amp;quot; (0.0) to &amp;quot;maximum deflection&amp;quot; (1.0). That is, they behave much like the deflection timescales, however they are normalized to the range between 0.0 and 1.0.&lt;br /&gt;
&lt;br /&gt;
==  Moving the Vehicle ==&lt;br /&gt;
&lt;br /&gt;
Once enabled, a vehicle can be pushed and rotated by external forces and/or from script calls such as [[llApplyImpulse]], however linear and angular motors have been built in to make motion easier and smoother. Their directions can be set using the[[llSetVehicleVectorParam]] call. For example, to make the vehicle try to move at 5 meters/second along its local x-axis (the default look-at direction) you would put the following line in your script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;5, 0, 0&amp;gt;);&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To prevent vehicles from moving too fast the magnitude of the linear motor is clamped to be no larger than about 30 meters/second. Note that this is clamped mostly because of limitations of the physics engine, and may be raised later when possible.&lt;br /&gt;
&lt;br /&gt;
Setting the motor speed is not enough to enable all interesting vehicles. For example, some will want a car that immediately gets up to the speed they want, while others will want a boat that slowly climbs up to its maximum velocity. To control this effect you can use the [[VEHICLE_LINEAR_MOTOR_TIMESCALE]] parameter.&lt;br /&gt;
&lt;br /&gt;
Basically the &amp;quot;timescale&amp;quot; of a motor is the time constant for the vehicle to exponentially accelerate toward its full speed.&lt;br /&gt;
&lt;br /&gt;
What would happen if you were to accidentally set the vehicle&#039;s linear velocity to maximum possible speed and then let go? It would run away and never stop, right? Not necessarily: an automatic &amp;quot;motor decay&amp;quot; has been built in such that all motors will gradually decrease their effectiveness after being set.&lt;br /&gt;
&lt;br /&gt;
Each time the linear motor&#039;s vector is set its &amp;quot;grip&amp;quot; immediately starts to decay exponentially with a timescale determined by the [[VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE]], such that after enough time the motor ceases to have any effect. This decay timescale serves two purposes. First, since it cannot be set longer than 120 seconds, and is always enabled it guarantees that a vehicle will not push itself about forever in the absence of active control (from keyboard commands or some logic loop in the script). Second, it can be used to push some vehicles around using a simple impulse model. That is, rather than setting the motor &amp;quot;on&amp;quot; or &amp;quot;off&amp;quot; depending on whether a particular key is pressed &amp;quot;down&amp;quot; or &amp;quot;up&amp;quot; the decay timescale can be set short and the motor can be set &amp;quot;on&amp;quot; whenever the key transitions from &amp;quot;up&amp;quot; to &amp;quot;down&amp;quot; and allowed to automatically decay.&lt;br /&gt;
&lt;br /&gt;
Since the motor&#039;s effectiveness is reset whenever the motor&#039;s vector is set, then setting it to a vector of length zero is different from allowing it to decay completely. The first case will cause the vehicle to try to reach zero velocity, while the second will leave the motor impotent.&lt;br /&gt;
&lt;br /&gt;
The two motor timescales have very similar names, but have different effects, so try not to get them confused.&lt;br /&gt;
&lt;br /&gt;
::[[VEHICLE_LINEAR_MOTOR_TIMESCALE]] is the time for motor to &amp;quot;win&amp;quot;, and&lt;br /&gt;
&lt;br /&gt;
::[[VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE]] is the time for the motor&#039;s &amp;quot;effectiveness&amp;quot; to decay toward zero. If you set one when you think you are changing the other you will have frustrating results. Also, if the motor&#039;s decay timescale is shorter than the regular timescale, then the effective magnitude of the motor vector will be diminished.&lt;br /&gt;
&lt;br /&gt;
==  Steering the Vehicle ==&lt;br /&gt;
&lt;br /&gt;
Much like the linear motor, there is also an angular motor that is always on, and whose direction and magnitude can be set. For example, to make a vehicle turn at 5 degrees/sec around its local z-axis (its up-axis) you might add the following lines to its script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
vector angular_velocity = &amp;lt;0, 0, 5 * PI / 180&amp;gt;;&lt;br /&gt;
llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, angular_velocity);&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The magnitude of the angular motor is capped to be no more than two rotations per second (4 * [[PI]] radians/sec).&lt;br /&gt;
&lt;br /&gt;
Also like the linear motor it has an efficiency parameter, [[VEHICLE_ANGULAR_MOTOR_TIMESCALE]], and a motor decay parameter, [[VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE]], which is set to the maximum possible value of 120 seconds by default.&lt;br /&gt;
&lt;br /&gt;
When steering a vehicle you probably do not want it to turn very far or for very long. One way to do it using the angular motor would be to leave the decay timescale long, enable a significant amount of angular friction (to quickly slow the vehicle down when the motor is turned off) then set the angular motor to a large vector on a key&lt;br /&gt;
press, and set it to zero when the key is released. Another way to do it is to set the [[VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE]] to a short value and push the vehicle about with a more impulsive method that sets the motor fast on a key press down (and optionally setting the motor to zero on a key up) relying on the automatic exponential decay of the motor&#039;s effectiveness rather than a constant angular friction.&lt;br /&gt;
&lt;br /&gt;
Setting the angular motor to zero magnitude is different from allowing it to decay. When the motor completely decays it no longer affects the motion of the vehicle, however setting it to zero will reset the &amp;quot;grip&amp;quot; of the vehicle and will make the vehicle try to achieve zero angular velocity.&lt;br /&gt;
&lt;br /&gt;
For some vehicles it will be possible to use the &amp;quot;banking feature&amp;quot; to turn. &amp;quot;Banking&amp;quot; is what airplanes and motorcycles do when they turn. When a banking vehicle twists about its roll-axis there is a resultant spin around its yaw-axis. Banking is only available when using the &amp;quot;vertical attractor&amp;quot; which is described below.&lt;br /&gt;
&lt;br /&gt;
==  The Vertical Attractor ==&lt;br /&gt;
&lt;br /&gt;
Some vehicles, like boats, should always keep their up-side up. This can be done by enabling the &amp;quot;vertical attractor&amp;quot; behavior that springs the vehicle&#039;s local z-axis to the world z-axis (a.k.a. &amp;quot;up&amp;quot;). To take advantage of this feature you would set the [[VEHICLE_VERTICAL_ATTRACTION_TIMESCALE]] to control the period of the spring frequency, and then set the [[VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY]] to control the damping. An efficiency of 0.0 will cause the spring to wobble around its equilibrium, while an efficiency of 1.0 will cause the spring to reach its equilibrium with exponential decay.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 4.0);&lt;br /&gt;
llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.5);&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The vertical attractor is disabled by setting its timescale to anything larger than 300 seconds.&lt;br /&gt;
&lt;br /&gt;
Note that by default the vertical attractor will prevent the vehicle from diving and climbing. So, if you wanted to make a airplane you would probably want to unlock the attractor around the pitch axis by setting the [[VEHICLE_FLAG_LIMIT_ROLL_ONLY]] bit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
llSetVehicleFlags(VEHICLE_FLAG_LIMIT_ROLL_ONLY);&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Banking ==&lt;br /&gt;
&lt;br /&gt;
The vertical attractor feature must be enabled in order for the banking behavior to function. The way banking works is this: a rotation around the vehicle&#039;s roll-axis will produce a angular velocity around the yaw-axis, causing the vehicle to turn. The magnitude of the yaw effect will be proportional to the&lt;br /&gt;
&lt;br /&gt;
::[[VEHICLE_BANKING_EFFICIENCY]], the angle of the roll rotation, and sometimes the vehicle&#039;s velocity along its preferred axis of motion.&lt;br /&gt;
&lt;br /&gt;
::The [[VEHICLE_BANKING_EFFICIENCY]] can vary between -1 and +1. When it is positive then any positive rotation (by the right-hand rule) about the roll-axis will effect a (negative) torque around the yaw-axis, making it turn to the right--that is the vehicle will lean into the turn, which is how real airplanes and motorcycle&#039;s work. Negating the banking coefficient will make it so that the vehicle leans to the outside of the turn (not very &amp;quot;physical&amp;quot; but might allow interesting vehicles so why not?).&lt;br /&gt;
&lt;br /&gt;
::The [[VEHICLE_BANKING_MIX]] is a fake (i.e. non-physical) parameter that is useful for making banking vehicles do what you want rather than what the laws of physics allow. For example, consider a real motorcycle...it must be moving forward in order for it to turn while banking, however video-game motorcycles are often configured to turn in place when at a dead stop--because they are often easier to control that way using the limited interface of the keyboard or game controller. The [[VEHICLE_BANKING_MIX]] enables combinations of both realistic and non-realistic banking by functioning as a slider between a banking that is correspondingly totally static (0.0) and totally dynamic (1.0). By &amp;quot;static&amp;quot; we mean that the banking effect depends only on the vehicle&#039;s rotation about its roll-axis compared to &amp;quot;dynamic&amp;quot; where the banking is also proportional to its velocity along its roll-axis. Finding the best value of the &amp;quot;mixture&amp;quot; will probably require trial and error.&lt;br /&gt;
&lt;br /&gt;
The time it takes for the banking behavior to defeat a preexisting angular velocity about the world z-axis is determined by the [[VEHICLE_BANKING_TIMESCALE]]. So if you want the vehicle to bank quickly then give it a banking timescale of about a second or less, otherwise you can make a sluggish vehicle by giving it a timescale of several seconds.&lt;br /&gt;
&lt;br /&gt;
==  Friction Timescales ==&lt;br /&gt;
&lt;br /&gt;
[[VEHICLE_LINEAR_FRICTION_TIMESCALE]] is a vector parameter that defines the timescales for the vehicle to come to a complete stop along the three local axes of the vehicle&#039;s reference frame. The timescale along each axis is independent of the others. For example, a sliding ground car would probably have very little friction along its x- and z-axes (so it can easily slide forward and fall down) while there would usually significant friction along its y-axis:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;1000, 3, 1000&amp;gt;);&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remember that a longer timescale corresponds to a weaker friction, hence to effectively disable all linear friction you would set all of the timescales to large values.&lt;br /&gt;
&lt;br /&gt;
Setting the linear friction as a scalar is allowed, and has the effect of setting all of the timescales to the same value. Both code snippets below are equivalent, and both make friction negligible:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// set all linear friction timescales to 1000&lt;br /&gt;
llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;1000, 1000, 1000&amp;gt;);&lt;br /&gt;
// same as above, but fewer characters&lt;br /&gt;
llSetVehicleFloatParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, 1000);&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[VEHICLE_ANGULAR_FRICTION_TIMESCALE]] is a vector parameter that defines the timescales for the vehicle to stop rotating about the x-, y-, and z-axes, and are set and disabled in the same way as the linear friction.&lt;br /&gt;
&lt;br /&gt;
==  Buoyancy ==&lt;br /&gt;
&lt;br /&gt;
The vehicle has a built-in buoyancy feature that is independent of the[[llSetBuoyancy]] call. It is recommended that the two buoyancies do not mix! To make a vehicle buoyant, set the [[VEHICLE_BUOYANCY]] parameter to something between 0.0 (no buoyancy whatsoever) to 1.0 (full anti-gravity).&lt;br /&gt;
&lt;br /&gt;
The buoyancy behavior is not independent of hover when the [[VEHICLE_FLAG_HOVER_UP_ONLY]] flag is used.  When buyancy, hover, and VEHICLE_FLAG_HOVER_UP_ONLY are used together the buoyancy effect vanishes when the vehicle is above its hover height.  That is, you would expect the vehicle to be buoyant above its hover height, however it is not.  This was not by design, but was a bug that has been around so long that it can no longer be changed -- it would break a great deal to content that unwittingly relies on this behavior.&lt;br /&gt;
&lt;br /&gt;
You may be able to mix vehicle buoyancy with the[[llSetBuoyancy]] script call, which is an independent feature. In some circumstances you may end up with a net buoyancy effect that is greater than unity, and you&#039;ll have an object that accelerates up without stopping.  Experiment at your own risk.&lt;br /&gt;
&lt;br /&gt;
==  Hover ==&lt;br /&gt;
&lt;br /&gt;
The hover behavior is enabled by setting the [[VEHICLE_HOVER_TIMESCALE]] to a value less than 300 seconds; larger timescales totally disable it. Most vehicles will work best with short hover timescales of a few seconds or less. The shorter the timescale, the faster the vehicle will slave to is target height. Note, that if the values of [[VEHICLE_LINEAR_FRICTION_TIMESCALE]] may affect the speed of the hover.&lt;br /&gt;
&lt;br /&gt;
Hover is independent of buoyancy, however the [[VEHICLE_BUOYANCY]] should be set to 1.0, otherwise the vehicle will not lift itself off of the ground until the [[VEHICLE_HOVER_HEIGHT]] is made large enough to counter the acceleration of gravity, and the vehicle will never float all the way to its target height.&lt;br /&gt;
&lt;br /&gt;
The [[VEHICLE_HOVER_EFFICIENCY]] can be thought of as a slider between bouncy (0.0) and smoothed (1.0).&lt;br /&gt;
&lt;br /&gt;
When in the bouncy range the vehicle will tend to hover a little lower than its target height and the [[VEHICLE_HOVER_TIMESCALE]] will be approximately the oscillation period of the bounce (the real period will tend to be a little longer than the timescale).&lt;br /&gt;
&lt;br /&gt;
For performance reasons, until improvements are made to the Second Life physics engine the vehicles can only hover over the terrain and water, so they will not be able to hover above objects made out of primitives, such as bridges and houses. By default the hover behavior will float over terrain and water, however this can be changed&lt;br /&gt;
by setting some flags:&lt;br /&gt;
&lt;br /&gt;
If you wanted to make a boat you should set the [[VEHICLE_HOVER_WATER_ONLY]] flag, or if you wanted to drive a hover tank under water you would use the [[VEHICLE_HOVER_TERRAIN_ONLY]] flag instead. Finally, if you wanted to make a submarine or a balloon you would use the [[VEHICLE_HOVER_GLOBAL_HEIGHT]].&lt;br /&gt;
&lt;br /&gt;
Note that the flags are independent of each other and that setting two contradictory flags will have undefined behavior (and that behavior should not be depended upon to stay constant!). The flags are set using the script call [[llSetVehicleFlags]]().&lt;br /&gt;
&lt;br /&gt;
The [[VEHICLE_HOVER_HEIGHT]] determines how high the vehicle will hover over the terrain and/or water, or the global height, and has a maximum value of 100 meters. Note that for hovering purposes the &amp;quot;center&amp;quot; of the vehicle is its &amp;quot;center of mass&amp;quot; which is not always obvious to the untrained eye, and it changes when avatars sit on the vehicle.&lt;br /&gt;
&lt;br /&gt;
==  Reference Frame ==&lt;br /&gt;
&lt;br /&gt;
The vehicle relies on the x- (at), y- (left), and z- (up) axes in order to figure out which way it prefers to move and which end is up. By default these axes are identical to the local axes of the root primitive of the object, however this means that the vehicle&#039;s root primitive must, by default, be oriented to agree with the designed at, left, and up axes of the vehicle. But, what if the vehicle object was already pre-built with the root primitive in some non-trivial orientation relative to where the vehicle as a whole should move? This is where the&lt;br /&gt;
&lt;br /&gt;
[[VEHICLE_REFERENCE_FRAME]] parameter becomes useful; the vehicle&#039;s axes can be arbitrarily reoriented by setting this parameter.&lt;br /&gt;
&lt;br /&gt;
As an example, suppose you had built a rocket out of a big cylinder, a cone for the nose, and some stretched cut boxes for the fins, then linked them all together with the cylinder as the root primitive. Ideally the rocket would move nose-first, however the cylinder&#039;s axis of symmetry is its local z-axis while the default &amp;quot;at-axis&amp;quot; of the vehicle, the axis it will want to deflect to forward under angular deflection, is the local x-axis and points out from the curved surface of the cylinder. The script code below will rotate the vehicle&#039;s axes such that the local z-axis becomes the &amp;quot;at-axis&amp;quot; and the local negative x-axis becomes the &amp;quot;up-axis&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// rotate the vehicle frame -PI/2 about the local y-axis (left-axis)&lt;br /&gt;
rotation rot =llEuler2Rot(&amp;lt;0, PI/2, 0&amp;gt;);&lt;br /&gt;
llSetVehicleRotationParam(VEHICLE_REFERENCE_FRAME, rot);&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another example of how the reference frame parameter could be used is to consider flying craft that uses the vertical attractor for stability during flying but wants to use VTOL (vertical takeoff and landing). During flight the craft&#039;s dorsal axis should point up, but during landing its nose-axis should be up. To land the vehicle: while the vertical attractor is in effect, rotate the existing [[VEHICLE_REFERENCE_FRAME]] by +PI/2 about the left-axis, then the vehicle will pitch up such that its nose points toward the sky. The vehicle could be allowed to fall to the landing pad under friction, or a decreasing hover effect.&lt;br /&gt;
&lt;br /&gt;
{{LSLC|Vehicle|Tutorial}} {{LSLC|Tutorials|Vehicle}}&lt;/div&gt;</summary>
		<author><name>Nishi Kuhn</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Linden_Vehicle_Tutorial&amp;diff=378092</id>
		<title>Linden Vehicle Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Linden_Vehicle_Tutorial&amp;diff=378092"/>
		<updated>2009-05-30T19:42:57Z</updated>

		<summary type="html">&lt;p&gt;Nishi Kuhn: extra word&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header|ml=2}}&lt;br /&gt;
{{RightToc}}&lt;br /&gt;
== Vehicles ==&lt;br /&gt;
&lt;br /&gt;
Vehicles are available for use through LSL. This chapter will cover the basics of how vehicles work, the terms used when describing vehicles, and a more thorough examination of the API available.&lt;br /&gt;
&lt;br /&gt;
There are several ways to make scripted objects move themselves around. One way is to turn the object into a &amp;quot;vehicle&amp;quot;. This feature is versatile enough to make things that slide, hover, fly, and float. Some of the behaviors that can be enabled are:&lt;br /&gt;
&lt;br /&gt;
*deflection of linear and angular velocity to preferred axis of motion&lt;br /&gt;
*asymmetric linear and angular friction&lt;br /&gt;
*hovering over terrain/water or at a global height&lt;br /&gt;
*banking on turns&lt;br /&gt;
*linear and angular motor for push and turning&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Each scripted object can have one vehicle behavior that is configurable through the [[llSetVehicleType]], llSetVehicleFloatParam, llSetVehicleVectorParam, llSetVehicleRotationParam, llSetVehicleFlags, and llRemoveVehicleFlags library calls.&lt;br /&gt;
&lt;br /&gt;
These script calls are described in more detail below, but the important thing to notice here is that the vehicle behavior has several parameters that can be adjusted to change how the vehicle handles. Depending on the values chosen the vehicle can veer like a boat in water, or ride like a sled on rails.&lt;br /&gt;
&lt;br /&gt;
Setting the vehicle flags allow you to make exceptions to some default behaviors. Some of these flags only have an effect when certain behaviors are enabled. For example, the [[VEHICLE_FLAG_HOVER_WATER_ONLY]] will make the vehicle ignore the height of the terrain, however it only makes a difference if the vehicle is hovering.&lt;br /&gt;
&lt;br /&gt;
== Warnings ==&lt;br /&gt;
&lt;br /&gt;
Vehicles are new in Second Life 1.1 and some of the details of their behavior may be changed as necessary to ensure stability and user safety. In particular, many of the limits and defaults described in the appendices will probably change and should not be relied upon in the long term.&lt;br /&gt;
&lt;br /&gt;
It is not recommended that you mix vehicle behavior with some of the other script calls that provide impulse and forces to the object, especially [[llSetBuoyancy]], [[llSetForce]], [[llSetTorque]], and [[llSetHoverHeight]].&lt;br /&gt;
&lt;br /&gt;
While the following methods probably do not cause any instabilities, their behavior may conflict with vehicles and cause undesired or inconsistent results, so use [[llLookAt]], [[llRotLookAt]], [[llMoveToTarget]], and [[llTargetOmega]] at your own risk.&lt;br /&gt;
&lt;br /&gt;
If you think you have found a bug relating to how vehicle&#039;s work, one way to submit the problem is to give a copy of the vehicle and script to Andrew Linden with comments or a notecard describing the problem. Please name all submissions &amp;quot;Bugged Vehicle XX&amp;quot; where XX are your Second Life initials. The vehicle and script will be examined at the earliest convenience.&lt;br /&gt;
&lt;br /&gt;
==  Definitions ==&lt;br /&gt;
&lt;br /&gt;
The terms &amp;quot;roll&amp;quot;, &amp;quot;pitch&amp;quot;, and &amp;quot;yaw&amp;quot; are often used to describe the modes of rotations that can happen to a airplane or boat. They correspond to rotations about the local x-, y-, and z-axis respectively.&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Tait-Bryan_angles&lt;br /&gt;
&lt;br /&gt;
The right-hand-rule, often introduced in beginning physics courses, is used to define the direction of positive rotation about any axis. As an example of how to use the right hand rule, consider a positive rotation about the roll axis. To help visualize how such a rotation would move the airplane, place your right thumb parallel to the plane&#039;s roll-axis such that the thumb points in the positive x-direction, then curl the four fingers into a fist. Your fingers will be pointing in the direction that the plane will spin.&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Right_hand_rule&lt;br /&gt;
&lt;br /&gt;
Many of the parameters that control a vehicle&#039;s behavior are of the form:&lt;br /&gt;
&lt;br /&gt;
VEHICLE_&#039;&#039;&#039;BEHAVIOR&#039;&#039;&#039;_TIMESCALE&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;BEHAVIOR&#039;&#039;&#039; &#039;s &amp;quot;timescale&amp;quot; can usually be understood as the time for the behavior to push, twist, or otherwise affect the vehicle such that the difference between what it is doing, and what it is supposed to be doing, has been reduced to 1/e of what it was, where &amp;quot;e&amp;quot; is the natural exponent (approximately 2.718281828). In other words, it is the timescale for exponential decay toward full compliance to the desired behavior. When you want the vehicle to be very responsive use a short timescale of one second or less, and if you want to disable a behavior then set the timescale to a very large number like 300 (5 minutes) or more. Note, for stability reasons, there is usually a limit to how small a timescale is allowed to be, and is usually on the order of a tenth of a second. Setting a timescale to zero is safe and is always equivalent to setting it to its minimum. Any feature with a timescale can be effectively disabled by setting the timescale so large that it would take them all day to have any effect.&lt;br /&gt;
&lt;br /&gt;
==  Setting the Vehicle Type ==&lt;br /&gt;
&lt;br /&gt;
Before any vehicle parameters can be set the vehicle behavior must first be enabled. It is enabled by calling [[llSetVehicleType]] with any &#039;&#039;&#039;VEHICLE_TYPE_*&#039;&#039;&#039;, except [[VEHICLE_TYPE_NONE]] which will disable the vehicle. See the {{LSLGC|Vehicle|vehicle types}} constants section for currently available types. More types will be available soon.&lt;br /&gt;
&lt;br /&gt;
Setting the vehicle type is necessary for enabling the vehicle behavior and sets all of the parameters to its default values. For each vehicle type listed we provide the corresponding equivalent code in long format. Is is important to realize that the defaults are not the optimal settings for any of these vehicle types and that they will definitely be changed in the future. Do not rely on these values to be constant until specified.&lt;br /&gt;
&lt;br /&gt;
Should you want to make a unique or experimental vehicle you will still have to enable the vehicle behavior with one of the default types first, after which you will be able to change any of the parameters or flags within the allowed ranges.&lt;br /&gt;
&lt;br /&gt;
Setting the vehicle type does not automatically take controls or otherwise move the object. However should you enable the vehicle behavior while the object is free to move and parked on a hill then it may start to slide away.&lt;br /&gt;
&lt;br /&gt;
We are looking for new and better default vehicle types. If you think you have found a set of parameters that make a better car, boat, or any other default type of vehicle then you may submit your proposed list of settings to {{User|Andrew Linden}} via a script, notecard or [https://jira.secondlife.com/ JIRA].&lt;br /&gt;
{{LSL Constants/Vehicle Types}}&lt;br /&gt;
&lt;br /&gt;
==  Linear and Angular Deflection ==&lt;br /&gt;
&lt;br /&gt;
A common feature of real vehicles is their tendency to move along &amp;quot;preferred axes of motion&amp;quot;. That is, due to their wheels, wings, shape, or method of propulsion they tend to push or redirect themselves along axes that are static in the vehicle&#039;s local frame. This general feature defines a class of vehicles and included in this category a&lt;br /&gt;
common dart is a &amp;quot;vehicle&amp;quot;: it has fins in the back such that if it were to tumble in the air it would eventually align itself to move point-forward--we call this alignment effect angular deflection.&lt;br /&gt;
&lt;br /&gt;
A wheeled craft exhibits a different effect: when a skateboard is pushed in some direction it will tend to redirect the resultant motion along that which it is free to roll--we call this effect linear deflection.&lt;br /&gt;
&lt;br /&gt;
So a typical Second Life vehicle is an object that exhibits linear and/or angular deflection along the &amp;quot;preferential axes of motion&amp;quot;. The default preferential axes of motion are the local x- (at), y- (left), and z- (up) axes of the local frame of the vehicle&#039;s root primitive. The deflection behaviors relate to the x-axis (at): linear deflection will tend to rotate its velocity until it points along its positive local x-axis while the angular deflection will tend to reorient the vehicle such that its x-axis points in the direction that it is moving. The other axes are relevant to vehicle behaviors that are described later, such as the vertical attractor which tries to keep a vehicle&#039;s local z-axis pointed toward the world z-axis (up). The vehicle axes can be rotated relative to the object&#039;s actual local axes by using the [[VEHICLE_REFERENCE_FRAME]] parameter, however that is an advanced feature and is covered in detail in a later section of these documents.&lt;br /&gt;
&lt;br /&gt;
Depending on the vehicle it might be desirable to have lots of linear and/or angular deflection or not. The speed of the deflections are controlled by setting the relevant parameters using the [[llSetVehicleFloatParam]] script call.&lt;br /&gt;
&lt;br /&gt;
Each variety of deflection has a &amp;quot;timescale&amp;quot; parameter that determines how quickly a full deflection happens.&lt;br /&gt;
&lt;br /&gt;
Basically the timescale it the time coefficient for exponential decay toward full deflection. So, a vehicle that deflects quickly should have a small timescale. For instance, a typical dart might have a angular deflection timescale of a couple of seconds but a linear deflection of several seconds; it will tend to reorient itself before it changes direction. To set the deflection timescales of a dart you might use the lines below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 2.0);&lt;br /&gt;
llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 6.0);&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each variety of deflection has an &amp;quot;efficiency&amp;quot; parameter that is a slider between 0.0 and 1.0. Unlike the other efficiency parameter of other vehicle behaviors, the deflection efficiencies do not slide between &amp;quot;bouncy&amp;quot; and &amp;quot;damped&amp;quot;, but instead slide from &amp;quot;no deflection whatsoever&amp;quot; (0.0) to &amp;quot;maximum deflection&amp;quot; (1.0). That is, they behave much like the deflection timescales, however they are normalized to the range between 0.0 and 1.0.&lt;br /&gt;
&lt;br /&gt;
==  Moving the Vehicle ==&lt;br /&gt;
&lt;br /&gt;
Once enabled, a vehicle can be pushed and rotated by external forces and/or from script calls such as [[llApplyImpulse]], however linear and angular motors have been built in to make motion easier and smoother. Their directions can be set using the[[llSetVehicleVectorParam]] call. For example, to make the vehicle try to move at 5 meters/second along its local x-axis (the default look-at direction) you would put the following line in your script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;5, 0, 0&amp;gt;);&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To prevent vehicles from moving too fast the magnitude of the linear motor is clamped to be no larger than about 30 meters/second. Note that this is clamped mostly because of limitations of the physics engine, and may be raised later when possible.&lt;br /&gt;
&lt;br /&gt;
Setting the motor speed is not enough to enable all interesting vehicles. For example, some will want a car that immediately gets up to the speed they want, while others will want a boat that slowly climbs up to its maximum velocity. To control this effect you can use the [[VEHICLE_LINEAR_MOTOR_TIMESCALE]] parameter.&lt;br /&gt;
&lt;br /&gt;
Basically the &amp;quot;timescale&amp;quot; of a motor is the time constant for the vehicle to exponentially accelerate toward its full speed.&lt;br /&gt;
&lt;br /&gt;
What would happen if you were to accidentally set the vehicle&#039;s linear velocity to maximum possible speed and then let go? It would run away and never stop, right? Not necessarily: an automatic &amp;quot;motor decay&amp;quot; has been built in such that all motors will gradually decrease their effectiveness after being set.&lt;br /&gt;
&lt;br /&gt;
Each time the linear motor&#039;s vector is set its &amp;quot;grip&amp;quot; immediately starts to decay exponentially with a timescale determined by the [[VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE]], such that after enough time the motor ceases to have any effect. This decay timescale serves two purposes. First, since it cannot be set longer than 120 seconds, and is always enabled it guarantees that a vehicle will not push itself about forever in the absence of active control (from keyboard commands or some logic loop in the script). Second, it can be used to push some vehicles around using a simple impulse model. That is, rather than setting the motor &amp;quot;on&amp;quot; or &amp;quot;off&amp;quot; depending on whether a particular key is pressed &amp;quot;down&amp;quot; or &amp;quot;up&amp;quot; the decay timescale can be set short and the motor can be set &amp;quot;on&amp;quot; whenever the key transitions from &amp;quot;up&amp;quot; to &amp;quot;down&amp;quot; and allowed to automatically decay.&lt;br /&gt;
&lt;br /&gt;
Since the motor&#039;s effectiveness is reset whenever the motor&#039;s vector is set, then setting it to a vector of length zero is different from allowing it to decay completely. The first case will cause the vehicle to try to reach zero velocity, while the second will leave the motor impotent.&lt;br /&gt;
&lt;br /&gt;
The two motor timescales have very similar names, but have different effects, so try not to get them confused.&lt;br /&gt;
&lt;br /&gt;
::[[VEHICLE_LINEAR_MOTOR_TIMESCALE]] is the time for motor to &amp;quot;win&amp;quot;, and&lt;br /&gt;
&lt;br /&gt;
::[[VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE]] is the time for the motor&#039;s &amp;quot;effectiveness&amp;quot; to decay toward zero. If you set one when you think you are changing the other you will have frustrating results. Also, if the motor&#039;s decay timescale is shorter than the regular timescale, then the effective magnitude of the motor vector will be diminished.&lt;br /&gt;
&lt;br /&gt;
==  Steering the Vehicle ==&lt;br /&gt;
&lt;br /&gt;
Much like the linear motor, there is also an angular motor that is always on, and whose direction and magnitude can be set. For example, to make a vehicle turn at 5 degrees/sec around its local z-axis (its up-axis) you might add the following lines to its script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
vector angular_velocity = &amp;lt;0, 0, 5 * PI / 180&amp;gt;;&lt;br /&gt;
llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, angular_velocity);&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The magnitude of the angular motor is capped to be no more than two rotations per second (4 * [[PI]] radians/sec).&lt;br /&gt;
&lt;br /&gt;
Also like the linear motor it has an efficiency parameter, [[VEHICLE_ANGULAR_MOTOR_TIMESCALE]], and a motor decay parameter, [[VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE]], which is set to the maximum possible value of 120 seconds by default.&lt;br /&gt;
&lt;br /&gt;
When steering a vehicle you probably do not want it to turn very far or for very long. One way to do it using the angular motor would be to leave the decay timescale long, enable a significant amount of angular friction (to quickly slow the vehicle down when the motor is turned off) then set the angular motor to a large vector on a key&lt;br /&gt;
press, and set it to zero when the key is released. Another way to do it is to set the [[VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE]] to a short value and push the vehicle about with a more impulsive method that sets the motor fast on a key press down (and optionally setting the motor to zero on a key up) relying on the automatic exponential decay of the motor&#039;s effectiveness rather than a constant angular friction.&lt;br /&gt;
&lt;br /&gt;
Setting the angular motor to zero magnitude is different from allowing it to decay. When the motor completely decays it no longer affects the motion of the vehicle, however setting it to zero will reset the &amp;quot;grip&amp;quot; of the vehicle and will make the vehicle try to achieve zero angular velocity.&lt;br /&gt;
&lt;br /&gt;
For some vehicles it will be possible to use the &amp;quot;banking feature&amp;quot; to turn. &amp;quot;Banking&amp;quot; is what airplanes and motorcycles do when they turn. When a banking vehicle twists about its roll-axis there is a resultant spin around its yaw-axis. Banking is only available when using the &amp;quot;vertical attractor&amp;quot; which is described below.&lt;br /&gt;
&lt;br /&gt;
==  The Vertical Attractor ==&lt;br /&gt;
&lt;br /&gt;
Some vehicles, like boats, should always keep their up-side up. This can be done by enabling the &amp;quot;vertical attractor&amp;quot; behavior that springs the vehicle&#039;s local z-axis to the world z-axis (a.k.a. &amp;quot;up&amp;quot;). To take advantage of this feature you would set the [[VEHICLE_VERTICAL_ATTRACTION_TIMESCALE]] to control the period of the spring frequency, and then set the [[VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY]] to control the damping. An efficiency of 0.0 will cause the spring to wobble around its equilibrium, while an efficiency of 1.0 will cause the spring to reach its equilibrium with exponential decay.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 4.0);&lt;br /&gt;
llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.5);&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The vertical attractor is disabled by setting its timescale to anything larger than 300 seconds.&lt;br /&gt;
&lt;br /&gt;
Note that by default the vertical attractor will prevent the vehicle from diving and climbing. So, if you wanted to make a airplane you would probably want to unlock the attractor around the pitch axis by setting the [[VEHICLE_FLAG_LIMIT_ROLL_ONLY]] bit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
llSetVehicleFlags(VEHICLE_FLAG_LIMIT_ROLL_ONLY);&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Banking ==&lt;br /&gt;
&lt;br /&gt;
The vertical attractor feature must be enabled in order for the banking behavior to function. The way banking works is this: a rotation around the vehicle&#039;s roll-axis will produce a angular velocity around the yaw-axis, causing the vehicle to turn. The magnitude of the yaw effect will be proportional to the&lt;br /&gt;
&lt;br /&gt;
::[[VEHICLE_BANKING_EFFICIENCY]], the angle of the roll rotation, and sometimes the vehicle&#039;s velocity along its preferred axis of motion.&lt;br /&gt;
&lt;br /&gt;
::The [[VEHICLE_BANKING_EFFICIENCY]] can vary between -1 and +1. When it is positive then any positive rotation (by the right-hand rule) about the roll-axis will effect a (negative) torque around the yaw-axis, making it turn to the right--that is the vehicle will lean into the turn, which is how real airplanes and motorcycle&#039;s work. Negating the banking coefficient will make it so that the vehicle leans to the outside of the turn (not very &amp;quot;physical&amp;quot; but might allow interesting vehicles so why not?).&lt;br /&gt;
&lt;br /&gt;
::The [[VEHICLE_BANKING_MIX]] is a fake (i.e. non-physical) parameter that is useful for making banking vehicles do what you want rather than what the laws of physics allow. For example, consider a real motorcycle...it must be moving forward in order for it to turn while banking, however video-game motorcycles are often configured to turn in place when at a dead stop--because they are often easier to control that way using the limited interface of the keyboard or game controller. The [[VEHICLE_BANKING_MIX]] enables combinations of both realistic and non-realistic banking by functioning as a slider between a banking that is correspondingly totally static (0.0) and totally dynamic (1.0). By &amp;quot;static&amp;quot; we mean that the banking effect depends only on the vehicle&#039;s rotation about its roll-axis compared to &amp;quot;dynamic&amp;quot; where the banking is also proportional to its velocity along its roll-axis. Finding the best value of the &amp;quot;mixture&amp;quot; will probably require trial and error.&lt;br /&gt;
&lt;br /&gt;
The time it takes for the banking behavior to defeat a preexisting angular velocity about the world z-axis is determined by the [[VEHICLE_BANKING_TIMESCALE]]. So if you want the vehicle to bank quickly then give it a banking timescale of about a second or less, otherwise you can make a sluggish vehicle by giving it a timescale of several seconds.&lt;br /&gt;
&lt;br /&gt;
==  Friction Timescales ==&lt;br /&gt;
&lt;br /&gt;
[[VEHICLE_LINEAR_FRICTION_TIMESCALE]] is a vector parameter that defines the timescales for the vehicle to come to a complete stop along the three local axes of the vehicle&#039;s reference frame. The timescale along each axis is independent of the others. For example, a sliding ground car would probably have very little friction along its x- and z-axes (so it can easily slide forward and fall down) while there would usually significant friction along its y-axis:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;1000, 3, 1000&amp;gt;);&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remember that a longer timescale corresponds to a weaker friction, hence to effectively disable all linear friction you would set all of the timescales to large values.&lt;br /&gt;
&lt;br /&gt;
Setting the linear friction as a scalar is allowed, and has the effect of setting all of the timescales to the same value. Both code snippets below are equivalent, and both make friction negligible:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// set all linear friction timescales to 1000&lt;br /&gt;
llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;1000, 1000, 1000&amp;gt;);&lt;br /&gt;
// same as above, but fewer characters&lt;br /&gt;
llSetVehicleFloatParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, 1000);&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[VEHICLE_ANGULAR_FRICTION_TIMESCALE]] is a vector parameter that defines the timescales for the vehicle to stop rotating about the x-, y-, and z-axes, and are set and disabled in the same way as the linear friction.&lt;br /&gt;
&lt;br /&gt;
==  Buoyancy ==&lt;br /&gt;
&lt;br /&gt;
The vehicle has a built-in buoyancy feature that is independent of the[[llSetBuoyancy]] call. It is recommended that the two buoyancies do not mix! To make a vehicle buoyant, set the [[VEHICLE_BUOYANCY]] parameter to something between 0.0 (no buoyancy whatsoever) to 1.0 (full anti-gravity).&lt;br /&gt;
&lt;br /&gt;
The buoyancy behavior is not independent of hover when the [[VEHICLE_FLAG_HOVER_UP_ONLY]] flag is used.  When buyancy, hover, and VEHICLE_FLAG_HOVER_UP_ONLY are used together the buoyancy effect vanishes when the vehicle is above its hover height.  That is, you would expect the vehicle to be buoyant above its hover height, however it is not.  This was not by design, but was a bug that has been around so long that it can no longer be changed -- it would break a great deal to content that unwittingly relies on this behavior.&lt;br /&gt;
&lt;br /&gt;
You may be able to mix vehicle buoyancy with the[[llSetBuoyancy]] script call, which is an independent feature. In some circumstances you may end up with a net buoyancy effect that is greater than unity, and you&#039;ll have an object that accelerates up without stopping.  Experiment at your own risk.&lt;br /&gt;
&lt;br /&gt;
==  Hover ==&lt;br /&gt;
&lt;br /&gt;
The hover behavior is enabled by setting the [[VEHICLE_HOVER_TIMESCALE]] to a value less than 300 seconds; larger timescales totally disable it. Most vehicles will work best with short hover timescales of a few seconds or less. The shorter the timescale, the faster the vehicle will slave to is target height. Note, that if the values of [[VEHICLE_LINEAR_FRICTION_TIMESCALE]] may affect the speed of the hover.&lt;br /&gt;
&lt;br /&gt;
Hover is independent of buoyancy, however the [[VEHICLE_BUOYANCY]] should be set to 1.0, otherwise the vehicle will not lift itself off of the ground until the [[VEHICLE_HOVER_HEIGHT]] is made large enough to counter the acceleration of gravity, and the vehicle will never float all the way to its target height.&lt;br /&gt;
&lt;br /&gt;
The [[VEHICLE_HOVER_EFFICIENCY]] can be thought of as a slider between bouncy (0.0) and smoothed (1.0).&lt;br /&gt;
&lt;br /&gt;
When in the bouncy range the vehicle will tend to hover a little lower than its target height and the [[VEHICLE_HOVER_TIMESCALE]] will be approximately the oscillation period of the bounce (the real period will tend to be a little longer than the timescale).&lt;br /&gt;
&lt;br /&gt;
For performance reasons, until improvements are made to the Second Life physics engine the vehicles can only hover over the terrain and water, so they will not be able to hover above objects made out of primitives, such as bridges and houses. By default the hover behavior will float over terrain and water, however this can be changed&lt;br /&gt;
by setting some flags:&lt;br /&gt;
&lt;br /&gt;
If you wanted to make a boat you should set the [[VEHICLE_HOVER_WATER_ONLY]] flag, or if you wanted to drive a hover tank under water you would use the [[VEHICLE_HOVER_TERRAIN_ONLY]] flag instead. Finally, if you wanted to make a submarine or a balloon you would use the [[VEHICLE_HOVER_GLOBAL_HEIGHT]].&lt;br /&gt;
&lt;br /&gt;
Note that the flags are independent of each other and that setting two contradictory flags will have undefined behavior (and that behavior should not be depended upon to stay constant!). The flags are set using the script call [[llSetVehicleFlags]]().&lt;br /&gt;
&lt;br /&gt;
The [[VEHICLE_HOVER_HEIGHT]] determines how high the vehicle will hover over the terrain and/or water, or the global height, and has a maximum value of 100 meters. Note that for hovering purposes the &amp;quot;center&amp;quot; of the vehicle is its &amp;quot;center of mass&amp;quot; which is not always obvious to the untrained eye, and it changes when avatars sit on the vehicle.&lt;br /&gt;
&lt;br /&gt;
==  Reference Frame ==&lt;br /&gt;
&lt;br /&gt;
The vehicle relies on the x- (at), y- (left), and z- (up) axes in order to figure out which way it prefers to move and which end is up. By default these axes are identical to the local axes of the root primitive of the object, however this means that the vehicle&#039;s root primitive must, by default, be oriented to agree with the designed at, left, and up axes of the vehicle. But, what if the vehicle object was already pre-built with the root primitive in some non-trivial orientation relative to where the vehicle as a whole should move? This is where the&lt;br /&gt;
&lt;br /&gt;
[[VEHICLE_REFERENCE_FRAME]] parameter becomes useful; the vehicle&#039;s axes can be arbitrarily reoriented by setting this parameter.&lt;br /&gt;
&lt;br /&gt;
As an example, suppose you had built a rocket out of a big cylinder, a cone for the nose, and some stretched cut boxes for the fins, then linked them all together with the cylinder as the root primitive. Ideally the rocket would move nose-first, however the cylinder&#039;s axis of symmetry is its local z-axis while the default &amp;quot;at-axis&amp;quot; of the vehicle, the axis it will want to deflect to forward under angular deflection, is the local x-axis and points out from the curved surface of the cylinder. The script code below will rotate the vehicle&#039;s axes such that the local z-axis becomes the &amp;quot;at-axis&amp;quot; and the local negative x-axis becomes the &amp;quot;up-axis&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// rotate the vehicle frame -PI/2 about the local y-axis (left-axis)&lt;br /&gt;
rotation rot =llEuler2Rot(&amp;lt;0, PI/2, 0&amp;gt;);&lt;br /&gt;
llSetVehicleRotationParam(VEHICLE_REFERENCE_FRAME, rot);&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another example of how the reference frame parameter could be used is to consider flying craft that uses the vertical attractor for stability during flying but wants to use VTOL (vertical takeoff and landing). During flight the craft&#039;s dorsal axis should point up, but during landing its nose-axis should be up. To land the vehicle: while the vertical attractor is in effect, rotate the existing [[VEHICLE_REFERENCE_FRAME]] by +PI/2 about the left-axis, then the vehicle will pitch up such that its nose points toward the sky. The vehicle could be allowed to fall to the landing pad under friction, or a decreasing hover effect.&lt;br /&gt;
&lt;br /&gt;
{{LSLC|Vehicle|Tutorial}} {{LSLC|Tutorials|Vehicle}}&lt;/div&gt;</summary>
		<author><name>Nishi Kuhn</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Group&amp;diff=209963</id>
		<title>Group</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Group&amp;diff=209963"/>
		<updated>2009-01-25T20:37:25Z</updated>

		<summary type="html">&lt;p&gt;Nishi Kuhn: grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Help |Community=*|Glossary=*}}&lt;br /&gt;
__NOEDITSECTION__&lt;br /&gt;
{{Help/Box|Note:|This article is missing some important information. Look at the [[{{TALKPAGENAME}}|talkpage]] in case you&#039;d like to help expanding this article.}}&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
==Definition==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
A &#039;&#039;&#039;group&#039;&#039;&#039; in Second Life is an organisation which consits of at least two [[Resident]]s.{{KB|4034|What are groups?}}&amp;lt;br&amp;gt;&lt;br /&gt;
Groups got a moderatable groupchat, at least two (and up to ten) [[#Roles|roles]] with different abilities and are able to own land and items. Members in special roles can send notices to all groupmembers and can create proposals where others are able to vote. Any Resident can be a member of up to 25 different groups.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
==About joining and leaving, creating and deleting, inviting and kicking==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
{{KBh3|Join a group|4035|How do I join a group?}}&lt;br /&gt;
You can distinguish two types of groups which are&lt;br /&gt;
#Open group (might have an enrollment fee)&lt;br /&gt;
#Closed group&lt;br /&gt;
You can easily join open groups by [[search#groups|searching them]]{{KB|4037|How do I find a group?}} and pressing the &#039;&#039;Join (L$&amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;X&amp;lt;/font&amp;gt;)&#039;&#039; button{{Footnote|1=&amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;X&amp;lt;/font&amp;gt; stands for the enrollment fee.|2=X stands for the enrollment fee.}} in the groups info tab. In case there is no &#039;&#039;Join (L$&amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;X&amp;lt;/font&amp;gt;)&#039;&#039; button at the info tab of the group you&#039;re looking for, the group is either a closed one and you can only join when you got an [[#Invite someone to your group|invitation]], or you are already a member of the group.&lt;br /&gt;
&lt;br /&gt;
{{KBh3|Leave a group|4038|How do I quit or leave a group?}}&lt;br /&gt;
To leave a group as follows: &lt;br /&gt;
#Select &#039;&#039;&#039;Edit&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;Groups&#039;&#039;&#039; from the menus at the top of the Second Life window.&lt;br /&gt;
#Click on the name of the group you wish to leave.&lt;br /&gt;
#Click &#039;&#039;&#039;Leave&#039;&#039;&#039;.&lt;br /&gt;
#Confirm that you&#039;d like to leave the group by clicking &#039;&#039;&#039;OK&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ADD ADDITIONAL NOTES ABOUT &amp;quot;IMPOTRANT THINGS&amp;quot; LIKE MENTIONED IN [http://secondlife.com/support/?questionID=4038 How do I quit or leave a group?]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{KBh3|Create a group|4036|How do I create my own group?}}&lt;br /&gt;
To create a group, you need L$100 and at least one other member. In case you&#039;re willing to spend the money, operate as follows: &lt;br /&gt;
* Select &#039;&#039;&#039;Edit&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;Groups...&#039;&#039;&#039; from the menu at the top of your Second Life viewer.&lt;br /&gt;
* Press the &#039;&#039;&#039;Create...&#039;&#039;&#039; button on the right side.&lt;br /&gt;
* Your group needs a unique Name. Enter it on top of your &#039;&#039;Group Information&#039;&#039; window. &lt;br /&gt;
* Press &#039;&#039;&#039;Apply&#039;&#039;&#039; when you&#039;re fine with the name (you still change all other settings later, &#039;&#039;except&#039;&#039; the name).&lt;br /&gt;
Ensure that another person joins within 48 hours, or your group will be disbanded.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Invite someone to your group&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:none;&amp;quot;&amp;gt;&amp;lt;h3&amp;gt;Invite someone to your group&amp;lt;/h3&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;font color=&amp;quot;black&amp;quot; size=&amp;quot;2&amp;quot;&amp;gt;&#039;&#039;&#039;Invite someone to your group&#039;&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
To invite someone to a group, you need to be in a role which got the needed ability. In case you got that, operate as follows:&lt;br /&gt;
* Open the &#039;&#039;Group Information&#039;&#039; window (&#039;&#039;&#039;Edit&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;Groups...&#039;&#039;&#039; &amp;gt; select your group &amp;gt; press &#039;&#039;&#039;Info&#039;&#039;&#039;)&lt;br /&gt;
* Select the &#039;&#039;&#039;Memebers &amp;amp; Roles&#039;&#039;&#039; tab and press the &#039;&#039;&#039;Invite New Person...&#039;&#039;&#039; button.&lt;br /&gt;
* Click the &#039;&#039;&#039;Open Person Chooser&#039;&#039;&#039; button from the new &#039;&#039;&#039;Group Invitation&#039;&#039;&#039; window.&lt;br /&gt;
* Type the name of the Resident you&#039;d like to invite, press &#039;&#039;&#039;Find&#039;&#039;&#039; and &#039;&#039;&#039;Select&#039;&#039;&#039;.&lt;br /&gt;
* Repeat the previous step until all Residents you&#039;d like to invite are listet in the &#039;&#039;&#039;Group Invitation&#039;&#039;&#039; window.&lt;br /&gt;
* Choose the role you&#039;d like to assign to them from the drop down menu on the buttom of the window.&lt;br /&gt;
* Press the &#039;&#039;&#039;Send Invitations&#039;&#039;&#039; button and you&#039;re done =)&lt;br /&gt;
&lt;br /&gt;
{{KBh3|Kick someone out of a group|4523|How do I kick someone out of a group?}}&lt;br /&gt;
To kick someone out of a group, you need to be in a role which got the needed ability. In case you got that, operate as follows:&lt;br /&gt;
* Open the &#039;&#039;Group Information&#039;&#039; window (&#039;&#039;&#039;Edit&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;Groups...&#039;&#039;&#039; &amp;gt; select your group &amp;gt; press &#039;&#039;&#039;Info&#039;&#039;&#039;)&lt;br /&gt;
* Select the &#039;&#039;&#039;Memebers &amp;amp; Roles&#039;&#039;&#039; tab.&lt;br /&gt;
* Select the name of the Resident you&#039;d like to kick out of the group in the memberlist.&lt;br /&gt;
* Press the &#039;&#039;&#039;Eject From Group&#039;&#039;&#039; button.&lt;br /&gt;
Note: You can select more than one Resident to remove from the group at once. Just hold the CTRL key pressed to select them. &lt;br /&gt;
&lt;br /&gt;
{{KBh3|Disband a group|4779|How do I disband or delete a group?}}&lt;br /&gt;
You can not directly delete a group, but in case you ensure that the membercount of the group remains smaller than 2 for a timeframe of 48 hours, the group will be disbanded. You can ensure that by ejecting all current members of the group and setting the group to a closed group (so no new members join). Once your group is disbanded, there is no way to get it back{{KB|4440|My group was disbanded; can I get it back?}} and the name can&#039;t be taken again.{{KB|4441|I started a group that was disbanded, so I tried to start another one with the same name, and I can&#039;t.}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
==Basics and Glossary==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
The Resident who created a group is called the &#039;&#039;&#039;Founder&#039;&#039;&#039; of the group and is automatically in the &#039;&#039;&#039;Owner&#039;&#039;&#039;{{KB|4358|Who is the owner of a group?}} role at the beginning. However, the Founder is also able to leave the Owner role.&lt;br /&gt;
&lt;br /&gt;
Every member in the group is member of the &#039;&#039;&#039;Everyone&#039;&#039;&#039; role. Owner and Everyone role are the only two roles which can&#039;t be renamed. Owners always have all available abilities in the group. &lt;br /&gt;
{{KBh3|Roles|4567|Group Roles}}&lt;br /&gt;
Owner{{KB|4358|Who is the owner of a group?}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
==Groups and Money==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5am&amp;quot;&amp;gt;&lt;br /&gt;
Groups do not have an account of their own, instead all group liabilities (such as land tier) and assets (such as money paid to a group-deeded object) are distributed among all members who have the ability &amp;quot;Pay group liabilities and receive group dividends&amp;quot;. This ability can be found under &amp;quot;Accounting&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Beware, objects which are deeded to group will pay the whole group, not the original owner, if they receive money.&lt;br /&gt;
&lt;br /&gt;
(Note that if the group is given money that is less than $N, where N is the number of people who will receive money, the group temporarily has an account until it gets that much money.)&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
==Groups and Land==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
Related Links:&lt;br /&gt;
*[[Deeding land to groups]]&lt;br /&gt;
*[[Groups and Land]]&lt;br /&gt;
*[http://secondlife.com/support/?questionID=4041 Second Life groups can unify their projects and vision through group-owned land. ]&lt;br /&gt;
*[http://secondlife.com/support/?questionID=4291 How do I reclaim land that is deeded to a group?]&lt;br /&gt;
*[http://secondlife.com/support/?questionID=4524 Why was my group disbanded?]&lt;br /&gt;
*[http://secondlife.com/support/?questionID=4043 How do I manage objects on group-owned land?]&lt;br /&gt;
*[http://secondlife.com/support/?questionID=4042 How do I change or remove group land contributions?]&lt;br /&gt;
*[http://secondlife.com/support/?questionID=4596 How are group dividends calculated?]&lt;br /&gt;
*[http://secondlife.com/support/?questionID=4062 How do I deed land to a group?]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;{{anchorh2|Video Tutorials}}&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|{{anchorh3|How to create and join a group}}&amp;lt;div style=&amp;quot;padding-left: 2px; border: 1px #aaaaaa solid; margin-top: 16px;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;background: #f4f8fb;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font color=&amp;quot;546368&amp;quot; size=&amp;quot;3&amp;quot;&amp;gt;Video: How to create and join a group&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;padding-top: 10px; border-top: 1px #aaaaaa dotted; spacing: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|width=&amp;quot;300&amp;quot; align=&amp;quot;center&amp;quot;|&amp;lt;videoflash&amp;gt;1E0Y2xLd3gk|250|206&amp;lt;/videoflash&amp;gt;&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|This tutorial is about :&lt;br /&gt;
* How to create a group&lt;br /&gt;
* How to create a group title&lt;br /&gt;
* How to invite people in your group&lt;br /&gt;
* How to join a group&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|[[Video_Tutorial/How_to_create_and_join_a_group|Watch the video in normal size]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://vidtuts.s3.amazonaws.com/SLTotW-09-How-to-create-and-join-a-group.mp4 Download in HighQuality]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://blog.secondlife.com/2007/11/01/tip-of-the-week-9-how-to-create-and-join-a-group/ Read the related blog entry]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;|{{anchorh3|Creating &amp;amp; joining a group}}&amp;lt;div style=&amp;quot;padding-left: 2px; border: 1px #aaaaaa solid; margin-top: 16px;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;background: #f4f8fb;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;546368&amp;quot; size=&amp;quot;3&amp;quot;&amp;gt;&#039;&#039;&#039;Video: Creating &amp;amp; joining a group&#039;&#039;&#039;&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;padding-top: 10px; border-top: 1px #aaaaaa dotted; spacing: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|width=&amp;quot;300&amp;quot; align=&amp;quot;center&amp;quot;|&amp;lt;videoflash&amp;gt;bqn7imck6Gs|250|206&amp;lt;/videoflash&amp;gt;&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|This tutorial is about :&lt;br /&gt;
*How to create a group&lt;br /&gt;
*How to invite people in your group&lt;br /&gt;
*How to search for groups&lt;br /&gt;
*How to join a group&lt;br /&gt;
*How to leave a group&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|[[Video Tutorial/Creating &amp;amp; joining a group|Watch the video in normal size]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://vidtuts.s3.amazonaws.com/Basics-Creating-&amp;amp;-joining-a-group.mp4  Download in HighQuality]&amp;lt;br&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{{anchorh3|Changing your group title}}&amp;lt;div style=&amp;quot;padding-left: 2px; border: 1px #aaaaaa solid; margin-top: 16px;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;background: #f4f8fb;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;546368&amp;quot; size=&amp;quot;3&amp;quot;&amp;gt;&#039;&#039;&#039;Video: Changing your group title&#039;&#039;&#039;&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;padding-top: 10px; border-top: 1px #aaaaaa dotted; spacing: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|width=&amp;quot;300&amp;quot; align=&amp;quot;center&amp;quot;|&amp;lt;videoflash&amp;gt;27XluDDSCyw|250|206&amp;lt;/videoflash&amp;gt;&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|This tutorial is about :&lt;br /&gt;
*text&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|[[Video_Tutorial/Changing_your_group_title|Watch the video in normal size]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://vidtuts.s3.amazonaws.com/QUICKTIP-Changing-your-group-title.mp4 Download in HighQuality]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://blog.secondlife.com/2008/03/13/11-new-quicktip-video-tutorials-for-you/ Read the related blog entry]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;|{{anchorh3|Hiding groups you belong to}}&amp;lt;div style=&amp;quot;padding-left: 2px; border: 1px #aaaaaa solid; margin-top: 16px;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;background: #f4f8fb;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;546368&amp;quot; size=&amp;quot;3&amp;quot;&amp;gt;&#039;&#039;&#039;Video: Hiding groups you belong to&#039;&#039;&#039;&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;padding-top: 10px; border-top: 1px #aaaaaa dotted; spacing: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|width=&amp;quot;300&amp;quot; align=&amp;quot;center&amp;quot;|&amp;lt;videoflash&amp;gt;Jdv7mGyYREU|250|206&amp;lt;/videoflash&amp;gt;&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|This tutorial is about :&lt;br /&gt;
*text&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|[[Video Tutorial/Hiding groups you belong to|Watch the video in normal size]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://vidtuts.s3.amazonaws.com/QUICKTIP-Hiding-groups-you-belong-to.mp4  Download in HighQuality]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://blog.secondlife.com/2008/04/07/14-new-video-tutorial-quicktips-for-your-easier-second-life/ Read the related blog entry]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{{anchorh3|Setting objects to group}}&amp;lt;div style=&amp;quot;padding-left: 2px; border: 1px #aaaaaa solid; margin-top: 16px;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;background: #f4f8fb;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;546368&amp;quot; size=&amp;quot;3&amp;quot;&amp;gt;&#039;&#039;&#039;Video: Setting objects to group&#039;&#039;&#039;&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;padding-top: 10px; border-top: 1px #aaaaaa dotted; spacing: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|width=&amp;quot;300&amp;quot; align=&amp;quot;center&amp;quot;|&amp;lt;videoflash&amp;gt;rscJ6-snrsw|250|206&amp;lt;/videoflash&amp;gt;&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|This tutorial is about :&lt;br /&gt;
*text&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|[[Video_Tutorial/Setting_objects_to_group|Watch the video in normal size]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://vidtuts.s3.amazonaws.com/QUICKTIP-Setting-objects-to-group.mp4 Download in HighQuality]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://blog.secondlife.com/2008/03/13/11-new-quicktip-video-tutorials-for-you/ Read the related blog entry]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;|{{anchorh3|Let friends &amp;amp; groups edit your objects}}&amp;lt;div style=&amp;quot;padding-left: 2px; border: 1px #aaaaaa solid; margin-top: 16px;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;background: #f4f8fb;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;546368&amp;quot; size=&amp;quot;3&amp;quot;&amp;gt;&#039;&#039;&#039;Video: Let friends &amp;amp; groups edit your objects&#039;&#039;&#039;&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;padding-top: 10px; border-top: 1px #aaaaaa dotted; spacing: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|width=&amp;quot;300&amp;quot; align=&amp;quot;center&amp;quot;|&amp;lt;videoflash&amp;gt;UgJPUQQbQSg|250|206&amp;lt;/videoflash&amp;gt;&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|This tutorial is about :&lt;br /&gt;
*text&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|[[Video Tutorial/Let friends &amp;amp; groups edit your objects|Watch the video in Full Size]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://vidtuts.s3.amazonaws.com/Let-friends-&amp;amp;-groups-edit-your-objects.mp4  Download in HighQuality]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://blog.secondlife.com/2008/05/31/let-friends-groups-edit-your-objects-video-tip-of-the-week-36/ Read the related blog entry]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{{anchorh3|Find Friends &amp;amp; Groups faster}}&amp;lt;div style=&amp;quot;padding-left: 2px; border: 1px #aaaaaa solid; margin-top: 16px;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;background: #f4f8fb;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;546368&amp;quot; size=&amp;quot;3&amp;quot;&amp;gt;&#039;&#039;&#039;Video: Find Friends &amp;amp; Groups faster&#039;&#039;&#039;&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;padding-top: 10px; border-top: 1px #aaaaaa dotted; spacing: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|width=&amp;quot;300&amp;quot; align=&amp;quot;center&amp;quot;|&amp;lt;videoflash&amp;gt;8yCS5RgkfOE|250|206&amp;lt;/videoflash&amp;gt;&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|This tutorial is about:&lt;br /&gt;
*text&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|[[Video Tutorial/Find Friends &amp;amp; Groups faster|Watch the video in normal size]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://vidtuts.s3.amazonaws.com/QUICKTIP-Find-Friends-&amp;amp;-Groups-faster.mp4 Download in HighQuality]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://blog.secondlife.com/2008/05/28/16-new-quick-tips-to-enlighten-your-second-life/ Read the related blog entry]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;|{{anchorh3|What is a group liability?}}&amp;lt;div style=&amp;quot;padding-left: 2px; border: 1px #aaaaaa solid; margin-top: 16px;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;background: #f4f8fb;&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;546368&amp;quot; size=&amp;quot;3&amp;quot;&amp;gt;&#039;&#039;&#039;Video: What is a group liability?&#039;&#039;&#039;&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;padding-top: 10px; border-top: 1px #aaaaaa dotted; spacing: 2px;&amp;quot;&amp;gt;&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|width=&amp;quot;300&amp;quot; align=&amp;quot;center&amp;quot;|&amp;lt;videoflash&amp;gt;9Qq4l-ld-PA|250|206&amp;lt;/videoflash&amp;gt;&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;|This tutorial is about:&lt;br /&gt;
*text&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|[[Video Tutorial/What is a group liability?|Watch the video in Full Size]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://vidtuts.s3.amazonaws.com/What-is-a-group-liability.mp4  Download in HighQuality]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://blog.secondlife.com/2008/06/14/what-is-a-group-liability-video-tip-of-the-week-38/ Read the related blog entry]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
==Footnotes==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
{{footnotes}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nishi Kuhn</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Nishi_Kuhn&amp;diff=88826</id>
		<title>User:Nishi Kuhn</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Nishi_Kuhn&amp;diff=88826"/>
		<updated>2008-08-29T18:39:48Z</updated>

		<summary type="html">&lt;p&gt;Nishi Kuhn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{visl&lt;br /&gt;
|Greeters=&lt;br /&gt;
|Mentors=*&lt;br /&gt;
|Helpers=&lt;br /&gt;
|Instructors=&lt;br /&gt;
|Scribe=*&lt;br /&gt;
|Linguist=&lt;br /&gt;
|Buddy=&lt;br /&gt;
|ApprenticeBuddy=&lt;br /&gt;
|Coach=&lt;br /&gt;
|OrientationCoach=&lt;br /&gt;
|}}&lt;/div&gt;</summary>
		<author><name>Nishi Kuhn</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Nishi_Kuhn&amp;diff=88824</id>
		<title>User:Nishi Kuhn</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Nishi_Kuhn&amp;diff=88824"/>
		<updated>2008-08-29T18:37:48Z</updated>

		<summary type="html">&lt;p&gt;Nishi Kuhn: New page: {{visl |Greeters= |Mentors=* |Helpers= |Instructors= |Scribe= |Linguist= |Buddy= |ApprenticeBuddy= |Coach= |OrientationCoach= |}}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{visl&lt;br /&gt;
|Greeters=&lt;br /&gt;
|Mentors=*&lt;br /&gt;
|Helpers=&lt;br /&gt;
|Instructors=&lt;br /&gt;
|Scribe=&lt;br /&gt;
|Linguist=&lt;br /&gt;
|Buddy=&lt;br /&gt;
|ApprenticeBuddy=&lt;br /&gt;
|Coach=&lt;br /&gt;
|OrientationCoach=&lt;br /&gt;
|}}&lt;/div&gt;</summary>
		<author><name>Nishi Kuhn</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Home&amp;diff=87046</id>
		<title>Home</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Home&amp;diff=87046"/>
		<updated>2008-08-20T12:48:47Z</updated>

		<summary type="html">&lt;p&gt;Nishi Kuhn: Expand, add links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Help |Glossary=*}}&#039;&#039;&#039;Home&#039;&#039;&#039; is the location that you teleport to when you choose the menu item &amp;quot;Teleport Home&amp;quot;, press Ctl-H, or when you &amp;quot;die.&amp;quot; You can set this location with the menu command &amp;quot;World-&amp;gt;Set Home to Here&amp;quot;. &#039;&#039;&#039;Home&#039;&#039;&#039; may be set to [[land]] that you own, land that a [[group]] you are a member of [[Groups and Land|owns]], or [[Linden Land]] that allows anyone to set their home there (such as TG [[Welcome Areas]] or [[InfoHub]]s).&lt;/div&gt;</summary>
		<author><name>Nishi Kuhn</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Home&amp;diff=87044</id>
		<title>Home</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Home&amp;diff=87044"/>
		<updated>2008-08-20T12:41:12Z</updated>

		<summary type="html">&lt;p&gt;Nishi Kuhn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Help |Glossary=*}}The location that you teleport to when you choose the menu item &amp;quot;Teleport Home&amp;quot;, press Ctl-H, or when you &amp;quot;die.&amp;quot; You can set this location with the menu command &amp;quot;World-&amp;gt;Set Home to Here&amp;quot;. Home may be set to land that you own, land that a group you are a member of owns, or Linden Land that allows anyone to set their home there (such as TG Welcome Areas or InfoHubs).&lt;/div&gt;</summary>
		<author><name>Nishi Kuhn</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Project_talk:Bug_reports&amp;diff=68431</id>
		<title>Project talk:Bug reports</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Project_talk:Bug_reports&amp;diff=68431"/>
		<updated>2008-05-22T14:29:45Z</updated>

		<summary type="html">&lt;p&gt;Nishi Kuhn: New page: I get the error message &amp;quot;argument 1 for Skin::getHeadScripts(), called in /shared/mediawiki_prod/wiki.secondlife.com/w/skins/Standard.php on line 24 and defined in /shared/mediawiki_prod/w...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I get the error message &amp;quot;argument 1 for Skin::getHeadScripts(), called in /shared/mediawiki_prod/wiki.secondlife.com/w/skins/Standard.php on line 24 and defined in /shared/mediawiki_prod/wiki.secondlife.com/w/includes/Skin.php on line 349&amp;quot; on every WIKI page.&lt;/div&gt;</summary>
		<author><name>Nishi Kuhn</name></author>
	</entry>
</feed>