<?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=Hyper+Mole</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=Hyper+Mole"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Hyper_Mole"/>
	<updated>2026-06-19T01:39:26Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Environment_Sounds&amp;diff=1170619</id>
		<title>Environment Sounds</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Environment_Sounds&amp;diff=1170619"/>
		<updated>2012-07-16T03:11:48Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Environmental Sounds==&lt;br /&gt;
&lt;br /&gt;
There&#039;s a handful of ways to generate sound without an avatar in Second Life.&lt;br /&gt;
* [[Sound_Clips|Sound clips]]&lt;br /&gt;
* a parcel&#039;s music stream&lt;br /&gt;
* a web page displayed on a prim&lt;br /&gt;
&lt;br /&gt;
You can change all of them via scripting. The latter two can be set up without using scripts.&lt;br /&gt;
&lt;br /&gt;
=== Soundtrack ===&lt;br /&gt;
&lt;br /&gt;
If your build has a soundtrack or theme music that you want heard clearly across the parcel, consider using [[Streaming_Music|streaming music]]. It can be set in the About Land window. The [[LlSetParcelMusicURL|llSetParcelMusicURL()]] call lets you change it via script.&lt;br /&gt;
&lt;br /&gt;
You can play a series of sound clips in order, but there&#039;s no guarantee that the &amp;quot;song&amp;quot; will be heard as seamless.&lt;br /&gt;
&lt;br /&gt;
=== Looping ===&lt;br /&gt;
&lt;br /&gt;
Looping a sound clip can add ambiance. Consider it for nighttime bugs by a lake, a crowd murmuring, or the hum of electric signs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llLoopSound( llGetInventoryName( INVENTORY_SOUND, 0 ), 0.5 );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Shift-drag will allow you to create multiple copies of an object that will have their looping sounds synched together.&lt;br /&gt;
&lt;br /&gt;
=== Synchronized ===&lt;br /&gt;
&lt;br /&gt;
Do you want your ocean wave sounds to all synch up? Does your surreal build have a slow steady heartbeat?&lt;br /&gt;
&lt;br /&gt;
Try this [[Script:Synch_Sound|synchronized sound script]].&lt;br /&gt;
&lt;br /&gt;
=== Random ===&lt;br /&gt;
&lt;br /&gt;
Short ambient sounds played randomly can make a space feel more alive. &lt;br /&gt;
&lt;br /&gt;
Some good choices for this would be frogs, underbrush rustles and snaps, a distant car horn or squealing brakes.&lt;br /&gt;
&lt;br /&gt;
Try this [[Script:Random_Sounds|random sounds script]].&lt;br /&gt;
&lt;br /&gt;
=== Day/Night ===&lt;br /&gt;
&lt;br /&gt;
Some sounds are best played during certain times of day. Consider birdsong, or bats and owls. If your build is taking advantage of a region&#039;s natural day/night cycle, you can alter your ambient sound selection by the time of day your region shows.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
integer IsSunUp()&lt;br /&gt;
{&lt;br /&gt;
    vector sunPosition = llGetSunDirection();&lt;br /&gt;
    return ( sunPosition.z &amp;gt; 0 );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
integer IsTwilight()&lt;br /&gt;
{&lt;br /&gt;
    vector sunPosition = llGetSunDirection();&lt;br /&gt;
    if ( sunPosition.z &amp;gt; 0.0 &amp;amp;&amp;amp; sunPosition.z &amp;lt; 0.15 )&lt;br /&gt;
        return TRUE;&lt;br /&gt;
    return FALSE;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Try this [[Script:Day_Random_Sounds|daytime random sounds script]].&lt;br /&gt;
&lt;br /&gt;
=== Wind activated ===&lt;br /&gt;
&lt;br /&gt;
Do your bushes rustle more or louder when the wind blows? What about wind chimes?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
float GetWindStrength()&lt;br /&gt;
{&lt;br /&gt;
    return llVecMag(llWind(ZERO_VECTOR));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Try this [[Script:Wind_Powered_Random_Sounds|wind powered sounds script]].&lt;br /&gt;
&lt;br /&gt;
=== Loud ===&lt;br /&gt;
&lt;br /&gt;
Using llTriggerSound multiple times in a row can make a sound seem much louder than calling it once. This can be useful for tower bells and explosions. Be careful using this; too many times can cause an unpleasant echo-like effect.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
integer n;&lt;br /&gt;
for (n = 0; n &amp;lt; 5; ++n)&lt;br /&gt;
{&lt;br /&gt;
    llTriggerSound(soundname, 1.0);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Scripting comments ===&lt;br /&gt;
&lt;br /&gt;
==== Sound clips ====&lt;br /&gt;
*[[LlTriggerSound|llTriggerSound()]]&lt;br /&gt;
** Unattached - sounds occur where they&#039;re triggered.&lt;br /&gt;
** Cannot be stopped with [[LlStopSound|llStopSound()]].&lt;br /&gt;
*[[LlPlaySound|llPlaySound()]]&lt;br /&gt;
** Attached - sounds follow the object they are in if it moves.&lt;br /&gt;
** Only one at a time per prim. Playing another will stop the current sound.&lt;br /&gt;
*[[LlLoopSound|llLoopSound()]]&lt;br /&gt;
** Attached - sounds follow the object they are in if it moves.&lt;br /&gt;
** This continuously loops the sound.&lt;br /&gt;
** Only one at a time per prim. Playing another will stop the current sound.&lt;br /&gt;
----&lt;br /&gt;
Return to [[Good_Building_Practices]]&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Physics_Optimization&amp;diff=1169768</id>
		<title>Physics Optimization</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Physics_Optimization&amp;diff=1169768"/>
		<updated>2012-06-25T13:59:41Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Physics Optimization:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
(See handy script at bottom of page)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: Setting prims to Phantom does not stop them from being calculated by the physics engine!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*The less the [[Physics_engine|physics engine]] has to calculate, the smoother your [[Region#Region|region]] will perform. Creating clean [http://en.wikipedia.org/wiki/Low_poly low poly] physics shapes for your complicated meshes is helpful, but you can also remove prim, mesh, and sculpted objects from the physics calculations completely.&lt;br /&gt;
&lt;br /&gt;
*Physics Optimization also helps with [[Pathfinding_in_Second_Life|Pathfinding]]. Pathfinding objects will only have to calculate to go around simple objects instead of complex builds, making everything work smoother and faster without sacrificing looks.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Physics_trees.jpg|Two trees set to Prim&lt;br /&gt;
File:Physics_shapes.jpg|Physical shape of trees&lt;br /&gt;
File:Physics_in_navmesh.jpg|Results in the navmesh&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*The way to Physics Optimize is to link your complicated builds to a simple shape like a cube or cylinder. The simple shape should be the [[Link#Root_Prim|root prim]] and then set all [[Link#Child_Prim|child prims]] to [[PRIM_PHYSICS_SHAPE_NONE]] (in Edit &amp;gt; Features &amp;gt; Physics Shape Type)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manual Instructions:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Build your object as you normally would&lt;br /&gt;
&lt;br /&gt;
2. Create a simple shape, such as a cube or cylinder&lt;br /&gt;
&lt;br /&gt;
3. Right click on your object, hold down shift and select the simple shape last&lt;br /&gt;
&lt;br /&gt;
4. Press control and L to link it all (the simple shape should now be the root prim highlighted in yellow)&lt;br /&gt;
&lt;br /&gt;
5. Tick edit linked parts&lt;br /&gt;
&lt;br /&gt;
6. Hold down shift and de-select the root prim (the simple shape)&lt;br /&gt;
&lt;br /&gt;
7. Under the edit menu, in the features tab, select physics shape type, and from the drop down menu select, physics type &#039;&#039;&#039;none&#039;&#039;&#039;. This will set all the child prims to none.&lt;br /&gt;
&lt;br /&gt;
8. Select the root prim (the simple shape) and make it transparent. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Using the script below:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Or to make it even simpler just follow the above instructions 1 to 4 and then use the handy script attached below. Just drop it in the root prim (The new simple shape you just linked your build to)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; Cubes, spheres, and circular cylinders are the cheapest shapes to use. Up to 14 cubes equates to the same value as one cut hollowed cube. Other shapes, such as pyramids, with no cuts, twists, hollows, or holes, or any shape set to [[PRIM_PHYSICS_SHAPE_TYPE|PRIM_PHYSICS_SHAPE_CONVEX_HULL]] for a potentially more accurate (albeit more expensive) r for its physics shape type are more expensive. Any shape that contains holes, cuts, twists, or hollows (such as a torus) fall into the most expensive category.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here we linked a tree to a cube and set all child prims to physics shape type None (in Edit &amp;gt; Features &amp;gt; Physics Shape Type):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Physics_no_physics.jpg|No physics on trees&lt;br /&gt;
File:Physics_set_to_none.jpg|Navmesh sees only cube set to Prim&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Collision:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
When you are physics optimizing you need to plan where you want the [[Physics_engine#Collision_Geometry|collision]] to be, because all the individual shapes set to physics none will act as though they are phantom. In this example we are using a tree. The actual original tree will be set to physics none and act as though it is phantom so an avatar will be able to walk through it. The root prim, which in this case is a cylinder, will be the only solid part of the whole linked set. By putting the root prim/simple shape around the tree trunk, you simulate a solid and avatars will collide with it.&lt;br /&gt;
&lt;br /&gt;
Here we used a cylinder, but we could have also used a stretched cube to achieve a similar effect.&lt;br /&gt;
&lt;br /&gt;
For more complicated builds you can set certain parts to [[PRIM_PHYSICS_SHAPE_TYPE|PRIM_PHYSICS_SHAPE_PRIM]] and others to [[PRIM_PHYSICS_SHAPE_TYPE|PRIM_PHYSICS_SHAPE_NONE]]. The parts set to prim will act solid, and the parts set to physics shape type none will act as phantom. Alternatively, all prims could be set to [[PRIM_PHYSICS_SHAPE_TYPE|PRIM_PHYSICS_SHAPE_CONVEX_HULL]] for a potentially more accurate (albeit more expensive) result. This still produces a physics shape significantly simpler than the default. However, this second option will have no effect on sculpts. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Physics_add_physics.jpg|Adding physics&lt;br /&gt;
File:Physics_007.jpg|As seen by physics engine&lt;br /&gt;
File:Physics_added_physics_in_navmesh.jpg|As seen by the navmesh&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;More Examples:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Here is another example scenario.  This is a sculpted prim fence.  The physics shape is not as clean as it could be, and the edges don&#039;t cover all edges of the fence itself.  To fix it, I created a cube physics shape, linked the fence to the cube with the cube as the root prim, and set the fence to None.  As you can see, the resulting physics shape is lower in polygons and better covers the fence area.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Sculpty_optimization_001.jpg|Sculpted fence physics shape&lt;br /&gt;
File:Sculpty_optimization_002.jpg|Adding cube physics shape&lt;br /&gt;
File:Sculpty_optimization_003.jpg|Final Static Object physics shape&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*This is a tree comprised of many sculpted pieces.  Keep in mind that the physics engine needs to calculate every part of the physics shape in the second picture.  Here I created a cylinder for the physics shape to fit on the bottom of the tree trunk.  By linking the cylinder to the tree, and setting the tree to physics shape None, I have a much cleaner static object.  &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Sculpty_optimization_004_001.jpg|Sculpted Tree&lt;br /&gt;
File:Sculpty_optimization_004_002.jpg|Un-optimized sculpted tree physics shape&lt;br /&gt;
File:Sculpty_optimization_004_003.jpg|Adding simplified physics to tree, setting to root&lt;br /&gt;
File:Sculpty_optimization_004_004.jpg|Final tree physics set to static obstacle&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*These gates are nice clean and simple except for the hippo on the top.  We can remove the hippo from the physics engine calculations.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Sculptedlamp_2_003.png|Hippo gates&lt;br /&gt;
File:Sculptedlamp_2_004.png|Hippo physics&lt;br /&gt;
File:Sculptedlamp_2_005.png|Hippo set to NONE (yes, it&#039;s really still there!)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*This entrance has a lot of complicated geometry in one linkset.  We only need simple physics here for avatars and pathfinding characters to collide with.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Aquarium_physics_001.png|Complicated geometry&lt;br /&gt;
File:Aquarium_physics_002.png|Physics reduced to the minimum necessary&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Streetlamp optimization:&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Streetlamp_physics_001.png|Complicated geometry&lt;br /&gt;
File:Streetlamp_physics_002.png|Simplified&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use the following script to set all child prims to None.  Be sure to check what physics are needed for your linkset prior to using, and/or add a simple cube as the root prim.&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llShout(0, &amp;quot;Setting all child prims to PRIM_PHYSICS_SHAPE_NONE&amp;quot;);&lt;br /&gt;
        llSetLinkPrimitiveParamsFast(LINK_ALL_CHILDREN, [PRIM_PHYSICS_SHAPE_TYPE, PRIM_PHYSICS_SHAPE_NONE]);&lt;br /&gt;
        llRemoveInventory(llGetScriptName());&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For more detailed information, have a look at this [http://community.secondlife.com/t5/English-Knowledge-Base/Best-practices-for-creating-efficient-collision-volumes/ta-p/984115 Havok Technical Artist Optimization Guide], a direct excerpt from Havok&#039;s documentation. (Havok is the physics and AI engine provider used by Second Life for its physics and pathfinding simulations.) This guide provides details on the best way to optimize your collision shapes and is used by leading artists throughout the games industry.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Back to [[Good_Building_Practices]]&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=File:Streetlamp_physics_002.png&amp;diff=1169767</id>
		<title>File:Streetlamp physics 002.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=File:Streetlamp_physics_002.png&amp;diff=1169767"/>
		<updated>2012-06-25T13:59:15Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=File:Streetlamp_physics_001.png&amp;diff=1169766</id>
		<title>File:Streetlamp physics 001.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=File:Streetlamp_physics_001.png&amp;diff=1169766"/>
		<updated>2012-06-25T13:58:45Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:Physics_Optimization&amp;diff=1169765</id>
		<title>Talk:Physics Optimization</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:Physics_Optimization&amp;diff=1169765"/>
		<updated>2012-06-25T13:44:46Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Spammy Example? ===&lt;br /&gt;
In the example&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llShout(0, &amp;quot;Setting all child prims to PRIM_PHYSICS_SHAPE_NONE&amp;quot;);&lt;br /&gt;
        llSetLinkPrimitiveParamsFast(LINK_ALL_CHILDREN, [PRIM_PHYSICS_SHAPE_TYPE, PRIM_PHYSICS_SHAPE_NONE]);&lt;br /&gt;
        llRemoveInventory(llGetScriptName());&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
why use llShout and not llOwnerSay?  &lt;br /&gt;
I can&#039;t see why every avatar in 100 metres needs to know the child prims are being set to PRIM_PHYSICS_SHAPE_NONE.&lt;br /&gt;
[[User:Innula Zenovka|Innula Zenovka]] 11:35, 6 June 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Not sure, so I changed it.  :)  [[User:Hyper Mole|Hyper Mole]] 18:31, 21 June 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
Script doesn&#039;t compile correctly with llOwnerSay. [[User:Hyper Mole|Hyper Mole]] 06:44, 25 June 2012 (PDT)&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:Physics_Optimization&amp;diff=1169764</id>
		<title>Talk:Physics Optimization</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:Physics_Optimization&amp;diff=1169764"/>
		<updated>2012-06-25T13:44:35Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Spammy Example? ===&lt;br /&gt;
In the example&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llShout(0, &amp;quot;Setting all child prims to PRIM_PHYSICS_SHAPE_NONE&amp;quot;);&lt;br /&gt;
        llSetLinkPrimitiveParamsFast(LINK_ALL_CHILDREN, [PRIM_PHYSICS_SHAPE_TYPE, PRIM_PHYSICS_SHAPE_NONE]);&lt;br /&gt;
        llRemoveInventory(llGetScriptName());&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
why use llShout and not llOwnerSay?  &lt;br /&gt;
I can&#039;t see why every avatar in 100 metres needs to know the child prims are being set to PRIM_PHYSICS_SHAPE_NONE.&lt;br /&gt;
[[User:Innula Zenovka|Innula Zenovka]] 11:35, 6 June 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Not sure, so I changed it.  :)  [[User:Hyper Mole|Hyper Mole]] 18:31, 21 June 2012 (PDT)&lt;br /&gt;
Script doesn&#039;t compile correctly with llOwnerSay. [[User:Hyper Mole|Hyper Mole]] 06:44, 25 June 2012 (PDT)&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Physics_Optimization&amp;diff=1169763</id>
		<title>Physics Optimization</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Physics_Optimization&amp;diff=1169763"/>
		<updated>2012-06-25T13:43:57Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Physics Optimization:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
(See handy script at bottom of page)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: Setting prims to Phantom does not stop them from being calculated by the physics engine!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*The less the [[Physics_engine|physics engine]] has to calculate, the smoother your [[Region#Region|region]] will perform. Creating clean [http://en.wikipedia.org/wiki/Low_poly low poly] physics shapes for your complicated meshes is helpful, but you can also remove prim, mesh, and sculpted objects from the physics calculations completely.&lt;br /&gt;
&lt;br /&gt;
*Physics Optimization also helps with [[Pathfinding_in_Second_Life|Pathfinding]]. Pathfinding objects will only have to calculate to go around simple objects instead of complex builds, making everything work smoother and faster without sacrificing looks.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Physics_trees.jpg|Two trees set to Prim&lt;br /&gt;
File:Physics_shapes.jpg|Physical shape of trees&lt;br /&gt;
File:Physics_in_navmesh.jpg|Results in the navmesh&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*The way to Physics Optimize is to link your complicated builds to a simple shape like a cube or cylinder. The simple shape should be the [[Link#Root_Prim|root prim]] and then set all [[Link#Child_Prim|child prims]] to [[PRIM_PHYSICS_SHAPE_NONE]] (in Edit &amp;gt; Features &amp;gt; Physics Shape Type)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manual Instructions:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Build your object as you normally would&lt;br /&gt;
&lt;br /&gt;
2. Create a simple shape, such as a cube or cylinder&lt;br /&gt;
&lt;br /&gt;
3. Right click on your object, hold down shift and select the simple shape last&lt;br /&gt;
&lt;br /&gt;
4. Press control and L to link it all (the simple shape should now be the root prim highlighted in yellow)&lt;br /&gt;
&lt;br /&gt;
5. Tick edit linked parts&lt;br /&gt;
&lt;br /&gt;
6. Hold down shift and de-select the root prim (the simple shape)&lt;br /&gt;
&lt;br /&gt;
7. Under the edit menu, in the features tab, select physics shape type, and from the drop down menu select, physics type &#039;&#039;&#039;none&#039;&#039;&#039;. This will set all the child prims to none.&lt;br /&gt;
&lt;br /&gt;
8. Select the root prim (the simple shape) and make it transparent. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Using the script below:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Or to make it even simpler just follow the above instructions 1 to 4 and then use the handy script attached below. Just drop it in the root prim (The new simple shape you just linked your build to)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; Cubes, spheres, and circular cylinders are the cheapest shapes to use. Up to 14 cubes equates to the same value as one cut hollowed cube. Other shapes, such as pyramids, with no cuts, twists, hollows, or holes, or any shape set to [[PRIM_PHYSICS_SHAPE_TYPE|PRIM_PHYSICS_SHAPE_CONVEX_HULL]] for a potentially more accurate (albeit more expensive) r for its physics shape type are more expensive. Any shape that contains holes, cuts, twists, or hollows (such as a torus) fall into the most expensive category.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here we linked a tree to a cube and set all child prims to physics shape type None (in Edit &amp;gt; Features &amp;gt; Physics Shape Type):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Physics_no_physics.jpg|No physics on trees&lt;br /&gt;
File:Physics_set_to_none.jpg|Navmesh sees only cube set to Prim&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Collision:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
When you are physics optimizing you need to plan where you want the [[Physics_engine#Collision_Geometry|collision]] to be, because all the individual shapes set to physics none will act as though they are phantom. In this example we are using a tree. The actual original tree will be set to physics none and act as though it is phantom so an avatar will be able to walk through it. The root prim, which in this case is a cylinder, will be the only solid part of the whole linked set. By putting the root prim/simple shape around the tree trunk, you simulate a solid and avatars will collide with it.&lt;br /&gt;
&lt;br /&gt;
Here we used a cylinder, but we could have also used a stretched cube to achieve a similar effect.&lt;br /&gt;
&lt;br /&gt;
For more complicated builds you can set certain parts to [[PRIM_PHYSICS_SHAPE_TYPE|PRIM_PHYSICS_SHAPE_PRIM]] and others to [[PRIM_PHYSICS_SHAPE_TYPE|PRIM_PHYSICS_SHAPE_NONE]]. The parts set to prim will act solid, and the parts set to physics shape type none will act as phantom. Alternatively, all prims could be set to [[PRIM_PHYSICS_SHAPE_TYPE|PRIM_PHYSICS_SHAPE_CONVEX_HULL]] for a potentially more accurate (albeit more expensive) result. This still produces a physics shape significantly simpler than the default. However, this second option will have no effect on sculpts. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Physics_add_physics.jpg|Adding physics&lt;br /&gt;
File:Physics_007.jpg|As seen by physics engine&lt;br /&gt;
File:Physics_added_physics_in_navmesh.jpg|As seen by the navmesh&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;More Examples:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Here is another example scenario.  This is a sculpted prim fence.  The physics shape is not as clean as it could be, and the edges don&#039;t cover all edges of the fence itself.  To fix it, I created a cube physics shape, linked the fence to the cube with the cube as the root prim, and set the fence to None.  As you can see, the resulting physics shape is lower in polygons and better covers the fence area.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Sculpty_optimization_001.jpg|Sculpted fence physics shape&lt;br /&gt;
File:Sculpty_optimization_002.jpg|Adding cube physics shape&lt;br /&gt;
File:Sculpty_optimization_003.jpg|Final Static Object physics shape&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*This is a tree comprised of many sculpted pieces.  Keep in mind that the physics engine needs to calculate every part of the physics shape in the second picture.  Here I created a cylinder for the physics shape to fit on the bottom of the tree trunk.  By linking the cylinder to the tree, and setting the tree to physics shape None, I have a much cleaner static object.  &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Sculpty_optimization_004_001.jpg|Sculpted Tree&lt;br /&gt;
File:Sculpty_optimization_004_002.jpg|Un-optimized sculpted tree physics shape&lt;br /&gt;
File:Sculpty_optimization_004_003.jpg|Adding simplified physics to tree, setting to root&lt;br /&gt;
File:Sculpty_optimization_004_004.jpg|Final tree physics set to static obstacle&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*These gates are nice clean and simple except for the hippo on the top.  We can remove the hippo from the physics engine calculations.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Sculptedlamp_2_003.png|Hippo gates&lt;br /&gt;
File:Sculptedlamp_2_004.png|Hippo physics&lt;br /&gt;
File:Sculptedlamp_2_005.png|Hippo set to NONE (yes, it&#039;s really still there!)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*This entrance has a lot of complicated geometry in one linkset.  We only need simple physics here for avatars and pathfinding characters to collide with.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Aquarium_physics_001.png|Complicated geometry&lt;br /&gt;
File:Aquarium_physics_002.png|Physics reduced to the minimum necessary&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use the following script to set all child prims to None.  Be sure to check what physics are needed for your linkset prior to using, and/or add a simple cube as the root prim.&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llShout(0, &amp;quot;Setting all child prims to PRIM_PHYSICS_SHAPE_NONE&amp;quot;);&lt;br /&gt;
        llSetLinkPrimitiveParamsFast(LINK_ALL_CHILDREN, [PRIM_PHYSICS_SHAPE_TYPE, PRIM_PHYSICS_SHAPE_NONE]);&lt;br /&gt;
        llRemoveInventory(llGetScriptName());&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For more detailed information, have a look at this [http://community.secondlife.com/t5/English-Knowledge-Base/Best-practices-for-creating-efficient-collision-volumes/ta-p/984115 Havok Technical Artist Optimization Guide], a direct excerpt from Havok&#039;s documentation. (Havok is the physics and AI engine provider used by Second Life for its physics and pathfinding simulations.) This guide provides details on the best way to optimize your collision shapes and is used by leading artists throughout the games industry.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Back to [[Good_Building_Practices]]&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Physics_Optimization&amp;diff=1169762</id>
		<title>Physics Optimization</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Physics_Optimization&amp;diff=1169762"/>
		<updated>2012-06-25T13:20:15Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Physics Optimization:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
(See handy script at bottom of page)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: Setting prims to Phantom does not stop them from being calculated by the physics engine!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*The less the [[Physics_engine|physics engine]] has to calculate, the smoother your [[Region#Region|region]] will perform. Creating clean [http://en.wikipedia.org/wiki/Low_poly low poly] physics shapes for your complicated meshes is helpful, but you can also remove prim, mesh, and sculpted objects from the physics calculations completely.&lt;br /&gt;
&lt;br /&gt;
*Physics Optimization also helps with [[Pathfinding_in_Second_Life|Pathfinding]]. Pathfinding objects will only have to calculate to go around simple objects instead of complex builds, making everything work smoother and faster without sacrificing looks.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Physics_trees.jpg|Two trees set to Prim&lt;br /&gt;
File:Physics_shapes.jpg|Physical shape of trees&lt;br /&gt;
File:Physics_in_navmesh.jpg|Results in the navmesh&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*The way to Physics Optimize is to link your complicated builds to a simple shape like a cube or cylinder. The simple shape should be the [[Link#Root_Prim|root prim]] and then set all [[Link#Child_Prim|child prims]] to [[PRIM_PHYSICS_SHAPE_NONE]] (in Edit &amp;gt; Features &amp;gt; Physics Shape Type)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manual Instructions:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Build your object as you normally would&lt;br /&gt;
&lt;br /&gt;
2. Create a simple shape, such as a cube or cylinder&lt;br /&gt;
&lt;br /&gt;
3. Right click on your object, hold down shift and select the simple shape last&lt;br /&gt;
&lt;br /&gt;
4. Press control and L to link it all (the simple shape should now be the root prim highlighted in yellow)&lt;br /&gt;
&lt;br /&gt;
5. Tick edit linked parts&lt;br /&gt;
&lt;br /&gt;
6. Hold down shift and de-select the root prim (the simple shape)&lt;br /&gt;
&lt;br /&gt;
7. Under the edit menu, in the features tab, select physics shape type, and from the drop down menu select, physics type &#039;&#039;&#039;none&#039;&#039;&#039;. This will set all the child prims to none.&lt;br /&gt;
&lt;br /&gt;
8. Select the root prim (the simple shape) and make it transparent. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Using the script below:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Or to make it even simpler just follow the above instructions 1 to 4 and then use the handy script attached below. Just drop it in the root prim (The new simple shape you just linked your build to)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; Cubes, spheres, and circular cylinders are the cheapest shapes to use. Up to 14 cubes equates to the same value as one cut hollowed cube. Other shapes, such as pyramids, with no cuts, twists, hollows, or holes, or any shape set to [[PRIM_PHYSICS_SHAPE_TYPE|PRIM_PHYSICS_SHAPE_CONVEX_HULL]] for a potentially more accurate (albeit more expensive) r for its physics shape type are more expensive. Any shape that contains holes, cuts, twists, or hollows (such as a torus) fall into the most expensive category.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here we linked a tree to a cube and set all child prims to physics shape type None (in Edit &amp;gt; Features &amp;gt; Physics Shape Type):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Physics_no_physics.jpg|No physics on trees&lt;br /&gt;
File:Physics_set_to_none.jpg|Navmesh sees only cube set to Prim&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Collision:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
When you are physics optimizing you need to plan where you want the [[Physics_engine#Collision_Geometry|collision]] to be, because all the individual shapes set to physics none will act as though they are phantom. In this example we are using a tree. The actual original tree will be set to physics none and act as though it is phantom so an avatar will be able to walk through it. The root prim, which in this case is a cylinder, will be the only solid part of the whole linked set. By putting the root prim/simple shape around the tree trunk, you simulate a solid and avatars will collide with it.&lt;br /&gt;
&lt;br /&gt;
Here we used a cylinder, but we could have also used a stretched cube to achieve a similar effect.&lt;br /&gt;
&lt;br /&gt;
For more complicated builds you can set certain parts to [[PRIM_PHYSICS_SHAPE_TYPE|PRIM_PHYSICS_SHAPE_PRIM]] and others to [[PRIM_PHYSICS_SHAPE_TYPE|PRIM_PHYSICS_SHAPE_NONE]]. The parts set to prim will act solid, and the parts set to physics shape type none will act as phantom. Alternatively, all prims could be set to [[PRIM_PHYSICS_SHAPE_TYPE|PRIM_PHYSICS_SHAPE_CONVEX_HULL]] for a potentially more accurate (albeit more expensive) result. This still produces a physics shape significantly simpler than the default. However, this second option will have no effect on sculpts. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Physics_add_physics.jpg|Adding physics&lt;br /&gt;
File:Physics_007.jpg|As seen by physics engine&lt;br /&gt;
File:Physics_added_physics_in_navmesh.jpg|As seen by the navmesh&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;More Examples:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Here is another example scenario.  This is a sculpted prim fence.  The physics shape is not as clean as it could be, and the edges don&#039;t cover all edges of the fence itself.  To fix it, I created a cube physics shape, linked the fence to the cube with the cube as the root prim, and set the fence to None.  As you can see, the resulting physics shape is lower in polygons and better covers the fence area.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Sculpty_optimization_001.jpg|Sculpted fence physics shape&lt;br /&gt;
File:Sculpty_optimization_002.jpg|Adding cube physics shape&lt;br /&gt;
File:Sculpty_optimization_003.jpg|Final Static Object physics shape&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*This is a tree comprised of many sculpted pieces.  Keep in mind that the physics engine needs to calculate every part of the physics shape in the second picture.  Here I created a cylinder for the physics shape to fit on the bottom of the tree trunk.  By linking the cylinder to the tree, and setting the tree to physics shape None, I have a much cleaner static object.  &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Sculpty_optimization_004_001.jpg|Sculpted Tree&lt;br /&gt;
File:Sculpty_optimization_004_002.jpg|Un-optimized sculpted tree physics shape&lt;br /&gt;
File:Sculpty_optimization_004_003.jpg|Adding simplified physics to tree, setting to root&lt;br /&gt;
File:Sculpty_optimization_004_004.jpg|Final tree physics set to static obstacle&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*These gates are nice clean and simple except for the hippo on the top.  We can remove the hippo from the physics engine calculations.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Sculptedlamp_2_003.png|Hippo gates&lt;br /&gt;
File:Sculptedlamp_2_004.png|Hippo physics&lt;br /&gt;
File:Sculptedlamp_2_005.png|Hippo set to NONE (yes, it&#039;s really still there!)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*This entrance has a lot of complicated geometry in one linkset.  We only need simple physics here for avatars and pathfinding characters to collide with.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Aquarium_physics_001.png|Complicated geometry&lt;br /&gt;
File:Aquarium_physics_002.png|Physics reduced to the minimum necessary&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use the following script to set all child prims to None.  Be sure to check what physics are needed for your linkset prior to using, and/or add a simple cube as the root prim.&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(0, &amp;quot;Setting all child prims to PRIM_PHYSICS_SHAPE_NONE&amp;quot;);&lt;br /&gt;
        llSetLinkPrimitiveParamsFast(LINK_ALL_CHILDREN, [PRIM_PHYSICS_SHAPE_TYPE, PRIM_PHYSICS_SHAPE_NONE]);&lt;br /&gt;
        llRemoveInventory(llGetScriptName());&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For more detailed information, have a look at this [http://community.secondlife.com/t5/English-Knowledge-Base/Best-practices-for-creating-efficient-collision-volumes/ta-p/984115 Havok Technical Artist Optimization Guide], a direct excerpt from Havok&#039;s documentation. (Havok is the physics and AI engine provider used by Second Life for its physics and pathfinding simulations.) This guide provides details on the best way to optimize your collision shapes and is used by leading artists throughout the games industry.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Back to [[Good_Building_Practices]]&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=File:Aquarium_physics_002.png&amp;diff=1169761</id>
		<title>File:Aquarium physics 002.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=File:Aquarium_physics_002.png&amp;diff=1169761"/>
		<updated>2012-06-25T13:18:36Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=File:Aquarium_physics_001.png&amp;diff=1169760</id>
		<title>File:Aquarium physics 001.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=File:Aquarium_physics_001.png&amp;diff=1169760"/>
		<updated>2012-06-25T13:18:01Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Material_Volumes&amp;diff=1169748</id>
		<title>Material Volumes</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Material_Volumes&amp;diff=1169748"/>
		<updated>2012-06-24T16:51:35Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About Material Volumes==&lt;br /&gt;
*The Material Volume [[Pathfinding_Tools_in_the_Second_Life_Viewer#Example_use_3|attribute]] for [[Pathfinding]] creates phantom objects that can be set to change the walkability coefficients of an area of the navmesh. Walkability coefficients are multipliers that may be applied to the speed of a pathfinding character.&lt;br /&gt;
*Pathfinding characters will choose the fastest and closest path available to them. (add video of PF cube choosing 100% walkability path around a MV)&lt;br /&gt;
*Material Volumes are visible in the [[Pathfinding_NavMesh|navigation mesh view]] as opaque purple objects.&lt;br /&gt;
&lt;br /&gt;
[[File:Material_volume_001.png|none|300x225px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Return to [[Good_Building_Practices]]&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Visual_Guide_to_Pathfinding&amp;diff=1169747</id>
		<title>Visual Guide to Pathfinding</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Visual_Guide_to_Pathfinding&amp;diff=1169747"/>
		<updated>2012-06-24T16:51:04Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Setup Pathfinding==&lt;br /&gt;
&lt;br /&gt;
* A new [[Pathfinding]] region has three types of objects.  The terrain is set to [[Pathfinding_Tools_in_the_Second_Life_Viewer#Example_use_3|Walkable]] (by default and cannot be changed), existing objects are set to [[Pathfinding_Tools_in_the_Second_Life_Viewer#Example_use_3|Movable Obstacle]], and existing phantom objects are set to Movable Phantom.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;Begin by naming every object in your region! It&#039;s difficult to know what to set objects to if they are all named &amp;quot;Object&amp;quot;.&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Movable Obstacle and Movable Phantom objects will not show up in your [[Pathfinding_NavMesh|navigation mesh]] view, so your initial view of your region will be the smooth green mesh of the terrain.  Be sure to check the Walkable box in the Pathfinding Debug window (formerly the Edit/Test window).&lt;br /&gt;
* Begin by making obstacles Static in the Linksets window.  Many of these will be obvious, such as trees, fences, and walls. &lt;br /&gt;
* Another obvious set of objects are your Walkables like floors, roads, and docks.&lt;br /&gt;
* Objects that need to move yet need to be solid should be left as Movable Obstacles.  An example would be scripted doors.&lt;br /&gt;
* Objects that don&#039;t need to be obstacles at all, should be set to Movable Phantom. &lt;br /&gt;
* Objects that avatars can navigate but Pathfinding characters cannot should be set to Exclusion Volume.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Pathfinding_002.png|Initial Pathfinding view&lt;br /&gt;
File:Pathfinding_003.png|Adding Static Obstacles and Walkables&lt;br /&gt;
File:Pathfinding_004.png|Adding more of each type&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Many linksets will need to be changed to work properly with Pathfinding.  For instance, if your building is all one object or linkset and you wish to make the floor Walkable, you will need to unlink the floor so you can set the building to Static Obstacle and the floor to Walkable. Alternatively, you can place an exclusion volume around the walls/roof. Just be sure it doesn&#039;t include any areas that should be walkable!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Pathfinding_2_003.png|Floor linked to building, set to Static Obstacle&lt;br /&gt;
File:Pathfinding_2_002.png|Floor and building not linked, floor set to Walkable, building set to Static Obstacle&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* This linkset needs the railings set to Static Obstacle, and the stairs themselves set to Walkable.  Originally it was all one linkset and set to Static Obstacle.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Pathfinding_2_004.png|Stair and railing linkset, set to Static Obstacle&lt;br /&gt;
File:Pathfinding_2_005.png|Stairs and railing unlinked, stairs set to Walkable&lt;br /&gt;
File:Pathfinding_2_006.png|Walkable ramp added for better navigation of pathfinding characters&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If you have a lot of trees, shrubs and other greenery, it&#039;s best to give it one simple physics shape for pathfinding characters to navigate around.  Not to mention it lowers the load on the physics engine.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Sculptedlamp_005.png|Thick undergrowth for a pathway area&lt;br /&gt;
File:Sculptedlamp_006.png|As seen by the navmesh and physics engine&lt;br /&gt;
File:Sculptedlamp_007.png|Adding simple physics&lt;br /&gt;
File:Sculptedlamp_2_002.png|Final linkset as seen by the physics engine&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Exclusion Volumes are handy for areas where you need avatar interaction but where pathfinding characters will likely get stuck.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Sculptedlamp_2_006.png|Excluded rock area&lt;br /&gt;
File:Sculptedlamp_2_007.png|Excluded rock area&lt;br /&gt;
File:Exclusion_use_001.png|Exclusion Volumes used to keep characters on the dock, yet avatars can fall off&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Optimize for Pathfinding==&lt;br /&gt;
* Sculpted prims can easily be optimized for Pathfinding.  Because sculpted prims have a messy physics shape, pathfinding characters will have difficulty navigating around or under them.  Create the simplest [[Physics_Optimization|physics shape]] necessary for these objects.&lt;br /&gt;
* Note that setting the sculpted prim to phantom and creating a separate physics shape will work, but the sculpted object will still be seen by the physics engine.  The method below is more efficient.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Pathfinding_3_002.png|Sculpted bench with bad physics shape&lt;br /&gt;
File:Pathfinding_3_003.png|Prim added for clean physics, bench set to Physics type NONE&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Return to [[Good_Building_Practices]]&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Pathfinding_Overview&amp;diff=1169746</id>
		<title>Pathfinding Overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Pathfinding_Overview&amp;diff=1169746"/>
		<updated>2012-06-24T16:50:04Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pathfinding]] is a method content creators can use to create moving and interactive characters within Second Life.  Characters can use LSL functions to avoid obstacles, move around corners, climb inclines, and move across region boundaries: things that are very difficult or even impossible before. Pathfinding will also enable new gameplay mechanics, such as creating food that attracts monsters.&lt;br /&gt;
&lt;br /&gt;
==Terminology==&lt;br /&gt;
*Character - an object that uses a Pathfinding LSL function.&lt;br /&gt;
*NavMesh - Short for Navigation Mesh. It&#039;s a map for characters.&lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
*Evade - Run (and or hide) from a specified avatar or object.&lt;br /&gt;
*Flee - Move a specified distance from a specified location. &lt;br /&gt;
*Hop&lt;br /&gt;
*Navigate - Move to a specified location.&lt;br /&gt;
*Patrol - Move along a specified path specified by patrol points.&lt;br /&gt;
*Pursue - Follow specified avatar or object.&lt;br /&gt;
*Wander - Randomly wander a specified distance from a specified central point.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Return to [[Good_Building_Practices]]&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Good_Building_Practices&amp;diff=1169745</id>
		<title>Good Building Practices</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Good_Building_Practices&amp;diff=1169745"/>
		<updated>2012-06-24T16:49:26Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: /* Pathfinding */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Welcome to Good Building Practices ==&lt;br /&gt;
This page is all about how to be creative and efficient at the same time!&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Animation ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Animation Streamlined]]&#039;&#039;&#039; - Let&#039;s make Second Life move, without dragging it to a crawl!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&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;
&lt;br /&gt;
== Mesh ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Making Mesh Physics]]&#039;&#039;&#039; - Why and How.&lt;br /&gt;
* &#039;&#039;&#039;[[Making Mesh for Pathfinding]]&#039;&#039;&#039; - Pathfinding friendly mesh.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&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;
&lt;br /&gt;
== Pathfinding ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;[[Pathfinding_Overview]]&#039;&#039;&#039; - Pathfinding explained.&lt;br /&gt;
*&#039;&#039;&#039;[[Pathfinding_Tools_in_the_Second_Life_Viewer]]&#039;&#039;&#039; - The Pathfinding tools.&lt;br /&gt;
*&#039;&#039;&#039;[[Pathfinding_Quick_Start_Guide]]&#039;&#039;&#039; - The best way to get up and running with Pathfinding.&lt;br /&gt;
*&#039;&#039;&#039;[[Visual_Guide_to_Pathfinding|A Visual Guide]]&#039;&#039;&#039; - Watch how easy it is!&lt;br /&gt;
*&#039;&#039;&#039;[[Walkability_Coefficients]]&#039;&#039;&#039; - Control the speed of your Walkable areas.&lt;br /&gt;
*&#039;&#039;&#039;[[Material_Volumes]]&#039;&#039;&#039; - Control the speed of your characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Physics ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Physics Optimization]]&#039;&#039;&#039; - Not everything needs physics, learn how to add the least load necessary to the physics engine.&lt;br /&gt;
* &#039;&#039;&#039;[[PRIM_PHYSICS_SHAPE_NONE]]&#039;&#039;&#039; - Additional information on this important attribute.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;|&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scripting ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Debugging Tips]]&#039;&#039;&#039; - how to work out what your code is doing without a conventional development toolkit&lt;br /&gt;
* &#039;&#039;&#039;[[Scripting for Pathfinding]]&#039;&#039;&#039; - Pathfinding scripting help.&lt;br /&gt;
** &#039;&#039;&#039;[[Modular Pathfinding Kit]]&#039;&#039;&#039; - code snippets designed to be plugged together to quickly build unique behaviours.&lt;br /&gt;
** &#039;&#039;&#039;[[Holistic Pathfinding Management]]&#039;&#039;&#039; - Strategies for managing large numbers of pathfinding objects.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&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;
&lt;br /&gt;
== Sculpted Prims ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;[[Sculpted Prim Usage]]&#039;&#039;&#039; - What you need to know about how sculpted prims effect Second Life.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&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;
&lt;br /&gt;
== Textures ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Texture Usage]]&#039;&#039;&#039; - What size to use, and what to avoid.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Good_Building_Practices&amp;diff=1169744</id>
		<title>Good Building Practices</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Good_Building_Practices&amp;diff=1169744"/>
		<updated>2012-06-24T16:49:14Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: /* Pathfinding */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Welcome to Good Building Practices ==&lt;br /&gt;
This page is all about how to be creative and efficient at the same time!&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Animation ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Animation Streamlined]]&#039;&#039;&#039; - Let&#039;s make Second Life move, without dragging it to a crawl!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&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;
&lt;br /&gt;
== Mesh ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Making Mesh Physics]]&#039;&#039;&#039; - Why and How.&lt;br /&gt;
* &#039;&#039;&#039;[[Making Mesh for Pathfinding]]&#039;&#039;&#039; - Pathfinding friendly mesh.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&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;
&lt;br /&gt;
== Pathfinding ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;[[Pathfinding_Overview]]&#039;&#039;&#039; - Pathfinding explained.&lt;br /&gt;
*&#039;&#039;&#039;[[Pathfinding_Tools_in_the_Second_Life_Viewer]] - The Pathfinding tools.&lt;br /&gt;
*&#039;&#039;&#039;[[Pathfinding_Quick_Start_Guide]]&#039;&#039;&#039; - The best way to get up and running with Pathfinding.&lt;br /&gt;
*&#039;&#039;&#039;[[Visual_Guide_to_Pathfinding|A Visual Guide]]&#039;&#039;&#039; - Watch how easy it is!&lt;br /&gt;
*&#039;&#039;&#039;[[Walkability_Coefficients]]&#039;&#039;&#039; - Control the speed of your Walkable areas.&lt;br /&gt;
*&#039;&#039;&#039;[[Material_Volumes]]&#039;&#039;&#039; - Control the speed of your characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Physics ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Physics Optimization]]&#039;&#039;&#039; - Not everything needs physics, learn how to add the least load necessary to the physics engine.&lt;br /&gt;
* &#039;&#039;&#039;[[PRIM_PHYSICS_SHAPE_NONE]]&#039;&#039;&#039; - Additional information on this important attribute.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;|&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scripting ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Debugging Tips]]&#039;&#039;&#039; - how to work out what your code is doing without a conventional development toolkit&lt;br /&gt;
* &#039;&#039;&#039;[[Scripting for Pathfinding]]&#039;&#039;&#039; - Pathfinding scripting help.&lt;br /&gt;
** &#039;&#039;&#039;[[Modular Pathfinding Kit]]&#039;&#039;&#039; - code snippets designed to be plugged together to quickly build unique behaviours.&lt;br /&gt;
** &#039;&#039;&#039;[[Holistic Pathfinding Management]]&#039;&#039;&#039; - Strategies for managing large numbers of pathfinding objects.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&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;
&lt;br /&gt;
== Sculpted Prims ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;[[Sculpted Prim Usage]]&#039;&#039;&#039; - What you need to know about how sculpted prims effect Second Life.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&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;
&lt;br /&gt;
== Textures ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Texture Usage]]&#039;&#039;&#039; - What size to use, and what to avoid.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Debugging_Tips&amp;diff=1169741</id>
		<title>Debugging Tips</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Debugging_Tips&amp;diff=1169741"/>
		<updated>2012-06-24T14:17:22Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;One of the hardest things with scripting anything non trivial in LSL, especially if you come from an software development environment where you&#039;re used to combined editor and debugger, is the seeming inability to debug LSL code.&lt;br /&gt;
&lt;br /&gt;
==Simple Example==&lt;br /&gt;
&lt;br /&gt;
The solution is to define a simple debugging utility function as follows.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
notify(string msg)&lt;br /&gt;
{&lt;br /&gt;
	llOwnerSay(msg);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then whenever we need to check the value of a variable simple call&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
notify(&amp;quot;your debug message here&amp;quot;);&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
don&#039;t forget to typecast as necessary, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
integer a = 3;&lt;br /&gt;
integer b = 4;&lt;br /&gt;
integer result = a * b;&lt;br /&gt;
notify((string)result);&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This allows us to reuse the same function for reporting anything to the owner of the object, rather than using public chat. The advantage to doing this is we can comment out a single line in the code function as follows to disable all debugging, or we can search and replace and instance of &amp;quot;notify&amp;quot; with &amp;quot;//notify&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
notify(string msg)&lt;br /&gt;
{&lt;br /&gt;
	//llOwnerSay(msg);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
if you&#039;re working with list use something along the lines of:&lt;br /&gt;
&lt;br /&gt;
notify(llList2String(listName, integerIndex)); // notification contains one list element&lt;br /&gt;
	or&lt;br /&gt;
notify(llDumpList2String(listName, &amp;quot;,&amp;quot;)); notification contains entire list as a string&lt;br /&gt;
&lt;br /&gt;
==Error Reporting and Debugging==&lt;br /&gt;
We can use the same concept for tracking issues after the code is complete as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
notify(string genus, string msg)&lt;br /&gt;
{&lt;br /&gt;
	key creator = &amp;quot;a822ff2b-ff02-461d-b45d-dcd10a2de0c2&amp;quot;;&lt;br /&gt;
	//genus = &amp;quot;off&amp;quot; //uncoment this line to turn notifications off&lt;br /&gt;
	if (genus == &amp;quot;dbg&amp;quot;)&lt;br /&gt;
	{&lt;br /&gt;
		llInstantMessage(creator, &amp;quot;DEBUG: &amp;quot; + msg); //coment out this line to turn off debugging&lt;br /&gt;
	}&lt;br /&gt;
	else if (genus == &amp;quot;err&amp;quot;)&lt;br /&gt;
	{&lt;br /&gt;
		llOwnerSay(&amp;quot;ERROR: &amp;quot; + msg);&lt;br /&gt;
		llInstantMessage(creator, &amp;quot;ERROR: &amp;quot; + msg + &amp;quot; in object &amp;quot; + llGetObjectName() + &amp;quot; that belongs to &amp;quot; + llKey2Name(llGetOwner()) + &amp;quot; in region &amp;quot; + llGetRegionName());&lt;br /&gt;
	}&lt;br /&gt;
	else if (genus == &amp;quot;info&amp;quot;)&lt;br /&gt;
	{&lt;br /&gt;
		llOwnerSay(msg); //no prepend because it&#039;s a normal message&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		//do nothing, notifications were turned off&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We&#039;re doing a number of things here: handling different kids of messages, informational for normal running, error reporting to the owner and creator and debug messages. To turn off debug simply comment out the debug line as shown in the code, and uncomment the genus=&amp;quot;off&amp;quot; line to disable all notifications.&lt;br /&gt;
&lt;br /&gt;
We&#039;re using llOwner for the current owner and llInstantMessage for contacting the script creator that will continue to work after ownership has passed - you just have insert your own key at the top.&lt;br /&gt;
&lt;br /&gt;
Other mechanisms that could be used include llEmail or llHTTPRequest to post a message to an external logging system perhaps.&lt;br /&gt;
&lt;br /&gt;
You define your own custome message types and communicate using the most appropriate method.&lt;br /&gt;
&lt;br /&gt;
==More Reuse==&lt;br /&gt;
We can extend the reuse even further by making this a discreet script on it&#039;s own within the object as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
notify(string genus, string msg)&lt;br /&gt;
{&lt;br /&gt;
	key creator = &amp;quot;a822ff2b-ff02-461d-b45d-dcd10a2de0c2&amp;quot;;&lt;br /&gt;
	//genus = &amp;quot;off&amp;quot; //uncoment this line to turn notifications off&lt;br /&gt;
	if (genus == &amp;quot;dbg&amp;quot;)&lt;br /&gt;
	{&lt;br /&gt;
		llInstantMessage(creator, &amp;quot;DEBUG: &amp;quot; + msg); //coment out this line to turn off debugging&lt;br /&gt;
	}&lt;br /&gt;
	else if (genus == &amp;quot;err&amp;quot;)&lt;br /&gt;
	{&lt;br /&gt;
		llOwnerSay(&amp;quot;ERROR: &amp;quot; + msg);&lt;br /&gt;
		llInstantMessage(creator, &amp;quot;ERROR: &amp;quot; + msg + &amp;quot; in object &amp;quot; + llGetObjectName() + &amp;quot; that belongs to &amp;quot; + llKey2Name(llGetOwner()) + &amp;quot; in region &amp;quot; + llGetRegionName());&lt;br /&gt;
	}&lt;br /&gt;
	else if (genus == &amp;quot;info&amp;quot;)&lt;br /&gt;
	{&lt;br /&gt;
		llOwnerSay(msg);  //no prepend because it&#039;s a normal message&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		//do nothing, notifications were turned off&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
	state_entry() &lt;br /&gt;
	{&lt;br /&gt;
		notify(&amp;quot;info&amp;quot;, &amp;quot;notification system ready&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
    link_message(integer source, integer num, string str, key id)&lt;br /&gt;
    {&lt;br /&gt;
        notify(str, key); //we&#039;re using the key as a second string parameter&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To send a notification you simply use in your implementation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_start(integer c)&lt;br /&gt;
    {&lt;br /&gt;
    	string msg = llKey2Name(llDetectedKey(0)) + &amp;quot; attempted to steal Mjölnir!&amp;quot;;&lt;br /&gt;
        llMessageLinked(LINK_SET, 0, &amp;quot;info&amp;quot;, msg);&lt;br /&gt;
        //this may seem odd but it&#039;s valid to use the key paramter of llMessageLinked as a second string passing facility if not actually used for a key&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Return to [[Good_Building_Practices]]&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:Physics_Optimization&amp;diff=1169620</id>
		<title>Talk:Physics Optimization</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:Physics_Optimization&amp;diff=1169620"/>
		<updated>2012-06-22T01:31:47Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Spammy Example? ===&lt;br /&gt;
In the example&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llShout(0, &amp;quot;Setting all child prims to PRIM_PHYSICS_SHAPE_NONE&amp;quot;);&lt;br /&gt;
        llSetLinkPrimitiveParamsFast(LINK_ALL_CHILDREN, [PRIM_PHYSICS_SHAPE_TYPE, PRIM_PHYSICS_SHAPE_NONE]);&lt;br /&gt;
        llRemoveInventory(llGetScriptName());&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
why use llShout and not llOwnerSay?  &lt;br /&gt;
I can&#039;t see why every avatar in 100 metres needs to know the child prims are being set to PRIM_PHYSICS_SHAPE_NONE.&lt;br /&gt;
[[User:Innula Zenovka|Innula Zenovka]] 11:35, 6 June 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Not sure, so I changed it.  :)  [[User:Hyper Mole|Hyper Mole]] 18:31, 21 June 2012 (PDT)&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Physics_Optimization&amp;diff=1169619</id>
		<title>Physics Optimization</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Physics_Optimization&amp;diff=1169619"/>
		<updated>2012-06-22T01:30:17Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Physics Optimization:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
(See handy script at bottom of page)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: Setting prims to Phantom does not stop them from being calculated by the physics engine!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*The less the [[Physics_engine|physics engine]] has to calculate, the smoother your [[Region#Region|region]] will perform. Creating clean [http://en.wikipedia.org/wiki/Low_poly low poly] physics shapes for your complicated meshes is helpful, but you can also remove prim, mesh, and sculpted objects from the physics calculations completely.&lt;br /&gt;
&lt;br /&gt;
*Physics Optimization also helps with [[Pathfinding_in_Second_Life|Pathfinding]]. Pathfinding objects will only have to calculate to go around simple objects instead of complex builds, making everything work smoother and faster without sacrificing looks.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Physics_trees.jpg|Two trees set to Prim&lt;br /&gt;
File:Physics_shapes.jpg|Physical shape of trees&lt;br /&gt;
File:Physics_in_navmesh.jpg|Results in the navmesh&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*The way to Physics Optimize is to link your complicated builds to a simple shape like a cube or cylinder. The simple shape should be the [[Link#Root_Prim|root prim]] and then set all [[Link#Child_Prim|child prims]] to [[PRIM_PHYSICS_SHAPE_NONE]] (in Edit &amp;gt; Features &amp;gt; Physics Shape Type)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manual Instructions:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Build your object as you normally would&lt;br /&gt;
&lt;br /&gt;
2. Create a simple shape, such as a cube or cylinder&lt;br /&gt;
&lt;br /&gt;
3. Right click on your object, hold down shift and select the simple shape last&lt;br /&gt;
&lt;br /&gt;
4. Press control and L to link it all (the simple shape should now be the root prim highlighted in yellow)&lt;br /&gt;
&lt;br /&gt;
5. Tick edit linked parts&lt;br /&gt;
&lt;br /&gt;
6. Hold down shift and de-select the root prim (the simple shape)&lt;br /&gt;
&lt;br /&gt;
7. Under the edit menu, in the features tab, select physics shape type, and from the drop down menu select, physics type &#039;&#039;&#039;none&#039;&#039;&#039;. This will set all the child prims to none.&lt;br /&gt;
&lt;br /&gt;
8. Select the root prim (the simple shape) and make it transparent. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Using the script below:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Or to make it even simpler just follow the above instructions 1 to 4 and then use the handy script attached below. Just drop it in the root prim (The new simple shape you just linked your build to)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; Cubes, spheres, and circular cylinders are the cheapest shapes to use. Up to 14 cubes equates to the same value as one cut hollowed cube. Other shapes, such as pyramids, with no cuts, twists, hollows, or holes, or any shape set to [[PRIM_PHYSICS_SHAPE_TYPE|PRIM_PHYSICS_SHAPE_CONVEX_HULL]] for a potentially more accurate (albeit more expensive) r for its physics shape type are more expensive. Any shape that contains holes, cuts, twists, or hollows (such as a torus) fall into the most expensive category.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here we linked a tree to a cube and set all child prims to physics shape type None (in Edit &amp;gt; Features &amp;gt; Physics Shape Type):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Physics_no_physics.jpg|No physics on trees&lt;br /&gt;
File:Physics_set_to_none.jpg|Navmesh sees only cube set to Prim&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Collision:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
When you are physics optimizing you need to plan where you want the [[Physics_engine#Collision_Geometry|collision]] to be, because all the individual shapes set to physics none will act as though they are phantom. In this example we are using a tree. The actual original tree will be set to physics none and act as though it is phantom so an avatar will be able to walk through it. The root prim, which in this case is a cylinder, will be the only solid part of the whole linked set. By putting the root prim/simple shape around the tree trunk, you simulate a solid and avatars will collide with it.&lt;br /&gt;
&lt;br /&gt;
Here we used a cylinder, but we could have also used a stretched cube to achieve a similar effect.&lt;br /&gt;
&lt;br /&gt;
For more complicated builds you can set certain parts to [[PRIM_PHYSICS_SHAPE_TYPE|PRIM_PHYSICS_SHAPE_PRIM]] and others to [[PRIM_PHYSICS_SHAPE_TYPE|PRIM_PHYSICS_SHAPE_NONE]]. The parts set to prim will act solid, and the parts set to physics shape type none will act as phantom. Alternatively, all prims could be set to [[PRIM_PHYSICS_SHAPE_TYPE|PRIM_PHYSICS_SHAPE_CONVEX_HULL]] for a potentially more accurate (albeit more expensive) result. This still produces a physics shape significantly simpler than the default. However, this second option will have no effect on sculpts. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Physics_add_physics.jpg|Adding physics&lt;br /&gt;
File:Physics_007.jpg|As seen by physics engine&lt;br /&gt;
File:Physics_added_physics_in_navmesh.jpg|As seen by the navmesh&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;More Examples:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Here is another example scenario.  This is a sculpted prim fence.  The physics shape is not as clean as it could be, and the edges don&#039;t cover all edges of the fence itself.  To fix it, I created a cube physics shape, linked the fence to the cube with the cube as the root prim, and set the fence to None.  As you can see, the resulting physics shape is lower in polygons and better covers the fence area.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Sculpty_optimization_001.jpg|Sculpted fence physics shape&lt;br /&gt;
File:Sculpty_optimization_002.jpg|Adding cube physics shape&lt;br /&gt;
File:Sculpty_optimization_003.jpg|Final Static Object physics shape&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*This is a tree comprised of many sculpted pieces.  Keep in mind that the physics engine needs to calculate every part of the physics shape in the second picture.  Here I created a cylinder for the physics shape to fit on the bottom of the tree trunk.  By linking the cylinder to the tree, and setting the tree to physics shape None, I have a much cleaner static object.  &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Sculpty_optimization_004_001.jpg|Sculpted Tree&lt;br /&gt;
File:Sculpty_optimization_004_002.jpg|Un-optimized sculpted tree physics shape&lt;br /&gt;
File:Sculpty_optimization_004_003.jpg|Adding simplified physics to tree, setting to root&lt;br /&gt;
File:Sculpty_optimization_004_004.jpg|Final tree physics set to static obstacle&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*These gates are nice clean and simple except for the hippo on the top.  We can remove the hippo from the physics engine calculations.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Sculptedlamp_2_003.png|Hippo gates&lt;br /&gt;
File:Sculptedlamp_2_004.png|Hippo physics&lt;br /&gt;
File:Sculptedlamp_2_005.png|Hippo set to NONE (yes, it&#039;s really still there!)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use the following script to set all child prims to None.  Be sure to check what physics are needed for your linkset prior to using, and/or add a simple cube as the root prim.&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(0, &amp;quot;Setting all child prims to PRIM_PHYSICS_SHAPE_NONE&amp;quot;);&lt;br /&gt;
        llSetLinkPrimitiveParamsFast(LINK_ALL_CHILDREN, [PRIM_PHYSICS_SHAPE_TYPE, PRIM_PHYSICS_SHAPE_NONE]);&lt;br /&gt;
        llRemoveInventory(llGetScriptName());&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For more detailed information, have a look at this [http://community.secondlife.com/t5/English-Knowledge-Base/Best-practices-for-creating-efficient-collision-volumes/ta-p/984115 Havok Technical Artist Optimization Guide], a direct excerpt from Havok&#039;s documentation. (Havok is the physics and AI engine provider used by Second Life for its physics and pathfinding simulations.) This guide provides details on the best way to optimize your collision shapes and is used by leading artists throughout the games industry.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Back to [[Good_Building_Practices]]&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Pathfinding_Overview&amp;diff=1169618</id>
		<title>Pathfinding Overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Pathfinding_Overview&amp;diff=1169618"/>
		<updated>2012-06-21T23:11:10Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pathfinding is a method content creators can use to create moving and interactive characters within Second Life.  Characters can use LSL functions to avoid obstacles, move around corners, climb inclines, and move across region boundaries: things that are very difficult or even impossible before. Pathfinding will also enable new gameplay mechanics, such as creating food that attracts monsters.&lt;br /&gt;
&lt;br /&gt;
==Terminology==&lt;br /&gt;
*Character - an object that uses a Pathfinding LSL function.&lt;br /&gt;
*NavMesh - Short for Navigation Mesh. It&#039;s a map for characters.&lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
*Evade - Run from a specified avatar or object.&lt;br /&gt;
*Flee - Move a specified distance from a specified location. &lt;br /&gt;
*Hop&lt;br /&gt;
*Navigate - Move to a specified location.&lt;br /&gt;
*Patrol - Move along a specified path specified by patrol points.&lt;br /&gt;
*Pursue - Follow specified avatar or object.&lt;br /&gt;
*Wander - Randomly wander a specified distance from a specified central point.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Return to [[Good_Building_Practices]]&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Pathfinding_Overview&amp;diff=1169607</id>
		<title>Pathfinding Overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Pathfinding_Overview&amp;diff=1169607"/>
		<updated>2012-06-21T15:54:59Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pathfinding is a method content creators can use to create moving and interactive characters within Second Life.  Characters can use LSL functions to avoid obstacles, move around corners, climb inclines, and move across region boundaries: things that are very difficult or even impossible before. Pathfinding will also enable new gameplay mechanics, such as creating food that attracts monsters.&lt;br /&gt;
&lt;br /&gt;
==Terminology==&lt;br /&gt;
*Character - an object that uses a Pathfinding LSL function.&lt;br /&gt;
*NavMesh - Short for Navigation Mesh.  &lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
*Evade - Run from a specified avatar or object.&lt;br /&gt;
*Flee - Move a specified distance from a specified location. &lt;br /&gt;
*Hop&lt;br /&gt;
*Navigate - Move to a specified location.&lt;br /&gt;
*Patrol - Move along a specified path specified by patrol points.&lt;br /&gt;
*Pursue - Follow specified avatar or object.&lt;br /&gt;
*Wander - Randomly wander a specified distance from a specified central point.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Return to [[Good_Building_Practices]]&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Pathfinding_Overview&amp;diff=1169487</id>
		<title>Pathfinding Overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Pathfinding_Overview&amp;diff=1169487"/>
		<updated>2012-06-19T19:58:22Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: Created page with &amp;quot;Pathfinding is a method content creators can use to create moving and interactive characters within Second Life.  Characters can use LSL functions to avoid obstacles, move around…&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pathfinding is a method content creators can use to create moving and interactive characters within Second Life.  Characters can use LSL functions to avoid obstacles, move around corners, climb inclines, and move across region boundaries: things that are very difficult or even impossible before. Pathfinding will also enable new gameplay mechanics, such as creating food that attracts monsters.&lt;br /&gt;
&lt;br /&gt;
==Terminology==&lt;br /&gt;
*Character - an object that uses a Pathfinding LSL function.&lt;br /&gt;
*NavMesh - Short for Navigation Mesh.  &lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
*Evade - Run from a specified avatar or object.&lt;br /&gt;
*Flee - Move a specified distance from a specified location. &lt;br /&gt;
*Hop&lt;br /&gt;
*Navigate - Move to a specified location.&lt;br /&gt;
*Patrol - Move along a specified path specified by patrol points.&lt;br /&gt;
*Pursue - Follow specified avatar or object.&lt;br /&gt;
*Wander - Randomly wander a specified distance from a specified central point.&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Walkability_Coefficients&amp;diff=1169467</id>
		<title>Walkability Coefficients</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Walkability_Coefficients&amp;diff=1169467"/>
		<updated>2012-06-19T17:34:43Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;Note: Coefficients are currently buggy.&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Walkable objects can take advantage of coefficients in the [[Pathfinding_NavMesh|navigation mesh]].&lt;br /&gt;
*Walkability coefficients are multipliers that may be applied to the speed of a pathfinding character.&lt;br /&gt;
*Some examples of use would be: Hard road switching to gravel, terrain switching to sandy ruts, deep snow areas, etc.&lt;br /&gt;
*You can have four different coefficients per region, controlling character type A, B, C, or D.&lt;br /&gt;
*Coefficients can be mixed with [[Material_Volumes|Material Volumes]] to further control character speed and behavior.&lt;br /&gt;
*Example: You have a tar pit that character type A can navigate freely, but character type B cannot navigate at all.  The tar pit objects would be set to coefficient 100% for type A and 0% for type B.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Coefficients_2.png|Coefficients are found in the Linkset floater&lt;br /&gt;
File:Coefficients3_001.png|Different speed coefficients mixed with a material volume&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Return to [[Good_Building_Practices]]&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Walkability_Coefficients&amp;diff=1169464</id>
		<title>Walkability Coefficients</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Walkability_Coefficients&amp;diff=1169464"/>
		<updated>2012-06-19T17:25:55Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Walkable objects can take advantage of coefficients in the [[Pathfinding_NavMesh|navigation mesh]].&lt;br /&gt;
*Walkability coefficients are multipliers that may be applied to the speed of a pathfinding character.&lt;br /&gt;
*Some examples of use would be: Hard road switching to gravel, terrain switching to sandy ruts, deep snow areas, etc.&lt;br /&gt;
*You can have four different coefficients per region, controlling character type A, B, C, or D.&lt;br /&gt;
*Coefficients can be mixed with [[Material_Volumes|Material Volumes]] to further control character speed and behavior.&lt;br /&gt;
*Example: You have a tar pit that character type A can navigate freely, but character type B cannot navigate at all.  The tar pit objects would be set to coefficient 100% for type A and 0% for type B.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Coefficients_2.png|Coefficients are found in the Linkset floater&lt;br /&gt;
File:Coefficients3_001.png|Different speed coefficients mixed with a material volume&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Return to [[Good_Building_Practices]]&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Walkability_Coefficients&amp;diff=1169463</id>
		<title>Walkability Coefficients</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Walkability_Coefficients&amp;diff=1169463"/>
		<updated>2012-06-19T17:25:37Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Walkable objects can take advantage of coefficients in the [[Pathfinding_NavMesh|navigation mesh]].&lt;br /&gt;
*Walkability coefficients are multipliers that may be applied to the speed of a pathfinding character.&lt;br /&gt;
*Some examples of use would be: Hard road switching to gravel, terrain switching to sandy ruts, deep snow areas, etc.&lt;br /&gt;
*You can have four different coefficients per region, controlling character type A, B, C, or D.&lt;br /&gt;
*Coefficients can be mixed with [[Material_Volumes|Material Volumes]] to further control character speed and behavior.&lt;br /&gt;
*Example: You have a tar pit that character type A can navigate freely, but character type B cannot navigate at all.  The tar pit objects would be set to coefficient 100% for type A and 0% for type B.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Coefficients_2.png|Coefficients are found in the Linkset floater&lt;br /&gt;
Coefficients3_001.png|Different speed coefficients mixed with a material volume&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Return to [[Good_Building_Practices]]&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=File:Coefficients3_001.png&amp;diff=1169462</id>
		<title>File:Coefficients3 001.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=File:Coefficients3_001.png&amp;diff=1169462"/>
		<updated>2012-06-19T17:24:56Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Good_Building_Practices&amp;diff=1169460</id>
		<title>Good Building Practices</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Good_Building_Practices&amp;diff=1169460"/>
		<updated>2012-06-19T17:17:27Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: /* Pathfinding */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Welcome to Good Building Practices ==&lt;br /&gt;
This page is all about how to be creative and efficient at the same time!&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Animation ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Animation Streamlined]]&#039;&#039;&#039; - Let&#039;s make Second Life move, without dragging it to a crawl!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&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;
&lt;br /&gt;
== Mesh ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Making Mesh Physics]]&#039;&#039;&#039; - Why and How.&lt;br /&gt;
* &#039;&#039;&#039;[[Making Mesh for Pathfinding]]&#039;&#039;&#039; - Pathfinding friendly mesh.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&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;
&lt;br /&gt;
== Pathfinding ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;[[Pathfinding_Overview]]&#039;&#039;&#039; - Pathfinding explained.&lt;br /&gt;
*&#039;&#039;&#039;[[Pathfinding_Quick_Start_Guide]]&#039;&#039;&#039; - The best way to get up and running with Pathfinding.&lt;br /&gt;
*&#039;&#039;&#039;[[Visual_Guide_to_Pathfinding|A Visual Guide]]&#039;&#039;&#039; - Watch how easy it is!&lt;br /&gt;
*&#039;&#039;&#039;[[Walkability_Coefficients]]&#039;&#039;&#039; - Control the speed of your Walkable areas.&lt;br /&gt;
*&#039;&#039;&#039;[[Material_Volumes]]&#039;&#039;&#039; - Control the speed of your characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Physics ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Physics Optimization]]&#039;&#039;&#039; - Not everything needs physics, learn how to add the least load necessary to the physics engine.&lt;br /&gt;
* &#039;&#039;&#039;[[PRIM_PHYSICS_SHAPE_NONE]]&#039;&#039;&#039; - Additional information on this important attribute.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;|&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scripting ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Smart Scripting]]&#039;&#039;&#039; - No lag scripting tips.&lt;br /&gt;
*&#039;&#039;&#039;[[Scripting for Pathfinding]]&#039;&#039;&#039; - Pathfinding scripting help.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&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;
&lt;br /&gt;
== Sculpted Prims ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;[[Sculpted Prim Usage]]&#039;&#039;&#039; - What you need to know about how sculpted prims effect Second Life.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&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;
&lt;br /&gt;
== Textures ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Texture Usage]]&#039;&#039;&#039; - What size to use, and what to avoid.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Making_Mesh_for_Pathfinding&amp;diff=1169344</id>
		<title>Making Mesh for Pathfinding</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Making_Mesh_for_Pathfinding&amp;diff=1169344"/>
		<updated>2012-06-17T21:32:40Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: Created page with &amp;quot;See Physics_Optimization for ways to make your pathfinding areas efficient.  ---- Return to Good_Building_Practices&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See [[Physics_Optimization]] for ways to make your pathfinding areas efficient.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Return to [[Good_Building_Practices]]&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Material_Volumes&amp;diff=1169343</id>
		<title>Material Volumes</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Material_Volumes&amp;diff=1169343"/>
		<updated>2012-06-17T21:25:07Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About Material Volumes==&lt;br /&gt;
*The Material Volume [[Pathfinding_Tools_in_the_Second_Life_Viewer#Example_use_3|attribute]] for Pathfinding creates phantom objects that can be set to change the walkability coefficients of an area of the navmesh. Walkability coefficients are multipliers that may be applied to the speed of a pathfinding character.&lt;br /&gt;
*Pathfinding characters will choose the fastest and closest path available to them. (add video of PF cube choosing 100% walkability path around a MV)&lt;br /&gt;
*Material Volumes are visible in the [[Pathfinding_NavMesh|navigation mesh view]] as opaque purple objects.&lt;br /&gt;
&lt;br /&gt;
[[File:Material_volume_001.png|none|300x225px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Return to [[Good_Building_Practices]]&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Material_Volumes&amp;diff=1169342</id>
		<title>Material Volumes</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Material_Volumes&amp;diff=1169342"/>
		<updated>2012-06-17T21:24:39Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About Material Volumes==&lt;br /&gt;
*The Material Volume [[Pathfinding_Tools_in_the_Second_Life_Viewer#Example_use_3|attribute]] for Pathfinding creates phantom objects that can be set to change the walkability coefficients of an area of the navmesh. Walkability coefficients are multipliers that may be applied to the speed of a pathfinding character.&lt;br /&gt;
*Pathfinding characters will choose the fastest and closest path available to them. (add video of PF cube choosing 100% walkability path around a MV)&lt;br /&gt;
*Material Volumes are visible in the [[Pathfinding_NavMesh|navigation mesh view]] as opaque purple objects.&lt;br /&gt;
&lt;br /&gt;
[[File:Material_volume_001.png|none|400x300px]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Return to [[Good_Building_Practices]]&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Walkability_Coefficients&amp;diff=1169341</id>
		<title>Walkability Coefficients</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Walkability_Coefficients&amp;diff=1169341"/>
		<updated>2012-06-17T21:20:57Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Walkable objects can take advantage of coefficients in the [[Pathfinding_NavMesh|navigation mesh]].&lt;br /&gt;
*Walkability coefficients are multipliers that may be applied to the speed of a pathfinding character.&lt;br /&gt;
*Some examples of use would be: Hard road switching to gravel, terrain switching to sandy ruts, deep snow areas, etc.&lt;br /&gt;
*You can have four different coefficients per region, controlling character type A, B, C, or D.&lt;br /&gt;
*Coefficients can be mixed with [[Material_Volumes|Material Volumes]] to further control character speed and behavior.&lt;br /&gt;
&lt;br /&gt;
[[File:Coefficients_2.png|none|800x322px]]&lt;br /&gt;
&lt;br /&gt;
*Example: You have a tar pit that character type A can navigate freely, but character type B cannot navigate at all.  The tar pit objects would be set to coefficient 100% for type A and 0% for type B.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Return to [[Good_Building_Practices]]&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Material_Volumes&amp;diff=1169340</id>
		<title>Material Volumes</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Material_Volumes&amp;diff=1169340"/>
		<updated>2012-06-17T21:20:34Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About Material Volumes==&lt;br /&gt;
*The Material Volume [[Pathfinding_Tools_in_the_Second_Life_Viewer#Example_use_3|attribute]] for Pathfinding creates phantom objects that can be set to change the walkability coefficients of an area of the navmesh. Walkability coefficients are multipliers that may be applied to the speed of a pathfinding character.&lt;br /&gt;
*Pathfinding characters will choose the fastest and closest path available to them. (add video of PF cube choosing 100% walkability path around a MV)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Return to [[Good_Building_Practices]]&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Walkability_Coefficients&amp;diff=1169339</id>
		<title>Walkability Coefficients</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Walkability_Coefficients&amp;diff=1169339"/>
		<updated>2012-06-17T21:16:36Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Walkable objects can take advantage of coefficients in the [[Pathfinding_NavMesh|navigation mesh]].&lt;br /&gt;
*Walkability coefficients are multipliers that may be applied to the speed of a pathfinding character.&lt;br /&gt;
*Some examples of use would be: Hard road switching to gravel, terrain switching to sandy ruts, deep snow areas, etc.&lt;br /&gt;
*You can have four different coefficients per region, controlling character type A, B, C, or D.&lt;br /&gt;
*Coefficients can be mixed with [[Material_Volumes|Material Volumes]] to further control character speed and behavior.&lt;br /&gt;
&lt;br /&gt;
[[File:Coefficients_2.png|none|800x322px]]&lt;br /&gt;
&lt;br /&gt;
*Example: You have a tar pit that character type A can navigate freely, but character type B cannot navigate at all.  The tar pit objects would be set to coefficient 100% for type A and 0% for type B.&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Walkability_Coefficients&amp;diff=1169338</id>
		<title>Walkability Coefficients</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Walkability_Coefficients&amp;diff=1169338"/>
		<updated>2012-06-17T21:09:25Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Walkable objects can take advantage of coefficients in the [[Pathfinding_NavMesh|navigation mesh]].&lt;br /&gt;
*Walkability coefficients are multipliers that may be applied to the speed of a pathfinding character.&lt;br /&gt;
*Some examples of use would be: Hard road switching to gravel, terrain switching to sandy ruts, deep snow areas, etc.&lt;br /&gt;
*You can have four different coefficients per region, controlling character type A, B, C, or D.&lt;br /&gt;
*Coefficients can be mixed with [[Material_Volumes|Material Volumes]] to further control character speed.&lt;br /&gt;
&lt;br /&gt;
[[File:Coefficients_2.png|none|800x322px]]&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Walkability_Coefficients&amp;diff=1169337</id>
		<title>Walkability Coefficients</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Walkability_Coefficients&amp;diff=1169337"/>
		<updated>2012-06-17T21:07:59Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: Created page with &amp;quot;*Walkable objects can take advantage of coefficients in the navigation mesh. *Walkability coefficients are multipliers that may be applied to the speed of…&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Walkable objects can take advantage of coefficients in the [[Pathfinding_NavMesh|navigation mesh]].&lt;br /&gt;
*Walkability coefficients are multipliers that may be applied to the speed of a pathfinding character.&lt;br /&gt;
*Some examples of use would be: Hard road switching to gravel, terrain switching to sandy ruts, deep snow areas, etc.&lt;br /&gt;
*You can have four different coefficients per region, controlling character type A, B, C, or D.&lt;br /&gt;
&lt;br /&gt;
[[File:Coefficients_2.png|none|800x322px]]&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=File:Coefficients_2.png&amp;diff=1169336</id>
		<title>File:Coefficients 2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=File:Coefficients_2.png&amp;diff=1169336"/>
		<updated>2012-06-17T21:03:31Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=File:Coefficients.png&amp;diff=1169335</id>
		<title>File:Coefficients.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=File:Coefficients.png&amp;diff=1169335"/>
		<updated>2012-06-17T21:02:50Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: uploaded a new version of &amp;quot;File:Coefficients.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=File:Coefficients.png&amp;diff=1169334</id>
		<title>File:Coefficients.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=File:Coefficients.png&amp;diff=1169334"/>
		<updated>2012-06-17T21:00:16Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: uploaded a new version of &amp;quot;File:Coefficients.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=File:Coefficients.png&amp;diff=1169333</id>
		<title>File:Coefficients.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=File:Coefficients.png&amp;diff=1169333"/>
		<updated>2012-06-17T20:59:05Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Good_Building_Practices&amp;diff=1169332</id>
		<title>Good Building Practices</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Good_Building_Practices&amp;diff=1169332"/>
		<updated>2012-06-17T20:19:13Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: /* Pathfinding */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Welcome to Good Building Practices ==&lt;br /&gt;
This page is all about how to be creative and efficient at the same time!&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Animation ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Animation Streamlined]]&#039;&#039;&#039; - Let&#039;s make Second Life move, without dragging it to a crawl!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&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;
&lt;br /&gt;
== Mesh ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Making Mesh Physics]]&#039;&#039;&#039; - Why and How.&lt;br /&gt;
* &#039;&#039;&#039;[[Making Mesh for Pathfinding]]&#039;&#039;&#039; - Pathfinding friendly mesh.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&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;
&lt;br /&gt;
== Pathfinding ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;[[Pathfinding_Quick_Start_Guide]]&#039;&#039;&#039; - The best way to get up and running with Pathfinding.&lt;br /&gt;
*&#039;&#039;&#039;[[Visual_Guide_to_Pathfinding|A Visual Guide]]&#039;&#039;&#039; - Watch how easy it is!&lt;br /&gt;
*&#039;&#039;&#039;[[Walkability_Coefficients]]&#039;&#039;&#039; - Control the speed of your Walkable areas.&lt;br /&gt;
*&#039;&#039;&#039;[[Material_Volumes]]&#039;&#039;&#039; - Control the speed of your characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Physics ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Physics Optimization]]&#039;&#039;&#039; - Not everything needs physics, learn how to add the least load necessary to the physics engine.&lt;br /&gt;
* &#039;&#039;&#039;[[PRIM_PHYSICS_SHAPE_NONE]]&#039;&#039;&#039; - Additional information on this important attribute.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;|&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scripting ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Smart Scripting]]&#039;&#039;&#039; - No lag scripting tips.&lt;br /&gt;
*&#039;&#039;&#039;[[Scripting for Pathfinding]]&#039;&#039;&#039; - Pathfinding scripting help.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&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;
&lt;br /&gt;
== Sculpted Prims ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;[[Sculpted Prim Usage]]&#039;&#039;&#039; - What you need to know about how sculpted prims effect Second Life.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&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;
&lt;br /&gt;
== Textures ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Texture Usage]]&#039;&#039;&#039; - What size to use, and what to avoid.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Material_Volumes&amp;diff=1169331</id>
		<title>Material Volumes</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Material_Volumes&amp;diff=1169331"/>
		<updated>2012-06-17T20:15:08Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About Material Volumes==&lt;br /&gt;
*The Material Volume [[Pathfinding_Tools_in_the_Second_Life_Viewer#Example_use_3|attribute]] for Pathfinding creates phantom objects that can be set to change the walkability coefficients of an area of the navmesh. Walkability coefficients are multipliers that may be applied to the speed of a pathfinding character.&lt;br /&gt;
*Pathfinding characters will choose the fastest and closest path available to them. (add video of PF cube choosing 100% walkability path around a MV)&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Material_Volumes&amp;diff=1169330</id>
		<title>Material Volumes</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Material_Volumes&amp;diff=1169330"/>
		<updated>2012-06-17T19:35:01Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About Material Volumes==&lt;br /&gt;
*The Material Volume [[Pathfinding_Tools_in_the_Second_Life_Viewer#Example_use_3|attribute]] for Pathfinding creates phantom objects that can be set to change the walkability coefficients of an area of the navmesh. Walkability coefficients are multipliers that may be applied to the speed of a pathfinding character.&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Material_Volumes&amp;diff=1169329</id>
		<title>Material Volumes</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Material_Volumes&amp;diff=1169329"/>
		<updated>2012-06-17T18:53:31Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: Created page with &amp;quot;==About Material Volumes== *The Material Volume attribute for Pathfinding are phantom objects that can be set to cha…&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About Material Volumes==&lt;br /&gt;
*The Material Volume [[Pathfinding_Tools_in_the_Second_Life_Viewer#Example_use_3|attribute]] for Pathfinding are phantom objects that can be set to change the walkability coefficients of an area of the navmesh. Walkability coefficients are multipliers that may be applied to the speed of a pathfinding character.&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Good_Building_Practices&amp;diff=1169328</id>
		<title>Good Building Practices</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Good_Building_Practices&amp;diff=1169328"/>
		<updated>2012-06-17T18:16:13Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: /* Pathfinding */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Welcome to Good Building Practices ==&lt;br /&gt;
This page is all about how to be creative and efficient at the same time!&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Animation ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Animation Streamlined]]&#039;&#039;&#039; - Let&#039;s make Second Life move, without dragging it to a crawl!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&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;
&lt;br /&gt;
== Mesh ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Making Mesh Physics]]&#039;&#039;&#039; - Why and How.&lt;br /&gt;
* &#039;&#039;&#039;[[Making Mesh for Pathfinding]]&#039;&#039;&#039; - Pathfinding friendly mesh.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&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;
&lt;br /&gt;
== Pathfinding ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;[[Pathfinding_Quick_Start_Guide]]&#039;&#039;&#039; - The best way to get up and running with Pathfinding.&lt;br /&gt;
*&#039;&#039;&#039;[[Visual_Guide_to_Pathfinding|A Visual Guide]]&#039;&#039;&#039; - Watch how easy it is!&lt;br /&gt;
*&#039;&#039;&#039;[[Material_Volumes]]&#039;&#039;&#039; - Control the speed of your characters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Physics ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Physics Optimization]]&#039;&#039;&#039; - Not everything needs physics, learn how to add the least load necessary to the physics engine.&lt;br /&gt;
* &#039;&#039;&#039;[[PRIM_PHYSICS_SHAPE_NONE]]&#039;&#039;&#039; - Additional information on this important attribute.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;|&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scripting ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Smart Scripting]]&#039;&#039;&#039; - No lag scripting tips.&lt;br /&gt;
*&#039;&#039;&#039;[[Scripting for Pathfinding]]&#039;&#039;&#039; - Pathfinding scripting help.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&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;
&lt;br /&gt;
== Sculpted Prims ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;[[Sculpted Prim Usage]]&#039;&#039;&#039; - What you need to know about how sculpted prims effect Second Life.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&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;
&lt;br /&gt;
== Textures ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Texture Usage]]&#039;&#039;&#039; - What size to use, and what to avoid.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Pathfinding_NavMesh&amp;diff=1169327</id>
		<title>Pathfinding NavMesh</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Pathfinding_NavMesh&amp;diff=1169327"/>
		<updated>2012-06-17T18:14:09Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Basic Overview = &lt;br /&gt;
&lt;br /&gt;
A look at the Navigation Mesh view of your region can quickly show you exactly how the navmesh system works and help troubleshoot potential problems.&lt;br /&gt;
&lt;br /&gt;
This is the basic view:&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Navmesh_001.jpg|Show Navmesh ticked on&lt;br /&gt;
File:Navmesh_002_002.jpg|Show Navmesh and Static Obstacles ticked on&lt;br /&gt;
File:Navmesh1_001.png|Navmesh, Static Obstacles, and Walkables on&lt;br /&gt;
File:Navmesh1_002.png|Navmesh, Static Obstacles, Walkables, and World on&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The active Navmesh areas are in light grey, with the static obstacle areas outlined in red.  The blank void spaces outlined in red are areas where your pathfinding creatures cannot go.  These areas can be easily seen when you turn Static Obstacles on.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Navmesh_002_003.jpg|Non navigable area in the navmesh&lt;br /&gt;
File:Navmesh_002_004.jpg|Non navigable area in the navmesh, static obstacles on&lt;br /&gt;
File:Navmesh_002_005.jpg|Non navigable area in the navmesh&lt;br /&gt;
File:Navmesh_002_006.jpg|Non navigable area in the navmesh, static obstacles on&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the Test tab of the Edit/Test pathfinding window you can test walkable pathways.  Control-click to start your path (pink capsule).  Shift-click and drag to see your path (orange capsule and pathway).&lt;br /&gt;
Pathfinding characters will calculate the &#039;&#039;&#039;fastest&#039;&#039;&#039; way to navigate from point A to point B in the navmesh.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Navmesh1_004.png|Beginning point of path&lt;br /&gt;
File:Navmesh1_005.png|Shift-click and drag to see good pathways&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Material Volumes will appear in the navmesh as opaque purple objects.  These are phantom objects that can be set to change the walkability coefficients of an area of the navmesh. Walkability coefficients are multipliers that may be applied to the speed of a pathfinding character.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Material_volume_001.png|Purple Material Volume added to a walkable surface.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exclusion Volumes show up as transparent yellow objects.  These objects are phantom and pathfinding characters will not move in those area, yet avatars can.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Exclusion_001.png|Objects set to Exclusion Volume.&lt;br /&gt;
File:Exclusion_use_001.png|Used to keep pathfinding characters on the docks.&lt;br /&gt;
File:Exclusion_use_002.png|Used here to keep characters from getting stuck on rocks.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Walkable areas show up in green, and turning the world tick box off with walkables on will give you a good quick view all the walkable surfaces in the navigation mesh.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Walkable_001.png|Walkable areas only&lt;br /&gt;
File:Walkable_002.png|Walkable with navmesh and world turned on&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Other Notes = &lt;br /&gt;
* A pathfinding region will share its nav mesh with its immediate neighbors, which allows cross-region pathfinding.&lt;br /&gt;
* The navmesh view that you see in the viewer is from when the simulator last baked the navmesh and only takes permanent objects into account.  Movable obstacles, such as avatars or linksets set to &amp;quot;Movable Obstacle&amp;quot; can block characters&#039; paths but are not visible in this navmesh view.&lt;br /&gt;
* The minimum size allowed for a nav mesh &#039;island&#039;  (such as an isolated walkable platform which is disconnected from the rest of the nav mesh) is approximately 100m^2.&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Pathfinding_Quick_Start_Guide&amp;diff=1169326</id>
		<title>Pathfinding Quick Start Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Pathfinding_Quick_Start_Guide&amp;diff=1169326"/>
		<updated>2012-06-17T18:13:28Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;Begin by naming all objects in your region!  A list of objects named &amp;quot;Object&amp;quot; is not helpful.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You will need to use the [[Pathfinding_Tools_in_the_Second_Life_Viewer|linkset tools]] to change the [[Pathfinding_Tools_in_the_Second_Life_Viewer#Example_use_3|pathfinding attributes]] of the objects on your region to improve region performance!  See a the [[Visual_Guide_to_Pathfinding]] for more help.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;By default, all objects are set to Walkable (terrain), Movable Obstacle, or Movable Phantom (phantom objects).  You will need to set walls, trees, fences, etc to Static Obstacle.  Set floors and other areas that need to be walkable to Walkable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Don&#039;t forget to click apply! Then FREEZE your changes for the navigation mesh to update.&lt;br /&gt;
&lt;br /&gt;
[[File:Linksets.png|none|400x187px|left]]&lt;br /&gt;
&lt;br /&gt;
*Terrain is always set to walkable. To prevent characters from entering areas of the terrain, use an [[Pathfinding_Tools_in_the_Second_Life_Viewer#Example_use_3|Exclusion Volume]]&lt;br /&gt;
*All objects that you want pathfinding characters to walk upon will need to be set to walkable in the [[Pathfinding_Tools_in_the_Second_Life_Viewer#Pathfinding_Linksets_Floater|Linkset tools]] floater. Walkable objects are green in the navmesh view.&lt;br /&gt;
[[File:Pathfinding_003.png|none|400x202px]]&lt;br /&gt;
&lt;br /&gt;
*You will need to Unfreeze before you can make any linkset changes to objects.  Basic Setup &amp;gt; Unfreeze.&lt;br /&gt;
*Pathfinding Character orientation will always be positive X.  &lt;br /&gt;
*All objects that are NOT going to be set to walkable should be set according to need:&lt;br /&gt;
&lt;br /&gt;
Walls, fences, trees, gates etc. - &#039;&#039;&#039;Static Obstacle&#039;&#039;&#039;.  Static Obstacles are red in the navigation mesh view.&lt;br /&gt;
&lt;br /&gt;
[[File:Navmesh_002_004.jpg|none|300x255px]]&lt;br /&gt;
&lt;br /&gt;
Movable doors, swinging gates, scripted moving objects that pathfinding characters cannot pass through - &#039;&#039;&#039;Movable Obstacle&#039;&#039;&#039; (not visible in the navigation mesh view).&lt;br /&gt;
&lt;br /&gt;
Objects that you want ignored by the pathfinding characters - &#039;&#039;&#039;Movable Phantom&#039;&#039;&#039; (not visible in the navigation mesh view).&lt;br /&gt;
&lt;br /&gt;
Avatars can move through or on, pathfinding characters cannot (this is also good for trouble spots where characters consistently get stuck) - &#039;&#039;&#039;Exclusion Volume&#039;&#039;&#039; seen as yellow opaque objects in the navigation mesh view.&lt;br /&gt;
&lt;br /&gt;
[[File:Exclusion_use_001.png|none|300x255px]]&lt;br /&gt;
&lt;br /&gt;
*Remember to Apply your linkset object attributes, or the setting won&#039;t stick.  &lt;br /&gt;
*Freeze your changes (edit/test window) to queue the regeneration of the navmesh and &amp;quot;bake&amp;quot; in the changes you have made.  The text will change to &amp;quot;Navmesh is up to date&amp;quot; when it&#039;s finished.&lt;br /&gt;
*Use the Show: [[Pathfinding_NavMesh|navmesh]] tick box (and the world tickbox) to view the navigation mesh and see where you may need to make changes. &lt;br /&gt;
&lt;br /&gt;
For the beta you&#039;ll need to disable (or make phantom) objects that change scale, volume parameters, or positon/rotation of child prims to get acceptable sim performance.&lt;br /&gt;
For help tracking down problems use:&lt;br /&gt;
*Estate tools: Get top colliders and Get top scripts.&lt;br /&gt;
*Pathfinding Linkset tools: search for the name of the object and teleport to it, take, delete, take copy, or turn on a beacon.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Full Pathfinding tools information can be found [[Pathfinding_Tools_in_the_Second_Life_Viewer|here]].&lt;br /&gt;
&lt;br /&gt;
A quick guide to Good Building Practices can be found [[Good_Building_Practices|here]].&lt;br /&gt;
&lt;br /&gt;
Find helpful Pathfinding scripts [[Pathfinding_Scripts|here]].&lt;br /&gt;
&lt;br /&gt;
The Navigation Mesh explained [[Pathfinding_NavMesh|here]].&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Pathfinding_Quick_Start_Guide&amp;diff=1169325</id>
		<title>Pathfinding Quick Start Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Pathfinding_Quick_Start_Guide&amp;diff=1169325"/>
		<updated>2012-06-17T18:00:10Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;Begin by naming all objects in your region!  A list of objects named &amp;quot;Object&amp;quot; is not helpful.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You will need to use the [[Pathfinding_Tools_in_the_Second_Life_Viewer|linkset tools]] to change the [[Pathfinding_Tools_in_the_Second_Life_Viewer#Example_use_3|pathfinding attributes]] of the objects on your region to improve region performance!  See a the [[Visual_Guide_to_Pathfinding]] for more help.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;By default, all objects are set to Walkable (terrain), Movable Obstacle, or Movable Phantom (phantom objects).  You will need to set walls, trees, fences, etc to Static Obstacle.  Set floors and other areas that need to be walkable to Walkable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Don&#039;t forget to click apply! Then FREEZE your changes for the navigation mesh to update.&lt;br /&gt;
&lt;br /&gt;
[[File:Linksets.png|none|400x187px|left]]&lt;br /&gt;
&lt;br /&gt;
*Terrain is always set to walkable. To prevent characters from entering areas of the terrain, use an [[Pathfinding_Tools_in_the_Second_Life_Viewer#Example_use_3|Exclusion Volume]]&lt;br /&gt;
*All objects that you want pathfinding characters to walk upon will need to be set to walkable in the [[Pathfinding_Tools_in_the_Second_Life_Viewer#Pathfinding_Linksets_Floater|Linkset tools]] floater. Build &amp;gt; Pathfinding.&lt;br /&gt;
*You will need to Unfreeze before you can make any linkset changes to objects.  Basic Setup &amp;gt; Unfreeze.&lt;br /&gt;
*Pathfinding Character orientation will always be positive X.  &lt;br /&gt;
*All objects that are NOT going to be set to walkable should be set according to need:&lt;br /&gt;
&lt;br /&gt;
Walls, fences, trees, gates etc. - &#039;&#039;&#039;Static Obstacle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Movable doors, swinging gates, scripted moving objects that pathfinding characters cannot pass through - &#039;&#039;&#039;Movable Obstacle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Objects that you want ignored by the pathfinding characters - &#039;&#039;&#039;Movable Phantom&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Avatars can move through or on, pathfinding characters cannot (this is also good for trouble spots where characters consistently get stuck) - &#039;&#039;&#039;Exclusion Volume&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Remember to Apply your linkset object attributes, or the setting won&#039;t stick.  &lt;br /&gt;
*Freeze your changes (edit/test window) to queue the regeneration of the navmesh and &amp;quot;bake&amp;quot; in the changes you have made.  The text will change to &amp;quot;Navmesh is up to date&amp;quot; when it&#039;s finished.&lt;br /&gt;
*Use the Show: [[Pathfinding_NavMesh|navmesh]] tick box (and the world tickbox) to view the navigation mesh and see where you may need to make changes. &lt;br /&gt;
&lt;br /&gt;
For the beta you&#039;ll need to disable (or make phantom) objects that change scale, volume parameters, or positon/rotation of child prims to get acceptable sim performance.&lt;br /&gt;
For help tracking down problems use:&lt;br /&gt;
*Estate tools: Get top colliders and Get top scripts.&lt;br /&gt;
*Pathfinding Linkset tools: search for the name of the object and teleport to it, take, delete, take copy, or turn on a beacon.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Full Pathfinding tools information can be found [[Pathfinding_Tools_in_the_Second_Life_Viewer|here]].&lt;br /&gt;
&lt;br /&gt;
A quick guide to Good Building Practices can be found [[Good_Building_Practices|here]].&lt;br /&gt;
&lt;br /&gt;
Find helpful Pathfinding scripts [[Pathfinding_Scripts|here]].&lt;br /&gt;
&lt;br /&gt;
The Navigation Mesh explained [[Pathfinding_NavMesh|here]].&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=File:Linksets.png&amp;diff=1169324</id>
		<title>File:Linksets.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=File:Linksets.png&amp;diff=1169324"/>
		<updated>2012-06-17T17:48:33Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Pathfinding_Quick_Start_Guide&amp;diff=1169323</id>
		<title>Pathfinding Quick Start Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Pathfinding_Quick_Start_Guide&amp;diff=1169323"/>
		<updated>2012-06-17T17:44:41Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;Begin by naming all objects in your region!  A list of objects named &amp;quot;Object&amp;quot; is not helpful.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You will need to use the [[Pathfinding_Tools_in_the_Second_Life_Viewer|linkset tools]] to change the [[Pathfinding_Tools_in_the_Second_Life_Viewer#Example_use_3|pathfinding attributes]] of the objects on your region to improve region performance!  See a the [[Visual_Guide_to_Pathfinding]] for more help.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;By default, all objects are set to Walkable (terrain), Movable Obstacle, or Movable Phantom (phantom objects).  You will need to set walls, trees, fences, etc to Static Obstacle.  Set floors and other areas that need to be walkable to Walkable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Don&#039;t forget to click apply! Then FREEZE your changes for the navigation mesh to update.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Terrain is always set to walkable. To prevent characters from entering areas of the terrain, use an [[Pathfinding_Tools_in_the_Second_Life_Viewer#Example_use_3|Exclusion Volume]]&lt;br /&gt;
*All objects that you want pathfinding characters to walk upon will need to be set to walkable in the Linkset tools window. Build &amp;gt; Pathfinding.&lt;br /&gt;
*You will need to Unfreeze before you can make any linkset changes to objects.  Basic Setup &amp;gt; Unfreeze.&lt;br /&gt;
*Pathfinding Character orientation will always be positive X.  &lt;br /&gt;
*All objects that are NOT going to be set to walkable should be set according to need:&lt;br /&gt;
&lt;br /&gt;
Walls, fences, trees, gates etc. - &#039;&#039;&#039;Static Obstacle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Movable doors, swinging gates, scripted moving objects that pathfinding characters cannot pass through - &#039;&#039;&#039;Movable Obstacle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Objects that you want ignored by the pathfinding characters - &#039;&#039;&#039;Movable Phantom&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Avatars can move through or on, pathfinding characters cannot (this is also good for trouble spots where characters consistently get stuck) - &#039;&#039;&#039;Exclusion Volume&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Remember to Apply your linkset object attributes, or the setting won&#039;t stick.  &lt;br /&gt;
*Freeze your changes (edit/test window) to queue the regeneration of the navmesh and &amp;quot;bake&amp;quot; in the changes you have made.  The text will change to &amp;quot;Navmesh is up to date&amp;quot; when it&#039;s finished.&lt;br /&gt;
*Use the Show: navmesh tick box (and the world tickbox) to view the navmesh wireframe and see where you may need to make changes. If you have aqua/blue wireframe lines, you have walkable areas. &lt;br /&gt;
&lt;br /&gt;
For the beta you&#039;ll need to disable (or make phantom) objects that change scale, volume parameters, or positon/rotation of child prims to get acceptable sim performance.&lt;br /&gt;
For help tracking down problems use:&lt;br /&gt;
*Estate tools: Get top colliders and Get top scripts.&lt;br /&gt;
*Pathfinding Linkset tools: search for the name of the object and teleport to it, take, delete, take copy, or turn on a beacon.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Full Pathfinding tools information can be found [[Pathfinding_Tools_in_the_Second_Life_Viewer|here]].&lt;br /&gt;
&lt;br /&gt;
A quick guide to Good Building Practices can be found [[Good_Building_Practices|here]].&lt;br /&gt;
&lt;br /&gt;
Find helpful Pathfinding scripts [[Pathfinding_Scripts|here]].&lt;br /&gt;
&lt;br /&gt;
The Navigation Mesh explained [[Pathfinding_NavMesh|here]].&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Animation_Streamlined&amp;diff=1169322</id>
		<title>Animation Streamlined</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Animation_Streamlined&amp;diff=1169322"/>
		<updated>2012-06-17T17:37:35Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Animating Streamlined==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Your creations are on the move. Congratulations!&lt;br /&gt;
&lt;br /&gt;
What? Now you want their wings flapping and their legs moving? &lt;br /&gt;
&lt;br /&gt;
===What are my options?===&lt;br /&gt;
&lt;br /&gt;
You&#039;ve got some choices to make. All the methods described here involve tradeoffs, and no one method is best in all situations. &lt;br /&gt;
&lt;br /&gt;
They work with [[Pathfinding|pathfinding-enabled]] and non-pathfinding creations.&lt;br /&gt;
&lt;br /&gt;
====Method: Animated Textures==== &lt;br /&gt;
&lt;br /&gt;
[[Image: Animated_hippofly.gif]]&lt;br /&gt;
&lt;br /&gt;
Animate 2D textures on a model to simulate movement. &lt;br /&gt;
&lt;br /&gt;
Most of the time a framed texture is what you&#039;d want, but for something like a millipede&#039;s legs you might want to use a tiling texture instead. Here&#039;s a 2x2 framed texture next to a picture of it [[LlSetTextureAnim|animated]].&lt;br /&gt;
&lt;br /&gt;
[[Image: Eye Frame.jpg]] [[Image: Eye Frame.gif]]&lt;br /&gt;
&lt;br /&gt;
* This is very low server and viewer lag.&lt;br /&gt;
* This is 2D, so it&#039;s best for small or flat things.&lt;br /&gt;
* SL won&#039;t allow you to upload a texture larger than 1024x1024 pixels so resolution may be an issue for textures with a lot of frames.&lt;br /&gt;
* Animated textures on a prim can be on one face, or all faces with one direction, so sometimes you have to break a moving section up. (point out Sylvan&#039;s flipped UV wheel trick here)&lt;br /&gt;
&lt;br /&gt;
The hippo flies are an example of using model design and animated textures together. The model has several sets of wings. The different frames of the texture each have one pair of wings visible, so when animated the hippo flies seem to flap their wings. Mesh models don&#039;t look glitched like a sculpt does when a texture with transparency is applied.&lt;br /&gt;
&lt;br /&gt;
====Method: Flexible Prims====&lt;br /&gt;
&lt;br /&gt;
[[Image: Animated flexibird.gif|100px]]&lt;br /&gt;
&lt;br /&gt;
[[Flex|Flexi]] can be used to simulate smooth movement. Sadly, I couldn&#039;t capture how smooth it looks using snapshots.&lt;br /&gt;
&lt;br /&gt;
* A large number of flexi prims in a scene can lag the viewer. Viewer graphic settings can impact how flexi prims are displayed.&lt;br /&gt;
* A flexi prim&#039;s values can be set in the edit window or changed via script.&lt;br /&gt;
&lt;br /&gt;
====Method: Alpha Animation====&lt;br /&gt;
&lt;br /&gt;
[[Image: Animated_ray.gif|200px]]&lt;br /&gt;
&lt;br /&gt;
Show different pieces of your model at different times to simulate movement.&lt;br /&gt;
&lt;br /&gt;
Make several models of your creature (or parts of your creature) in different poses. Join them into one linkset, usually at the torso. Alternate which parts of the linkset are visible.&lt;br /&gt;
&lt;br /&gt;
* Higher LI/prim count than other methods. &lt;br /&gt;
* It induces less server lag than moving the prims, but the viewer receives a message for every alpha change.&lt;br /&gt;
&lt;br /&gt;
====Method: Prim Movement====&lt;br /&gt;
&lt;br /&gt;
[[Image: Animated_bunny.gif|200px]]&lt;br /&gt;
&lt;br /&gt;
This method repositions and resizes pieces to simulate movement.&lt;br /&gt;
&lt;br /&gt;
* Lower LI/prim count than alpha animation.&lt;br /&gt;
* Moving prims that have a [[PRIM_PHYSICS_SHAPE_TYPE]] other than [[PRIM_PHYSICS_SHAPE_NONE]] can cause &#039;&#039;&#039;extreme&#039;&#039;&#039; server lag &lt;br /&gt;
* The viewer receives a message for each prim change.&lt;br /&gt;
* Using the edit window to resize a creature that uses prim movement can break the creature.&lt;br /&gt;
&lt;br /&gt;
====Method: Sculpt Map Swap====&lt;br /&gt;
&lt;br /&gt;
[[Image: Animated flock.gif]][[Image: Animated_pigeon.gif]]&lt;br /&gt;
&lt;br /&gt;
Swap the prim&#039;s sculpt map to simulate movement.&lt;br /&gt;
&lt;br /&gt;
* Lower LI/prim count than alpha animation. Beware of LI when using sculpts!&lt;br /&gt;
* It generates a LOT of viewer lag. The viewer receives a message for each prim change. The viewer recalculates the sculpt mesh with each change.  Consider hidden prims in your creature showing the next &amp;quot;frame&amp;quot; or having a flock out.&lt;br /&gt;
** The impact of the recalculating can be softened by having prims within loading range showing the same sculpt shapes&lt;br /&gt;
** If the sculpt map texture isn&#039;t currently in the scene, it may be removed from the viewer&#039;s cache, so it may be end up being sent to the viewer multiple times. The blue-outlined cube behind the pigeon has the sculpt map textures on its sides, so the viewer doesn&#039;t remove them from the cache while the bird is in sight.&lt;br /&gt;
&lt;br /&gt;
===How do I make it happen?===&lt;br /&gt;
&lt;br /&gt;
====Physics Shape Type: None====&lt;br /&gt;
&lt;br /&gt;
This value allows you to tell the physics engine to [[Physics_Optimization|ignore prims]] when it is doing calculations. Your creature will explore much more efficiently if there&#039;s no need to calculate whether each toenail might be colliding with that rock! &lt;br /&gt;
&lt;br /&gt;
You can&#039;t set this to none on a root prim.&lt;br /&gt;
&lt;br /&gt;
If you select an object and toggle it to none in the edit window, all the child prims will be set.&lt;br /&gt;
&lt;br /&gt;
You can set this via script using [[LlSetLinkPrimitiveParamsFast|llSetLinkPrimitiveParamsFast]] with [[PRIM_PHYSICS_SHAPE_TYPE]] set to [[PRIM_PHYSICS_SHAPE_NONE]].&lt;br /&gt;
&lt;br /&gt;
====Getting the link number====&lt;br /&gt;
&lt;br /&gt;
A lot of the scripting calls used here expect you to have the link ID number. &lt;br /&gt;
&lt;br /&gt;
What&#039;s a [http://wiki.secondlife.com/wiki/Link| linkset or link ID? ]&lt;br /&gt;
&lt;br /&gt;
[[Image: Bunny_in_a_hat.png|right]]&lt;br /&gt;
&lt;br /&gt;
You can find the absolute link ID of a prim in your linkset, but those numbers are only reliable until the next time you decide to add or remove a prim from your build. Naming the prims in your creature useful things like &amp;quot;leg&amp;quot; or &amp;quot;wing&amp;quot; things will prevent your scripts from breaking when you decide your bunny needs a top hat.&lt;br /&gt;
&lt;br /&gt;
Code snippets for finding [[http://wiki.secondlife.com/wiki/LinksetIndexing| link IDs via prim name]] can be found here.&lt;br /&gt;
&lt;br /&gt;
====Animating a texture====&lt;br /&gt;
&lt;br /&gt;
Use [[llSetTextureAnim|llSetTextureAnim]] and [[llSetLinkTextureAnim|llSetLinkTextureAnim]] with a texture to simulate movement. &lt;br /&gt;
&lt;br /&gt;
====Setting flexible prim values====&lt;br /&gt;
&lt;br /&gt;
Use [[LlSetLinkPrimitiveParamsFast|llSetLinkPrimitiveParamsFast]] and the [[PRIM_FLEXIBLE]] flag.&lt;br /&gt;
&lt;br /&gt;
====Setting alpha values====&lt;br /&gt;
&lt;br /&gt;
Use [[llSetLinkAlpha|llSetLinkAlpha]] to change which pieces are visible at any one time.&lt;br /&gt;
&lt;br /&gt;
====Moving prims====&lt;br /&gt;
&lt;br /&gt;
Use [[LlSetLinkPrimitiveParamsFast|llSetLinkPrimitiveParamsFast]] with the prim position, rotation, and size flags.&lt;br /&gt;
&lt;br /&gt;
====Swapping sculpt maps====&lt;br /&gt;
&lt;br /&gt;
Use [[LlSetLinkPrimitiveParamsFast|llSetLinkPrimitiveParamsFast]] with the [[PRIM_TYPE_SCULPT]] flag to set a prim&#039;s sculpt map.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Return to [[Good_Building_Practices]]&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Pathfinding_Quick_Start_Guide&amp;diff=1169308</id>
		<title>Pathfinding Quick Start Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Pathfinding_Quick_Start_Guide&amp;diff=1169308"/>
		<updated>2012-06-16T22:19:04Z</updated>

		<summary type="html">&lt;p&gt;Hyper Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Begin by naming all objects in your region!  A list of objects named &amp;quot;Object&amp;quot; is not helpful&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You will need to use the [[Pathfinding_Tools_in_the_Second_Life_Viewer|linkset tools]] to change the [[Pathfinding_Tools_in_the_Second_Life_Viewer#Example_use_3|pathfinding attributes]] of the objects on your region to improve region performance!  See a the [[Visual_Guide_to_Pathfinding]] for more help.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;By default, all objects are set to Walkable (terrain), Movable Obstacle, or Movable Phantom (phantom objects).  You will need to set walls, trees, fences, etc to Static Obstacle.  Set floors and other areas that need to be walkable to Walkable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Don&#039;t forget to click apply! Then FREEZE your changes for the navigation mesh to update.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Terrain is always set to walkable. To prevent characters from entering areas of the terrain, use an [[Pathfinding_Tools_in_the_Second_Life_Viewer#Example_use_3|Exclusion Volume]]&lt;br /&gt;
*All objects that you want pathfinding characters to walk upon will need to be set to walkable in the Linkset tools window. Build &amp;gt; Pathfinding.&lt;br /&gt;
*You will need to Unfreeze before you can make any linkset changes to objects.  Basic Setup &amp;gt; Unfreeze.&lt;br /&gt;
*Pathfinding Character orientation will always be positive X.  &lt;br /&gt;
*All objects that are NOT going to be set to walkable should be set according to need:&lt;br /&gt;
&lt;br /&gt;
Walls, fences, trees, gates etc. - &#039;&#039;&#039;Static Obstacle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Movable doors, swinging gates, scripted moving objects that pathfinding characters cannot pass through - &#039;&#039;&#039;Movable Obstacle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Objects that you want ignored by the pathfinding characters - &#039;&#039;&#039;Movable Phantom&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Avatars can move through or on, pathfinding characters cannot (this is also good for trouble spots where characters consistently get stuck) - &#039;&#039;&#039;Exclusion Volume&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Remember to Apply your linkset object attributes, or the setting won&#039;t stick.  &lt;br /&gt;
*Freeze your changes (edit/test window) to queue the regeneration of the navmesh and &amp;quot;bake&amp;quot; in the changes you have made.  The text will change to &amp;quot;Navmesh is up to date&amp;quot; when it&#039;s finished.&lt;br /&gt;
*Use the Show: navmesh tick box (and the world tickbox) to view the navmesh wireframe and see where you may need to make changes. If you have aqua/blue wireframe lines, you have walkable areas. &lt;br /&gt;
&lt;br /&gt;
For the beta you&#039;ll need to disable (or make phantom) objects that change scale, volume parameters, or positon/rotation of child prims to get acceptable sim performance.&lt;br /&gt;
For help tracking down problems use:&lt;br /&gt;
*Estate tools: Get top colliders and Get top scripts.&lt;br /&gt;
*Pathfinding Linkset tools: search for the name of the object and teleport to it, take, delete, take copy, or turn on a beacon.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Full Pathfinding tools information can be found [[Pathfinding_Tools_in_the_Second_Life_Viewer|here]].&lt;br /&gt;
&lt;br /&gt;
A quick guide to Good Building Practices can be found [[Good_Building_Practices|here]].&lt;br /&gt;
&lt;br /&gt;
Find helpful Pathfinding scripts [[Pathfinding_Scripts|here]].&lt;br /&gt;
&lt;br /&gt;
The Navigation Mesh explained [[Pathfinding_NavMesh|here]].&lt;/div&gt;</summary>
		<author><name>Hyper Mole</name></author>
	</entry>
</feed>