# Examples

{% tabs %}
{% tab title="Structure" %}

<figure><img src="/files/aZH95TNsr8JcLJtisJpJ" alt=""><figcaption><p>Volumes</p></figcaption></figure>

|                     Volume                    |                                             Volume Parameters                                             |               Volume Parent              |                                   Parent Parameters                                  | Mesh Parent |
| :-------------------------------------------: | :-------------------------------------------------------------------------------------------------------: | :--------------------------------------: | :----------------------------------------------------------------------------------: | :---------: |
|  <mark style="color:yellow;">Body\_vol</mark> |  `Contact` `Obstacle=0` <mark style="color:yellow;">`Tags=body`</mark> `Thickness=50` `Visible` `Volume`  |  <mark style="color:yellow;">Body</mark> |  <p><code>Poly</code><br><mark style="color:yellow;"><code>ID=body</code></mark></p> |    Basis    |
| <mark style="color:yellow;">Body1\_vol</mark> |   `Contact` `Obstacle=0` <mark style="color:yellow;">`Tags=body`</mark> `Thickness=5` `Visible` `Volume`  |  <mark style="color:yellow;">Body</mark> |  <p><code>Poly</code><br><mark style="color:yellow;"><code>ID=body</code></mark></p> |    Basis    |
| <mark style="color:yellow;">Body2\_vol</mark> |   `Contact` `Obstacle=0` <mark style="color:yellow;">`Tags=body`</mark> `Thickness=5` `Visible` `Volume`  |  <mark style="color:yellow;">Body</mark> |  <p><code>Poly</code><br><mark style="color:yellow;"><code>ID=body</code></mark></p> |    Basis    |
| <mark style="color:yellow;">Body3\_vol</mark> |  `Contact` `Obstacle=0` <mark style="color:yellow;">`Tags=body`</mark> `Thickness=10` `Visible` `Volume`  |  <mark style="color:yellow;">Body</mark> |  <p><code>Poly</code><br><mark style="color:yellow;"><code>ID=body</code></mark></p> |    Basis    |
| <mark style="color:yellow;">Body4\_vol</mark> |  `Contact` `Obstacle=0` <mark style="color:yellow;">`Tags=body`</mark> `Thickness=10` `Visible` `Volume`  |  <mark style="color:yellow;">Body</mark> |  <p><code>Poly</code><br><mark style="color:yellow;"><code>ID=body</code></mark></p> |    Basis    |
| <mark style="color:yellow;">Body5\_vol</mark> |  `Contact` `Obstacle=0` <mark style="color:yellow;">`Tags=body`</mark> `Thickness=10` `Visible` `Volume`  |  <mark style="color:yellow;">Body</mark> |  <p><code>Poly</code><br><mark style="color:yellow;"><code>ID=body</code></mark></p> |    Basis    |
| <mark style="color:yellow;">Body6\_vol</mark> |  `Contact` `Obstacle=0` <mark style="color:yellow;">`Tags=body`</mark> `Thickness=10` `Visible` `Volume`  |  <mark style="color:yellow;">Body</mark> |  <p><code>Poly</code><br><mark style="color:yellow;"><code>ID=body</code></mark></p> |    Basis    |
|  <mark style="color:yellow;">Roof\_vol</mark> | `Contact` `Obstacle=0` <mark style="color:yellow;">`Tags=roof`</mark> `Thickness=10` `Visible=0` `Volume` |  <mark style="color:yellow;">Body</mark> |  <p><code>Poly</code><br><mark style="color:yellow;"><code>ID=body</code></mark></p> |    Basis    |
| <mark style="color:yellow;">Roof1\_vol</mark> | `Contact` `Obstacle=0` <mark style="color:yellow;">`Tags=roof`</mark> `Thickness=10` `Visible=0` `Volume` |  <mark style="color:yellow;">Body</mark> |  <p><code>Poly</code><br><mark style="color:yellow;"><code>ID=body</code></mark></p> |    Basis    |
| <mark style="color:yellow;">Roof2\_vol</mark> | `Contact` `Obstacle=0` <mark style="color:yellow;">`Tags=roof`</mark> `Thickness=10` `Visible=0` `Volume` |  <mark style="color:yellow;">Body</mark> |  <p><code>Poly</code><br><mark style="color:yellow;"><code>ID=body</code></mark></p> |    Basis    |
|                      N/A                      |                                                    N/A                                                    | <mark style="color:yellow;">Body1</mark> | <p><code>Poly</code><br><mark style="color:yellow;"><code>ID=body1</code></mark></p> |    Basis    |
|                      N/A                      |                                                    N/A                                                    | <mark style="color:yellow;">Body2</mark> | <p><code>Poly</code><br><mark style="color:yellow;"><code>ID=body2</code></mark></p> |    Basis    |

<figure><img src="/files/FRZoZb9fDV8bIXM7JJwt" alt=""><figcaption><p>Zones</p></figcaption></figure>

|                     Zone                     |                                       Zone Parameters                                      | Zone Parent |
| :------------------------------------------: | :----------------------------------------------------------------------------------------: | :---------: |
|  <mark style="color:orange;">Obstacle</mark> | <p><mark style="color:orange;"><code>Obstacle</code></mark> </p><p><code>Rotate</code></p> |    Basis    |
| <mark style="color:orange;">Obstacle1</mark> | <p><mark style="color:orange;"><code>Obstacle</code></mark> </p><p><code>Rotate</code></p> |    Basis    |
| <mark style="color:orange;">Obstacle2</mark> | <p><mark style="color:orange;"><code>Obstacle</code></mark> </p><p><code>Rotate</code></p> |    Basis    |

<figure><img src="/files/MsDPKcwD1wCB8A1HR4yt" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Multiple Volumes can be parented to one Body, as long as they share the same Tag.
{% endhint %}

{% hint style="info" %}
You can have multiple Bodies in one scene. You don't have to merge all objects! They must have unique Parameter IDs. ID=body, ID=body1, ID=body2, etc...
{% endhint %}

<figure><img src="/files/Ri7APW4FArtpNreJWRVv" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**·** Zones are made out of Splines in 3DS Max.

**·** To create a Spline: Create->Shapes.

**·** Creation method: - Initial type: Corner - Drag type: Corner.

**·** Cut & Interior splines must be made by Create->Shapes->Line. ⚠️

**·** It's best to use Circles and Rectangles when creating a spline for Obstacles. ⚠️

**·** It is helpful to use Snaps Toggle->Bounding Box.
{% endhint %}

{% embed url="<https://youtu.be/S0zQXiJBVjw?si=NtsnO2KjE6BjRQyy>" %}

.DEF file

```
// {game_entity
	(include "/properties/building.inc")
	{props "construction" "big"}
	{obstacleID "unbreakable"}
	{Extension "novac_home_01.mdl"}
	{placer}
	{extender "structure"
	}
	{Volume "body1"
		{Tags  "body"}
		{Thickness 5}
		{able {visible}{contact}{obstacle 0}}
		{material "wood"}
	}
	{Volume "body2"
		{Tags  "body"}
		{Thickness 5}
		{able {visible}{contact}{obstacle 0}}
		{material "wood"}
	}
	{Volume "body3"
		{Tags  "body"}
		{Thickness 10}
		{able {visible}{contact}{obstacle 0}}
		{material "steel"}
	}
	{Volume "body4"
		{Tags  "body"}
		{Thickness 10}
		{able {visible}{contact}{obstacle 0}}
		{material "steel"}
	}
	{Volume "body5"
		{Tags  "body"}
		{Thickness 10}
		{able {visible}{contact}{obstacle 0}}
		{material "steel"}
	}
	{Volume "body6"
		{Tags  "body"}
		{Thickness 10}
		{able {visible}{contact}{obstacle 0}}
		{material "steel"}
	}
	{Volume "body"
		{Tags  "body"}
		{Thickness 50}
		{able {visible}{contact}{obstacle 0}}
		{material "concrete"}
	}
	{Volume "roof1"
		{Tags  "roof"}
		{Thickness 10}
		{able {visible 0}{contact}{obstacle 0}}
		{material "wood"}
	}
	{Volume "roof2"
		{Tags  "roof"}
		{Thickness 10}
		{able {visible 0}{contact}{obstacle 0}}
		{material "wood"}
	}
	{Volume "roof"
		{Tags  "roof"}
		{Thickness 10}
		{able {visible 0}{contact}{obstacle 0}}
		{material "wood"}
	}
}

```

.MDL file

```
// {Skeleton
	{bone "basis"
		{Orientation
			1	0	0
			0	-1	0
			0	0	1
		}
		{bone "body"
			{parameters "ID=body;"}
			{VolumeView "body.ply"}
		}
		{bone "body1"
			{parameters "ID=body1;"}
			{VolumeView "body1.ply"}
		}
		{bone "body2"
			{parameters "ID=body2;"}
			{VolumeView "body2.ply"}
		}
	}
}
{Obstacle "obstacle"
	{Obb2
		{Center -34.0893 -3.05176e-005}
		{Extent 94.5191 75.0816}
		{Axis 1.61436e-007 1}
	}
	{Rotate}
}
{Obstacle "obstacle1"
	{Obb2
		{Center 134.461 13.7397}
		{Extent 1.06296 1.3493}
		{Axis 0 1}
	}
	{Rotate}
}
{Obstacle "obstacle2"
	{Obb2
		{Center 134.461 87.6222}
		{Extent 1.06297 1.3493}
		{Axis 0 1}
	}
	{Rotate}
}
{Volume "body1"
	{Polyhedron "body1.vol"}
	{Bone "body"}
}
{Volume "body2"
	{Polyhedron "body2.vol"}
	{Bone "body"}
}
{Volume "body3"
	{Polyhedron "body3.vol"}
	{Bone "body"}
}
{Volume "body4"
	{Polyhedron "body4.vol"}
	{Bone "body"}
}
{Volume "body5"
	{Polyhedron "body5.vol"}
	{Bone "body"}
}
{Volume "body6"
	{Polyhedron "body6.vol"}
	{Bone "body"}
}
{Volume "body"
	{Polyhedron "body.vol"}
	{Bone "body"}
}
{Volume "roof1"
	{Polyhedron "roof1.vol"}
	{Bone "body"}
}
{Volume "roof2"
	{Polyhedron "roof2.vol"}
	{Bone "body"}
}
{Volume "roof"
	{Polyhedron "roof.vol"}
	{Bone "body"}
}

```

{% endtab %}

{% tab title="Structure, Underground" %}

<figure><img src="/files/xcrSGq01aSp0343tbIkV" alt=""><figcaption><p>Volumes</p></figcaption></figure>

|                     Volume                    |                                            Volume Parameters                                            |               Volume Parent              |                                                            Parent Parameters                                                           | Mesh Parent |
| :-------------------------------------------: | :-----------------------------------------------------------------------------------------------------: | :--------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------: | :---------: |
|  <mark style="color:yellow;">Body\_vol</mark> | `Contact` `Obstacle=0` <mark style="color:yellow;">`Tags=body`</mark> `Thickness=50` `Visible` `Volume` |  <mark style="color:yellow;">Body</mark> |                           <p><code>Poly</code><br><mark style="color:yellow;"><code>ID=body</code></mark></p>                          |    Basis    |
| <mark style="color:yellow;">Body1\_vol</mark> | `Contact` `Obstacle=0` <mark style="color:yellow;">`Tags=body`</mark> `Thickness=50` `Visible` `Volume` |  <mark style="color:yellow;">Body</mark> |                           <p><code>Poly</code><br><mark style="color:yellow;"><code>ID=body</code></mark></p>                          |    Basis    |
| <mark style="color:yellow;">Body2\_vol</mark> | `Contact` `Obstacle=0` <mark style="color:yellow;">`Tags=body`</mark> `Thickness=50` `Visible` `Volume` |  <mark style="color:yellow;">Body</mark> |                           <p><code>Poly</code><br><mark style="color:yellow;"><code>ID=body</code></mark></p>                          |    Basis    |
|                      N/A                      |                                                   N/A                                                   | <mark style="color:yellow;">Body1</mark> |                          <p><code>Poly</code><br><mark style="color:yellow;"><code>ID=body1</code></mark></p>                          |    Basis    |
|                      N/A                      |                                                   N/A                                                   | <mark style="color:yellow;">Body2</mark> |                          <p><code>Poly</code><br><mark style="color:yellow;"><code>ID=body2</code></mark></p>                          |    Basis    |
|                      N/A                      |                                                   N/A                                                   | <mark style="color:yellow;">Body3</mark> |                          <p><code>Poly</code><br><mark style="color:yellow;"><code>ID=body3</code></mark></p>                          |    Basis    |
|                      N/A                      |                                                   N/A                                                   | <mark style="color:yellow;">Body4</mark> |                          <p><code>Poly</code><br><mark style="color:yellow;"><code>ID=body4</code></mark></p>                          |    Basis    |
|                      N/A                      |                                                   N/A                                                   | <mark style="color:yellow;">Body5</mark> |                          <p><code>Poly</code><br><mark style="color:yellow;"><code>ID=body5</code></mark></p>                          |    Basis    |
|                      N/A                      |                                                   N/A                                                   | <mark style="color:yellow;">Body6</mark> |                          <p><code>Poly</code><br><mark style="color:yellow;"><code>ID=body6</code></mark></p>                          |    Basis    |
|                      N/A                      |                                                   N/A                                                   |  <mark style="color:yellow;">Land</mark> |  <p><code>Poly</code></p><p><code>Land</code></p><p><code>Ground</code><br><mark style="color:yellow;"><code>ID=land</code></mark></p> |    Basis    |
|                      N/A                      |                                                   N/A                                                   | <mark style="color:yellow;">Land1</mark> | <p><code>Poly</code></p><p><code>Land</code></p><p><code>Ground</code><br><mark style="color:yellow;"><code>ID=land1</code></mark></p> |    Basis    |

<figure><img src="/files/4rqCfV61AYxARi1LanIn" alt=""><figcaption><p>Zones</p></figcaption></figure>

|                     Zone                     |                                       Zone Parameters                                      | Zone Parent |
| :------------------------------------------: | :----------------------------------------------------------------------------------------: | :---------: |
|                      Cut                     |                     <p><code>Area</code> </p><p><code>Rotate</code></p>                    |    Basis    |
|  <mark style="color:orange;">Obstacle</mark> | <p><mark style="color:orange;"><code>Obstacle</code></mark> </p><p><code>Rotate</code></p> |    Basis    |
| <mark style="color:orange;">Obstacle1</mark> | <p><mark style="color:orange;"><code>Obstacle</code></mark> </p><p><code>Rotate</code></p> |    Basis    |
| <mark style="color:orange;">Obstacle2</mark> | <p><mark style="color:orange;"><code>Obstacle</code></mark> </p><p><code>Rotate</code></p> |    Basis    |

<figure><img src="/files/gTKyuckbMOHdUoiMjC4g" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/Ri7APW4FArtpNreJWRVv" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**·** Zones are made out of Splines in 3DS Max.

**·** To create a Spline: Create->Shapes.

**·** Creation method: - Initial type: Corner - Drag type: Corner.

**·** Cut & Interior splines must be made by Create->Shapes->Line. ⚠️

**·** It's best to use Circles and Rectangles when creating a spline for Obstacles. ⚠️

**·** It is helpful to use Snaps Toggle->Bounding Box.
{% endhint %}

.DEF file&#x20;

```
// {game_entity
	(include "/properties/building.inc")
	{props  "concrete" "construction" "big"}
	{obstacleID "unbreakable"}  
	{Extension "metro_entrance_02.mdl"}
	{placer}
	{extender "structure"
	}
	{Volume "body1"
		{Tags  "body"}
		{Thickness 50}
		{able {visible}{contact}{obstacle 0}}
	}
	{Volume "body2"
		{Tags  "body"}
		{Thickness 50}
		{able {visible}{contact}{obstacle 0}}
	}
	{Volume "body"
		{Tags  "body"}
		{Thickness 50}
		{able {visible}{contact}{obstacle 0}}
	}
	{Extender "land_patch"
		{TerrainType "road" "bridge"}
    	}
}
```

.MDL file&#x20;

```
// {Skeleton
	{bone "basis"
		{Orientation
			1	0	0
			0	-1	0
			0	0	1
		}
		{bone "body"
			{parameters "ID=body;"}
			{VolumeView "body.ply"}
		}
		{bone "body1"
			{parameters "ID=body1;"}
			{VolumeView "body1.ply"}
		}
		{bone "body2"
			{parameters "ID=body2;"}
			{VolumeView "body2.ply"}
		}
		{bone "body3"
			{parameters "ID=body3;"}
			{VolumeView "body3.ply"}
		}
		{bone "body4"
			{parameters "ID=body4;"}
			{VolumeView "body4.ply"}
		}
		{bone "body5"
			{parameters "ID=body5;"}
			{VolumeView "body5.ply"}
		}
		{bone "body6"
			{parameters "ID=body6;"}
			{VolumeView "body6.ply"}
		}
		{bone "land"
			{parameters "Land;Ground;ID=land;"}
			{VolumeView "land.ply" {Ground}}
		}
		{bone "land1"
			{parameters "Land;Ground;ID=land1;"}
			{VolumeView "land1.ply" {Ground}}
		}
	}
}
{Area "cut"
	{Polygon2
		{Radius 0}
		{Vertex -70.1411 45.4146}
		{Vertex -70.1412 -45.1856}
		{Vertex 88.411 -45.1857}
		{Vertex 88.411 45.4146}
	}
	{Rotate}
}
{Obstacle "obstacle"
	{Obb2
		{Center 2.33988 -51.9805}
		{Extent 6.795 86.0712}
		{Axis 1.75437e-007 1}
	}
	{Rotate}
}
{Obstacle "obstacle1"
	{Obb2
		{Center -76.9363 0.114571}
		{Extent 58.89 6.79506}
		{Axis 1.29553e-007 1}
	}
	{Rotate}
}
{Obstacle "obstacle2"
	{Obb2
		{Center 2.33993 52.2095}
		{Extent 6.79506 86.0713}
		{Axis 1.75435e-007 1}
	}
	{Rotate}
}
{Volume "body1"
	{Polyhedron "body1.vol"}
	{Bone "body"}
}
{Volume "body2"
	{Polyhedron "body2.vol"}
	{Bone "body"}
}
{Volume "body"
	{Polyhedron "body.vol"}
	{Bone "body"}
}
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://gem-2-modding-community.gitbook.io/gem-2-modding-community/volumes-and-zones/examples.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
