> For the complete documentation index, see [llms.txt](https://picnic-in-the-oblivion.gitbook.io/assets/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://picnic-in-the-oblivion.gitbook.io/assets/levels/about.md).

# ABOUT

In this folder are levels, the structure of levels looks like this:

```
level_folder:    <- name of the folder, is level ID.
    /
    level.json            <- level.json is the main data file of the level.
    custom_mesh.obj
    custom_mesh2.obj
    ...
```

<mark style="background-color:green;">**LEVEL.JSON**</mark> <- the main data file of the level, it contains objects, light and other information of level.

{% hint style="info" %}
{

<mark style="color:orange;">"weather\_color"</mark>: "0a0a0a", <mark style="color:blue;">// HEX color of sky background</mark>

<mark style="color:orange;">"daylight"</mark>: false, <mark style="color:blue;">// turn on/off daylight state of the level</mark>

<mark style="color:orange;">"fog"</mark>: true, <mark style="color:blue;">// volumetric fog, works only when daylight:false</mark>

<mark style="color:orange;">"light"</mark>: \[], <mark style="color:blue;">// array with light sources</mark>

<mark style="color:orange;">"level\_data"</mark>: \[] <mark style="color:blue;">// array with level objects (static and usable)</mark>

}
{% endhint %}

<mark style="background-color:yellow;">**LIGHT : \[ ]**</mark> <- array with light sources

{% hint style="info" %}
{\ <mark style="color:orange;">"color"</mark>: \[ 238, 157, 49 ],    <mark style="color:blue;"><- array of the colors R G B</mark>\ <mark style="color:orange;">"distance"</mark>: 7.0,    <mark style="color:blue;"><- float number for the light size (light sphere diameter)</mark>\ <mark style="color:orange;">"energy"</mark>: 1,    <mark style="color:blue;"><- float number for the light source brightness</mark>\ <mark style="color:orange;">"name"</mark>: "point\_light",    <mark style="color:blue;"><- by that name you can find this light by scripts</mark>\ <mark style="color:orange;">"position"</mark>: \[ 11.36, 1.91, -2.91 ],    <mark style="color:blue;"><- array of floats for Vector3( ) of position</mark>\ <mark style="color:orange;">"shadows"</mark>: false,    <mark style="color:blue;"><- turns on/off shadows on level (works only when daylight:false)</mark>\ <mark style="color:orange;">"type"</mark>: "point"    <mark style="color:blue;"><- type of light</mark>\
}
{% endhint %}

{% hint style="danger" %} <mark style="color:red;">**Level loader have only "point" type of light, remeber it!**</mark>
{% endhint %}

<mark style="background-color:green;">LEVEL\_DATA : \[ ]</mark> <- array with level data. There are few types of objects.

Let's start with simple one, static object. It hasn't <mark style="color:red;">"id": "id\_type"</mark>, so it's static. Like terrain model, boxes, walls, etc.

{% hint style="info" %}
{

<mark style="color:orange;">"model"</mark>: "assets/...",   <mark style="color:blue;"><- path to \*.obj model, starts from assets/</mark>

<mark style="color:orange;">"texture"</mark>: "pbandit.png", <mark style="color:blue;"><- texture name in assets/textures/</mark>

<mark style="color:orange;">"position"</mark>: \[ 0, 0, 0 ],  <mark style="color:blue;"><- position, float numbers</mark>

<mark style="color:orange;">"rotation"</mark>: \[ 0, 180, 0 ],  <mark style="color:blue;"><- rotation, float numbers</mark>

<mark style="color:orange;">"collider"</mark>: null,  <mark style="color:blue;"><- generate colliders, can be null, "box", "mesh", "sphere"</mark>

<mark style="color:orange;">"scale"</mark>: 1, <mark style="color:blue;"><- scale times, or can be array \[1, 1, 1] of floats</mark>

<mark style="color:orange;">"lit"</mark>: false,  <mark style="color:blue;"><- lit/unlit material can be fake emission with no light</mark>

<mark style="color:orange;">"name"</mark>: "object\_name",  <mark style="color:blue;"><- name for using in scripts through get\_node()</mark>

<mark style="color:orange;">"alpha"</mark>: false,  <mark style="color:blue;"><- transparent texture if it has alpha</mark>

<mark style="color:orange;">"billboard"</mark>: false,  <mark style="color:blue;"><- billboard or not</mark>

<mark style="color:orange;">"double\_sided"</mark>: false,  <mark style="color:blue;"><- on/off material back culling</mark>

}
{% endhint %}

Second type of level objects its usable or "dynamic" or whatever. The contains special key -> <mark style="color:red;">"id": "id\_type"</mark>

List of all available id types:

| ID KEY                                                            | WHAT THEY DO                                                                                                                    |
| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| <mark style="color:orange;">"id"</mark> : "sprite3d"              | Sprite object in 3D that can be billboard, best example - light sparkles under lamps in underground                             |
| <mark style="color:orange;">"id"</mark> : "spawn\_point"          | Invisible object that spawn player at self coordinates and rotate it. <mark style="color:red;">Can be only one on level!</mark> |
| <mark style="color:orange;">"id"</mark> : "animated3dsprite"      | Sprite object but with animation, only used for fire.                                                                           |
| <mark style="color:orange;">"id"</mark> : "radiation"             | 3D area that has shape of cube and if player come inside - it start hurt the player                                             |
| <mark style="color:orange;">"id"</mark> : "hostile\_eyezone"      | 3D area that allow enemies attack player inside.                                                                                |
| <mark style="color:orange;">"id"</mark> : "npc"                   | Friendly NPC                                                                                                                    |
| <mark style="color:orange;">"id"</mark> : "npc\_hostile"          | Hostile AI Bot                                                                                                                  |
| <mark style="color:orange;">"id"</mark> : "loot\_money"           | 3D usable area in shape of cube that gives player only money on use                                                             |
| <mark style="color:orange;">"id"</mark> : "loot"                  | 3D usable area in shape of cube that allow player to open loot window and take items from it                                    |
| <mark style="color:orange;">"id"</mark> : "usable\_area"          | 3D usable area in shape of cube that gives player event key after use                                                           |
| <mark style="color:orange;">"id"</mark> : "transition\_to\_level" | 3D usable area in shape of cube that change level on use                                                                        |
| <mark style="color:orange;">"id"</mark> : "transition"            | 3D usable area in shape of cube that allow player to move by waypoints and teleport to specific position in current level       |
| <mark style="color:orange;">"id"</mark> : "block"                 | 3D invisible wall, that block player raycast so player can't use triggers behind this block                                     |

And now what kind of keys can be added to object of specific ID.

<table><thead><tr><th width="236.5">ID</th><th width="230">MUST HAVE KEYS</th><th>WHAT THEY DO</th></tr></thead><tbody><tr><td><mark style="color:orange;">"id"</mark> : "sprite3d"</td><td><mark style="color:orange;">"texture":</mark> "filename.png"</td><td>Filename of texture in <mark style="color:green;">textures/</mark></td></tr><tr><td></td><td><p><mark style="color:orange;">"3d_sound"</mark>: {<br>    "volume_db": 0,<br>    "audio": "assets/...",</p><p>    "max_distance": 5.0<br>}</p></td><td>&#x3C;- 0 is 100% volume, -88 is 0%<br>&#x3C;- path from <mark style="color:green;">assets/</mark><br>&#x3C;- max distance <mark style="color:blue;">float</mark></td></tr><tr><td><mark style="color:orange;">"id"</mark> : "spawn_point"</td><td></td><td>Keep only id, position, rotation and name.</td></tr><tr><td><mark style="color:orange;">"id"</mark> : "animated3dsprite"</td><td><mark style="color:orange;">"sequence":</mark> "fire"</td><td>Main sequence of fire animation.</td></tr><tr><td><mark style="color:orange;">"id"</mark> : "radiation"</td><td><mark style="color:orange;">"size":</mark> [1.0, 1.0, 1.0]</td><td>Size of area in <mark style="color:blue;">float</mark></td></tr><tr><td><mark style="color:orange;">"id"</mark> : "hostile_eyezone"</td><td><mark style="color:orange;">"hostile_id":</mark> "any_string"</td><td>ID of eyezone for AI Bots</td></tr><tr><td></td><td><mark style="color:orange;">"size":</mark> [1.0, 1.0, 1.0]</td><td>Size of area in <mark style="color:blue;">float</mark></td></tr><tr><td><mark style="color:orange;">"id"</mark> : "npc"</td><td><mark style="color:orange;">"profile":</mark> "npc_profile_id"</td><td>ID of profile from <mark style="color:green;">creatures/characters.json</mark></td></tr><tr><td><mark style="color:orange;">"id"</mark> : "npc_hostile"</td><td><mark style="color:orange;">"animations":</mark> [<br>    "anim1",<br>    "anim2"...<br>]</td><td>Attack animation for AI. All anims list search in <mark style="color:green;">scripts/p_game.gd</mark></td></tr><tr><td></td><td><mark style="color:orange;">"profile":</mark> "ai_profile_id"</td><td>ID from <mark style="color:green;">creatures/enemy.json</mark></td></tr><tr><td></td><td><mark style="color:orange;">"zone_id":</mark> "eyezone_id"</td><td>ID of eyezone where they will be</td></tr><tr><td><mark style="color:orange;">"id"</mark> : "loot_money"</td><td><mark style="color:orange;">"value":</mark> 100</td><td>Money amount. Use <mark style="color:blue;">Int</mark> value.</td></tr><tr><td></td><td><mark style="color:orange;">"model":</mark> "cube"</td><td>You need add it!</td></tr><tr><td></td><td><mark style="color:orange;">"invisible":</mark> true</td><td>Always keep it invisible</td></tr><tr><td><mark style="color:orange;">"id"</mark> : "loot"</td><td><mark style="color:orange;">"loot_id":</mark> "loot_id"</td><td>ID from <mark style="color:green;">gameplay/loot_containers.json</mark></td></tr><tr><td></td><td><mark style="color:orange;">"model":</mark> "cube"</td><td>You need add it!</td></tr><tr><td></td><td><mark style="color:orange;">"invisible":</mark> true</td><td>Always keep it invisible</td></tr><tr><td><mark style="color:orange;">"id"</mark> : "usable_area"</td><td><mark style="color:orange;">"event_key":</mark> "key.id"</td><td>Add event key, then you can add logic for key in <mark style="color:green;">scripts/p_game.gd</mark></td></tr><tr><td></td><td><mark style="color:orange;">"model":</mark> "cube"</td><td>You need add it!</td></tr><tr><td></td><td><mark style="color:orange;">"invisible":</mark> true</td><td>Always keep it invisible</td></tr><tr><td><mark style="color:orange;">"id"</mark> : "transition_to_level"</td><td><mark style="color:orange;">"condition":</mark> "key.id"</td><td>*optional* door will have lock icon and can't be used until player will have event key with this id</td></tr><tr><td></td><td><mark style="color:orange;">"level":</mark> "level_folder_id"</td><td>level ID for loading</td></tr><tr><td></td><td><mark style="color:orange;">"model":</mark> "cube"</td><td>You need add it!</td></tr><tr><td></td><td><mark style="color:orange;">"invisible":</mark> true</td><td>Always keep it invisible</td></tr><tr><td><mark style="color:orange;">"id"</mark> : "transition"</td><td><mark style="color:orange;">"target_position":</mark> [<br>    1.0, 1.0, 1.0<br>]</td><td>Position of player destination when door will be used</td></tr><tr><td></td><td><mark style="color:orange;">"target_rotation":</mark> [<br>   0.0, 0.0, 0.0<br>]</td><td>Rotation of player destination when door will be used</td></tr><tr><td></td><td><mark style="color:orange;">"invisible":</mark> true</td><td>Always keep it invisible</td></tr><tr><td></td><td><mark style="color:orange;">"waypoints":</mark> "waypoint_id"</td><td>ID from <mark style="color:green;">gameplay/waypoints.json</mark></td></tr><tr><td><mark style="color:orange;">"id"</mark> : "block"</td><td><mark style="color:orange;">"collider":</mark> "box"</td><td>Always put box collider</td></tr><tr><td></td><td><mark style="color:orange;">"invisible":</mark> true</td><td>Always keep it invisible</td></tr></tbody></table>

{% hint style="warning" %}
Also <mark style="color:orange;">"id"</mark> : "transition" has some special words inside <mark style="color:orange;">"waypoints":</mark> "waypoint\_id" key, that can help you to move player in different ways.

***

{% endhint %}

Here's list of this additional words:

| WAYPOINT WORD                          | WHAT IT DOES                                                                                                                        |
| -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| $to\_this\_door                        | Move camera from it's position forward to the trigger position. <mark style="color:red;">This word must replace waypoint id.</mark> |
| \<waypoint\_id>\_last\_points          | Go backward by waypoints and start first point from middle of path                                                                  |
| \<waypoint\_id>\_return                | Go backward by waypoints from end of points and finish at transition object position                                                |
| \<waypoint\_id>\_back\_only\_waypoints | Go backward by waypoints from end of points and finish only at last point                                                           |

So this is how <mark style="color:green;">**level.json**</mark> is works! Here's as example - intro level of the game:

{% code title="levels/intro/level.json" %}

```json
{
	"weather_color": "4a739f",
	"daylight": true,
	"fog": false,
	"light": [],
	"level_data": [
		{
			"uid": "skybox",
			"model": "assets/levels/intro/l_0_0_skybox",
			"texture": "texsky1.png",
			"position": [
				0,
				-13.77,
				0
			],
			"rotation": [
				0,
				0,
				0
			],
			"lit": true,
			"collider": null,
			"scale": 1,
			"name": "skybox",
			"alpha": false,
			"billboard": false
		},
		{
			"id": "spawn_point",
			"position": [
				6.318,
				1.564,
				-5.53
			],
			"rotation": [
				0,
				158.14,
				0
			],
			"name": "SpawnPoint"
		},
		{
			"id": "loot_money",
			"value": 75,
			"model": "cube",
			"position": [
				5.975,
				0,
				0.626
			],
			"rotation": [
				0,
				0,
				0
			],
			"collider": "box",
			"invisible": true,
			"scale": 1,
			"color": [
				10,
				10,
				10,
				128
			],
			"name": "loot_money_0",
			"alpha": false,
			"lit": false,
			"billboard": false
		},
		{
			"id": "loot_money",
			"value": 125,
			"model": "cube",
			"position": [
				2.528,
				0,
				-2.036
			],
			"rotation": [
				0,
				0,
				0
			],
			"collider": "box",
			"invisible": true,
			"scale": 1,
			"color": [
				10,
				10,
				10,
				128
			],
			"name": "loot_money_1",
			"alpha": false,
			"lit": false,
			"billboard": false
		},
		{
			"id": "loot",
			"loot_id": "level_0_0_corpse_0",
			"model": "cube",
			"position": [
				-1.023,
				0,
				-2.953
			],
			"rotation": [
				0,
				0,
				0
			],
			"collider": "box",
			"invisible": true,
			"scale": 1,
			"color": [
				10,
				10,
				10,
				128
			],
			"name": "items_loot",
			"alpha": false,
			"lit": false,
			"billboard": false
		},
		{
			"id": "loot_money",
			"value": 50,
			"model": "cube",
			"position": [
				0.341,
				0,
				1.524
			],
			"rotation": [
				0,
				0,
				0
			],
			"collider": "box",
			"invisible": true,
			"scale": 1,
			"color": [
				10,
				10,
				10,
				128
			],
			"name": "loot_money_2",
			"alpha": false,
			"lit": false,
			"billboard": false
		},
		{
			"id": "transition_to_level",
			"level": "intro_battle",
			"waypoints": "intro_wp_0",
			"model": "cube",
			"position": [
				0.32,
				2.41,
				9.17
			],
			"rotation": [
				0,
				0,
				0
			],
			"collider": "box",
			"invisible": true,
			"scale": [
				5.66,
				4.54,
				1
			],
			"name": "transition",
			"alpha": false,
			"lit": false,
			"billboard": false
		},
		{
			"model": "assets/levels/intro/terrain_intro",
			"texture": "objects/terrain_type2.png",
			"position": [
				0,
				0,
				0
			],
			"rotation": [
				0,
				180,
				0
			],
			"collider": null,
			"lit": true,
			"scale": 1,
			"name": "terrain_intro",
			"alpha": false,
			"billboard": false
		},
		{
			"model": "assets/levels/intro/l_0_0_rocks",
			"texture": "texobj2.png",
			"position": [
				0,
				0,
				0
			],
			"rotation": [
				0,
				180,
				0
			],
			"collider": null,
			"lit": true,
			"scale": 1,
			"name": "rocks",
			"alpha": false,
			"billboard": false
		},
		{
			"model": "assets/levels/intro/l_0_0_forest",
			"texture": "texforest1.png",
			"position": [
				0,
				0,
				0
			],
			"rotation": [
				0,
				180,
				0
			],
			"collider": null,
			"alpha": true,
			"lit": true,
			"scale": 1,
			"name": "forest",
			"billboard": false
		},
		{
			"model": "assets/levels/intro/l_0_0_dead_stalkers",
			"texture": "pstalker.png",
			"position": [
				0,
				0,
				0
			],
			"rotation": [
				0,
				180,
				0
			],
			"collider": null,
			"lit": true,
			"scale": 1,
			"name": "corpses",
			"alpha": false,
			"billboard": false
		},
		{
			"model": "assets/levels/intro/l_0_0_dead_bandit",
			"texture": "pbandit.png",
			"position": [
				0,
				0,
				0
			],
			"rotation": [
				0,
				180,
				0
			],
			"collider": null,
			"scale": 1,
			"lit": true,
			"name": "dead_bandit",
			"alpha": false,
			"billboard": false
		},
		{
			"model": "assets/levels/intro/l_0_0_dead_stalkers_weapons",
			"texture": "texobj2.png",
			"position": [
				0,
				0,
				0
			],
			"rotation": [
				0,
				180,
				0
			],
			"lit": true,
			"collider": null,
			"scale": 1,
			"name": "weapons",
			"alpha": false,
			"billboard": false
		},
		{
			"model": "assets/models/tree_faced",
			"texture": "textree1.png",
			"position": [
				-6,
				0,
				8
			],
			"rotation": [
				0,
				0,
				0
			],
			"collider": null,
			"scale": [
				1.52,
				1.52,
				1.52
			],
			"double_sided": true,
			"alpha": true,
			"lit": true,
			"name": "tree1",
			"billboard": true
		},
		{
			"model": "assets/models/tree_faced",
			"texture": "textree1.png",
			"position": [
				13.83,
				-0.42,
				-3.91
			],
			"rotation": [
				0,
				0,
				0
			],
			"collider": null,
			"scale": [
				1.86,
				1.86,
				1.86
			],
			"double_sided": true,
			"alpha": true,
			"lit": true,
			"name": "tree5",
			"billboard": true
		},
		{
			"model": "assets/models/tree_faced",
			"texture": "textree1.png",
			"position": [
				16.52,
				-0.42,
				8.84
			],
			"rotation": [
				0,
				0,
				0
			],
			"collider": null,
			"scale": [
				1.86,
				1.86,
				1.86
			],
			"double_sided": true,
			"alpha": true,
			"lit": true,
			"name": "tree18",
			"billboard": true
		},
		{
			"model": "assets/models/tree_faced",
			"texture": "textree1.png",
			"position": [
				21.4,
				-1.35,
				-20.41
			],
			"rotation": [
				0,
				0,
				0
			],
			"collider": null,
			"scale": [
				1.86,
				2.05,
				1.86
			],
			"double_sided": true,
			"alpha": true,
			"lit": true,
			"name": "tree19",
			"billboard": true
		},
		{
			"model": "assets/models/tree_faced",
			"texture": "textree1.png",
			"position": [
				5,
				0,
				17
			],
			"rotation": [
				0,
				0,
				0
			],
			"collider": null,
			"scale": [
				1.55,
				1.55,
				1.55
			],
			"alpha": true,
			"lit": true,
			"double_sided": true,
			"name": "tree2",
			"billboard": true
		},
		{
			"model": "assets/models/tree_faced",
			"texture": "textree1.png",
			"position": [
				1,
				0,
				32
			],
			"rotation": [
				0,
				0,
				0
			],
			"collider": null,
			"scale": 1,
			"alpha": true,
			"lit": true,
			"double_sided": true,
			"name": "tree3",
			"billboard": false
		},
		{
			"model": "assets/models/tree_faced",
			"texture": "textree3.png",
			"position": [
				16.33,
				0,
				25
			],
			"rotation": [
				0,
				-28,
				0
			],
			"collider": null,
			"scale": 3,
			"alpha": true,
			"lit": true,
			"double_sided": true,
			"name": "tree4",
			"billboard": true
		},
		{
			"model": "assets/models/tree_faced",
			"texture": "textree3.png",
			"position": [
				-30.2,
				0,
				11.11
			],
			"rotation": [
				0,
				-84.9,
				0
			],
			"collider": null,
			"scale": 3,
			"alpha": true,
			"lit": true,
			"double_sided": true,
			"name": "tree14",
			"billboard": true
		},
		{
			"model": "assets/models/tree_faced",
			"texture": "textree3.png",
			"position": [
				-30.2,
				0,
				-26.06
			],
			"rotation": [
				0,
				-84.9,
				0
			],
			"collider": null,
			"scale": 3,
			"alpha": true,
			"lit": true,
			"double_sided": true,
			"name": "tree15",
			"billboard": true
		},
		{
			"model": "assets/models/tree_faced",
			"texture": "textree3.png",
			"position": [
				-10.09,
				0,
				-31.5
			],
			"rotation": [
				0,
				-84.9,
				0
			],
			"collider": null,
			"scale": 3,
			"alpha": true,
			"lit": true,
			"double_sided": true,
			"name": "tree16",
			"billboard": true
		},
		{
			"model": "assets/models/tree_faced",
			"texture": "textree3.png",
			"position": [
				-27.83,
				0,
				-6.51
			],
			"rotation": [
				0,
				-84.9,
				0
			],
			"collider": null,
			"scale": 3,
			"alpha": true,
			"lit": true,
			"double_sided": true,
			"name": "tree17",
			"billboard": true
		},
		{
			"model": "assets/models/tree_faced",
			"texture": "textree3.png",
			"position": [
				-6.09,
				-0.51,
				-14.72
			],
			"rotation": [
				65.61,
				-38.38,
				50.47
			],
			"collider": null,
			"scale": 3,
			"alpha": true,
			"lit": true,
			"double_sided": true,
			"name": "tree20",
			"billboard": false
		},
		{
			"model": "assets/models/tree_faced",
			"texture": "textree3.png",
			"position": [
				-5.98,
				-0.11,
				-14.64
			],
			"rotation": [
				32.91,
				-171.29,
				-71.75
			],
			"collider": null,
			"scale": 3,
			"alpha": true,
			"lit": true,
			"double_sided": true,
			"name": "tree21",
			"billboard": false
		},
		{
			"model": "assets/models/tree_faced",
			"texture": "textree3.png",
			"position": [
				21.82,
				-0.48,
				7.37
			],
			"rotation": [
				0,
				-28,
				0
			],
			"collider": null,
			"scale": 3,
			"alpha": true,
			"lit": true,
			"double_sided": true,
			"name": "tree6",
			"billboard": true
		},
		{
			"model": "assets/models/tree_faced",
			"texture": "textree3.png",
			"position": [
				30,
				0,
				-17
			],
			"rotation": [
				0,
				-28,
				0
			],
			"collider": null,
			"scale": 3,
			"alpha": true,
			"lit": true,
			"double_sided": true,
			"name": "tree7",
			"billboard": true
		},
		{
			"model": "assets/models/tree_faced",
			"texture": "textree1.png",
			"position": [
				14,
				0,
				32
			],
			"rotation": [
				0,
				0,
				0
			],
			"collider": null,
			"scale": 1,
			"alpha": true,
			"lit": true,
			"double_sided": true,
			"name": "tree8",
			"billboard": false
		},
		{
			"model": "assets/models/tree_faced",
			"texture": "textree1.png",
			"position": [
				4,
				0,
				-46
			],
			"rotation": [
				0,
				0,
				0
			],
			"collider": null,
			"scale": 1,
			"alpha": true,
			"lit": true,
			"name": "tree9",
			"billboard": false
		},
		{
			"model": "assets/models/tree_faced",
			"texture": "textree1.png",
			"position": [
				-21,
				0,
				-6
			],
			"rotation": [
				0,
				90,
				0
			],
			"collider": null,
			"scale": [
				1.31,
				1.31,
				1.31
			],
			"alpha": true,
			"lit": true,
			"double_sided": true,
			"name": "tree10",
			"billboard": true
		},
		{
			"model": "assets/models/tree_faced",
			"texture": "textree1.png",
			"position": [
				-8.6,
				0,
				-22.1
			],
			"rotation": [
				0,
				0,
				0
			],
			"collider": null,
			"alpha": true,
			"lit": true,
			"scale": [
				1.75,
				1.75,
				1.75
			],
			"double_sided": true,
			"name": "tree11",
			"billboard": true
		},
		{
			"model": "assets/models/tree_faced",
			"texture": "textree1.png",
			"position": [
				-7,
				0,
				-39
			],
			"rotation": [
				0,
				0,
				0
			],
			"collider": null,
			"scale": [
				1.61,
				1.61,
				1.61
			],
			"alpha": true,
			"lit": true,
			"double_sided": true,
			"name": "tree12",
			"billboard": false
		},
		{
			"model": "assets/models/tree_faced",
			"texture": "textree3.png",
			"position": [
				14,
				0,
				-43
			],
			"rotation": [
				0,
				-28,
				0
			],
			"collider": null,
			"scale": 3,
			"alpha": true,
			"lit": true,
			"double_sided": true,
			"name": "tree13",
			"billboard": true
		},
		{
			"collider": "box",
			"id": "block",
			"invisible": true,
			"model": "cube",
			"name": "raycast_block_zone",
			"position": [
				0,
				-0.94,
				0
			],
			"rotation": [
				0,
				0,
				0
			],
			"scale": [
				81.13,
				1,
				66.38
			],
			"alpha": false,
			"lit": false,
			"billboard": false
		},
		{
			"collider": null,
			"lit": true,
			"model": "assets/models/mi24",
			"name": "mi24",
			"position": [
				-2.61,
				-0.95,
				-14.91
			],
			"rotation": [
				0,
				121.41,
				-9.62
			],
			"scale": 1,
			"texture": "mi24.png",
			"double_sided": true,
			"billboard": false
		},
		{
			"collider": "box",
			"lit": true,
			"model": "assets/models/garbage",
			"name": "garbage",
			"position": [
				-6.24,
				0,
				-13.01
			],
			"rotation": [
				0,
				0,
				0
			],
			"scale": [
				1.8,
				1.8,
				1.8
			],
			"texture": "texobj2.png",
			"billboard": false
		},
		{
			"collider": "box",
			"lit": true,
			"model": "assets/models/garbage",
			"name": "garbage2",
			"position": [
				2.54,
				0,
				-20.5
			],
			"rotation": [
				0,
				0,
				0
			],
			"scale": [
				3.42,
				3.42,
				3.42
			],
			"texture": "texobj2.png",
			"billboard": false
		},
		{
			"collider": "box",
			"lit": true,
			"model": "assets/models/old_tree",
			"name": "old_tree",
			"position": [
				7.96,
				0.06,
				-23.64
			],
			"rotation": [
				-0.24,
				-56.65,
				-76.05
			],
			"scale": [
				1.6,
				1.6,
				1.6
			],
			"texture": "texobj1.png",
			"billboard": false
		},
		{
			"billboard": true,
			"id": "animated3dsprite",
			"name": "fire",
			"position": [
				-2.39,
				1.64,
				-13.27
			],
			"rotation": [
				0,
				30,
				0
			],
			"scale": 2.80000000000291,
			"sequence": "fire",
			"3d_sound": {
				"volume_db": 0,
				"audio": "assets/sounds/ambient_sfx/campfire.mp3",
				"max_distance": 12
			}
		},
		{
			"billboard": true,
			"id": "animated3dsprite",
			"name": "fire2",
			"position": [
				-7.44,
				1.64,
				-13.34
			],
			"rotation": [
				0,
				30,
				0
			],
			"scale": 2.80000000000291,
			"sequence": "fire"
		},
		{
			"billboard": true,
			"id": "animated3dsprite",
			"name": "fire3",
			"position": [
				3.36,
				3.34,
				-19.74
			],
			"rotation": [
				0,
				30,
				0
			],
			"scale": 2.80000000000291,
			"sequence": "fire"
		}
	]
}

```

{% endcode %}
